permdock 0.4.0 → 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 (514) hide show
  1. package/README.md +37 -35
  2. package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
  3. package/dist/a2a/index.d.ts +6 -6
  4. package/dist/a2a/index.js +14 -17
  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 -35
  10. package/dist/ai-sdk/index.js +37 -23
  11. package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
  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/arazzo-B6lebmiQ.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.js} +20 -14
  20. package/dist/args-IIolxxKA.js +197 -0
  21. package/dist/astro/index.d.ts +43 -0
  22. package/dist/astro/index.js +27 -0
  23. package/dist/audience-Dg8XsRaO.js +55 -0
  24. package/dist/auth-DRLEizbL.js +178 -0
  25. package/dist/authzen/index.d.ts +26 -6
  26. package/dist/authzen/index.js +94 -79
  27. package/dist/automation-BMZPIVUM.d.ts +114 -0
  28. package/dist/automation-DVjOckjV.js +157 -0
  29. package/dist/better-auth/index.d.ts +8 -6
  30. package/dist/better-auth/index.js +9 -8
  31. package/dist/better-supabase/index.d.ts +357 -30
  32. package/dist/better-supabase/index.js +936 -194
  33. package/dist/{bind-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
  34. package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -10
  35. package/dist/body-CH5of8Ne.js +10 -0
  36. package/dist/body-text-QcXok_SI.js +52 -0
  37. package/dist/{build-instance-DIIV9DbC.js → build-instance-BMnAudHn.js} +4 -3
  38. package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
  39. package/dist/{capability-CksyCWDH.d.ts → capability-BSslw1QV.d.ts} +44 -25
  40. package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
  41. package/dist/casbin-Cr7RLtA3.js +30 -0
  42. package/dist/casbin-Dyu2gnUD.js +234 -0
  43. package/dist/casl-64gpT-8x.js +24 -0
  44. package/dist/casl-DjEDhTCP.js +299 -0
  45. package/dist/catalog/index.d.ts +74 -2
  46. package/dist/catalog/index.js +51 -2
  47. package/dist/{catalog-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
  48. package/dist/catalog-DjhMYYCq.js +1 -0
  49. package/dist/catalog-R_A__RsH.js +52 -0
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.js} +45 -23
  51. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  52. package/dist/chat/index.d.ts +2 -0
  53. package/dist/chat/index.js +224 -0
  54. package/dist/chat-sdk/index.d.ts +87 -0
  55. package/dist/chat-sdk/index.js +197 -0
  56. package/dist/claims-map-7oQ3ue4X.js +13 -0
  57. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  58. package/dist/claude-agent/index.d.ts +7 -14
  59. package/dist/claude-agent/index.js +24 -27
  60. package/dist/clerk/index.d.ts +9 -8
  61. package/dist/clerk/index.js +9 -14
  62. package/dist/cli/bin.js +36 -17
  63. package/dist/cli/index.d.ts +19 -5
  64. package/dist/cli/index.js +164 -4
  65. package/dist/cloud/index.d.ts +102 -63
  66. package/dist/cloud/index.js +239 -340
  67. package/dist/cloud-CIoHNevm.js +87 -0
  68. package/dist/codemod-Bmj9dWMH.js +37 -0
  69. package/dist/codemod-Cxvvc70T.js +2084 -0
  70. package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
  71. package/dist/collect-DloHbDVa.js +55 -0
  72. package/dist/collect-FlXJlhus.js +1 -0
  73. package/dist/command-L8EstFNm.js +6 -0
  74. package/dist/compile/index.d.ts +1 -1
  75. package/dist/compile/index.js +1 -2
  76. package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  77. package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  78. package/dist/completion-BqhRBJD8.js +143 -0
  79. package/dist/config-B46rm9sc.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  87. package/dist/create-BDS7wc3y.d.ts +138 -0
  88. package/dist/create-BFfm17UA.d.ts +110 -0
  89. package/dist/create-BWRSXgOF.js +403 -0
  90. package/dist/create-C3b4B5eF.js +130 -0
  91. package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
  92. package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-DaXVdDhM.js +286 -0
  95. package/dist/delivery/index.d.ts +5 -0
  96. package/dist/delivery/index.js +5 -0
  97. package/dist/delivery-DCAgNyCn.js +499 -0
  98. package/dist/delivery-event-xX4obB8F.js +40 -0
  99. package/dist/{denied-text-DfRk15uw.d.ts → denied-text-D8jDHgsl.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.d.ts} +2 -2
  101. package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
  102. package/dist/device-BARQ8eYG.js +193 -0
  103. package/dist/diff-CxZo9pTq.js +37 -0
  104. package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
  105. package/dist/doctor-CxiwSfqH.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.js} +245 -50
  107. package/dist/drizzle/index.d.ts +5 -3
  108. package/dist/drizzle/index.js +2 -2
  109. package/dist/elysia/index.d.ts +16 -13
  110. package/dist/elysia/index.js +13 -12
  111. package/dist/env-DJZrPjRi.js +8 -0
  112. package/dist/errors-BDUwg2qC.js +27 -0
  113. package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
  114. package/dist/errors-BWXBMaKK.d.ts +11 -0
  115. package/dist/{errors-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  116. package/dist/errors-CWTY6uih.js +143 -0
  117. package/dist/evaluate-_R8QkWaf.js +1732 -0
  118. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.js} +145 -34
  120. package/dist/eve/index.d.ts +12 -16
  121. package/dist/eve/index.js +22 -28
  122. package/dist/event-time-CsegxXxB.js +23 -0
  123. package/dist/expiry-D4_YKRKD.js +52 -0
  124. package/dist/express/index.d.ts +13 -10
  125. package/dist/express/index.js +12 -11
  126. package/dist/fastify/index.d.ts +25 -22
  127. package/dist/fastify/index.js +13 -12
  128. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  129. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  130. package/dist/fields-D9tPVUUS.js +203 -0
  131. package/dist/files-C5ZI27eV.js +124 -0
  132. package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
  133. package/dist/flags-C3DktBDY.js +86 -0
  134. package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-D2lZt4Dd.js} +55 -52
  135. package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
  136. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.js} +5 -4
  138. package/dist/h3/index.d.ts +37 -0
  139. package/dist/h3/index.js +35 -0
  140. package/dist/headers-BIjfMaoC.js +8 -0
  141. package/dist/headers-CIbDTUTK.d.ts +7 -0
  142. package/dist/{helpers-C9YmyBIa.js → helpers-DTcZOzhF.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-BZIAYvon.js +315 -0
  146. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  147. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  148. package/dist/http-DXJ37RDA.js +46 -0
  149. package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
  150. package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
  151. package/dist/{import-BFIlhetD.js → import-DMmOG27O.js} +190 -53
  152. package/dist/index-BcHcPyIo.d.ts +110 -0
  153. package/dist/index-CaxrMD1A.d.ts +1 -0
  154. package/dist/index-Chrs5fQ-.d.ts +210 -0
  155. package/dist/index-CxGUswIC.d.ts +431 -0
  156. package/dist/index-D8EovfsP.d.ts +91 -0
  157. package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
  158. package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
  159. package/dist/index.d.ts +19 -15
  160. package/dist/index.js +31 -21
  161. package/dist/init-DeMYsnYJ.js +96 -0
  162. package/dist/init-GG6Jh8HD.js +95 -0
  163. package/dist/{instance-options-plkrsAog.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  164. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  165. package/dist/instant-BluqDvyS.js +19 -0
  166. package/dist/internals-Dk8A8fX3.js +17 -0
  167. package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
  168. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  169. package/dist/jwt/index.d.ts +18 -11
  170. package/dist/jwt/index.js +156 -135
  171. package/dist/{kernel-CB3LrIJM.js → kernel-5JatXyND.js} +52 -24
  172. package/dist/kysely/index.d.ts +5 -3
  173. package/dist/kysely/index.js +2 -2
  174. package/dist/load-BxEtwlBS.js +1 -0
  175. package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
  176. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  177. package/dist/login-Dfe5RlYk.js +68 -0
  178. package/dist/login-imhuwvn3.js +254 -0
  179. package/dist/manifest-C8IzW3Do.js +42 -0
  180. package/dist/manifest-CtKR3GXL.js +370 -0
  181. package/dist/manifest-json-CAGzls-C.js +9 -0
  182. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  183. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  184. package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
  185. package/dist/{map-error-BE27PYkE.js → map-error-TCAdw-eW.js} +3 -3
  186. package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
  187. package/dist/mcp/index.d.ts +22 -12
  188. package/dist/mcp/index.js +57 -39
  189. package/dist/{migrate-BwlB5-Wk.js → migrate-BShP7Vf4.js} +53 -14
  190. package/dist/nest/index.d.ts +12 -9
  191. package/dist/nest/index.js +15 -14
  192. package/dist/next/index.d.ts +18 -21
  193. package/dist/next/index.js +13 -11
  194. package/dist/next/plugin.d.ts +1 -1
  195. package/dist/next/plugin.js +2 -2
  196. package/dist/node/index.d.ts +10 -10
  197. package/dist/node/index.js +7 -9
  198. package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
  199. package/dist/openai/index.d.ts +9 -16
  200. package/dist/openai/index.js +17 -24
  201. package/dist/openapi/index.d.ts +3 -3
  202. package/dist/openapi/index.js +1 -1
  203. package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
  204. package/dist/{openapi-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
  205. package/dist/openapi-ahr8rHu3.js +138 -0
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-CxybZErY.d.ts +59 -0
  208. package/dist/orpc/index.d.ts +13 -10
  209. package/dist/orpc/index.js +20 -15
  210. package/dist/otel/index.d.ts +3 -2
  211. package/dist/otel/index.js +30 -7
  212. package/dist/output-Dyw8fyPF.js +88 -0
  213. package/dist/output-files-B3IZJksC.js +1 -0
  214. package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
  215. package/dist/{permission-keys-B26jeyUv.js → ownership-BatFgAA4.js} +1698 -869
  216. package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
  217. package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
  218. package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  219. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  220. package/dist/parse-request-D_tUXG6M.js +26 -0
  221. package/dist/paths-DXSHAMIa.js +42 -0
  222. package/dist/pdp/index.d.ts +7 -3
  223. package/dist/pdp/index.js +45 -26
  224. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  225. package/dist/peer-CRvC7Hg1.js +1 -0
  226. package/dist/permdock-B9JxkBwC.js +868 -0
  227. package/dist/permdock-D7eeLJER.d.ts +502 -0
  228. package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
  229. package/dist/permissions-B-wCP5ZC.js +30 -0
  230. package/dist/{permissions-CCJ6lmxB.js → permissions-CZKiUfFM.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  232. package/dist/policies-CO1oOymN.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
  235. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
  238. package/dist/postgrest-CW0IqC-U.js +566 -0
  239. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  240. package/dist/powersync-BHfuehf3.js +62 -0
  241. package/dist/powersync-CbzkqL_M.js +1 -0
  242. package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
  243. package/dist/preset/index.d.ts +146 -0
  244. package/dist/preset/index.js +1 -0
  245. package/dist/preset-DZdU0tne.js +1768 -0
  246. package/dist/principal-source-pHneukrx.js +103 -0
  247. package/dist/prisma/index.d.ts +6 -3
  248. package/dist/prisma/index.js +2 -2
  249. package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
  250. package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  251. package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
  252. package/dist/problem-types-CJ2325SZ.js +5 -0
  253. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  254. package/dist/{protected-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
  255. package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
  256. package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
  259. package/dist/pull-BgIfno6w.js +256 -0
  260. package/dist/pull-ByOks_Tg.js +1 -0
  261. package/dist/push-CmFVBOeI.js +116 -0
  262. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  263. package/dist/pushed-policy-DobP7AHI.js +238 -0
  264. package/dist/react/index.d.ts +8 -8
  265. package/dist/react/index.js +6 -6
  266. package/dist/react/provider-client.d.ts +1 -1
  267. package/dist/react/provider-client.js +1 -2
  268. package/dist/react-native/index.d.ts +24 -72
  269. package/dist/react-native/index.js +24 -22
  270. package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
  271. package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
  272. package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
  273. package/dist/renames-CGj7YwcQ.js +175 -0
  274. package/dist/{replay-COpmZUfx.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.js} +3 -3
  277. package/dist/request-schema-CMreVuFM.js +148 -0
  278. package/dist/resend/index.d.ts +126 -0
  279. package/dist/resend/index.js +379 -0
  280. package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
  281. package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
  282. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  283. package/dist/rls-BA8an5Ap.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
  287. package/dist/run-CNsApDpd.js +1 -0
  288. package/dist/run-DOfMtc9V.js +723 -0
  289. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  290. package/dist/run-ticket-sxFI6LAk.js +337 -0
  291. package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
  292. package/dist/{saas-DtaA4JuW.js → saas-FO-Q8oj0.js} +16 -14
  293. package/dist/scan-BOI5tJ-6.js +29 -0
  294. package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
  295. package/dist/schema-yLuBWWsh.js +130 -0
  296. package/dist/scim/index.d.ts +2 -2
  297. package/dist/scim/index.js +1 -2
  298. package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
  299. package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
  300. package/dist/server/index.d.ts +12 -143
  301. package/dist/server/index.js +12 -9
  302. package/dist/server-DqCT4CgZ.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-BEZSlMS_.js +957 -0
  309. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  310. package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
  311. package/dist/skills-CTYwkl44.js +51 -0
  312. package/dist/snapshot-CXUWfsNy.js +269 -0
  313. package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  314. package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  315. package/dist/solid/index.d.ts +11 -12
  316. package/dist/solid/index.js +7 -7
  317. package/dist/solid-start/index.d.ts +52 -0
  318. package/dist/solid-start/index.js +49 -0
  319. package/dist/{sources-Dljy06zL.d.ts → sources-BV9j0DeZ.d.ts} +7 -13
  320. package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
  321. package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
  322. package/dist/src-DLfUWFAI.js +1851 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  326. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
  330. package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
  331. package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  333. package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
  334. package/dist/style-DiKWnAvn.js +1 -0
  335. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  336. package/dist/subject-BGoM5o8B.js +17 -0
  337. package/dist/supabase/index.d.ts +23 -106
  338. package/dist/supabase/index.js +5 -4
  339. package/dist/supabase/middleware.d.ts +7 -6
  340. package/dist/supabase/middleware.js +13 -11
  341. package/dist/supabase-9pqI57pW.js +92 -0
  342. package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
  343. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  344. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
  345. package/dist/support-session-C6xJQYut.js +158 -0
  346. package/dist/svelte/Protected.svelte +4 -4
  347. package/dist/svelte/index.d.ts +7 -7
  348. package/dist/svelte/index.js +10 -10
  349. package/dist/svelte/runtime.d.ts +3 -3
  350. package/dist/svelte/runtime.js +3 -3
  351. package/dist/svelte/source.d.ts +7 -7
  352. package/dist/svelte/source.js +4 -4
  353. package/dist/sveltekit/index.d.ts +51 -0
  354. package/dist/sveltekit/index.js +27 -0
  355. package/dist/tanstack-start/index.d.ts +51 -0
  356. package/dist/tanstack-start/index.js +40 -0
  357. package/dist/target-Bw37TFNA.js +51 -0
  358. package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
  359. package/dist/terminal/index.d.ts +11 -9
  360. package/dist/terminal/index.js +23 -287
  361. package/dist/testing/index.d.ts +311 -38
  362. package/dist/testing/index.js +3475 -201
  363. package/dist/testing/saas/index.d.ts +9 -8
  364. package/dist/testing/saas/index.js +2 -2
  365. package/dist/testing/saas/permissions.d.ts +1 -1
  366. package/dist/testing/saas/permissions.js +1 -2
  367. package/dist/text-BMFRfBqc.js +8 -0
  368. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  369. package/dist/thenable-yD7SabqG.js +31 -0
  370. package/dist/time-DkWjdL98.js +71 -0
  371. package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
  372. package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
  373. package/dist/trpc/index.d.ts +12 -9
  374. package/dist/trpc/index.js +16 -14
  375. package/dist/{types-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
  376. package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
  377. package/dist/types-BjV-fqcA.d.ts +57 -0
  378. package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
  379. package/dist/types-C8-KNsFf.d.ts +107 -0
  380. package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  381. package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
  382. package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
  383. package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
  384. package/dist/types-DX0LaKTb.d.ts +157 -0
  385. package/dist/types-DiQjupG2.d.ts +332 -0
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/types-_sHy8BQf.d.ts +65 -0
  388. package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
  389. package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CHOtwL19.js +1 -0
  393. package/dist/usage-DHtE8j4E.js +32 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  396. package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
  397. package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
  398. package/dist/{verify-BztUB3GX.js → verify-DbCL9bnB.js} +645 -50
  399. package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
  400. package/dist/version-DXkYUISx.js +1 -0
  401. package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
  402. package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-D6lPdb4Z.d.ts} +65 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-BGUtGYoU.js +67 -0
  406. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  407. package/dist/watch-Cb-NcaUw.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.js} +44 -5
  409. package/dist/webmcp/index.d.ts +2 -2
  410. package/dist/webmcp/index.js +3 -3
  411. package/dist/where-scope-Dv-WTP-w.js +306 -0
  412. package/dist/who-can-D0QoYbEb.js +364 -0
  413. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  414. package/dist/wire-denial-C7PaVYEM.js +27 -0
  415. package/dist/workflow/index.d.ts +5 -0
  416. package/dist/workflow/index.js +223 -0
  417. package/dist/workflow-sdk/index.d.ts +56 -0
  418. package/dist/workflow-sdk/index.js +78 -0
  419. package/dist/{wrap-Cr93qqdP.d.ts → wrap-Bd1Tejur.d.ts} +2 -1
  420. package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
  421. package/package.json +136 -37
  422. package/schemas/access-event-v1.json +118 -0
  423. package/schemas/approval-request-v1.json +34 -1
  424. package/schemas/approval-signature-v1.json +94 -0
  425. package/schemas/automation-event-v1.json +113 -0
  426. package/schemas/capability-v1.json +84 -0
  427. package/schemas/catalog-event-v1.json +87 -0
  428. package/schemas/catalog-v1.json +123 -12
  429. package/schemas/cli-commands-v1.json +164 -0
  430. package/schemas/cli-result-v1.json +96 -0
  431. package/schemas/cloud-api-v1.json +5407 -0
  432. package/schemas/connector-v1.json +408 -0
  433. package/schemas/credential-event-v1.json +81 -0
  434. package/schemas/credential-v1.json +134 -0
  435. package/schemas/decision-event-v1.json +288 -0
  436. package/schemas/delivery-event-v1.json +117 -0
  437. package/schemas/directory-event-v1.json +85 -0
  438. package/schemas/evidence-export-v1.json +54 -0
  439. package/schemas/membership-event-v1.json +93 -0
  440. package/schemas/policy-v1.json +68 -0
  441. package/schemas/pushed-policy-v1.json +236 -0
  442. package/schemas/run-v1.json +162 -0
  443. package/schemas/snapshot-v1.json +138 -0
  444. package/schemas/supabase-claims-v1.json +4 -4
  445. package/schemas/supabase-manifest-v1.json +5 -1
  446. package/schemas/support-session-v1.json +111 -0
  447. package/skills/permdock/SKILL.md +16 -12
  448. package/skills/permdock-agents/SKILL.md +40 -23
  449. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  450. package/skills/permdock-agents/references/runtimes.md +22 -18
  451. package/skills/permdock-approvals/SKILL.md +29 -13
  452. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  453. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  454. package/skills/permdock-audit/SKILL.md +3 -3
  455. package/skills/permdock-credentials/SKILL.md +5 -5
  456. package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
  457. package/skills/permdock-data/SKILL.md +6 -6
  458. package/skills/permdock-data/references/queries-and-rls.md +9 -8
  459. package/skills/permdock-data/references/relationships.md +3 -3
  460. package/skills/permdock-tenancy/SKILL.md +20 -7
  461. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  462. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +5 -4
  463. package/skills/permdock-wire/SKILL.md +17 -11
  464. package/skills/permdock-wire/references/adapters.md +139 -51
  465. package/skills/permdock-wire/references/policy-options.md +5 -5
  466. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  467. package/dist/approvals-DZL76lKW.js +0 -240
  468. package/dist/arazzo-CD8d0WLb.js +0 -54
  469. package/dist/catalog-6yWAX6Ps.js +0 -2
  470. package/dist/catalog-WHG4kBq7.js +0 -48
  471. package/dist/cloud-C7bSDgX4.js +0 -50
  472. package/dist/cloud-PeBN3IEn.js +0 -118
  473. package/dist/collect-Bw2Jdq1q.js +0 -2
  474. package/dist/collect-CQx4hX4N.js +0 -83
  475. package/dist/commands-Cpip4ULx.js +0 -97
  476. package/dist/config-DLt6BvV7.js +0 -36
  477. package/dist/diff-Cnghh_Ip.js +0 -48
  478. package/dist/doctor-CuVJvhV_.js +0 -53
  479. package/dist/duration-xK2jGFVc.js +0 -25
  480. package/dist/errors-CWfoNg9N.js +0 -47
  481. package/dist/errors-DRnGZHzF.js +0 -30
  482. package/dist/expiry-BoBJ8Tvc.js +0 -7
  483. package/dist/fields-fwfXN01n.js +0 -1016
  484. package/dist/headers-BZSDieNT.js +0 -6
  485. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  486. package/dist/ids-DC4V4CFu.js +0 -18
  487. package/dist/index-DgM7w96K.d.ts +0 -6
  488. package/dist/index-Dz7didpC.d.ts +0 -201
  489. package/dist/load-B_shHrmd.js +0 -2
  490. package/dist/manifest-BngWKryL.js +0 -770
  491. package/dist/may-use-BOn_dR_w.js +0 -78
  492. package/dist/openapi-DcQ1Kg40.js +0 -164
  493. package/dist/ownership-BgnbOJFT.js +0 -851
  494. package/dist/permdock-L26udHSk.js +0 -3646
  495. package/dist/powersync-BFSbSElQ.js +0 -62
  496. package/dist/powersync-DCDgZgfZ.js +0 -2
  497. package/dist/rls-55DQTuf5.js +0 -250
  498. package/dist/run-DMcNW_8T.js +0 -174
  499. package/dist/server-ZYEHtNHS.js +0 -268
  500. package/dist/sink-BTtmfPnE.js +0 -141
  501. package/dist/sink-CPN4zLfs.d.ts +0 -104
  502. package/dist/skills-Dle4ZoLF.js +0 -56
  503. package/dist/snapshot-Dc9CHPME.js +0 -1078
  504. package/dist/src-Bb7no-hS.js +0 -639
  505. package/dist/subject-C6dLxqHU.js +0 -24
  506. package/dist/supabase-Dbqr141s.js +0 -83
  507. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  508. package/dist/thenable-QSmvt-vZ.js +0 -65
  509. package/dist/types-C0dee0Qf.d.ts +0 -197
  510. package/dist/types-DvupZE0w.d.ts +0 -9
  511. package/dist/usage-4G6t643F.js +0 -42
  512. package/dist/usage-iFLJ0-rr.js +0 -2
  513. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  514. package/dist/watch-C8TpsAl4.js +0 -2
@@ -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 };
@@ -16,7 +16,7 @@
16
16
  tenant,
17
17
  children,
18
18
  pending,
19
- fallback,
19
+ denied,
20
20
  approval,
21
21
  }: ProtectedProps = $props();
22
22
 
@@ -33,15 +33,15 @@
33
33
  const generation = tick;
34
34
  return viewFor(store, permission, data, scoped, generation);
35
35
  });
36
- const own = $derived({ pending, fallback, approval });
36
+ const own = $derived({ pending, denied, approval });
37
37
  </script>
38
38
 
39
39
  {#if view.slot === 'pending'}
40
40
  {@render slotContent('pending', own, defaults)?.()}
41
41
  {:else if view.slot === 'approval'}
42
42
  {@render slotContent('approval', own, defaults)?.(view.decision)}
43
- {:else if view.slot === 'fallback'}
44
- {@render slotContent('fallback', own, defaults)?.(view.decision)}
43
+ {:else if view.slot === 'denied'}
44
+ {@render slotContent('denied', own, defaults)?.(view.decision)}
45
45
  {:else}
46
46
  {@render children?.(view.decision)}
47
47
  {/if}
@@ -1,13 +1,13 @@
1
- import { n as requiredPlans } from "../problem-details-rIIo8B2C.js";
2
- import { i as describe } from "../describe-C3ldA9os.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 ClientPermDock, c as PermissionSet, d as SubjectView, f as TenantView, i as ApprovalState, l as PermissionState, o as ClientStatus, p as UseRolesOptions, r as ApprovalHandle, s as FilterResult } from "../store-9KO4BlkB.js";
6
- import { n as PermDockSvelteOptions, r as ProtectedProps, s as PermissionBoundaryProps, t as PermDockDefaults } from "../types-ByUo56un.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-Cxz_80g-.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 PermDockDefaults, type PermDockSvelteOptions, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SubjectView, type TenantView, type UseRolesOptions, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, 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-DECUnXAn.js";
2
- import { t as describe } from "../describe-Cgkp7eP0.js";
3
- import { t as approvalHeaders } from "../headers-BZSDieNT.js";
4
- import { l as slotContent } from "../views-CJsrBS1f.js";
1
+ import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
2
+ import { t as describe } from "../describe-BybMRY7A.js";
5
3
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
6
- import { n as getUi, t as getStore } from "../context-DieZVJXu.js";
7
- import { n as viewFor, t as scopedFor } from "../runtime-D_tMXnsq.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-BHXdSbw9.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";
9
9
  import "svelte/internal/disclose-version";
10
10
  import * as $ from "svelte/internal/client";
11
11
  import { onDestroy } from "svelte";
@@ -75,7 +75,7 @@ function Protected$1($$anchor, $$props) {
75
75
  });
76
76
  const own = $.derived(() => ({
77
77
  pending: $$props.pending,
78
- fallback: $$props.fallback,
78
+ denied: $$props.denied,
79
79
  approval: $$props.approval
80
80
  }));
81
81
  var fragment = $.comment();
@@ -95,7 +95,7 @@ function Protected$1($$anchor, $$props) {
95
95
  var consequent_2 = ($$anchor) => {
96
96
  var fragment_3 = $.comment();
97
97
  var node_3 = $.first_child(fragment_3);
98
- $.snippet(node_3, () => slotContent("fallback", $.get(own), defaults) ?? $.noop, () => $.get(view).decision);
98
+ $.snippet(node_3, () => slotContent("denied", $.get(own), defaults) ?? $.noop, () => $.get(view).decision);
99
99
  $.append($$anchor, fragment_3);
100
100
  };
101
101
  var alternate = ($$anchor) => {
@@ -107,7 +107,7 @@ function Protected$1($$anchor, $$props) {
107
107
  $.if(node, ($$render) => {
108
108
  if ($.get(view).slot === "pending") $$render(consequent);
109
109
  else if ($.get(view).slot === "approval") $$render(consequent_1, 1);
110
- else if ($.get(view).slot === "fallback") $$render(consequent_2, 2);
110
+ else if ($.get(view).slot === "denied") $$render(consequent_2, 2);
111
111
  else $$render(alternate, -1);
112
112
  });
113
113
  $.append($$anchor, fragment);
@@ -1,7 +1,7 @@
1
- import { n as DescribeMessages } from "../describe-C3ldA9os.js";
1
+ import { n as DescribeMessages } from "../describe-BZUsixiL.js";
2
2
  import { n as boundaryDigest, r as boundaryFallback, t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
3
- import { t as ClientStore } from "../store-9KO4BlkB.js";
4
- import { a as viewFor, i as scopedFor, o as slotContent, r as ProtectedProps, s as PermissionBoundaryProps, t as PermDockDefaults } from "../types-ByUo56un.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";
5
5
  //#region src/svelte/context.d.ts
6
6
  /** The provider's `defaults` and `messages`. */
7
7
  type PermDockUi = {
@@ -1,5 +1,5 @@
1
- import { l as slotContent } from "../views-CJsrBS1f.js";
2
1
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
3
- import { n as getUi, t as getStore } from "../context-DieZVJXu.js";
4
- import { n as viewFor, t as scopedFor } from "../runtime-D_tMXnsq.js";
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
5
  export { boundaryDigest, boundaryFallback, getStore, getUi, scopedFor, slotContent, viewFor };
@@ -1,13 +1,13 @@
1
- import { n as requiredPlans } from "../problem-details-rIIo8B2C.js";
2
- import { i as describe } from "../describe-C3ldA9os.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 ClientPermDock, c as PermissionSet, d as SubjectView, f as TenantView, i as ApprovalState, l as PermissionState, o as ClientStatus, p as UseRolesOptions, r as ApprovalHandle, s as FilterResult } from "../store-9KO4BlkB.js";
6
- import { n as PermDockSvelteOptions, r as ProtectedProps, s as PermissionBoundaryProps, t as PermDockDefaults } from "../types-ByUo56un.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-Cxz_80g-.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 PermDockDefaults, type PermDockSvelteOptions, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SubjectView, type TenantView, type UseRolesOptions, approval, approvalHeaders, assignable, assignablePermissions, describe, filtered, getDescribe, 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,7 +1,7 @@
1
- import { r as requiredPlans } from "../problem-details-DECUnXAn.js";
2
- import { t as describe } from "../describe-Cgkp7eP0.js";
3
- import { t as approvalHeaders } from "../headers-BZSDieNT.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-BHXdSbw9.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
@@ -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 };
@@ -1,10 +1,10 @@
1
- import { t as expiredAt } from "./expiry-BoBJ8Tvc.js";
2
- import { n as sameId } from "./ids-DC4V4CFu.js";
3
- import { c as rootScope, l as scopeChain, m as tenantOf, o as resolveScope, r as findScope, t as activeFor, u as scopeIdOf } from "./scopes-tvpa34ep.js";
4
- import { l as isFieldRelation } from "./resource-relations-D1Un3pcz.js";
1
+ import { o as sameId, t as expiredAt } from "./expiry-D4_YKRKD.js";
2
+ import { l as isFieldRelation } from "./resource-relations-D_jw0BFx.js";
3
+ import { o as epochSeconds } from "./time-DkWjdL98.js";
4
+ import { c as rootScope, l as scopeChain, m as tenantOf, o as resolveScope, r as findScope, t as activeFor, u as scopeIdOf } from "./scopes-CUPSjo9q.js";
5
5
  //#region src/core/tenancy.ts
6
6
  function nowSeconds(now) {
7
- return now ?? Date.now() / 1e3;
7
+ return now ?? epochSeconds();
8
8
  }
9
9
  function isMembershipExpired(membership, now) {
10
10
  return expiredAt(membership, now ?? nowSeconds());
@@ -1,8 +1,9 @@
1
- import { E as Policy, Or as Principal, ir as Decision, j as PolicyVocabulary, jt as PermDock, kr as Subject } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { f as ApprovalStore } from "../types-Br9IXUBG.js";
4
- import { a as ProblemDetails, t as ApprovalHint } from "../errors-OD_4c__H.js";
5
- import { t as InstanceOptions } from "../instance-options-plkrsAog.js";
1
+ import { Nn as Decision, Rt as Instant, T as Policy, ir as Subject, j as PolicyVocabulary, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { r as PermDock } from "../permdock-D7eeLJER.js";
4
+ import { m as ApprovalStore } from "../types-CCpc2Dcv.js";
5
+ import { a as ProblemDetails, t as ApprovalHint } from "../errors-C2PXIv4c.js";
6
+ import { t as InstanceOptions } from "../instance-options-Omfd793B.js";
6
7
  //#region src/terminal/types.d.ts
7
8
  type TokenSourceName = "device" | "keychain" | "env" | "ci-oidc";
8
9
  type TokenSource = TokenSourceName | {
@@ -55,7 +56,8 @@ type TerminalRuntime = {
55
56
  readonly env?: Readonly<Record<string, string | undefined>>;
56
57
  readonly stdoutIsTTY?: boolean;
57
58
  readonly platform?: string;
58
- readonly now?: () => number;
59
+ /** The clock; defaults to the system clock. */
60
+ readonly now?: () => Instant;
59
61
  readonly write?: (text: string) => void;
60
62
  readonly exit?: (code: number) => never;
61
63
  readonly fetch?: typeof fetch;
@@ -130,8 +132,8 @@ type ProtectContext<T = unknown, V extends PolicyVocabulary = PolicyVocabulary>
130
132
  }>;
131
133
  };
132
134
  type TerminalPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
133
- readonly permdock: (options?: PermDockResolveOptions) => Promise<PermDock<V>>;
134
- readonly protect: <TArgs extends readonly unknown[], TData = unknown>(permission: Permission, load?: (...args: TArgs) => TData | Promise<TData>) => (action: (context: ProtectContext<TData, V>, ...args: TArgs) => unknown) => (...args: TArgs) => Promise<unknown>;
135
+ readonly getPermDock: (options?: PermDockResolveOptions) => Promise<PermDock<V>>;
136
+ readonly protect: <TArgs extends readonly unknown[], TData = unknown>(permission: Permission, data?: (...args: TArgs) => TData | Promise<TData>) => (action: (context: ProtectContext<TData, V>, ...args: TArgs) => unknown) => (...args: TArgs) => Promise<unknown>;
135
137
  readonly filterCommands: (entries: readonly CommandEntry[], options?: FilterCommandsOptions) => readonly CommandEntry[];
136
138
  readonly format: (decision: Decision, options?: FormatOptions) => string;
137
139
  readonly exitCode: (decision: Decision) => number;
@@ -139,7 +141,7 @@ type TerminalPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
139
141
  };
140
142
  //#endregion
141
143
  //#region src/terminal/create.d.ts
142
- export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: TerminalPermDockOptions<TUser>): TerminalPermDock<V>;
144
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: TerminalPermDockOptions<TUser>): TerminalPermDock<V>;
143
145
  //#endregion
144
146
  //#region src/terminal/exit.d.ts
145
147
  export declare const EX_OK = 0;