permdock 0.3.1 → 0.5.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 (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -1,5 +1,5 @@
1
- import { d as group, p as sqlStatements } from "./supabase-config-Bj3iDH2I.js";
2
- //#region src/cli/supautils.ts
1
+ import { i as group, o as sqlStatements } from "./deciding-columns-Sq12mEA6.js";
2
+ //#region src/cli/sql/supautils.ts
3
3
  /** `supautils.reserved_roles` of supabase/postgres 17.11.0.002 (supautils 3.4.4). */
4
4
  const RESERVED_ROLES = /* @__PURE__ */ new Set([
5
5
  "supabase_admin",
@@ -0,0 +1,158 @@
1
+ import { t as compact } from "./compact-CAf557ZB.js";
2
+ import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
+ import { a as ownRecord } from "./paths-DXSHAMIa.js";
4
+ import { a as isId, r as idList } from "./expiry-D4_YKRKD.js";
5
+ import { n as internalsOf } from "./internals-Dk8A8fX3.js";
6
+ import { c as listPermissions, m as annotationsFor, n as findPermission } from "./permission-registry-Br4jSNVi.js";
7
+ import { g as secondsOf, l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-DkWjdL98.js";
8
+ import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
9
+ import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
10
+ //#region src/core/support-session.ts
11
+ const DEFAULT_TTL = 3600;
12
+ const MAX_TTL = 86400;
13
+ const MAX_REASON = 1e3;
14
+ function isReason(value) {
15
+ return typeof value === "string" && value.trim().length > 0 && value.length <= MAX_REASON;
16
+ }
17
+ /**
18
+ * Validates an untrusted support-session record and returns a frozen copy
19
+ * with only the v1 fields, or `undefined`.
20
+ */
21
+ function parseSupportSession(input) {
22
+ const value = ownRecord(input);
23
+ if (value === void 0 || value["v"] !== 1 || !isId(value["id"]) || !isId(value["principal"]) || !isId(value["actor"]) || value["principal"] === value["actor"] || !isId(value["tenant"]) || !isReason(value["reason"]) || !isRfc3339(value["startedAt"]) || !isRfc3339(value["expiresAt"])) return;
24
+ const permissions = idList(value["permissions"]);
25
+ const { approvedBy, reference } = value;
26
+ if (permissions === void 0 || (secondsOf(value["expiresAt"]) ?? 0) <= (secondsOf(value["startedAt"]) ?? 0) || approvedBy !== void 0 && (!isId(approvedBy) || approvedBy === value["actor"]) || reference !== void 0 && !isId(reference)) return;
27
+ return freezeDeep(compact({
28
+ v: 1,
29
+ id: value["id"],
30
+ principal: value["principal"],
31
+ actor: value["actor"],
32
+ tenant: value["tenant"],
33
+ reason: value["reason"],
34
+ permissions,
35
+ startedAt: value["startedAt"],
36
+ expiresAt: value["expiresAt"],
37
+ approvedBy,
38
+ reference
39
+ }));
40
+ }
41
+ function denied(reason, detail) {
42
+ return freezeDeep({
43
+ outcome: "denied",
44
+ denials: [compact({
45
+ role: null,
46
+ reason,
47
+ detail
48
+ })]
49
+ });
50
+ }
51
+ function sessionToken(request, actor, tenant, permissions, ttl) {
52
+ return sha256Digest(canonicalJson({
53
+ t: "support-session",
54
+ id: request.id,
55
+ principal: request.principal,
56
+ actor,
57
+ tenant,
58
+ reason: request.reason,
59
+ permissions,
60
+ ttl,
61
+ reference: request.reference ?? null
62
+ }));
63
+ }
64
+ /**
65
+ * Decides whether the subject of `permdock` may start the support session
66
+ * in `request`. The actor must be a signed-in person acting for themselves
67
+ * (`exceeds-creator` otherwise), give a `reason` (`reason-required`), be a
68
+ * member of the tenant (`tenant-mismatch`) and be able to use every
69
+ * permission (`exceeds-creator`). Without `permissions` the session gets the
70
+ * actor's read-only permissions. The tenant's `supportSessions` policy then
71
+ * applies, and the result is `approval-required` until `approved` carries
72
+ * its token and `approvedBy` names someone other than the actor.
73
+ */
74
+ /**
75
+ * Decides whether the subject of `permdock` may start the support session
76
+ * in `request` and returns the record to sign: a stated reason, membership
77
+ * of the tenant, the actor's own reach, the tenant's `supportSessions`
78
+ * policy and approval by someone else. An instance built from a snapshot
79
+ * denies with `unsupported`.
80
+ */
81
+ function decideSupportSession(permdock, request, options = {}) {
82
+ const internals = internalsOf(permdock);
83
+ if (internals === void 0) return Promise.resolve(freezeDeep({
84
+ outcome: "denied",
85
+ denials: [{
86
+ role: null,
87
+ reason: "unsupported"
88
+ }]
89
+ }));
90
+ const settings = options.settings ?? internals.env.settings;
91
+ return decideSupportSessionWith(internals.instance, request, settings === void 0 ? options : {
92
+ ...options,
93
+ settings
94
+ });
95
+ }
96
+ async function decideSupportSessionWith(permdock, request, options) {
97
+ const actor = permdock.subject.principal;
98
+ if (actor === null) return denied("anonymous");
99
+ if (actor.kind !== void 0 && actor.kind !== "user") return denied("exceeds-creator", { creator: actor.kind });
100
+ if ("credential" in actor || "runTicket" in actor) return denied("exceeds-creator", { creator: "credential" in actor ? "credential" : "run" });
101
+ if (permdock.subject.actor !== void 0) return denied("exceeds-creator", { creator: "actor" });
102
+ if (!isReason(request.reason)) return denied("reason-required");
103
+ const ttl = request.expiresIn ?? DEFAULT_TTL;
104
+ if (!isId(request.id) || !isId(request.principal) || request.principal === actor.id || !Number.isSafeInteger(ttl) || ttl <= 0 || ttl > MAX_TTL || request.reference !== void 0 && !isId(request.reference)) return denied("validation");
105
+ const tenant = request.tenant ?? actor.tenant;
106
+ if (tenant === void 0) return denied("validation");
107
+ if (!permdock.tenants().includes(tenant)) return denied("tenant-mismatch", { tenant });
108
+ let policy;
109
+ if (options.settings !== void 0) try {
110
+ policy = (await options.settings.settingsFor(tenant))?.supportSessions;
111
+ } catch {
112
+ return denied("unsupported", { rule: "unavailable" });
113
+ }
114
+ if (policy?.disabled === true) return denied("unsupported", { rule: "disabled" });
115
+ if (policy?.maxTtl !== void 0 && ttl > policy.maxTtl) return denied("validation", { rule: "ttl" });
116
+ const leaves = request.permissions === void 0 ? listPermissions(permdock.permissions).filter((leaf) => annotationsFor(leaf).readOnlyHint && permdock.mayUse(leaf)) : request.permissions.map((permission) => findPermission(permdock.permissions, permission.key));
117
+ const keys = [];
118
+ for (const leaf of leaves) {
119
+ if (leaf === void 0) return denied("validation");
120
+ if (!permdock.mayUse(leaf)) return denied("exceeds-creator", { permission: leaf.key });
121
+ if (policy?.readOnly === true && !annotationsFor(leaf).readOnlyHint) return denied("not-delegated", {
122
+ permission: leaf.key,
123
+ rule: "read-only"
124
+ });
125
+ if (!keys.includes(leaf.key)) keys.push(leaf.key);
126
+ }
127
+ if (keys.length === 0) return denied("no-grant");
128
+ const token = sessionToken(request, actor.id, tenant, keys, ttl);
129
+ const approval = options.approval !== false;
130
+ const approved = approval && options.approved === token;
131
+ if (approved && (options.approvedBy === void 0 || options.approvedBy === actor.id)) return denied("approval", "approver-not-distinct");
132
+ const startedAt = nowSeconds(options.now);
133
+ const session = parseSupportSession(compact({
134
+ v: 1,
135
+ id: request.id,
136
+ principal: request.principal,
137
+ actor: actor.id,
138
+ tenant,
139
+ reason: request.reason,
140
+ permissions: keys,
141
+ startedAt: rfc3339(startedAt),
142
+ expiresAt: rfc3339(startedAt + ttl),
143
+ approvedBy: approved ? options.approvedBy : void 0,
144
+ reference: request.reference
145
+ }));
146
+ if (session === void 0) return denied("validation");
147
+ if (approval && !approved) return freezeDeep({
148
+ outcome: "approval-required",
149
+ session,
150
+ token
151
+ });
152
+ return freezeDeep({
153
+ outcome: "granted",
154
+ session
155
+ });
156
+ }
157
+ //#endregion
158
+ export { parseSupportSession as n, decideSupportSession as t };
@@ -3,7 +3,9 @@
3
3
 
4
4
  import {
5
5
  getStore,
6
+ getUi,
6
7
  scopedFor,
8
+ slotContent,
7
9
  viewFor,
8
10
  type ProtectedProps,
9
11
  } from './runtime.js';
@@ -14,10 +16,12 @@
14
16
  tenant,
15
17
  children,
16
18
  pending,
17
- fallback,
19
+ denied,
20
+ approval,
18
21
  }: ProtectedProps = $props();
19
22
 
20
23
  const store = getStore();
24
+ const { defaults } = getUi();
21
25
  let tick = $state(0);
22
26
  onDestroy(
23
27
  store.subscribe(() => {
@@ -29,12 +33,15 @@
29
33
  const generation = tick;
30
34
  return viewFor(store, permission, data, scoped, generation);
31
35
  });
36
+ const own = $derived({ pending, denied, approval });
32
37
  </script>
33
38
 
34
39
  {#if view.slot === 'pending'}
35
- {@render pending?.()}
36
- {:else if view.slot === 'fallback'}
37
- {@render fallback?.(view.decision)}
40
+ {@render slotContent('pending', own, defaults)?.()}
41
+ {:else if view.slot === 'approval'}
42
+ {@render slotContent('approval', own, defaults)?.(view.decision)}
43
+ {:else if view.slot === 'denied'}
44
+ {@render slotContent('denied', own, defaults)?.(view.decision)}
38
45
  {:else}
39
46
  {@render children?.(view.decision)}
40
47
  {/if}
@@ -1,13 +1,13 @@
1
- import { n as requiredPlans } from "../problem-details-DX075l9V.js";
2
- import { i as describe } from "../describe-DMYiCjJV.js";
1
+ import { n as requiredPlans } from "../problem-details-DXlt-vks.js";
2
+ import { i as describe } from "../describe-BZUsixiL.js";
3
3
  import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
4
- import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
5
- import { a as FilterResult, c as SubjectView, i as ClientStatus, l as TenantView, n as ApprovalState, o as PermissionSet, r as ClientPermDock, s as PermissionState, t as ApprovalHandle, u as UseRolesOptions } from "../types-CKNSyIf_.js";
6
- import { i as PermissionBoundaryProps, t as ProtectedProps } from "../protected-xAr24FEC.js";
7
- import { a as getPermDock, c as permissions, d as subject, f as tenant, i as filtered, l as roles, n as assignable, o as memberships, p as PermDockSvelteOptions, r as assignablePermissions, s as permission, t as approval, u as setPermDock } from "../stores-C0IMQrGI.js";
4
+ import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
5
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle } from "../types-BNORmDM8.js";
6
+ import { n as SveltePermDockOptions, o as PermissionBoundaryProps, r as ProtectedProps, t as PermDockDefaults } from "../types-fbZ7JEXr.js";
7
+ import { a as getDescribe, c as permission, d as setPermDock, f as subject, i as filtered, l as permissions, n as assignable, o as getPermDock, p as tenant, r as assignablePermissions, s as memberships, t as approval, u as roles } from "../stores-ClZUgeoP.js";
8
8
  import { Component } from "svelte";
9
9
  //#region src/svelte/index.d.ts
10
10
  export declare const Protected: Component<ProtectedProps>;
11
11
  export declare const PermissionBoundary: Component<PermissionBoundaryProps>;
12
12
  //#endregion
13
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockSvelteOptions, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SubjectView, type TenantView, type UseRolesOptions, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
13
+ export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SubjectView, type SveltePermDockOptions, type TenantView, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
@@ -1,10 +1,11 @@
1
- import { r as requiredPlans } from "../problem-details-_AMOYz-w.js";
2
- import { t as describe } from "../describe-B_gVZEVi.js";
3
- import { t as approvalHeaders } from "../headers-BZSDieNT.js";
1
+ import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
2
+ import { t as describe } from "../describe-BybMRY7A.js";
4
3
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
5
- import { t as getStore } from "../context-Bcy85rGi.js";
6
- import { n as viewFor, t as scopedFor } from "../runtime-CB8gQFvS.js";
7
- import { a as getPermDock, c as permissions, d as subject, f as tenant, i as filtered, l as roles, n as assignable, o as memberships, r as assignablePermissions, s as permission, t as approval, u as setPermDock } from "../stores-BT2pSCub.js";
4
+ import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
5
+ import { u as slotContent } from "../views-DTIIO-oQ.js";
6
+ import { n as getUi, t as getStore } from "../context-bbFHR-0D.js";
7
+ import { n as viewFor, t as scopedFor } from "../runtime-D3VTAiCA.js";
8
+ import { a as getDescribe, c as permission, d as setPermDock, f as subject, i as filtered, l as permissions, n as assignable, o as getPermDock, p as tenant, r as assignablePermissions, s as memberships, t as approval, u as roles } from "../stores-BbsD4fAR.js";
8
9
  import "svelte/internal/disclose-version";
9
10
  import * as $ from "svelte/internal/client";
10
11
  import { onDestroy } from "svelte";
@@ -62,6 +63,7 @@ function PermissionBoundary$1($$anchor, $$props) {
62
63
  function Protected$1($$anchor, $$props) {
63
64
  $.push($$props, true);
64
65
  const store = getStore();
66
+ const { defaults } = getUi();
65
67
  let tick = $.state(0);
66
68
  onDestroy(store.subscribe(() => {
67
69
  $.set(tick, $.get(tick) + 1);
@@ -71,29 +73,41 @@ function Protected$1($$anchor, $$props) {
71
73
  const generation = $.get(tick);
72
74
  return viewFor(store, $$props.permission, $$props.data, $.get(scoped), generation);
73
75
  });
76
+ const own = $.derived(() => ({
77
+ pending: $$props.pending,
78
+ denied: $$props.denied,
79
+ approval: $$props.approval
80
+ }));
74
81
  var fragment = $.comment();
75
82
  var node = $.first_child(fragment);
76
83
  var consequent = ($$anchor) => {
77
84
  var fragment_1 = $.comment();
78
85
  var node_1 = $.first_child(fragment_1);
79
- $.snippet(node_1, () => $$props.pending ?? $.noop);
86
+ $.snippet(node_1, () => slotContent("pending", $.get(own), defaults) ?? $.noop);
80
87
  $.append($$anchor, fragment_1);
81
88
  };
82
89
  var consequent_1 = ($$anchor) => {
83
90
  var fragment_2 = $.comment();
84
91
  var node_2 = $.first_child(fragment_2);
85
- $.snippet(node_2, () => $$props.fallback ?? $.noop, () => $.get(view).decision);
92
+ $.snippet(node_2, () => slotContent("approval", $.get(own), defaults) ?? $.noop, () => $.get(view).decision);
86
93
  $.append($$anchor, fragment_2);
87
94
  };
88
- var alternate = ($$anchor) => {
95
+ var consequent_2 = ($$anchor) => {
89
96
  var fragment_3 = $.comment();
90
97
  var node_3 = $.first_child(fragment_3);
91
- $.snippet(node_3, () => $$props.children ?? $.noop, () => $.get(view).decision);
98
+ $.snippet(node_3, () => slotContent("denied", $.get(own), defaults) ?? $.noop, () => $.get(view).decision);
92
99
  $.append($$anchor, fragment_3);
93
100
  };
101
+ var alternate = ($$anchor) => {
102
+ var fragment_4 = $.comment();
103
+ var node_4 = $.first_child(fragment_4);
104
+ $.snippet(node_4, () => $$props.children ?? $.noop, () => $.get(view).decision);
105
+ $.append($$anchor, fragment_4);
106
+ };
94
107
  $.if(node, ($$render) => {
95
108
  if ($.get(view).slot === "pending") $$render(consequent);
96
- else if ($.get(view).slot === "fallback") $$render(consequent_1, 1);
109
+ else if ($.get(view).slot === "approval") $$render(consequent_1, 1);
110
+ else if ($.get(view).slot === "denied") $$render(consequent_2, 2);
97
111
  else $$render(alternate, -1);
98
112
  });
99
113
  $.append($$anchor, fragment);
@@ -104,4 +118,4 @@ function Protected$1($$anchor, $$props) {
104
118
  const Protected = Protected$1;
105
119
  const PermissionBoundary = PermissionBoundary$1;
106
120
  //#endregion
107
- export { PermissionBoundary, Protected, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
121
+ export { PermissionBoundary, Protected, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
@@ -1,7 +1,14 @@
1
+ import { n as DescribeMessages } from "../describe-BZUsixiL.js";
1
2
  import { n as boundaryDigest, r as boundaryFallback, t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
2
- import { t as ClientStore } from "../store-jOBYpiXC.js";
3
- import { i as PermissionBoundaryProps, n as scopedFor, r as viewFor, t as ProtectedProps } from "../protected-xAr24FEC.js";
3
+ import { m as ClientStore } from "../types-BNORmDM8.js";
4
+ import { a as viewFor, i as scopedFor, o as PermissionBoundaryProps, r as ProtectedProps, s as slotContent, t as PermDockDefaults } from "../types-fbZ7JEXr.js";
4
5
  //#region src/svelte/context.d.ts
6
+ /** The provider's `defaults` and `messages`. */
7
+ type PermDockUi = {
8
+ readonly defaults?: PermDockDefaults | undefined;
9
+ readonly messages?: DescribeMessages | undefined;
10
+ };
11
+ export declare function getUi(): PermDockUi;
5
12
  export declare function getStore(): ClientStore;
6
13
  //#endregion
7
- export { type PermissionBoundaryProps, type PermissionBoundaryState, type ProtectedProps, boundaryDigest, boundaryFallback, scopedFor, viewFor };
14
+ export { type PermissionBoundaryProps, type PermissionBoundaryState, type ProtectedProps, boundaryDigest, boundaryFallback, scopedFor, slotContent, viewFor };
@@ -1,4 +1,5 @@
1
1
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
2
- import { t as getStore } from "../context-Bcy85rGi.js";
3
- import { n as viewFor, t as scopedFor } from "../runtime-CB8gQFvS.js";
4
- export { boundaryDigest, boundaryFallback, getStore, scopedFor, viewFor };
2
+ import { u as slotContent } from "../views-DTIIO-oQ.js";
3
+ import { n as getUi, t as getStore } from "../context-bbFHR-0D.js";
4
+ import { n as viewFor, t as scopedFor } from "../runtime-D3VTAiCA.js";
5
+ export { boundaryDigest, boundaryFallback, getStore, getUi, scopedFor, slotContent, viewFor };
@@ -1,13 +1,13 @@
1
- import { n as requiredPlans } from "../problem-details-DX075l9V.js";
2
- import { i as describe } from "../describe-DMYiCjJV.js";
1
+ import { n as requiredPlans } from "../problem-details-DXlt-vks.js";
2
+ import { i as describe } from "../describe-BZUsixiL.js";
3
3
  import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
4
- import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
5
- import { a as FilterResult, c as SubjectView, i as ClientStatus, l as TenantView, n as ApprovalState, o as PermissionSet, r as ClientPermDock, s as PermissionState, t as ApprovalHandle, u as UseRolesOptions } from "../types-CKNSyIf_.js";
6
- import { i as PermissionBoundaryProps, t as ProtectedProps } from "../protected-xAr24FEC.js";
7
- import { a as getPermDock, c as permissions, d as subject, f as tenant, i as filtered, l as roles, n as assignable, o as memberships, p as PermDockSvelteOptions, r as assignablePermissions, s as permission, t as approval, u as setPermDock } from "../stores-C0IMQrGI.js";
4
+ import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
5
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle } from "../types-BNORmDM8.js";
6
+ import { n as SveltePermDockOptions, o as PermissionBoundaryProps, r as ProtectedProps, t as PermDockDefaults } from "../types-fbZ7JEXr.js";
7
+ import { a as getDescribe, c as permission, d as setPermDock, f as subject, i as filtered, l as permissions, n as assignable, o as getPermDock, p as tenant, r as assignablePermissions, s as memberships, t as approval, u as roles } from "../stores-ClZUgeoP.js";
8
8
  import { Component } from "svelte";
9
9
  //#region src/svelte/source.d.ts
10
10
  export declare const Protected: Component<ProtectedProps>;
11
11
  export declare const PermissionBoundary: Component<PermissionBoundaryProps>;
12
12
  //#endregion
13
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockSvelteOptions, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SubjectView, type TenantView, type UseRolesOptions, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
13
+ export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SubjectView, type SveltePermDockOptions, type TenantView, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
@@ -1,11 +1,11 @@
1
- import { r as requiredPlans } from "../problem-details-_AMOYz-w.js";
2
- import { t as describe } from "../describe-B_gVZEVi.js";
3
- import { t as approvalHeaders } from "../headers-BZSDieNT.js";
4
- import { a as getPermDock, c as permissions, d as subject, f as tenant, i as filtered, l as roles, n as assignable, o as memberships, r as assignablePermissions, s as permission, t as approval, u as setPermDock } from "../stores-BT2pSCub.js";
1
+ import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
2
+ import { t as describe } from "../describe-BybMRY7A.js";
3
+ import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
4
+ import { a as getDescribe, c as permission, d as setPermDock, f as subject, i as filtered, l as permissions, n as assignable, o as getPermDock, p as tenant, r as assignablePermissions, s as memberships, t as approval, u as roles } from "../stores-BbsD4fAR.js";
5
5
  import PermissionBoundaryComponent from "./PermissionBoundary.svelte";
6
6
  import ProtectedComponent from "./Protected.svelte";
7
7
  //#region src/svelte/source.ts
8
8
  const Protected = ProtectedComponent;
9
9
  const PermissionBoundary = PermissionBoundaryComponent;
10
10
  //#endregion
11
- export { PermissionBoundary, Protected, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
11
+ export { PermissionBoundary, Protected, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, getPermDock, memberships, permission, permissions, requiredPlans, roles, setPermDock, subject, tenant };
@@ -0,0 +1,51 @@
1
+ import { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { a as OperationInput, t as Operation } from "../operations-CxybZErY.js";
4
+ import { r as PermDock } from "../permdock-D7eeLJER.js";
5
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-BLd4MnBX.js";
6
+ import { a as ProtectTarget, i as PermDockHandlers, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-qKJBuRqy.js";
7
+ import { RequestEvent } from "@sveltejs/kit";
8
+ //#region src/sveltekit/create.d.ts
9
+ /**
10
+ * A `handle` hook. SvelteKit 2 exports `Handle` from `@sveltejs/kit` and
11
+ * SvelteKit 3 from `@sveltejs/kit/hooks`; this shape is assignable to both.
12
+ */
13
+ type SvelteKitHandle = (input: {
14
+ readonly event: RequestEvent;
15
+ readonly resolve: (event: RequestEvent) => Promise<Response>;
16
+ }) => Promise<Response>;
17
+ type SvelteKitPermDockOptions<TUser = unknown> = FetchAdapterOptions<RequestEvent, TUser>;
18
+ /** What the adapter sets on `event.locals`. */
19
+ type SvelteKitPermDockLocals<TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
20
+ readonly permdock: PermDock<V>;
21
+ readonly permdockData: TData;
22
+ };
23
+ /** The event a wrapped handler receives: the route's own event with typed `locals`. */
24
+ type SvelteKitPermDockEvent<TEvent extends RequestEvent = RequestEvent, TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = TEvent & {
25
+ readonly locals: SvelteKitPermDockLocals<TData, V>;
26
+ };
27
+ /** Wraps a `+server.ts` handler; the route keeps its generated `RequestEvent` type. */
28
+ type SvelteKitGuarded<TData, V extends PolicyVocabulary = PolicyVocabulary> = <TEvent extends RequestEvent, R = Response>(handler: (event: SvelteKitPermDockEvent<TEvent, TData, V>) => R | Promise<R>) => (event: TEvent) => Promise<R | Response>;
29
+ type SvelteKitProtect<V extends PolicyVocabulary = PolicyVocabulary> = {
30
+ <T = unknown>(permission: Permission | null, data?: ContextReader<RequestEvent, T | null | undefined>, protectOptions?: ProtectOptions): SvelteKitGuarded<NonNullable<T>, V>;
31
+ <TOperation extends Operation>(operation: TOperation, input?: ContextReader<RequestEvent, OperationInput<TOperation>>, protectOptions?: ProtectOptions): SvelteKitGuarded<unknown, V>;
32
+ };
33
+ type SvelteKitPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
34
+ /** The `handle` hook: sets `event.locals.permdock`; a bad Web Bot Auth signature is a `401`. */
35
+ readonly middleware: () => SvelteKitHandle;
36
+ /** `export const DELETE = protect(permissions.post.delete, loadPost)(handler)`. */
37
+ readonly protect: SvelteKitProtect<V>;
38
+ /** Types `event.locals.permdock` for a handler and answers a thrown PermDock error with Problem Details. */
39
+ readonly withPermDock: SvelteKitGuarded<unknown, V>;
40
+ /** The instance for a `load` function, an action or a handler. */
41
+ readonly getPermDock: (event: RequestEvent) => Promise<PermDock<V>>;
42
+ /** The snapshot a layout `load` returns for `permdock/svelte`. */
43
+ readonly getSnapshot: (event: RequestEvent, query?: SnapshotQuery) => Promise<Snapshot>;
44
+ readonly connection: (event: RequestEvent, connectionOptions?: ConnectionOptions) => Promise<Connection>;
45
+ /** `export const { GET, POST } = permdockHandler()` in `src/routes/api/permdock/+server.ts`. */
46
+ readonly permdockHandler: () => PermDockHandlers<RequestEvent>;
47
+ readonly openapi: OpenApiHooks;
48
+ };
49
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: SvelteKitPermDockOptions<TUser>): SvelteKitPermDock<V>;
50
+ //#endregion
51
+ export { type ContextReader, InvalidSignatureError, type PermDockHandlers, type ProtectTarget, type SvelteKitGuarded, type SvelteKitHandle, type SvelteKitPermDock, type SvelteKitPermDockEvent, type SvelteKitPermDockLocals, type SvelteKitPermDockOptions, type SvelteKitProtect, discoverViaSignatureAgent, webBotAuthVerifier };
@@ -0,0 +1,27 @@
1
+ import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-DZ2CbV5k.js";
2
+ import { n as guardedRoute, r as instanceRoute, t as fetchAdapter } from "../fetch-adapter-g0ypLkID.js";
3
+ //#region src/sveltekit/create.ts
4
+ const route = {
5
+ context: (event) => event,
6
+ locals: (event) => event.locals
7
+ };
8
+ function createPermDock(policy, options) {
9
+ const adapter = fetchAdapter(policy, options, "sveltekit", (event) => event.request);
10
+ const middleware = () => async ({ event, resolve }) => {
11
+ const attached = await adapter.ensure(event.locals, event);
12
+ return attached.ok ? resolve(event) : attached.response;
13
+ };
14
+ const protect = ((target, data, protectOptions) => guardedRoute(adapter, route, target, data, protectOptions));
15
+ return {
16
+ middleware,
17
+ protect,
18
+ withPermDock: instanceRoute(adapter, route),
19
+ getPermDock: adapter.getPermDock,
20
+ getSnapshot: adapter.getSnapshot,
21
+ connection: adapter.connection,
22
+ permdockHandler: adapter.handlers,
23
+ openapi: adapter.kernel.openapi
24
+ };
25
+ }
26
+ //#endregion
27
+ export { InvalidSignatureError, createPermDock, discoverViaSignatureAgent, webBotAuthVerifier };
@@ -0,0 +1,51 @@
1
+ import { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { a as OperationInput, t as Operation } from "../operations-CxybZErY.js";
4
+ import { r as PermDock } from "../permdock-D7eeLJER.js";
5
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-BLd4MnBX.js";
6
+ import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-qKJBuRqy.js";
7
+ import { RequestMiddleware, RequestMiddlewareAfterServer, createMiddleware } from "@tanstack/react-start";
8
+ //#region src/tanstack-start/create.d.ts
9
+ type TanStackStartPermDockOptions<TUser = unknown> = FetchAdapterOptions<Request, TUser>;
10
+ /** The server context `middleware()` adds for later middleware, server functions and server routes. */
11
+ type TanStackStartPermDockContext<V extends PolicyVocabulary = PolicyVocabulary> = {
12
+ readonly permdock: PermDock<V>;
13
+ };
14
+ /** The server context `protect` adds: the instance and the loaded row. */
15
+ type TanStackStartGuardedContext<TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = TanStackStartPermDockContext<V> & {
16
+ readonly permdockData: TData;
17
+ };
18
+ /** A request middleware for `createStart`'s `requestMiddleware`, a server route's `server.middleware` or a server function's `.middleware([...])`. */
19
+ type TanStackStartMiddleware<TContext> = RequestMiddlewareAfterServer<StartRegister, undefined, TContext>;
20
+ /** The register `createMiddleware` builds with; Start's middleware types are invariant in it. */
21
+ type StartRegister = ReturnType<typeof createMiddleware> extends RequestMiddleware<infer TRegister> ? TRegister : never;
22
+ type TanStackStartProtect<V extends PolicyVocabulary = PolicyVocabulary> = {
23
+ <T = unknown>(permission: Permission | null, data?: ContextReader<Request, T | null | undefined>, protectOptions?: ProtectOptions): TanStackStartMiddleware<TanStackStartGuardedContext<NonNullable<T>, V>>;
24
+ <TOperation extends Operation>(operation: TOperation, input?: ContextReader<Request, OperationInput<TOperation>>, protectOptions?: ProtectOptions): TanStackStartMiddleware<TanStackStartGuardedContext<unknown, V>>;
25
+ };
26
+ /** A server route handler: `server: { handlers: { GET } }`. */
27
+ type TanStackStartRouteHandler = (context: {
28
+ readonly request: Request;
29
+ }) => Promise<Response>;
30
+ /** The decision endpoint, one server route handler per method. */
31
+ type TanStackStartPermDockHandlers = {
32
+ readonly GET: TanStackStartRouteHandler;
33
+ readonly POST: TanStackStartRouteHandler;
34
+ };
35
+ type TanStackStartPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
36
+ /** Adds `context.permdock`; a bad Web Bot Auth signature is a `401`. */
37
+ readonly middleware: () => TanStackStartMiddleware<TanStackStartPermDockContext<V>>;
38
+ /** A refusal ends the request with Problem Details; a grant adds `context.permdock` and `context.permdockData`. */
39
+ readonly protect: TanStackStartProtect<V>;
40
+ /** The instance for a server function: `getPermDock(getRequest())`. */
41
+ readonly getPermDock: (request: Request) => Promise<PermDock<V>>;
42
+ /** The snapshot a route `loader` returns for `permdock/react`. */
43
+ readonly getSnapshot: (request: Request, query?: SnapshotQuery) => Promise<Snapshot>;
44
+ readonly connection: (request: Request, connectionOptions?: ConnectionOptions) => Promise<Connection>;
45
+ /** `server: { handlers: permdockHandler() }` on the `/api/permdock` route. */
46
+ readonly permdockHandler: () => TanStackStartPermDockHandlers;
47
+ readonly openapi: OpenApiHooks;
48
+ };
49
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: TanStackStartPermDockOptions<TUser>): TanStackStartPermDock<V>;
50
+ //#endregion
51
+ export { type ContextReader, InvalidSignatureError, type ProtectTarget, type TanStackStartGuardedContext, type TanStackStartMiddleware, type TanStackStartPermDock, type TanStackStartPermDockContext, type TanStackStartPermDockHandlers, type TanStackStartPermDockOptions, type TanStackStartProtect, type TanStackStartRouteHandler, discoverViaSignatureAgent, webBotAuthVerifier };
@@ -0,0 +1,40 @@
1
+ import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-DZ2CbV5k.js";
2
+ import { t as fetchAdapter } from "../fetch-adapter-g0ypLkID.js";
3
+ import { createMiddleware } from "@tanstack/react-start";
4
+ //#region src/tanstack-start/create.ts
5
+ function createPermDock(policy, options) {
6
+ const adapter = fetchAdapter(policy, options, "tanstack-start", (request) => request);
7
+ const middleware = () => createMiddleware().server(async ({ request, next }) => {
8
+ const attached = await adapter.attach(request);
9
+ if (!attached.ok) return attached.response;
10
+ const context = { permdock: attached.permdock };
11
+ return adapter.mapErrors(request, () => next({ context }));
12
+ });
13
+ const protect = ((target, data, protectOptions) => createMiddleware().server(async ({ request, next }) => {
14
+ const guard = await adapter.guard(target, data, request, protectOptions);
15
+ if (!guard.ok) return guard.response;
16
+ const context = {
17
+ permdock: guard.permdock,
18
+ permdockData: guard.data
19
+ };
20
+ return adapter.mapErrors(request, () => next({ context }));
21
+ }));
22
+ const handlers = () => {
23
+ const { GET, POST } = adapter.handlers();
24
+ return {
25
+ GET: ({ request }) => GET(request),
26
+ POST: ({ request }) => POST(request)
27
+ };
28
+ };
29
+ return {
30
+ middleware,
31
+ protect,
32
+ getPermDock: adapter.getPermDock,
33
+ getSnapshot: adapter.getSnapshot,
34
+ connection: adapter.connection,
35
+ permdockHandler: handlers,
36
+ openapi: adapter.kernel.openapi
37
+ };
38
+ }
39
+ //#endregion
40
+ export { InvalidSignatureError, createPermDock, discoverViaSignatureAgent, webBotAuthVerifier };
@@ -0,0 +1,51 @@
1
+ import { a as ownRecord } from "./paths-DXSHAMIa.js";
2
+ import { n as sha256, t as bytesToBase64Url } from "./sha256-D9ihqmvd.js";
3
+ //#region src/delivery/target.ts
4
+ /**
5
+ * Whether `value` is a target the router checked for `channel`: a non-empty
6
+ * address and a granted decision. A transport calls it first and refuses
7
+ * anything else, so a hand-built recipient never reaches a provider.
8
+ */
9
+ function isDeliveryTarget(value, channel) {
10
+ const record = ownRecord(value);
11
+ const address = record?.["address"];
12
+ return record?.["channel"] === channel && typeof address === "string" && address !== "" && ownRecord(record["decision"])?.["outcome"] === "granted";
13
+ }
14
+ /**
15
+ * The idempotency key for one recipient of delivery `id`: `pdd_` and the
16
+ * base64url SHA-256 of the delivery id, channel and recipient. It fits the
17
+ * tag and header charsets of every provider, `[A-Za-z0-9_-]`.
18
+ */
19
+ function idempotencyKeyFor(id, channel, recipient) {
20
+ return `pdd_${bytesToBase64Url(sha256(JSON.stringify([
21
+ id,
22
+ channel,
23
+ recipient
24
+ ])))}`;
25
+ }
26
+ const ATOM = "[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+";
27
+ const ADDR_SPEC = /* @__PURE__ */ new RegExp(`^${ATOM}(?:\\.${ATOM})*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$`, "u");
28
+ /**
29
+ * An RFC 5322 `addr-spec` in dot-atom form with a DNS domain, at most 254
30
+ * characters (RFC 5321 path limit). Quoted local parts, comments and
31
+ * domain literals are refused.
32
+ */
33
+ function isAddrSpec(value) {
34
+ return value.length <= 254 && ADDR_SPEC.test(value);
35
+ }
36
+ /** A chat platform user id: printable, no whitespace, at most 256 characters. */
37
+ function isChatAddress(value) {
38
+ return /^[!-~]{1,256}$/u.test(value);
39
+ }
40
+ /** An absolute https URL with no credentials. */
41
+ function isWebhookAddress(value) {
42
+ let url;
43
+ try {
44
+ url = new URL(value);
45
+ } catch {
46
+ return false;
47
+ }
48
+ return url.protocol === "https:" && url.username === "" && url.password === "";
49
+ }
50
+ //#endregion
51
+ export { isWebhookAddress as a, isDeliveryTarget as i, isAddrSpec as n, isChatAddress as r, idempotencyKeyFor as t };