permdock 0.7.0 → 0.9.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-BcudBQOF.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-Ch07MdxN.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-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  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-BpS7LnV0.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.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-DTjR8xet.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-C6Jg75xq.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-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
  35. package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
  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-BWXqwQYU.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
  45. package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
  46. package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
  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-CGlSwU6j.js} +20 -19
  52. package/dist/catalog-D3oS2GH3.js +1 -0
  53. package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
  54. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  55. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  56. package/dist/catalog-operations-DeHTrJSV.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-3kWfjnYy.js} +4 -5
  77. package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
  78. package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
  79. package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
  80. package/dist/collect-D-eroIfV.js +1 -0
  81. package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
  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-BEklRUYo.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.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-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
  98. package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
  99. package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
  100. package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
  101. package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
  102. package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
  103. package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
  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-DHldhVUv.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.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-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
  127. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  128. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
  130. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
  131. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  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-BIbBAtPZ.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.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-BFfzZSLH.js +58 -0
  150. package/dist/gen-BtfFWGbz.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-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  164. package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -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-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
  169. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  170. package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
  171. package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
  172. package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
  173. package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
  174. package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
  175. package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +34 -34
  178. package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
  179. package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
  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-qv4cr9w8.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-CfImTJGb.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.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-C-nv08_n.js} +16 -9
  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 +79 -26
  212. package/dist/next/index.js +121 -10
  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-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
  223. package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
  224. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  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-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
  232. package/dist/output-files-BHOIlrfD.js +1 -0
  233. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  234. package/dist/ownership-DA5YdYTm.js +1059 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-CCmbhnxP.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-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
  245. package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
  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-CYcHj_w7.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-BycVKnXv.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-CU3An8uP.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-DGIO_gxq.d.ts} +782 -357
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
  262. package/dist/powersync-B701tvhE.js +1 -0
  263. package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
  264. package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
  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-D8x73IGm.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-DfLeek9O.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
  282. package/dist/pull-C3EEGzSw.js +1 -0
  283. package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
  284. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
  285. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
  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-Bs9Df2fQ.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.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-ConCSj1y.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-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
  306. package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
  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-vHIwyXCp.js} +8 -5
  310. package/dist/run-Ck22anC2.js +1 -0
  311. package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.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-DK4V-3Is.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.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-CyRN0-Cd.d.ts} +88 -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-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
  333. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  334. package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
  335. package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.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-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  344. package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
  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-C_pi2Rnh.js} +292 -101
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  351. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
  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-DZJvxFIZ.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
  357. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  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-DnMMg5Fn.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
  368. package/dist/supabase-hook-C0FyEACZ.js +1 -0
  369. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
  370. package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
  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-BqrxBCir.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 +225 -141
  394. package/dist/testing/index.js +352 -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-c7Xo_2Cu.d.ts +50 -0
  407. package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
  408. package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
  409. package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
  410. package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
  411. package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
  412. package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
  413. package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
  414. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  415. package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
  416. package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
  417. package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
  418. package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
  419. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  420. package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
  421. package/dist/types-tQB2CEnY.d.ts +262 -0
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-0hjZPIRX.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.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-uvp-kyfO.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-DlUcTDBz.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-CqUKX6CY.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
  441. package/dist/watch-ClLuO2TL.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-BoDJm0Nc.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-DxXB54Wu.d.ts} +8 -5
  452. package/package.json +8 -8
  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 +16 -23
  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,15 +1,18 @@
1
- import { dt as TokenVerifier, lr as Subject, ot as SnapshotSource, q as DecisionSink, ut as TokenSigner } from "./policy-types-B-F-qAZk.js";
2
- import { s as PolicySource } from "./hosted-BmjzxQhp.js";
3
- import { m as ApprovalStore, u as ApprovalRequest } from "./types-DC44-hqb.js";
4
- import { a as CatalogDocument } from "./types-BXMYB7BY.js";
5
- import { a as CatalogFinding } from "./sink-Cp_Eot9W.js";
1
+ import { J as DecisionSink, ct as SnapshotSource, hr as Subject, ht as TokenVerifier, mt as TokenSigner } from "./policy-types-DGIO_gxq.js";
2
+ import { s as PolicySource } from "./hosted-DVxlLZMe.js";
3
+ import { m as ApprovalStore, u as ApprovalRequest } from "./types-DLvhVm1r.js";
4
+ import { a as CatalogDocument } from "./types-ZzRGoViD.js";
5
+ import { a as CatalogFinding } from "./sink-B5zoUW_O.js";
6
6
  //#region src/cloud/types.d.ts
7
7
  type CloudEndpointOptions = {
8
8
  readonly url?: string;
9
9
  readonly environment?: string;
10
10
  };
11
11
  type CloudEndpoints = {
12
- /** The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the policy document. */
12
+ /**
13
+ * The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the
14
+ * policy document.
15
+ */
13
16
  readonly issuer: string;
14
17
  /** The environment's JWK Set URL, for `joseTokenVerifier({ jwks })`. */
15
18
  readonly jwks: string;
@@ -24,51 +27,60 @@ type CloudConnectionOptions = CloudEndpointOptions & {
24
27
  type CloudApproverOptions = {
25
28
  /**
26
29
  * Signs the token with a key the environment trusts as an issuer, such as
27
- * `joseTokenSigner` over your own key. Never `cloudSigner`: a client key
28
- * that could mint approver tokens could forge any approver.
30
+ * `joseTokenSigner` over your own key. Never `cloudSigner`: a client key that
31
+ * could mint approver tokens could forge any approver.
29
32
  */
30
33
  readonly signer: TokenSigner;
31
- /** `aud` of the token; defaults to `<issuer>/approvals`, the environment URL plus `/approvals`. */
34
+ /**
35
+ * `aud` of the token; defaults to `<issuer>/approvals`, the environment URL
36
+ * plus `/approvals`.
37
+ */
32
38
  readonly audience?: string | readonly string[];
33
39
  /**
34
40
  * The `holder(permission)` approvers of `request` that `approver` holds,
35
41
  * typically `approverPermissions(request, permdockFor(approver))`. Signed
36
- * into the token as `permissions`; without it the verdict's own
37
- * `permissions` are signed. A throw signs none.
42
+ * into the token as `permissions`; without it the verdict's own `permissions`
43
+ * are signed. A throw signs none.
38
44
  */
39
45
  readonly permissions?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
40
46
  /**
41
47
  * The relation approvers of `request` that `approver` holds, typically
42
- * `approverRelations(request, approver, { relations, permissions })`.
43
- * Signed into the token as `relations`; without it the verdict's own
44
- * `relations` are signed. A throw signs none.
48
+ * `approverRelations(request, approver, { relations, permissions })`. Signed
49
+ * into the token as `relations`; without it the verdict's own `relations` are
50
+ * signed. A throw signs none.
45
51
  */
46
52
  readonly relations?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
47
53
  };
48
54
  type CloudOptions = CloudConnectionOptions & {
49
55
  /**
50
- * Proves the approver on `approvals.resolve`. Without it, every resolve but
51
- * a `system` rejection throws `approver-unauthenticated` and sends nothing.
56
+ * Proves the approver on `approvals.resolve`. Without it, every resolve but a
57
+ * `system` rejection throws `approver-unauthenticated` and sends nothing.
52
58
  */
53
59
  readonly approver?: CloudApproverOptions;
54
60
  readonly flushAt?: number;
55
- /** Most events the sink holds while the Cloud is unreachable (default 10 000); the oldest are dropped first. */
61
+ /**
62
+ * Most events the sink holds while the Cloud is unreachable (default 10 000);
63
+ * the oldest are dropped first.
64
+ */
56
65
  readonly capacity?: number;
57
66
  readonly waitUntil?: (task: Promise<void>) => void;
58
- /** The CloudEvents `source` of every event the sink sends, an absolute URI; defaults to the environment URL. */
67
+ /**
68
+ * The CloudEvents `source` of every event the sink sends, an absolute URI;
69
+ * defaults to the environment URL.
70
+ */
59
71
  readonly source?: string;
60
72
  /**
61
- * Verifies the environment's signed policy document, typically
62
- * `({ jwks }) => joseTokenVerifier({ jwks })`. A function is called once,
63
- * with the resolved endpoints, on the first refresh. Without one,
64
- * `policies.current()` stays `null`: an unverifiable document is never applied.
73
+ * Verifies the environment's signed policy document, typically `({ jwks }) =>
74
+ * joseTokenVerifier({ jwks })`. A function is called once, with the resolved
75
+ * endpoints, on the first refresh. Without one, `policies.current()` stays
76
+ * `null`: an unverifiable document is never applied.
65
77
  */
66
78
  readonly verifier?: TokenVerifier | ((endpoints: CloudEndpoints) => TokenVerifier);
67
79
  };
68
80
  /**
69
81
  * What `POST /catalog` answers: `201` with the new version and the drift
70
- * findings against the previous one, or `200` with `unchanged: true` when
71
- * the fingerprint is already published.
82
+ * findings against the previous one, or `200` with `unchanged: true` when the
83
+ * fingerprint is already published.
72
84
  */
73
85
  type CloudCatalogPush = {
74
86
  readonly version: number;
@@ -81,19 +93,19 @@ type CloudCatalogPush = {
81
93
  };
82
94
  type CloudCatalog = {
83
95
  /**
84
- * Posts the catalog, its `operations` included, to the environment.
85
- * Throws when the Cloud refuses it or answers another shape. The Cloud
86
- * shows and diffs it; it never decides with it.
96
+ * Posts the catalog, its `operations` included, to the environment. Throws
97
+ * when the Cloud refuses it or answers another shape. The Cloud shows and
98
+ * diffs it; it never decides with it.
87
99
  */
88
- push(catalog: CatalogDocument): Promise<CloudCatalogPush>;
100
+ push: (catalog: CatalogDocument) => Promise<CloudCatalogPush>;
89
101
  };
90
102
  type CloudClient = Partial<CloudEndpoints> & {
91
103
  /**
92
- * The environment URL and JWK Set URL. `issuer` and `jwks` are set only
93
- * when the environment is configured; otherwise the first call asks
94
- * `GET /v1/environment` which environment the key belongs to.
104
+ * The environment URL and JWK Set URL. `issuer` and `jwks` are set only when
105
+ * the environment is configured; otherwise the first call asks `GET
106
+ * /v1/environment` which environment the key belongs to.
95
107
  */
96
- endpoints(): Promise<CloudEndpoints>;
108
+ endpoints: () => Promise<CloudEndpoints>;
97
109
  readonly approvals: ApprovalStore;
98
110
  readonly sink: DecisionSink;
99
111
  /**
@@ -102,7 +114,7 @@ type CloudClient = Partial<CloudEndpoints> & {
102
114
  * signed. Sent as `PermDock-Subject`; the Cloud never takes a subject from
103
115
  * anything else.
104
116
  */
105
- snapshotsFor(token: string): SnapshotSource;
117
+ snapshotsFor: (token: string) => SnapshotSource;
106
118
  readonly policies: PolicySource;
107
119
  readonly catalog: CloudCatalog;
108
120
  };
@@ -1,9 +1,12 @@
1
- import { Zt as AuthEvent, sr as Principal } from "./policy-types-B-F-qAZk.js";
2
- import { t as ClaimsMap } from "./claims-map-Ca-QX8C6.js";
3
- import { t as ClientNames } from "./clients-C7zLFuWT.js";
1
+ import { pr as Principal, rn as AuthEvent } from "./policy-types-DGIO_gxq.js";
2
+ import { t as ClaimsMap } from "./claims-map-D1Pb5oRq.js";
3
+ import { t as ClientNames } from "./clients-C_NOET3z.js";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
5
  //#region src/supabase/claims.d.ts
6
- /** One entry of the `memberships` claim, as `schemas/supabase-claims-v1.json` defines it. */
6
+ /**
7
+ * One entry of the `memberships` claim, as `schemas/supabase-claims-v1.json`
8
+ * defines it.
9
+ */
7
10
  type SupabaseMembershipClaim = {
8
11
  readonly scope?: string;
9
12
  /** Canonical text of the scope instance id, compared exactly. */
@@ -28,7 +31,10 @@ type SupabaseMembershipClaim = {
28
31
  };
29
32
  readonly managed_by?: "idp";
30
33
  readonly entitlements?: readonly string[];
31
- /** The instance or an ancestor is suspended: the permission keys the membership still grants. */
34
+ /**
35
+ * The instance or an ancestor is suspended: the permission keys the
36
+ * membership still grants.
37
+ */
32
38
  readonly keep?: readonly string[];
33
39
  /** Custom roles in compact form, read by the RLS helpers in `jwt` mode. */
34
40
  readonly grants?: Readonly<Record<string, unknown>>;
@@ -47,9 +53,15 @@ type SupabasePermDockClaims<TenantClaim extends string = "tenant_id"> = {
47
53
  readonly memberships?: readonly SupabaseMembershipClaim[];
48
54
  /** `true` when the size budget cut `memberships` or `attrs`. */
49
55
  readonly memberships_truncated?: boolean;
50
- /** Allow-listed server-owned attributes, read as `principal.claims.attrs.<key>`. */
56
+ /**
57
+ * Allow-listed server-owned attributes, read as
58
+ * `principal.claims.attrs.<key>`.
59
+ */
51
60
  readonly attrs?: Readonly<Record<string, unknown>>;
52
- /** The uuid of every team the user belongs to (`supabase.hook.teams`), cut by the same budget as `memberships`. */
61
+ /**
62
+ * The uuid of every team the user belongs to (`supabase.hook.teams`), cut by
63
+ * the same budget as `memberships`.
64
+ */
53
65
  readonly team_ids?: readonly string[];
54
66
  /** The principal's authorization version. */
55
67
  readonly authz_ver?: number;
@@ -75,10 +87,13 @@ type SupabaseClaims<TenantClaim extends string = "tenant_id"> = SupabasePermDock
75
87
  * are combined, and the app's output is merged over the base.
76
88
  */
77
89
  type SupabaseClaimsSchema<TenantClaim extends string = "tenant_id", Extra = unknown> = StandardSchemaV1<unknown, SupabaseClaims<TenantClaim> & Extra> & {
78
- extend<App extends StandardSchemaV1>(app: App): SupabaseClaimsSchema<TenantClaim, Extra & StandardSchemaV1.InferOutput<App>>;
90
+ extend: <App extends StandardSchemaV1>(app: App) => SupabaseClaimsSchema<TenantClaim, Extra & StandardSchemaV1.InferOutput<App>>;
79
91
  };
80
92
  type SupabaseClaimsOptions<TenantClaim extends string = "tenant_id"> = {
81
- /** The claim holding the active tenant; `rls.tenantClaim`, default `tenant_id`. */
93
+ /**
94
+ * The claim holding the active tenant; `rls.tenantClaim`, default
95
+ * `tenant_id`.
96
+ */
82
97
  readonly tenantClaim?: TenantClaim;
83
98
  };
84
99
  /**
@@ -88,7 +103,9 @@ type SupabaseClaimsOptions<TenantClaim extends string = "tenant_id"> = {
88
103
  * Needs no validation library.
89
104
  *
90
105
  * ```ts
91
- * sb.claims(supabaseClaims().extend(z.object({ datetime_preferences: Prefs })))
106
+ * sb.claims(
107
+ * supabaseClaims().extend(z.object({ datetime_preferences: Prefs })),
108
+ * );
92
109
  * ```
93
110
  */
94
111
  declare function supabaseClaims<TenantClaim extends string = "tenant_id">(options?: SupabaseClaimsOptions<TenantClaim>): SupabaseClaimsSchema<TenantClaim>;
@@ -102,14 +119,17 @@ type SupabasePrincipal = Principal & {
102
119
  };
103
120
  type SupabaseInclude = "email" | "phone" | "is_anonymous";
104
121
  /**
105
- * A column that holds a foreign key: the value is `column` of `through`,
106
- * joined on `on`. A role reads its key from a roles table
107
- * (`{ through: 'roles', on: { role_id: 'id' }, column: 'key' }`); a
108
- * membership source's user can read its user id from a profile table
109
- * (`{ through: 'contact_profiles', on: { contact_profile_id: 'id' }, column: 'user_id' }`).
122
+ * A column that holds a foreign key: the value is `column` of `through`, joined
123
+ * on `on`. A role reads its key from a roles table (`{ through: 'roles', on: {
124
+ * role_id: 'id' }, column: 'key' }`); a membership source's user can read its
125
+ * user id from a profile table (`{ through: 'contact_profiles', on: {
126
+ * contact_profile_id: 'id' }, column: 'user_id' }`).
110
127
  */
111
128
  type RoleThrough = {
112
- /** The referenced table; unqualified, it is in the schema of the table that references it. */
129
+ /**
130
+ * The referenced table; unqualified, it is in the schema of the table that
131
+ * references it.
132
+ */
113
133
  readonly through: string;
114
134
  /** One entry: the referencing column to the column of `through` it references. */
115
135
  readonly on: Readonly<Record<string, string>>;
@@ -118,8 +138,8 @@ type RoleThrough = {
118
138
  };
119
139
  /**
120
140
  * A role column whose values are not role keys: each value maps to a role key,
121
- * or to `null` for no role, and an unlisted value is no role
122
- * (`{ column: 'kind', map: { admin: 'owner', user: null } }`).
141
+ * or to `null` for no role, and an unlisted value is no role (`{ column:
142
+ * 'kind', map: { admin: 'owner', user: null } }`).
123
143
  */
124
144
  type RoleMap = {
125
145
  readonly column: string;
@@ -133,7 +153,10 @@ type SupabaseMembershipTable = {
133
153
  * several of them: the row holds every non-null key.
134
154
  */
135
155
  readonly role: string | RoleThrough | RoleMap | readonly (string | RoleThrough | RoleMap)[];
136
- /** Per scope name, the column holding that scope's id: the table's own scope and its ancestors. */
156
+ /**
157
+ * Per scope name, the column holding that scope's id: the table's own scope
158
+ * and its ancestors.
159
+ */
137
160
  readonly columns?: Readonly<Record<string, string>>;
138
161
  readonly tenant?: string;
139
162
  readonly team?: string;
@@ -141,7 +164,10 @@ type SupabaseMembershipTable = {
141
164
  readonly expiresAt?: string;
142
165
  readonly disabledAt?: string;
143
166
  };
144
- /** A table whose row says whether a user or a scope instance is active. A missing row counts as suspended. */
167
+ /**
168
+ * A table whose row says whether a user or a scope instance is active. A
169
+ * missing row counts as suspended.
170
+ */
145
171
  type SupabaseActiveRow = {
146
172
  readonly table: string;
147
173
  /** Column holding the user id or the scope instance id. */
@@ -152,12 +178,15 @@ type SupabaseActiveRow = {
152
178
  readonly status?: string;
153
179
  readonly active?: readonly string[];
154
180
  };
155
- /** A scope's active-row table, with the permissions its suspended instances keep. */
181
+ /**
182
+ * A scope's active-row table, with the permissions its suspended instances
183
+ * keep.
184
+ */
156
185
  type SupabaseSuspendedScope = SupabaseActiveRow & {
157
186
  /**
158
187
  * Permissions (references or keys) members of a suspended instance, and of
159
- * every instance nested in it, still hold; such a membership carries them
160
- * as `keep`.
188
+ * every instance nested in it, still hold; such a membership carries them as
189
+ * `keep`.
161
190
  */
162
191
  readonly keep?: readonly (string | {
163
192
  readonly key: string;
@@ -171,7 +200,10 @@ type SupabaseSuspendedMembership = {
171
200
  type SupabaseSuspension = {
172
201
  /** A suspended user holds no role and no membership. */
173
202
  readonly users?: SupabaseActiveRow;
174
- /** Per scope name: a suspended instance voids its memberships and every membership nested under it, except for `keep`. */
203
+ /**
204
+ * Per scope name: a suspended instance voids its memberships and every
205
+ * membership nested under it, except for `keep`.
206
+ */
175
207
  readonly scopes?: Readonly<Record<string, SupabaseSuspendedScope>>;
176
208
  readonly memberships?: SupabaseSuspendedMembership;
177
209
  };
@@ -183,25 +215,42 @@ type SupabaseMemberships = {
183
215
  readonly resource?: Readonly<Record<string, SupabaseMembershipTable>>;
184
216
  };
185
217
  type AuthorizeSqlOptions = {
186
- /** Postgres schema of `authorize`, `user_roles`, `role_permissions` and `app_permission`. Default `permdock`. */
218
+ /**
219
+ * Postgres schema of `authorize`, `user_roles`, `role_permissions` and
220
+ * `app_permission`. Default `permdock`.
221
+ */
187
222
  readonly schema?: string;
188
- /** `database` (default) reads the tables on every call; `jwt` reads the hook-injected claims. */
223
+ /**
224
+ * `database` (default) reads the tables on every call; `jwt` reads the
225
+ * hook-injected claims.
226
+ */
189
227
  readonly authorize?: "database" | "jwt";
190
- /** The policy's first scope, which `requested_tenant` is an instance of. Default `tenant`. */
228
+ /**
229
+ * The policy's first scope, which `requested_tenant` is an instance of.
230
+ * Default `tenant`.
231
+ */
191
232
  readonly scope?: string;
192
- /** Membership table for tenant requests in `database` mode; without one they deny. */
233
+ /**
234
+ * Membership table for tenant requests in `database` mode; without one they
235
+ * deny.
236
+ */
193
237
  readonly tenant?: boolean | SupabaseMembershipTable;
194
238
  /**
195
- * Tenant requests also answer from custom roles, through the `permdock_custom_keys` function
196
- * `permdock rls generate --custom-roles` emits: the `custom_role_*` tables in `database` mode,
197
- * the `memberships[].grants` claim in `jwt` mode. `declared` role names never resolve as custom.
239
+ * Tenant requests also answer from custom roles, through the
240
+ * `permdock_custom_keys` function `permdock rls generate --custom-roles`
241
+ * emits: the `custom_role_*` tables in `database` mode, the
242
+ * `memberships[].grants` claim in `jwt` mode. `declared` role names never
243
+ * resolve as custom.
198
244
  */
199
245
  readonly customRoles?: {
200
246
  readonly declared: readonly string[];
201
247
  /** Stored allows may carry a level (`custom_role_permissions.level`). */
202
248
  readonly levels?: true;
203
249
  };
204
- /** A suspended user, or a suspended instance of `scope` for a tenant request, answers `false`. */
250
+ /**
251
+ * A suspended user, or a suspended instance of `scope` for a tenant request,
252
+ * answers `false`.
253
+ */
205
254
  readonly suspension?: SupabaseSuspension;
206
255
  };
207
256
  /** A permission reference; `rls generate` reads only its `key`. */
@@ -220,7 +269,10 @@ type SupabaseRealtime = {
220
269
  readonly write?: SupabasePermissionRef;
221
270
  }>>;
222
271
  };
223
- /** Storage buckets whose object paths hold a scope instance id in folder `folder` (default 1). */
272
+ /**
273
+ * Storage buckets whose object paths hold a scope instance id in folder
274
+ * `folder` (default 1).
275
+ */
224
276
  type SupabaseStorage = {
225
277
  readonly buckets: Readonly<Record<string, {
226
278
  readonly scope: string;
@@ -233,26 +285,39 @@ type SupabaseStorage = {
233
285
  type SupabaseRlsOptions = {
234
286
  readonly roleClaim?: string;
235
287
  readonly tenantClaim?: string;
236
- /** Postgres type of tenant columns; the tenant claim is cast to it. `rls generate` defaults to `uuid`. */
288
+ /**
289
+ * Postgres type of tenant columns; the tenant claim is cast to it. `rls
290
+ * generate` defaults to `uuid`.
291
+ */
237
292
  readonly tenantType?: string;
238
293
  readonly memberships?: SupabaseMembershipTable | SupabaseMemberships;
239
294
  readonly suspension?: SupabaseSuspension;
240
295
  readonly realtime?: SupabaseRealtime;
241
296
  readonly storage?: SupabaseStorage;
242
297
  };
298
+ /**
299
+ * A membership table as `permdock.config.ts` names it: scope columns in
300
+ * `columns`.
301
+ */
302
+ type SupabaseRlsMembershipTable = Omit<SupabaseMembershipTable, "tenant" | "team">;
243
303
  type SupabaseRlsConfig = {
244
304
  readonly dialect: "supabase";
245
305
  readonly roleClaim: string;
246
306
  readonly tenantClaim: string;
247
- readonly tenantType?: string;
248
- readonly memberships?: SupabaseMemberships;
307
+ /** `tenantType` as the type of the first scope, under its `tenant` alias. */
308
+ readonly scopeTypes?: Readonly<Record<string, string>>;
309
+ readonly memberships?: {
310
+ readonly scopes?: Readonly<Record<string, SupabaseRlsMembershipTable>>;
311
+ readonly resource?: Readonly<Record<string, SupabaseRlsMembershipTable>>;
312
+ };
249
313
  readonly suspension?: SupabaseSuspension;
250
314
  readonly realtime?: SupabaseRealtime;
251
315
  readonly storage?: SupabaseStorage;
252
316
  };
253
317
  /**
254
- * The structural shape `subjectFromSupabaseSession` reads: a discriminant and the verified JWT claims.
255
- * Matches any session object of that shape without importing its library.
318
+ * The structural shape `subjectFromSupabaseSession` reads: a discriminant and
319
+ * the verified JWT claims. Matches any session object of that shape without
320
+ * importing its library.
256
321
  */
257
322
  type SupabaseSessionLike = {
258
323
  readonly kind: string;
@@ -270,25 +335,38 @@ type SupabaseSubjectOptions = {
270
335
  readonly schema?: StandardSchemaV1;
271
336
  readonly include?: readonly SupabaseInclude[];
272
337
  readonly declared?: readonly string[];
273
- /** Names for OAuth client ids: an `oauth-client` actor gets `client` set to the name of its id, which a policy delegation matches with `to: { kind: 'oauth-client', client }`. */
338
+ /**
339
+ * Names for OAuth client ids: an `oauth-client` actor gets `client` set to
340
+ * the name of its id, which a policy delegation matches with `to: { kind:
341
+ * 'oauth-client', client }`.
342
+ */
274
343
  readonly clients?: ClientNames;
275
- /** `'deny'` maps a token with `is_anonymous: true` (`signInAnonymously()`) to the anonymous subject, as `rls.anonymousSignIns: 'deny'` does in RLS. */
344
+ /**
345
+ * `'deny'` maps a token with `is_anonymous: true` (`signInAnonymously()`) to
346
+ * the anonymous subject, as `rls.anonymousSignIns: 'deny'` does in RLS.
347
+ */
276
348
  readonly anonymousSignIns?: "deny";
277
349
  /**
278
- * `true` once the caller checked the session against the Auth server for this request
279
- * (`auth.getUser()` or an equivalent session check): a token with a `session_id` gets
280
- * `subject.liveSession`, which `{ subject: { session: { live: true } } }` requires. Never read from claims.
350
+ * `true` once the caller checked the session against the Auth server for this
351
+ * request (`auth.getUser()` or an equivalent session check): a token with a
352
+ * `session_id` gets `subject.liveSession`, which `{ subject: { session: {
353
+ * live: true } } }` requires. Never read from claims.
281
354
  */
282
355
  readonly liveSession?: boolean;
283
- /** Audit hook: `membership-dropped` for a `memberships` entry that could not be read, `invalid-chain` for a malformed `act`. */
356
+ /**
357
+ * Audit hook: `membership-dropped` for a `memberships` entry that could not
358
+ * be read, `invalid-chain` for a malformed `act`.
359
+ */
284
360
  readonly onAuth?: (event: AuthEvent) => void;
285
361
  };
286
362
  /**
287
- * Who acts for the user. `oauth-client`: a third-party app or an agent chain (`client_id`, or an
288
- * `act` without `kind`). `support`: a support session (`act.kind: "support"` with `session_id`).
289
- * `impersonation`: an admin acting as the user (`act.kind: "impersonation"`). `agent`: an agent
290
- * run better-supabase's `agentClaims` minted (`act.kind: "agent"`), with the `tools` it may call.
291
- * `chain` is a copy of the token's `act` claim when it has one.
363
+ * Who acts for the user. `oauth-client`: a third-party app or an agent chain
364
+ * (`client_id`, or an `act` without `kind`). `support`: a support session
365
+ * (`act.kind: "support"` with `session_id`). `impersonation`: an admin acting
366
+ * as the user (`act.kind: "impersonation"`). `agent`: an agent run
367
+ * better-supabase's `agentClaims` minted (`act.kind: "agent"`), with the
368
+ * `tools` it may call. `chain` is a copy of the token's `act` claim when it has
369
+ * one.
292
370
  */
293
371
  type SupabaseActor = {
294
372
  readonly id: string;
@@ -326,4 +404,4 @@ type SupabaseDelegation = {
326
404
  readonly scopes: readonly string[];
327
405
  };
328
406
  //#endregion
329
- export { SupabaseClaimsOptions as C, supabaseClaims as D, SupabasePermDockClaims as E, SupabaseClaims as S, SupabaseMembershipClaim as T, SupabaseSubjectOptions as _, SupabaseActor as a, SupabaseSuspension as b, SupabaseInclude as c, SupabasePrincipal as d, SupabaseRealtime as f, SupabaseStorage as g, SupabaseSessionLike as h, SupabaseActiveRow as i, SupabaseMembershipTable as l, SupabaseRlsOptions as m, RoleMap as n, SupabaseActorResult as o, SupabaseRlsConfig as p, RoleThrough as r, SupabaseDelegation as s, AuthorizeSqlOptions as t, SupabasePermissionRef as u, SupabaseSuspendedMembership as v, SupabaseClaimsSchema as w, SupabaseActClaim as x, SupabaseSuspendedScope as y };
407
+ export { SupabaseClaims as C, SupabasePermDockClaims as D, SupabaseMembershipClaim as E, supabaseClaims as O, SupabaseActClaim as S, SupabaseClaimsSchema as T, SupabaseStorage as _, SupabaseActor as a, SupabaseSuspendedScope as b, SupabaseInclude as c, SupabasePrincipal as d, SupabaseRealtime as f, SupabaseSessionLike as g, SupabaseRlsOptions as h, SupabaseActiveRow as i, SupabaseMembershipTable as l, SupabaseRlsMembershipTable as m, RoleMap as n, SupabaseActorResult as o, SupabaseRlsConfig as p, RoleThrough as r, SupabaseDelegation as s, AuthorizeSqlOptions as t, SupabasePermissionRef as u, SupabaseSubjectOptions as v, SupabaseClaimsOptions as w, SupabaseSuspension as x, SupabaseSuspendedMembership as y };
@@ -1,15 +1,15 @@
1
- import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, Un as GrantedDecision, dt as TokenVerifier } 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 { t as PermissionBoundaryState } from "./boundary-BmHxVH1J.js";
5
- import { l as PermissionState, m as ClientStore, u as ProviderOptionsBase } from "./types-CKV71kKh.js";
1
+ import { Hn as ApprovalRequiredDecision, Un as Decision, Yn as GrantedDecision, Zt as Snapshot, ht as TokenVerifier } from "./policy-types-DGIO_gxq.js";
2
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "./permdock-CprAPN3w.js";
4
+ import { t as PermissionBoundaryState } from "./boundary-C9ck-3uK.js";
5
+ import { t as ActionResult } from "./action-result-BcudBQOF.js";
6
+ import { d as ProtectedActionView, f as ProviderOptionsBase, g as ClientStore, l as PermissionState } from "./types-tQB2CEnY.js";
6
7
  import { Snippet } from "svelte";
7
8
  import { Readable } from "svelte/store";
8
9
  //#region src/client/views.d.ts
9
10
  /**
10
11
  * What `Protected` renders: `pending` while an endpoint answer is in flight,
11
- * `approval` for an approval-required decision, `denied` for any other
12
- * denial.
12
+ * `approval` for an approval-required decision, `denied` for any other denial.
13
13
  */
14
14
  type ProtectedView = (PermissionState & {
15
15
  readonly slot: "pending" | "denied";
@@ -59,21 +59,30 @@ type ProtectedProps = {
59
59
  /** Rendered for an approval-required decision; defaults to `denied`. */
60
60
  readonly approval?: Snippet<[ApprovalRequiredDecision]>;
61
61
  };
62
- /** The instance for `tenant`, built once per store change rather than once per check. */
62
+ /**
63
+ * The instance for `tenant`, built once per store change rather than once per
64
+ * check.
65
+ */
63
66
  declare function scopedFor(store: ClientStore, tenant: string | undefined, _generation?: number): PermDock | undefined;
64
67
  declare function viewFor(store: ClientStore, reference: Permission, data: unknown, scoped: PermDock | undefined, _generation?: number): ProtectedView;
65
68
  //#endregion
66
69
  //#region src/svelte/types.d.ts
67
70
  type SveltePermDockOptions = ProviderOptionsBase & {
68
71
  /**
69
- * A getter (`() => data.snapshot`) or a readable store re-hydrates the
70
- * store when it changes; a promise keeps the store `pending` until it
71
- * settles (render the same promise with `{#await}`).
72
+ * A getter (`() => data.snapshot`) or a readable store re-hydrates the store
73
+ * when it changes; a promise keeps the store `pending` until it settles
74
+ * (render the same promise with `{#await}`).
72
75
  */
73
76
  readonly snapshot: Snapshot | string | (() => Snapshot | string) | Readable<Snapshot | string> | PromiseLike<Snapshot | string>;
74
- /** A getter (`() => page.params.org`) switches the active tenant (`refresh({ tenant })`) when it changes. */
77
+ /**
78
+ * A getter (`() => page.params.org`) switches the active tenant (`refresh({
79
+ * tenant })`) when it changes.
80
+ */
75
81
  readonly tenant?: string | (() => string | undefined);
76
- /** A getter is read on every request, so a rotated token applies without a new store. */
82
+ /**
83
+ * A getter is read on every request, so a rotated token applies without a new
84
+ * store.
85
+ */
77
86
  readonly headers?: Readonly<Record<string, string>> | (() => Readonly<Record<string, string>> | undefined);
78
87
  readonly verifier?: TokenVerifier;
79
88
  /** What every `<Protected>` renders for a snippet it leaves out. */
@@ -85,5 +94,13 @@ type PermDockDefaults = {
85
94
  readonly denied?: Snippet<[Decision]>;
86
95
  readonly approval?: Snippet<[ApprovalRequiredDecision]>;
87
96
  };
97
+ /**
98
+ * `protectedAction` in Svelte: a readable store of the view, with `run` and
99
+ * `retry`.
100
+ */
101
+ type ProtectedActionReadable<T> = Readable<ProtectedActionView<T>> & {
102
+ readonly run: (input: unknown) => Promise<ActionResult<T>>;
103
+ readonly retry: () => Promise<ActionResult<T> | undefined>;
104
+ };
88
105
  //#endregion
89
- export { viewFor as a, scopedFor as i, SveltePermDockOptions as n, PermissionBoundaryProps as o, ProtectedProps as r, slotContent as s, PermDockDefaults as t };
106
+ export { scopedFor as a, slotContent as c, ProtectedProps as i, ProtectedActionReadable as n, viewFor as o, SveltePermDockOptions as r, PermissionBoundaryProps as s, PermDockDefaults as t };