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
@@ -1,13 +1,15 @@
1
- import { Bn as DenialReason, Gt as Snapshot, Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
- import { m as ApprovalStore } from "../types-DC44-hqb.js";
5
- import { t as InstanceOptions } from "../instance-options-CU0YQCLH.js";
6
- import { n as PermDockWrap } from "../wrap-B6R0cMRL.js";
7
- import { o as OtelWrap } from "../types-CIeZcG8v.js";
8
- import { n as DescribeMessages } from "../describe-O0SwYIK8.js";
9
- import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-Pahd3IYJ.js";
1
+ import { Bn as DenialReason, Gt as Snapshot, Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as PermDock, d as UncheckedData, s as RowData } from "../permdock-B6Sf4T_S.js";
4
+ import { m as ApprovalStore } from "../types-B_tiYvk8.js";
5
+ import { t as InstanceOptions } from "../instance-options-B0KXqTrJ.js";
6
+ import { n as PermDockWrap } from "../wrap-DlJE3gS_.js";
7
+ import { o as OtelWrap } from "../types-DHKPcqzr.js";
8
+ import { n as DescribeMessages } from "../describe-ByS9LgHK.js";
9
+ import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-BAXZ0KOp.js";
10
+ import { n as ProtectedAction, t as ActionResult } from "../action-result-CL-QCITA.js";
10
11
  import { ReactElement, ReactNode } from "react";
12
+ import { StandardSchemaV1 } from "@standard-schema/spec";
11
13
  //#region src/next/types.d.ts
12
14
  type NextSubjectInput = unknown;
13
15
  type NextPermDockOptions<TUser = NextSubjectInput> = InstanceOptions & {
@@ -18,12 +20,15 @@ type NextPermDockOptions<TUser = NextSubjectInput> = InstanceOptions & {
18
20
  readonly store?: ApprovalStore;
19
21
  /** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
20
22
  readonly otel?: OtelWrap;
21
- /** Wraps each instance after `otel`; build it with `wrapPermDock` to cover derived instances. */
23
+ /**
24
+ * Wraps each instance after `otel`; build it with `wrapPermDock` to cover
25
+ * derived instances.
26
+ */
22
27
  readonly wrap?: PermDockWrap;
23
28
  /**
24
- * Where `PermDockProvider` sends checks the snapshot cannot answer; default `/api/permdock`.
25
- * `false` is snapshot-only: no `permdockHandler` route, and those checks are denied with
26
- * reason `server-only`.
29
+ * Where `PermDockProvider` sends checks the snapshot cannot answer; default
30
+ * `/api/permdock`. `false` is snapshot-only: no `permdockHandler` route, and
31
+ * those checks are denied with reason `server-only`.
27
32
  */
28
33
  readonly endpoint?: string | false;
29
34
  };
@@ -35,7 +40,10 @@ type GetSnapshotQuery = GetPermDockQuery & {
35
40
  readonly [key: string]: unknown;
36
41
  })[];
37
42
  readonly tenants?: "all";
38
- /** Tags added next to `snapshotTag(sub)`, such as the app's own organisation tag. */
43
+ /**
44
+ * Tags added next to `snapshotTag(sub)`, such as the app's own organisation
45
+ * tag.
46
+ */
39
47
  readonly tags?: readonly string[];
40
48
  };
41
49
  type PermissionRequirementOptions = GetPermDockQuery & {
@@ -59,7 +67,10 @@ type NextPermDockProviderProps = {
59
67
  readonly tenants?: "all";
60
68
  /** Overrides the factory's `endpoint`; `false` is snapshot-only. */
61
69
  readonly endpoint?: string | false;
62
- /** Suspends permission readers until the snapshot streams in, instead of answering `pending`. */
70
+ /**
71
+ * Suspends permission readers until the snapshot streams in, instead of
72
+ * answering `pending`.
73
+ */
63
74
  readonly suspend?: boolean;
64
75
  /**
65
76
  * What every `<Protected>` below renders for a slot it leaves out. Nodes
@@ -79,18 +90,39 @@ type PermDockHandler = {
79
90
  readonly POST: (request: Request) => Promise<Response>;
80
91
  readonly GET: (request: Request) => Promise<Response>;
81
92
  };
93
+ type ProtectActionOptions<TInput, TRow> = {
94
+ /** Validates the action's argument before anything else runs. */
95
+ readonly input: StandardSchemaV1<unknown, TInput>;
96
+ /** The row to decide on; `null` or `undefined` answers `404`. */
97
+ readonly data?: (input: TInput) => TRow | null | undefined | Promise<TRow | null | undefined>;
98
+ /** The tenant to build the instance for; default the factory's `tenant`. */
99
+ readonly tenant?: (input: TInput) => string | undefined;
100
+ };
101
+ type ProtectedActionContext<TRow, V extends PolicyVocabulary> = {
102
+ readonly permdock: PermDock<V>;
103
+ readonly decision: Extract<Decision, {
104
+ readonly outcome: "granted";
105
+ }>;
106
+ /** The loaded row; `undefined` without a `data` loader. */
107
+ readonly data: TRow;
108
+ };
109
+ type ProtectedActionHandler<TInput, TRow, TResult, V extends PolicyVocabulary> = (input: TInput, context: ProtectedActionContext<TRow, V>) => TResult | Promise<TResult>;
110
+ type ProtectAction<V extends PolicyVocabulary> = <TInput, TRow = undefined>(permission: Permission, options: ProtectActionOptions<TInput, TRow>) => <TResult>(handler: ProtectedActionHandler<TInput, TRow, TResult, V>) => ProtectedAction<Awaited<TResult>>;
82
111
  type NextPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
83
112
  readonly getPermDock: (query?: GetPermDockQuery) => Promise<PermDock<V>>;
84
113
  /**
85
- * `{ allowed, status: 'ready', decision }`. Any failure to build the
86
- * instance denies; Next.js interrupts (`redirect()`, `notFound()`,
87
- * request-time bailouts) from `subject` or `tenant` pass through.
114
+ * `{ allowed, status: 'ready', decision }`. Any failure to build the instance
115
+ * denies; Next.js interrupts (`redirect()`, `notFound()`, request-time
116
+ * bailouts) from `subject` or `tenant` pass through.
88
117
  */
89
- readonly getPermission: (permission: Permission, data?: unknown, query?: GetPermDockQuery) => Promise<ServerPermissionState>;
118
+ readonly getPermission: {
119
+ <D>(permission: Permission, data?: UncheckedData<D>, query?: GetPermDockQuery): Promise<ServerPermissionState>;
120
+ <P extends Permission>(permission: P, data?: RowData<P>, query?: GetPermDockQuery): Promise<ServerPermissionState>;
121
+ };
90
122
  /**
91
123
  * The session's snapshot for a `'use cache: private'` function the app owns:
92
- * calls `cacheLife(cacheLifeFor(snapshot))` and `cacheTag(snapshotTag(sub), ...tags)`
93
- * in that scope, and throws outside one.
124
+ * calls `cacheLife(cacheLifeFor(snapshot))` and `cacheTag(snapshotTag(sub),
125
+ * ...tags)` in that scope, and throws outside one.
94
126
  */
95
127
  readonly getSnapshot: (query?: GetSnapshotQuery) => Promise<Snapshot>;
96
128
  /**
@@ -99,15 +131,29 @@ type NextPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
99
131
  * subject and `forbidden()` otherwise (`experimental.authInterrupts`);
100
132
  * approval-required and boundary validation throw as from `assert`.
101
133
  */
102
- readonly requirePermission: (permission: Permission, data?: unknown, options?: PermissionRequirementOptions) => Promise<Extract<Decision, {
103
- readonly outcome: "granted";
104
- }>>;
105
- /** Never awaits: passes an unawaited snapshot to the client provider, whose hooks suspend. */
134
+ readonly requirePermission: {
135
+ <D>(permission: Permission, data?: UncheckedData<D>, options?: PermissionRequirementOptions): Promise<Extract<Decision, {
136
+ readonly outcome: "granted";
137
+ }>>;
138
+ <P extends Permission>(permission: P, data?: RowData<P>, options?: PermissionRequirementOptions): Promise<Extract<Decision, {
139
+ readonly outcome: "granted";
140
+ }>>;
141
+ };
142
+ /**
143
+ * Never awaits: passes an unawaited snapshot to the client provider, whose
144
+ * hooks suspend.
145
+ */
106
146
  readonly PermDockProvider: (props: NextPermDockProviderProps) => ReactElement;
107
147
  readonly permdockHandler: () => PermDockHandler;
148
+ /**
149
+ * Wraps a server action: validates `input`, loads `data`, decides, then runs
150
+ * the handler. Resolves to `{ ok: true, value }` or `{ ok: false, problem }`
151
+ * with RFC 9457 Problem Details; only Next.js interrupts throw.
152
+ */
153
+ readonly protectAction: ProtectAction<V>;
108
154
  };
109
155
  //#endregion
110
156
  //#region src/next/create.d.ts
111
157
  export declare function createPermDock<TUser = NextSubjectInput, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: NextPermDockOptions<TUser>): NextPermDock<V>;
112
158
  //#endregion
113
- export { type CacheLifeForOptions, type GetPermDockQuery, type GetSnapshotQuery, type NextPermDock, type NextPermDockOptions, type NextPermDockProviderProps, type PermDockHandler, type PermissionRequirementOptions, type ServerPermissionState, type SnapshotHeaders, type SnapshotHeadersOptions, cacheLifeFor, snapshotHeaders, snapshotTag };
159
+ export { type ActionResult, type CacheLifeForOptions, type GetPermDockQuery, type GetSnapshotQuery, type NextPermDock, type NextPermDockOptions, type NextPermDockProviderProps, type PermDockHandler, type PermissionRequirementOptions, type ProtectAction, type ProtectActionOptions, type ProtectedAction, type ProtectedActionContext, type ProtectedActionHandler, type ServerPermissionState, type SnapshotHeaders, type SnapshotHeadersOptions, cacheLifeFor, snapshotHeaders, snapshotTag };
@@ -1,15 +1,113 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { l as withApp } from "../permdock-BfWEeMqk.js";
3
- import { n as wrapPermDock } from "../wrap-CiSc_KCq.js";
4
- import { n as snapshotHeaders, r as snapshotTag, t as cacheLifeFor } from "../snapshot-cache-DT2Kx1F8.js";
5
- import { n as resolveOrNull, t as buildInstance } from "../build-instance-DxE7czo9.js";
6
- import { _ as NO_GRANT, o as evaluationsHandler } from "../evaluations-DReoiVBw.js";
2
+ import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
3
+ import { o as statusProblem, t as notFoundDetails } from "../problem-details-CLDgX1KV.js";
4
+ import { n as isThenable } from "../thenable-BNSM1U2R.js";
5
+ import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
6
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
7
+ import { n as wrapPermDock } from "../wrap-B2wziJI_.js";
8
+ import { i as decisionProblem } from "../problem-BVLHFK33.js";
9
+ import { s as resumeDecision } from "../helpers-DJicaG6f.js";
10
+ import { n as snapshotHeaders, r as snapshotTag, t as cacheLifeFor } from "../snapshot-cache-Bx_4xC_6.js";
11
+ import { n as resolveOrNull, t as buildInstance } from "../build-instance-CNWaYJyr.js";
12
+ import { _ as LOAD_FAILED, o as evaluationsHandler, v as NO_GRANT } from "../evaluations-IBceAeKT.js";
7
13
  import { cache } from "react";
8
14
  import { jsx } from "react/jsx-runtime";
9
15
  import { forbidden, unauthorized, unstable_rethrow } from "#next/navigation";
10
16
  import { cacheLife, cacheTag, io } from "next/cache.js";
11
17
  import { after } from "next/server.js";
12
18
  import { PermDockProvider } from "../react/provider-client.js";
19
+ //#region src/next/action.ts
20
+ function refused(problem) {
21
+ return {
22
+ ok: false,
23
+ problem
24
+ };
25
+ }
26
+ /** Issues reduced to JSON a server action can return: a symbol path is lost. */
27
+ function plainIssues(issues) {
28
+ return issues.map((issue) => compact({
29
+ message: issue.message,
30
+ path: issue.path?.map((segment) => {
31
+ const key = typeof segment === "object" ? segment.key : segment;
32
+ return typeof key === "number" ? key : String(key);
33
+ })
34
+ }));
35
+ }
36
+ async function parseInput(schema, value) {
37
+ const result = schema["~standard"].validate(value);
38
+ const settled = isThenable(result) ? await result : result;
39
+ if (settled.issues === void 0) return settled;
40
+ return { issues: plainIssues(settled.issues) };
41
+ }
42
+ function invalidInput(permission, issues) {
43
+ return refused(new PermDockValidationError({
44
+ code: "invalid-data",
45
+ permission: permission.key,
46
+ resource: permission.resource,
47
+ issues,
48
+ boundary: "action-input",
49
+ message: `${permission.key}: ${issues.map((issue) => issue.message).join("; ")}.`
50
+ }).toProblemDetails());
51
+ }
52
+ /**
53
+ * `protectAction(permission, { input, data?, tenant? })(handler)`: validates
54
+ * the input, loads the row, decides, then runs the handler. Every refusal,
55
+ * including a throw, is a Problem Details result; nothing but Next.js
56
+ * interrupts leaves as an exception.
57
+ */
58
+ function protectActionOf(deps) {
59
+ return (permission, options) => (handler) => async (value, call) => {
60
+ const parsed = await parseInput(options.input, value);
61
+ if (parsed.issues !== void 0) return invalidInput(permission, parsed.issues);
62
+ const input = parsed.value;
63
+ let permdock;
64
+ let data;
65
+ try {
66
+ permdock = await deps.getPermDock(compact({ tenant: options.tenant?.(input) }));
67
+ } catch (error) {
68
+ deps.rethrow(error);
69
+ return refused(decisionProblem(NO_GRANT, permission, void 0));
70
+ }
71
+ if (options.data !== void 0) {
72
+ try {
73
+ data = await options.data(input) ?? void 0;
74
+ } catch (error) {
75
+ deps.rethrow(error);
76
+ return refused(decisionProblem(LOAD_FAILED, permission, void 0));
77
+ }
78
+ if (data === void 0) return refused(notFoundDetails());
79
+ }
80
+ const decide = permdock.decide;
81
+ const decision = await resumeDecision({
82
+ decision: decide(permission, data, {
83
+ call: "adapter",
84
+ adapter: "next",
85
+ trusted: true
86
+ }),
87
+ permission,
88
+ subject: permdock.subject,
89
+ store: deps.store,
90
+ resource: resourceRef(permission, data),
91
+ adapter: "next",
92
+ token: call?.approval
93
+ });
94
+ if (decision.outcome !== "granted") return refused(decisionProblem(decision, permission, permdock.subject, compact({ disclosure: data === void 0 ? void 0 : deps.policy.resources.get(permission.resource)?.disclosure })));
95
+ try {
96
+ return {
97
+ ok: true,
98
+ value: await handler(input, {
99
+ permdock,
100
+ decision,
101
+ data
102
+ })
103
+ };
104
+ } catch (error) {
105
+ deps.rethrow(error);
106
+ return refused(statusProblem(500, `${permission.key}: the action failed`));
107
+ }
108
+ };
109
+ }
110
+ //#endregion
13
111
  //#region src/next/provider.tsx
14
112
  function renderClientProvider(options) {
15
113
  return /* @__PURE__ */ jsx(PermDockProvider, {
@@ -171,7 +269,13 @@ function createPermDock(policy, given) {
171
269
  getSnapshot,
172
270
  requirePermission,
173
271
  PermDockProvider,
174
- permdockHandler
272
+ permdockHandler,
273
+ protectAction: protectActionOf({
274
+ policy,
275
+ getPermDock,
276
+ store: options.store,
277
+ rethrow: unstable_rethrow
278
+ })
175
279
  };
176
280
  }
177
281
  //#endregion
@@ -1,4 +1,4 @@
1
- import { a as PermDockPluginOptions } from "../types-BWZybqs9.js";
1
+ import { s as PermDockPluginOptions } from "../types-DC1Loeh3.js";
2
2
  //#region src/cli/plugin.d.ts
3
3
  /** Any object: Next's `NextConfig` is an interface, so no index signature. */
4
4
  type NextConfigLike = object;
@@ -1,5 +1,5 @@
1
- import { a as describeError } from "../errors-DpP_U6Bf.js";
2
- import { n as createCollectScheduler, r as report, t as collectOnce } from "../watch-C-4VmFlL.js";
1
+ import { a as describeError } from "../errors-Vpu6rKHl.js";
2
+ import { n as createCollectScheduler, r as report, t as collectOnce } from "../watch-Cx_WciLE.js";
3
3
  //#region src/cli/plugin.ts
4
4
  const PHASE_BUILD = "phase-production-build";
5
5
  const PHASE_DEV = "phase-development-server";
@@ -27,7 +27,8 @@ function createPermDockPlugin(options) {
27
27
  };
28
28
  }
29
29
  async function runPluginCollect(cwd, options, check) {
30
- return (await collectOnce(cwd, options, check, false)).message;
30
+ const { message } = await collectOnce(cwd, options, check, false);
31
+ return message;
31
32
  }
32
33
  //#endregion
33
34
  export { createPermDockPlugin };
@@ -1,8 +1,8 @@
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 { a as PermDock } from "../permdock-Dco6dyCK.js";
4
- import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, r as Guard, s as ScopeGuard, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
5
- import { t as ServerAdapterOptions } from "../bind-JDuvxjuW.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 { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
+ import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, r as Guard, s as ScopeGuard, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CIlpSA2G.js";
5
+ import { t as ServerAdapterOptions } from "../bind-Cp2hBHzP.js";
6
6
  import { i as toRequest, n as isServerResponse, r as sendResponse, t as NodeRequest } from "../http-B_LphE5Y.js";
7
7
  import { IncomingMessage, ServerResponse } from "node:http";
8
8
  //#region src/node/create.d.ts
@@ -1,6 +1,6 @@
1
- import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
2
- import { r as bindKernel } from "../bind-D1nO6fiC.js";
3
- import { n as sendResponse, r as toRequest, t as isServerResponse } from "../http-ujKm0JXE.js";
1
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
2
+ import { r as bindKernel } from "../bind-D_sZSVA3.js";
3
+ import { n as sendResponse, r as toRequest, t as isServerResponse } from "../http-DH94eh6f.js";
4
4
  //#region src/node/create.ts
5
5
  const nodeRequest = (req) => req;
6
6
  function createPermDock(policy, options) {
@@ -19,26 +19,36 @@ function status(outcome) {
19
19
  default: return unknownStatus(outcome);
20
20
  }
21
21
  }
22
- /** An outcome this build does not know, from a newer producer, is reported as OCSF Unknown. */
22
+ /**
23
+ * An outcome this build does not know, from a newer producer, is reported as
24
+ * OCSF Unknown.
25
+ */
23
26
  function unknownStatus(_outcome) {
24
27
  return {
25
28
  status_id: 0,
26
29
  status: "Unknown"
27
30
  };
28
31
  }
29
- /** The names of a decision event's app obligations, or `undefined` when it has none. */
32
+ /**
33
+ * The names of a decision event's app obligations, or `undefined` when it has
34
+ * none.
35
+ */
30
36
  function appObligationNames(event) {
31
37
  const names = (event.obligations ?? []).flatMap((obligation) => obligation.kind === "app" ? [obligation.name] : []);
32
38
  return names.length === 0 ? void 0 : names;
33
39
  }
34
- /** Epoch milliseconds of an RFC 3339 `at`, or `undefined` when it does not parse. */
40
+ /**
41
+ * Epoch milliseconds of an RFC 3339 `at`, or `undefined` when it does not
42
+ * parse.
43
+ */
35
44
  function epochMillis(at) {
36
45
  const time = Date.parse(at);
37
46
  return Number.isNaN(time) ? void 0 : time;
38
47
  }
39
48
  /**
40
- * Projects a decision or approval event onto OCSF Authorize Session; the event itself is unchanged.
41
- * An event whose `at` does not parse has no OCSF `time` and projects to `undefined`.
49
+ * Projects a decision or approval event onto OCSF Authorize Session; the event
50
+ * itself is unchanged. An event whose `at` does not parse has no OCSF `time`
51
+ * and projects to `undefined`.
42
52
  */
43
53
  function toOcsf(event) {
44
54
  const time = epochMillis(event.at);
@@ -1,8 +1,8 @@
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 { a as PermDock } from "../permdock-Dco6dyCK.js";
4
- import { u as ApprovalRequest } from "../types-DC44-hqb.js";
5
- import { 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 { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
+ import { u as ApprovalRequest } from "../types-B_tiYvk8.js";
5
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BSNrVuxh.js";
6
6
  //#region src/openai/create.d.ts
7
7
  /** The app context passed to `run(agent, input, { context })`. */
8
8
  type OpenAiContext = {
@@ -11,7 +11,10 @@ type OpenAiContext = {
11
11
  readonly permdockApproval?: string;
12
12
  readonly [key: string]: unknown;
13
13
  };
14
- /** Structural `RunContext` from `@openai/agents`: the app context sits under `context`. */
14
+ /**
15
+ * Structural `RunContext` from `@openai/agents`: the app context sits under
16
+ * `context`.
17
+ */
15
18
  type OpenAiRunContext = {
16
19
  readonly context?: unknown;
17
20
  };
@@ -31,7 +34,10 @@ type OpenAiInterruption = {
31
34
  readonly arguments?: unknown;
32
35
  };
33
36
  };
34
- /** Structural `RunState` from `@openai/agents`. */
37
+ /**
38
+ * Structural `RunState` from `@openai/agents`. Its methods take the SDK's own
39
+ * interruption item, so they stay bivariant in `TItem`.
40
+ */
35
41
  type OpenAiRunState<TItem> = {
36
42
  approve(item: TItem, options?: {
37
43
  alwaysApprove?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { l as withApp } from "../permdock-BfWEeMqk.js";
3
- import { t as approvalTokenOf } from "../kernel-DVExUwkp.js";
4
- import { t as agentRuntime } from "../create-Cb86Z8Im.js";
2
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
3
+ import { t as approvalTokenOf } from "../kernel-C-fYydV2.js";
4
+ import { t as agentRuntime } from "../create-Cq4Uox0f.js";
5
5
  //#region src/openai/create.ts
6
6
  function appContext(runContext) {
7
7
  const context = runContext?.context;
@@ -1,6 +1,6 @@
1
- import { T as Policy, mr as Condition, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { f as PermissionTree, u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { a as ProblemDetails } from "../errors-B_Qg9D3e.js";
1
+ import { T as Policy, mr as Condition, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { f as PermissionTree, u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as ProblemDetails } from "../errors-zi_4T-rx.js";
4
4
  import { StandardJSONSchemaV1, StandardSchemaV1 } from "@standard-schema/spec";
5
5
  //#region src/openapi/types.d.ts
6
6
  type OpenApiTarget = "3.1" | "3.2" | "3.3";
@@ -54,7 +54,10 @@ type OverlayOperation = {
54
54
  type OpenApiOverlayOptions = {
55
55
  readonly extends?: string;
56
56
  readonly version?: OverlayVersion;
57
- /** The operations to cover; without them, one per permission whose `operationId` is the permission key. */
57
+ /**
58
+ * The operations to cover; without them, one per permission whose
59
+ * `operationId` is the permission key.
60
+ */
58
61
  readonly operations?: readonly OverlayOperation[];
59
62
  };
60
63
  type OpenApiPermDock = {
@@ -67,7 +70,10 @@ type OpenApiPermDock = {
67
70
  }) => OpenApiDescribe;
68
71
  readonly spec: (permission: Permission | readonly Permission[]) => (operation: Readonly<Record<string, unknown>>) => Record<string, unknown>;
69
72
  readonly overlay: (options?: OpenApiOverlayOptions) => Record<string, unknown>;
70
- /** One requirement per distinct scope set; without `scopeSets`, one per permission. */
73
+ /**
74
+ * One requirement per distinct scope set; without `scopeSets`, one per
75
+ * permission.
76
+ */
71
77
  readonly securityProfileRequirements: (scopeSets?: readonly (readonly string[])[]) => Readonly<Record<string, unknown>> | undefined;
72
78
  readonly catalog: () => Record<string, unknown>;
73
79
  };
@@ -94,9 +100,9 @@ export declare function openapiVersion(target: OpenApiTarget): string;
94
100
  //#endregion
95
101
  //#region src/openapi/operations.d.ts
96
102
  /**
97
- * One declared operation: a permission, or a permission with the operation id
98
- * a tool name uses and the OAuth scopes that reach it, or only OAuth scopes
99
- * for a route that checks no permission (`protect(null)`).
103
+ * One declared operation: a permission, or a permission with the operation id a
104
+ * tool name uses and the OAuth scopes that reach it, or only OAuth scopes for a
105
+ * route that checks no permission (`protect(null)`).
100
106
  */
101
107
  type OperationEntry = Permission | {
102
108
  readonly permission: Permission;
@@ -114,31 +120,34 @@ type OperationEntry = Permission | {
114
120
  */
115
121
  type OperationPermissions = {
116
122
  /**
117
- * The permission of a request: the declared operation whose method and
118
- * path template match, a literal segment winning over a `{param}`.
119
- * `undefined` for an undeclared operation, which a gate denies, and for an
120
- * operation that declares only OAuth scopes. A `HEAD` request matches the
121
- * `GET` entry of its path when no `HEAD` entry matches.
123
+ * The permission of a request: the declared operation whose method and path
124
+ * template match, a literal segment winning over a `{param}`. `undefined` for
125
+ * an undeclared operation, which a gate denies, and for an operation that
126
+ * declares only OAuth scopes. A `HEAD` request matches the `GET` entry of its
127
+ * path when no `HEAD` entry matches.
122
128
  */
123
- forRequest(method: string, path: string): Permission | undefined;
124
- /** The permission of an operation id; pass it as `permissionFor` when tool names are operation ids. */
125
- forOperation(id: string): Permission | undefined;
126
- oauthScopesForRequest(method: string, path: string): readonly string[] | undefined;
127
- oauthScopesForOperation(id: string): readonly string[] | undefined;
129
+ forRequest: (method: string, path: string) => Permission | undefined;
130
+ /**
131
+ * The permission of an operation id; pass it as `permissionFor` when tool
132
+ * names are operation ids.
133
+ */
134
+ forOperation: (id: string) => Permission | undefined;
135
+ oauthScopesForRequest: (method: string, path: string) => readonly string[] | undefined;
136
+ oauthScopesForOperation: (id: string) => readonly string[] | undefined;
128
137
  };
129
138
  /**
130
- * Operations as `"METHOD /path/{param}"` keys, the OpenAPI path template, to
131
- * a permission. `base` is a prefix requests carry and the keys do not
139
+ * Operations as `"METHOD /path/{param}"` keys, the OpenAPI path template, to a
140
+ * permission. `base` is a prefix requests carry and the keys do not
132
141
  * (`/api/v1`). A key that is not a method and a path throws.
133
142
  */
134
143
  export declare function operationPermissions(operations: Readonly<Record<string, OperationEntry>>, options?: {
135
144
  readonly base?: string;
136
145
  }): OperationPermissions;
137
146
  /**
138
- * The operation permissions an OpenAPI document declares: every operation
139
- * whose `x-permdock-permissions` names exactly one permission of `tree`, keyed
140
- * by its method, path and `operationId`. An operation naming none, several or
141
- * an unknown key is left out, so a gate denies it.
147
+ * The operation permissions an OpenAPI document declares: every operation whose
148
+ * `x-permdock-permissions` names exactly one permission of `tree`, keyed by its
149
+ * method, path and `operationId`. An operation naming none, several or an
150
+ * unknown key is left out, so a gate denies it.
142
151
  */
143
152
  export declare function operationPermissionsFromOpenApi(document: unknown, tree: PermissionTree, options?: {
144
153
  readonly base?: string;
@@ -146,21 +155,30 @@ export declare function operationPermissionsFromOpenApi(document: unknown, tree:
146
155
  //#endregion
147
156
  //#region src/openapi/problem-details.d.ts
148
157
  /**
149
- * The Problem Details body the adapters send on a denial, as a Standard
150
- * Schema with a JSON Schema, for `oc.errors({ FORBIDDEN: { data: problemDetails } })`.
158
+ * The Problem Details body the adapters send on a denial, as a Standard Schema
159
+ * with a JSON Schema, for `oc.errors({ FORBIDDEN: { data: problemDetails } })`.
151
160
  * Extension members pass through: RFC 9457 lets a problem type add them.
152
161
  */
153
162
  export declare const problemDetails: StandardSchemaV1<ProblemDetails> & StandardJSONSchemaV1<ProblemDetails>;
154
163
  //#endregion
155
164
  //#region src/openapi/security.d.ts
156
165
  type SecurityForOptions = {
157
- /** The security scheme name; defaults to `oauth2`, the name the adapters' `openapi.securitySchemes()` declares. */
166
+ /**
167
+ * The security scheme name; defaults to `oauth2`, the name the adapters'
168
+ * `openapi.securitySchemes()` declares.
169
+ */
158
170
  readonly scheme?: string;
159
- /** Any one of the permissions suffices: one requirement per scope instead of one with every scope. */
171
+ /**
172
+ * Any one of the permissions suffices: one requirement per scope instead of
173
+ * one with every scope.
174
+ */
160
175
  readonly anyOf?: boolean;
161
176
  readonly security?: true;
162
177
  };
163
- /** `security: false` emits only `x-permdock-permissions`, for an API whose `security` is set elsewhere, such as OIDC-only bearer auth. */
178
+ /**
179
+ * `security: false` emits only `x-permdock-permissions`, for an API whose
180
+ * `security` is set elsewhere, such as OIDC-only bearer auth.
181
+ */
164
182
  type SecurityExtensionOptions = Omit<SecurityForOptions, "security"> & {
165
183
  readonly security: false;
166
184
  };
@@ -171,7 +189,10 @@ type SecurityFor = {
171
189
  readonly security: readonly OpenApiSecurityRequirement[];
172
190
  readonly "x-permdock-permissions": readonly string[];
173
191
  };
174
- /** The `x-permdock-permissions` value: the permission keys an operation enforces. */
192
+ /**
193
+ * The `x-permdock-permissions` value: the permission keys an operation
194
+ * enforces.
195
+ */
175
196
  export declare function permissionsExtension(permissions: Permission | readonly Permission[]): readonly string[];
176
197
  /**
177
198
  * An operation's `security` and `x-permdock-permissions`, from permission
@@ -1,3 +1,3 @@
1
- import { n as GNAP_RESERVED, r as PROFILE_NAMES, t as DRAFT_PINS } from "../pins-8ILTftC9.js";
2
- import { a as operationPermissionsFromOpenApi, c as openapiVersion, i as operationPermissions, l as securitySchemesOf, n as securityFor, o as createPermDock, r as problemDetails, s as catalogOf, t as permissionsExtension } from "../openapi-Ddb4628T.js";
1
+ import { n as GNAP_RESERVED, r as PROFILE_NAMES, t as DRAFT_PINS } from "../pins-nqarl3oE.js";
2
+ import { a as operationPermissionsFromOpenApi, c as openapiVersion, i as operationPermissions, l as securitySchemesOf, n as securityFor, o as createPermDock, r as problemDetails, s as catalogOf, t as permissionsExtension } from "../openapi-BOsx0xn9.js";
3
3
  export { DRAFT_PINS, GNAP_RESERVED, PROFILE_NAMES, catalogOf, createPermDock, openapiVersion, operationPermissions, operationPermissionsFromOpenApi, permissionsExtension, problemDetails, securityFor, securitySchemesOf };