permdock 0.6.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 +2 -3
- package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +9 -9
- 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-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +31 -10
- package/dist/ai-sdk/index.js +22 -12
- 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-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
- package/dist/approvals/index.d.ts +5 -5
- package/dist/approvals/index.js +7 -7
- package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
- package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
- package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
- package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
- package/dist/authzen/index.d.ts +171 -25
- package/dist/authzen/index.js +321 -149
- package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
- package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
- package/dist/base-url-BQbddZO5.js +9 -0
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +392 -220
- package/dist/better-supabase/index.js +293 -152
- package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
- package/dist/{bind-CAvgUuKs.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-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
- package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
- package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
- package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
- package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
- package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +104 -23
- package/dist/catalog/index.js +117 -8
- package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
- package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
- package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
- package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
- package/dist/catalog-mRQQQhNK.js +1 -0
- package/dist/catalog-operations-Dadrl7Z-.js +60 -0
- package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
- 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-CGkP3Z7A.js +40 -0
- 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 +186 -38
- package/dist/cloud/index.js +293 -31
- package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
- package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
- package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
- package/dist/collect-B5BL3klN.js +1 -0
- package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
- package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
- 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-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
- package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
- package/dist/{config-report-DSpsLpCE.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-CYLQNMYq.js +434 -0
- package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/core-H-mbhpZc.js +341 -0
- package/dist/core-hWIARPDz.d.ts +206 -0
- package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
- package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
- package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
- package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
- package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
- package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
- package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
- package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +5 -5
- package/dist/delivery/index.js +6 -5
- package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-CHNlVInN.d.ts +22 -0
- package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
- package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
- package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
- package/dist/{doctor-3ZqNHX_G.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-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
- package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
- package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
- package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
- package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
- 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-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
- package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
- package/dist/gen-B5kvbAoZ.js +58 -0
- package/dist/gen-DWCYcMQM.js +827 -0
- package/dist/generate-CRVV5V7l.js +165 -0
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-DbENBHLB.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-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
- package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
- package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
- package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
- package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
- package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
- package/dist/index-BhxEUY9J.d.ts +233 -0
- package/dist/index-Bv5iXPqU.d.ts +210 -0
- package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
- package/dist/index.d.ts +22 -21
- package/dist/index.js +35 -33
- package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
- package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
- package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
- package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
- 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 +125 -17
- package/dist/jwt/index.js +157 -16
- package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
- 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-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
- package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
- package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
- package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
- package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
- package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
- package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
- package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +154 -47
- package/dist/mcp/index.js +200 -41
- package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
- 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 +61 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
- package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
- package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
- package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-X0VM7F3m.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-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
- package/dist/ownership-B4L59T9u.js +1054 -0
- package/dist/parse-1_ZheTW5.js +151 -0
- package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
- package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
- 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 +23 -12
- package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
- package/dist/peer-Q0fuZ6hx.js +982 -0
- package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
- package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
- package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
- package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
- package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
- package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-BPxlwVhN.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-CnmmYqUZ.js +21 -0
- package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
- package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
- package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
- package/dist/postgres-store-DcyrPS-r.js +1028 -0
- package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
- package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
- package/dist/powersync-DHNQX06W.js +1117 -0
- package/dist/{powersync-DISt6SUe.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-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
- 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-BYc6drYW.js +938 -0
- package/dist/protected-action-BE7N_Luo.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
- package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/pull-B65ndFNZ.js +1 -0
- package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
- package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
- package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
- package/dist/{pushed-policy-CqtxkV4G.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 +104 -51
- package/dist/react-native/index.js +394 -67
- package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
- 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-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
- package/dist/{request-context-C81Pip9n.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-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
- package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
- package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/rolldown-runtime-C3I60J0A.js +4 -0
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
- package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
- package/dist/run-D-JE8QWb.js +1 -0
- package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
- package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
- package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
- package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
- package/dist/scim/index.d.ts +3 -2
- package/dist/scim/index.js +3 -1
- package/dist/scim-D8YupzX1.js +44 -0
- package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
- package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
- package/dist/server/index.d.ts +12 -12
- package/dist/server/index.js +13 -13
- package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
- package/dist/{shared-DvvFzYXe.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-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
- package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
- package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
- package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
- package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -15
- 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-B1Os_YUu.d.ts +312 -0
- package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
- package/dist/sources-qoIJQrJv.js +11 -0
- package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
- package/dist/sql-B80DFdpG.d.ts +10 -0
- package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +665 -224
- package/dist/{standard-webhooks-rbD7LS6h.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-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
- package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-C0Kta5Ft.d.ts +59 -0
- package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
- package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -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 -37
- package/dist/supabase/index.js +6 -6
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
- package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
- package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
- package/dist/supabase-hook-H-MtE9Wd.js +1 -0
- package/dist/supautils-BU-pAEpf.js +808 -0
- package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
- 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-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
- 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-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +2 -0
- package/dist/testing/core.js +1 -0
- package/dist/testing/fixtures/index.d.ts +15 -0
- package/dist/testing/fixtures/index.js +831 -0
- package/dist/testing/index.d.ts +235 -285
- package/dist/testing/index.js +502 -927
- 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-BtfSmdUo.js +444 -0
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
- package/dist/{tool-refusal-CMLN5xhn.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-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
- package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
- package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
- package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
- package/dist/types-B_d_g7T3.d.ts +262 -0
- package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
- package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
- package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
- package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
- package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
- package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
- package/dist/{types-BtHtcKMr.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-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
- package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-DHUrAkku.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-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
- package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
- package/dist/vue/index.d.ts +71 -21
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-vea54PRw.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-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
- package/dist/{who-can-DWBAcaCQ.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-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
- package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
- package/package.json +25 -14
- package/schemas/catalog-v1.json +3 -0
- package/schemas/cli-result-v1.json +1 -0
- package/schemas/cloud-api-v1.json +152 -7
- package/schemas/connector-v1.json +8 -0
- package/schemas/supabase-claims-v1.json +5 -0
- package/schemas/supabase-manifest-v1.json +308 -75
- package/skills/permdock/SKILL.md +1 -0
- package/skills/permdock-agents/references/runtimes.md +3 -1
- package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +6 -2
- package/skills/permdock-tenancy/SKILL.md +1 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
- package/skills/permdock-wire/references/adapters.md +28 -22
- package/skills/permdock-wire/references/policy-options.md +1 -0
- package/dist/catalog-BoWglDPI.js +0 -1
- package/dist/collect-D7eQDffE.js +0 -1
- package/dist/config-bs_kZeYq.js +0 -162
- package/dist/denied-text-CiFQNuMV.d.ts +0 -19
- package/dist/fields-OYG_JR78.js +0 -203
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/index-Cp_ilKi1.d.ts +0 -91
- package/dist/index-CueFnxQc.d.ts +0 -110
- package/dist/load-BxEtwlBS.js +0 -1
- package/dist/output-files-B3IZJksC.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-Cxq0WxrA.js +0 -53
- package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
- package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
- package/dist/peer-C8swJ2GH.js +0 -50
- package/dist/policies-DP2nqRoF.js +0 -295
- package/dist/powersync-BkWWCS1K.js +0 -538
- package/dist/powersync-MMJ2mI2q.js +0 -1
- package/dist/problem-details-B45V5d2b.d.ts +0 -7
- package/dist/prompt-DfZLJLIn.js +0 -32
- package/dist/protected-RFGpakN9.d.ts +0 -38
- package/dist/pull-CvpINcMK.js +0 -1
- package/dist/run-DDwUaJDU.js +0 -1
- package/dist/sources-Xc4zkszI.d.ts +0 -190
- package/dist/stores-BUGNbJTt.d.ts +0 -30
- package/dist/supabase-hook-CCw5m35C.js +0 -1
- package/dist/supautils-B6HYL9eL.js +0 -91
- package/dist/text-diff-BQcUapOb.js +0 -15
- package/dist/types-B3_ooZgZ.d.ts +0 -172
- package/dist/usage-CZpSQP6L.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch--ovlPOc0.js +0 -1
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { c as missingInput } from "./errors-
|
|
1
|
+
import { c as missingInput } from "./errors-Vpu6rKHl.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-
|
|
3
|
+
import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-DXjoTVbS.js";
|
|
4
4
|
//#region src/cli/commands/rls.ts
|
|
5
5
|
const membershipsFlag = { memberships: {
|
|
6
6
|
type: "string",
|
|
7
7
|
description: "Membership table as <table>:tenant,user,role",
|
|
8
8
|
valueHint: "table"
|
|
9
9
|
} };
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* The flags that shape the generated SQL; verify --introspect and migrate take
|
|
12
|
+
* them too.
|
|
13
|
+
*/
|
|
11
14
|
const shapeFlags = {
|
|
12
15
|
target: {
|
|
13
16
|
type: "enum",
|
|
@@ -86,7 +89,7 @@ const shapeFlags = {
|
|
|
86
89
|
},
|
|
87
90
|
fields: {
|
|
88
91
|
type: "enum",
|
|
89
|
-
options: ["views"],
|
|
92
|
+
options: ["views", "mask"],
|
|
90
93
|
description: "Field security"
|
|
91
94
|
},
|
|
92
95
|
"revoke-columns": {
|
|
@@ -141,7 +144,10 @@ const SHAPE_DEFAULTS = {
|
|
|
141
144
|
schemas: void 0,
|
|
142
145
|
"db-url-stdin": false
|
|
143
146
|
};
|
|
144
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* Every RlsRunInput field at its "not given" value, with the shape flags
|
|
149
|
+
* applied.
|
|
150
|
+
*/
|
|
145
151
|
async function rlsInput(ctx, verb, shape, options) {
|
|
146
152
|
return {
|
|
147
153
|
cwd: ctx.cwd,
|
|
@@ -186,7 +192,7 @@ async function rlsInput(ctx, verb, shape, options) {
|
|
|
186
192
|
};
|
|
187
193
|
}
|
|
188
194
|
async function runRls(input) {
|
|
189
|
-
return (await import("./rls-
|
|
195
|
+
return (await import("./rls-CNEH2_BG.js")).runRls(input);
|
|
190
196
|
}
|
|
191
197
|
const generate = defineLeaf({
|
|
192
198
|
flags: {
|
|
@@ -209,7 +215,8 @@ const generate = defineLeaf({
|
|
|
209
215
|
valueHint: "parts",
|
|
210
216
|
list: true,
|
|
211
217
|
async complete() {
|
|
212
|
-
|
|
218
|
+
const { SPLIT_PARTS } = await import("./output-files-BHOIlrfD.js");
|
|
219
|
+
return SPLIT_PARTS;
|
|
213
220
|
}
|
|
214
221
|
},
|
|
215
222
|
"grants-out": {
|
|
@@ -222,6 +229,10 @@ const generate = defineLeaf({
|
|
|
222
229
|
description: "File for the role_permissions seeds",
|
|
223
230
|
valueHint: "file"
|
|
224
231
|
},
|
|
232
|
+
"no-seeds": {
|
|
233
|
+
type: "boolean",
|
|
234
|
+
description: "Do not write the seeds part: the project seeds role_permissions itself"
|
|
235
|
+
},
|
|
225
236
|
"backfill-out": {
|
|
226
237
|
type: "string",
|
|
227
238
|
description: "File for the rls.customRoles.from copy",
|
|
@@ -239,6 +250,7 @@ const generate = defineLeaf({
|
|
|
239
250
|
split: given(flags.split),
|
|
240
251
|
grantsOut: given(flags["grants-out"]),
|
|
241
252
|
seedsOut: given(flags["seeds-out"]),
|
|
253
|
+
...flags["no-seeds"] ? { noSeeds: true } : {},
|
|
242
254
|
...backfillOut === void 0 ? {} : { backfillOut }
|
|
243
255
|
});
|
|
244
256
|
}
|
|
@@ -278,7 +290,12 @@ const verify = defineLeaf({
|
|
|
278
290
|
kind: {
|
|
279
291
|
type: "enum",
|
|
280
292
|
options: ["node", "pgtap"],
|
|
281
|
-
description: "Run the fixtures in Node or
|
|
293
|
+
description: "Run the fixtures in Node or write a pgTAP file"
|
|
294
|
+
},
|
|
295
|
+
out: {
|
|
296
|
+
type: "string",
|
|
297
|
+
description: "With --kind pgtap, the file to write (default supabase/tests/permdock_rls.test.sql)",
|
|
298
|
+
valueHint: "file"
|
|
282
299
|
},
|
|
283
300
|
tree: {
|
|
284
301
|
type: "boolean",
|
|
@@ -291,19 +308,33 @@ const verify = defineLeaf({
|
|
|
291
308
|
advisors: {
|
|
292
309
|
type: "boolean",
|
|
293
310
|
description: "Run the Supabase security advisors"
|
|
311
|
+
},
|
|
312
|
+
ignore: {
|
|
313
|
+
type: "string",
|
|
314
|
+
repeatable: true,
|
|
315
|
+
description: "Accept the finding with this id for one run; rls.verify.ignore is the committed baseline",
|
|
316
|
+
valueHint: "id"
|
|
294
317
|
}
|
|
295
318
|
},
|
|
296
319
|
async run(ctx, { flags }) {
|
|
297
320
|
return runRls({
|
|
298
321
|
...await rlsInput(ctx, "verify", flags, { dbRequired: flags.introspect || flags.tree }),
|
|
322
|
+
out: fileOut("rls verify", flags.out),
|
|
299
323
|
fixtures: given(flags.fixtures),
|
|
300
324
|
format: flags.kind,
|
|
301
325
|
tree: flags.tree,
|
|
302
326
|
introspect: flags.introspect,
|
|
303
|
-
advisors: flags.advisors
|
|
327
|
+
advisors: flags.advisors,
|
|
328
|
+
ignore: flags.ignore
|
|
304
329
|
});
|
|
305
330
|
}
|
|
306
331
|
});
|
|
332
|
+
const explain = defineLeaf({
|
|
333
|
+
flags: { ...shapeFlags },
|
|
334
|
+
async run(ctx, { flags }) {
|
|
335
|
+
return runRls(await rlsInput(ctx, "explain", flags));
|
|
336
|
+
}
|
|
337
|
+
});
|
|
307
338
|
const migrate = defineLeaf({
|
|
308
339
|
flags: {
|
|
309
340
|
...shapeFlags,
|
|
@@ -333,4 +364,4 @@ const migrate = defineLeaf({
|
|
|
333
364
|
}
|
|
334
365
|
});
|
|
335
366
|
//#endregion
|
|
336
|
-
export { generate, importPolicies, migrate, verify };
|
|
367
|
+
export { explain, generate, importPolicies, migrate, verify };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-
|
|
4
|
-
import { c as
|
|
5
|
-
import { c as isUserApprover, i as flattenApprovers, l as user, o as isAnyOfInput, r as approverLeaves, s as isPermissionApprover } from "./approvers-
|
|
6
|
-
import { c as listPermissions, o as isPermission } from "./permission-registry-
|
|
7
|
-
import { n as assertMetaValue, r as parseAppData, t as assertAppData } from "./app-data-
|
|
8
|
-
import { d as isSelfParented } from "./resource-relations-
|
|
9
|
-
import { a as durationOf, r as assertDuration } from "./time-
|
|
10
|
-
import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-
|
|
11
|
-
import { c as sanitizeFields, n as normalizeValidity } from "./validity-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { c as isConditionDate, l as isConditionRef, r as isSubjectRef, s as isCondition, u as isSqlFunctionField } from "./refs-C8BKxc_e.js";
|
|
5
|
+
import { c as isUserApprover, i as flattenApprovers, l as user, o as isAnyOfInput, r as approverLeaves, s as isPermissionApprover } from "./approvers-B4r0N_Uz.js";
|
|
6
|
+
import { c as listPermissions, o as isPermission } from "./permission-registry-B8tYxPIt.js";
|
|
7
|
+
import { n as assertMetaValue, r as parseAppData, t as assertAppData } from "./app-data-UNNm07jV.js";
|
|
8
|
+
import { d as isSelfParented } from "./resource-relations-8-pCScBO.js";
|
|
9
|
+
import { a as durationOf, r as assertDuration } from "./time-nR1JesoH.js";
|
|
10
|
+
import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-Dke-9rd1.js";
|
|
11
|
+
import { c as sanitizeFields, n as normalizeValidity } from "./validity-Buc7w8E9.js";
|
|
12
12
|
//#region src/conditions/opaque.ts
|
|
13
13
|
function opaque(input) {
|
|
14
14
|
return freezeDeep({
|
|
@@ -152,7 +152,10 @@ function normalizeSqlFunction(input) {
|
|
|
152
152
|
twin
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
|
-
/**
|
|
155
|
+
/**
|
|
156
|
+
* `{ session: … }` under `subject`; any other value is a comparison on a
|
|
157
|
+
* `subject` field.
|
|
158
|
+
*/
|
|
156
159
|
function isSubjectCondition(value) {
|
|
157
160
|
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.hasOwn(value, "session");
|
|
158
161
|
}
|
|
@@ -213,7 +216,10 @@ function normalizeWhere(input) {
|
|
|
213
216
|
}
|
|
214
217
|
//#endregion
|
|
215
218
|
//#region src/core/approval-normalize.ts
|
|
216
|
-
/**
|
|
219
|
+
/**
|
|
220
|
+
* Every approver a requirement names: `by`, each stage and its escalation, and
|
|
221
|
+
* `escalation.to`, inside `anyOf` groups too.
|
|
222
|
+
*/
|
|
217
223
|
function approversOf(requirement) {
|
|
218
224
|
return [
|
|
219
225
|
...approverLeaves(requirement.by),
|
|
@@ -330,9 +336,9 @@ function assertApprovalVersions(grants, resources) {
|
|
|
330
336
|
}
|
|
331
337
|
}
|
|
332
338
|
/**
|
|
333
|
-
* A relation approver is checked by id, from the requested row: the
|
|
334
|
-
*
|
|
335
|
-
*
|
|
339
|
+
* A relation approver is checked by id, from the requested row: the relation
|
|
340
|
+
* lives on the permission's own resource (optionally up its parent chain), or
|
|
341
|
+
* at the end of a list of links from it.
|
|
336
342
|
*/
|
|
337
343
|
function assertApprovalRelations(grants, resources) {
|
|
338
344
|
for (const grant of grants) {
|
|
@@ -347,7 +353,10 @@ function assertApprovalRelations(grants, resources) {
|
|
|
347
353
|
}
|
|
348
354
|
}
|
|
349
355
|
}
|
|
350
|
-
/**
|
|
356
|
+
/**
|
|
357
|
+
* The resource a relation approver's `through` reaches from `start`, or
|
|
358
|
+
* `undefined`.
|
|
359
|
+
*/
|
|
351
360
|
function approverRelationResource(start, through, resources) {
|
|
352
361
|
if (through === void 0) return start;
|
|
353
362
|
if (through === "parent") return isSelfParented(resources.get(start)) ? start : void 0;
|
|
@@ -368,7 +377,10 @@ function assertLimit(limit, permissionKey) {
|
|
|
368
377
|
if (limit.mode !== void 0 && limit.mode !== "hard" && limit.mode !== "soft") throw new Error(`PermDock: limit mode on '${permissionKey}' must be 'hard' or 'soft'`);
|
|
369
378
|
if (limit.alertAt !== void 0 && (typeof limit.alertAt !== "number" || !(limit.alertAt > 0 && limit.alertAt <= 1))) throw new Error(`PermDock: limit alertAt on '${permissionKey}' must be a fraction above 0 and at most 1`);
|
|
370
379
|
}
|
|
371
|
-
/**
|
|
380
|
+
/**
|
|
381
|
+
* The declared fields of a validated `limit`, so extra keys never reach the
|
|
382
|
+
* grant.
|
|
383
|
+
*/
|
|
372
384
|
function normalizeLimit(limit) {
|
|
373
385
|
if (limit === void 0) return;
|
|
374
386
|
return {
|
|
@@ -436,7 +448,10 @@ function makeGrant(permission, effect, condition) {
|
|
|
436
448
|
requires
|
|
437
449
|
});
|
|
438
450
|
}
|
|
439
|
-
/**
|
|
451
|
+
/**
|
|
452
|
+
* Checks a grant's `meta`: plain JSON, string `description`, `x` through the
|
|
453
|
+
* schema when given.
|
|
454
|
+
*/
|
|
440
455
|
function grantMeta(meta, key, schema) {
|
|
441
456
|
if (meta === void 0) return;
|
|
442
457
|
assertAppData(meta, `meta of a grant on ${key}`);
|
|
@@ -478,7 +493,10 @@ function appObligations(input, key, effect) {
|
|
|
478
493
|
}
|
|
479
494
|
return out.length === 0 ? void 0 : freezeDeep(out);
|
|
480
495
|
}
|
|
481
|
-
/**
|
|
496
|
+
/**
|
|
497
|
+
* Re-checks every grant's `meta.x` with the policy's grant schema, keeping the
|
|
498
|
+
* schema output.
|
|
499
|
+
*/
|
|
482
500
|
function withGrantSchema(grant, schema) {
|
|
483
501
|
const meta = grant.meta;
|
|
484
502
|
if (schema === void 0 || meta?.x === void 0) return grant;
|
|
@@ -602,7 +620,10 @@ function holderCount(roleName, option, value) {
|
|
|
602
620
|
if (typeof value !== "number" || !Number.isInteger(value) || value < 0) throw new Error(`PermDock: role '${roleName}' ${option} must be a whole number of holders`);
|
|
603
621
|
return value;
|
|
604
622
|
}
|
|
605
|
-
/**
|
|
623
|
+
/**
|
|
624
|
+
* Ownership rules count holders per scope instance, so they need a named-scope
|
|
625
|
+
* role.
|
|
626
|
+
*/
|
|
606
627
|
function roleRules(roleName, scope, options) {
|
|
607
628
|
const min = holderCount(roleName, "min", options?.min);
|
|
608
629
|
const max = holderCount(roleName, "max", options?.max);
|
|
@@ -9,9 +9,10 @@ const ROW_GRANTEES = /* @__PURE__ */ new Set([
|
|
|
9
9
|
/**
|
|
10
10
|
* Whether a grant depends on more than the role and the scope: a row or body
|
|
11
11
|
* condition, a closure, a field list, a purpose, a break-glass override, a
|
|
12
|
-
* validity window, a `requires`, or a relation, plan, actor or assurance
|
|
13
|
-
* (`permdock_has`, `permitted_<scope>_ids`) check only
|
|
14
|
-
* policy that calls them for such a permission would widen
|
|
12
|
+
* validity window, a `requires`, or a relation, plan, actor or assurance
|
|
13
|
+
* grantee. The SQL helpers (`permdock_has`, `permitted_<scope>_ids`) check only
|
|
14
|
+
* role and scope, so a policy that calls them for such a permission would widen
|
|
15
|
+
* access.
|
|
15
16
|
*/
|
|
16
17
|
function grantHasRowConditions(grant) {
|
|
17
18
|
const grantees = Array.isArray(grant.to) ? grant.to : [grant.to];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { s as requestFromContext } from "./http-
|
|
3
|
-
import { n as tenantScope } from "./adapter-context-
|
|
4
|
-
import { t as adapterKernel } from "./bind-
|
|
5
|
-
import { r as guardIterable } from "./stream-
|
|
2
|
+
import { s as requestFromContext } from "./http-DKLXrFGk.js";
|
|
3
|
+
import { n as tenantScope } from "./adapter-context-CIQpQxbE.js";
|
|
4
|
+
import { t as adapterKernel } from "./bind-D_sZSVA3.js";
|
|
5
|
+
import { r as guardIterable } from "./stream-CDvF0sJm.js";
|
|
6
6
|
//#region src/server/rpc.ts
|
|
7
7
|
/** The tRPC and oRPC error code for a Problem Details status. */
|
|
8
8
|
function rpcCode(status) {
|
|
@@ -83,7 +83,10 @@ function bindRpcKernel(policy, options, adapter, contextOf, path) {
|
|
|
83
83
|
guard
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
/**
|
|
86
|
+
/**
|
|
87
|
+
* Wraps a streamed result so revocation ends it and items the subscriber cannot
|
|
88
|
+
* read drop.
|
|
89
|
+
*/
|
|
87
90
|
async function guardStream(source, open, permission, data, protectOptions, guard) {
|
|
88
91
|
const conn = await open(permission === null ? {} : compact({
|
|
89
92
|
permission,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { i as dateAt } from "./time-
|
|
2
|
-
import { a as describeError, l as problemOf, n as CliError, r as cliProblem, s as kindOfCode } from "./errors-
|
|
3
|
-
import { s as cliVersion } from "./version-
|
|
4
|
-
import { a as resolveCwd, i as readConfig } from "./config-
|
|
1
|
+
import { i as dateAt } from "./time-nR1JesoH.js";
|
|
2
|
+
import { a as describeError, l as problemOf, n as CliError, r as cliProblem, s as kindOfCode } from "./errors-Vpu6rKHl.js";
|
|
3
|
+
import { s as cliVersion } from "./version-DMQ0dnN5.js";
|
|
4
|
+
import { a as resolveCwd, i as readConfig } from "./config-BwPBfN0t.js";
|
|
5
5
|
import { t as beforeFirst } from "./text-BMFRfBqc.js";
|
|
6
|
-
import { a as suggestion, i as parseLeaf, n as flagSpellings, o as GLOBAL_FLAGS, r as parseFlags } from "./args-
|
|
7
|
-
import { r as progressReporter, t as redact } from "./credentials-
|
|
8
|
-
import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-
|
|
9
|
-
import { t as createStyle } from "./style-
|
|
10
|
-
import {
|
|
6
|
+
import { a as suggestion, i as parseLeaf, n as flagSpellings, o as GLOBAL_FLAGS, r as parseFlags } from "./args-0FrVs5EH.js";
|
|
7
|
+
import { r as progressReporter, t as redact } from "./credentials-CdDxp7jN.js";
|
|
8
|
+
import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
|
|
9
|
+
import { t as createStyle } from "./style-Ds11Hmk4.js";
|
|
10
|
+
import { i as githubAnnotations, n as envelope, o as sarifLog, t as dataOf } from "./output-tkju6U7R.js";
|
|
11
11
|
import { i as renameMessage, r as flagRename, t as COMMAND_MOVES } from "./renames-CGj7YwcQ.js";
|
|
12
12
|
import { stripVTControlCharacters } from "node:util";
|
|
13
13
|
import { existsSync, statSync } from "node:fs";
|
|
@@ -19,8 +19,8 @@ function set(env, name) {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* The AI agent running the CLI, from the variables `@vercel/detect-agent`
|
|
22
|
-
* reads, in its order. `CURSOR_TRACE_ID` is also set in Cursor's own
|
|
23
|
-
*
|
|
22
|
+
* reads, in its order. `CURSOR_TRACE_ID` is also set in Cursor's own terminal,
|
|
23
|
+
* so it counts only when stdout is not a TTY.
|
|
24
24
|
*/
|
|
25
25
|
function detectAgent(env, probe) {
|
|
26
26
|
const named = env["AI_AGENT"]?.trim();
|
|
@@ -94,8 +94,8 @@ function modeOf(value, source) {
|
|
|
94
94
|
return mode;
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
|
-
* `--agent`, then `PERMDOCK_AGENT`, then detection. An unknown value is a
|
|
98
|
-
*
|
|
97
|
+
* `--agent`, then `PERMDOCK_AGENT`, then detection. An unknown value is a usage
|
|
98
|
+
* error, so a typo never leaves an agent with prompts it cannot answer.
|
|
99
99
|
*/
|
|
100
100
|
function agentMode(flag, env, probe) {
|
|
101
101
|
const mode = flag === void 0 ? modeOf(env["PERMDOCK_AGENT"], "PERMDOCK_AGENT") ?? "auto" : modeOf(flag, "--agent") ?? "auto";
|
|
@@ -110,8 +110,8 @@ function agentMode(flag, env, probe) {
|
|
|
110
110
|
//#region src/cli/core/consent.ts
|
|
111
111
|
/**
|
|
112
112
|
* The reasons a run needs consent: it edits files the project owns, it
|
|
113
|
-
* publishes to the Cloud, or `--force` overwrites files PermDock did not
|
|
114
|
-
*
|
|
113
|
+
* publishes to the Cloud, or `--force` overwrites files PermDock did not write.
|
|
114
|
+
* A `--dry-run` or `--check` run writes nothing and needs none.
|
|
115
115
|
*/
|
|
116
116
|
function consentReasons(effects, flags) {
|
|
117
117
|
if (flags["dry-run"] === true || flags["check"] === true) return [];
|
|
@@ -126,8 +126,8 @@ function quote(token) {
|
|
|
126
126
|
return /^[\w@%+=:,./-]+$/u.test(token) ? token : `'${token.replaceAll("'", String.raw`'\''`)}'`;
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
|
-
* The argv as a command line to run again, `--confirm` dropped. Secrets
|
|
130
|
-
*
|
|
129
|
+
* The argv as a command line to run again, `--confirm` dropped. Secrets only
|
|
130
|
+
* arrive through `--*-stdin` flags, so the line holds none.
|
|
131
131
|
*/
|
|
132
132
|
function replayArgv(argv) {
|
|
133
133
|
const out = [];
|
|
@@ -143,8 +143,8 @@ function replayArgv(argv) {
|
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
145
|
* A short token bound to what the person agrees to, the directory and the
|
|
146
|
-
* command line. Hex, because a base64url token may start with `-` and parse
|
|
147
|
-
*
|
|
146
|
+
* command line. Hex, because a base64url token may start with `-` and parse as
|
|
147
|
+
* a flag. 16 characters, as better-supabase's.
|
|
148
148
|
*/
|
|
149
149
|
function consentToken(reasons, argv, cwd) {
|
|
150
150
|
return createHash("sha256").update(JSON.stringify([
|
|
@@ -304,7 +304,10 @@ function document(commands) {
|
|
|
304
304
|
commands
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
-
/**
|
|
307
|
+
/**
|
|
308
|
+
* `<command> --help --json`: the `cli-commands-v1` document with that command
|
|
309
|
+
* only.
|
|
310
|
+
*/
|
|
308
311
|
function leafDocument(path, entry, leaf) {
|
|
309
312
|
return document([leafJson(path, entry, leaf)]);
|
|
310
313
|
}
|
|
@@ -402,8 +405,8 @@ function lined(text) {
|
|
|
402
405
|
return text === "" || text.endsWith("\n") ? text : `${text}\n`;
|
|
403
406
|
}
|
|
404
407
|
/**
|
|
405
|
-
* The step that answers an `input_required` error without its own `next`:
|
|
406
|
-
*
|
|
408
|
+
* The step that answers an `input_required` error without its own `next`: the
|
|
409
|
+
* same command line with each missing flag or positional filled by a
|
|
407
410
|
* placeholder the caller replaces.
|
|
408
411
|
*/
|
|
409
412
|
function missingInputNext(argv, error) {
|
|
@@ -675,7 +678,7 @@ async function run(argv, options) {
|
|
|
675
678
|
if (result.streamed === true) return done(result.code);
|
|
676
679
|
if (format === "github" || format === "sarif") {
|
|
677
680
|
const findings = result.findings ?? [];
|
|
678
|
-
writeOut(format === "github" ? githubAnnotations(findings)
|
|
681
|
+
writeOut(format === "github" ? githubAnnotations(findings) : sarifLog(name, findings));
|
|
679
682
|
return done(result.code);
|
|
680
683
|
}
|
|
681
684
|
if (json) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as run } from "./run-Bz26OTfO.js";
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { $n as
|
|
2
|
-
import {
|
|
1
|
+
import { $n as AuthorizationDetail, Rt as Instant, Zn as Actor, Zt as AuthEvent, dt as TokenVerifier, lr as Subject, lt as TokenFailureCause, rr as Delegation, sr as Principal, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { _ as PrincipalSource } from "./permdock-B6Sf4T_S.js";
|
|
3
3
|
//#region src/server/run-ticket.d.ts
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* What started the run: a saved automation, a background job, or a caller's own
|
|
6
|
+
* request.
|
|
7
|
+
*/
|
|
5
8
|
type RunKind = "automation" | "job" | "caller";
|
|
6
9
|
/** RFC 8693 `act`: the party running the work, with the chain of earlier actors. */
|
|
7
10
|
type RunActClaim = {
|
|
@@ -9,7 +12,10 @@ type RunActClaim = {
|
|
|
9
12
|
readonly kind?: string;
|
|
10
13
|
readonly act?: RunActClaim;
|
|
11
14
|
};
|
|
12
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* The connector and tools a run may reach; carried for the adapter, never a
|
|
17
|
+
* grant.
|
|
18
|
+
*/
|
|
13
19
|
type RunBinding = {
|
|
14
20
|
readonly connector?: string;
|
|
15
21
|
readonly tools?: readonly string[];
|
|
@@ -18,7 +24,10 @@ type RunAutomation = {
|
|
|
18
24
|
readonly id: string;
|
|
19
25
|
readonly version: number | string;
|
|
20
26
|
};
|
|
21
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The v1 claims of a `vnd.permdock.run+jwt`. At least one of `scope` and
|
|
29
|
+
* `authorization_details` is present.
|
|
30
|
+
*/
|
|
22
31
|
type RunTicket = {
|
|
23
32
|
readonly v: 1;
|
|
24
33
|
readonly iss: string;
|
|
@@ -34,17 +43,28 @@ type RunTicket = {
|
|
|
34
43
|
/** Present exactly when `kind` is `automation`. */
|
|
35
44
|
readonly automation?: RunAutomation;
|
|
36
45
|
readonly tenant?: string;
|
|
37
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* The event that started the run, as JSON. Evaluation never reads it as a
|
|
48
|
+
* grant.
|
|
49
|
+
*/
|
|
38
50
|
readonly trigger?: Readonly<Record<string, unknown>>;
|
|
39
51
|
readonly binding?: RunBinding;
|
|
40
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps. A
|
|
55
|
+
* signing service passes only these to its signer.
|
|
56
|
+
*/
|
|
57
|
+
declare const RUN_TICKET_CLAIMS: readonly (keyof RunTicket)[];
|
|
41
58
|
type RunTicketInput = {
|
|
42
59
|
/** The principal the run acts for (`sub`). */
|
|
43
60
|
readonly principal: string;
|
|
44
61
|
readonly kind: RunKind;
|
|
45
62
|
/** Becomes `act`; a nested `act` on the actor is kept as the chain. */
|
|
46
63
|
readonly actor?: Actor;
|
|
47
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* The run's ceiling. Required: a ticket never carries the principal's full
|
|
66
|
+
* authority.
|
|
67
|
+
*/
|
|
48
68
|
readonly delegation: Delegation;
|
|
49
69
|
readonly automation?: RunAutomation;
|
|
50
70
|
readonly tenant?: string;
|
|
@@ -62,9 +82,9 @@ type RunTicketOptions = {
|
|
|
62
82
|
};
|
|
63
83
|
/** The live record of an automation, read on every use of its ticket. */
|
|
64
84
|
type RunTicketAutomations = {
|
|
65
|
-
automation(id: string, options: {
|
|
85
|
+
automation: (id: string, options: {
|
|
66
86
|
readonly tenant?: string;
|
|
67
|
-
})
|
|
87
|
+
}) => {
|
|
68
88
|
readonly id: string;
|
|
69
89
|
readonly version: number | string;
|
|
70
90
|
readonly revoked?: boolean;
|
|
@@ -99,9 +119,9 @@ type RunPrincipal = Principal & {
|
|
|
99
119
|
readonly runTicket: RunTicket;
|
|
100
120
|
};
|
|
101
121
|
/**
|
|
102
|
-
* Validates untrusted run-ticket claims and returns a frozen copy with only
|
|
103
|
-
*
|
|
104
|
-
*
|
|
122
|
+
* Validates untrusted run-ticket claims and returns a frozen copy with only the
|
|
123
|
+
* v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in a
|
|
124
|
+
* known claim, a missing delegation, or an `automation` that does not match
|
|
105
125
|
* `kind` rejects the whole ticket.
|
|
106
126
|
*/
|
|
107
127
|
declare function parseRunTicket(claims: unknown): RunTicket | undefined;
|
|
@@ -121,4 +141,4 @@ declare function signRunTicket(input: RunTicketInput, signer: TokenSigner, optio
|
|
|
121
141
|
*/
|
|
122
142
|
declare function subjectFromRunTicket(token: string | undefined | null, options: RunTicketSubjectOptions): Promise<Subject<RunPrincipal>>;
|
|
123
143
|
//#endregion
|
|
124
|
-
export {
|
|
144
|
+
export { RunContext as a, RunTicket as c, RunTicketInput as d, RunTicketOptions as f, subjectFromRunTicket as g, signRunTicket as h, RunBinding as i, RunTicketAutomations as l, parseRunTicket as m, RunActClaim as n, RunKind as o, RunTicketSubjectOptions as p, RunAutomation as r, RunPrincipal as s, RUN_TICKET_CLAIMS as t, RunTicketFailureCause as u };
|
|
@@ -1,12 +1,33 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { a as ownRecord, n as isForbiddenKey } from "./paths-
|
|
4
|
-
import { a as isId } from "./expiry-
|
|
5
|
-
import { o as epochSeconds, p as nowSeconds } from "./time-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { a as ownRecord, n as isForbiddenKey } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { a as isId } from "./expiry-6XByK0dm.js";
|
|
5
|
+
import { o as epochSeconds, p as nowSeconds } from "./time-nR1JesoH.js";
|
|
6
6
|
import { n as toWireDelegation, t as fromWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
|
|
7
7
|
import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
|
|
8
8
|
//#region src/server/run-ticket.ts
|
|
9
9
|
const RUN_TICKET_TYP = "vnd.permdock.run+jwt";
|
|
10
|
+
/**
|
|
11
|
+
* Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps. A
|
|
12
|
+
* signing service passes only these to its signer.
|
|
13
|
+
*/
|
|
14
|
+
const RUN_TICKET_CLAIMS = Object.freeze([
|
|
15
|
+
"v",
|
|
16
|
+
"iss",
|
|
17
|
+
"sub",
|
|
18
|
+
"aud",
|
|
19
|
+
"jti",
|
|
20
|
+
"iat",
|
|
21
|
+
"exp",
|
|
22
|
+
"kind",
|
|
23
|
+
"act",
|
|
24
|
+
"scope",
|
|
25
|
+
"authorization_details",
|
|
26
|
+
"automation",
|
|
27
|
+
"tenant",
|
|
28
|
+
"trigger",
|
|
29
|
+
"binding"
|
|
30
|
+
]);
|
|
10
31
|
const RUN_KINDS = [
|
|
11
32
|
"automation",
|
|
12
33
|
"job",
|
|
@@ -134,9 +155,9 @@ function parseBody(record) {
|
|
|
134
155
|
});
|
|
135
156
|
}
|
|
136
157
|
/**
|
|
137
|
-
* Validates untrusted run-ticket claims and returns a frozen copy with only
|
|
138
|
-
*
|
|
139
|
-
*
|
|
158
|
+
* Validates untrusted run-ticket claims and returns a frozen copy with only the
|
|
159
|
+
* v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in a
|
|
160
|
+
* known claim, a missing delegation, or an `automation` that does not match
|
|
140
161
|
* `kind` rejects the whole ticket.
|
|
141
162
|
*/
|
|
142
163
|
function parseRunTicket(claims) {
|
|
@@ -334,4 +355,4 @@ async function subjectFromRunTicket(token, options) {
|
|
|
334
355
|
}));
|
|
335
356
|
}
|
|
336
357
|
//#endregion
|
|
337
|
-
export {
|
|
358
|
+
export { subjectFromRunTicket as i, parseRunTicket as n, signRunTicket as r, RUN_TICKET_CLAIMS as t };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { l as scopedTenant, s as protectedView } from "./views-
|
|
1
|
+
import { l as scopedTenant, s as protectedView } from "./views-CD8wuL4Z.js";
|
|
2
2
|
//#region src/svelte/protected.ts
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* The instance for `tenant`, built once per store change rather than once per
|
|
5
|
+
* check.
|
|
6
|
+
*/
|
|
4
7
|
function scopedFor(store, tenant, _generation) {
|
|
5
8
|
return scopedTenant(store.get(), tenant);
|
|
6
9
|
}
|