permdock 0.3.1 → 0.4.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 (323) hide show
  1. package/dist/a2a/index.d.ts +7 -5
  2. package/dist/a2a/index.js +14 -21
  3. package/dist/ai-sdk/index.d.ts +18 -6
  4. package/dist/ai-sdk/index.js +8 -5
  5. package/dist/app-data-CV8pqqMi.js +59 -0
  6. package/dist/approvals/index.d.ts +2 -2
  7. package/dist/approvals/index.js +3 -3
  8. package/dist/{approvals-DbYAuNkG.js → approvals-DZL76lKW.js} +35 -19
  9. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  10. package/dist/{arazzo-BAgw9ap6.js → arazzo-C4BcskbX.js} +6 -5
  11. package/dist/{arazzo-C9chp3ST.js → arazzo-CD8d0WLb.js} +2 -2
  12. package/dist/authzen/index.d.ts +3 -3
  13. package/dist/authzen/index.js +161 -23
  14. package/dist/better-auth/index.d.ts +2 -2
  15. package/dist/better-auth/index.js +6 -19
  16. package/dist/better-supabase/index.d.ts +112 -87
  17. package/dist/better-supabase/index.js +257 -156
  18. package/dist/{bind-C_ob3LKa.d.ts → bind-BzqG8SMb.d.ts} +16 -5
  19. package/dist/{bind-CuzGytRf.js → bind-kk-uyCwH.js} +14 -6
  20. package/dist/build-instance-DIIV9DbC.js +51 -0
  21. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-CFKyFOke.js} +1 -3
  22. package/dist/{capability-2kYTMWDv.d.ts → capability-CksyCWDH.d.ts} +2 -2
  23. package/dist/{capability-4qPdO9gk.js → capability-txATtKV4.js} +3 -2
  24. package/dist/catalog/index.d.ts +1 -1
  25. package/dist/catalog/index.js +1 -1
  26. package/dist/catalog-6yWAX6Ps.js +2 -0
  27. package/dist/{catalog-CYj-mX2O.js → catalog-WHG4kBq7.js} +2 -2
  28. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-DWtg0gGR.js} +17 -10
  29. package/dist/{catalog-DWF5cYqB.js → catalog-tZUyOfOv.js} +4 -4
  30. package/dist/claude-agent/index.d.ts +4 -4
  31. package/dist/claude-agent/index.js +4 -5
  32. package/dist/clerk/index.d.ts +3 -3
  33. package/dist/clerk/index.js +8 -33
  34. package/dist/cli/bin.js +1 -1
  35. package/dist/cli/index.d.ts +3 -3
  36. package/dist/cli/index.js +3 -3
  37. package/dist/cloud/index.d.ts +4 -4
  38. package/dist/cloud/index.js +9 -15
  39. package/dist/{cloud-CfwZ39Rl.js → cloud-C7bSDgX4.js} +2 -2
  40. package/dist/{cloud-DWLXO2af.js → cloud-PeBN3IEn.js} +5 -5
  41. package/dist/{collect-DSTE3ml9.js → collect-2SrB7lfk.js} +6 -8
  42. package/dist/collect-Bw2Jdq1q.js +2 -0
  43. package/dist/{collect-CHB22Sx4.js → collect-CQx4hX4N.js} +3 -3
  44. package/dist/{commands-BeaGNj_o.js → commands-Cpip4ULx.js} +13 -13
  45. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  46. package/dist/compile/index.d.ts +1 -1
  47. package/dist/compile/index.js +1 -1
  48. package/dist/{compile-Ba4blROR.js → compile-CcEu2ZQ1.js} +6 -5
  49. package/dist/{compile-BkRyBDBw.d.ts → compile-CtTP7eur.d.ts} +2 -2
  50. package/dist/{config-BJiM-xAm.js → config-BIjREpyE.js} +4 -4
  51. package/dist/{config-ir40y8m0.js → config-DLt6BvV7.js} +2 -2
  52. package/dist/{config-report-CdCgbRnV.js → config-report--Xb9APJS.js} +5 -6
  53. package/dist/{connection-CU8MQxRi.js → connection-DUsczpB5.js} +3 -2
  54. package/dist/constants-DcJABbLW.js +20 -0
  55. package/dist/{context-Bcy85rGi.js → context-DieZVJXu.js} +16 -5
  56. package/dist/convex/index.d.ts +4 -4
  57. package/dist/convex/index.js +14 -16
  58. package/dist/create-BBO24vj6.js +324 -0
  59. package/dist/{credential-8P81ff4u.js → credential-kue0qpbm.js} +4 -4
  60. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  61. package/dist/delegation-input-FTxMK3ji.js +19 -0
  62. package/dist/denied-text-DfRk15uw.d.ts +19 -0
  63. package/dist/{describe-DMYiCjJV.d.ts → describe-C3ldA9os.d.ts} +11 -2
  64. package/dist/{describe-B_gVZEVi.js → describe-Cgkp7eP0.js} +5 -4
  65. package/dist/{diff-C9RDjjhs.js → diff-Cnghh_Ip.js} +2 -2
  66. package/dist/{diff-2VaeChzX.js → diff-rpqoe7Ag.js} +9 -9
  67. package/dist/{doctor-Djh6JDEk.js → doctor-CuVJvhV_.js} +2 -2
  68. package/dist/doctor-owlv6ddh.js +2166 -0
  69. package/dist/drizzle/index.d.ts +2 -2
  70. package/dist/drizzle/index.js +6 -14
  71. package/dist/elysia/index.d.ts +4 -4
  72. package/dist/elysia/index.js +7 -7
  73. package/dist/{errors-DPdqI50v.d.ts → errors-OD_4c__H.d.ts} +2 -2
  74. package/dist/{errors-Cz5zn0mW.js → errors-drnfxYtm.js} +3 -3
  75. package/dist/{evaluations-tz6D9A2G.js → evaluations-C9YJsv3H.js} +45 -7
  76. package/dist/eve/index.d.ts +5 -5
  77. package/dist/eve/index.js +5 -5
  78. package/dist/express/index.d.ts +4 -4
  79. package/dist/express/index.js +8 -7
  80. package/dist/fastify/index.d.ts +15 -5
  81. package/dist/fastify/index.js +9 -29
  82. package/dist/fields-fwfXN01n.js +1016 -0
  83. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  84. package/dist/{fixtures-ht28Cplr.js → fixtures-h2eG2OZV.js} +5 -6
  85. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-7REQZe0H.js} +32 -22
  86. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  87. package/dist/grantee-CXY-0C87.js +254 -0
  88. package/dist/grantee-conditions-MQs5NIuX.js +270 -0
  89. package/dist/grantee-match-fxYp9Nmt.js +141 -0
  90. package/dist/{helpers-H_KARDVC.js → helpers-C9YmyBIa.js} +7 -6
  91. package/dist/hono/index.d.ts +4 -4
  92. package/dist/hono/index.js +8 -8
  93. package/dist/hosted-CBHgkzDl.js +655 -0
  94. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  95. package/dist/{http-BIhmLfCc.js → http-BEbdMZ05.js} +2 -24
  96. package/dist/{rls-import-4lLW_pbb.js → import-BFIlhetD.js} +86 -80
  97. package/dist/{openapi-import-cmwetbzw.js → import-UHk1N7vH.js} +6 -7
  98. package/dist/{index-C8z4RjQV.d.ts → index-BwMe94Xq.d.ts} +1 -1
  99. package/dist/{index-0nNqHspG.d.ts → index-DgM7w96K.d.ts} +2 -2
  100. package/dist/{index-C7Tw7MaW.d.ts → index-Dz7didpC.d.ts} +3 -3
  101. package/dist/{index-BNc7Wer_.d.ts → index-UdVQgq48.d.ts} +105 -38
  102. package/dist/index.d.ts +15 -13
  103. package/dist/index.js +22 -22
  104. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-plkrsAog.d.ts} +1 -1
  105. package/dist/{json-schema-BsAflUGW.js → json-schema-DBkdUuCO.js} +1 -3
  106. package/dist/jwt/index.d.ts +4 -4
  107. package/dist/jwt/index.js +13 -13
  108. package/dist/{kernel-_RRHmnMY.js → kernel-CB3LrIJM.js} +81 -32
  109. package/dist/kysely/index.d.ts +2 -2
  110. package/dist/kysely/index.js +6 -14
  111. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  112. package/dist/load-B_shHrmd.js +2 -0
  113. package/dist/{load-DhWEB9P1.js → load-C3_oTHyO.js} +11 -3
  114. package/dist/{manifest-iaoBXHKc.js → manifest-BngWKryL.js} +5 -18
  115. package/dist/{map-claims-Z4QZOiFF.js → map-claims-AVlBaJoa.js} +7 -16
  116. package/dist/{map-error-pgUWNNtG.js → map-error-BE27PYkE.js} +5 -5
  117. package/dist/{markers-B0hYLvMD.js → markers-CiwAOZtO.js} +6 -2
  118. package/dist/{may-use-DndQ5tQ-.js → may-use-BOn_dR_w.js} +4 -3
  119. package/dist/mcp/index.d.ts +26 -9
  120. package/dist/mcp/index.js +456 -446
  121. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BwlB5-Wk.js} +75 -15
  122. package/dist/nest/index.d.ts +4 -4
  123. package/dist/nest/index.js +11 -12
  124. package/dist/next/index.d.ts +31 -8
  125. package/dist/next/index.js +29 -33
  126. package/dist/next/plugin.d.ts +1 -1
  127. package/dist/next/plugin.js +1 -1
  128. package/dist/node/index.d.ts +4 -4
  129. package/dist/node/index.js +4 -4
  130. package/dist/ocsf-uYFXGVw2.js +115 -0
  131. package/dist/openai/index.d.ts +5 -5
  132. package/dist/openai/index.js +4 -4
  133. package/dist/openapi/index.d.ts +3 -3
  134. package/dist/openapi/index.js +1 -1
  135. package/dist/{openapi-CqqEbHsL.js → openapi-BJdBmYDG.js} +19 -23
  136. package/dist/{openapi-BqRBvAng.js → openapi-DBzHQbov.js} +2 -5
  137. package/dist/{openapi-CQTsgKoB.js → openapi-DcQ1Kg40.js} +3 -3
  138. package/dist/orpc/index.d.ts +5 -5
  139. package/dist/orpc/index.js +9 -11
  140. package/dist/otel/index.d.ts +2 -2
  141. package/dist/otel/index.js +26 -23
  142. package/dist/output-files-CgIsvdSa.js +140 -0
  143. package/dist/{rls-ownership-DcYlZ09B.js → ownership-BgnbOJFT.js} +387 -379
  144. package/dist/{package-root-zGkxO3oN.js → package-root-DtNnpmUd.js} +3 -2
  145. package/dist/{parse-BuyjxhZV.js → parse-CVFQHk6c.js} +3 -3
  146. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-C-q02Pal.js} +2 -4
  147. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DvYUR0QL.d.ts} +1 -1
  148. package/dist/pdp/index.d.ts +2 -2
  149. package/dist/pdp/index.js +8 -9
  150. package/dist/{permdock-CbgvLnuo.js → permdock-L26udHSk.js} +1387 -1220
  151. package/dist/{rls-fields-CZOMlwHl.js → permission-keys-B26jeyUv.js} +1268 -2053
  152. package/dist/permission-registry-BsblpB-z.js +385 -0
  153. package/dist/{permissions-DttnqqxC.d.ts → permission-types-Dg39z9Kv.d.ts} +59 -31
  154. package/dist/{permissions-RJrovw98.js → permissions-CCJ6lmxB.js} +3 -3
  155. package/dist/{permissions-CDgvKG5L.d.ts → permissions-COH-KRgT.d.ts} +2 -2
  156. package/dist/{policy-IB6yxpC3.d.ts → policy-types-sp9P1iIV.d.ts} +661 -582
  157. package/dist/{policy-D2W7uv19.d.ts → policy-ur0BBK_e.d.ts} +2 -2
  158. package/dist/{powersync-DE19b9dT.js → powersync-BFSbSElQ.js} +2 -2
  159. package/dist/powersync-DCDgZgfZ.js +2 -0
  160. package/dist/{powersync-Dv1_aWF7.js → powersync-cZe4kzhL.js} +26 -27
  161. package/dist/prisma/index.d.ts +1 -1
  162. package/dist/prisma/index.js +6 -12
  163. package/dist/{problem-B43ztKIm.js → problem-CnWraVhC.js} +8 -7
  164. package/dist/{problem-details-_AMOYz-w.js → problem-details-DECUnXAn.js} +2 -2
  165. package/dist/{problem-details-DX075l9V.d.ts → problem-details-rIIo8B2C.d.ts} +1 -1
  166. package/dist/{protected-BdnIEFkY.d.ts → protected-B3_P7xuw.d.ts} +9 -6
  167. package/dist/{protected-utU-SLuy.js → protected-BN7BUdY1.js} +20 -8
  168. package/dist/{provider-CSQd7m92.js → provider-Bi-0HNL3.js} +23 -10
  169. package/dist/{provider-DZY281jO.d.ts → provider-kwHC9CZD.d.ts} +1 -1
  170. package/dist/{provider-store-Cfbvo4DE.js → provider-store-Ctt-81Ni.js} +6 -3
  171. package/dist/react/index.d.ts +7 -7
  172. package/dist/react/index.js +5 -5
  173. package/dist/react/provider-client.d.ts +1 -1
  174. package/dist/react/provider-client.js +1 -1
  175. package/dist/react-native/index.d.ts +20 -11
  176. package/dist/react-native/index.js +33 -17
  177. package/dist/{refs-KYb4ntaz.js → refs-f3imMjNW.js} +1 -1
  178. package/dist/relation-walk-BXnlLtg2.js +186 -0
  179. package/dist/relations-CvmSpG67.js +163 -0
  180. package/dist/{replay-CYyiLiwO.d.ts → replay-COpmZUfx.d.ts} +1 -1
  181. package/dist/request-context-BVM7aWNs.js +71 -0
  182. package/dist/request-context-C2_1lchh.d.ts +5 -0
  183. package/dist/resource-relations-D1Un3pcz.js +243 -0
  184. package/dist/retire-BFcxL6un.js +240 -0
  185. package/dist/{rls-P-BeBx0n.js → rls-55DQTuf5.js} +14 -2
  186. package/dist/{rls-DiinlRML.js → rls-BEktUaqg.js} +884 -484
  187. package/dist/{policy-xyWg7QdR.js → role-builder-B4GbKM-i.js} +235 -541
  188. package/dist/{rpc-DL9Sqvb1.js → rpc-nYC3cR_u.js} +15 -5
  189. package/dist/{run-BWc9qqvE.js → run-DMcNW_8T.js} +3 -3
  190. package/dist/{runtime-CB8gQFvS.js → runtime-D_tMXnsq.js} +1 -1
  191. package/dist/{saas-DhpJjnBA.js → saas-DtaA4JuW.js} +9 -8
  192. package/dist/{openapi-schema--ARjyfQr.js → schema-Bol6gqXA.js} +3 -5
  193. package/dist/{schema-D3MnDMxa.js → schema-DjQBcAP9.js} +4 -2
  194. package/dist/scim/index.d.ts +1 -1
  195. package/dist/scim/index.js +1 -1
  196. package/dist/{scim-BFGBBAqR.js → scim-vFR1O5oG.js} +6 -12
  197. package/dist/{scopes-CVdPrWN-.js → scopes-tvpa34ep.js} +10 -2
  198. package/dist/server/index.d.ts +18 -8
  199. package/dist/server/index.js +8 -8
  200. package/dist/{server-DlZ28Oz5.js → server-ZYEHtNHS.js} +4 -4
  201. package/dist/{create-B1d519XK.d.ts → server-types-DdqBwZN_.d.ts} +69 -33
  202. package/dist/shared-1uhI-e-b.js +294 -0
  203. package/dist/{shared-DRu8VFVM.js → shared-JhMeOsDF.js} +1 -1
  204. package/dist/{sink-Bd9PSyfq.js → sink-BTtmfPnE.js} +1 -1
  205. package/dist/{sink-B1fZzIMf.d.ts → sink-CPN4zLfs.d.ts} +1 -1
  206. package/dist/{skills-Biq5uup3.js → skills-BZdRQkxs.js} +4 -3
  207. package/dist/{skills-C5CbhhpG.js → skills-Dle4ZoLF.js} +2 -2
  208. package/dist/{snapshot-Enxd0n-s.js → snapshot-Dc9CHPME.js} +116 -13
  209. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-Cod40D-X.js} +1 -1
  210. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-J5T7t_vD.d.ts} +1 -1
  211. package/dist/solid/index.d.ts +22 -22
  212. package/dist/solid/index.js +40 -10
  213. package/dist/{sources-4p0-4xQm.js → sources-B1-b-R0t.js} +25 -26
  214. package/dist/{sources-BdOYLw9j.d.ts → sources-Dljy06zL.d.ts} +6 -2
  215. package/dist/{sql-xdg5f4Fi.js → sql-t8teWOfo.js} +19 -3
  216. package/dist/{src-BDwEZWrZ.js → src-Bb7no-hS.js} +194 -123
  217. package/dist/ssf/index.d.ts +3 -3
  218. package/dist/ssf/index.js +58 -61
  219. package/dist/store-9KO4BlkB.d.ts +147 -0
  220. package/dist/{store-DMAWwAJV.js → store-ILkLUj_o.js} +4 -4
  221. package/dist/{store-options-ByhZq1jV.js → store-options-CbUHDoSe.js} +16 -7
  222. package/dist/{stores-BT2pSCub.js → stores-BHXdSbw9.js} +7 -3
  223. package/dist/stores-Cxz_80g-.d.ts +31 -0
  224. package/dist/{stream-DDpvynSB.js → stream-BMui98KK.js} +2 -1
  225. package/dist/{stream-D1RXubw2.d.ts → stream-Dwsg6WwE.d.ts} +2 -2
  226. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  227. package/dist/supabase/index.d.ts +4 -4
  228. package/dist/supabase/index.js +3 -3
  229. package/dist/supabase/middleware.d.ts +11 -5
  230. package/dist/supabase/middleware.js +10 -7
  231. package/dist/{supabase-C0qESOa-.js → supabase-C1TWlnYt.js} +36 -52
  232. package/dist/{supabase-s4o9s1O1.js → supabase-Dbqr141s.js} +2 -2
  233. package/dist/supabase-hook-BULg7Ut_.js +2 -0
  234. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-Cva3ikXz.js} +730 -781
  235. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  236. package/dist/svelte/Protected.svelte +9 -2
  237. package/dist/svelte/index.d.ts +6 -6
  238. package/dist/svelte/index.js +25 -11
  239. package/dist/svelte/runtime.d.ts +10 -3
  240. package/dist/svelte/runtime.js +4 -3
  241. package/dist/svelte/source.d.ts +6 -6
  242. package/dist/svelte/source.js +4 -4
  243. package/dist/{validity-uOp8UpYn.js → tenancy-DshjqY0n.js} +3 -39
  244. package/dist/terminal/index.d.ts +5 -5
  245. package/dist/terminal/index.js +18 -34
  246. package/dist/testing/index.d.ts +89 -77
  247. package/dist/testing/index.js +1276 -1262
  248. package/dist/testing/saas/index.d.ts +4 -4
  249. package/dist/testing/saas/index.js +2 -2
  250. package/dist/testing/saas/permissions.d.ts +1 -1
  251. package/dist/testing/saas/permissions.js +1 -1
  252. package/dist/thenable-QSmvt-vZ.js +65 -0
  253. package/dist/{token-CIWxJOCh.js → token-Bx9qy30p.js} +1 -1
  254. package/dist/tool-refusal-CQ7OEia9.js +41 -0
  255. package/dist/trpc/index.d.ts +5 -5
  256. package/dist/trpc/index.js +7 -8
  257. package/dist/{types-DbjRN55U.d.ts → types-7rJVLWe5.d.ts} +82 -4
  258. package/dist/{types-aqOHTHcp.d.ts → types-Br9IXUBG.d.ts} +1 -1
  259. package/dist/types-ByUo56un.d.ts +88 -0
  260. package/dist/{types-Cq_H8N_X.d.ts → types-C0dee0Qf.d.ts} +2 -2
  261. package/dist/{types-DxiCGmmd.d.ts → types-CIlTojhq.d.ts} +2 -2
  262. package/dist/{types-QCuYJh4q.d.ts → types-CUcFZfpU.d.ts} +1 -1
  263. package/dist/{types-C97IskBw.d.ts → types-CqrjB9o6.d.ts} +1 -1
  264. package/dist/{types-BnIEz1sU.d.ts → types-DHrmBJLH.d.ts} +24 -6
  265. package/dist/{types-Dnemwd77.d.ts → types-DpWfQdSh.d.ts} +5 -1
  266. package/dist/{types-Bvc4oWT6.d.ts → types-DvupZE0w.d.ts} +1 -1
  267. package/dist/unplugin/index.d.ts +1 -1
  268. package/dist/unplugin/index.js +1 -1
  269. package/dist/{usage-B0YuTQRO.js → usage-4G6t643F.js} +2 -2
  270. package/dist/{usage-ItS7nLcl.js → usage-CG9nOYZw.js} +7 -7
  271. package/dist/usage-iFLJ0-rr.js +2 -0
  272. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-BSSw0l_8.d.ts} +1 -1
  273. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  274. package/dist/validity-dVrUEPJt.js +62 -0
  275. package/dist/{verifier-BxBo6I44.js → verifier-DMr_Zmb_.js} +51 -15
  276. package/dist/{rls-verify-CMv9H3wV.js → verify-BztUB3GX.js} +668 -239
  277. package/dist/{version-BvacVTZR.js → version-BEogC-rB.js} +1 -1
  278. package/dist/{views-Soe7bGSC.js → views-CJsrBS1f.js} +23 -1
  279. package/dist/{vocabulary-DA8a8zif.d.ts → vocabulary-hhEFLFoL.d.ts} +15 -6
  280. package/dist/vue/index.d.ts +24 -19
  281. package/dist/vue/index.js +24 -8
  282. package/dist/watch-C8TpsAl4.js +2 -0
  283. package/dist/{watch-DVBJ9cBq.js → watch-zeucB7eF.js} +6 -6
  284. package/dist/webmcp/index.d.ts +2 -2
  285. package/dist/webmcp/index.js +13 -37
  286. package/dist/wrap-Cr93qqdP.d.ts +14 -0
  287. package/dist/wrap-DWsU_5Bd.js +26 -0
  288. package/package.json +8 -8
  289. package/schemas/catalog-v1.json +6 -0
  290. package/skills/permdock-credentials/SKILL.md +1 -1
  291. package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
  292. package/skills/permdock-data/references/queries-and-rls.md +4 -0
  293. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
  294. package/skills/permdock-wire/SKILL.md +2 -2
  295. package/skills/permdock-wire/references/adapters.md +9 -1
  296. package/skills/permdock-wire/references/policy-options.md +10 -1
  297. package/dist/catalog-CRW5Mx_B.js +0 -2
  298. package/dist/collect-DSWOk19R.js +0 -2
  299. package/dist/create-CMwIl-w2.js +0 -253
  300. package/dist/delegation-D8pUEuce.js +0 -103
  301. package/dist/doctor-DvH0IQff.js +0 -1194
  302. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  303. package/dist/evaluation-items-CfCCejQd.js +0 -40
  304. package/dist/fields-BMl1RxoX.js +0 -26
  305. package/dist/grantee-Cv5Sogfv.js +0 -602
  306. package/dist/hosted-DJQw46hn.js +0 -266
  307. package/dist/instance-options-Dhhcnm3y.js +0 -22
  308. package/dist/load-DwJUafYN.js +0 -2
  309. package/dist/map-AcxK9o_D.js +0 -147
  310. package/dist/permissions-DVoF6dMt.js +0 -662
  311. package/dist/powersync-CrBX8hY6.js +0 -2
  312. package/dist/protected-xAr24FEC.d.ts +0 -40
  313. package/dist/relations-cjOL01hZ.js +0 -505
  314. package/dist/rls-graph-CHwx0V8q.js +0 -435
  315. package/dist/rls-shared-Cewd_-zI.js +0 -495
  316. package/dist/store-jOBYpiXC.d.ts +0 -36
  317. package/dist/stores-C0IMQrGI.d.ts +0 -52
  318. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  319. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  320. package/dist/thenable-okc2xDsj.js +0 -10
  321. package/dist/types-CKNSyIf_.d.ts +0 -52
  322. package/dist/usage-DorAJiU_.js +0 -2
  323. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -1,14 +1,11 @@
1
- import { n as isReadonlyArray, t as compact } from "../compact-y6vfu2_f.js";
1
+ import { n as isReadonlyArray, r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { _ as listPermissions } from "../permissions-DVoF6dMt.js";
4
- import { m as role, t as allow } from "../policy-xyWg7QdR.js";
5
- import { t as ignoreRejection } from "../thenable-okc2xDsj.js";
3
+ import { r as validateRecord } from "../thenable-QSmvt-vZ.js";
4
+ import { n as role, r as allow } from "../role-builder-B4GbKM-i.js";
5
+ import { c as listPermissions } from "../permission-registry-BsblpB-z.js";
6
6
  import { t as anonymousSubject } from "../subject-C6dLxqHU.js";
7
- import { i as membershipEvent } from "../sink-Bd9PSyfq.js";
7
+ import { i as membershipEvent } from "../sink-BTtmfPnE.js";
8
8
  //#region src/better-auth/parse.ts
9
- function isRecord(value) {
10
- return value !== null && typeof value === "object" && !Array.isArray(value);
11
- }
12
9
  function asRoles(value) {
13
10
  if (typeof value === "string") return value === "" ? [] : value.split(",").map((item) => item.trim()).filter((item) => item !== "");
14
11
  if (!Array.isArray(value)) return [];
@@ -205,16 +202,6 @@ const PROFILE_FIELDS = /* @__PURE__ */ new Set([
205
202
  "image",
206
203
  "displayName"
207
204
  ]);
208
- function validateClaims(extra, schema) {
209
- const result = schema["~standard"].validate(extra);
210
- if (result instanceof Promise) {
211
- ignoreRejection(result);
212
- return;
213
- }
214
- if ("issues" in result && result.issues !== void 0) return;
215
- const value = result.value;
216
- return isRecord(value) ? value : void 0;
217
- }
218
205
  function extraFields(user) {
219
206
  const reserved = /* @__PURE__ */ new Set([
220
207
  "id",
@@ -319,7 +306,7 @@ async function subjectFromBetterAuth(auth, session, options = {}) {
319
306
  const roles = asRoles(user["role"] ?? user["roles"]);
320
307
  const declared = options.declared;
321
308
  const globalRoles = declared === void 0 ? roles : roles.filter((role) => declared.includes(role));
322
- const extra = options.schema === void 0 ? {} : validateClaims(extraFields(user), options.schema) ?? {};
309
+ const extra = options.schema === void 0 ? {} : validateRecord(options.schema, extraFields(user)) ?? {};
323
310
  const memberships = await loadMemberships(auth, session, user, id, tenant, options);
324
311
  const principal = compact({
325
312
  id,
@@ -1,14 +1,14 @@
1
- import { $t as CredentialPrincipal, C as Policy, Pr as Subject, ln as PermDock, nt as CredentialVerifier } from "../policy-IB6yxpC3.js";
2
- import { f as Permission, m as PermissionTree } from "../permissions-DttnqqxC.js";
3
- import { g as SupabaseSubjectOptions, m as SupabaseSessionLike, u as SupabasePrincipal } from "../types-C97IskBw.js";
1
+ import { E as Policy, H as CredentialVerifier, Mt as PermDockOptions, jt as PermDock, kr as Subject, xt as CredentialPrincipal } from "../policy-types-sp9P1iIV.js";
2
+ import { d as Permission, p as PermissionTree } from "../permission-types-Dg39z9Kv.js";
3
+ import { g as SupabaseSubjectOptions, m as SupabaseSessionLike, u as SupabasePrincipal } from "../types-CqrjB9o6.js";
4
4
  import { AuthorizationProvider } from "better-supabase/config";
5
+ import { AuthSession, Authorizer } from "better-supabase/server";
6
+ import { EntitlementClaimOptions } from "better-supabase/blocks/entitlements";
7
+ import { ApiKey, ApiKeyClaimsOptions, ApiKeys } from "better-supabase/blocks/api-keys";
5
8
  import { AccessTopicPolicy } from "better-supabase/realtime";
6
9
  import { AccessBucketPolicy } from "better-supabase/storage";
7
- import { ApiKey, ApiKeyClaimsOptions, ApiKeys } from "better-supabase/blocks/api-keys";
8
10
  import { CredentialProvider } from "better-supabase/credentials";
9
11
  import { ToolDecision, ToolRef } from "better-supabase/mcp";
10
- import { EntitlementClaimOptions } from "better-supabase/blocks/entitlements";
11
- import { AuthSession } from "better-supabase/server";
12
12
  //#region src/better-supabase/provider.d.ts
13
13
  type AuthorizationProviderOptions = {
14
14
  /** `permdock.manifest.json`, parsed or as JSON text, from `permdock supabase inspect --out`. */
@@ -41,6 +41,111 @@ type AuthorizationProviderOptions = {
41
41
  */
42
42
  export declare function authorizationProvider(options: AuthorizationProviderOptions): AuthorizationProvider;
43
43
  //#endregion
44
+ //#region src/better-supabase/api-keys.d.ts
45
+ /** The roles a tenant key holds in its tenant: a list, or one per key. */
46
+ type ServiceRoles<K> = readonly string[] | ((key: K) => readonly string[]);
47
+ type ApiKeyVerifierOptions = {
48
+ /** `createApiKeys()` over a service transport. */
49
+ readonly keys: Pick<ApiKeys, "verify">;
50
+ /**
51
+ * `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the
52
+ * default for `serviceRoles`.
53
+ */
54
+ readonly manifest?: unknown;
55
+ /**
56
+ * The roles a tenant key holds in its tenant, as a `service` principal.
57
+ * Without it or a manifest with `rls.apiKeys`, a tenant key verifies to
58
+ * `null`.
59
+ */
60
+ readonly serviceRoles?: ServiceRoles<ApiKey>;
61
+ /** The permissions `*` stands for. Without it, a key with `*` verifies to `null`. */
62
+ readonly allPermissions?: readonly Permission[];
63
+ };
64
+ /**
65
+ * better-supabase's API keys as a `CredentialVerifier`, for
66
+ * `subjectFromApiKey` from `permdock/server`, which reads PermDock's
67
+ * `pdk_<id>_<secret>` format: create the keys with `prefix: "pdk"`. The
68
+ * credential id is the key's `publicId`, the id in the token. A personal key
69
+ * is a `user` credential acting as its user (inside its tenant when the key
70
+ * is limited to one), a tenant key a `service` credential holding
71
+ * `serviceRoles` in its tenant, and the key's scopes are the credential's
72
+ * permissions. better-supabase records the use when it verifies, so there is
73
+ * no `touch`. A rotated key in its grace period verifies, and its credential
74
+ * expires when the grace period ends. An invalid, revoked, expired or
75
+ * rate-limited key, and a failed lookup, are `null`. `permdock/server` exports a different
76
+ * `apiKeyVerifier`, over the application's own key records.
77
+ */
78
+ export declare function apiKeyVerifier(options: ApiKeyVerifierOptions): CredentialVerifier;
79
+ /**
80
+ * The `claim` and `tenantClaim` options of better-supabase's
81
+ * `apiKeyClaims()`, from the manifest's `rls.apiKeys`, so a key's token
82
+ * carries the scopes ceiling, tenant and roles the `rls generate` helpers
83
+ * read. Throws when the manifest has no `rls.apiKeys`.
84
+ */
85
+ export declare function apiKeyClaimOptions(manifest: unknown): Pick<ApiKeyClaimsOptions, "claim" | "tenantClaim">;
86
+ //#endregion
87
+ //#region src/better-supabase/subject.d.ts
88
+ /** An `AuthSession` of kind `apiKey`, from better-supabase's api-keys middleware. */
89
+ type ApiKeySession = Extract<AuthSession, {
90
+ readonly kind: "apiKey";
91
+ }>;
92
+ type ApiKeySessionOptions = {
93
+ /** The definitions: the key's scopes become the subject's delegation, and `*` stands for all of them. */
94
+ readonly permissions: PermissionTree;
95
+ /** `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the default for `serviceRoles`. */
96
+ readonly manifest?: unknown;
97
+ /** The roles a tenant key holds in its tenant. Without it or a manifest with `rls.apiKeys`, a tenant key is anonymous. */
98
+ readonly serviceRoles?: ServiceRoles<ApiKeySession>;
99
+ };
100
+ /** The claim, and the short code better-supabase writes for each feature key. */
101
+ type FeatureClaim = EntitlementClaimOptions;
102
+ type BetterSupabaseSubjectOptions = Omit<SupabaseSubjectOptions, "plans"> & {
103
+ /** How `kind: 'apiKey'` sessions map. Without it they are anonymous. */
104
+ readonly apiKeys?: ApiKeySessionOptions;
105
+ /**
106
+ * The claim `principal.plans` reads: its name (default `features`), or
107
+ * `{ claim, keys }` with the same `entitlements.claim.keys` better-supabase
108
+ * writes short codes with, so `plans` holds the feature keys. A code
109
+ * without a key is dropped.
110
+ */
111
+ readonly plans?: string | FeatureClaim;
112
+ };
113
+ /**
114
+ * `subjectFromSupabaseSession` for better-supabase's `AuthSession`, reading
115
+ * `memberships` for the memberships and the entitlements module's `features`
116
+ * claim for `principal.plans` (`plans` names another claim). With `apiKeys`,
117
+ * a verified `apiKey` session is the key's credential subject: a personal key
118
+ * acts as its user within the key's scopes, a tenant key as a `service`
119
+ * principal holding `serviceRoles`. Without `apiKeys`, and for `anon`,
120
+ * `service` and `invalid` sessions, the subject is anonymous.
121
+ */
122
+ export declare function subjectFromBetterSupabase(session: SupabaseSessionLike | ApiKeySession | null | undefined, options?: BetterSupabaseSubjectOptions): Subject<SupabasePrincipal> | Subject<CredentialPrincipal> | Subject;
123
+ //#endregion
124
+ //#region src/better-supabase/authorizer.d.ts
125
+ /** The table operations better-supabase's `permissions: true` resolves through `forOperation`. */
126
+ type AuthorizerOperation = "list" | "get" | "create" | "update" | "delete";
127
+ type AuthorizerOptions = {
128
+ readonly policy: Policy;
129
+ /** How the verified claims map to a subject; the defaults of `subjectFromBetterSupabase`. */
130
+ readonly subject?: Omit<BetterSupabaseSubjectOptions, "apiKeys">;
131
+ /**
132
+ * The permission of each table operation, so a resource with
133
+ * `permissions: true` is checked. Without it such a resource is refused.
134
+ */
135
+ readonly operations?: Readonly<Record<string, Partial<Record<AuthorizerOperation, Permission>>>>;
136
+ /** Sources and sinks for each instance. The subject, actor and tenant always come from the verified request. */
137
+ readonly options?: Omit<PermDockOptions, "tenant" | "actor" | "delegation" | "session" | "expiresAt">;
138
+ };
139
+ /**
140
+ * better-supabase's `authorizer` for PermDock: every resource, action, route
141
+ * guard and MCP tool that declares a `permission` is decided with `decide`.
142
+ * The subject is mapped from the verified claims with
143
+ * `subjectFromBetterSupabase`; the request's `context.tenant` selects the
144
+ * active tenant only among the memberships the claims hold. A caller without
145
+ * claims is anonymous, and a throw denies.
146
+ */
147
+ export declare function authorizer(options: AuthorizerOptions): Authorizer<Permission>;
148
+ //#endregion
44
149
  //#region src/better-supabase/policies.d.ts
45
150
  type AccessScope = {
46
151
  /** A scope in the policy's scopes (or the manifest's `rls.scopes`), or `platform` for permissions granted globally. */
@@ -93,49 +198,6 @@ export declare function bucketPolicy(access: BucketAccess, options: AccessPolicy
93
198
  /** As {@link bucketPolicy}, for a better-supabase Realtime topic. */
94
199
  export declare function topicPolicy(access: TopicAccess, options: AccessPolicyOptions): AccessTopicPolicy;
95
200
  //#endregion
96
- //#region src/better-supabase/api-keys.d.ts
97
- /** The roles a tenant key holds in its tenant: a list, or one per key. */
98
- type ServiceRoles<K> = readonly string[] | ((key: K) => readonly string[]);
99
- type ApiKeyVerifierOptions = {
100
- /** `createApiKeys()` over a service transport. */
101
- readonly keys: Pick<ApiKeys, "verify">;
102
- /**
103
- * `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the
104
- * default for `serviceRoles`.
105
- */
106
- readonly manifest?: unknown;
107
- /**
108
- * The roles a tenant key holds in its tenant, as a `service` principal.
109
- * Without it or a manifest with `rls.apiKeys`, a tenant key verifies to
110
- * `null`.
111
- */
112
- readonly serviceRoles?: ServiceRoles<ApiKey>;
113
- /** The permissions `*` stands for. Without it, a key with `*` verifies to `null`. */
114
- readonly allPermissions?: readonly Permission[];
115
- };
116
- /**
117
- * better-supabase's API keys as a `CredentialVerifier`, for
118
- * `subjectFromApiKey` from `permdock/server`, which reads PermDock's
119
- * `pdk_<id>_<secret>` format: create the keys with `prefix: "pdk"`. The
120
- * credential id is the key's `publicId`, the id in the token. A personal key
121
- * is a `user` credential acting as its user (inside its tenant when the key
122
- * is limited to one), a tenant key a `service` credential holding
123
- * `serviceRoles` in its tenant, and the key's scopes are the credential's
124
- * permissions. better-supabase records the use when it verifies, so there is
125
- * no `touch`. A rotated key in its grace period verifies, and its credential
126
- * expires when the grace period ends. An invalid, revoked, expired or
127
- * rate-limited key, and a failed lookup, are `null`. `permdock/server` exports a different
128
- * `apiKeyVerifier`, over the application's own key records.
129
- */
130
- export declare function apiKeyVerifier(options: ApiKeyVerifierOptions): CredentialVerifier;
131
- /**
132
- * The `claim` and `tenantClaim` options of better-supabase's
133
- * `apiKeyClaims()`, from the manifest's `rls.apiKeys`, so a key's token
134
- * carries the scopes ceiling, tenant and roles the `rls generate` helpers
135
- * read. Throws when the manifest has no `rls.apiKeys`.
136
- */
137
- export declare function apiKeyClaimOptions(manifest: unknown): Pick<ApiKeyClaimsOptions, "claim" | "tenantClaim">;
138
- //#endregion
139
201
  //#region src/better-supabase/credentials.d.ts
140
202
  type CredentialGuardOptions = {
141
203
  /** The request's PermDock instance. */
@@ -183,41 +245,4 @@ type ToolPolicy<C> = {
183
245
  */
184
246
  export declare function toolPolicy<C>(options: ToolPolicyOptions<C>): ToolPolicy<C>;
185
247
  //#endregion
186
- //#region src/better-supabase/subject.d.ts
187
- /** An `AuthSession` of kind `apiKey`, from better-supabase's api-keys middleware. */
188
- type ApiKeySession = Extract<AuthSession, {
189
- readonly kind: "apiKey";
190
- }>;
191
- type ApiKeySessionOptions = {
192
- /** The definitions: the key's scopes become the subject's delegation, and `*` stands for all of them. */
193
- readonly permissions: PermissionTree;
194
- /** `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the default for `serviceRoles`. */
195
- readonly manifest?: unknown;
196
- /** The roles a tenant key holds in its tenant. Without it or a manifest with `rls.apiKeys`, a tenant key is anonymous. */
197
- readonly serviceRoles?: ServiceRoles<ApiKeySession>;
198
- };
199
- /** The claim, and the short code better-supabase writes for each feature key. */
200
- type FeatureClaim = EntitlementClaimOptions;
201
- type BetterSupabaseSubjectOptions = Omit<SupabaseSubjectOptions, "plans"> & {
202
- /** How `kind: 'apiKey'` sessions map. Without it they are anonymous. */
203
- readonly apiKeys?: ApiKeySessionOptions;
204
- /**
205
- * The claim `principal.plans` reads: its name (default `features`), or
206
- * `{ claim, keys }` with the same `entitlements.claim.keys` better-supabase
207
- * writes short codes with, so `plans` holds the feature keys. A code
208
- * without a key is dropped.
209
- */
210
- readonly plans?: string | FeatureClaim;
211
- };
212
- /**
213
- * `subjectFromSupabaseSession` for better-supabase's `AuthSession`, reading
214
- * `memberships` for the memberships and the entitlements module's `features`
215
- * claim for `principal.plans` (`plans` names another claim). With `apiKeys`,
216
- * a verified `apiKey` session is the key's credential subject: a personal key
217
- * acts as its user within the key's scopes, a tenant key as a `service`
218
- * principal holding `serviceRoles`. Without `apiKeys`, and for `anon`,
219
- * `service` and `invalid` sessions, the subject is anonymous.
220
- */
221
- export declare function subjectFromBetterSupabase(session: SupabaseSessionLike | ApiKeySession | null | undefined, options?: BetterSupabaseSubjectOptions): Subject<SupabasePrincipal> | Subject<CredentialPrincipal> | Subject;
222
- //#endregion
223
- export type { AccessPolicyOptions, ApiKeySession, ApiKeySessionOptions, ApiKeyVerifierOptions, AuthorizationProviderOptions, BetterSupabaseSubjectOptions, BucketAccess, CredentialGuardOptions, McpToolDecision, McpToolRef, ServiceRoles, SupabasePrincipal, ToolPolicy, ToolPolicyOptions, TopicAccess };
248
+ export type { AccessPolicyOptions, ApiKeySession, ApiKeySessionOptions, ApiKeyVerifierOptions, AuthorizationProviderOptions, AuthorizerOperation, AuthorizerOptions, BetterSupabaseSubjectOptions, BucketAccess, CredentialGuardOptions, McpToolDecision, McpToolRef, ServiceRoles, SupabasePrincipal, ToolPolicy, ToolPolicyOptions, TopicAccess };