permdock 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -1,10 +1,10 @@
1
- import { f as isFieldRelation } from "./permissions-DVoF6dMt.js";
2
- import { t as expiredAt } from "./expiry-BoBJ8Tvc.js";
3
- import { n as sameId } from "./ids-DC4V4CFu.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-CVdPrWN-.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());
@@ -206,40 +206,4 @@ function membershipField(resource, membershipResource, resources) {
206
206
  }
207
207
  }
208
208
  //#endregion
209
- //#region src/core/validity.ts
210
- /**
211
- * An instant as Unix seconds: a finite number is taken as seconds already, a
212
- * string must parse as RFC 3339. Anything else is `undefined`, and the caller
213
- * decides whether that is "absent" or an error.
214
- */
215
- function instantOf(input) {
216
- if (typeof input === "number") return Number.isFinite(input) ? Math.floor(input) : void 0;
217
- if (typeof input !== "string" || input.trim() === "") return;
218
- const millis = Date.parse(input);
219
- return Number.isFinite(millis) ? Math.floor(millis / 1e3) : void 0;
220
- }
221
- /**
222
- * The normalised validity of a grant, or `undefined` when neither bound is
223
- * set. Fail-closed at definition time: a bound that does not parse, or a
224
- * window that ends before it starts, throws so a typo never widens a grant.
225
- */
226
- function normalizeValidity(options, permissionKey) {
227
- const from = options.validFrom === void 0 ? void 0 : instantOf(options.validFrom);
228
- const until = options.validUntil === void 0 ? void 0 : instantOf(options.validUntil);
229
- if (options.validFrom !== void 0 && from === void 0) throw new Error(`PermDock: validFrom on '${permissionKey}' must be an RFC 3339 string or Unix seconds`);
230
- if (options.validUntil !== void 0 && until === void 0) throw new Error(`PermDock: validUntil on '${permissionKey}' must be an RFC 3339 string or Unix seconds`);
231
- if (from !== void 0 && until !== void 0 && until <= from) throw new Error(`PermDock: validUntil on '${permissionKey}' must be after validFrom`);
232
- if (from === void 0 && until === void 0) return;
233
- return Object.freeze({
234
- ...from === void 0 ? {} : { from },
235
- ...until === void 0 ? {} : { until }
236
- });
237
- }
238
- /** Whether a grant with this validity applies at `now` (Unix seconds); no validity always applies. */
239
- function isActive(validity, now) {
240
- if (validity === void 0) return true;
241
- if (validity.from !== void 0 && now < validity.from) return false;
242
- return validity.until === void 0 || now < validity.until;
243
- }
244
- //#endregion
245
- export { isMembershipExpired as a, membershipField as c, partitionsOf as d, relatesTo as f, tenantsOf as g, scopeField as h, inTeam as i, nestedAppliesWithoutRow as l, rowInScope as m, normalizeValidity as n, matchScopedMembership as o, resolveActiveTenant as p, heldRoleNamesIn as r, memberOfFields as s, isActive as t, nowSeconds as u };
209
+ export { memberOfFields as a, nowSeconds as c, resolveActiveTenant as d, rowInScope as f, matchScopedMembership as i, partitionsOf as l, tenantsOf as m, inTeam as n, membershipField as o, scopeField as p, isMembershipExpired as r, nestedAppliesWithoutRow as s, heldRoleNamesIn as t, relatesTo as u };
@@ -1,8 +1,9 @@
1
- import { C as Policy, D as PolicyVocabulary, Nr as Principal, Pr as Subject, Yn as Decision, ln as PermDock } from "../policy-IB6yxpC3.js";
2
- import { f as Permission } from "../permissions-DttnqqxC.js";
3
- import { f as ApprovalStore } from "../types-aqOHTHcp.js";
4
- import { a as ProblemDetails, t as ApprovalHint } from "../errors-DPdqI50v.js";
5
- import { t as InstanceOptions } from "../instance-options-jARdwfPN.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;
@@ -1,165 +1,16 @@
1
- import { t as compact } from "../compact-y6vfu2_f.js";
2
- import { a as deniedMessage, i as approvalMessage, n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-Cz5zn0mW.js";
3
- import { t as createPermDock$1 } from "../permdock-CbgvLnuo.js";
1
+ import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { a as deniedMessage, i as approvalMessage, n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
3
+ import { h as secondsAt } from "../time-DkWjdL98.js";
4
4
  import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
5
- import { i as isSubject } from "../subject-C6dLxqHU.js";
6
- import { l as storedApprovalToken, s as resumeDecision } from "../helpers-H_KARDVC.js";
5
+ import { c as withApp } from "../permdock-B9JxkBwC.js";
6
+ import { r as isSubject } from "../subject-BGoM5o8B.js";
7
+ import { n as readBodyText } from "../body-text-QcXok_SI.js";
8
+ import { l as storedApprovalToken, s as resumeDecision } from "../helpers-DTcZOzhF.js";
7
9
  import { t as timeoutSignal } from "../timeout-D51niuQP.js";
8
- import { t as instanceOptions } from "../instance-options-Dhhcnm3y.js";
9
- import { mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "node:fs";
10
- import path from "node:path";
10
+ import { n as resolveOrNull, t as buildInstance } from "../build-instance-BMnAudHn.js";
11
+ import { a as refreshCredential, o as revokeCredential, s as runDeviceFlow, t as TERMINAL_TIMEOUT_MS } from "../device-BARQ8eYG.js";
12
+ import { i as writeCredentials, n as deleteCredentials, r as readCredentials } from "../storage-C2bWdvJH.js";
11
13
  import { createInterface } from "node:readline";
12
- import { homedir } from "node:os";
13
- //#region src/terminal/device.ts
14
- /** Milliseconds an authorization server request may take. */
15
- const TERMINAL_TIMEOUT_MS = 1e4;
16
- function isRecord$1(value) {
17
- return value !== null && typeof value === "object" && !Array.isArray(value);
18
- }
19
- async function readJson(response) {
20
- try {
21
- const body = await response.json();
22
- return isRecord$1(body) ? body : null;
23
- } catch {
24
- return null;
25
- }
26
- }
27
- /** POSTs a form and reads a JSON object back; any network or parse failure is `null`. */
28
- async function postForm(runtime, url, fields) {
29
- const fetchImpl = runtime.fetch ?? fetch;
30
- try {
31
- return await readJson(await fetchImpl(url, {
32
- method: "POST",
33
- headers: { "content-type": "application/x-www-form-urlencoded" },
34
- body: new URLSearchParams(fields),
35
- signal: timeoutSignal(TERMINAL_TIMEOUT_MS)
36
- }));
37
- } catch {
38
- return null;
39
- }
40
- }
41
- async function discoverDeviceEndpoints(issuer, runtime) {
42
- const fetchImpl = runtime.fetch ?? fetch;
43
- const url = issuer.endsWith("/") ? `${issuer}.well-known/oauth-authorization-server` : `${issuer}/.well-known/oauth-authorization-server`;
44
- try {
45
- const body = await readJson(await fetchImpl(url, { signal: timeoutSignal(TERMINAL_TIMEOUT_MS) }));
46
- if (body === null) return {};
47
- return compact({
48
- authorizationEndpoint: typeof body["device_authorization_endpoint"] === "string" ? body["device_authorization_endpoint"] : void 0,
49
- tokenEndpoint: typeof body["token_endpoint"] === "string" ? body["token_endpoint"] : void 0,
50
- revocationEndpoint: typeof body["revocation_endpoint"] === "string" ? body["revocation_endpoint"] : void 0
51
- });
52
- } catch {
53
- return {};
54
- }
55
- }
56
- function parseAuthorization(body) {
57
- if (typeof body["device_code"] !== "string" || typeof body["user_code"] !== "string" || typeof body["verification_uri"] !== "string" || typeof body["expires_in"] !== "number") return null;
58
- return compact({
59
- device_code: body["device_code"],
60
- user_code: body["user_code"],
61
- verification_uri: body["verification_uri"],
62
- verification_uri_complete: typeof body["verification_uri_complete"] === "string" ? body["verification_uri_complete"] : void 0,
63
- expires_in: body["expires_in"],
64
- interval: typeof body["interval"] === "number" ? body["interval"] : void 0
65
- });
66
- }
67
- function parseToken(body, now) {
68
- if (typeof body["error"] === "string") return {
69
- ok: false,
70
- error: body["error"]
71
- };
72
- if (typeof body["access_token"] !== "string") return {
73
- ok: false,
74
- error: "invalid-token"
75
- };
76
- return {
77
- ok: true,
78
- credential: compact({
79
- access_token: body["access_token"],
80
- refresh_token: typeof body["refresh_token"] === "string" ? body["refresh_token"] : void 0,
81
- expires_at: typeof body["expires_in"] === "number" ? now + body["expires_in"] : void 0,
82
- token_type: typeof body["token_type"] === "string" ? body["token_type"] : void 0
83
- })
84
- };
85
- }
86
- async function runDeviceFlow(device, runtime, write) {
87
- const sleep = runtime.sleep ?? defaultSleep;
88
- const now = runtime.now ?? (() => Math.floor(Date.now() / 1e3));
89
- let authorizationEndpoint = device.authorizationEndpoint;
90
- let tokenEndpoint = device.tokenEndpoint;
91
- if ((authorizationEndpoint === void 0 || tokenEndpoint === void 0) && device.issuer !== void 0) {
92
- const discovered = await discoverDeviceEndpoints(device.issuer, runtime);
93
- authorizationEndpoint = authorizationEndpoint ?? discovered.authorizationEndpoint;
94
- tokenEndpoint = tokenEndpoint ?? discovered.tokenEndpoint;
95
- }
96
- if (authorizationEndpoint === void 0 || tokenEndpoint === void 0) return null;
97
- const startedBody = await postForm(runtime, authorizationEndpoint, {
98
- client_id: device.clientId,
99
- scope: device.scope ?? ""
100
- });
101
- const authorization = startedBody === null ? null : parseAuthorization(startedBody);
102
- if (authorization === null) return null;
103
- device.onPrompt?.(compact({
104
- user_code: authorization.user_code,
105
- verification_uri: authorization.verification_uri,
106
- verification_uri_complete: authorization.verification_uri_complete
107
- }));
108
- write(`Visit ${authorization.verification_uri} and enter ${authorization.user_code}\n`);
109
- if (authorization.verification_uri_complete !== void 0) device.open?.(authorization.verification_uri_complete);
110
- let interval = authorization.interval ?? 5;
111
- const deadline = now() + authorization.expires_in;
112
- while (now() < deadline) {
113
- await sleep(interval * 1e3);
114
- const polledBody = await postForm(runtime, tokenEndpoint, {
115
- grant_type: "urn:ietf:params:oauth:grant-type:device_code",
116
- device_code: authorization.device_code,
117
- client_id: device.clientId
118
- });
119
- if (polledBody === null) return null;
120
- const token = parseToken(polledBody, now());
121
- if (token.ok) return token.credential;
122
- if (token.error === "slow_down") {
123
- interval += 5;
124
- continue;
125
- }
126
- if (token.error === "authorization_pending") continue;
127
- return null;
128
- }
129
- return null;
130
- }
131
- async function refreshCredential(device, credential, runtime) {
132
- if (credential.refresh_token === void 0) return null;
133
- const now = runtime.now ?? (() => Math.floor(Date.now() / 1e3));
134
- let tokenEndpoint = device.tokenEndpoint;
135
- if (tokenEndpoint === void 0 && device.issuer !== void 0) tokenEndpoint = (await discoverDeviceEndpoints(device.issuer, runtime)).tokenEndpoint;
136
- if (tokenEndpoint === void 0) return null;
137
- const body = await postForm(runtime, tokenEndpoint, {
138
- grant_type: "refresh_token",
139
- refresh_token: credential.refresh_token,
140
- client_id: device.clientId
141
- });
142
- if (body === null) return null;
143
- const token = parseToken(body, now());
144
- return token.ok ? token.credential : null;
145
- }
146
- async function revokeCredential(device, credential, runtime) {
147
- if (device === void 0 || credential.refresh_token === void 0) return;
148
- let revocationEndpoint = device.revocationEndpoint;
149
- if (revocationEndpoint === void 0 && device.issuer !== void 0) revocationEndpoint = (await discoverDeviceEndpoints(device.issuer, runtime)).revocationEndpoint;
150
- if (revocationEndpoint === void 0) return;
151
- await postForm(runtime, revocationEndpoint, {
152
- token: credential.refresh_token,
153
- token_type_hint: "refresh_token",
154
- client_id: device.clientId
155
- });
156
- }
157
- function defaultSleep(ms) {
158
- return new Promise((resolve) => {
159
- setTimeout(resolve, ms);
160
- });
161
- }
162
- //#endregion
163
14
  //#region src/terminal/exit.ts
164
15
  const EX_OK = 0;
165
16
  const EX_USAGE = 64;
@@ -273,131 +124,6 @@ function formatDecision(decision, options = {}) {
273
124
  return `${details.detail}\n`;
274
125
  }
275
126
  //#endregion
276
- //#region src/terminal/storage.ts
277
- const FILE_MODE = 384;
278
- const DIR_MODE = 448;
279
- const GROUP_OR_WORLD = 63;
280
- function credentialsPath(service, runtime) {
281
- if (runtime.configDir !== void 0) return path.join(runtime.configDir, "credentials.json");
282
- const home = runtime.homedir ?? homedir;
283
- const env = runtime.env ?? process.env;
284
- if ((runtime.platform ?? process.platform) === "win32") {
285
- const appData = env["APPDATA"] ?? path.join(home(), "AppData", "Roaming");
286
- return path.join(appData, service, "credentials.json");
287
- }
288
- const xdg = env["XDG_CONFIG_HOME"] ?? path.join(home(), ".config");
289
- return path.join(xdg, service, "credentials.json");
290
- }
291
- function isRecord(value) {
292
- return value !== null && typeof value === "object" && !Array.isArray(value);
293
- }
294
- function parseCredential(value) {
295
- if (!isRecord(value) || typeof value["access_token"] !== "string") return null;
296
- return compact({
297
- access_token: value["access_token"],
298
- refresh_token: typeof value["refresh_token"] === "string" ? value["refresh_token"] : void 0,
299
- expires_at: typeof value["expires_at"] === "number" ? value["expires_at"] : void 0,
300
- token_type: typeof value["token_type"] === "string" ? value["token_type"] : void 0
301
- });
302
- }
303
- function keyringEntry(storage, profile) {
304
- if (storage.keyring === void 0) return null;
305
- try {
306
- return new storage.keyring(storage.service, profile);
307
- } catch {
308
- return null;
309
- }
310
- }
311
- function readKeyring(storage, profile) {
312
- const entry = keyringEntry(storage, profile);
313
- if (entry === null) return null;
314
- try {
315
- const raw = entry.getPassword();
316
- return typeof raw === "string" ? parseCredential(JSON.parse(raw)) : null;
317
- } catch {
318
- return null;
319
- }
320
- }
321
- function readCredentials(storage, profile, runtime) {
322
- return readKeyring(storage, profile) ?? readFile(storage.service, profile, runtime);
323
- }
324
- function readFile(service, profile, runtime) {
325
- const file = credentialsPath(service, runtime);
326
- let raw;
327
- try {
328
- const stat = statSync(file);
329
- if ((runtime.platform ?? process.platform) !== "win32" && (stat.mode & GROUP_OR_WORLD) !== 0) return null;
330
- raw = readFileSync(file, "utf8");
331
- } catch {
332
- return null;
333
- }
334
- try {
335
- const parsed = JSON.parse(raw);
336
- if (!isRecord(parsed) || !isRecord(parsed["profiles"])) return null;
337
- return parseCredential(parsed["profiles"][profile]);
338
- } catch {
339
- return null;
340
- }
341
- }
342
- /** The OS keychain when `storage.keyring` is set and works; otherwise the mode-0600 file. */
343
- function writeCredentials(storage, profile, credential, runtime) {
344
- const entry = keyringEntry(storage, profile);
345
- if (entry !== null) try {
346
- entry.setPassword(JSON.stringify(credential));
347
- deleteFile(storage.service, profile, runtime);
348
- return;
349
- } catch {}
350
- writeFile(storage.service, profile, credential, runtime);
351
- }
352
- function writeFile(service, profile, credential, runtime) {
353
- const file = credentialsPath(service, runtime);
354
- mkdirSync(path.dirname(file), {
355
- recursive: true,
356
- mode: DIR_MODE
357
- });
358
- let profiles = {};
359
- try {
360
- const existing = JSON.parse(readFileSync(file, "utf8"));
361
- if (isRecord(existing) && isRecord(existing["profiles"])) profiles = existing["profiles"];
362
- } catch {
363
- profiles = {};
364
- }
365
- profiles[profile] = credential;
366
- writeFileSync(file, `${JSON.stringify({ profiles }, null, 2)}\n`, {
367
- encoding: "utf8",
368
- mode: FILE_MODE
369
- });
370
- }
371
- function deleteCredentials(storage, profile, runtime) {
372
- const entry = keyringEntry(storage, profile);
373
- if (entry !== null) try {
374
- entry.deletePassword();
375
- } catch {}
376
- deleteFile(storage.service, profile, runtime);
377
- }
378
- function deleteFile(service, profile, runtime) {
379
- const file = credentialsPath(service, runtime);
380
- let parsed;
381
- try {
382
- parsed = JSON.parse(readFileSync(file, "utf8"));
383
- } catch {
384
- return;
385
- }
386
- if (!isRecord(parsed) || !isRecord(parsed["profiles"])) return;
387
- const profiles = {};
388
- for (const key of Object.keys(parsed["profiles"])) if (key !== profile) profiles[key] = parsed["profiles"][key];
389
- if (Object.keys(profiles).length === 0) {
390
- try {
391
- unlinkSync(file);
392
- } catch {}
393
- return;
394
- }
395
- writeFileSync(file, `${JSON.stringify({ profiles }, null, 2)}\n`, {
396
- encoding: "utf8",
397
- mode: FILE_MODE
398
- });
399
- }
400
- //#endregion
401
127
  //#region src/terminal/token.ts
402
128
  const JWT_PART = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/u;
403
129
  function looksLikeJwt(value) {
@@ -437,10 +163,12 @@ async function fromCiOidc(runtime, source) {
437
163
  if (typeof env["ACTIONS_ID_TOKEN_REQUEST_URL"] === "string" && typeof env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"] === "string") try {
438
164
  const url = new URL(env["ACTIONS_ID_TOKEN_REQUEST_URL"]);
439
165
  if (audience !== void 0) url.searchParams.set("audience", audience);
440
- const body = await (await fetchImpl(url, {
166
+ const response = await fetchImpl(url, {
441
167
  headers: { Authorization: `Bearer ${env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"]}` },
442
168
  signal: timeoutSignal(TERMINAL_TIMEOUT_MS)
443
- })).json();
169
+ });
170
+ const text = await readBodyText(response);
171
+ const body = text.ok ? JSON.parse(text.text) : null;
444
172
  if (body !== null && typeof body === "object" && "value" in body && typeof body.value === "string") return body.value;
445
173
  } catch {
446
174
  return null;
@@ -449,7 +177,7 @@ async function fromCiOidc(runtime, source) {
449
177
  }
450
178
  async function resolveToken(sources, options) {
451
179
  const walk = options.force === void 0 ? sources : [options.force];
452
- const now = options.runtime.now ?? (() => Math.floor(Date.now() / 1e3));
180
+ const now = () => secondsAt(options.runtime.now?.());
453
181
  for (const source of walk) {
454
182
  const name = sourceName(source);
455
183
  switch (name) {
@@ -580,7 +308,8 @@ const defaultTyped = (input) => {
580
308
  });
581
309
  });
582
310
  };
583
- function createPermDock(policy, options) {
311
+ function createPermDock(policy, given) {
312
+ const options = withApp(policy, given);
584
313
  const write = writeOf(options);
585
314
  const exit = options.runtime?.exit ?? defaultExit;
586
315
  const runtime = compact({
@@ -606,32 +335,23 @@ function createPermDock(policy, options) {
606
335
  token: tokenFor(profile, resolveOptions.source),
607
336
  profile
608
337
  };
609
- let user = null;
610
- try {
611
- user = await options.subject(context);
612
- } catch {
613
- user = null;
614
- }
615
- let actor;
616
- let delegation;
617
- if (options.actor !== void 0) try {
618
- const resolved = actorFromResolved(await options.actor(context));
619
- actor = resolved.actor;
620
- delegation = resolved.delegation;
621
- } catch {
622
- actor = void 0;
623
- delegation = void 0;
624
- }
625
- const built = await createPermDock$1(policy, user, compact({
626
- tenant: options.tenant,
627
- actor,
628
- delegation,
629
- ...instanceOptions(options)
630
- }));
338
+ const user = await resolveOrNull(() => options.subject(context));
339
+ const resolveActor = options.actor;
340
+ const resolved = resolveActor === void 0 ? null : await resolveOrNull(async () => actorFromResolved(await resolveActor(context)));
341
+ const { permdock: built } = await buildInstance({
342
+ policy,
343
+ user,
344
+ sources: options,
345
+ scope: {
346
+ tenant: options.tenant,
347
+ actor: resolved?.actor,
348
+ delegation: resolved?.delegation
349
+ }
350
+ });
631
351
  last = built;
632
352
  return built;
633
353
  };
634
- const permdock = (resolveOptions = {}) => {
354
+ const getPermDock = (resolveOptions = {}) => {
635
355
  if (resolveOptions.refresh === true || cached === void 0) cached = resolve(resolveOptions);
636
356
  return cached;
637
357
  };
@@ -653,7 +373,7 @@ function createPermDock(policy, options) {
653
373
  let decide;
654
374
  let first;
655
375
  try {
656
- instance = await permdock();
376
+ instance = await getPermDock();
657
377
  if (load !== void 0) {
658
378
  data = await load(...args);
659
379
  if (permission.kind === "instance" && (data === null || data === void 0)) {
@@ -666,10 +386,10 @@ function createPermDock(policy, options) {
666
386
  }
667
387
  decide = instance.decide;
668
388
  first = decide(permission, data, dryRun ? {
669
- source: "simulate",
389
+ call: "simulate",
670
390
  adapter: "terminal"
671
391
  } : {
672
- source: "adapter",
392
+ call: "adapter",
673
393
  adapter: "terminal"
674
394
  });
675
395
  } catch {
@@ -726,7 +446,7 @@ function createPermDock(policy, options) {
726
446
  return exit(77);
727
447
  }
728
448
  const again = decide(permission, data, compact({
729
- source: "adapter",
449
+ call: "adapter",
730
450
  adapter: "terminal"
731
451
  }));
732
452
  if (again.outcome === "denied") {
@@ -821,7 +541,7 @@ function createPermDock(policy, options) {
821
541
  last = void 0;
822
542
  };
823
543
  return {
824
- permdock,
544
+ getPermDock,
825
545
  protect,
826
546
  filterCommands,
827
547
  format,