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.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
package/README.md CHANGED
@@ -151,9 +151,7 @@ The same hook names exist in React Native, Vue, Svelte and Solid. Read [building
151
151
  import { createPermDock } from "permdock/next";
152
152
 
153
153
  export const { getPermDock, requirePermission, permdockHandler } =
154
- createPermDock(policy, {
155
- subject: async () => getUser(await cookies()),
156
- });
154
+ createPermDock(policy, { subject: async () => getUser(await cookies()) });
157
155
 
158
156
  // in a page or Server Action
159
157
  await requirePermission(permissions.post.update, post); // forbidden() / unauthorized() on a denial
@@ -1,8 +1,8 @@
1
- import { $n as AuthorizationDetail, T as Policy, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { m as ApprovalStore } from "../types-DC44-hqb.js";
4
- import { a as ProblemDetails } from "../errors-B_Qg9D3e.js";
5
- import { t as InstanceOptions } from "../instance-options-CU0YQCLH.js";
1
+ import { $n as AuthorizationDetail, T as Policy, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { m as ApprovalStore } from "../types-B_tiYvk8.js";
4
+ import { a as ProblemDetails } from "../errors-zi_4T-rx.js";
5
+ import { t as InstanceOptions } from "../instance-options-B0KXqTrJ.js";
6
6
  //#region src/a2a/types.d.ts
7
7
  type A2aAuth = {
8
8
  readonly clientId?: string;
@@ -159,8 +159,8 @@ type A2aPermDock = {
159
159
  readonly extendedAgentCard: (auth: A2aAuth) => Promise<A2aAgentCard>;
160
160
  readonly protectSkill: (selector: (task: unknown) => string) => (task: unknown, auth: A2aAuth) => Promise<A2aTaskOutcome>;
161
161
  /**
162
- * Appends an A2A 1.0 signature. `sign` returns a compact JWS over the
163
- * RFC 8785 canonical card it is given; the payload is detached.
162
+ * Appends an A2A 1.0 signature. `sign` returns a compact JWS over the RFC
163
+ * 8785 canonical card it is given; the payload is detached.
164
164
  */
165
165
  readonly sign: (card: A2aAgentCard, sign: (payload: string) => Promise<string>) => Promise<A2aAgentCard>;
166
166
  };
package/dist/a2a/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { o as statusProblem } from "../problem-details-cn5X30gZ.js";
4
- import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
2
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
+ import { o as statusProblem } from "../problem-details-CLDgX1KV.js";
4
+ import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-B6R_lg2a.js";
5
5
  import { t as canonicalJson } from "../canonical-json-DwilZ1iB.js";
6
- import { t as bytesToBase64Url } from "../sha256-D9ihqmvd.js";
6
+ import { t as bytesToBase64Url } from "../sha256-C-4WXKIu.js";
7
7
  import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
8
- import { i as challengeScope, l as withApp, o as hasScope, s as scopesReaching } from "../permdock-BfWEeMqk.js";
9
- import { f as wwwAuthenticate, r as bearerChallenge } from "../problem-CTviyH5L.js";
10
- import { r as instanceOptions } from "../build-instance-DxE7czo9.js";
11
- import { n as createAgentKernel } from "../kernel-DVExUwkp.js";
8
+ import { i as challengeScope, l as withApp, o as hasScope, s as scopesReaching } from "../permdock-L-_I_3zP.js";
9
+ import { p as wwwAuthenticate, r as bearerChallenge } from "../problem-BVLHFK33.js";
10
+ import { r as instanceOptions } from "../build-instance-CNWaYJyr.js";
11
+ import { n as createAgentKernel } from "../kernel-C-fYydV2.js";
12
12
  import { t as delegationFrom } from "../delegation-input-FTxMK3ji.js";
13
13
  //#region src/a2a/create.ts
14
14
  function firstScheme(options) {
@@ -0,0 +1,19 @@
1
+ import { a as ProblemDetails } from "./errors-zi_4T-rx.js";
2
+ //#region src/core/action-result.d.ts
3
+ /** What a `protectAction` action resolves to; both members cross to the client. */
4
+ type ActionResult<T> = {
5
+ readonly ok: true;
6
+ readonly value: T;
7
+ } | {
8
+ readonly ok: false;
9
+ readonly problem: ProblemDetails;
10
+ };
11
+ /**
12
+ * The server action: `approval` is the token of a granted approval request,
13
+ * which resumes an `approval-required` decision.
14
+ */
15
+ type ProtectedAction<T> = (input: unknown, options?: {
16
+ readonly approval?: string;
17
+ }) => Promise<ActionResult<T>>;
18
+ //#endregion
19
+ export { ProtectedAction as n, ActionResult as t };
@@ -1,6 +1,9 @@
1
1
  import { n as isActor } from "./subject-BGoM5o8B.js";
2
2
  //#region src/core/adapter-context.ts
3
- /** Resolves an adapter `tenant` option against its framework context; a throw is no tenant. */
3
+ /**
4
+ * Resolves an adapter `tenant` option against its framework context; a throw is
5
+ * no tenant.
6
+ */
4
7
  async function tenantScope(option, context) {
5
8
  if (option === void 0 || typeof option === "string") return { tenant: option };
6
9
  try {
@@ -9,7 +12,10 @@ async function tenantScope(option, context) {
9
12
  return { tenant: void 0 };
10
13
  }
11
14
  }
12
- /** Resolves an adapter `actor` option; anything but an `Actor`, or a throw, is no actor. */
15
+ /**
16
+ * Resolves an adapter `actor` option; anything but an `Actor`, or a throw, is
17
+ * no actor.
18
+ */
13
19
  async function actorFrom(option, context) {
14
20
  if (option === void 0) return;
15
21
  try {
@@ -1,5 +1,5 @@
1
- import { r as listSourceFiles } from "./files-D_JIzUrP.js";
2
- import { t as DOCS_BASE } from "./manifest-Dv6q4i5s.js";
1
+ import { r as listSourceFiles } from "./files-BSjrtIHw.js";
2
+ import { t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { relative } from "node:path";
5
5
  //#region src/cli/adoption-scan.ts
@@ -35,9 +35,9 @@ const LEGACY_PATTERNS = [
35
35
  }
36
36
  ];
37
37
  /**
38
- * Lines that look like an authorization check written without PermDock:
39
- * the work left before a permission can be enforced. It reads source text
40
- * only and runs nothing; a finding is a place to look, not a verdict.
38
+ * Lines that look like an authorization check written without PermDock: the
39
+ * work left before a permission can be enforced. It reads source text only and
40
+ * runs nothing; a finding is a place to look, not a verdict.
41
41
  */
42
42
  function scanLegacy(options) {
43
43
  const custom = (options.patterns ?? []).map((source) => ({
@@ -1,3 +1,3 @@
1
- import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-D4qkEtFz.js";
2
- import { a as createPermDock, c as ModelMap, d as StepUp, i as OperationVerdict, l as ToolBinding, n as AgentPermDockOptions, o as AgentAdapterOptions, r as GatewayOptions, s as DecideToolOptions, t as AgentPermDock, u as ToolMap } from "../create-UTnUVETj.js";
1
+ import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-CHNlVInN.js";
2
+ import { a as createPermDock, c as ModelMap, d as StepUp, i as OperationVerdict, l as ToolBinding, n as AgentPermDockOptions, o as AgentAdapterOptions, r as GatewayOptions, s as DecideToolOptions, t as AgentPermDock, u as ToolMap } from "../create-BSNrVuxh.js";
3
3
  export { type AgentAdapterOptions, type AgentPermDock, type AgentPermDockOptions, type DecideToolOptions, type DeniedText, type DeniedTextEvent, type GatewayOptions, type ModelMap, type OperationVerdict, type StepUp, type ToolBinding, type ToolMap, createPermDock };
@@ -1 +1 @@
1
- export { n as createPermDock } from "../create-Cb86Z8Im.js";
1
+ export { n as createPermDock } from "../create-Cq4Uox0f.js";
@@ -1,7 +1,7 @@
1
- import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-D4qkEtFz.js";
4
- import { d as StepUp, o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-CHNlVInN.js";
4
+ import { d as StepUp, o as AgentAdapterOptions, t as AgentPermDock } from "../create-BSNrVuxh.js";
5
5
  //#region src/ai-sdk/create.d.ts
6
6
  type AiSdkContext = {
7
7
  readonly runtimeContext?: unknown;
@@ -10,16 +10,19 @@ type AiSdkContext = {
10
10
  };
11
11
  type AiSdkPermDockOptions<TUser = unknown> = AgentAdapterOptions<AiSdkContext, TUser> & {
12
12
  /**
13
- * Turns a denial the user can lift into `user-approval`: a missing
14
- * step-up authentication, or a role the user is eligible to activate.
15
- * The re-check decides again and runs the tool only when granted. `at` is
16
- * the page the user signs in again at; `acr_values` and `max_age` are added.
13
+ * Turns a denial the user can lift into `user-approval`: a missing step-up
14
+ * authentication, or a role the user is eligible to activate. The re-check
15
+ * decides again and runs the tool only when granted. `at` is the page the
16
+ * user signs in again at; `acr_values` and `max_age` are added.
17
17
  */
18
18
  readonly stepUp?: {
19
19
  readonly at?: string;
20
20
  };
21
21
  };
22
- /** What an AI SDK tool approval function may return; `undefined` is `not-applicable`. */
22
+ /**
23
+ * What an AI SDK tool approval function may return; `undefined` is
24
+ * `not-applicable`.
25
+ */
23
26
  type ToolApprovalResult = ToolApprovalStatus | undefined | "not-applicable" | "denied" | "user-approval" | {
24
27
  readonly type: "not-applicable";
25
28
  } | {
@@ -44,7 +47,10 @@ type ToolApprovalStatus = "approved" | {
44
47
  } | {
45
48
  readonly type: "user-approval";
46
49
  readonly reason: string;
47
- /** What the user does before approving; there is no approval request in the store. */
50
+ /**
51
+ * What the user does before approving; there is no approval request in
52
+ * the store.
53
+ */
48
54
  readonly stepUp: StepUp;
49
55
  };
50
56
  /** Structural `GenericToolApprovalFunction` options from `ai`. */
@@ -93,9 +99,9 @@ type AiSdkPermDock<V extends PolicyVocabulary = PolicyVocabulary> = AgentPermDoc
93
99
  */
94
100
  readonly composeToolApproval: (app: AppToolApproval) => (call: ToolApprovalCall) => Promise<ToolApprovalResult>;
95
101
  /**
96
- * Hides tools the subject in `context` can never use, before the model
97
- * sees them. With `models`, a call to a model the subject is not granted
98
- * throws `PermDockDeniedError` before the provider is called.
102
+ * Hides tools the subject in `context` can never use, before the model sees
103
+ * them. With `models`, a call to a model the subject is not granted throws
104
+ * `PermDockDeniedError` before the provider is called.
99
105
  */
100
106
  readonly capabilityMiddleware: (context: AiSdkContext) => LanguageModelMiddleware;
101
107
  readonly needsApproval: (permission: Permission) => (input: unknown, options?: NeedsApprovalOptions) => Promise<boolean>;
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
3
- import { l as withApp } from "../permdock-BfWEeMqk.js";
4
- import { r as stepUpText, t as approvalTokenOf } from "../kernel-DVExUwkp.js";
5
- import { t as agentRuntime } from "../create-Cb86Z8Im.js";
2
+ import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-B6R_lg2a.js";
3
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
4
+ import { r as stepUpText, t as approvalTokenOf } from "../kernel-C-fYydV2.js";
5
+ import { t as agentRuntime } from "../create-Cq4Uox0f.js";
6
6
  //#region src/ai-sdk/create.ts
7
7
  const APPROVAL_STATUSES = /* @__PURE__ */ new Set([
8
8
  "approved",
@@ -30,8 +30,8 @@ function toolContextOf(options) {
30
30
  }
31
31
  /**
32
32
  * Whether `messages` already carry an approval request for `toolCallId`: the
33
- * SDK is re-checking a call a user approved, and treats any answer other
34
- * than `denied` as approval.
33
+ * SDK is re-checking a call a user approved, and treats any answer other than
34
+ * `denied` as approval.
35
35
  */
36
36
  function isRecheck(messages, toolCallId) {
37
37
  if (!Array.isArray(messages) || typeof toolCallId !== "string") return false;
@@ -1,8 +1,11 @@
1
- import { t as assertSafeKey } from "./paths-DXSHAMIa.js";
2
- import { i as validateSync } from "./thenable-yD7SabqG.js";
1
+ import { t as assertSafeKey } from "./paths-CUvURzHp.js";
2
+ import { i as validateSync } from "./thenable-BNSM1U2R.js";
3
3
  //#region src/core/app-data.ts
4
4
  const MAX_META_DEPTH = 8;
5
- /** Throws unless `value` is plain, prototype-safe JSON at most eight levels deep. */
5
+ /**
6
+ * Throws unless `value` is plain, prototype-safe JSON at most eight levels
7
+ * deep.
8
+ */
6
9
  function assertMetaValue(value, label, depth = 0) {
7
10
  if (depth > MAX_META_DEPTH) throw new Error(`PermDock: ${label} nests deeper than ${MAX_META_DEPTH}`);
8
11
  if (value === null || typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value)) return;
@@ -33,8 +36,8 @@ function runSchema(schema, value) {
33
36
  };
34
37
  }
35
38
  /**
36
- * Checks code-declared app data: plain JSON, then the schema when one is
37
- * given. Throws on failure, because a bad definition is an author error.
39
+ * Checks code-declared app data: plain JSON, then the schema when one is given.
40
+ * Throws on failure, because a bad definition is an author error.
38
41
  */
39
42
  function parseAppData(schema, value, label) {
40
43
  assertAppData(value, label);
@@ -46,8 +49,8 @@ function parseAppData(schema, value, label) {
46
49
  }
47
50
  /**
48
51
  * Checks app data read from a source (a membership, a stored custom role).
49
- * Never throws: `undefined` means the value is dropped, and the caller
50
- * reports it.
52
+ * Never throws: `undefined` means the value is dropped, and the caller reports
53
+ * it.
51
54
  */
52
55
  function readAppData(schema, value) {
53
56
  try {
@@ -6,15 +6,18 @@
6
6
  const SF_TOKEN = /^[A-Za-z*][!#$%&'*+\-.^_`|~0-9A-Za-z:/]*$/u;
7
7
  /**
8
8
  * The token a `PermDock-Approval` field value carries, or `undefined` for
9
- * anything but a single sf-token Item without parameters. Leading and
10
- * trailing spaces are discarded as RFC 9651 section 4.2 parses them.
9
+ * anything but a single sf-token Item without parameters. Leading and trailing
10
+ * spaces are discarded as RFC 9651 section 4.2 parses them.
11
11
  */
12
12
  function parseApprovalHeader(value) {
13
13
  if (value === null) return;
14
14
  const item = value.replaceAll(/^ +| +$/gu, "");
15
15
  return SF_TOKEN.test(item) ? item : void 0;
16
16
  }
17
- /** The `PermDock-Approval` field value for `token`; a `TypeError` for a token that is not an sf-token. */
17
+ /**
18
+ * The `PermDock-Approval` field value for `token`; a `TypeError` for a token
19
+ * that is not an sf-token.
20
+ */
18
21
  function approvalHeaderValue(token) {
19
22
  if (!SF_TOKEN.test(token)) throw new TypeError("PermDock: a PermDock-Approval token must be an RFC 9651 sf-token");
20
23
  return token;
@@ -1,9 +1,9 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
3
  //#region src/delivery/approval-prompt.ts
4
4
  /**
5
- * The prompt for a pending request. Throws a `TypeError` for a request that
6
- * is not pending: a resolved or expired request has nothing to approve.
5
+ * The prompt for a pending request. Throws a `TypeError` for a request that is
6
+ * not pending: a resolved or expired request has nothing to approve.
7
7
  */
8
8
  function approvalPrompt(request, options = {}) {
9
9
  if (request.status !== "pending") throw new TypeError(`PermDock: approvalPrompt needs a pending request, got ${request.status}`);
@@ -39,9 +39,8 @@ function approvalPrompt(request, options = {}) {
39
39
  }));
40
40
  }
41
41
  /**
42
- * The approval page URL for `prompt`. A string or `URL` is a base the
43
- * encoded request id is appended to. Throws a `TypeError` for a URL that is
44
- * not https.
42
+ * The approval page URL for `prompt`. A string or `URL` is a base the encoded
43
+ * request id is appended to. Throws a `TypeError` for a URL that is not https.
45
44
  */
46
45
  function approvalUrlFor(prompt, approvalUrl) {
47
46
  let url;
@@ -1,10 +1,10 @@
1
- import { s as OperationMeta, t as Operation } from "./operations-BNLes61x.js";
2
- import { u as ApprovalRequest } from "./types-DC44-hqb.js";
1
+ import { s as OperationMeta, t as Operation } from "./operations-Ci_rT6Uo.js";
2
+ import { u as ApprovalRequest } from "./types-B_tiYvk8.js";
3
3
  //#region src/delivery/approval-prompt.d.ts
4
4
  /**
5
- * What an email or chat prompt shows an approver, wire format v1. It carries
6
- * no approval token and no roles: a prompt links to the app's approval page,
7
- * where the signed-in approver decides. A link never approves.
5
+ * What an email or chat prompt shows an approver, wire format v1. It carries no
6
+ * approval token and no roles: a prompt links to the app's approval page, where
7
+ * the signed-in approver decides. A link never approves.
8
8
  */
9
9
  type ApprovalPrompt = {
10
10
  readonly v: 1;
@@ -38,19 +38,21 @@ type ApprovalPrompt = {
38
38
  readonly effects?: OperationMeta["effects"];
39
39
  };
40
40
  };
41
- /** The approval page for a prompt: a base URL the request id is appended to, or a function of the prompt. */
41
+ /**
42
+ * The approval page for a prompt: a base URL the request id is appended to, or
43
+ * a function of the prompt.
44
+ */
42
45
  type ApprovalUrl = string | URL | ((prompt: ApprovalPrompt) => string | URL);
43
46
  /**
44
- * The prompt for a pending request. Throws a `TypeError` for a request that
45
- * is not pending: a resolved or expired request has nothing to approve.
47
+ * The prompt for a pending request. Throws a `TypeError` for a request that is
48
+ * not pending: a resolved or expired request has nothing to approve.
46
49
  */
47
50
  declare function approvalPrompt(request: ApprovalRequest, options?: {
48
51
  readonly operation?: Pick<Operation, "name" | "meta">;
49
52
  }): ApprovalPrompt;
50
53
  /**
51
- * The approval page URL for `prompt`. A string or `URL` is a base the
52
- * encoded request id is appended to. Throws a `TypeError` for a URL that is
53
- * not https.
54
+ * The approval page URL for `prompt`. A string or `URL` is a base the encoded
55
+ * request id is appended to. Throws a `TypeError` for a URL that is not https.
54
56
  */
55
57
  declare function approvalUrlFor(prompt: ApprovalPrompt, approvalUrl: ApprovalUrl): string;
56
58
  //#endregion
@@ -1,5 +1,5 @@
1
- import { _ as DEFAULT_APPROVAL_TTL, a as ApprovalDelegationSource, b as escalationOpenAt, c as ApprovalListQuery, d as ApprovalResumeFailureCause, f as ApprovalSignature, g as ApprovalVerdict, h as ApprovalSubjectSummary, i as ApprovalDelegation, l as ApprovalPage, m as ApprovalStore, n as ApprovalApprovers, o as ApprovalInspectResult, p as ApprovalStatus, r as ApprovalCancelMeta, s as ApprovalListFilter, t as APPROVAL_HEADER, u as ApprovalRequest, v as approvalQuorum, y as approverRelationKey } from "../types-DC44-hqb.js";
2
- import { n as ApprovalErrorCode, r as isApprovalError, t as ApprovalError } from "../errors-BWXBMaKK.js";
3
- import { a as AccessReviewItemQuery, c as AccessReviewStore, i as AccessReviewItemPage, n as AccessReviewDecision, o as AccessReviewItemStatus, r as AccessReviewItem, s as AccessReviewStatus, t as AccessReview } from "../types-CfiKC5aN.js";
4
- import { $ as AccessReviewHolder, A as SignApprovalOptions, B as IdempotentResponse, C as ApproverRelationsOptions, D as approvalView, E as approvalEntityTag, F as ApprovalsHandlerOptions, G as ApprovalDelegationMatch, H as idempotencyRecordKey, I as approvalsHandler, J as memoryApprovalDelegationSource, K as MatchDelegationOptions, L as IdempotencyRecord, M as signApproval, N as APPROVAL_REQUEST_SCHEMA, O as ApprovalSignatureClaims, P as parseApprovalRequest, Q as pageAccessReviewItems, R as IdempotencyStore, S as vouchApproval, T as ApprovalView, U as matchesIdempotencyRecord, V as idempotencyRecord, W as memoryIdempotencyStore, X as MemoryAccessReviewStore, Y as parseApprovalDelegation, Z as memoryAccessReviewStore, _ as resolveApproval, a as approverPermissions, at as isAccessReviewError, b as storedApprovalToken, c as decodeApprovalCursor, ct as decideAccessReviewItem, d as pageApprovals, et as AccessReviewOptions, f as cancelApprovals, g as requestApproval, h as readApprovalHeader, i as memoryApprovalStore, it as AccessReviewErrorCode, j as approvalSignatureClaims, k as ApprovalSignatureEntry, l as encodeApprovalCursor, lt as AccessReviewsHandlerOptions, m as inspectApproval, n as applyApprovalVerdict, nt as startAccessReview, o as ApprovalCursorPosition, ot as AccessReviewVerdict, p as consumeApproval, q as matchDelegation, r as assertApprover, rt as AccessReviewError, s as approvalPageSize, st as accessReviewerEligible, t as MemoryApprovalStore, tt as StartAccessReviewInput, u as listAllApprovals, ut as accessReviewsHandler, v as resumeDecision, w as approverRelations, x as summarizeSubject, y as resumeFromHeader, z as IdempotentCall } from "../index-BE8y3moU.js";
1
+ import { _ as DEFAULT_APPROVAL_TTL, a as ApprovalDelegationSource, b as escalationOpenAt, c as ApprovalListQuery, d as ApprovalResumeFailureCause, f as ApprovalSignature, g as ApprovalVerdict, h as ApprovalSubjectSummary, i as ApprovalDelegation, l as ApprovalPage, m as ApprovalStore, n as ApprovalApprovers, o as ApprovalInspectResult, p as ApprovalStatus, r as ApprovalCancelMeta, s as ApprovalListFilter, t as APPROVAL_HEADER, u as ApprovalRequest, v as approvalQuorum, y as approverRelationKey } from "../types-B_tiYvk8.js";
2
+ import { n as ApprovalErrorCode, r as isApprovalError, t as ApprovalError } from "../errors-CHwoRRpB.js";
3
+ import { a as AccessReviewItemQuery, c as AccessReviewStore, i as AccessReviewItemPage, n as AccessReviewDecision, o as AccessReviewItemStatus, r as AccessReviewItem, s as AccessReviewStatus, t as AccessReview } from "../types-B2mlGuhW.js";
4
+ import { $ as AccessReviewHolder, A as SignApprovalOptions, B as IdempotentResponse, C as ApproverRelationsOptions, D as approvalView, E as approvalEntityTag, F as ApprovalsHandlerOptions, G as ApprovalDelegationMatch, H as idempotencyRecordKey, I as approvalsHandler, J as memoryApprovalDelegationSource, K as MatchDelegationOptions, L as IdempotencyRecord, M as signApproval, N as APPROVAL_REQUEST_SCHEMA, O as ApprovalSignatureClaims, P as parseApprovalRequest, Q as pageAccessReviewItems, R as IdempotencyStore, S as vouchApproval, T as ApprovalView, U as matchesIdempotencyRecord, V as idempotencyRecord, W as memoryIdempotencyStore, X as MemoryAccessReviewStore, Y as parseApprovalDelegation, Z as memoryAccessReviewStore, _ as resolveApproval, a as approverPermissions, at as isAccessReviewError, b as storedApprovalToken, c as decodeApprovalCursor, ct as decideAccessReviewItem, d as pageApprovals, et as AccessReviewOptions, f as cancelApprovals, g as requestApproval, h as readApprovalHeader, i as memoryApprovalStore, it as AccessReviewErrorCode, j as approvalSignatureClaims, k as ApprovalSignatureEntry, l as encodeApprovalCursor, lt as AccessReviewsHandlerOptions, m as inspectApproval, n as applyApprovalVerdict, nt as startAccessReview, o as ApprovalCursorPosition, ot as AccessReviewVerdict, p as consumeApproval, q as matchDelegation, r as assertApprover, rt as AccessReviewError, s as approvalPageSize, st as accessReviewerEligible, t as MemoryApprovalStore, tt as StartAccessReviewInput, u as listAllApprovals, ut as accessReviewsHandler, v as resumeDecision, w as approverRelations, x as summarizeSubject, y as resumeFromHeader, z as IdempotentCall } from "../index-_9UiQIkt.js";
5
5
  export { APPROVAL_HEADER, APPROVAL_REQUEST_SCHEMA, type AccessReview, type AccessReviewDecision, AccessReviewError, type AccessReviewErrorCode, type AccessReviewHolder, type AccessReviewItem, type AccessReviewItemPage, type AccessReviewItemQuery, type AccessReviewItemStatus, type AccessReviewOptions, type AccessReviewStatus, type AccessReviewStore, type AccessReviewVerdict, type AccessReviewsHandlerOptions, type ApprovalApprovers, type ApprovalCancelMeta, type ApprovalCursorPosition, type ApprovalDelegation, type ApprovalDelegationMatch, type ApprovalDelegationSource, ApprovalError, type ApprovalErrorCode, type ApprovalInspectResult, type ApprovalListFilter, type ApprovalListQuery, type ApprovalPage, type ApprovalRequest, type ApprovalResumeFailureCause, type ApprovalSignature, type ApprovalSignatureClaims, type ApprovalSignatureEntry, type ApprovalStatus, type ApprovalStore, type ApprovalSubjectSummary, type ApprovalVerdict, type ApprovalView, type ApprovalsHandlerOptions, type ApproverRelationsOptions, DEFAULT_APPROVAL_TTL, type IdempotencyRecord, type IdempotencyStore, type IdempotentCall, type IdempotentResponse, type MatchDelegationOptions, type MemoryAccessReviewStore, type MemoryApprovalStore, type SignApprovalOptions, type StartAccessReviewInput, accessReviewerEligible, accessReviewsHandler, applyApprovalVerdict, approvalEntityTag, approvalPageSize, approvalQuorum, approvalSignatureClaims, approvalView, approvalsHandler, approverPermissions, approverRelationKey, approverRelations, assertApprover, cancelApprovals, consumeApproval, decideAccessReviewItem, decodeApprovalCursor, encodeApprovalCursor, escalationOpenAt, idempotencyRecord, idempotencyRecordKey, inspectApproval, isAccessReviewError, isApprovalError, listAllApprovals, matchDelegation, matchesIdempotencyRecord, memoryAccessReviewStore, memoryApprovalDelegationSource, memoryApprovalStore, memoryIdempotencyStore, pageAccessReviewItems, pageApprovals, parseApprovalDelegation, parseApprovalRequest, readApprovalHeader, requestApproval, resolveApproval, resumeDecision, resumeFromHeader, signApproval, startAccessReview, storedApprovalToken, summarizeSubject, vouchApproval };
@@ -1,8 +1,8 @@
1
- import { a as escalationOpenAt, c as isApprovalError, i as approverRelationKey, n as DEFAULT_APPROVAL_TTL, r as approvalQuorum, s as ApprovalError, t as APPROVAL_HEADER } from "../types-DqzsnlSA.js";
2
- import { c as decodeApprovalCursor, d as pageApprovals, i as memoryApprovalStore, l as encodeApprovalCursor, n as assertApprover, s as approvalPageSize, t as applyApprovalVerdict, u as listAllApprovals } from "../store-DSP9oGvh.js";
3
- import { a as requestApproval, c as resumeFromHeader, d as vouchApproval, f as approverPermissions, i as readApprovalHeader, l as storedApprovalToken, m as approverRelations, n as consumeApproval, o as resolveApproval, r as inspectApproval, s as resumeDecision, t as cancelApprovals, u as summarizeSubject } from "../helpers-DY3vXuGs.js";
1
+ import { a as escalationOpenAt, c as isApprovalError, i as approverRelationKey, n as DEFAULT_APPROVAL_TTL, r as approvalQuorum, s as ApprovalError, t as APPROVAL_HEADER } from "../types-CcUXciSj.js";
2
+ import { c as decodeApprovalCursor, d as pageApprovals, i as memoryApprovalStore, l as encodeApprovalCursor, n as assertApprover, s as approvalPageSize, t as applyApprovalVerdict, u as listAllApprovals } from "../store-RNFvaJJv.js";
3
+ import { a as requestApproval, c as resumeFromHeader, d as vouchApproval, f as approverPermissions, i as readApprovalHeader, l as storedApprovalToken, m as approverRelations, n as consumeApproval, o as resolveApproval, r as inspectApproval, s as resumeDecision, t as cancelApprovals, u as summarizeSubject } from "../helpers-DJicaG6f.js";
4
4
  import { n as isAccessReviewError, t as AccessReviewError } from "../errors-BDUwg2qC.js";
5
- import { _ as accessReviewerEligible, a as idempotencyRecordKey, c as approvalEntityTag, d as memoryApprovalDelegationSource, f as parseApprovalDelegation, g as accessReviewsHandler, h as startAccessReview, i as idempotencyRecord, l as approvalView, m as pageAccessReviewItems, n as approvalSignatureClaims, o as matchesIdempotencyRecord, p as memoryAccessReviewStore, r as signApproval, s as memoryIdempotencyStore, t as approvalsHandler, u as matchDelegation, v as decideAccessReviewItem } from "../approvals-CMRfsbBh.js";
6
- import { t as APPROVAL_REQUEST_SCHEMA } from "../request-schema-CMreVuFM.js";
7
- import { t as parseApprovalRequest } from "../parse-request-D_tUXG6M.js";
5
+ import { _ as accessReviewerEligible, a as idempotencyRecordKey, c as approvalEntityTag, d as memoryApprovalDelegationSource, f as parseApprovalDelegation, g as accessReviewsHandler, h as startAccessReview, i as idempotencyRecord, l as approvalView, m as pageAccessReviewItems, n as approvalSignatureClaims, o as matchesIdempotencyRecord, p as memoryAccessReviewStore, r as signApproval, s as memoryIdempotencyStore, t as approvalsHandler, u as matchDelegation, v as decideAccessReviewItem } from "../approvals-DnIBTuXE.js";
6
+ import { t as APPROVAL_REQUEST_SCHEMA } from "../request-schema-DhX7UbfQ.js";
7
+ import { t as parseApprovalRequest } from "../parse-request-CwCZpyjV.js";
8
8
  export { APPROVAL_HEADER, APPROVAL_REQUEST_SCHEMA, AccessReviewError, ApprovalError, DEFAULT_APPROVAL_TTL, accessReviewerEligible, accessReviewsHandler, applyApprovalVerdict, approvalEntityTag, approvalPageSize, approvalQuorum, approvalSignatureClaims, approvalView, approvalsHandler, approverPermissions, approverRelationKey, approverRelations, assertApprover, cancelApprovals, consumeApproval, decideAccessReviewItem, decodeApprovalCursor, encodeApprovalCursor, escalationOpenAt, idempotencyRecord, idempotencyRecordKey, inspectApproval, isAccessReviewError, isApprovalError, listAllApprovals, matchDelegation, matchesIdempotencyRecord, memoryAccessReviewStore, memoryApprovalDelegationSource, memoryApprovalStore, memoryIdempotencyStore, pageAccessReviewItems, pageApprovals, parseApprovalDelegation, parseApprovalRequest, readApprovalHeader, requestApproval, resolveApproval, resumeDecision, resumeFromHeader, signApproval, startAccessReview, storedApprovalToken, summarizeSubject, vouchApproval };
@@ -1,23 +1,26 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { a as ownRecord } from "./paths-DXSHAMIa.js";
4
- import { a as problemType, o as statusProblem } from "./problem-details-cn5X30gZ.js";
5
- import { a as isId } from "./expiry-D4_YKRKD.js";
6
- import { d as isoNow, f as nowMillis, g as secondsOf, i as dateAt } from "./time-DkWjdL98.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { a as ownRecord } from "./paths-CUvURzHp.js";
4
+ import { a as problemType, o as statusProblem } from "./problem-details-CLDgX1KV.js";
5
+ import { a as isId } from "./expiry-6XByK0dm.js";
6
+ import { d as isoNow, f as nowMillis, g as secondsOf, i as dateAt } from "./time-nR1JesoH.js";
7
7
  import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
8
- import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
9
- import { c as rootMembershipId } from "./scopes-BHsc-wp-.js";
10
- import { o as flattenGrantee } from "./grantee-BrRANrpT.js";
11
- import { c as isApprovalError, s as ApprovalError } from "./types-DqzsnlSA.js";
12
- import { a as belongsToTenant, c as decodeApprovalCursor, n as assertApprover, o as membershipTenants, r as matchesApprovers, s as approvalPageSize, u as listAllApprovals } from "./store-DSP9oGvh.js";
13
- import { n as readBodyText } from "./body-text-QcXok_SI.js";
14
- import { r as hasCredentials } from "./http-BBoKefeS.js";
15
- import { a as methodNotAllowed, c as problemResponse, d as validationProblem, u as unauthenticatedProblem } from "./problem-CTviyH5L.js";
16
- import { f as approverPermissions, m as approverRelations, p as heldPermissions } from "./helpers-DY3vXuGs.js";
8
+ import { r as sha256Digest } from "./sha256-C-4WXKIu.js";
9
+ import { c as rootMembershipId } from "./scopes-0Up_UA2t.js";
10
+ import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
11
+ import { c as isApprovalError, s as ApprovalError } from "./types-CcUXciSj.js";
12
+ import { a as belongsToTenant, c as decodeApprovalCursor, n as assertApprover, o as membershipTenants, r as matchesApprovers, s as approvalPageSize, u as listAllApprovals } from "./store-RNFvaJJv.js";
13
+ import { n as readBodyText } from "./body-text-DQhcmqdY.js";
14
+ import { r as hasCredentials } from "./http-DKLXrFGk.js";
15
+ import { d as unauthenticatedProblem, f as validationProblem, l as problemResponse, o as methodNotAllowed } from "./problem-BVLHFK33.js";
16
+ import { f as approverPermissions, m as approverRelations, p as heldPermissions } from "./helpers-DJicaG6f.js";
17
17
  import { n as isAccessReviewError, t as AccessReviewError } from "./errors-BDUwg2qC.js";
18
- import { t as bodyTooLarge } from "./body-CH5of8Ne.js";
18
+ import { t as bodyTooLarge } from "./body-CJQwYVa8.js";
19
19
  //#region src/approvals/access-reviews/decide.ts
20
- /** Whether `by` is named as a reviewer. A link, a feed or a contact is never a reviewer. */
20
+ /**
21
+ * Whether `by` is named as a reviewer. A link, a feed or a contact is never a
22
+ * reviewer.
23
+ */
21
24
  function accessReviewerEligible(review, by, permissions = [], now) {
22
25
  const principal = by.principal;
23
26
  if (principal === null || principal.kind === "link" || principal.kind === "feed" || principal.kind === "contact") return false;
@@ -27,8 +30,8 @@ function accessReviewerEligible(review, by, permissions = [], now) {
27
30
  });
28
31
  }
29
32
  /**
30
- * The decision to persist, or throws. A reviewer cannot decide a holding
31
- * of their own principal. `holder()` matches only through `permissions`.
33
+ * The decision to persist, or throws. A reviewer cannot decide a holding of
34
+ * their own principal. `holder()` matches only through `permissions`.
32
35
  */
33
36
  function decideAccessReviewItem(review, item, verdict, at) {
34
37
  const now = dateAt(at);
@@ -57,7 +60,10 @@ function json$1(status, body) {
57
60
  headers: { "content-type": "application/json" }
58
61
  });
59
62
  }
60
- /** The route a path names, the methods it allows, or `undefined` for an unknown path. */
63
+ /**
64
+ * The route a path names, the methods it allows, or `undefined` for an unknown
65
+ * path.
66
+ */
61
67
  function parseRoute$1(url, method) {
62
68
  const parts = url.pathname.replace(/\/+$/u, "").split("/").filter(Boolean);
63
69
  const last = parts.at(-1);
@@ -132,8 +138,8 @@ function mapError$1(error, credentials) {
132
138
  }
133
139
  /**
134
140
  * HTTP for one access-review store: `GET` a review and its items, `POST`
135
- * `.../keep`, `.../revoke`, `.../applied` and `.../close`. A caller who is
136
- * not a reviewer and did not open the review gets 404.
141
+ * `.../keep`, `.../revoke`, `.../applied` and `.../close`. A caller who is not
142
+ * a reviewer and did not open the review gets 404.
137
143
  */
138
144
  function accessReviewsHandler(store, options) {
139
145
  return async (request) => {
@@ -275,9 +281,9 @@ function itemsFrom(reviewId, holders, keys) {
275
281
  return items;
276
282
  }
277
283
  /**
278
- * Opens a review of who holds `permissions` in the caller's active tenant.
279
- * The caller must be signed in. PermDock stores the population and does not
280
- * revoke anything: the application changes the source, then `markApplied`.
284
+ * Opens a review of who holds `permissions` in the caller's active tenant. The
285
+ * caller must be signed in. PermDock stores the population and does not revoke
286
+ * anything: the application changes the source, then `markApplied`.
281
287
  */
282
288
  async function startAccessReview(permdock, input, options) {
283
289
  const principal = permdock.subject.principal;
@@ -415,9 +421,9 @@ function stringList(value) {
415
421
  return [...new Set(value)];
416
422
  }
417
423
  /**
418
- * A frozen copy of a delegation with only the known fields, or `undefined`
419
- * when a known field has the wrong type, `until` is not after `from`, or
420
- * the delegate and the delegator are the same principal.
424
+ * A frozen copy of a delegation with only the known fields, or `undefined` when
425
+ * a known field has the wrong type, `until` is not after `from`, or the
426
+ * delegate and the delegator are the same principal.
421
427
  */
422
428
  function parseApprovalDelegation(input) {
423
429
  const value = ownRecord(input);
@@ -475,8 +481,8 @@ function covers(entry, request, delegate, tenant, at) {
475
481
  return entry.resources === void 0 || entry.resources.includes(request.resource.type);
476
482
  }
477
483
  /**
478
- * The first active delegation under which `delegate` may approve `request`,
479
- * or `undefined`. The delegator is resolved by `subjectFor` and checked with
484
+ * The first active delegation under which `delegate` may approve `request`, or
485
+ * `undefined`. The delegator is resolved by `subjectFor` and checked with
480
486
  * `assertApprover`, so relation and permission approvers use the delegator's
481
487
  * facts. A throw, a missing option or a delegator the source does not name
482
488
  * matches nobody. The delegator's own delegations are never read.
@@ -529,17 +535,23 @@ function approvalView(request) {
529
535
  }
530
536
  /**
531
537
  * A strong RFC 9110 entity tag: the quoted `sha-256:` digest of
532
- * `approvalView(request)` as RFC 8785 JSON. A field outside
533
- * `ApprovalRequest` changes the tag, so hash the stored request as is.
538
+ * `approvalView(request)` as RFC 8785 JSON. A field outside `ApprovalRequest`
539
+ * changes the tag, so hash the stored request as is.
534
540
  */
535
541
  function approvalEntityTag(request) {
536
542
  return `"${sha256Digest(canonicalJson(approvalView(request)))}"`;
537
543
  }
538
544
  //#endregion
539
545
  //#region src/approvals/idempotency.ts
540
- /** How long `approvalsHandler` keeps a response for a repeated `Idempotency-Key`. */
546
+ /**
547
+ * How long `approvalsHandler` keeps a response for a repeated
548
+ * `Idempotency-Key`.
549
+ */
541
550
  const IDEMPOTENCY_TTL_MS = 864e5;
542
- /** The `IdempotencyStore` key for one approver's `Idempotency-Key`: keys never cross approvers. */
551
+ /**
552
+ * The `IdempotencyStore` key for one approver's `Idempotency-Key`: keys never
553
+ * cross approvers.
554
+ */
543
555
  function idempotencyRecordKey(principalId, key) {
544
556
  return `${principalId}\n${key}`;
545
557
  }
@@ -547,9 +559,9 @@ function fingerprintOf(call) {
547
559
  return `${call.action} ${call.id} ${sha256Digest(call.body)}`;
548
560
  }
549
561
  /**
550
- * The record `approvalsHandler` stores after `call` answered `response`:
551
- * the status, headers and body text, the call's fingerprint, and an expiry
552
- * 24 hours after `now` (epoch milliseconds, default the clock).
562
+ * The record `approvalsHandler` stores after `call` answered `response`: the
563
+ * status, headers and body text, the call's fingerprint, and an expiry 24 hours
564
+ * after `now` (epoch milliseconds, default the clock).
553
565
  */
554
566
  async function idempotencyRecord(input) {
555
567
  return {
@@ -563,7 +575,10 @@ async function idempotencyRecord(input) {
563
575
  expiresAt: (input.now ?? nowMillis()) + IDEMPOTENCY_TTL_MS
564
576
  };
565
577
  }
566
- /** Whether a stored response came from the same call: a reused key with another call is refused with `422`. */
578
+ /**
579
+ * Whether a stored response came from the same call: a reused key with another
580
+ * call is refused with `422`.
581
+ */
567
582
  function matchesIdempotencyRecord(response, call) {
568
583
  return response.fingerprint === fingerprintOf(call);
569
584
  }
@@ -671,8 +686,8 @@ function decodeSegment(segment) {
671
686
  }
672
687
  }
673
688
  /**
674
- * The route the path names and the methods it allows. The handler mounts at
675
- * any prefix, so a path reads from its last segments; a path naming none is
689
+ * The route the path names and the methods it allows. The handler mounts at any
690
+ * prefix, so a path reads from its last segments; a path naming none is
676
691
  * `undefined` (`404`).
677
692
  */
678
693
  function parseRoute(url) {
@@ -744,7 +759,10 @@ async function factsFor(request, subject, options) {
744
759
  permissions: await heldPermissions(request, subject, options.permdockFor)
745
760
  };
746
761
  }
747
- /** The caller as themselves, or the first delegation that makes them an approver. */
762
+ /**
763
+ * The caller as themselves, or the first delegation that makes them an
764
+ * approver.
765
+ */
748
766
  async function actingApprover(request, subject, requireDistinct, options) {
749
767
  const facts = await factsFor(request, subject, options);
750
768
  try {
@@ -792,7 +810,10 @@ function canView(request, subject, requireDistinct, options) {
792
810
  if (request.resolvedBy === principal.id || (request.approvals ?? []).some((item) => item.by === principal.id)) return Promise.resolve(true);
793
811
  return mayResolve(request, subject, requireDistinct, options);
794
812
  }
795
- /** The requester and who answered: the signed approval carries the resume token, so only they read it. */
813
+ /**
814
+ * The requester and who answered: the signed approval carries the resume token,
815
+ * so only they read it.
816
+ */
796
817
  function party(request, principalId) {
797
818
  return request.subject.principal?.id === principalId || request.resolvedBy === principalId || (request.approvals ?? []).some((item) => item.by === principalId);
798
819
  }
@@ -833,7 +854,10 @@ function inboxScope(url, subject) {
833
854
  }
834
855
  const MAX_BODY_BYTES = 16384;
835
856
  const MAX_NOTE_LENGTH = 2e3;
836
- /** An unreadable body is no note; an oversized body or note is refused, never truncated. */
857
+ /**
858
+ * An unreadable body is no note; an oversized body or note is refused, never
859
+ * truncated.
860
+ */
837
861
  async function readNote(request) {
838
862
  if (!(request.headers.get("content-type") ?? "").includes("application/json")) return { text: "" };
839
863
  const read = await readBodyText(request, MAX_BODY_BYTES);