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.
- package/README.md +37 -35
- package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
- package/dist/a2a/index.d.ts +8 -6
- package/dist/a2a/index.js +21 -31
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-B4R5fnMU.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -23
- package/dist/ai-sdk/index.js +38 -21
- package/dist/app-data-MuyzVqX8.js +60 -0
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-DJ6Yd5z1.js +995 -0
- package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
- package/dist/arazzo-B6lebmiQ.js +36 -0
- package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-Dg8XsRaO.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +228 -75
- package/dist/automation-BMZPIVUM.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +11 -23
- package/dist/better-supabase/index.d.ts +438 -86
- package/dist/better-supabase/index.js +1027 -184
- package/dist/bind--9EFVYWF.d.ts +38 -0
- package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/build-instance-BMnAudHn.js +52 -0
- package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
- package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
- package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/catalog-BECMPrwc.js +100 -0
- package/dist/catalog-DjhMYYCq.js +1 -0
- package/dist/catalog-R_A__RsH.js +52 -0
- package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +26 -30
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +15 -45
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +20 -6
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +240 -347
- package/dist/cloud-CIoHNevm.js +87 -0
- package/dist/codemod-Bmj9dWMH.js +37 -0
- package/dist/codemod-Cxvvc70T.js +2084 -0
- package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
- package/dist/collect-DloHbDVa.js +55 -0
- package/dist/collect-FlXJlhus.js +1 -0
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
- package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
- package/dist/completion-BqhRBJD8.js +143 -0
- package/dist/config-B46rm9sc.js +26 -0
- package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
- package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
- package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
- package/dist/constants-DcJABbLW.js +20 -0
- package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +18 -18
- package/dist/create-0VZ7Pdiu.d.ts +107 -0
- package/dist/create-BDS7wc3y.d.ts +138 -0
- package/dist/create-BFfm17UA.d.ts +110 -0
- package/dist/create-BWRSXgOF.js +403 -0
- package/dist/create-C3b4B5eF.js +130 -0
- package/dist/create-DnrmLnLW.js +323 -0
- package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/deciding-columns-Sq12mEA6.js +123 -0
- package/dist/delegation-DaXVdDhM.js +286 -0
- package/dist/delegation-input-FTxMK3ji.js +19 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/denied-text-D8jDHgsl.d.ts +19 -0
- package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
- package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/diff-CxZo9pTq.js +37 -0
- package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
- package/dist/doctor-CxiwSfqH.js +44 -0
- package/dist/doctor-DFjUxf2f.js +2361 -0
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +6 -14
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +14 -13
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/evaluate-_R8QkWaf.js +1732 -0
- package/dist/evaluations-16UqqQ6W.d.ts +32 -0
- package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +23 -29
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +14 -12
- package/dist/fastify/index.d.ts +26 -13
- package/dist/fastify/index.js +17 -36
- package/dist/fetch-adapter-g0ypLkID.js +120 -0
- package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
- package/dist/fields-D9tPVUUS.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
- package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
- package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
- package/dist/grantee-Cn1HyUsI.js +254 -0
- package/dist/grantee-conditions-CcXf8hMM.js +271 -0
- package/dist/grantee-match-DHArqY82.js +142 -0
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +14 -13
- package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
- package/dist/hosted-DBDX0M-P.d.ts +78 -0
- package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
- package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
- package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
- package/dist/index-BcHcPyIo.d.ts +110 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-Chrs5fQ-.d.ts +210 -0
- package/dist/index-CxGUswIC.d.ts +431 -0
- package/dist/index-D8EovfsP.d.ts +91 -0
- package/dist/index-DOVf7RJv.d.ts +900 -0
- package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
- package/dist/index.d.ts +20 -14
- package/dist/index.js +33 -23
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
- package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +166 -145
- package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +6 -14
- package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-CtKR3GXL.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
- package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
- package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
- package/dist/mcp/index.d.ts +36 -9
- package/dist/mcp/index.js +476 -448
- package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +20 -20
- package/dist/next/index.d.ts +40 -20
- package/dist/next/index.js +37 -39
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/ocsf-BFp-PZZA.js +126 -0
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +18 -25
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
- package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
- package/dist/openapi-ahr8rHu3.js +138 -0
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-CxybZErY.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +23 -20
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +53 -27
- package/dist/output-Dyw8fyPF.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/output-files-DhRBBE4n.js +138 -0
- package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
- package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
- package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
- package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
- package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +47 -29
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-B9JxkBwC.js +868 -0
- package/dist/permdock-D7eeLJER.d.ts +502 -0
- package/dist/permission-registry-Br4jSNVi.js +385 -0
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
- package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
- package/dist/policies-CO1oOymN.js +295 -0
- package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
- package/dist/policy-DLZJ5gAp.js +399 -0
- package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
- package/dist/postgrest-CW0IqC-U.js +566 -0
- package/dist/postgrest-NUqZT-RB.d.ts +100 -0
- package/dist/powersync-BHfuehf3.js +62 -0
- package/dist/powersync-CbzkqL_M.js +1 -0
- package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +6 -12
- package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
- package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
- package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/protected-DEPHc2xV.d.ts +38 -0
- package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
- package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
- package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
- package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
- package/dist/pull-BgIfno6w.js +256 -0
- package/dist/pull-ByOks_Tg.js +1 -0
- package/dist/push-CmFVBOeI.js +116 -0
- package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
- package/dist/pushed-policy-DobP7AHI.js +238 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -63
- package/dist/react-native/index.js +45 -27
- package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/relation-walk-3OyDBF0S.js +186 -0
- package/dist/relations-BnCWnJGI.js +163 -0
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/request-context-BTRTG7OT.js +71 -0
- package/dist/request-context-C2_1lchh.d.ts +5 -0
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/resource-relations-D_jw0BFx.js +243 -0
- package/dist/retire-CALjIQ7e.js +240 -0
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BA8an5Ap.js +336 -0
- package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
- package/dist/role-builder-CXbis5-X.js +623 -0
- package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
- package/dist/run-CNsApDpd.js +1 -0
- package/dist/run-DOfMtc9V.js +723 -0
- package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
- package/dist/scan-BOI5tJ-6.js +29 -0
- package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
- package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
- package/dist/server/index.d.ts +13 -134
- package/dist/server/index.js +13 -10
- package/dist/server-DqCT4CgZ.js +453 -0
- package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/shared-CD11nBbC.js +304 -0
- package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/sink-Bj_lDUDq.d.ts +225 -0
- package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-CXUWfsNy.js +269 -0
- package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
- package/dist/solid/index.d.ts +24 -25
- package/dist/solid/index.js +41 -11
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
- package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
- package/dist/sql-B5T1IL83.js +55 -0
- package/dist/src-DLfUWFAI.js +1851 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +440 -106
- package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
- package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
- package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
- package/dist/stores-ClZUgeoP.d.ts +30 -0
- package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
- package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +13 -6
- package/dist/supabase/middleware.js +16 -11
- package/dist/supabase-9pqI57pW.js +92 -0
- package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
- package/dist/supabase-hook-CXcGpHqq.js +1 -0
- package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
- package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +11 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +26 -12
- package/dist/svelte/runtime.d.ts +10 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +5 -5
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +36 -316
- package/dist/testing/index.d.ts +391 -106
- package/dist/testing/index.js +4574 -1286
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
- package/dist/tool-refusal-CMLN5xhn.js +41 -0
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +18 -17
- package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
- package/dist/types-BNORmDM8.d.ts +172 -0
- package/dist/types-BjV-fqcA.d.ts +57 -0
- package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
- package/dist/types-C8-KNsFf.d.ts +107 -0
- package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
- package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
- package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
- package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
- package/dist/types-DX0LaKTb.d.ts +157 -0
- package/dist/types-DiQjupG2.d.ts +332 -0
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/types-_sHy8BQf.d.ts +65 -0
- package/dist/types-fbZ7JEXr.d.ts +89 -0
- package/dist/types-tIgIeIKJ.d.ts +66 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CHOtwL19.js +1 -0
- package/dist/usage-DHtE8j4E.js +32 -0
- package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
- package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
- package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
- package/dist/validity-CZ7-y0Cj.js +79 -0
- package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
- package/dist/verify-DbCL9bnB.js +1770 -0
- package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
- package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
- package/dist/vue/index.d.ts +25 -21
- package/dist/vue/index.js +25 -9
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/waiter-CKy4MQSY.d.ts +36 -0
- package/dist/watch-Cb-NcaUw.js +1 -0
- package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +13 -37
- package/dist/where-scope-Dv-WTP-w.js +306 -0
- package/dist/who-can-D0QoYbEb.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/wrap-Bd1Tejur.d.ts +15 -0
- package/dist/wrap-gX61EtpB.js +27 -0
- package/package.json +140 -41
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +129 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +13 -8
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
- package/skills/permdock-wire/SKILL.md +18 -12
- package/skills/permdock-wire/references/adapters.md +146 -50
- package/skills/permdock-wire/references/policy-options.md +15 -6
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DbYAuNkG.js +0 -224
- package/dist/arazzo-C9chp3ST.js +0 -54
- package/dist/bind-C_ob3LKa.d.ts +0 -25
- package/dist/catalog-CRW5Mx_B.js +0 -2
- package/dist/catalog-CYj-mX2O.js +0 -48
- package/dist/catalog-DWF5cYqB.js +0 -55
- package/dist/cloud-CfwZ39Rl.js +0 -50
- package/dist/cloud-DWLXO2af.js +0 -118
- package/dist/collect-CHB22Sx4.js +0 -83
- package/dist/collect-DSWOk19R.js +0 -2
- package/dist/commands-BeaGNj_o.js +0 -97
- package/dist/config-ir40y8m0.js +0 -36
- package/dist/create-CMwIl-w2.js +0 -253
- package/dist/delegation-D8pUEuce.js +0 -103
- package/dist/diff-C9RDjjhs.js +0 -48
- package/dist/doctor-Djh6JDEk.js +0 -53
- package/dist/doctor-DvH0IQff.js +0 -1194
- package/dist/doctor-collect-CjdO0wQX.js +0 -665
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/evaluation-items-CfCCejQd.js +0 -40
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-BMl1RxoX.js +0 -26
- package/dist/grantee-Cv5Sogfv.js +0 -602
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-0nNqHspG.d.ts +0 -6
- package/dist/index-BNc7Wer_.d.ts +0 -483
- package/dist/index-C7Tw7MaW.d.ts +0 -201
- package/dist/instance-options-Dhhcnm3y.js +0 -22
- package/dist/load-DwJUafYN.js +0 -2
- package/dist/manifest-iaoBXHKc.js +0 -783
- package/dist/map-AcxK9o_D.js +0 -147
- package/dist/may-use-DndQ5tQ-.js +0 -77
- package/dist/openapi-CQTsgKoB.js +0 -164
- package/dist/permdock-CbgvLnuo.js +0 -3479
- package/dist/permissions-DVoF6dMt.js +0 -662
- package/dist/policy-xyWg7QdR.js +0 -1122
- package/dist/powersync-CrBX8hY6.js +0 -2
- package/dist/powersync-DE19b9dT.js +0 -62
- package/dist/protected-BdnIEFkY.d.ts +0 -27
- package/dist/protected-xAr24FEC.d.ts +0 -40
- package/dist/relations-cjOL01hZ.js +0 -505
- package/dist/rls-P-BeBx0n.js +0 -238
- package/dist/rls-graph-CHwx0V8q.js +0 -435
- package/dist/rls-ownership-DcYlZ09B.js +0 -843
- package/dist/rls-shared-Cewd_-zI.js +0 -495
- package/dist/rls-verify-CMv9H3wV.js +0 -746
- package/dist/run-BWc9qqvE.js +0 -174
- package/dist/server-DlZ28Oz5.js +0 -268
- package/dist/sink-B1fZzIMf.d.ts +0 -104
- package/dist/sink-Bd9PSyfq.js +0 -141
- package/dist/skills-C5CbhhpG.js +0 -56
- package/dist/snapshot-Enxd0n-s.js +0 -975
- package/dist/sql-xdg5f4Fi.js +0 -27
- package/dist/src-BDwEZWrZ.js +0 -568
- package/dist/store-jOBYpiXC.d.ts +0 -36
- package/dist/stores-C0IMQrGI.d.ts +0 -52
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-config-Bj3iDH2I.js +0 -472
- package/dist/supabase-hook-gd3s8bxB.js +0 -2
- package/dist/supabase-s4o9s1O1.js +0 -83
- package/dist/thenable-okc2xDsj.js +0 -10
- package/dist/types-BnIEz1sU.d.ts +0 -48
- package/dist/types-Bvc4oWT6.d.ts +0 -9
- package/dist/types-CKNSyIf_.d.ts +0 -52
- package/dist/types-Cq_H8N_X.d.ts +0 -197
- package/dist/usage-B0YuTQRO.js +0 -42
- package/dist/usage-DorAJiU_.js +0 -2
- package/dist/vocabulary-DA8a8zif.d.ts +0 -56
- package/dist/watch-BwxLTYMZ.js +0 -2
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
import { t as compact } from "./compact-
|
|
2
|
-
import { t as describe } from "./describe-
|
|
3
|
-
import { a as deniedMessage } from "./errors-
|
|
4
|
-
import { t as
|
|
1
|
+
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
+
import { t as describe } from "./describe-BybMRY7A.js";
|
|
3
|
+
import { a as deniedMessage } from "./errors-BKy0EfhN.js";
|
|
4
|
+
import { t as actorMayCallTool } from "./delegation-DaXVdDhM.js";
|
|
5
5
|
import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
|
|
6
|
-
import {
|
|
7
|
-
import { l as storedApprovalToken, s as resumeDecision } from "./helpers-
|
|
8
|
-
import {
|
|
9
|
-
import { n as tenantScope, t as actorFrom } from "./adapter-context-
|
|
6
|
+
import { c as withApp } from "./permdock-B9JxkBwC.js";
|
|
7
|
+
import { l as storedApprovalToken, s as resumeDecision } from "./helpers-DTcZOzhF.js";
|
|
8
|
+
import { n as resolveOrNull } from "./build-instance-BMnAudHn.js";
|
|
9
|
+
import { n as tenantScope, t as actorFrom } from "./adapter-context-CRhqyzCk.js";
|
|
10
|
+
import { n as requestContext, t as buildReportingInstance } from "./request-context-BTRTG7OT.js";
|
|
11
|
+
//#region src/agent/denied-text.ts
|
|
12
|
+
/** The hook's text, or `event.text` when there is no hook or it throws or returns no string. */
|
|
13
|
+
function refusalText(hook, event, report) {
|
|
14
|
+
if (hook === void 0) return event.text;
|
|
15
|
+
try {
|
|
16
|
+
const text = hook(event);
|
|
17
|
+
if (text === void 0) return event.text;
|
|
18
|
+
if (typeof text !== "string" || text === "") throw new TypeError("PermDock: deniedText must return a non-empty string or undefined");
|
|
19
|
+
return text;
|
|
20
|
+
} catch (error) {
|
|
21
|
+
report(error);
|
|
22
|
+
return event.text;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
10
26
|
//#region src/agent/reason.ts
|
|
11
27
|
function modelReason(decision, permission, subjectId) {
|
|
12
28
|
if (decision.outcome === "denied") return deniedMessage(permission?.key ?? "unknown", subjectId, decision.denials, decision.alternatives.map((leaf) => leaf.key));
|
|
@@ -29,35 +45,43 @@ function approvalTokenOf(context) {
|
|
|
29
45
|
function runDecide(permdock, permission, data, how) {
|
|
30
46
|
return permdock.decide(permission, data, how);
|
|
31
47
|
}
|
|
32
|
-
function createAgentKernel(policy,
|
|
48
|
+
function createAgentKernel(policy, given) {
|
|
49
|
+
const options = withApp(policy, given);
|
|
33
50
|
const cache = /* @__PURE__ */ new WeakMap();
|
|
51
|
+
const reporters = /* @__PURE__ */ new WeakMap();
|
|
52
|
+
const report = (permdock, error) => {
|
|
53
|
+
if (permdock !== void 0) reporters.get(permdock)?.(error);
|
|
54
|
+
};
|
|
34
55
|
const instance = (context) => {
|
|
35
56
|
if (typeof context === "object" && context !== null) {
|
|
36
57
|
const hit = cache.get(context);
|
|
37
58
|
if (hit !== void 0) return hit;
|
|
38
59
|
}
|
|
39
60
|
const built = (async () => {
|
|
40
|
-
|
|
41
|
-
try {
|
|
42
|
-
user = await options.subject(context);
|
|
43
|
-
} catch {
|
|
44
|
-
user = null;
|
|
45
|
-
}
|
|
61
|
+
const user = await resolveOrNull(() => options.subject(context));
|
|
46
62
|
const actor = await actorFrom(options.actor, context);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
delegation = await options.delegation(context);
|
|
50
|
-
} catch {
|
|
51
|
-
delegation = void 0;
|
|
52
|
-
}
|
|
63
|
+
const delegate = options.delegation;
|
|
64
|
+
const delegation = delegate === void 0 ? void 0 : await resolveOrNull(() => delegate(context)) ?? void 0;
|
|
53
65
|
const { tenant } = await tenantScope(options.tenant, context);
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
const errors = [];
|
|
67
|
+
const requestValues = await requestContext(options.context, context, errors);
|
|
68
|
+
const wrap = options.wrap;
|
|
69
|
+
const typedWrap = (created) => wrap === void 0 ? created : wrap(created);
|
|
70
|
+
const { permdock, report: reportTo } = await buildReportingInstance({
|
|
71
|
+
policy,
|
|
72
|
+
user,
|
|
73
|
+
sources: options,
|
|
74
|
+
scope: {
|
|
75
|
+
tenant,
|
|
76
|
+
actor,
|
|
77
|
+
delegation,
|
|
78
|
+
context: requestValues
|
|
79
|
+
},
|
|
80
|
+
errors,
|
|
81
|
+
wrap: typedWrap
|
|
82
|
+
});
|
|
83
|
+
reporters.set(permdock, reportTo);
|
|
84
|
+
return permdock;
|
|
61
85
|
})();
|
|
62
86
|
if (typeof context === "object" && context !== null) {
|
|
63
87
|
cache.set(context, built);
|
|
@@ -74,6 +98,23 @@ function createAgentKernel(policy, options) {
|
|
|
74
98
|
let permdock;
|
|
75
99
|
try {
|
|
76
100
|
permdock = await instance(context);
|
|
101
|
+
if (how.tool !== void 0 && !actorMayCallTool(permdock.subject.actor, how.tool)) {
|
|
102
|
+
const refused = {
|
|
103
|
+
outcome: "denied",
|
|
104
|
+
denials: [{
|
|
105
|
+
role: null,
|
|
106
|
+
reason: "agent-tool-not-delegated"
|
|
107
|
+
}],
|
|
108
|
+
alternatives: []
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
ok: true,
|
|
112
|
+
permdock,
|
|
113
|
+
data: void 0,
|
|
114
|
+
raw: refused,
|
|
115
|
+
decision: refused
|
|
116
|
+
};
|
|
117
|
+
}
|
|
77
118
|
let data;
|
|
78
119
|
if (binding.data !== void 0) {
|
|
79
120
|
try {
|
|
@@ -91,11 +132,16 @@ function createAgentKernel(policy, options) {
|
|
|
91
132
|
permdock
|
|
92
133
|
};
|
|
93
134
|
}
|
|
94
|
-
const raw = runDecide(permdock, binding.permission, data, {
|
|
135
|
+
const raw = runDecide(permdock, binding.permission, data, compact({
|
|
95
136
|
adapter: options.adapter,
|
|
96
137
|
boundary,
|
|
97
|
-
|
|
98
|
-
|
|
138
|
+
call: how.call,
|
|
139
|
+
args,
|
|
140
|
+
operation: binding.meta === void 0 ? void 0 : {
|
|
141
|
+
name: binding.name ?? "",
|
|
142
|
+
meta: binding.meta
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
99
145
|
const decision = how.resume ? await resumeDecision({
|
|
100
146
|
decision: raw,
|
|
101
147
|
permission: binding.permission,
|
|
@@ -120,13 +166,13 @@ function createAgentKernel(policy, options) {
|
|
|
120
166
|
});
|
|
121
167
|
}
|
|
122
168
|
};
|
|
123
|
-
const check = (binding, args, context, checkOptions = {}) => run(binding, args, context, {
|
|
169
|
+
const check = (binding, args, context, checkOptions = {}) => run(binding, args, context, compact({
|
|
124
170
|
resume: checkOptions.simulate !== true,
|
|
125
|
-
|
|
126
|
-
decideOptions: checkOptions
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
171
|
+
call: checkOptions.simulate === true ? "simulate" : "adapter",
|
|
172
|
+
decideOptions: checkOptions,
|
|
173
|
+
tool: checkOptions.tool
|
|
174
|
+
}));
|
|
175
|
+
const verdictOf = (checked, binding, toolName) => {
|
|
130
176
|
if (!checked.ok) {
|
|
131
177
|
if (checked.failure !== "no-data" || checked.permdock === void 0) return {
|
|
132
178
|
outcome: "denied",
|
|
@@ -171,28 +217,58 @@ function createAgentKernel(policy, options) {
|
|
|
171
217
|
reason: modelReason(decision, binding.permission, permdock.subject.principal?.id)
|
|
172
218
|
};
|
|
173
219
|
};
|
|
220
|
+
const evaluate = async (binding, toolName, args, context, decideOptions = {}) => {
|
|
221
|
+
const checked = await check(binding, args, context, {
|
|
222
|
+
...decideOptions,
|
|
223
|
+
tool: toolName
|
|
224
|
+
});
|
|
225
|
+
return relabel(verdictOf(checked, binding, toolName), checked.permdock);
|
|
226
|
+
};
|
|
227
|
+
const relabel = (verdict, permdock) => {
|
|
228
|
+
const hook = options.deniedText;
|
|
229
|
+
if (hook === void 0 || verdict.outcome === "granted") return verdict;
|
|
230
|
+
const onError = (error) => {
|
|
231
|
+
report(permdock, error);
|
|
232
|
+
};
|
|
233
|
+
if (verdict.outcome === "denied") return {
|
|
234
|
+
...verdict,
|
|
235
|
+
reason: refusalText(hook, {
|
|
236
|
+
decision: verdict.decision,
|
|
237
|
+
permission: verdict.permission,
|
|
238
|
+
text: verdict.reason
|
|
239
|
+
}, onError)
|
|
240
|
+
};
|
|
241
|
+
return {
|
|
242
|
+
...verdict,
|
|
243
|
+
summary: refusalText(hook, {
|
|
244
|
+
decision: verdict.decision,
|
|
245
|
+
permission: verdict.permission,
|
|
246
|
+
text: verdict.summary
|
|
247
|
+
}, onError)
|
|
248
|
+
};
|
|
249
|
+
};
|
|
174
250
|
const tokenFor = async (binding, args, context) => {
|
|
175
251
|
const checked = await run(binding, args, context, {
|
|
176
252
|
resume: false,
|
|
177
|
-
|
|
253
|
+
call: "adapter",
|
|
178
254
|
decideOptions: {}
|
|
179
255
|
});
|
|
180
256
|
return checked.ok && checked.raw.outcome === "approval-required" ? checked.raw.token : void 0;
|
|
181
257
|
};
|
|
182
258
|
const decideTool = (toolName, args, context, decideOptions = {}) => {
|
|
183
259
|
const binding = Object.hasOwn(tools, toolName) ? tools[toolName] : void 0;
|
|
184
|
-
if (binding === void 0) return Promise.resolve({
|
|
260
|
+
if (binding === void 0) return Promise.resolve(relabel({
|
|
185
261
|
outcome: "denied",
|
|
186
262
|
decision: null,
|
|
187
263
|
permission: void 0,
|
|
188
264
|
reason: unmappedReason(toolName)
|
|
189
|
-
});
|
|
265
|
+
}, void 0));
|
|
190
266
|
return evaluate(binding, toolName, args, context, decideOptions);
|
|
191
267
|
};
|
|
192
268
|
const allowedToolNames = async (context) => {
|
|
193
269
|
const permdock = await instance(context);
|
|
194
270
|
const allowed = /* @__PURE__ */ new Set();
|
|
195
|
-
for (const [name, binding] of Object.entries(tools)) if (
|
|
271
|
+
for (const [name, binding] of Object.entries(tools)) if (actorMayCallTool(permdock.subject.actor, name) && permdock.mayUse(binding.permission)) allowed.add(name);
|
|
196
272
|
return allowed;
|
|
197
273
|
};
|
|
198
274
|
return {
|
|
@@ -201,8 +277,9 @@ function createAgentKernel(policy, options) {
|
|
|
201
277
|
evaluate,
|
|
202
278
|
check,
|
|
203
279
|
tokenFor,
|
|
204
|
-
allowedToolNames
|
|
280
|
+
allowedToolNames,
|
|
281
|
+
report
|
|
205
282
|
};
|
|
206
283
|
}
|
|
207
284
|
//#endregion
|
|
208
|
-
export { createAgentKernel as n, approvalTokenOf as t };
|
|
285
|
+
export { createAgentKernel as n, refusalText as r, approvalTokenOf as t };
|
package/dist/kysely/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Rt as Instant, ir as Subject, lr as Condition } from "../policy-types-DzwivBgR.js";
|
|
2
|
+
import { c as WhereResult } from "../permdock-D7eeLJER.js";
|
|
2
3
|
import { r as RelationsMapping } from "../graph-sql-B-dsAT6j.js";
|
|
3
|
-
import { s as MembershipsMapping } from "../compile-
|
|
4
|
+
import { s as MembershipsMapping } from "../compile-Ckm2HqBZ.js";
|
|
4
5
|
import { n as WithSubjectOptions, t as RowCheck } from "../row-check-Dt35czLy.js";
|
|
5
6
|
//#region src/kysely/types.d.ts
|
|
6
7
|
type KyselySelectQuery = {
|
|
@@ -33,7 +34,8 @@ type KyselyWhereOptions = {
|
|
|
33
34
|
readonly memberships?: MembershipsMapping;
|
|
34
35
|
/** Where the relation graph lives; graph grants compile to Postgres subqueries with it and are refused without. */
|
|
35
36
|
readonly relations?: RelationsMapping;
|
|
36
|
-
|
|
37
|
+
/** The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults to the current time. */
|
|
38
|
+
readonly now?: Instant;
|
|
37
39
|
/** Kysely's `sql` tag, for graph subqueries on runtimes without `require`; loaded from the `kysely` peer by default. */
|
|
38
40
|
readonly sql?: KyselySql;
|
|
39
41
|
};
|
package/dist/kysely/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as compact } from "../compact-
|
|
2
|
-
import {
|
|
3
|
-
import { n as escapeLike, t as compileWhere } from "../compile-
|
|
4
|
-
import {
|
|
1
|
+
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
+
import { t as assertSafeKey } from "../paths-DXSHAMIa.js";
|
|
3
|
+
import { n as escapeLike, t as compileWhere } from "../compile-CMqMx_IN.js";
|
|
4
|
+
import { a as rowCheckFrom, i as templateOf, r as subjectStatements, s as loadPeer, t as statementTemplate } from "../subject-settings-CkEwrw3W.js";
|
|
5
5
|
//#region src/kysely/to-where.ts
|
|
6
6
|
function ident(name) {
|
|
7
7
|
assertSafeKey(name, "sql identifier");
|
|
@@ -34,13 +34,7 @@ function containsExpr(eb, column, field, value, options) {
|
|
|
34
34
|
}
|
|
35
35
|
function loadSql(injected) {
|
|
36
36
|
if (injected !== void 0) return injected;
|
|
37
|
-
|
|
38
|
-
try {
|
|
39
|
-
if (loader === void 0) throw new Error("no module loader");
|
|
40
|
-
return loader.createRequire(import.meta.url)("kysely").sql;
|
|
41
|
-
} catch {
|
|
42
|
-
throw new Error("PermDock: graph grants and withSubject in permdock/kysely need the kysely peer; pass `sql` on runtimes without require");
|
|
43
|
-
}
|
|
37
|
+
return loadPeer("kysely", "PermDock: graph grants and withSubject in permdock/kysely need the kysely peer; pass `sql` on runtimes without require").sql;
|
|
44
38
|
}
|
|
45
39
|
function graphExpr(node, table, options) {
|
|
46
40
|
const sql = loadSql(options.sql);
|
|
@@ -54,9 +48,7 @@ function graphExpr(node, table, options) {
|
|
|
54
48
|
values.push("column" in part ? sql.ref(col(table, part.column, options.columns)) : "subject" in part ? node.subject : part.value);
|
|
55
49
|
strings.push("");
|
|
56
50
|
}
|
|
57
|
-
|
|
58
|
-
Object.defineProperty(template, "raw", { value: strings });
|
|
59
|
-
return sql(template, ...values);
|
|
51
|
+
return sql(templateOf(strings), ...values);
|
|
60
52
|
}
|
|
61
53
|
function render(eb, node, table, options) {
|
|
62
54
|
switch (node.kind) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createContext, useLayoutEffect, useRef, useState } from "react";
|
|
2
2
|
//#region src/react/context.ts
|
|
3
3
|
const PermDockStoreContext = createContext(null);
|
|
4
|
+
const PermDockUiContext = createContext({});
|
|
4
5
|
const PermDockSnapshotPromiseContext = createContext(null);
|
|
5
6
|
//#endregion
|
|
6
7
|
//#region src/react/keyed.ts
|
|
@@ -34,7 +35,8 @@ function sameHeaders(a, b) {
|
|
|
34
35
|
* Store options whose identity survives a re-render, so an inline `headers`
|
|
35
36
|
* object or `fetch` arrow does not rebuild the store and drop its snapshot.
|
|
36
37
|
* `headers` compare by value, unless `headersByValue` is `false` for a store
|
|
37
|
-
* that only reads `readHeaders`; `fetch
|
|
38
|
+
* that only reads `readHeaders`; `fetch`, `verifier`, `onSnapshot` and
|
|
39
|
+
* `onClear` call the latest prop.
|
|
38
40
|
*/
|
|
39
41
|
function useLiveOptions(props, headersByValue = true) {
|
|
40
42
|
const latest = useRef(props);
|
|
@@ -49,12 +51,23 @@ function useLiveOptions(props, headersByValue = true) {
|
|
|
49
51
|
const verifier = latest.current.verifier;
|
|
50
52
|
return verifier === void 0 ? Promise.reject(/* @__PURE__ */ new Error("PermDock: the verifier prop was removed.")) : verifier.verify(token, expectations);
|
|
51
53
|
} }));
|
|
54
|
+
const [liveOnSnapshot] = useState(() => {
|
|
55
|
+
const call = (snapshot, tenant, raw) => {
|
|
56
|
+
latest.current.onSnapshot?.(snapshot, tenant, raw);
|
|
57
|
+
};
|
|
58
|
+
return call;
|
|
59
|
+
});
|
|
60
|
+
const [liveOnClear] = useState(() => () => {
|
|
61
|
+
latest.current.onClear?.();
|
|
62
|
+
});
|
|
52
63
|
return {
|
|
53
64
|
headers,
|
|
54
65
|
readHeaders,
|
|
55
66
|
fetch: liveFetch,
|
|
56
|
-
verifier: props.verifier === void 0 ? void 0 : liveVerifier
|
|
67
|
+
verifier: props.verifier === void 0 ? void 0 : liveVerifier,
|
|
68
|
+
onSnapshot: props.onSnapshot === void 0 ? void 0 : liveOnSnapshot,
|
|
69
|
+
onClear: props.onClear === void 0 ? void 0 : liveOnClear
|
|
57
70
|
};
|
|
58
71
|
}
|
|
59
72
|
//#endregion
|
|
60
|
-
export { PermDockStoreContext as i, useKeyed as n, PermDockSnapshotPromiseContext as r, useLiveOptions as t };
|
|
73
|
+
export { PermDockUiContext as a, PermDockStoreContext as i, useKeyed as n, PermDockSnapshotPromiseContext as r, useLiveOptions as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { a as loadModule, s as pickNamed } from "./load-DFS_ry0W.js";
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as listPermissions } from "./permission-registry-Br4jSNVi.js";
|
|
2
|
+
import { a as describeError, n as CliError } from "./errors-CWTY6uih.js";
|
|
2
3
|
import { dirname, resolve } from "node:path";
|
|
3
4
|
import { pathToFileURL } from "node:url";
|
|
4
5
|
import { createJiti } from "jiti";
|
|
5
|
-
//#region src/cli/load.ts
|
|
6
|
+
//#region src/cli/project/load.ts
|
|
7
|
+
/** A project module the CLI cannot use: the project's to fix, so a usage error. */
|
|
8
|
+
function invalidModule(message, cause) {
|
|
9
|
+
return new CliError("usage", message, {
|
|
10
|
+
code: "config_invalid",
|
|
11
|
+
...cause === void 0 ? {} : { cause }
|
|
12
|
+
});
|
|
13
|
+
}
|
|
6
14
|
/**
|
|
7
15
|
* Errors Node raises while resolving or parsing a module graph, before any of
|
|
8
16
|
* its code runs, so loading it again through jiti cannot repeat a side effect.
|
|
@@ -36,6 +44,14 @@ function importWithJiti(abs, fresh) {
|
|
|
36
44
|
* returned as written; `default` is not merged into the namespace.
|
|
37
45
|
*/
|
|
38
46
|
async function loadModule(abs, options) {
|
|
47
|
+
try {
|
|
48
|
+
return await importModule(abs, options);
|
|
49
|
+
} catch (error) {
|
|
50
|
+
if (error instanceof CliError) throw error;
|
|
51
|
+
throw invalidModule(describeError(error), error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function importModule(abs, options) {
|
|
39
55
|
let loaded;
|
|
40
56
|
if (options?.fresh === true) loaded = await importWithJiti(abs, true);
|
|
41
57
|
else try {
|
|
@@ -44,7 +60,7 @@ async function loadModule(abs, options) {
|
|
|
44
60
|
if (!loadsWithJiti(error)) throw error;
|
|
45
61
|
loaded = await importWithJiti(abs, false);
|
|
46
62
|
}
|
|
47
|
-
if (loaded === null || typeof loaded !== "object") throw
|
|
63
|
+
if (loaded === null || typeof loaded !== "object") throw invalidModule(`PermDock CLI: module '${abs}' did not export an object`);
|
|
48
64
|
return loaded;
|
|
49
65
|
}
|
|
50
66
|
function pickNamed(mod, names) {
|
|
@@ -52,24 +68,32 @@ function pickNamed(mod, names) {
|
|
|
52
68
|
return mod["default"];
|
|
53
69
|
}
|
|
54
70
|
function asPermissionTree(value) {
|
|
55
|
-
if (value === null || typeof value !== "object") throw
|
|
71
|
+
if (value === null || typeof value !== "object") throw invalidModule("PermDock CLI: permissions export is not a permission tree");
|
|
56
72
|
return value;
|
|
57
73
|
}
|
|
58
74
|
function asPolicy(value) {
|
|
59
|
-
if (value === null || typeof value !== "object" || !("roles" in value) || !("permissions" in value)) throw
|
|
75
|
+
if (value === null || typeof value !== "object" || !("roles" in value) || !("permissions" in value)) throw invalidModule("PermDock CLI: policy export is not a Policy");
|
|
60
76
|
return value;
|
|
61
77
|
}
|
|
62
78
|
function leavesOf(tree) {
|
|
63
79
|
return listPermissions(tree);
|
|
64
80
|
}
|
|
81
|
+
/** The `policy` export of the module at `path`. */
|
|
82
|
+
async function loadPolicyAt(cwd, path, options) {
|
|
83
|
+
return asPolicy(pickNamed(await loadModule(resolve(cwd, path), options), ["policy"]));
|
|
84
|
+
}
|
|
85
|
+
/** The `policy` export at `path`; without one, throws `PermDock CLI: <missing>`. */
|
|
86
|
+
function requirePolicy(cwd, path, missing) {
|
|
87
|
+
return path === void 0 ? Promise.reject(new CliError("usage", `PermDock CLI: ${missing}`, { code: "config_invalid" })) : loadPolicyAt(cwd, path);
|
|
88
|
+
}
|
|
65
89
|
/** The configured policy export, or `undefined` when unset or unloadable. */
|
|
66
90
|
async function loadConfiguredPolicy(cwd, path, options) {
|
|
67
91
|
if (path === void 0) return;
|
|
68
92
|
try {
|
|
69
|
-
return
|
|
93
|
+
return await loadPolicyAt(cwd, path, options);
|
|
70
94
|
} catch {
|
|
71
95
|
return;
|
|
72
96
|
}
|
|
73
97
|
}
|
|
74
98
|
//#endregion
|
|
75
|
-
export { loadModule as a, loadConfiguredPolicy as i, asPolicy as n,
|
|
99
|
+
export { loadModule as a, requirePolicy as c, loadConfiguredPolicy as i, asPolicy as n, loadPolicyAt as o, leavesOf as r, pickNamed as s, asPermissionTree as t };
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
//#region src/jwt/load-jose.ts
|
|
2
|
-
let cached;
|
|
3
2
|
function loadJose() {
|
|
4
|
-
|
|
5
|
-
cached = void 0;
|
|
3
|
+
return import("jose").catch((cause) => {
|
|
6
4
|
throw new Error("PermDock: permdock/jwt requires the optional peer \"jose\".", { cause });
|
|
7
5
|
});
|
|
8
|
-
return cached;
|
|
9
6
|
}
|
|
10
7
|
//#endregion
|
|
11
8
|
export { loadJose as t };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
+
import { c as given } from "./flags-C3DktBDY.js";
|
|
3
|
+
//#region src/cli/commands/login.ts
|
|
4
|
+
const urlFlag = { url: {
|
|
5
|
+
type: "string",
|
|
6
|
+
description: "Issuer URL (default PERMDOCK_CLOUD_URL, then https://permdock.com/api)",
|
|
7
|
+
valueHint: "url"
|
|
8
|
+
} };
|
|
9
|
+
const login = defineLeaf({
|
|
10
|
+
flags: {
|
|
11
|
+
...urlFlag,
|
|
12
|
+
loopback: {
|
|
13
|
+
type: "boolean",
|
|
14
|
+
description: "Use a 127.0.0.1 redirect with PKCE instead of the device flow"
|
|
15
|
+
},
|
|
16
|
+
scope: {
|
|
17
|
+
type: "enum",
|
|
18
|
+
options: ["catalog:write"],
|
|
19
|
+
repeatable: true,
|
|
20
|
+
description: "Scopes beyond projects:read and policy:read; catalog:write for permdock cloud push"
|
|
21
|
+
},
|
|
22
|
+
open: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
default: true,
|
|
25
|
+
description: "Open the browser at the verification URL",
|
|
26
|
+
negativeDescription: "Print the URL only"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
async run(ctx, { flags }) {
|
|
30
|
+
const { runLogin } = await import("./login-imhuwvn3.js");
|
|
31
|
+
return runLogin({
|
|
32
|
+
cwd: ctx.cwd,
|
|
33
|
+
url: given(flags.url),
|
|
34
|
+
loopback: flags.loopback,
|
|
35
|
+
scopes: flags.scope,
|
|
36
|
+
open: flags.open && ctx.interactive,
|
|
37
|
+
json: ctx.json,
|
|
38
|
+
env: ctx.env,
|
|
39
|
+
io: ctx.io
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
const logout = defineLeaf({
|
|
44
|
+
flags: { ...urlFlag },
|
|
45
|
+
async run(ctx, { flags }) {
|
|
46
|
+
const { runLogout } = await import("./login-imhuwvn3.js");
|
|
47
|
+
return runLogout({
|
|
48
|
+
url: given(flags.url),
|
|
49
|
+
json: ctx.json,
|
|
50
|
+
env: ctx.env,
|
|
51
|
+
io: ctx.io
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const whoami = defineLeaf({
|
|
56
|
+
flags: { ...urlFlag },
|
|
57
|
+
async run(ctx, { flags }) {
|
|
58
|
+
const { runWhoami } = await import("./login-imhuwvn3.js");
|
|
59
|
+
return runWhoami({
|
|
60
|
+
url: given(flags.url),
|
|
61
|
+
json: ctx.json,
|
|
62
|
+
env: ctx.env,
|
|
63
|
+
io: ctx.io
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//#endregion
|
|
68
|
+
export { login, logout, whoami };
|