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,29 +1,29 @@
|
|
|
1
1
|
import { n as isReadonlyArray, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { n as isForbiddenKey, r as ownGet } from "./paths-
|
|
4
|
-
import { f as normalizeApproval, g as assertSqlFunctionName, h as assertSqlFunctionArg, m as assertPortableTwin, p as normalizeWhere, u as assertApprovalRelations } from "./role-builder-
|
|
5
|
-
import { n as PermDockDeniedError } from "./errors-
|
|
6
|
-
import { o as sameId } from "./expiry-
|
|
7
|
-
import { n as internalsOf } from "./internals-
|
|
8
|
-
import { c as listPermissions, i as getRegistry, n as findPermission, o as isPermission } from "./permission-registry-
|
|
9
|
-
import { n as isThenable$1 } from "./thenable-
|
|
10
|
-
import { c as isEdgeRelation, m as restrictedStops, o as groupEntries, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-
|
|
11
|
-
import { a as durationOf, g as secondsOf, m as rfc3339, p as nowSeconds } from "./time-
|
|
12
|
-
import { a as normalizeMembership$1, d as scopeIdOf, f as scopeList, h as tenantOf, o as normalizeMemberships$1, s as resolveScope$1, u as scopeChain } from "./scopes-
|
|
13
|
-
import { u as evaluateCondition } from "./delegation-
|
|
14
|
-
import { _ as listPlans, a as authenticated, m as findRole, o as flattenGrantee } from "./grantee-
|
|
15
|
-
import { m as tenantsOf, r as isMembershipExpired } from "./tenancy-
|
|
16
|
-
import {
|
|
17
|
-
import { o as isPortableCondition } from "./hosted-
|
|
18
|
-
import { n as OPERATION_RISKS, r as isOperationRisk } from "./permissions-
|
|
19
|
-
import { C as tenantCustomRoles, f as customRoleId, l as ceilingGrants, m as customRoleScope, p as customRoleOf, x as resolveCustomRole } from "./evaluate-
|
|
20
|
-
import {
|
|
21
|
-
import { n as relationId } from "./relations-
|
|
22
|
-
import {
|
|
23
|
-
import { n as LOCAL_CUSTOM_ROLE } from "./parse-local-manifest-
|
|
24
|
-
import { c as APP, r as resolveSubject } from "./permdock-
|
|
25
|
-
import { i as memoryApprovalStore } from "./store-
|
|
26
|
-
import { n as wrapPermDock } from "./wrap-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { n as isForbiddenKey, r as ownGet } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { f as normalizeApproval, g as assertSqlFunctionName, h as assertSqlFunctionArg, m as assertPortableTwin, p as normalizeWhere, u as assertApprovalRelations } from "./role-builder-BK2-T6oD.js";
|
|
5
|
+
import { n as PermDockDeniedError } from "./errors-B6R_lg2a.js";
|
|
6
|
+
import { o as sameId } from "./expiry-6XByK0dm.js";
|
|
7
|
+
import { n as internalsOf } from "./internals-B3IgHrvo.js";
|
|
8
|
+
import { c as listPermissions, i as getRegistry, n as findPermission, o as isPermission } from "./permission-registry-B8tYxPIt.js";
|
|
9
|
+
import { n as isThenable$1 } from "./thenable-BNSM1U2R.js";
|
|
10
|
+
import { c as isEdgeRelation, m as restrictedStops, o as groupEntries, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
|
|
11
|
+
import { a as durationOf, g as secondsOf, m as rfc3339, p as nowSeconds } from "./time-nR1JesoH.js";
|
|
12
|
+
import { a as normalizeMembership$1, d as scopeIdOf, f as scopeList, h as tenantOf, l as rootScope, o as normalizeMemberships$1, s as resolveScope$1, u as scopeChain } from "./scopes-0Up_UA2t.js";
|
|
13
|
+
import { u as evaluateCondition } from "./delegation-CDB6_keF.js";
|
|
14
|
+
import { _ as listPlans, a as authenticated, m as findRole, o as flattenGrantee } from "./grantee-Dke-9rd1.js";
|
|
15
|
+
import { m as tenantsOf, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
|
|
16
|
+
import { c as levelNames, i as grantList, n as declaredRoleNames } from "./policy-CLQ8__GF.js";
|
|
17
|
+
import { o as isPortableCondition } from "./hosted-D0IzESu_.js";
|
|
18
|
+
import { n as OPERATION_RISKS, r as isOperationRisk } from "./permissions-CVXmRILq.js";
|
|
19
|
+
import { C as tenantCustomRoles, S as roleAllowKeys, f as customRoleId, l as ceilingGrants, m as customRoleScope, p as customRoleOf, x as resolveCustomRole } from "./evaluate-Dd8Ta0Ie.js";
|
|
20
|
+
import { a as heldLevels, f as bindingOf, h as usesAssigns, m as roleMeta, n as snapshotScopes, o as collectSnapshotGrants, p as rankRoles, r as assignableCandidates, t as snapshotOf } from "./instance-snapshot--JWiTrvO.js";
|
|
21
|
+
import { n as relationId } from "./relations-BxvRvDHK.js";
|
|
22
|
+
import { i as snapshotGrant, r as plainPermission, t as buildSnapshot } from "./snapshot-CXlzi69u.js";
|
|
23
|
+
import { n as LOCAL_CUSTOM_ROLE } from "./parse-local-manifest-DEiCF4ah.js";
|
|
24
|
+
import { c as APP, r as resolveSubject } from "./permdock-L-_I_3zP.js";
|
|
25
|
+
import { i as memoryApprovalStore } from "./store-RNFvaJJv.js";
|
|
26
|
+
import { n as wrapPermDock } from "./wrap-B2wziJI_.js";
|
|
27
27
|
//#region src/conditions/sql-function.ts
|
|
28
28
|
function sqlFunction(name, options) {
|
|
29
29
|
assertSqlFunctionName(name);
|
|
@@ -51,7 +51,10 @@ function memorySettingsSource(settings) {
|
|
|
51
51
|
return byTenant.get(tenant);
|
|
52
52
|
} });
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Memberships keyed by principal id; `tenant` is not a filter, as for a
|
|
56
|
+
* database source.
|
|
57
|
+
*/
|
|
55
58
|
function memoryMembershipSource(entries) {
|
|
56
59
|
const byPrincipal = new Map(Object.entries(entries));
|
|
57
60
|
return Object.freeze({
|
|
@@ -125,7 +128,10 @@ const OPERATION_EFFECTS = Object.freeze([
|
|
|
125
128
|
"spend",
|
|
126
129
|
"external"
|
|
127
130
|
]);
|
|
128
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* MCP tool-name characters (MCP 2025-11-25, Tools: Tool names), so a name works
|
|
133
|
+
* as a tool name unchanged.
|
|
134
|
+
*/
|
|
129
135
|
const NAME = /^[A-Za-z0-9_.-]{1,128}$/u;
|
|
130
136
|
const META_KEYS = /* @__PURE__ */ new Set([
|
|
131
137
|
"risk",
|
|
@@ -199,7 +205,10 @@ function defineOperations(permissions, definitions) {
|
|
|
199
205
|
}
|
|
200
206
|
//#endregion
|
|
201
207
|
//#region src/core/approval-policies.ts
|
|
202
|
-
/**
|
|
208
|
+
/**
|
|
209
|
+
* The denial detail when an `ApprovalPolicySource` fails: every call an allow
|
|
210
|
+
* would grant denies with reason `approval`.
|
|
211
|
+
*/
|
|
203
212
|
/**
|
|
204
213
|
* The in-process `ApprovalPolicySource`, usable directly as the
|
|
205
214
|
* `approvalPolicies` option: it is the source and its feature at once.
|
|
@@ -284,9 +293,9 @@ function checkOne(policy, raw) {
|
|
|
284
293
|
}) };
|
|
285
294
|
}
|
|
286
295
|
/**
|
|
287
|
-
* Checks one entry against the policy the way `approvalPoliciesFor` loads
|
|
288
|
-
*
|
|
289
|
-
*
|
|
296
|
+
* Checks one entry against the policy the way `approvalPoliciesFor` loads it,
|
|
297
|
+
* for an application to refuse a bad entry when it is saved instead of finding
|
|
298
|
+
* every call denied. Never throws.
|
|
290
299
|
*/
|
|
291
300
|
function validateApprovalPolicy(policy, entry) {
|
|
292
301
|
try {
|
|
@@ -303,9 +312,9 @@ function validateApprovalPolicy(policy, entry) {
|
|
|
303
312
|
}
|
|
304
313
|
}
|
|
305
314
|
/**
|
|
306
|
-
* One raw entry checked against the policy: `null` when it names no
|
|
307
|
-
*
|
|
308
|
-
*
|
|
315
|
+
* One raw entry checked against the policy: `null` when it names no permission
|
|
316
|
+
* the policy declares (it applies to nothing), `undefined` when it does not
|
|
317
|
+
* load.
|
|
309
318
|
*/
|
|
310
319
|
function loadOne(policy, raw) {
|
|
311
320
|
const checked = checkOne(policy, raw);
|
|
@@ -322,7 +331,10 @@ function loadAll(policy, raw) {
|
|
|
322
331
|
}
|
|
323
332
|
return Object.freeze({ tighten: (code, input) => tightenApproval(code, out, input) });
|
|
324
333
|
}
|
|
325
|
-
/**
|
|
334
|
+
/**
|
|
335
|
+
* Reads the source once for `tenants`; a throw or an invalid entry loads as
|
|
336
|
+
* `"failed"`.
|
|
337
|
+
*/
|
|
326
338
|
function approvalPoliciesFor(policy, source, tenants, auth) {
|
|
327
339
|
const threw = () => {
|
|
328
340
|
auth.push({
|
|
@@ -361,7 +373,10 @@ function asStages(approval) {
|
|
|
361
373
|
quorum: approval.quorum
|
|
362
374
|
})];
|
|
363
375
|
}
|
|
364
|
-
/**
|
|
376
|
+
/**
|
|
377
|
+
* An entry's stages, each carrying the entry's escalation unless it has its
|
|
378
|
+
* own.
|
|
379
|
+
*/
|
|
365
380
|
function entryStages(approval) {
|
|
366
381
|
const stages = asStages(approval);
|
|
367
382
|
if (approval === "human" || approval.escalation === void 0) return stages;
|
|
@@ -378,10 +393,10 @@ function shorter(a, b) {
|
|
|
378
393
|
return (durationOf(b) ?? Infinity) < (durationOf(a) ?? Infinity) ? b : a;
|
|
379
394
|
}
|
|
380
395
|
/**
|
|
381
|
-
* `code` with every matching entry added as further stages: the result
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
396
|
+
* `code` with every matching entry added as further stages: the result needs
|
|
397
|
+
* all of them (`'sequential'` when any part is ordered), keeps the code's
|
|
398
|
+
* escalation, the shortest `ttl`, and `distinct` unless every part opts out.
|
|
399
|
+
* Without a matching entry, `code` unchanged.
|
|
385
400
|
*/
|
|
386
401
|
function tightenApproval(code, entries, input) {
|
|
387
402
|
const extra = entries.filter((entry) => (entry.permission === void 0 || entry.permission === input.permission) && metaMatches(entry, input.operation) && matches(entry, input.tenant, input.subject, input.current, input.next, input.now, input.scopes));
|
|
@@ -621,7 +636,10 @@ function applyQuota(store, input) {
|
|
|
621
636
|
}
|
|
622
637
|
//#endregion
|
|
623
638
|
//#region src/core/memory-relations.ts
|
|
624
|
-
/**
|
|
639
|
+
/**
|
|
640
|
+
* The holders one edge-table row names for `spec`: none when the row does not
|
|
641
|
+
* belong to it.
|
|
642
|
+
*/
|
|
625
643
|
function tableHolders(resourceName, spec, row, id) {
|
|
626
644
|
if (relationId(ownGet(row, spec.object ?? `${resourceName}_id`)) !== id) return [];
|
|
627
645
|
for (const [column, value] of Object.entries(spec.match ?? {})) if (ownGet(row, column) !== value) return [];
|
|
@@ -942,7 +960,10 @@ function permissionKeysOf(node) {
|
|
|
942
960
|
if (!Array.isArray(raw)) return [];
|
|
943
961
|
return raw.filter((item) => typeof item === "string");
|
|
944
962
|
}
|
|
945
|
-
/**
|
|
963
|
+
/**
|
|
964
|
+
* `$inputs.a.b` against the frame's inputs; anything else that is a runtime
|
|
965
|
+
* expression is unknown.
|
|
966
|
+
*/
|
|
946
967
|
function valueOf(value, inputs) {
|
|
947
968
|
if (typeof value !== "string" || !value.includes("$")) return {
|
|
948
969
|
known: true,
|
|
@@ -1142,10 +1163,9 @@ function combine(decisions) {
|
|
|
1142
1163
|
return decisions.find((item) => item.outcome === outcome) ?? denied("undocumented");
|
|
1143
1164
|
}
|
|
1144
1165
|
/**
|
|
1145
|
-
* Walks an Arazzo workflow against `permdock`: each step's operation is
|
|
1146
|
-
*
|
|
1147
|
-
*
|
|
1148
|
-
* snapshot too.
|
|
1166
|
+
* Walks an Arazzo workflow against `permdock`: each step's operation is decided
|
|
1167
|
+
* as `permdock.simulate` would, and a server instance emits one simulate event
|
|
1168
|
+
* for the whole plan. Works on an instance built from a snapshot too.
|
|
1149
1169
|
*/
|
|
1150
1170
|
function simulateArazzo(permdock, input) {
|
|
1151
1171
|
const tree = input.permissions ?? permdock.permissions;
|
|
@@ -1205,7 +1225,10 @@ function planArazzo(input, tree, decide) {
|
|
|
1205
1225
|
}
|
|
1206
1226
|
//#endregion
|
|
1207
1227
|
//#region src/core/local-manifest.ts
|
|
1208
|
-
/**
|
|
1228
|
+
/**
|
|
1229
|
+
* A relation grantee needs the relation graph, which a device does not hold:
|
|
1230
|
+
* the grant decides on the server only.
|
|
1231
|
+
*/
|
|
1209
1232
|
function localGrant(grant) {
|
|
1210
1233
|
const relational = flattenGrantee(grant.to).some((item) => item.kind === "relation");
|
|
1211
1234
|
return snapshotGrant(relational ? {
|
|
@@ -1213,6 +1236,21 @@ function localGrant(grant) {
|
|
|
1213
1236
|
portable: false
|
|
1214
1237
|
} : grant, void 0);
|
|
1215
1238
|
}
|
|
1239
|
+
/**
|
|
1240
|
+
* The levels a holder of `grants` may hand out, by permission key; only
|
|
1241
|
+
* permissions whose resource declares levels.
|
|
1242
|
+
*/
|
|
1243
|
+
function reachOf(policy, grants) {
|
|
1244
|
+
const out = /* @__PURE__ */ new Map();
|
|
1245
|
+
for (const grant of grants) {
|
|
1246
|
+
const { key, resource, kind } = grant.permission;
|
|
1247
|
+
const names = grant.effect === "allow" && kind === "instance" ? levelNames(policy, resource) : [];
|
|
1248
|
+
if (names.length === 0) continue;
|
|
1249
|
+
const held = /* @__PURE__ */ new Set([...out.get(key) ?? [], ...heldLevels(policy, grant, names)]);
|
|
1250
|
+
out.set(key, names.filter((name) => held.has(name)));
|
|
1251
|
+
}
|
|
1252
|
+
return Object.fromEntries(out);
|
|
1253
|
+
}
|
|
1216
1254
|
function customTable(policy, scope, roles) {
|
|
1217
1255
|
const keys = [...new Set(ceilingGrants(policy, scope).map((grant) => grant.permission.key))];
|
|
1218
1256
|
if (keys.length === 0) return;
|
|
@@ -1225,28 +1263,71 @@ function customTable(policy, scope, roles) {
|
|
|
1225
1263
|
tenant: LOCAL_CUSTOM_ROLE,
|
|
1226
1264
|
scope,
|
|
1227
1265
|
...body
|
|
1228
|
-
}).grants
|
|
1266
|
+
}).grants;
|
|
1229
1267
|
const permissions = {};
|
|
1230
1268
|
for (const key of keys) {
|
|
1231
1269
|
const leaf = findPermission(policy.permissions, key);
|
|
1232
1270
|
const names = leaf?.kind === "instance" ? levelNames(policy, leaf.resource) : [];
|
|
1271
|
+
const all = resolve({ grants: [{ permission: key }] });
|
|
1272
|
+
const leveled = names.map((level) => [level, resolve({ grants: [{
|
|
1273
|
+
permission: key,
|
|
1274
|
+
level
|
|
1275
|
+
}] })]);
|
|
1233
1276
|
permissions[key] = compact({
|
|
1234
|
-
all:
|
|
1235
|
-
levels: names.length === 0 ? void 0 : Object.fromEntries(
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
}] })]))
|
|
1277
|
+
all: all.map(localGrant),
|
|
1278
|
+
levels: names.length === 0 ? void 0 : Object.fromEntries(leveled.map(([level, grants]) => [level, grants.map(localGrant)])),
|
|
1279
|
+
reach: names.length === 0 ? void 0 : reachOf(policy, all)[key] ?? [],
|
|
1280
|
+
levelReach: names.length === 0 ? void 0 : Object.fromEntries(leveled.map(([level, grants]) => [level, reachOf(policy, grants)[key] ?? []]))
|
|
1239
1281
|
});
|
|
1240
1282
|
}
|
|
1241
1283
|
const includes = {};
|
|
1284
|
+
const includeReach = {};
|
|
1242
1285
|
for (const role of roles) {
|
|
1243
1286
|
const grants = resolve({ includes: [role] });
|
|
1244
|
-
if (grants.length > 0)
|
|
1287
|
+
if (grants.length > 0) {
|
|
1288
|
+
includes[role] = grants.map(localGrant);
|
|
1289
|
+
const reach = reachOf(policy, grants);
|
|
1290
|
+
if (Object.keys(reach).length > 0) includeReach[role] = reach;
|
|
1291
|
+
}
|
|
1245
1292
|
}
|
|
1246
|
-
return {
|
|
1293
|
+
return compact({
|
|
1247
1294
|
permissions,
|
|
1248
|
-
includes
|
|
1249
|
-
|
|
1295
|
+
includes,
|
|
1296
|
+
includeReach: Object.keys(includeReach).length === 0 ? void 0 : includeReach
|
|
1297
|
+
});
|
|
1298
|
+
}
|
|
1299
|
+
/** The hand-out rules `buildLocalSnapshot` applies on the device. */
|
|
1300
|
+
function localAssignable(policy) {
|
|
1301
|
+
const scopes = scopeList(policy.scopes);
|
|
1302
|
+
const root = rootScope(scopes);
|
|
1303
|
+
const ceiling = new Set((root === void 0 ? [] : ceilingGrants(policy, root)).map((grant) => grant.permission.key));
|
|
1304
|
+
const leaves = listPermissions(policy.permissions);
|
|
1305
|
+
const levels = {};
|
|
1306
|
+
for (const leaf of leaves) {
|
|
1307
|
+
const names = leaf.kind === "instance" ? levelNames(policy, leaf.resource) : [];
|
|
1308
|
+
if (names.length > 0) levels[leaf.key] = names;
|
|
1309
|
+
}
|
|
1310
|
+
const grants = {};
|
|
1311
|
+
for (const [index, grant] of grantList(policy).entries()) {
|
|
1312
|
+
const reach = flattenGrantee(grant.to).some((item) => item.kind === "relation") ? levels[grant.permission.key] === void 0 ? void 0 : [] : reachOf(policy, [grant])[grant.permission.key];
|
|
1313
|
+
if (reach !== void 0) grants[String(index)] = reach;
|
|
1314
|
+
}
|
|
1315
|
+
const declared = [...declaredRoleNames(policy)].toSorted();
|
|
1316
|
+
return compact({
|
|
1317
|
+
roles: assignableCandidates(policy).map((leaf) => ({
|
|
1318
|
+
name: leaf.key,
|
|
1319
|
+
on: (leaf.on === void 0 ? root : resolveScope$1(scopes, leaf.on)) ?? "global",
|
|
1320
|
+
allows: [...roleAllowKeys(policy, leaf.key)].toSorted()
|
|
1321
|
+
})),
|
|
1322
|
+
manage: {
|
|
1323
|
+
roles: declared.filter((name) => roleMeta(policy, name)?.manageRoles === true),
|
|
1324
|
+
permissions: leaves.filter((leaf) => leaf.meta.manageRoles === true).map((leaf) => leaf.key)
|
|
1325
|
+
},
|
|
1326
|
+
assigns: usesAssigns(policy) ? Object.fromEntries(declared.map((name) => [name, policy.rolesByName.get(name)?.assigns ?? []])) : void 0,
|
|
1327
|
+
permissions: leaves.filter((leaf) => ceiling.has(leaf.key)).map(plainPermission),
|
|
1328
|
+
levels: Object.keys(levels).length === 0 ? void 0 : levels,
|
|
1329
|
+
grants: Object.keys(grants).length === 0 ? void 0 : grants
|
|
1330
|
+
});
|
|
1250
1331
|
}
|
|
1251
1332
|
/**
|
|
1252
1333
|
* What the policy grants, as JSON a device turns into snapshots from its own
|
|
@@ -1277,7 +1358,8 @@ function localSnapshotManifest(policy) {
|
|
|
1277
1358
|
roles,
|
|
1278
1359
|
rank: usesAssigns(policy) ? rankRoles(policy, roles) : void 0,
|
|
1279
1360
|
grants: grantList(policy).map(localGrant),
|
|
1280
|
-
custom
|
|
1361
|
+
custom,
|
|
1362
|
+
assignable: localAssignable(policy)
|
|
1281
1363
|
}));
|
|
1282
1364
|
}
|
|
1283
1365
|
//#endregion
|
|
@@ -1291,10 +1373,10 @@ function assertProduction(policy, options) {
|
|
|
1291
1373
|
if (options.limits === void 0 && grants.some((grant) => grant.limit !== void 0)) throw new Error("PermDock: profile 'prod' needs limits: a grant has a limit and every call would deny with limit-unavailable; pass limits: limits(store)");
|
|
1292
1374
|
}
|
|
1293
1375
|
/**
|
|
1294
|
-
* The in-process services `dev` fills in: one memory approval store that
|
|
1295
|
-
*
|
|
1296
|
-
*
|
|
1297
|
-
*
|
|
1376
|
+
* The in-process services `dev` fills in: one memory approval store that every
|
|
1377
|
+
* adapter of the app shares, and memory limits when a grant has a `limit`. They
|
|
1378
|
+
* live here, not in the adapters, so an adapter ships no store and an app
|
|
1379
|
+
* without `defineApp` ships neither.
|
|
1298
1380
|
*/
|
|
1299
1381
|
function devDefaults(policy, options) {
|
|
1300
1382
|
return {
|
|
@@ -1305,10 +1387,10 @@ function devDefaults(policy, options) {
|
|
|
1305
1387
|
};
|
|
1306
1388
|
}
|
|
1307
1389
|
/**
|
|
1308
|
-
* Binds the app's sources, features and services to `policy`. The result
|
|
1309
|
-
*
|
|
1310
|
-
*
|
|
1311
|
-
*
|
|
1390
|
+
* Binds the app's sources, features and services to `policy`. The result is a
|
|
1391
|
+
* policy: pass it wherever a policy goes (`createPermDock`, every adapter, the
|
|
1392
|
+
* CLI) and each picks up the app definition, with its own options taking
|
|
1393
|
+
* precedence. The profile defaults to `prod`.
|
|
1312
1394
|
*/
|
|
1313
1395
|
function defineApp(policy, options = {}) {
|
|
1314
1396
|
const profile = options.profile ?? "prod";
|
|
@@ -1356,12 +1438,12 @@ function legacyDecision(allowed, permission, subject) {
|
|
|
1356
1438
|
});
|
|
1357
1439
|
}
|
|
1358
1440
|
/**
|
|
1359
|
-
* Runs PermDock beside the application's existing checks while adopting
|
|
1360
|
-
*
|
|
1361
|
-
*
|
|
1362
|
-
*
|
|
1363
|
-
*
|
|
1364
|
-
*
|
|
1441
|
+
* Runs PermDock beside the application's existing checks while adopting it.
|
|
1442
|
+
* Each `can`, `decide`, `decideEach`, `filter` and `assert` asks both; the
|
|
1443
|
+
* legacy answer is returned unless the permission is in `enforce`, and every
|
|
1444
|
+
* disagreement reaches `onMismatch`. Promote permissions one by one as their
|
|
1445
|
+
* mismatches are resolved, then remove the wrap. Pass it as an adapter's `wrap`
|
|
1446
|
+
* option, or call it on a core instance.
|
|
1365
1447
|
*/
|
|
1366
1448
|
function shadowMode(options) {
|
|
1367
1449
|
const enforced = (permission) => options.enforce === "all" || (options.enforce ?? []).some((item) => item.key === permission.key);
|
|
@@ -1466,9 +1548,9 @@ function ofTenant(tenant, roles) {
|
|
|
1466
1548
|
return Array.isArray(roles) ? roles.filter((role) => role !== null && typeof role === "object" && Reflect.get(role, "tenant") === tenant) : [];
|
|
1467
1549
|
}
|
|
1468
1550
|
/**
|
|
1469
|
-
* A `CustomRoleSource` over a reader that returns every custom role of a
|
|
1470
|
-
* It keeps only the roles of the requested tenant. With `read: 'held'`
|
|
1471
|
-
* skips a tenant's read, and `globalRoles` and `sharedRoles`, when the
|
|
1551
|
+
* A `CustomRoleSource` over a reader that returns every custom role of a
|
|
1552
|
+
* tenant. It keeps only the roles of the requested tenant. With `read: 'held'`
|
|
1553
|
+
* it skips a tenant's read, and `globalRoles` and `sharedRoles`, when the
|
|
1472
1554
|
* subject holds only declared roles there.
|
|
1473
1555
|
*/
|
|
1474
1556
|
function customRoleSource(reader, options = {}) {
|
|
@@ -1497,10 +1579,10 @@ function withPlans(subject, plans) {
|
|
|
1497
1579
|
}));
|
|
1498
1580
|
}
|
|
1499
1581
|
/**
|
|
1500
|
-
* Builds the serializable access snapshot for a subject without a request,
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
1503
|
-
*
|
|
1582
|
+
* Builds the serializable access snapshot for a subject without a request, a
|
|
1583
|
+
* network call or a cache directive: call it inside the app's own `'use cache:
|
|
1584
|
+
* private'` function. Synchronous; the policy's `subject` and `context` mappers
|
|
1585
|
+
* must be synchronous too.
|
|
1504
1586
|
*/
|
|
1505
1587
|
function snapshotFor(policy, user, options = {}) {
|
|
1506
1588
|
const auth = [];
|
|
@@ -1601,15 +1683,17 @@ function writable(options) {
|
|
|
1601
1683
|
//#endregion
|
|
1602
1684
|
//#region src/core/scope-helpers.ts
|
|
1603
1685
|
/**
|
|
1604
|
-
* The canonical form PermDock evaluates one membership in, or `undefined`
|
|
1605
|
-
*
|
|
1606
|
-
*
|
|
1607
|
-
* `team` pair.
|
|
1686
|
+
* The canonical form PermDock evaluates one membership in, or `undefined` when
|
|
1687
|
+
* it is malformed and grants nothing. `scopes` is the policy's or the catalog's
|
|
1688
|
+
* scope list; absent or empty means the implicit `tenant` and `team` pair.
|
|
1608
1689
|
*/
|
|
1609
1690
|
function normalizeMembership(input, scopes) {
|
|
1610
1691
|
return normalizeMembership$1(input, scopeList(scopes));
|
|
1611
1692
|
}
|
|
1612
|
-
/**
|
|
1693
|
+
/**
|
|
1694
|
+
* Every well-formed membership of `input` in canonical form; malformed entries
|
|
1695
|
+
* are dropped.
|
|
1696
|
+
*/
|
|
1613
1697
|
function normalizeMemberships(input, scopes) {
|
|
1614
1698
|
return normalizeMemberships$1(input, scopeList(scopes));
|
|
1615
1699
|
}
|
|
@@ -1629,14 +1713,20 @@ function coversInstance(membership, scopes, scope, id, within) {
|
|
|
1629
1713
|
const wanted = within === void 0 ? void 0 : Object.entries(within).find(([key]) => resolveScope$1(scopes, key) === membership.scope)?.[1] ?? void 0;
|
|
1630
1714
|
return wanted !== void 0 && scopeIdOf(membership, membership.scope) === wanted;
|
|
1631
1715
|
}
|
|
1632
|
-
/**
|
|
1716
|
+
/**
|
|
1717
|
+
* Roles the principal holds at the instance, at an ancestor named in `within`,
|
|
1718
|
+
* or globally.
|
|
1719
|
+
*/
|
|
1633
1720
|
function rolesAtInstance(policy, principal, scopes, scope, id, within, now) {
|
|
1634
1721
|
const declared = declaredRoleNames(policy);
|
|
1635
1722
|
const names = new Set((principal.roles ?? []).filter((name) => declared.has(name)));
|
|
1636
1723
|
for (const membership of principal.memberships ?? []) if (!isMembershipExpired(membership, now) && coversInstance(membership, scopes, scope, id, within)) for (const name of membership.roles) names.add(name);
|
|
1637
1724
|
return rankRoles(policy, [...names]);
|
|
1638
1725
|
}
|
|
1639
|
-
/**
|
|
1726
|
+
/**
|
|
1727
|
+
* Whether the principal holds `role` on a live membership of exactly this
|
|
1728
|
+
* instance.
|
|
1729
|
+
*/
|
|
1640
1730
|
function holdsAt(principal, role, scope, id, now) {
|
|
1641
1731
|
return (principal.memberships ?? []).some((membership) => membership.scope === scope && sameId(membership.id, id) && !isMembershipExpired(membership, now) && membership.roles.includes(role));
|
|
1642
1732
|
}
|
|
@@ -1644,8 +1734,8 @@ function includedRoles(role) {
|
|
|
1644
1734
|
return isReadonlyArray(role.includes) ? role.includes.filter((name) => typeof name === "string") : [];
|
|
1645
1735
|
}
|
|
1646
1736
|
/**
|
|
1647
|
-
* The membership kinds a custom role may be held through: those every
|
|
1648
|
-
*
|
|
1737
|
+
* The membership kinds a custom role may be held through: those every included
|
|
1738
|
+
* declared role with `for` allows. `undefined` when none restricts.
|
|
1649
1739
|
*/
|
|
1650
1740
|
function customForKinds(policy, role) {
|
|
1651
1741
|
let kinds;
|
|
@@ -1691,10 +1781,10 @@ function countRules(rules, holders, delta, deny) {
|
|
|
1691
1781
|
}
|
|
1692
1782
|
/**
|
|
1693
1783
|
* The rules of a role change that need no subject: `assigns`, `for`,
|
|
1694
|
-
* `exclusiveWith`, `min`, `max` and `transferOnly`, from holder counts and
|
|
1695
|
-
*
|
|
1696
|
-
*
|
|
1697
|
-
*
|
|
1784
|
+
* `exclusiveWith`, `min`, `max` and `transferOnly`, from holder counts and the
|
|
1785
|
+
* target's roles alone. `decideRoleChange` runs the same function after its
|
|
1786
|
+
* actor, tenant and ceiling checks; a service that holds only the catalog calls
|
|
1787
|
+
* it with the `CatalogRole` entries.
|
|
1698
1788
|
*/
|
|
1699
1789
|
function checkRoleChange(role, input) {
|
|
1700
1790
|
const name = role.key;
|
|
@@ -1769,12 +1859,12 @@ function heldAnchor(principal, scopes, scope, id, now) {
|
|
|
1769
1859
|
* the instance's own principal; nothing in `change` can stand in for it.
|
|
1770
1860
|
*/
|
|
1771
1861
|
/**
|
|
1772
|
-
* Whether the subject of `permdock` may assign, revoke or transfer a role
|
|
1773
|
-
*
|
|
1774
|
-
* `
|
|
1775
|
-
*
|
|
1776
|
-
* instance's tenant comes from a live membership the subject holds on it,
|
|
1777
|
-
*
|
|
1862
|
+
* Whether the subject of `permdock` may assign, revoke or transfer a role in
|
|
1863
|
+
* one scope instance: `assigns`, the ceiling, `for`, `exclusiveWith`, `min`,
|
|
1864
|
+
* `max` and `transferOnly`. It never writes; the application does, and
|
|
1865
|
+
* generated RLS triggers re-check the holder counts at commit. A nested
|
|
1866
|
+
* instance's tenant comes from a live membership the subject holds on it, or
|
|
1867
|
+
* from `change.within` only with `{ trusted: true }`; otherwise
|
|
1778
1868
|
* `no-membership`. An instance built from a snapshot denies with
|
|
1779
1869
|
* `unsupported`.
|
|
1780
1870
|
*/
|
|
@@ -1931,8 +2021,8 @@ function field(value) {
|
|
|
1931
2021
|
return /[",\r\n]/u.test(text) ? `"${text.replaceAll("\"", "\"\"")}"` : text;
|
|
1932
2022
|
}
|
|
1933
2023
|
/**
|
|
1934
|
-
* One RFC 4180 row for a decision or approval event, without a line
|
|
1935
|
-
*
|
|
2024
|
+
* One RFC 4180 row for a decision or approval event, without a line terminator;
|
|
2025
|
+
* join rows with CRLF under a `CSV_COLUMNS` header.
|
|
1936
2026
|
*/
|
|
1937
2027
|
function toCsvRow(event) {
|
|
1938
2028
|
return [
|
package/dist/ssf/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as SsfSubject, C as SsfEventName, D as SsfReceiver, E as SsfPermDockOptions, M as SsfTransmitterConfiguration, N as SsfVerification, O as SsfStreamConfiguration, S as SsfEventListener, T as SsfPermDock, _ as SetSubject, a as PollHandle, b as SsfEventHandler, c as PushSetOptions, d as SetDelivery, f as SetDeliveryFailureCause, g as SetQueue, h as SetPollHandlerOptions, i as CaepReason, j as SsfSubjectResolver, k as SsfStreamStatus, l as ReplayStore, m as SetEvent, n as CaepEventName, o as PollOptions, p as SetError, r as CaepInitiatingEntity, s as PollResult, t as CaepCommon, u as RiscEventName, v as SignSetOptions, w as SsfOnEvent, x as SsfEventInput, y as SsfAuditEvent } from "../types-
|
|
2
|
-
import { t as memoryReplayStore } from "../replay-
|
|
3
|
-
import { A as createPermDock, C as memorySsfStreamStore, D as PollSetsResult, E as PollSetsOptions, O as PolledSet, S as SsfStreamStore, T as setPollHandler, _ as SsfFanOut, a as CaepTokenClaimsChange, b as ssfTransmitter, c as RiscEvents, d as caepEvents, f as pushSet, g as FanOutSetOptions, h as streamVerificationEvent, i as CaepEvents, k as pollSets, l as SSF_POLL_DELIVERY, m as signSet, n as CaepCredentialChange, o as RiscAccountDisabled, p as riscEvents, r as CaepDeviceComplianceChange, s as RiscCredentialCompromise, t as CaepAssuranceLevelChange, u as SSF_PUSH_DELIVERY, v as SsfTransmitterOptions, w as memorySetQueue, x as SsfStream, y as fanOutSet } from "../index-
|
|
1
|
+
import { A as SsfSubject, C as SsfEventName, D as SsfReceiver, E as SsfPermDockOptions, M as SsfTransmitterConfiguration, N as SsfVerification, O as SsfStreamConfiguration, S as SsfEventListener, T as SsfPermDock, _ as SetSubject, a as PollHandle, b as SsfEventHandler, c as PushSetOptions, d as SetDelivery, f as SetDeliveryFailureCause, g as SetQueue, h as SetPollHandlerOptions, i as CaepReason, j as SsfSubjectResolver, k as SsfStreamStatus, l as ReplayStore, m as SetEvent, n as CaepEventName, o as PollOptions, p as SetError, r as CaepInitiatingEntity, s as PollResult, t as CaepCommon, u as RiscEventName, v as SignSetOptions, w as SsfOnEvent, x as SsfEventInput, y as SsfAuditEvent } from "../types-DjuMBNF9.js";
|
|
2
|
+
import { t as memoryReplayStore } from "../replay-DNftIb_R.js";
|
|
3
|
+
import { A as createPermDock, C as memorySsfStreamStore, D as PollSetsResult, E as PollSetsOptions, O as PolledSet, S as SsfStreamStore, T as setPollHandler, _ as SsfFanOut, a as CaepTokenClaimsChange, b as ssfTransmitter, c as RiscEvents, d as caepEvents, f as pushSet, g as FanOutSetOptions, h as streamVerificationEvent, i as CaepEvents, k as pollSets, l as SSF_POLL_DELIVERY, m as signSet, n as CaepCredentialChange, o as RiscAccountDisabled, p as riscEvents, r as CaepDeviceComplianceChange, s as RiscCredentialCompromise, t as CaepAssuranceLevelChange, u as SSF_PUSH_DELIVERY, v as SsfTransmitterOptions, w as memorySetQueue, x as SsfStream, y as fanOutSet } from "../index-BhxEUY9J.js";
|
|
4
4
|
export { type CaepAssuranceLevelChange, type CaepCommon, type CaepCredentialChange, type CaepDeviceComplianceChange, type CaepEventName, type CaepEvents, type CaepInitiatingEntity, type CaepReason, type CaepTokenClaimsChange, type FanOutSetOptions, type PollHandle, type PollOptions, type PollResult, type PollSetsOptions, type PollSetsResult, type PolledSet, type PushSetOptions, type ReplayStore, type RiscAccountDisabled, type RiscCredentialCompromise, type RiscEventName, type RiscEvents, SSF_POLL_DELIVERY, SSF_PUSH_DELIVERY, type SetDelivery, type SetDeliveryFailureCause, type SetError, type SetEvent, type SetPollHandlerOptions, type SetQueue, type SetSubject, type SignSetOptions, type SsfAuditEvent, type SsfEventHandler, type SsfEventInput, type SsfEventListener, type SsfEventName, type SsfFanOut, type SsfOnEvent, type SsfPermDock, type SsfPermDockOptions, type SsfReceiver, type SsfStream, type SsfStreamConfiguration, type SsfStreamStatus, type SsfStreamStore, type SsfSubject, type SsfSubjectResolver, type SsfTransmitterConfiguration, type SsfTransmitterOptions, type SsfVerification, caepEvents, createPermDock, fanOutSet, memoryReplayStore, memorySetQueue, memorySsfStreamStore, pollSets, pushSet, riscEvents, setPollHandler, signSet, ssfTransmitter, streamVerificationEvent };
|