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,6 +1,6 @@
|
|
|
1
|
-
import { p as PRESET_DEFAULTS, r as PRESET_FLAGS } from "./preset-
|
|
1
|
+
import { p as PRESET_DEFAULTS, r as PRESET_FLAGS } from "./preset-BjLzeFpp.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { c as given, i as dryRunFlag, s as forceFlag } from "./flags-
|
|
3
|
+
import { c as given, i as dryRunFlag, s as forceFlag } from "./flags-DXjoTVbS.js";
|
|
4
4
|
//#region src/cli/commands/init.ts
|
|
5
5
|
function optionsOf(key) {
|
|
6
6
|
return PRESET_FLAGS[key].choices.filter((item) => item.retired !== true).map((item) => item.id);
|
|
@@ -48,7 +48,7 @@ const init = defineLeaf({
|
|
|
48
48
|
...forceFlag
|
|
49
49
|
},
|
|
50
50
|
async run(ctx, { flags }) {
|
|
51
|
-
const [{ runInit }, { packageManagerOf }] = await Promise.all([import("./init-
|
|
51
|
+
const [{ runInit }, { packageManagerOf }] = await Promise.all([import("./init-cE3A8aXq.js"), import("./peer-C9LvBCcb.js")]);
|
|
52
52
|
const agent = await packageManagerOf(ctx.cwd);
|
|
53
53
|
const selection = {
|
|
54
54
|
archetype: flags.archetype,
|
|
@@ -79,7 +79,7 @@ const presetDecode = defineLeaf({
|
|
|
79
79
|
positionals: presetCode,
|
|
80
80
|
flags: {},
|
|
81
81
|
async run(_ctx, { args }) {
|
|
82
|
-
const { runPreset } = await import("./init-
|
|
82
|
+
const { runPreset } = await import("./init-cE3A8aXq.js");
|
|
83
83
|
return runPreset("decode", args["code"] ?? "");
|
|
84
84
|
}
|
|
85
85
|
});
|
|
@@ -87,7 +87,7 @@ const presetUrl = defineLeaf({
|
|
|
87
87
|
positionals: presetCode,
|
|
88
88
|
flags: {},
|
|
89
89
|
async run(_ctx, { args }) {
|
|
90
|
-
const { runPreset } = await import("./init-
|
|
90
|
+
const { runPreset } = await import("./init-cE3A8aXq.js");
|
|
91
91
|
return runPreset("url", args["code"] ?? "");
|
|
92
92
|
}
|
|
93
93
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { a as decodePreset, g as resolvePreset, i as presetFlags, n as generatePreset, o as encodePreset } from "./preset-
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
1
|
+
import { n as CliError } from "./errors-Vpu6rKHl.js";
|
|
2
|
+
import { a as decodePreset, g as resolvePreset, i as presetFlags, n as generatePreset, o as encodePreset } from "./preset-BjLzeFpp.js";
|
|
3
|
+
import { a as nonEmptyOr } from "./output-tkju6U7R.js";
|
|
4
|
+
import { t as addLine } from "./peer-Q0fuZ6hx.js";
|
|
5
|
+
import { t as applyFiles } from "./files-B3AA05f1.js";
|
|
5
6
|
import { existsSync } from "node:fs";
|
|
6
7
|
import { join } from "node:path";
|
|
7
8
|
//#region src/cli/init.ts
|
|
@@ -13,11 +14,10 @@ function decoded(code, command) {
|
|
|
13
14
|
return preset;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
|
-
* Writes the preset's owned files into `cwd` and lists what to install.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* printed for the person to run.
|
|
17
|
+
* Writes the preset's owned files into `cwd` and lists what to install. An
|
|
18
|
+
* existing file is kept unless `force` is set, so `init` never overwrites code
|
|
19
|
+
* the application already changed. It installs nothing and calls no network:
|
|
20
|
+
* the package manager and shadcn commands are printed for the person to run.
|
|
21
21
|
*/
|
|
22
22
|
function runInit(options) {
|
|
23
23
|
const preset = typeof options.preset === "string" ? decoded(options.preset, "init") : resolvePreset(options.preset);
|
|
@@ -85,7 +85,7 @@ function runPreset(action, code) {
|
|
|
85
85
|
return {
|
|
86
86
|
code: 0,
|
|
87
87
|
output: `${[
|
|
88
|
-
...Object.entries(preset).map(([key, value]) => ` ${key.padEnd(12)} ${Array.isArray(value) ? value.join(", ")
|
|
88
|
+
...Object.entries(preset).map(([key, value]) => ` ${key.padEnd(12)} ${Array.isArray(value) ? nonEmptyOr(value.join(", "), "none") : String(value)}`),
|
|
89
89
|
"",
|
|
90
90
|
` permdock init ${presetFlags(preset).join(" ")}`
|
|
91
91
|
].join("\n")}\n`,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { o as PermDockOptions } from "./permdock-
|
|
1
|
+
import { o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
|
|
2
2
|
//#region src/core/instance-options.d.ts
|
|
3
3
|
type InstanceKey = "memberships" | "relations" | "entitlements" | "customRoles" | "policies" | "approvalPolicies" | "sink" | "limits" | "principals";
|
|
4
4
|
/**
|
|
5
|
-
* The data sources an adapter passes through to every instance it creates.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The data sources an adapter passes through to every instance it creates. Each
|
|
6
|
+
* adapter's options type extends this, so a source added to core reaches every
|
|
7
|
+
* adapter without a per-adapter change.
|
|
8
8
|
*/
|
|
9
9
|
type InstanceOptions = Pick<PermDockOptions, InstanceKey>;
|
|
10
10
|
//#endregion
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { o as hasConditionOp } from "./refs-
|
|
4
|
-
import { o as sameId } from "./expiry-
|
|
5
|
-
import { a as getResource, c as listPermissions } from "./permission-registry-
|
|
6
|
-
import { n as isThenable } from "./thenable-
|
|
7
|
-
import { u as isPrincipalRelation } from "./resource-relations-
|
|
8
|
-
import { p as nowSeconds, s as instantAt } from "./time-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { o as hasConditionOp } from "./refs-C8BKxc_e.js";
|
|
4
|
+
import { o as sameId } from "./expiry-6XByK0dm.js";
|
|
5
|
+
import { a as getResource, c as listPermissions } from "./permission-registry-B8tYxPIt.js";
|
|
6
|
+
import { n as isThenable } from "./thenable-BNSM1U2R.js";
|
|
7
|
+
import { u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
|
|
8
|
+
import { p as nowSeconds, s as instantAt } from "./time-nR1JesoH.js";
|
|
9
9
|
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
10
|
-
import { f as scopeList, h as tenantOf, i as keepsPermission, l as rootScope, s as resolveScope } from "./scopes-
|
|
11
|
-
import { a as readOnlyActorRefuses, i as delegatedPermissions, r as coversRequirements } from "./delegation-
|
|
12
|
-
import { b as synthesiseRole, m as findRole, o as flattenGrantee, v as listRoles, x as treeXSchema, y as sourceRoleMeta } from "./grantee-
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { t as
|
|
16
|
-
import { C as tenantCustomRoles, D as emptyListeners, M as contactMayUse, S as roleAllowKeys, _ as isSharedCustomRole, a as expandRoleNames, g as holdsGlobalCustomRole, h as holdsCustomRole, l as ceilingGrants, m as customRoleScope, n as requirementCondition, p as customRoleOf, t as evaluate, u as customGrantsFor, x as resolveCustomRole } from "./evaluate-
|
|
17
|
-
import { n as matchGrantee, t as combineWhere } from "./grantee-match-
|
|
18
|
-
import { t as buildSnapshot } from "./snapshot-
|
|
10
|
+
import { f as scopeList, h as tenantOf, i as keepsPermission, l as rootScope, s as resolveScope } from "./scopes-0Up_UA2t.js";
|
|
11
|
+
import { a as readOnlyActorRefuses, i as delegatedPermissions, r as coversRequirements } from "./delegation-CDB6_keF.js";
|
|
12
|
+
import { b as synthesiseRole, m as findRole, o as flattenGrantee, v as listRoles, x as treeXSchema, y as sourceRoleMeta } from "./grantee-Dke-9rd1.js";
|
|
13
|
+
import { t as byCodePoint } from "./compare-DTfyUunF.js";
|
|
14
|
+
import { c as nowSeconds$1, d as resolveActiveTenant, l as partitionsOf, p as scopeField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
|
|
15
|
+
import { c as levelNames, i as grantList, n as declaredRoleNames, s as levelCondition, t as coveredLevels } from "./policy-CLQ8__GF.js";
|
|
16
|
+
import { C as tenantCustomRoles, D as emptyListeners, M as contactMayUse, S as roleAllowKeys, _ as isSharedCustomRole, a as expandRoleNames, g as holdsGlobalCustomRole, h as holdsCustomRole, l as ceilingGrants, m as customRoleScope, n as requirementCondition, p as customRoleOf, t as evaluate, u as customGrantsFor, x as resolveCustomRole } from "./evaluate-Dd8Ta0Ie.js";
|
|
17
|
+
import { n as matchGrantee, t as combineWhere } from "./grantee-match-7RZZvoT_.js";
|
|
18
|
+
import { t as buildSnapshot } from "./snapshot-CXlzi69u.js";
|
|
19
19
|
//#region src/core/memberships.ts
|
|
20
20
|
/** Two memberships are the same row when everything but `roles` matches. */
|
|
21
21
|
function identity(membership) {
|
|
@@ -41,8 +41,8 @@ function identity(membership) {
|
|
|
41
41
|
/**
|
|
42
42
|
* Merges memberships from several sources: entries naming the same instance
|
|
43
43
|
* with the same `via`, expiry, owner and seats become one entry with the union
|
|
44
|
-
* of their roles. Entries that differ in any of those stay separate, so a
|
|
45
|
-
*
|
|
44
|
+
* of their roles. Entries that differ in any of those stay separate, so a staff
|
|
45
|
+
* role and a contact role in one instance keep their own `via`.
|
|
46
46
|
*/
|
|
47
47
|
function mergeMemberships(lists) {
|
|
48
48
|
const merged = /* @__PURE__ */ new Map();
|
|
@@ -59,8 +59,8 @@ function mergeMemberships(lists) {
|
|
|
59
59
|
function all(values) {
|
|
60
60
|
return values.some((value) => isThenable(value)) ? Promise.all(values) : values;
|
|
61
61
|
}
|
|
62
|
-
function then(value,
|
|
63
|
-
return isThenable(value) ? Promise.resolve(value).then(
|
|
62
|
+
function then(value, map) {
|
|
63
|
+
return isThenable(value) ? Promise.resolve(value).then(map) : map(value);
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* One `MembershipSource` over several: memberships are merged and
|
|
@@ -109,10 +109,10 @@ function asMembershipSource(input) {
|
|
|
109
109
|
return Array.isArray(input) ? composeMemberships(input) : input;
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
|
-
* Trust the memberships the verified token carries, and read `source` only
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
112
|
+
* Trust the memberships the verified token carries, and read `source` only when
|
|
113
|
+
* the token marks them truncated. With `version`, a token minted before the
|
|
114
|
+
* latest membership change is stale for the policy's `fresh` permissions, or
|
|
115
|
+
* with `onStale: 'reread'` has its memberships read from `source` instead.
|
|
116
116
|
*/
|
|
117
117
|
function claimsFirst(source, options = {}) {
|
|
118
118
|
const inner = asMembershipSource(source);
|
|
@@ -126,16 +126,19 @@ function claimsFirst(source, options = {}) {
|
|
|
126
126
|
claimsFirst: true
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Whether the identity provider owns `membership`: the application must not
|
|
131
|
+
* add, change or remove it.
|
|
132
|
+
*/
|
|
130
133
|
function isExternallyManaged(membership) {
|
|
131
134
|
return membership.managedBy === "idp";
|
|
132
135
|
}
|
|
133
136
|
/**
|
|
134
|
-
* How many principals hold `role` in one scope instance now, from the
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
137
|
+
* How many principals hold `role` in one scope instance now, from the source's
|
|
138
|
+
* member list (`MembershipSource.list`): live memberships of exactly that scope
|
|
139
|
+
* and instance, each principal counted once. The `holders` a `decideRoleChange`
|
|
140
|
+
* with `min`, `max` or `transferOnly` needs. `undefined` when the source cannot
|
|
141
|
+
* list or the read fails, which that check denies.
|
|
139
142
|
*/
|
|
140
143
|
async function countHolders(source, query) {
|
|
141
144
|
const composed = asMembershipSource(source);
|
|
@@ -185,8 +188,8 @@ function mayHoldManaged(policy, role, membership) {
|
|
|
185
188
|
/**
|
|
186
189
|
* Drops every role a membership's kind may not hold (fail-closed: a missing
|
|
187
190
|
* `via` is no kind) and every non-assignable role on an identity-provider
|
|
188
|
-
* membership. Global roles have no kind, so a role with `for` held globally
|
|
189
|
-
*
|
|
191
|
+
* membership. Global roles have no kind, so a role with `for` held globally is
|
|
192
|
+
* dropped too.
|
|
190
193
|
*/
|
|
191
194
|
function applyRoleKinds(policy, roles, memberships) {
|
|
192
195
|
const kinds = policy.roles.some((binding) => binding.for !== void 0);
|
|
@@ -208,7 +211,10 @@ function applyRoleKinds(policy, roles, memberships) {
|
|
|
208
211
|
function usesAssigns(policy) {
|
|
209
212
|
return policy.roles.some((binding) => binding.assigns !== void 0);
|
|
210
213
|
}
|
|
211
|
-
/**
|
|
214
|
+
/**
|
|
215
|
+
* Declared role names in declaration order: bindings first, then
|
|
216
|
+
* vocabulary-only leaves.
|
|
217
|
+
*/
|
|
212
218
|
function declarationOrder(policy) {
|
|
213
219
|
const names = policy.roles.map((binding) => binding.name);
|
|
214
220
|
const seen = new Set(names);
|
|
@@ -219,9 +225,9 @@ function declarationOrder(policy) {
|
|
|
219
225
|
return names;
|
|
220
226
|
}
|
|
221
227
|
/**
|
|
222
|
-
* Each role's depth in the `assigns` graph: a role nobody else assigns is 0,
|
|
223
|
-
*
|
|
224
|
-
*
|
|
228
|
+
* Each role's depth in the `assigns` graph: a role nobody else assigns is 0, a
|
|
229
|
+
* role another assigns sits one below its deepest assigner. Cycles stop after
|
|
230
|
+
* one pass per role.
|
|
225
231
|
*/
|
|
226
232
|
function assignDepths(policy) {
|
|
227
233
|
const names = declarationOrder(policy);
|
|
@@ -262,7 +268,10 @@ function audiencesOf(policy, names) {
|
|
|
262
268
|
}
|
|
263
269
|
return out;
|
|
264
270
|
}
|
|
265
|
-
/**
|
|
271
|
+
/**
|
|
272
|
+
* Whether `membership` is the instance itself or one of its ancestors named in
|
|
273
|
+
* `within`.
|
|
274
|
+
*/
|
|
266
275
|
//#endregion
|
|
267
276
|
//#region src/core/held-roles.ts
|
|
268
277
|
/**
|
|
@@ -293,7 +302,10 @@ function roleLeaf(policy, name) {
|
|
|
293
302
|
}
|
|
294
303
|
//#endregion
|
|
295
304
|
//#region src/core/snapshot-grants.ts
|
|
296
|
-
/**
|
|
305
|
+
/**
|
|
306
|
+
* A grant on a relation with a `period` is decided on the server, where the
|
|
307
|
+
* clock is.
|
|
308
|
+
*/
|
|
297
309
|
function periodBound(policy, grant) {
|
|
298
310
|
const relations = policy.resources.get(grant.permission.resource)?.relations;
|
|
299
311
|
return flattenGrantee(grant.to).some((item) => {
|
|
@@ -330,8 +342,8 @@ function graphAware(grant, where) {
|
|
|
330
342
|
}));
|
|
331
343
|
}
|
|
332
344
|
/**
|
|
333
|
-
* `where()` keeps a grant that is server-only because it reads the graph:
|
|
334
|
-
*
|
|
345
|
+
* `where()` keeps a grant that is server-only because it reads the graph: its
|
|
346
|
+
* `related` nodes compile to subqueries given relation mappings.
|
|
335
347
|
*/
|
|
336
348
|
function whereGrant(grant) {
|
|
337
349
|
return grant.graph === true ? freezeDeep({
|
|
@@ -340,8 +352,8 @@ function whereGrant(grant) {
|
|
|
340
352
|
}) : grant;
|
|
341
353
|
}
|
|
342
354
|
/**
|
|
343
|
-
* Every grant the subject may reach, once per membership that holds all of
|
|
344
|
-
*
|
|
355
|
+
* Every grant the subject may reach, once per membership that holds all of its
|
|
356
|
+
* scoped roles, so a client can check that membership's tenant, team or
|
|
345
357
|
* resource. A scoped role held only globally reaches nothing.
|
|
346
358
|
*/
|
|
347
359
|
function collectSnapshotGrants(policy, subject, customRoles, now = nowSeconds$1(), customGrants = customGrantsFor(policy, customRoles), mode = "held") {
|
|
@@ -407,24 +419,26 @@ function assignableCandidates(policy) {
|
|
|
407
419
|
return rankRoles(policy, [...new Set(names)]).map((name) => roleLeaf(policy, name));
|
|
408
420
|
}
|
|
409
421
|
/**
|
|
410
|
-
* The levels a held allow of a permission covers: its own `level`, every
|
|
411
|
-
*
|
|
412
|
-
*
|
|
422
|
+
* The levels a held allow of a permission covers: its own `level`, every level
|
|
423
|
+
* when it has no row condition, or the levels whose condition equals its
|
|
424
|
+
* condition; with `orderedLevels`, also every narrower level.
|
|
413
425
|
*/
|
|
414
426
|
function heldLevels(policy, grant, names) {
|
|
415
|
-
|
|
427
|
+
const resource = grant.permission.resource;
|
|
428
|
+
if (grant.level !== void 0) return coveredLevels(policy, resource, [grant.level]);
|
|
416
429
|
if (grant.where === void 0) return names;
|
|
417
430
|
const held = canonicalJson(grant.where);
|
|
418
|
-
return names.filter((name) => {
|
|
419
|
-
const condition = levelCondition(policy,
|
|
431
|
+
return coveredLevels(policy, resource, names.filter((name) => {
|
|
432
|
+
const condition = levelCondition(policy, resource, name);
|
|
420
433
|
return condition !== void 0 && canonicalJson(condition) === held;
|
|
421
|
-
});
|
|
434
|
+
}));
|
|
422
435
|
}
|
|
423
436
|
/**
|
|
424
437
|
* What the subject may hand out in `tenant`: declared assignable roles and the
|
|
425
|
-
* tenant custom-role ceiling, narrowed by `allowed`
|
|
426
|
-
* then intersected with the permissions the
|
|
427
|
-
* role or a granted permission with
|
|
438
|
+
* tenant custom-role ceiling, narrowed by `allowed`
|
|
439
|
+
* (`CustomRoleSource.assignable`), then intersected with the permissions the
|
|
440
|
+
* subject holds there. Holding a role or a granted permission with
|
|
441
|
+
* `meta.manageRoles` lifts the intersection.
|
|
428
442
|
*/
|
|
429
443
|
function assignableIn(policy, subject, customRoles, customGrants, tenant, allowed, now = nowSeconds$1(), global = false) {
|
|
430
444
|
const principal = subject.principal;
|
|
@@ -547,7 +561,10 @@ function assignableCustomRoles(policy, customRoles, tenant, declared, mayHandOut
|
|
|
547
561
|
}
|
|
548
562
|
//#endregion
|
|
549
563
|
//#region src/core/instance-snapshot.ts
|
|
550
|
-
/**
|
|
564
|
+
/**
|
|
565
|
+
* The one path from a resolved subject to a `Snapshot`; pure apart from the
|
|
566
|
+
* default clock.
|
|
567
|
+
*/
|
|
551
568
|
function snapshotOf(policy, subject, options) {
|
|
552
569
|
const now = options.now ?? nowSeconds$1();
|
|
553
570
|
const customGrants = options.customGrants ?? customGrantsFor(policy, options.customRoles);
|
|
@@ -582,7 +599,10 @@ function snapshotOf(policy, subject, options) {
|
|
|
582
599
|
}
|
|
583
600
|
}));
|
|
584
601
|
}
|
|
585
|
-
/**
|
|
602
|
+
/**
|
|
603
|
+
* The policy's scopes as snapshots and `permdock cloud push` carry them, with
|
|
604
|
+
* the resources each partitions.
|
|
605
|
+
*/
|
|
586
606
|
function snapshotScopes(policy) {
|
|
587
607
|
if (policy.scopes.length === 0) return;
|
|
588
608
|
const resources = [...policy.resources.values()];
|
|
@@ -603,4 +623,4 @@ function snapshotScopes(policy) {
|
|
|
603
623
|
});
|
|
604
624
|
}
|
|
605
625
|
//#endregion
|
|
606
|
-
export {
|
|
626
|
+
export { claimsFirst as _, heldLevels as a, isExternallyManaged as b, heldRoleNames as c, audiencesOf as d, bindingOf as f, asMembershipSource as g, usesAssigns as h, assignableIn as i, roleLeaf as l, roleMeta as m, snapshotScopes as n, collectSnapshotGrants as o, rankRoles as p, assignableCandidates as r, whereGrant as s, snapshotOf as t, applyRoleKinds as u, composeMemberships as v, countHolders as y };
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
const ISO_INSTANT = /^(\d{4}-\d{2}-\d{2})(?:[T ](\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?)(Z|[+-]\d{2}(?::?\d{2})?)?)?$/u;
|
|
3
3
|
/**
|
|
4
4
|
* Milliseconds since the epoch for an ISO 8601 date or date-time, or
|
|
5
|
-
* `undefined`. A date-time without a zone and a bare date are UTC, the same
|
|
6
|
-
*
|
|
5
|
+
* `undefined`. A date-time without a zone and a bare date are UTC, the same in
|
|
6
|
+
* memory, in the ORM compilers and in generated SQL.
|
|
7
7
|
*/
|
|
8
8
|
function isoInstant(value) {
|
|
9
9
|
const match = ISO_INSTANT.exec(value);
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
//#region src/core/internals.ts
|
|
2
2
|
const INTERNALS = Symbol.for("permdock.internals");
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Attaches `internals` to `instance` as a non-enumerable member; call before
|
|
5
|
+
* freezing.
|
|
6
|
+
*/
|
|
4
7
|
function attachInternals(instance, internals) {
|
|
5
8
|
Object.defineProperty(instance, INTERNALS, { value: internals });
|
|
6
9
|
}
|
|
7
10
|
/**
|
|
8
|
-
* The internals of a server instance, or `undefined` for an instance built
|
|
9
|
-
*
|
|
11
|
+
* The internals of a server instance, or `undefined` for an instance built from
|
|
12
|
+
* a snapshot or one that is not PermDock's. A feature function treats
|
|
10
13
|
* `undefined` as a check it cannot answer and denies with `unsupported`.
|
|
11
14
|
*/
|
|
12
15
|
function internalsOf(permdock) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as isForbiddenKey } from "./paths-
|
|
2
|
+
import { n as isForbiddenKey } from "./paths-CUvURzHp.js";
|
|
3
3
|
//#region src/core/json-schema.ts
|
|
4
4
|
function issue(issues, path, message) {
|
|
5
5
|
issues.push({
|
|
@@ -64,7 +64,10 @@ function resolveRef(root, ref) {
|
|
|
64
64
|
if (target === void 0) throw new TypeError(`Unsupported or unknown $ref ${ref}`);
|
|
65
65
|
return target;
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* Validates a `copyJson` result against `node`, reading `$ref` targets from
|
|
69
|
+
* `root`.
|
|
70
|
+
*/
|
|
68
71
|
function checkSchema(node, value, path, issues, root = node) {
|
|
69
72
|
if (node.$ref !== void 0) {
|
|
70
73
|
checkSchema(resolveRef(root, node.$ref), value, path, issues, root);
|
|
@@ -130,7 +133,10 @@ function checkSchema(node, value, path, issues, root = node) {
|
|
|
130
133
|
else if (node.additionalProperties !== void 0) checkSchema(node.additionalProperties, value[key], [...path, key], issues, root);
|
|
131
134
|
}
|
|
132
135
|
}
|
|
133
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* The path of the first `__proto__`, `constructor` or `prototype` key in
|
|
138
|
+
* `value`, if any.
|
|
139
|
+
*/
|
|
134
140
|
function forbiddenKeyPath(value, path = []) {
|
|
135
141
|
if (value === null || typeof value !== "object") return;
|
|
136
142
|
for (const [key, child] of Object.entries(value)) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
2
|
//#region src/core/json-schema.d.ts
|
|
3
3
|
/**
|
|
4
|
-
* The JSON Schema 2020-12 keywords the package's own schemas use;
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The JSON Schema 2020-12 keywords the package's own schemas use; `checkSchema`
|
|
5
|
+
* interprets exactly these. `$ref` resolves only `#/$defs/<name>` against the
|
|
6
|
+
* root node. Annotations (`title`, `description`, `format`) are ignored, so a
|
|
7
|
+
* `format` always sits next to a `pattern` that enforces it.
|
|
8
8
|
*/
|
|
9
9
|
type JsonSchemaNode = {
|
|
10
10
|
readonly $schema?: string;
|
package/dist/jwt/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { Y as JwtClaims, Zt as AuthEvent, dt as TokenVerifier, lr as Subject, lt as TokenFailureCause, pt as VerifiedToken, sr as Principal, ut as TokenSigner } from "../policy-types-
|
|
2
|
-
import { c as LinkPolicy, o as CapabilityPrincipal, t as Capability } from "../capability-
|
|
3
|
-
import { B as JwtAlgorithm, F as DpopProofResult, H as JwtPrincipal, I as IntrospectionPrincipal, L as JoseTokenSignerOptions, P as DiscoveryInput, R as JoseTokenVerifierOptions, U as JwtSubjectOptions, V as JwtJwks, W as MappedSubject, l as ReplayStore, z as JsonWebKeySet } from "../types-
|
|
4
|
-
import { t as memoryReplayStore } from "../replay-
|
|
1
|
+
import { Y as JwtClaims, Zt as AuthEvent, dt as TokenVerifier, lr as Subject, lt as TokenFailureCause, pt as VerifiedToken, sr as Principal, ut as TokenSigner } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { c as LinkPolicy, o as CapabilityPrincipal, t as Capability } from "../capability-ChuiONQU.js";
|
|
3
|
+
import { B as JwtAlgorithm, F as DpopProofResult, H as JwtPrincipal, I as IntrospectionPrincipal, L as JoseTokenSignerOptions, P as DiscoveryInput, R as JoseTokenVerifierOptions, U as JwtSubjectOptions, V as JwtJwks, W as MappedSubject, l as ReplayStore, z as JsonWebKeySet } from "../types-DjuMBNF9.js";
|
|
4
|
+
import { t as memoryReplayStore } from "../replay-DNftIb_R.js";
|
|
5
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
//#region src/jwt/capability.d.ts
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* `on('auth')` causes: a verification failure, or one of the three capability
|
|
9
|
+
* checks.
|
|
10
|
+
*/
|
|
8
11
|
type CapabilityFailureCause = TokenFailureCause | "capability-revoked" | "capability-replayed" | "redeemer-mismatch" | "link-policy";
|
|
9
12
|
type CapabilitySubjectOptions = Omit<JoseTokenVerifierOptions, "typ" | "issuer" | "audience" | "profile"> & {
|
|
10
13
|
/** The issuer the capability was signed by (`iss`); required. */
|
|
@@ -13,20 +16,26 @@ type CapabilitySubjectOptions = Omit<JoseTokenVerifierOptions, "typ" | "issuer"
|
|
|
13
16
|
readonly audience: string | readonly string[];
|
|
14
17
|
readonly verifier?: TokenVerifier;
|
|
15
18
|
/**
|
|
16
|
-
* The link policies of the scope instances the linked resource sits in
|
|
17
|
-
*
|
|
19
|
+
* The link policies of the scope instances the linked resource sits in (its
|
|
20
|
+
* tenant, its customer); every one must hold. A throw denies.
|
|
18
21
|
*/
|
|
19
22
|
readonly linkPolicy?: (capability: Capability) => LinkPolicy | readonly LinkPolicy[] | undefined | Promise<LinkPolicy | readonly LinkPolicy[] | undefined>;
|
|
20
23
|
/** `true` when the application revoked the link id (`sub`); a throw denies. */
|
|
21
24
|
readonly revoked?: (id: string) => boolean | Promise<boolean>;
|
|
22
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Claims the `jti` of a one-time capability; a one-time capability without it
|
|
27
|
+
* is refused.
|
|
28
|
+
*/
|
|
23
29
|
readonly replay?: ReplayStore;
|
|
24
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* The request's own verified subject, checked against the capability's
|
|
32
|
+
* `redeemer`.
|
|
33
|
+
*/
|
|
25
34
|
readonly viewer?: Subject;
|
|
26
35
|
/**
|
|
27
36
|
* The incoming request. A capability with `cnf` resolves only when the
|
|
28
|
-
* request carries a DPoP proof (RFC 9449) signed by the bound key;
|
|
29
|
-
*
|
|
37
|
+
* request carries a DPoP proof (RFC 9449) signed by the bound key; without
|
|
38
|
+
* one it is refused.
|
|
30
39
|
*/
|
|
31
40
|
readonly request?: Request;
|
|
32
41
|
readonly onAuth?: (event: AuthEvent) => void;
|
|
@@ -34,8 +43,8 @@ type CapabilitySubjectOptions = Omit<JoseTokenVerifierOptions, "typ" | "issuer"
|
|
|
34
43
|
};
|
|
35
44
|
/**
|
|
36
45
|
* Resolves a `vnd.permdock.capability+jwt` into the `link` subject it acts as.
|
|
37
|
-
* Every failure (signature, `typ`, `iss`, `aud`, expiry, a malformed claim,
|
|
38
|
-
*
|
|
46
|
+
* Every failure (signature, `typ`, `iss`, `aud`, expiry, a malformed claim, a
|
|
47
|
+
* revoked link, a replayed one-time token, a redeemer the viewer does not
|
|
39
48
|
* satisfy, a `cnf` without a matching DPoP proof, a throwing store) is the
|
|
40
49
|
* anonymous subject, never a throw.
|
|
41
50
|
*/
|
|
@@ -52,13 +61,19 @@ type CiOidcSubjectOptions = Omit<JoseTokenVerifierOptions, "typ" | "issuer" | "a
|
|
|
52
61
|
* from OpenID discovery unless `jwks` is set.
|
|
53
62
|
*/
|
|
54
63
|
readonly issuer?: string;
|
|
55
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Validates the verified claims; a failure or a Promise is the anonymous
|
|
66
|
+
* subject.
|
|
67
|
+
*/
|
|
56
68
|
readonly schema?: StandardSchemaV1;
|
|
57
69
|
readonly verifier?: TokenVerifier;
|
|
58
70
|
readonly onAuth?: (event: AuthEvent) => void;
|
|
59
71
|
readonly requestId?: string;
|
|
60
72
|
};
|
|
61
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* A CI job: never a user. `ref` is a full ref (`refs/heads/main`,
|
|
75
|
+
* `refs/tags/v1`).
|
|
76
|
+
*/
|
|
62
77
|
type CiOidcPrincipal = Principal & {
|
|
63
78
|
readonly kind: "workload";
|
|
64
79
|
readonly issuer: string;
|
|
@@ -77,18 +92,27 @@ export declare function subjectFromCiOidc(token: string | undefined | null, opti
|
|
|
77
92
|
//#endregion
|
|
78
93
|
//#region src/jwt/dpop.d.ts
|
|
79
94
|
type DpopProofOptions = {
|
|
80
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Rejects a proof whose `jti` this key already used within the 60-second
|
|
97
|
+
* window.
|
|
98
|
+
*/
|
|
81
99
|
readonly replay?: ReplayStore;
|
|
82
100
|
};
|
|
83
101
|
export declare function verifyDpopProof(request: Request, claims: JwtClaims, accessToken?: string, options?: DpopProofOptions): Promise<DpopProofResult>;
|
|
84
102
|
//#endregion
|
|
85
103
|
//#region src/jwt/id-token.d.ts
|
|
86
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* `TokenFailureCause` plus `nonce-mismatch`; a `TokenVerifier` never returns
|
|
106
|
+
* it.
|
|
107
|
+
*/
|
|
87
108
|
type IdTokenFailureCause = TokenFailureCause | "nonce-mismatch";
|
|
88
109
|
type VerifyIdTokenOptions = {
|
|
89
110
|
/** The OpenID Provider's issuer; `iss` must equal it. */
|
|
90
111
|
readonly issuer: string;
|
|
91
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* The relying party's `client_id`; `aud` must contain it and `azp`, when
|
|
114
|
+
* present, must equal it.
|
|
115
|
+
*/
|
|
92
116
|
readonly clientId: string;
|
|
93
117
|
/** The `nonce` sent in the authentication request; the token's must equal it. */
|
|
94
118
|
readonly nonce?: string;
|
|
@@ -118,9 +142,9 @@ type VerifyIdTokenResult = {
|
|
|
118
142
|
};
|
|
119
143
|
/**
|
|
120
144
|
* Verifies an OpenID Connect ID token for a relying party (Core section
|
|
121
|
-
* 3.1.3.7): signature, `iss`, `aud`, `exp`, `iat`, `typ` `JWT` or absent,
|
|
122
|
-
*
|
|
123
|
-
* `
|
|
145
|
+
* 3.1.3.7): signature, `iss`, `aud`, `exp`, `iat`, `typ` `JWT` or absent, `azp`
|
|
146
|
+
* and, when `nonce` is given, `nonce`. It does not check `at_hash`, `c_hash`,
|
|
147
|
+
* `auth_time` or `acr`. Never throws.
|
|
124
148
|
*/
|
|
125
149
|
export declare function verifyIdToken(token: string, options: VerifyIdTokenOptions): Promise<VerifyIdTokenResult>;
|
|
126
150
|
//#endregion
|
|
@@ -135,13 +159,19 @@ export declare function subjectFromJwt(token: string | undefined | null, options
|
|
|
135
159
|
export declare function jwtSubjectResolver(options: JwtSubjectOptions): (token: string | undefined | null, request?: Request) => Promise<MappedSubject>;
|
|
136
160
|
//#endregion
|
|
137
161
|
//#region src/jwt/subject-token.d.ts
|
|
138
|
-
/**
|
|
162
|
+
/**
|
|
163
|
+
* `TokenFailureCause` plus the two checks `verifySubjectToken` adds; a
|
|
164
|
+
* `TokenVerifier` never returns them.
|
|
165
|
+
*/
|
|
139
166
|
type SubjectTokenFailureCause = TokenFailureCause | "replayed" | "lifetime-exceeded";
|
|
140
167
|
type VerifySubjectTokenOptions = {
|
|
141
168
|
/** Tried in order; the first that accepts the token wins. */
|
|
142
169
|
readonly verifiers: readonly TokenVerifier[];
|
|
143
170
|
readonly audience: string | readonly string[];
|
|
144
|
-
/**
|
|
171
|
+
/**
|
|
172
|
+
* Records each `jti` once; `claim` when the store has it, else `seen` and
|
|
173
|
+
* `remember`.
|
|
174
|
+
*/
|
|
145
175
|
readonly replay: ReplayStore;
|
|
146
176
|
/** The largest `exp - iat`, in seconds; default 300. */
|
|
147
177
|
readonly maxLifetime?: number;
|
|
@@ -163,10 +193,10 @@ type VerifySubjectTokenResult = {
|
|
|
163
193
|
};
|
|
164
194
|
/**
|
|
165
195
|
* Verifies a subject token: an RFC 9068 `at+jwt` naming one subject for one
|
|
166
|
-
* request, such as the `PermDock-Subject` header. The first of `verifiers`
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
196
|
+
* request, such as the `PermDock-Subject` header. The first of `verifiers` that
|
|
197
|
+
* accepts it wins. The token must carry `sub`, `jti`, `iat` and `exp`, live at
|
|
198
|
+
* most `maxLifetime` seconds, and present its `jti` once. A replay store that
|
|
199
|
+
* throws refuses the token as `replayed`. Never throws.
|
|
170
200
|
*/
|
|
171
201
|
export declare function verifySubjectToken(token: string, options: VerifySubjectTokenOptions): Promise<VerifySubjectTokenResult>;
|
|
172
202
|
//#endregion
|