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,4 +1,4 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
1
|
+
import { n as CliError } from "./errors-Vpu6rKHl.js";
|
|
2
2
|
//#region src/cli/core/io.ts
|
|
3
3
|
const FRAMES = [
|
|
4
4
|
"⠋",
|
|
@@ -14,8 +14,8 @@ const FRAMES = [
|
|
|
14
14
|
];
|
|
15
15
|
const FRAME_MS = 80;
|
|
16
16
|
/**
|
|
17
|
-
* A spinner on a terminal stderr; a plain line elsewhere, so logs and CI
|
|
18
|
-
*
|
|
17
|
+
* A spinner on a terminal stderr; a plain line elsewhere, so logs and CI output
|
|
18
|
+
* stay readable. `done` replaces the spinner with a final line.
|
|
19
19
|
*/
|
|
20
20
|
function progressReporter(input) {
|
|
21
21
|
return (message) => {
|
|
@@ -50,13 +50,13 @@ async function readSecret(readStdin) {
|
|
|
50
50
|
const URL_PASSWORD = /\b([a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:)([^\s@/]+)@/giu;
|
|
51
51
|
/** `text` with every registered secret and every URL password masked. */
|
|
52
52
|
function redact(text, secrets) {
|
|
53
|
-
let out = text.
|
|
53
|
+
let out = text.replaceAll(URL_PASSWORD, "$1***@");
|
|
54
54
|
for (const secret of secrets) if (secret.length >= 4) out = out.replaceAll(secret, "***");
|
|
55
55
|
return out;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* The secret piped in for `--<flag>-stdin`, when it was passed, registered
|
|
59
|
-
*
|
|
58
|
+
* The secret piped in for `--<flag>-stdin`, when it was passed, registered for
|
|
59
|
+
* redaction.
|
|
60
60
|
*/
|
|
61
61
|
async function secretInput(ctx, input) {
|
|
62
62
|
let value;
|
|
@@ -87,8 +87,8 @@ function tableKey(name) {
|
|
|
87
87
|
* membership (user, scope, id, `within`, role, `via`, expiry), and the id and
|
|
88
88
|
* value columns of a table a role or user column references, keyed by
|
|
89
89
|
* {@link tableKey}. A client that can write one can give itself a membership.
|
|
90
|
-
* The hook's sources count even when `rls.membershipSources` replaces them
|
|
91
|
-
*
|
|
90
|
+
* The hook's sources count even when `rls.membershipSources` replaces them for
|
|
91
|
+
* the helpers: the token's claims still come from them.
|
|
92
92
|
*/
|
|
93
93
|
function membershipColumns(config) {
|
|
94
94
|
const sources = /* @__PURE__ */ new Set([...membershipSourcesOf(config), ...config.supabase?.hook?.memberships ?? []]);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { n as isReadonlyArray } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { r as ownGet } from "./paths-
|
|
3
|
-
import { a as resolveConditionRef, c as isConditionDate, d as parentHop, l as isConditionRef } from "./refs-
|
|
4
|
-
import { o as sameId, t as expiredAt } from "./expiry-
|
|
5
|
-
import { g as formerScopes, m as annotationsFor, n as findPermission } from "./permission-registry-
|
|
6
|
-
import { o as epochSeconds } from "./time-
|
|
7
|
-
import { f as scopeList, h as tenantOf, m as subjectMemberships, s as resolveScope } from "./scopes-
|
|
8
|
-
import { t as isoInstant } from "./instant-
|
|
9
|
-
import { o as flattenGrantee } from "./grantee-
|
|
10
|
-
import { t as isActive } from "./validity-
|
|
11
|
-
import { n as matchGrantee } from "./grantee-match-
|
|
2
|
+
import { r as ownGet } 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 { o as sameId, t as expiredAt } from "./expiry-6XByK0dm.js";
|
|
5
|
+
import { g as formerScopes, m as annotationsFor, n as findPermission } from "./permission-registry-B8tYxPIt.js";
|
|
6
|
+
import { o as epochSeconds } from "./time-nR1JesoH.js";
|
|
7
|
+
import { f as scopeList, h as tenantOf, m as subjectMemberships, s as resolveScope } from "./scopes-0Up_UA2t.js";
|
|
8
|
+
import { t as isoInstant } from "./instant-DK3Iz83e.js";
|
|
9
|
+
import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
|
|
10
|
+
import { t as isActive } from "./validity-Buc7w8E9.js";
|
|
11
|
+
import { n as matchGrantee } from "./grantee-match-7RZZvoT_.js";
|
|
12
12
|
//#region src/conditions/evaluate.ts
|
|
13
13
|
function resolveRef(ref, subject) {
|
|
14
14
|
return resolveConditionRef(ref, subject);
|
|
@@ -145,9 +145,9 @@ function isRowPair(value) {
|
|
|
145
145
|
return value !== null && typeof value === "object" && "current" in value && "next" in value;
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
|
-
* The row a `where` reads and the row a `check` reads. An instance check
|
|
149
|
-
*
|
|
150
|
-
*
|
|
148
|
+
* The row a `where` reads and the row a `check` reads. An instance check takes
|
|
149
|
+
* a `{ current, next }` pair or one row for both; a collection check has no
|
|
150
|
+
* current row, only the input it creates.
|
|
151
151
|
*/
|
|
152
152
|
function rowValues(permission, data) {
|
|
153
153
|
if (permission.kind === "collection") return {
|
|
@@ -163,7 +163,10 @@ function rowValues(permission, data) {
|
|
|
163
163
|
next: data
|
|
164
164
|
};
|
|
165
165
|
}
|
|
166
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* The row's id under `field` as a string, or `*` when the row has no string or
|
|
168
|
+
* number there.
|
|
169
|
+
*/
|
|
167
170
|
function rowIdOf(row, field = "id") {
|
|
168
171
|
if (row === null || typeof row !== "object" || !Object.hasOwn(row, field)) return "*";
|
|
169
172
|
const id = Reflect.get(row, field);
|
|
@@ -171,14 +174,17 @@ function rowIdOf(row, field = "id") {
|
|
|
171
174
|
}
|
|
172
175
|
//#endregion
|
|
173
176
|
//#region src/core/delegation.ts
|
|
174
|
-
/**
|
|
177
|
+
/**
|
|
178
|
+
* The permission's scope and any scope it was renamed from: tokens issued
|
|
179
|
+
* before a rename keep working.
|
|
180
|
+
*/
|
|
175
181
|
function scopeNames(permission) {
|
|
176
182
|
return [permission.scope, ...formerScopes(permission)];
|
|
177
183
|
}
|
|
178
184
|
/**
|
|
179
185
|
* Whether a delegated caller may use a permission its principal holds, through
|
|
180
|
-
* OAuth `scopes`, RFC 9396 `authorizationDetails` or GNAP `access`.
|
|
181
|
-
*
|
|
186
|
+
* OAuth `scopes`, RFC 9396 `authorizationDetails` or GNAP `access`. `undefined`
|
|
187
|
+
* means covered; otherwise the denial reason `decide` would add.
|
|
182
188
|
*/
|
|
183
189
|
function coveredByDelegation(permission, delegation, resourceId, hasActor = false) {
|
|
184
190
|
const unscoped = hasActor ? "no-delegation" : void 0;
|
|
@@ -206,7 +212,10 @@ function coveredByDelegation(permission, delegation, resourceId, hasActor = fals
|
|
|
206
212
|
if (scopeOk || detailOk || accessOk) return;
|
|
207
213
|
return "not-delegated";
|
|
208
214
|
}
|
|
209
|
-
/**
|
|
215
|
+
/**
|
|
216
|
+
* A `readOnly` actor never uses a permission without `readOnlyHint`, delegated
|
|
217
|
+
* or not.
|
|
218
|
+
*/
|
|
210
219
|
function readOnlyActorRefuses(actor, permission) {
|
|
211
220
|
return actor?.readOnly === true && !annotationsFor(permission).readOnlyHint;
|
|
212
221
|
}
|
|
@@ -266,10 +275,10 @@ function handsOver(delegation, subject, heldRoles, now) {
|
|
|
266
275
|
/**
|
|
267
276
|
* The permission keys the policy's delegations let `subject.actor` use for
|
|
268
277
|
* `subject.principal` right now: the union over every active delegation whose
|
|
269
|
-
* `to` matches the actor and whose `from` the principal holds. `undefined`
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
278
|
+
* `to` matches the actor and whose `from` the principal holds. `undefined` when
|
|
279
|
+
* none applies, so the call falls back to the token delegation alone. An actor
|
|
280
|
+
* with `readOnly: true` gets only each delegation's read-only keys. Attenuation
|
|
281
|
+
* only: a key here still needs a matching allow and no deny.
|
|
273
282
|
*/
|
|
274
283
|
function delegatedPermissions(delegations, subject, heldRoles, now) {
|
|
275
284
|
const actor = subject.actor;
|
package/dist/delivery/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { an as EmailCategory, rn as DeliveryFailureCause, tn as DeliveryChannel } from "../policy-types-
|
|
2
|
-
import { i as approvalUrlFor, n as ApprovalUrl, r as approvalPrompt, t as ApprovalPrompt } from "../approval-prompt-
|
|
3
|
-
import { _ as TransportOptions, a as DeliveryReport, c as DeliveryTransport, d as EmailTransport, f as EmailUnsubscribe, g as TransportMessages, h as TransportItem, i as DeliveryMessages, l as DeliveryTransports, m as Recipient, n as ChatTransport, o as DeliveryResult, p as OutgoingEmail, r as DeliverOptions, s as DeliveryTarget, t as ChatMessage, u as EmailMessage, v as WebhookMessage, y as WebhookTransport } from "../types-
|
|
4
|
-
import { C as audience, S as SubscriberEvent, _ as ParseConnectorResult, a as DeliveryPermDock, b as Audience, c as MemoryDelivery, d as memoryDeliveryTransport, f as CONNECTOR_SCHEMA, g as ConnectorKind, h as ConnectorIssue, i as isDeliveryTarget, l as MemoryDeliveryTransport, m as Connector, n as webhookTransport, o as DeliveryPermDockOptions, p as CONNECTOR_KINDS, r as isAddrSpec, s as createPermDock, t as WebhookTransportOptions, u as MemoryDeliveryTransportOptions, v as SiemDestination, w as subscribersFor, x as AudienceOptions, y as parseConnector } from "../index-
|
|
1
|
+
import { an as EmailCategory, rn as DeliveryFailureCause, tn as DeliveryChannel } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { i as approvalUrlFor, n as ApprovalUrl, r as approvalPrompt, t as ApprovalPrompt } from "../approval-prompt-PYagyQUj.js";
|
|
3
|
+
import { _ as TransportOptions, a as DeliveryReport, c as DeliveryTransport, d as EmailTransport, f as EmailUnsubscribe, g as TransportMessages, h as TransportItem, i as DeliveryMessages, l as DeliveryTransports, m as Recipient, n as ChatTransport, o as DeliveryResult, p as OutgoingEmail, r as DeliverOptions, s as DeliveryTarget, t as ChatMessage, u as EmailMessage, v as WebhookMessage, y as WebhookTransport } from "../types-yUuPR5Hy.js";
|
|
4
|
+
import { C as audience, S as SubscriberEvent, _ as ParseConnectorResult, a as DeliveryPermDock, b as Audience, c as MemoryDelivery, d as memoryDeliveryTransport, f as CONNECTOR_SCHEMA, g as ConnectorKind, h as ConnectorIssue, i as isDeliveryTarget, l as MemoryDeliveryTransport, m as Connector, n as webhookTransport, o as DeliveryPermDockOptions, p as CONNECTOR_KINDS, r as isAddrSpec, s as createPermDock, t as WebhookTransportOptions, u as MemoryDeliveryTransportOptions, v as SiemDestination, w as subscribersFor, x as AudienceOptions, y as parseConnector } from "../index-Bv5iXPqU.js";
|
|
5
5
|
export { type ApprovalPrompt, type ApprovalUrl, type Audience, type AudienceOptions, CONNECTOR_KINDS, CONNECTOR_SCHEMA, type ChatMessage, type ChatTransport, type Connector, type ConnectorIssue, type ConnectorKind, type DeliverOptions, type DeliveryChannel, type DeliveryFailureCause, type DeliveryMessages, type DeliveryPermDock, type DeliveryPermDockOptions, type DeliveryReport, type DeliveryResult, type DeliveryTarget, type DeliveryTransport, type DeliveryTransports, type EmailCategory, type EmailMessage, type EmailTransport, type EmailUnsubscribe, type MemoryDelivery, type MemoryDeliveryTransport, type MemoryDeliveryTransportOptions, type OutgoingEmail, type ParseConnectorResult, type Recipient, type SiemDestination, type SubscriberEvent, type TransportItem, type TransportMessages, type TransportOptions, type WebhookMessage, type WebhookTransport, type WebhookTransportOptions, approvalPrompt, approvalUrlFor, audience, createPermDock, isAddrSpec, isDeliveryTarget, memoryDeliveryTransport, parseConnector, subscribersFor, webhookTransport };
|
package/dist/delivery/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as approvalUrlFor, t as approvalPrompt } from "../approval-prompt-
|
|
2
|
-
import { n as subscribersFor, t as audience } from "../audience-
|
|
3
|
-
import { t as CONNECTOR_SCHEMA } from "../connector-schema-
|
|
4
|
-
import { a as parseConnector, i as CONNECTOR_KINDS, n as createPermDock, r as memoryDeliveryTransport, t as webhookTransport } from "../delivery-
|
|
5
|
-
import { i as isDeliveryTarget, n as isAddrSpec } from "../target-
|
|
1
|
+
import { n as approvalUrlFor, t as approvalPrompt } from "../approval-prompt-B8hQY69x.js";
|
|
2
|
+
import { n as subscribersFor, t as audience } from "../audience-BAkBDMqn.js";
|
|
3
|
+
import { t as CONNECTOR_SCHEMA } from "../connector-schema-CYLQNMYq.js";
|
|
4
|
+
import { a as parseConnector, i as CONNECTOR_KINDS, n as createPermDock, r as memoryDeliveryTransport, t as webhookTransport } from "../delivery-BupfvJIV.js";
|
|
5
|
+
import { i as isDeliveryTarget, n as isAddrSpec } from "../target-qdEAnnhU.js";
|
|
6
6
|
export { CONNECTOR_KINDS, CONNECTOR_SCHEMA, approvalPrompt, approvalUrlFor, audience, createPermDock, isAddrSpec, isDeliveryTarget, memoryDeliveryTransport, parseConnector, subscribersFor, webhookTransport };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { a as ownRecord } from "./paths-
|
|
4
|
-
import { n as loadPrincipalByIdentity } from "./principal-source-
|
|
5
|
-
import { t as deliveryEvent } from "./delivery-event-
|
|
6
|
-
import { n as CLOUDEVENTS_CONTENT_TYPE } from "./sink-
|
|
7
|
-
import { n as copyJson, r as forbiddenKeyPath, t as checkSchema } from "./json-schema-
|
|
8
|
-
import { t as CONNECTOR_SCHEMA } from "./connector-schema-
|
|
9
|
-
import { a as isWebhookAddress, i as isDeliveryTarget, n as isAddrSpec, r as isChatAddress, t as idempotencyKeyFor } from "./target-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { a as ownRecord } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { n as loadPrincipalByIdentity } from "./principal-source-C6N60GtM.js";
|
|
5
|
+
import { t as deliveryEvent } from "./delivery-event-JioK5YbS.js";
|
|
6
|
+
import { n as CLOUDEVENTS_CONTENT_TYPE } from "./sink-D9_vh372.js";
|
|
7
|
+
import { n as copyJson, r as forbiddenKeyPath, t as checkSchema } from "./json-schema-BPGa-RjQ.js";
|
|
8
|
+
import { t as CONNECTOR_SCHEMA } from "./connector-schema-CYLQNMYq.js";
|
|
9
|
+
import { a as isWebhookAddress, i as isDeliveryTarget, n as isAddrSpec, r as isChatAddress, t as idempotencyKeyFor } from "./target-qdEAnnhU.js";
|
|
10
10
|
//#region src/delivery/connector.ts
|
|
11
11
|
const BRANCHES = new Map((CONNECTOR_SCHEMA.oneOf ?? []).map((branch) => [branch.properties?.["kind"]?.const, branch]));
|
|
12
12
|
/** The kinds `connector-v1` lists, in schema order. */
|
|
@@ -25,8 +25,8 @@ function fail$1(issues) {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Checks `input` against `connector-v1.json` and answers a frozen copy, or
|
|
28
|
-
* every issue with a JSON pointer. The branch is chosen by `kind`, so an
|
|
29
|
-
*
|
|
28
|
+
* every issue with a JSON pointer. The branch is chosen by `kind`, so an issue
|
|
29
|
+
* names the field rather than "no branch matched".
|
|
30
30
|
*/
|
|
31
31
|
function parseConnector(input) {
|
|
32
32
|
const issues = [];
|
|
@@ -55,7 +55,10 @@ function parseConnector(input) {
|
|
|
55
55
|
}
|
|
56
56
|
//#endregion
|
|
57
57
|
//#region src/delivery/memory-transport.ts
|
|
58
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* An in-process transport for tests and examples: it records what it would have
|
|
60
|
+
* sent.
|
|
61
|
+
*/
|
|
59
62
|
function memoryDeliveryTransport(channel, options = {}) {
|
|
60
63
|
const deliveries = [];
|
|
61
64
|
return Object.freeze({
|
|
@@ -89,7 +92,10 @@ const ROUTER_FIELDS = /* @__PURE__ */ new Set([
|
|
|
89
92
|
"list-unsubscribe",
|
|
90
93
|
"list-unsubscribe-post"
|
|
91
94
|
]);
|
|
92
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Fields that would add recipients or rewrite the envelope past the recipient
|
|
97
|
+
* check.
|
|
98
|
+
*/
|
|
93
99
|
const ENVELOPE_FIELDS = /* @__PURE__ */ new Set([
|
|
94
100
|
"to",
|
|
95
101
|
"cc",
|
|
@@ -143,8 +149,8 @@ function unsubscribeHeaders(unsubscribe) {
|
|
|
143
149
|
/**
|
|
144
150
|
* The email a transport sends to `target`: `from` resolved, the caller's
|
|
145
151
|
* headers checked, `Auto-Submitted: auto-generated` (RFC 3834) on every
|
|
146
|
-
* message, and the RFC 2369 / RFC 8058 unsubscribe pair on `notification`
|
|
147
|
-
*
|
|
152
|
+
* message, and the RFC 2369 / RFC 8058 unsubscribe pair on `notification` only.
|
|
153
|
+
* A message that cannot be sent as given returns the reason.
|
|
148
154
|
*/
|
|
149
155
|
function outgoingEmail(message, target, defaultFrom) {
|
|
150
156
|
const from = message.from ?? defaultFrom;
|
|
@@ -188,7 +194,10 @@ function optionalString(value) {
|
|
|
188
194
|
if (value === void 0) return;
|
|
189
195
|
return typeof value === "string" && value !== "" ? value : null;
|
|
190
196
|
}
|
|
191
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* The recipient in the form its channel compares, or `null` when it is
|
|
199
|
+
* malformed.
|
|
200
|
+
*/
|
|
192
201
|
function checkRecipient(value) {
|
|
193
202
|
const record = ownRecord(value);
|
|
194
203
|
const channel = record?.["channel"];
|
|
@@ -281,9 +290,9 @@ async function sendBatch(transport, batch) {
|
|
|
281
290
|
}));
|
|
282
291
|
}
|
|
283
292
|
/**
|
|
284
|
-
* Sends every ready item: one batch call per `batchSize` items for a
|
|
285
|
-
*
|
|
286
|
-
*
|
|
293
|
+
* Sends every ready item: one batch call per `batchSize` items for a transport
|
|
294
|
+
* with `deliverBatch`, one `deliver` call each otherwise. Events keep recipient
|
|
295
|
+
* order.
|
|
287
296
|
*/
|
|
288
297
|
async function send(prepared) {
|
|
289
298
|
const events = prepared.map((entry) => "transport" in entry ? void 0 : entry);
|
|
@@ -310,7 +319,10 @@ async function send(prepared) {
|
|
|
310
319
|
}));
|
|
311
320
|
return events;
|
|
312
321
|
}
|
|
313
|
-
/**
|
|
322
|
+
/**
|
|
323
|
+
* Routes checked recipients to channel transports and records a delivery event
|
|
324
|
+
* for each.
|
|
325
|
+
*/
|
|
314
326
|
function createPermDock(_policy, options) {
|
|
315
327
|
const source = options.source ?? "permdock";
|
|
316
328
|
const decideRecipient = async (permdock, checked, permission, row) => {
|
|
@@ -497,9 +509,9 @@ function fromStatus(status) {
|
|
|
497
509
|
}
|
|
498
510
|
/**
|
|
499
511
|
* Posts each CloudEvent to the target's https endpoint as
|
|
500
|
-
* `application/cloudevents+json`, signed with the Standard Webhooks
|
|
501
|
-
*
|
|
502
|
-
*
|
|
512
|
+
* `application/cloudevents+json`, signed with the Standard Webhooks headers.
|
|
513
|
+
* `webhook-id` is the idempotency key, so a retry repeats it and the receiver
|
|
514
|
+
* drops the duplicate. Redirects are not followed.
|
|
503
515
|
*/
|
|
504
516
|
function webhookTransport(signer, options = {}) {
|
|
505
517
|
const timeout = options.timeout ?? 1e4;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { t as assertAppData } from "./app-data-
|
|
3
|
-
import { d as isoNow } from "./time-
|
|
4
|
-
import { n as requireEventInstant } from "./event-time-
|
|
2
|
+
import { t as assertAppData } from "./app-data-UNNm07jV.js";
|
|
3
|
+
import { d as isoNow } from "./time-nR1JesoH.js";
|
|
4
|
+
import { n as requireEventInstant } from "./event-time-BGy48400.js";
|
|
5
5
|
//#region src/core/delivery-event.ts
|
|
6
6
|
/**
|
|
7
|
-
* A `delivery` sink event. Throws a `TypeError` when `cause` or `retryable`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* A `delivery` sink event. Throws a `TypeError` when `cause` or `retryable` is
|
|
8
|
+
* set on an operation other than `failed`, and a `RangeError` for a malformed
|
|
9
|
+
* `at`.
|
|
10
10
|
*/
|
|
11
11
|
function checkedX(x) {
|
|
12
12
|
assertAppData(x, "x of a delivery event");
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Ln as Decision } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
|
+
//#region src/agent/denied-text.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* What an agent adapter's `deniedText` receives: the refusal and the text
|
|
6
|
+
* PermDock wrote for it.
|
|
7
|
+
*/
|
|
8
|
+
type DeniedTextEvent = {
|
|
9
|
+
readonly decision: Exclude<Decision, {
|
|
10
|
+
readonly outcome: "granted";
|
|
11
|
+
}> | null;
|
|
12
|
+
readonly permission: Permission | undefined;
|
|
13
|
+
readonly text: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Replaces the human-readable text of a refusal, and nothing else: the outcome,
|
|
17
|
+
* `isError`, the structured content and the approval token stay. `undefined`
|
|
18
|
+
* keeps PermDock's text.
|
|
19
|
+
*/
|
|
20
|
+
type DeniedText = (event: DeniedTextEvent) => string | undefined;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { DeniedTextEvent as n, DeniedText as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as flattenApprovers } from "./approvers-
|
|
2
|
-
import { r as requiredPlans } from "./problem-details-
|
|
1
|
+
import { i as flattenApprovers } from "./approvers-B4r0N_Uz.js";
|
|
2
|
+
import { r as requiredPlans } from "./problem-details-CLDgX1KV.js";
|
|
3
3
|
//#region src/core/describe.ts
|
|
4
4
|
const TENANT_REASONS = /* @__PURE__ */ new Set([
|
|
5
5
|
"tenant-mismatch",
|
|
@@ -31,7 +31,7 @@ function labelGrantee(grantee) {
|
|
|
31
31
|
default: return grantee;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
const
|
|
34
|
+
const DESCRIBE_TITLES = {
|
|
35
35
|
granted: "Granted",
|
|
36
36
|
denied: "Denied",
|
|
37
37
|
approval: "Approval required",
|
|
@@ -57,7 +57,7 @@ function approvalDetail(permission, labels) {
|
|
|
57
57
|
function describe(decision, options) {
|
|
58
58
|
const messages = options?.messages;
|
|
59
59
|
const labelOf = (key) => options?.permission?.key === key ? options.permission.meta?.title ?? key : key;
|
|
60
|
-
const titleOf = (kind) => messages?.titles?.[kind] ??
|
|
60
|
+
const titleOf = (kind) => messages?.titles?.[kind] ?? DESCRIBE_TITLES[kind];
|
|
61
61
|
if (decision.outcome === "granted") {
|
|
62
62
|
const permission = labelOf(decision.matched.permission);
|
|
63
63
|
return {
|
|
@@ -97,4 +97,4 @@ function describe(decision, options) {
|
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
//#endregion
|
|
100
|
-
export { describe as t };
|
|
100
|
+
export { describe as n, DESCRIBE_TITLES as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Bn as DenialReason, Ln as Decision, Vn as DeniedDecision } from "./policy-types-
|
|
2
|
-
import { u as Permission } from "./permission-types-
|
|
1
|
+
import { Bn as DenialReason, Ln as Decision, Vn as DeniedDecision } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
3
|
//#region src/core/describe.d.ts
|
|
4
4
|
type DecisionDescription = {
|
|
5
5
|
readonly kind: "granted" | "denied" | "approval" | "tenant" | "delegation" | "server-only" | "upgrade";
|
|
@@ -16,9 +16,9 @@ type DecisionDescription = {
|
|
|
16
16
|
type DescribeMessages = {
|
|
17
17
|
readonly titles?: Partial<Record<DecisionDescription["kind"], string>>;
|
|
18
18
|
/**
|
|
19
|
-
* Text per denial reason; a denied detail joins the texts of its reasons
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* Text per denial reason; a denied detail joins the texts of its reasons with
|
|
20
|
+
* `separator`. The function form also sees the decision; `undefined` keeps
|
|
21
|
+
* the reason code, as a missing record entry does.
|
|
22
22
|
*/
|
|
23
23
|
readonly reasons?: Partial<Record<DenialReason, string>> | ((reason: DenialReason, decision: DeniedDecision) => string | undefined);
|
|
24
24
|
/** Joins denial reason texts. Default `', '`. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { h as secondsAt } from "./time-
|
|
3
|
-
import { n as readBodyText } from "./body-text-
|
|
2
|
+
import { h as secondsAt } from "./time-nR1JesoH.js";
|
|
3
|
+
import { n as readBodyText } from "./body-text-DQhcmqdY.js";
|
|
4
4
|
import { t as timeoutSignal } from "./timeout-D51niuQP.js";
|
|
5
5
|
//#region src/terminal/device.ts
|
|
6
6
|
/** Milliseconds an authorization server request may take. */
|
|
@@ -15,7 +15,10 @@ async function readJson(response) {
|
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* POSTs a form and reads a JSON object back; any network or parse failure is
|
|
20
|
+
* `null`.
|
|
21
|
+
*/
|
|
19
22
|
async function postForm(runtime, url, fields) {
|
|
20
23
|
const fetchImpl = runtime.fetch ?? fetch;
|
|
21
24
|
try {
|
|
@@ -33,9 +36,9 @@ function withoutTrailingSlash(url) {
|
|
|
33
36
|
return url.replace(/\/+$/u, "");
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
|
-
* Where RFC 8414 metadata may live: the well-known segment inserted before
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
+
* Where RFC 8414 metadata may live: the well-known segment inserted before the
|
|
40
|
+
* issuer's path (section 3.1), then appended after it for servers that predate
|
|
41
|
+
* the rule. An issuer without a path has one location.
|
|
39
42
|
*/
|
|
40
43
|
function metadataUrls(issuer) {
|
|
41
44
|
const parsed = new URL(issuer);
|
|
@@ -44,8 +47,8 @@ function metadataUrls(issuer) {
|
|
|
44
47
|
return path === "" ? [inserted] : [inserted, `${withoutTrailingSlash(issuer)}/.well-known/oauth-authorization-server`];
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
|
-
* The issuer's RFC 8414 metadata, or `null`. Metadata whose `issuer` is not
|
|
48
|
-
*
|
|
50
|
+
* The issuer's RFC 8414 metadata, or `null`. Metadata whose `issuer` is not the
|
|
51
|
+
* configured issuer is refused (section 3.3), so a mix-up never routes a
|
|
49
52
|
* credential to another server.
|
|
50
53
|
*/
|
|
51
54
|
async function discoverAuthorizationServer(issuer, runtime) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
-
import { c as given } from "./flags-
|
|
2
|
+
import { c as given } from "./flags-DXjoTVbS.js";
|
|
3
3
|
//#region src/cli/commands/diff.ts
|
|
4
4
|
const diff = defineLeaf({
|
|
5
5
|
positionals: [{
|
|
@@ -21,7 +21,7 @@ const diff = defineLeaf({
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
async run(ctx, { flags, args }) {
|
|
24
|
-
return (await import("./diff-
|
|
24
|
+
return (await import("./diff-iZWV65nC.js")).runDiff({
|
|
25
25
|
cwd: ctx.cwd,
|
|
26
26
|
config: ctx.config,
|
|
27
27
|
sources: [args["before"], args["after"]].filter((value) => value !== void 0),
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { A as memoryCustomRoleSource } from "./src-
|
|
2
|
-
import { n as findPermission } from "./permission-registry-
|
|
3
|
-
import { g as secondsOf } from "./time-
|
|
1
|
+
import { A as memoryCustomRoleSource } from "./src-DZ0l9UAg.js";
|
|
2
|
+
import { n as findPermission } from "./permission-registry-B8tYxPIt.js";
|
|
3
|
+
import { g as secondsOf } from "./time-nR1JesoH.js";
|
|
4
4
|
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
5
|
-
import { t as getPermDock } from "./permdock-
|
|
6
|
-
import { i as configError, u as usageResult } from "./errors-
|
|
7
|
-
import { t as buildCatalog } from "./catalog-doc-
|
|
8
|
-
import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-
|
|
9
|
-
import { t as parseCatalog } from "./parse-
|
|
10
|
-
import { t as operationFindings } from "./operation-findings-
|
|
11
|
-
import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-
|
|
5
|
+
import { t as getPermDock } from "./permdock-L-_I_3zP.js";
|
|
6
|
+
import { i as configError, u as usageResult } from "./errors-Vpu6rKHl.js";
|
|
7
|
+
import { t as buildCatalog } from "./catalog-doc-DjMKzJp9.js";
|
|
8
|
+
import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DjSU5KXO.js";
|
|
9
|
+
import { t as parseCatalog } from "./parse-1_ZheTW5.js";
|
|
10
|
+
import { t as operationFindings } from "./operation-findings-CXtFzlKJ.js";
|
|
11
|
+
import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-A1_sp_tR.js";
|
|
12
12
|
import { existsSync, readFileSync } from "node:fs";
|
|
13
13
|
import { resolve } from "node:path";
|
|
14
14
|
//#region src/cli/diff/format.ts
|
|
@@ -90,7 +90,10 @@ function setDiff(before, after) {
|
|
|
90
90
|
removed: before.filter((item) => !b.has(item)).toSorted()
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* What makes two grants "the same grant" across versions: everything but the
|
|
95
|
+
* body.
|
|
96
|
+
*/
|
|
94
97
|
function grantIdentity(grant) {
|
|
95
98
|
return canonicalJson({
|
|
96
99
|
permission: grant.permission,
|
|
@@ -125,7 +128,10 @@ function fieldsChange(before, after) {
|
|
|
125
128
|
}
|
|
126
129
|
const validFrom = (value) => secondsOf(value?.from) ?? Number.NEGATIVE_INFINITY;
|
|
127
130
|
const validUntil = (value) => secondsOf(value?.until) ?? Number.POSITIVE_INFINITY;
|
|
128
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* Narrowed when the window starts later or ends earlier than before; a new
|
|
133
|
+
* window on an open grant narrows it.
|
|
134
|
+
*/
|
|
129
135
|
function validityChange(before, after) {
|
|
130
136
|
return validFrom(after) > validFrom(before) || validUntil(after) < validUntil(before) ? "validity narrowed" : "validity widened";
|
|
131
137
|
}
|
|
@@ -207,7 +213,10 @@ function sideRef(side) {
|
|
|
207
213
|
function aliasesOf(catalog) {
|
|
208
214
|
return new Map(catalog.permissions.flatMap((item) => (item.renamedFrom ?? []).map((old) => [old, item.key])));
|
|
209
215
|
}
|
|
210
|
-
/**
|
|
216
|
+
/**
|
|
217
|
+
* `a` with every key `b` renamed written as its new key, so grants compare by
|
|
218
|
+
* the current name.
|
|
219
|
+
*/
|
|
211
220
|
function underNames(a, aliases) {
|
|
212
221
|
if (a.catalog.grants === void 0 || aliases.size === 0) return a;
|
|
213
222
|
return {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
//#region src/core/digest.d.ts
|
|
2
2
|
/**
|
|
3
3
|
* What a PermDock error's `digest` says. React keeps `digest` when an error
|
|
4
|
-
* crosses from a Server Component to the client, where production builds
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* crosses from a Server Component to the client, where production builds redact
|
|
5
|
+
* the message, so a client error boundary can still tell a denial or an
|
|
6
|
+
* approval request from any other failure.
|
|
7
7
|
*/
|
|
8
8
|
type PermDockDigest = {
|
|
9
9
|
readonly outcome: "denied";
|