permdock 0.1.0 → 0.2.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 (349) hide show
  1. package/README.md +106 -47
  2. package/dist/a2a/index.d.ts +7 -16
  3. package/dist/a2a/index.js +59 -98
  4. package/dist/adapter-context-mlWsVGGg.js +23 -0
  5. package/dist/ai-sdk/index.d.ts +37 -16
  6. package/dist/ai-sdk/index.js +30 -13
  7. package/dist/approvals/index.d.ts +3 -3
  8. package/dist/approvals/index.js +5 -4
  9. package/dist/{approvals-DaxY-Bdg.js → approvals-DbYAuNkG.js} +17 -11
  10. package/dist/approvers-DT4AVyIg.js +52 -0
  11. package/dist/{arazzo-CTeVuXr5.js → arazzo-BAgw9ap6.js} +2 -2
  12. package/dist/{arazzo-aoTkqYsJ.js → arazzo-cmvX2jDe.js} +2 -2
  13. package/dist/authzen/index.d.ts +4 -13
  14. package/dist/authzen/index.js +16 -50
  15. package/dist/better-auth/index.d.ts +20 -3
  16. package/dist/better-auth/index.js +27 -7
  17. package/dist/better-supabase/index.d.ts +206 -0
  18. package/dist/better-supabase/index.js +620 -0
  19. package/dist/bind-CVy3Espv.d.ts +25 -0
  20. package/dist/bind-VnYn2HKq.js +97 -0
  21. package/dist/boundary-BM8a_P6E.js +13 -0
  22. package/dist/boundary-BmHxVH1J.d.ts +15 -0
  23. package/dist/canonical-json-DemiK4Vp.js +26 -0
  24. package/dist/{capability-B68OFnZx.js → capability-4qPdO9gk.js} +7 -5
  25. package/dist/{capability-BDG_nkxt.d.ts → capability-Dq43tT1u.d.ts} +2 -2
  26. package/dist/catalog/index.d.ts +1 -1
  27. package/dist/catalog/index.js +1 -1
  28. package/dist/catalog-BjZSovXQ.js +2 -0
  29. package/dist/{catalog-doc-BSo_Q_-6.js → catalog-doc-Dsc9y7sd.js} +23 -12
  30. package/dist/{catalog-B0E6bggc.js → catalog-h2tlKFkq.js} +2 -2
  31. package/dist/{catalog-H-vFGwWK.js → catalog-z8q6bi_r.js} +4 -4
  32. package/dist/claude-agent/index.d.ts +5 -14
  33. package/dist/claude-agent/index.js +4 -10
  34. package/dist/clerk/index.d.ts +12 -3
  35. package/dist/clerk/index.js +26 -5
  36. package/dist/cli/bin.js +1 -1
  37. package/dist/cli/index.d.ts +3 -3
  38. package/dist/cli/index.js +2 -2
  39. package/dist/clients-C7zLFuWT.d.ts +12 -0
  40. package/dist/clients-DjU5ABMy.js +23 -0
  41. package/dist/cloud/index.d.ts +4 -5
  42. package/dist/cloud/index.js +20 -6
  43. package/dist/{cloud-BNQTrmrr.js → cloud-BGhHS-lY.js} +2 -2
  44. package/dist/{cloud-Cuxr6Czw.js → cloud-Bo3e9Ak3.js} +7 -6
  45. package/dist/{collect-O-tOtbnk.js → collect-DDDv_ESs.js} +194 -42
  46. package/dist/collect-DLlujdHC.js +83 -0
  47. package/dist/collect-rG2IQ3t0.js +2 -0
  48. package/dist/{commands-BMh_Etm2.js → commands-DWOrSQic.js} +16 -12
  49. package/dist/compile/index.d.ts +3 -0
  50. package/dist/compile/index.js +2 -0
  51. package/dist/{compile-D22iwvuV.js → compile-Ba4blROR.js} +85 -30
  52. package/dist/compile-CNnl6uIt.d.ts +94 -0
  53. package/dist/config-BJiM-xAm.js +157 -0
  54. package/dist/config-Bn00Z3ks.js +36 -0
  55. package/dist/config-report-Dw_JcUqT.js +44 -0
  56. package/dist/{connection-JvqwHODC.js → connection-CU8MQxRi.js} +1 -1
  57. package/dist/{context-CKEAabd7.js → context-Ttp0ekMT.js} +36 -27
  58. package/dist/convex/index.d.ts +9 -4
  59. package/dist/convex/index.js +14 -4
  60. package/dist/create-BWyx3jua.d.ts +245 -0
  61. package/dist/create-CPhDL6qx.js +253 -0
  62. package/dist/{credential-B_rkUNlY.js → credential-8P81ff4u.js} +26 -46
  63. package/dist/delegation-D8pUEuce.js +103 -0
  64. package/dist/{describe-Bt1YD5uS.js → describe-B_gVZEVi.js} +10 -15
  65. package/dist/{describe-DernyItf.d.ts → describe-PdoqESvg.d.ts} +9 -10
  66. package/dist/{diff-x5Il8LVa.js → diff-B8Tunc3o.js} +44 -11
  67. package/dist/{diff-BUzf5Poi.js → diff-CzqLxZ77.js} +2 -2
  68. package/dist/doctor-WpvG6p4k.js +1194 -0
  69. package/dist/doctor-collect-ByfYlNv1.js +664 -0
  70. package/dist/{doctor-Bqo6FwUa.js → doctor-rOr-4ZfS.js} +2 -2
  71. package/dist/drizzle/index.d.ts +4 -3
  72. package/dist/drizzle/index.js +3 -3
  73. package/dist/elysia/index.d.ts +6 -28
  74. package/dist/elysia/index.js +16 -60
  75. package/dist/{errors-DSMnAVNa.js → errors-CWfoNg9N.js} +8 -4
  76. package/dist/{errors-Iy71s7Oj.js → errors-Cz5zn0mW.js} +17 -71
  77. package/dist/{errors-DbZ1YOnb.d.ts → errors-DAqevpNk.d.ts} +8 -21
  78. package/dist/{errors-m3u9TmDu.js → errors-DRnGZHzF.js} +4 -1
  79. package/dist/evaluation-items-CfCCejQd.js +40 -0
  80. package/dist/{evaluations-DsAU9ppl.js → evaluations-tz6D9A2G.js} +28 -46
  81. package/dist/eve/index.d.ts +6 -15
  82. package/dist/eve/index.js +7 -12
  83. package/dist/expiry-BoBJ8Tvc.js +7 -0
  84. package/dist/express/index.d.ts +6 -29
  85. package/dist/express/index.js +28 -58
  86. package/dist/fastify/index.d.ts +6 -29
  87. package/dist/fastify/index.js +16 -65
  88. package/dist/fields-BMl1RxoX.js +26 -0
  89. package/dist/{files-B_wAGYmt.js → files-DWUN9PzI.js} +5 -1
  90. package/dist/{fixtures-Cvaw0gDG.js → fixtures-ht28Cplr.js} +5 -2
  91. package/dist/{freeze-y1_jQL4v.js → freeze-CrU8nQeX.js} +31 -2
  92. package/dist/{from-snapshot-BMGnhmgv.js → from-snapshot-C3sHpZNS.js} +65 -48
  93. package/dist/{grantee-Bv04_Vzf.js → grantee-Cv5Sogfv.js} +88 -7
  94. package/dist/graph-sql-B-dsAT6j.d.ts +29 -0
  95. package/dist/{headers-B5RRv3Xm.js → headers-BZSDieNT.js} +1 -1
  96. package/dist/{headers-C8SHQccD.d.ts → headers-Cf-zWvsO.d.ts} +1 -1
  97. package/dist/helpers-H_KARDVC.js +421 -0
  98. package/dist/hono/index.d.ts +6 -28
  99. package/dist/hono/index.js +11 -43
  100. package/dist/{hosted-BwKQ1BTA.js → hosted-DJQw46hn.js} +6 -5
  101. package/dist/{http-GgVApX1k.js → http-BIhmLfCc.js} +4 -20
  102. package/dist/http-SO7qGttf.js +44 -0
  103. package/dist/ids-DC4V4CFu.js +18 -0
  104. package/dist/{index-LF_hS-yn.d.ts → index-A0YNL8jZ.d.ts} +1 -1
  105. package/dist/index-CtE07CBF.d.ts +6 -0
  106. package/dist/{index-xIxJLwOQ.d.ts → index-D3vbkoSI.d.ts} +75 -7
  107. package/dist/{index-CltcQ4Bf.d.ts → index-D6_cSa1z.d.ts} +68 -5
  108. package/dist/index.d.ts +14 -9
  109. package/dist/index.js +22 -17
  110. package/dist/instance-options-BK_rNOSC.d.ts +11 -0
  111. package/dist/instance-options-Dhhcnm3y.js +22 -0
  112. package/dist/{parse-DPfIvFMU.js → json-schema-BsAflUGW.js} +28 -57
  113. package/dist/jwt/index.d.ts +10 -6
  114. package/dist/jwt/index.js +32 -13
  115. package/dist/kernel-GSQnMz3O.js +208 -0
  116. package/dist/kysely/index.d.ts +4 -3
  117. package/dist/kysely/index.js +3 -3
  118. package/dist/live-options-H2eG8dfJ.js +60 -0
  119. package/dist/{load-BZ24CpZP.js → load-DhWEB9P1.js} +16 -10
  120. package/dist/load-DwJUafYN.js +2 -0
  121. package/dist/manifest-iaoBXHKc.js +783 -0
  122. package/dist/manifest-uDS9y5de.d.ts +206 -0
  123. package/dist/{map-DowSO96j.js → map-AcxK9o_D.js} +4 -15
  124. package/dist/{map-claims-B_6I1Rn-.js → map-claims-Z4QZOiFF.js} +13 -4
  125. package/dist/map-error-pgUWNNtG.js +23 -0
  126. package/dist/may-use-DndQ5tQ-.js +77 -0
  127. package/dist/mcp/index.d.ts +54 -22
  128. package/dist/mcp/index.js +218 -178
  129. package/dist/nest/index.d.ts +26 -31
  130. package/dist/nest/index.js +75 -84
  131. package/dist/next/client.d.ts +7 -8
  132. package/dist/next/client.js +11 -9
  133. package/dist/next/index.d.ts +30 -47
  134. package/dist/next/index.js +45 -60
  135. package/dist/next/plugin.d.ts +1 -1
  136. package/dist/next/plugin.js +32 -1
  137. package/dist/node/index.d.ts +9 -28
  138. package/dist/node/index.js +11 -43
  139. package/dist/openai/index.d.ts +6 -15
  140. package/dist/openai/index.js +7 -20
  141. package/dist/openapi/index.d.ts +87 -4
  142. package/dist/openapi/index.js +3 -3
  143. package/dist/{openapi-CwePaF7C.js → openapi-Bbg4wGVL.js} +3 -3
  144. package/dist/{openapi-DcqM8nU7.js → openapi-BqRBvAng.js} +237 -5
  145. package/dist/{openapi-DWD0Uc_4.js → openapi-CqqEbHsL.js} +5 -5
  146. package/dist/{openapi-import-BWRUNNeW.js → openapi-import-cmwetbzw.js} +1 -1
  147. package/dist/{openapi-schema-D8j_T9tO.js → openapi-schema--ARjyfQr.js} +2 -2
  148. package/dist/orpc/index.d.ts +15 -28
  149. package/dist/orpc/index.js +74 -117
  150. package/dist/otel/index.d.ts +2 -2
  151. package/dist/parse-BuyjxhZV.js +53 -0
  152. package/dist/parse-local-manifest-BkGQNzAh.d.ts +10 -0
  153. package/dist/parse-local-manifest-BrMozJCo.js +36 -0
  154. package/dist/pdp/index.d.ts +2 -2
  155. package/dist/pdp/index.js +14 -127
  156. package/dist/{permdock-yoZ7EjxX.js → permdock-CzqXjCpU.js} +641 -126
  157. package/dist/{permissions-B8vCg_bI.d.ts → permissions-CDgvKG5L.d.ts} +2 -2
  158. package/dist/{permissions-CofRqesP.js → permissions-CpZrivYv.js} +3 -3
  159. package/dist/{permissions-DC7GROPA.js → permissions-DVoF6dMt.js} +77 -15
  160. package/dist/{permissions-B4apnahQ.d.ts → permissions-DttnqqxC.d.ts} +34 -5
  161. package/dist/{pins-CqE1jZuF.js → pins-8ILTftC9.js} +2 -2
  162. package/dist/{policy-CInmNGkM.d.ts → policy-CFZAr_Al.d.ts} +330 -37
  163. package/dist/{policy-Cq2fB8Q5.d.ts → policy-D8UFyERw.d.ts} +2 -2
  164. package/dist/{policy-ANp36PnI.js → policy-xyWg7QdR.js} +173 -22
  165. package/dist/powersync-A8x_Yyvh.js +2 -0
  166. package/dist/powersync-C7kLglqX.js +540 -0
  167. package/dist/powersync-yW1UUFzp.js +62 -0
  168. package/dist/prisma/index.d.ts +3 -2
  169. package/dist/prisma/index.js +45 -20
  170. package/dist/{problem-Cgp9-KZA.js → problem-B43ztKIm.js} +74 -109
  171. package/dist/problem-details-CkL50EEf.d.ts +7 -0
  172. package/dist/problem-details-_AMOYz-w.js +144 -0
  173. package/dist/{protected-BuPAycJT.d.ts → protected-CNsMzrVd.d.ts} +5 -4
  174. package/dist/protected-Cs6kTaHo.js +100 -0
  175. package/dist/protected-bZs6rbT1.d.ts +40 -0
  176. package/dist/{provider-wTAUda2v.d.ts → provider-Cjr62YMV.d.ts} +1 -1
  177. package/dist/provider-DLzpb2Xz.js +52 -0
  178. package/dist/provider-store-DNyC1y48.js +43 -0
  179. package/dist/react/index.d.ts +7 -5
  180. package/dist/react/index.js +5 -4
  181. package/dist/react/provider-client.d.ts +1 -1
  182. package/dist/react/provider-client.js +1 -1
  183. package/dist/react-native/index.d.ts +166 -10
  184. package/dist/react-native/index.js +607 -85
  185. package/dist/{refs-ChLSxbST.js → refs-KYb4ntaz.js} +4 -3
  186. package/dist/{relations-r4soIFZB.js → relations-cjOL01hZ.js} +110 -31
  187. package/dist/replay-BsOyTrdV.js +28 -0
  188. package/dist/replay-sqBGMnNs.d.ts +5 -0
  189. package/dist/resource-ref-CaS9yVPi.js +20 -0
  190. package/dist/revocations-Bhr0aMIC.js +27 -0
  191. package/dist/rls-BMNydpHk.js +2521 -0
  192. package/dist/{rls-BOFU3chG.js → rls-CEvs64Kj.js} +8 -3
  193. package/dist/rls-fields-BMasREhR.js +3502 -0
  194. package/dist/{rls-graph-DxQ39PJj.js → rls-graph-pc9fuXYm.js} +100 -36
  195. package/dist/{rls-import-CXV6LBlS.js → rls-import-D8F7j35Q.js} +7 -6
  196. package/dist/{rls-migrate-DrFPbf8p.js → rls-migrate-7wikfrVI.js} +6 -5
  197. package/dist/rls-ownership-B5Lkq62W.js +843 -0
  198. package/dist/rls-shared-aOQ4hGTO.js +493 -0
  199. package/dist/rls-verify-D8B7dOTh.js +745 -0
  200. package/dist/{row-check-BajTgQZ-.d.ts → row-check-Dt35czLy.d.ts} +12 -15
  201. package/dist/rpc-DOK54_CS.js +89 -0
  202. package/dist/{run-CJ6UvS3a.js → run-YXCJDNYk.js} +31 -12
  203. package/dist/runtime-CB8gQFvS.js +11 -0
  204. package/dist/{saas-BRrZzJkM.js → saas-Bj_FFkjN.js} +17 -7
  205. package/dist/{schema-P8yoma__.js → schema-D3MnDMxa.js} +8 -4
  206. package/dist/scim/index.d.ts +1 -1
  207. package/dist/scim/index.js +1 -1
  208. package/dist/{scim-9NFa0XVZ.js → scim-BFGBBAqR.js} +1 -1
  209. package/dist/{scopes-cKVp_WTw.js → scopes-CVdPrWN-.js} +35 -8
  210. package/dist/server/index.d.ts +22 -11
  211. package/dist/server/index.js +11 -8
  212. package/dist/{credentials-BgRX3WEg.js → server-DlZ28Oz5.js} +1 -1
  213. package/dist/shared-DRu8VFVM.js +123 -0
  214. package/dist/{sink-Cfr9-7YC.d.ts → sink-Gs6TTVa-.d.ts} +1 -1
  215. package/dist/skills-Biq5uup3.js +192 -0
  216. package/dist/{skills-C_lpV4Jx.js → skills-JaymNCdK.js} +10 -4
  217. package/dist/{snapshot-DE8dE_hz.js → snapshot-Enxd0n-s.js} +138 -214
  218. package/dist/snapshot-cache-D6jLelln.js +44 -0
  219. package/dist/snapshot-cache-DwQH8ufx.d.ts +45 -0
  220. package/dist/solid/index.d.ts +39 -9
  221. package/dist/solid/index.js +76 -85
  222. package/dist/sources-B0UvrJ21.js +534 -0
  223. package/dist/sources-BcJgw0lt.d.ts +192 -0
  224. package/dist/{sql-Bll1d7y0.js → sql-xdg5f4Fi.js} +6 -1
  225. package/dist/{src-CTNT-PBW.js → src-CSbUiozF.js} +149 -11
  226. package/dist/ssf/index.d.ts +3 -2
  227. package/dist/ssf/index.js +3 -29
  228. package/dist/store-DMAWwAJV.js +371 -0
  229. package/dist/{store-Bq90395i.d.ts → store-D_pjn91-.d.ts} +13 -4
  230. package/dist/store-options-yO0V6gRn.js +716 -0
  231. package/dist/{stores-CkG2HrSg.js → stores-4_sqiOA1.js} +10 -63
  232. package/dist/{stores-CvOnu_2T.d.ts → stores-DVR5NHLE.d.ts} +20 -9
  233. package/dist/{stream-Q_xlB6Ko.js → stream-DDpvynSB.js} +16 -2
  234. package/dist/{stream-BhMfZOwr.d.ts → stream-DlvG2hs-.d.ts} +2 -2
  235. package/dist/subject-settings-BwBmCdTR.js +128 -0
  236. package/dist/supabase/index.d.ts +122 -6
  237. package/dist/supabase/index.js +4 -3
  238. package/dist/supabase/middleware.d.ts +32 -27
  239. package/dist/supabase/middleware.js +56 -22
  240. package/dist/{supabase-D8UlBA7Z.js → supabase-CwafwxxF.js} +3 -3
  241. package/dist/{supabase-DTxGtYdi.js → supabase-DTBaC20O.js} +345 -367
  242. package/dist/supabase-config-Bs44dare.js +472 -0
  243. package/dist/{supabase-hook-D_OqGb_V.js → supabase-hook-BuxLQLpU.js} +994 -708
  244. package/dist/supabase-hook-D5qVd_D8.js +2 -0
  245. package/dist/supautils-DYZnzRWV.js +91 -0
  246. package/dist/svelte/PermissionBoundary.svelte +37 -0
  247. package/dist/svelte/Protected.svelte +8 -2
  248. package/dist/svelte/index.d.ts +9 -6
  249. package/dist/svelte/index.js +61 -7
  250. package/dist/svelte/runtime.d.ts +4 -3
  251. package/dist/svelte/runtime.js +4 -3
  252. package/dist/svelte/source.d.ts +9 -6
  253. package/dist/svelte/source.js +7 -4
  254. package/dist/terminal/index.d.ts +6 -14
  255. package/dist/terminal/index.js +44 -32
  256. package/dist/testing/index.d.ts +105 -16
  257. package/dist/testing/index.js +504 -40
  258. package/dist/testing/saas/index.d.ts +4 -4
  259. package/dist/testing/saas/index.js +2 -2
  260. package/dist/testing/saas/permissions.d.ts +1 -1
  261. package/dist/testing/saas/permissions.js +1 -1
  262. package/dist/token-CIWxJOCh.js +50 -0
  263. package/dist/trpc/index.d.ts +7 -26
  264. package/dist/trpc/index.js +17 -100
  265. package/dist/types-9AWO9EGt.d.ts +197 -0
  266. package/dist/{types-D6Z6-rKJ.d.ts → types-BPxgszlT.d.ts} +260 -22
  267. package/dist/{types-BvBk1wgn.d.ts → types-BVyImy5I.d.ts} +5 -3
  268. package/dist/{types-CxquUByI.d.ts → types-Bvc4oWT6.d.ts} +1 -1
  269. package/dist/types-C3s9xVJG.d.ts +48 -0
  270. package/dist/{types-BBK-exvJ.d.ts → types-Dnemwd77.d.ts} +7 -1
  271. package/dist/types-kxznc7cn.d.ts +52 -0
  272. package/dist/{types-B8w5PFtS.d.ts → types-vKyAMtcX.d.ts} +17 -1
  273. package/dist/{types-B9dmiiab.d.ts → types-vNSDF7Dq.d.ts} +1 -1
  274. package/dist/{sources-DOpW5Ila.d.ts → types-yF5LmQVD.d.ts} +86 -127
  275. package/dist/unplugin/index.d.ts +1 -1
  276. package/dist/unplugin/index.js +10 -9
  277. package/dist/{usage-1ozMubLY.js → usage-D07N9QJ3.js} +2 -2
  278. package/dist/usage-D82l1CwK.js +2 -0
  279. package/dist/{usage-CUnK6Ou9.js → usage-DG1oeCca.js} +225 -62
  280. package/dist/validation-error-CnjZ4t92.js +33 -0
  281. package/dist/validation-error-CtF23SrC.d.ts +26 -0
  282. package/dist/{validity-D0uRmJKJ.js → validity-uOp8UpYn.js} +57 -36
  283. package/dist/{verifier-B90agnhl.js → verifier-BxBo6I44.js} +10 -5
  284. package/dist/version-BvacVTZR.js +17 -0
  285. package/dist/views-Soe7bGSC.js +95 -0
  286. package/dist/{vocabulary-Dk0fs-Jk.d.ts → vocabulary-DA8a8zif.d.ts} +1 -1
  287. package/dist/vue/index.d.ts +35 -13
  288. package/dist/vue/index.js +86 -93
  289. package/dist/watch-Etoa_Mvr.js +2 -0
  290. package/dist/watch-UihESpsJ.js +128 -0
  291. package/dist/webmcp/index.d.ts +2 -2
  292. package/dist/webmcp/index.js +7 -13
  293. package/package.json +62 -36
  294. package/schemas/approval-request-v1.json +175 -0
  295. package/schemas/catalog-v1.json +29 -1
  296. package/schemas/supabase-claims-v1.json +6 -1
  297. package/schemas/supabase-manifest-v1.json +150 -6
  298. package/skills/permdock/SKILL.md +7 -7
  299. package/skills/permdock-agents/SKILL.md +5 -5
  300. package/skills/permdock-agents/references/runtimes.md +12 -10
  301. package/skills/permdock-approvals/SKILL.md +4 -4
  302. package/skills/permdock-approvals/references/stores-and-resume.md +15 -4
  303. package/skills/permdock-audit/SKILL.md +3 -3
  304. package/skills/permdock-credentials/SKILL.md +4 -4
  305. package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
  306. package/skills/permdock-data/SKILL.md +4 -4
  307. package/skills/permdock-data/references/queries-and-rls.md +14 -6
  308. package/skills/permdock-data/references/relationships.md +5 -3
  309. package/skills/permdock-tenancy/SKILL.md +9 -6
  310. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +14 -8
  311. package/skills/permdock-wire/SKILL.md +4 -4
  312. package/skills/permdock-wire/references/adapters.md +42 -30
  313. package/skills/permdock-wire/references/policy-options.md +5 -3
  314. package/dist/approvers-aH0PJkmf.js +0 -20
  315. package/dist/catalog-idsHc0vo.js +0 -2
  316. package/dist/collect-B7_TIfmg.js +0 -49
  317. package/dist/collect-fRPAQIWb.js +0 -2
  318. package/dist/compile-CQbvyIBr.d.ts +0 -30
  319. package/dist/config-BPYmjTOp.js +0 -26
  320. package/dist/context-gtAwAILx.js +0 -6
  321. package/dist/create-BKF3dgFk.d.ts +0 -162
  322. package/dist/create-CSkhDU9T.js +0 -222
  323. package/dist/doctor-BGle8Gqi.js +0 -1314
  324. package/dist/helpers-DnSOrhB9.js +0 -682
  325. package/dist/index-fG6NSXlc.d.ts +0 -9
  326. package/dist/kernel-YOGCWNLf.js +0 -211
  327. package/dist/load-QOOm1z70.js +0 -2
  328. package/dist/manifest-DDQbC6K0.d.ts +0 -118
  329. package/dist/map-error-RJ3ZsUyA.js +0 -16
  330. package/dist/may-use-CnFEjVEp.js +0 -37
  331. package/dist/pg-4GJWDUxG.js +0 -953
  332. package/dist/plugin-4gr7IxFJ.js +0 -65
  333. package/dist/protected-B4K3BKoX.js +0 -138
  334. package/dist/protected-wY7nXhY9.d.ts +0 -23
  335. package/dist/provider-_wx46HpB.js +0 -48
  336. package/dist/rls-CJVja9Ww.js +0 -2119
  337. package/dist/rls-helpers-BxRuif0l.js +0 -1346
  338. package/dist/runtime-DP9ttFh1.js +0 -27
  339. package/dist/skills-Dx3QLnMY.js +0 -110
  340. package/dist/source-DoBBYJi2.js +0 -6
  341. package/dist/sources-DVHM3Mwq.js +0 -284
  342. package/dist/store-C6hFW6ta.js +0 -508
  343. package/dist/subject-settings-xt7V845g.js +0 -82
  344. package/dist/supabase-hook-DW-xP4hU.js +0 -2
  345. package/dist/types-DbWdEfcm.d.ts +0 -87
  346. package/dist/types-bva3i4Gf.d.ts +0 -98
  347. package/dist/types-i4BAOvdb.d.ts +0 -97
  348. package/dist/usage-PyEor6GA.js +0 -2
  349. package/dist/version-CnSh33Fj.js +0 -16
@@ -1,9 +1,11 @@
1
- import { Et as TokenVerifier, Mn as Decision, gt as Snapshot, pr as Membership } from "../policy-CInmNGkM.js";
2
- import { d as Permission } from "../permissions-B4apnahQ.js";
3
- import { r as Role } from "../vocabulary-Dk0fs-Jk.js";
4
- import { a as requiredPlans, i as describe } from "../describe-DernyItf.js";
5
- import { t as approvalHeaders } from "../headers-C8SHQccD.js";
6
- import { a as FilterResult, c as PermissionState, d as TenantView, f as UseRolesOptions, i as ClientStatus, n as ApprovalState, r as ClientPermDock, s as PermissionSet, t as ApprovalHandle, u as SubjectView } from "../types-DbWdEfcm.js";
1
+ import { Ft as TokenVerifier, Mr as Membership, Tt as Snapshot, Yn as Decision } from "../policy-CFZAr_Al.js";
2
+ import { f as Permission } from "../permissions-DttnqqxC.js";
3
+ import { r as Role } from "../vocabulary-DA8a8zif.js";
4
+ import { n as requiredPlans } from "../problem-details-CkL50EEf.js";
5
+ import { i as describe } from "../describe-PdoqESvg.js";
6
+ import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
7
+ import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
8
+ 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-kxznc7cn.js";
7
9
  import { Accessor, Accessor as Accessor$1, JSX } from "solid-js";
8
10
  //#region src/solid/types.d.ts
9
11
  /** Structural `JSX.Element`: text, a DOM node or a list of children. */
@@ -17,15 +19,30 @@ type PermDockProviderProps = {
17
19
  * the store `pending` until it settles.
18
20
  */
19
21
  readonly snapshot: Snapshot | string | Accessor$1<Snapshot | string | undefined> | PromiseLike<Snapshot | string>;
20
- readonly endpoint?: string;
22
+ /**
23
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
24
+ * `false` never calls one: such a check is denied with reason `server-only`.
25
+ */
26
+ readonly endpoint?: string | false;
27
+ /** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
28
+ readonly snapshotUrl?: string;
21
29
  readonly approvals?: string;
30
+ /** A change switches the active tenant (`refresh({ tenant })`). */
22
31
  readonly tenant?: string;
32
+ /** `headers`, `fetch` and `verifier` are read on every request, so a rotated token applies without a new store. */
23
33
  readonly fetch?: typeof fetch;
24
34
  readonly headers?: Readonly<Record<string, string>>;
25
35
  readonly maxAge?: number;
26
36
  readonly verifier?: TokenVerifier;
27
37
  readonly children: unknown;
28
38
  };
39
+ type PermissionBoundaryProps = {
40
+ /** Rendered in place of the children when one throws `PermDockDeniedError`. */
41
+ readonly denied?: SolidChild | ((state: PermissionBoundaryState) => SolidChild);
42
+ /** Rendered for `PermDockApprovalRequiredError`; defaults to `denied`. */
43
+ readonly approval?: SolidChild | ((state: PermissionBoundaryState) => SolidChild);
44
+ readonly children: unknown;
45
+ };
29
46
  type ProtectedProps = {
30
47
  readonly permission: Permission;
31
48
  readonly data?: unknown;
@@ -50,14 +67,27 @@ export declare function useRoles(options?: Accessor<UseRolesOptions>): Accessor<
50
67
  export declare function useAssignableRoles(): Accessor<readonly Role[]>;
51
68
  export declare function useAssignablePermissions(options?: {
52
69
  readonly tenant?: string;
53
- }): Accessor<readonly Permission[]>;
70
+ } | Accessor<{
71
+ readonly tenant?: string;
72
+ }>): Accessor<readonly Permission[]>;
54
73
  export declare function useSubject(): Accessor<SubjectView>;
55
74
  export declare function useApproval(decision: Accessor<Decision>): Accessor<ApprovalHandle>;
56
75
  //#endregion
76
+ //#region src/solid/boundary.d.ts
77
+ /**
78
+ * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
79
+ * below it and renders `denied`, or `approval` for an approval request
80
+ * (default `denied`), with the refused permission and `retry()`. Any other
81
+ * error goes to the next `ErrorBoundary` up.
82
+ */
83
+ export declare function PermissionBoundary(props: PermissionBoundaryProps): JSX.Element;
84
+ /** Inside a `PermissionBoundary` fallback: what was refused and `retry()`. */
85
+ export declare function usePermissionBoundary(): PermissionBoundaryState | null;
86
+ //#endregion
57
87
  //#region src/solid/protected.d.ts
58
88
  export declare function Protected(props: ProtectedProps): JSX.Element;
59
89
  //#endregion
60
90
  //#region src/solid/provider.d.ts
61
91
  export declare function PermDockProvider(props: PermDockProviderProps): JSX.Element;
62
92
  //#endregion
63
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockProviderProps, type PermissionSet, type PermissionState, type ProtectedProps, type SolidChild, type SubjectView, type TenantView, type UseRolesOptions, approvalHeaders, describe, requiredPlans };
93
+ export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockProviderProps, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SolidChild, type SubjectView, type TenantView, type UseRolesOptions, approvalHeaders, describe, requiredPlans };
@@ -1,10 +1,12 @@
1
1
  import { t as compact } from "../compact-y6vfu2_f.js";
2
- import { n as requiredPlans, t as describe } from "../describe-Bt1YD5uS.js";
3
- import { t as emptySnapshot } from "../from-snapshot-BMGnhmgv.js";
4
- import { t as approvalHeaders } from "../headers-B5RRv3Xm.js";
5
- import { t as createClientStore } from "../store-C6hFW6ta.js";
6
- import { t as isPromiseLike } from "../source-DoBBYJi2.js";
7
- import { createComponent, createComputed, createContext, createMemo, createSignal, on, onCleanup, useContext } from "solid-js";
2
+ import { r as requiredPlans } from "../problem-details-_AMOYz-w.js";
3
+ import { t as describe } from "../describe-B_gVZEVi.js";
4
+ import { t as approvalHeaders } from "../headers-BZSDieNT.js";
5
+ import { i as isPromiseLike } from "../store-options-yO0V6gRn.js";
6
+ import { a as protectedView, c as subjectView, i as permissionSet, l as tenantView, n as filterResult, o as rolesView, r as livePermDock, s as scopedTenant, t as approvalHandle } from "../views-Soe7bGSC.js";
7
+ import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
8
+ import { n as switchTenant, t as providerStore } from "../provider-store-DNyC1y48.js";
9
+ import { ErrorBoundary, createComponent, createComputed, createContext, createMemo, createSignal, getOwner, on, onCleanup, useContext } from "solid-js";
8
10
  //#region src/solid/context.ts
9
11
  const PermDockContext = createContext(void 0);
10
12
  function useStore() {
@@ -15,6 +17,7 @@ function useStore() {
15
17
  //#endregion
16
18
  //#region src/solid/hooks.ts
17
19
  function useVersion(store) {
20
+ if (getOwner() === null) throw new Error("PermDock: call hooks inside a component or createRoot, which removes their store subscription.");
18
21
  const [tick, setTick] = createSignal(0);
19
22
  onCleanup(store.subscribe(() => {
20
23
  setTick((current) => current + 1);
@@ -24,10 +27,10 @@ function useVersion(store) {
24
27
  function usePermDock() {
25
28
  const store = useStore();
26
29
  const version = useVersion(store);
27
- return new Proxy({}, { get(_target, prop, _receiver) {
30
+ return livePermDock(() => {
28
31
  version();
29
- return Reflect.get(store.get(), prop);
30
- } });
32
+ return store.get();
33
+ });
31
34
  }
32
35
  function usePermission(permission, data) {
33
36
  const store = useStore();
@@ -43,40 +46,16 @@ function usePermissions(permissions, data) {
43
46
  const version = useVersion(store);
44
47
  return createMemo(() => {
45
48
  version();
46
- const granted = [];
47
- const byKey = {};
48
- for (const permission of permissions()) {
49
- const next = store.permissionState(permission, data?.());
50
- byKey[permission.key] = next;
51
- if (next.allowed) granted.push(permission);
52
- }
53
- return new Proxy({
54
- granted,
55
- get(permission) {
56
- return byKey[permission.key];
57
- }
58
- }, { get(target, prop, receiver) {
59
- if (typeof prop === "string" && Object.hasOwn(byKey, prop)) return byKey[prop];
60
- return Reflect.get(target, prop, receiver);
61
- } });
49
+ return permissionSet(store, permissions(), data?.());
62
50
  });
63
51
  }
64
52
  function useFilter(permission, rows) {
65
53
  const permdock = usePermDock();
66
- return createMemo(() => {
67
- const next = permdock.filter(permission, rows());
68
- next.partial = permdock.where(permission).partial;
69
- return next;
70
- });
54
+ return createMemo(() => filterResult(permdock, permission, rows()));
71
55
  }
72
56
  function useTenant() {
73
57
  const permdock = usePermDock();
74
- return createMemo(() => ({
75
- tenant: permdock.subject.principal?.tenant ?? null,
76
- tenants: permdock.tenants(),
77
- switchTo: (id) => permdock.refresh({ tenant: id }),
78
- status: permdock.status()
79
- }));
58
+ return createMemo(() => tenantView(permdock));
80
59
  }
81
60
  function useMemberships() {
82
61
  const permdock = usePermDock();
@@ -84,10 +63,7 @@ function useMemberships() {
84
63
  }
85
64
  function useRoles(options = () => ({})) {
86
65
  const permdock = usePermDock();
87
- return createMemo(() => {
88
- const next = options();
89
- return { roles: (next.team === void 0 ? permdock : permdock.team(next.team)).heldRoles(next.tenant === void 0 ? void 0 : { tenant: next.tenant }) };
90
- });
66
+ return createMemo(() => rolesView(permdock, options()));
91
67
  }
92
68
  function useAssignableRoles() {
93
69
  const permdock = usePermDock();
@@ -95,64 +71,73 @@ function useAssignableRoles() {
95
71
  }
96
72
  function useAssignablePermissions(options = {}) {
97
73
  const permdock = usePermDock();
98
- return createMemo(() => permdock.assignablePermissions(options));
74
+ return createMemo(() => permdock.assignablePermissions(typeof options === "function" ? options() : options));
99
75
  }
100
76
  function useSubject() {
101
77
  const permdock = usePermDock();
102
- return createMemo(() => {
103
- const snapshot = permdock.snapshot();
104
- const simulated = typeof snapshot === "object" && snapshot !== null && "simulated" in snapshot && snapshot.simulated === true;
105
- return {
106
- principal: permdock.subject.principal,
107
- actor: permdock.subject.actor,
108
- delegation: permdock.subject.delegation,
109
- expiresAt: permdock.subject.expiresAt,
110
- simulated
111
- };
112
- });
78
+ return createMemo(() => subjectView(permdock));
113
79
  }
114
80
  function useApproval(decision) {
115
81
  const store = useStore();
116
82
  const version = useVersion(store);
117
83
  return createMemo(() => {
118
84
  version();
119
- const next = decision();
120
- return {
121
- state: store.approvalState(next),
122
- token: next.outcome === "approval-required" ? next.token : void 0,
123
- request: (note) => store.requestApproval(next, note)
124
- };
85
+ return approvalHandle(store, decision());
86
+ });
87
+ }
88
+ //#endregion
89
+ //#region src/solid/boundary.ts
90
+ const BoundaryContext = createContext(null);
91
+ /**
92
+ * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
93
+ * below it and renders `denied`, or `approval` for an approval request
94
+ * (default `denied`), with the refused permission and `retry()`. Any other
95
+ * error goes to the next `ErrorBoundary` up.
96
+ */
97
+ function PermissionBoundary(props) {
98
+ return createComponent(ErrorBoundary, {
99
+ fallback: (error, reset) => {
100
+ const digest = boundaryDigest(error);
101
+ if (digest === null) throw error;
102
+ const state = {
103
+ ...digest,
104
+ retry: reset
105
+ };
106
+ return createComponent(BoundaryContext.Provider, {
107
+ value: state,
108
+ get children() {
109
+ const chosen = boundaryFallback(digest, props);
110
+ return typeof chosen === "function" ? chosen(state) : chosen ?? null;
111
+ }
112
+ });
113
+ },
114
+ get children() {
115
+ return props.children;
116
+ }
125
117
  });
126
118
  }
119
+ /** Inside a `PermissionBoundary` fallback: what was refused and `retry()`. */
120
+ function usePermissionBoundary() {
121
+ return useContext(BoundaryContext);
122
+ }
127
123
  //#endregion
128
124
  //#region src/solid/protected.ts
129
125
  function Protected(props) {
130
126
  const root = usePermDock();
131
127
  const local = usePermission(() => props.permission, () => props.data);
132
- const view = createMemo(() => {
133
- if (props.tenant === void 0) return local();
134
- return tenantView(root.tenant(props.tenant), props.permission, props.data);
135
- });
128
+ const scoped = createMemo(() => scopedTenant(root, props.tenant));
129
+ const view = createMemo(() => protectedView(local(), root, props.permission, props.data, scoped()));
136
130
  const render = () => {
137
- const scoped = view();
138
- if (scoped.status === "pending") return props.pending ?? null;
139
- if (!scoped.allowed || scoped.decision.outcome !== "granted") {
140
- if (typeof props.fallback === "function") return props.fallback(scoped.decision);
141
- return props.fallback ?? null;
131
+ const current = view();
132
+ switch (current.slot) {
133
+ case "pending": return props.pending ?? null;
134
+ case "fallback": return typeof props.fallback === "function" ? props.fallback(current.decision) : props.fallback ?? null;
135
+ case "default": return typeof props.children === "function" ? props.children(current.decision) : props.children;
136
+ default: return current;
142
137
  }
143
- if (typeof props.children === "function") return props.children(scoped.decision);
144
- return props.children;
145
138
  };
146
139
  return render;
147
140
  }
148
- function tenantView(permdock, permission, data) {
149
- const decision = permdock.decide(permission, data);
150
- return {
151
- allowed: decision.outcome === "granted",
152
- status: "ready",
153
- decision
154
- };
155
- }
156
141
  //#endregion
157
142
  //#region src/solid/provider.ts
158
143
  function PermDockProvider(props) {
@@ -160,18 +145,24 @@ function PermDockProvider(props) {
160
145
  const promised = isPromiseLike(source);
161
146
  const read = typeof source === "function" ? source : void 0;
162
147
  const initial = promised ? void 0 : read === void 0 ? source : read();
163
- const store = createClientStore(compact({
164
- snapshot: initial ?? emptySnapshot(),
148
+ const store = providerStore(compact({
165
149
  endpoint: props.endpoint,
150
+ snapshotUrl: props.snapshotUrl,
166
151
  approvals: props.approvals,
167
152
  tenant: props.tenant,
168
- fetch: props.fetch,
153
+ maxAge: props.maxAge
154
+ }), () => ({
169
155
  headers: props.headers,
170
- maxAge: props.maxAge,
156
+ fetch: props.fetch,
171
157
  verifier: props.verifier
172
- }));
173
- if (promised) store.follow(source);
174
- else if (read !== void 0) {
158
+ }), promised ? source : initial);
159
+ createComputed(on(() => props.tenant, (next) => {
160
+ switchTenant(store, next);
161
+ }, { defer: true }));
162
+ onCleanup(() => {
163
+ store.dispose();
164
+ });
165
+ if (!promised && read !== void 0) {
175
166
  let arrive;
176
167
  if (initial === void 0) store.follow(new Promise((resolve) => {
177
168
  arrive = resolve;
@@ -194,4 +185,4 @@ function PermDockProvider(props) {
194
185
  });
195
186
  }
196
187
  //#endregion
197
- export { PermDockProvider, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
188
+ export { PermDockProvider, PermissionBoundary, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useRoles, useSubject, useTenant };