permdock 0.4.0 → 0.6.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/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
- package/dist/a2a/index.d.ts +6 -6
- package/dist/a2a/index.js +14 -17
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-DCYe60Pi.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 -35
- package/dist/ai-sdk/index.js +37 -23
- package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-DvSSPQJX.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-p1PGoVjb.js +995 -0
- package/dist/arazzo-41WuzHou.js +36 -0
- package/dist/{arazzo-C4BcskbX.js → arazzo-CaUVBn7D.js} +20 -14
- 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-DabClFLQ.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +94 -79
- package/dist/automation-BNM3TtDo.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 +9 -8
- package/dist/better-supabase/index.d.ts +357 -30
- package/dist/better-supabase/index.js +936 -194
- package/dist/{bind-kk-uyCwH.js → bind-CAvgUuKs.js} +14 -10
- package/dist/{bind-BzqG8SMb.d.ts → bind-DOyrv6zi.d.ts} +12 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/{build-instance-DIIV9DbC.js → build-instance-Bu_eDqYw.js} +4 -3
- package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
- package/dist/{capability-CksyCWDH.d.ts → capability-Drg-1YhL.d.ts} +44 -25
- package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -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-BoWglDPI.js +1 -0
- package/dist/catalog-DZVbrF-z.js +52 -0
- package/dist/{catalog-tZUyOfOv.js → catalog-HD2gf5mY.js} +51 -6
- package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-Cdn7-0pQ.js} +45 -23
- 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 +24 -27
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +9 -14
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +19 -5
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +239 -340
- package/dist/cloud-ytQ3uviA.js +87 -0
- package/dist/codemod-5mpSpnUY.js +37 -0
- package/dist/codemod-ua2hHy7w.js +2084 -0
- package/dist/collect-Ci6akVwH.js +55 -0
- package/dist/collect-D7eQDffE.js +1 -0
- package/dist/{collect-2SrB7lfk.js → collect-mLTY4nwb.js} +75 -11
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-CtTP7eur.d.ts → compile-1bsAezL0.d.ts} +5 -3
- package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
- package/dist/completion-BTFrHZhX.js +143 -0
- package/dist/config-Bj2Ixq3d.js +26 -0
- package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
- package/dist/{config-report--Xb9APJS.js → config-report-DSpsLpCE.js} +15 -5
- package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
- package/dist/{context-DieZVJXu.js → context-B_u3_bDJ.js} +2 -2
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +6 -4
- package/dist/create-B30OMUOJ.d.ts +107 -0
- package/dist/create-CBMmFie-.d.ts +138 -0
- package/dist/create-CGm28gyI.js +130 -0
- package/dist/create-CQWIpUG-.js +403 -0
- package/dist/{create-BBO24vj6.js → create-DCF2SvoT.js} +31 -32
- package/dist/create-D_NmPOdH.d.ts +110 -0
- package/dist/{credential-kue0qpbm.js → credential-BcoiejpY.js} +152 -31
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/delegation-j6-rc37o.js +286 -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-DfRk15uw.d.ts → denied-text-CiFQNuMV.d.ts} +5 -5
- package/dist/{describe-C3ldA9os.d.ts → describe-B5qgDvEW.d.ts} +2 -2
- package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/{diff-rpqoe7Ag.js → diff-3jbx6Rm4.js} +60 -54
- package/dist/diff-CmuSD3vc.js +37 -0
- package/dist/doctor-3ZqNHX_G.js +44 -0
- package/dist/{doctor-owlv6ddh.js → doctor-BdZw53-k.js} +245 -50
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +2 -2
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +13 -12
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/{errors-OD_4c__H.d.ts → errors-DH5QEGXh.d.ts} +2 -2
- package/dist/evaluate-CNClBvcj.js +1785 -0
- package/dist/evaluations-C_1vdSZc.d.ts +32 -0
- package/dist/{evaluations-C9YJsv3H.js → evaluations-beAooV0n.js} +145 -34
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +22 -28
- 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 +12 -11
- package/dist/fastify/index.d.ts +25 -22
- package/dist/fastify/index.js +13 -12
- package/dist/fetch-adapter-DD_gfmrC.js +120 -0
- package/dist/fetch-adapter-Dw0MTS3D.d.ts +31 -0
- package/dist/fields-OYG_JR78.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-CTCMsFZk.js} +55 -52
- package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
- package/dist/{grantee-CXY-0C87.js → grantee-hxrUsbpM.js} +16 -6
- package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DbENBHLB.js} +5 -4
- 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-C9YmyBIa.js → helpers-CBYVMjwh.js} +45 -38
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +13 -12
- package/dist/hosted-B46-5LYE.js +315 -0
- package/dist/hosted-BPk51-kX.d.ts +78 -0
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
- package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
- package/dist/{import-BFIlhetD.js → import-wyqXUyjm.js} +190 -53
- package/dist/index-B8YjkEZ4.d.ts +210 -0
- package/dist/index-C-6Letxg.d.ts +431 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/{index-BwMe94Xq.d.ts → index-Ch8LpNDp.d.ts} +34 -16
- package/dist/index-Cp_ilKi1.d.ts +91 -0
- package/dist/index-CueFnxQc.d.ts +110 -0
- package/dist/index-DuWxc5dt.d.ts +909 -0
- package/dist/index.d.ts +19 -15
- package/dist/index.js +31 -21
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-plkrsAog.d.ts → instance-options-BsVpyGIk.d.ts} +2 -2
- package/dist/instance-snapshot-BOEhcqIF.js +601 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +156 -135
- package/dist/{kernel-CB3LrIJM.js → kernel-D0NVb1cK.js} +52 -24
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +2 -2
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
- 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-dvL2XEe1.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-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
- package/dist/{map-error-BE27PYkE.js → map-error-Dr70oA_3.js} +3 -3
- package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
- package/dist/mcp/index.d.ts +22 -12
- package/dist/mcp/index.js +57 -39
- package/dist/{migrate-BwlB5-Wk.js → migrate-CIq4-E9F.js} +53 -14
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +15 -14
- package/dist/next/index.d.ts +18 -21
- package/dist/next/index.js +13 -11
- 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-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +17 -24
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
- package/dist/openapi-C4dDTVEd.js +138 -0
- package/dist/{openapi-BJdBmYDG.js → openapi-DD1SV-5-.js} +10 -9
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-X0VM7F3m.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +20 -15
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +30 -7
- package/dist/output-1im__-08.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
- package/dist/{permission-keys-B26jeyUv.js → ownership-DqaJNJPn.js} +1045 -153
- package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
- package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
- package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
- package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +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 +45 -26
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-BrAscV28.js +868 -0
- package/dist/permdock-SV8ZINYT.d.ts +502 -0
- package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-CCJ6lmxB.js → permissions-BPxlwVhN.js} +4 -3
- package/dist/{permissions-COH-KRgT.d.ts → permissions-u_KHg-sN.d.ts} +1 -2
- package/dist/policies-DP2nqRoF.js +295 -0
- package/dist/{policy-ur0BBK_e.d.ts → policy-77FSAq_V.d.ts} +2 -2
- package/dist/{hosted-CBHgkzDl.js → policy-DbM5YYtV.js} +17 -273
- package/dist/policy-from-catalog-C2gMa2Dj.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-n0uRTsW8.d.ts} +460 -632
- package/dist/postgrest-CEgRbefE.d.ts +100 -0
- package/dist/postgrest-DAjUkF9w.js +575 -0
- package/dist/{powersync-cZe4kzhL.js → powersync-BkWWCS1K.js} +23 -24
- package/dist/powersync-DISt6SUe.js +62 -0
- package/dist/powersync-MMJ2mI2q.js +1 -0
- 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 +2 -2
- package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
- package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
- package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/{protected-BN7BUdY1.js → protected-BlF0F6wL.js} +21 -4
- package/dist/{protected-B3_P7xuw.d.ts → protected-RFGpakN9.d.ts} +16 -8
- package/dist/{provider-Bi-0HNL3.js → provider-B1al-AZz.js} +2 -2
- package/dist/{provider-kwHC9CZD.d.ts → provider-DILL9oPK.d.ts} +1 -1
- package/dist/{provider-store-Ctt-81Ni.js → provider-store-DM6DNcta.js} +2 -2
- package/dist/pull-CvpINcMK.js +1 -0
- package/dist/pull-jEwbf80J.js +256 -0
- package/dist/push-BD4f15co.js +116 -0
- package/dist/pushed-policy-CqtxkV4G.js +238 -0
- package/dist/pushed-policy-DCW91KQU.d.ts +57 -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 -72
- package/dist/react-native/index.js +29 -25
- package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
- package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-COpmZUfx.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/{request-context-BVM7aWNs.js → request-context-C81Pip9n.js} +3 -3
- 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-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
- package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BAqP4q66.js +336 -0
- package/dist/{rls-BEktUaqg.js → rls-DTvYd-lI.js} +288 -690
- package/dist/{role-builder-B4GbKM-i.js → role-builder-uWQZ4v84.js} +14 -207
- package/dist/{rpc-nYC3cR_u.js → rpc-VSl5ylaQ.js} +7 -7
- package/dist/run-CUKuz0A8.js +723 -0
- package/dist/run-DDwUaJDU.js +1 -0
- package/dist/run-ticket-DocwaTKn.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DtaA4JuW.js → saas-BCXRuXca.js} +16 -14
- package/dist/scan-qvOe0hS3.js +29 -0
- package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
- 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-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
- package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
- package/dist/server/index.d.ts +12 -143
- package/dist/server/index.js +12 -9
- package/dist/server-C3WXAHZj.js +453 -0
- package/dist/{server-types-DdqBwZN_.d.ts → server-types-CKQiCnON.d.ts} +51 -68
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/{shared-1uhI-e-b.js → shared-BAK8t4Uo.js} +20 -9
- package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-4-eQIRWf.d.ts +225 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-B7DkYg6g.js +269 -0
- package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-PXI-vGpY.d.ts} +7 -5
- package/dist/solid/index.d.ts +11 -12
- package/dist/solid/index.js +7 -7
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-Dljy06zL.d.ts → sources-Xc4zkszI.d.ts} +7 -13
- package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
- package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
- package/dist/src-Cu2m75uo.js +1860 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +384 -47
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/standard-webhooks-rbD7LS6h.d.ts +88 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-ILkLUj_o.js → store-BDutJkDL.js} +40 -53
- package/dist/{store-options-CbUHDoSe.js → store-options-u0ycEe8s.js} +26 -21
- package/dist/{stores-Cxz_80g-.d.ts → stores-BUGNbJTt.d.ts} +7 -8
- package/dist/{stores-BHXdSbw9.js → stores-CGhM8BN_.js} +2 -2
- package/dist/{stream-Dwsg6WwE.d.ts → stream-CeCMJmBB.d.ts} +2 -2
- package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -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/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +7 -6
- package/dist/supabase/middleware.js +13 -11
- package/dist/supabase-By_frk3U.js +92 -0
- package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-BMoEhZir.js} +960 -64
- package/dist/supabase-hook-CCw5m35C.js +1 -0
- package/dist/{supabase-C1TWlnYt.js → supabase-x5JtR2tc.js} +99 -206
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +4 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +10 -10
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +4 -4
- 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/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +23 -287
- package/dist/testing/index.d.ts +311 -38
- package/dist/testing/index.js +3475 -201
- 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-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
- package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +16 -14
- package/dist/types-8RnwUAvE.d.ts +107 -0
- package/dist/{store-9KO4BlkB.d.ts → types-B3_ooZgZ.d.ts} +100 -75
- package/dist/{types-Br9IXUBG.d.ts → types-BdtSDbBO.d.ts} +77 -17
- package/dist/types-BtHtcKMr.d.ts +157 -0
- package/dist/{types-CqrjB9o6.d.ts → types-BzzaHxt3.d.ts} +23 -11
- package/dist/types-C791HFu9.d.ts +332 -0
- package/dist/types-C863OQiR.d.ts +57 -0
- package/dist/{types-ByUo56un.d.ts → types-CVZSNocA.d.ts} +23 -22
- package/dist/{types-DHrmBJLH.d.ts → types-CX7AvRqP.d.ts} +7 -7
- package/dist/types-C_IiEs64.d.ts +65 -0
- package/dist/{types-7rJVLWe5.d.ts → types-Dfv0aTER.d.ts} +63 -11
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/{types-DpWfQdSh.d.ts → types-Druu9wLM.d.ts} +46 -11
- package/dist/{types-CIlTojhq.d.ts → types-_WhUP7ud.d.ts} +9 -6
- package/dist/{types-CUcFZfpU.d.ts → types-lUlG3TVd.d.ts} +2 -1
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CRVl9V3t.js +32 -0
- package/dist/usage-CZpSQP6L.js +1 -0
- package/dist/{usage-CG9nOYZw.js → usage-SveTRTyr.js} +54 -11
- package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
- package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
- package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
- package/dist/{verify-BztUB3GX.js → verify-BaAKx7t6.js} +645 -50
- package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
- package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-CN8H_9UF.d.ts} +67 -2
- package/dist/vue/index.d.ts +9 -10
- package/dist/vue/index.js +8 -8
- package/dist/waiter-B986w1oK.d.ts +36 -0
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/watch--ovlPOc0.js +1 -0
- package/dist/{watch-zeucB7eF.js → watch-vea54PRw.js} +44 -5
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +3 -3
- package/dist/where-scope-C9vfEphl.js +306 -0
- package/dist/who-can-DWBAcaCQ.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-Cr93qqdP.d.ts → wrap-C5jC6sKI.d.ts} +2 -1
- package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
- package/package.json +136 -37
- 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 +123 -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 +14 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +10 -9
- 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 +17 -11
- package/skills/permdock-wire/references/adapters.md +139 -51
- package/skills/permdock-wire/references/policy-options.md +5 -5
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DZL76lKW.js +0 -240
- package/dist/arazzo-CD8d0WLb.js +0 -54
- package/dist/catalog-6yWAX6Ps.js +0 -2
- package/dist/catalog-WHG4kBq7.js +0 -48
- package/dist/cloud-C7bSDgX4.js +0 -50
- package/dist/cloud-PeBN3IEn.js +0 -118
- package/dist/collect-Bw2Jdq1q.js +0 -2
- package/dist/collect-CQx4hX4N.js +0 -83
- package/dist/commands-Cpip4ULx.js +0 -97
- package/dist/config-DLt6BvV7.js +0 -36
- package/dist/diff-Cnghh_Ip.js +0 -48
- package/dist/doctor-CuVJvhV_.js +0 -53
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-fwfXN01n.js +0 -1016
- 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-DgM7w96K.d.ts +0 -6
- package/dist/index-Dz7didpC.d.ts +0 -201
- package/dist/index-UdVQgq48.d.ts +0 -550
- package/dist/load-B_shHrmd.js +0 -2
- package/dist/manifest-BngWKryL.js +0 -770
- package/dist/may-use-BOn_dR_w.js +0 -78
- package/dist/openapi-DcQ1Kg40.js +0 -164
- package/dist/ownership-BgnbOJFT.js +0 -851
- package/dist/permdock-L26udHSk.js +0 -3646
- package/dist/powersync-BFSbSElQ.js +0 -62
- package/dist/powersync-DCDgZgfZ.js +0 -2
- package/dist/rls-55DQTuf5.js +0 -250
- package/dist/run-DMcNW_8T.js +0 -174
- package/dist/server-ZYEHtNHS.js +0 -268
- package/dist/sink-BTtmfPnE.js +0 -141
- package/dist/sink-CPN4zLfs.d.ts +0 -104
- package/dist/skills-Dle4ZoLF.js +0 -56
- package/dist/snapshot-Dc9CHPME.js +0 -1078
- package/dist/src-Bb7no-hS.js +0 -639
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-Dbqr141s.js +0 -83
- package/dist/supabase-hook-BULg7Ut_.js +0 -2
- package/dist/thenable-QSmvt-vZ.js +0 -65
- package/dist/types-C0dee0Qf.d.ts +0 -197
- package/dist/types-DvupZE0w.d.ts +0 -9
- package/dist/usage-4G6t643F.js +0 -42
- package/dist/usage-iFLJ0-rr.js +0 -2
- package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
- package/dist/watch-C8TpsAl4.js +0 -2
package/dist/mcp/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
3
|
-
import { i as stepUpOf } from "../problem-details-
|
|
4
|
-
import { t as describe } from "../describe-
|
|
5
|
-
import { m as annotationsFor } from "../permission-registry-
|
|
6
|
-
import {
|
|
3
|
+
import { i as stepUpOf } from "../problem-details-cn5X30gZ.js";
|
|
4
|
+
import { t as describe } from "../describe-BybMRY7A.js";
|
|
5
|
+
import { m as annotationsFor } from "../permission-registry-Br4jSNVi.js";
|
|
6
|
+
import { t as actorMayCallTool } from "../delegation-j6-rc37o.js";
|
|
7
7
|
import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
|
|
8
|
-
import {
|
|
9
|
-
import { t as
|
|
10
|
-
import { t as
|
|
11
|
-
import { l as protectedResourceMetadataUrl, r as bearerChallenge } from "../problem-
|
|
8
|
+
import { a as hasScope, c as withApp, i as challengeScope, o as scopesReaching } from "../permdock-BrAscV28.js";
|
|
9
|
+
import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
|
|
10
|
+
import { t as composeWraps } from "../wrap-gX61EtpB.js";
|
|
11
|
+
import { l as protectedResourceMetadataUrl, r as bearerChallenge } from "../problem-CTviyH5L.js";
|
|
12
12
|
import { t as clientNameOf } from "../clients-DjU5ABMy.js";
|
|
13
|
-
import { n as mapClaimsToSubject } from "../map-claims-
|
|
14
|
-
import { r as instanceOptions } from "../build-instance-
|
|
15
|
-
import { n as createAgentKernel, r as
|
|
13
|
+
import { n as mapClaimsToSubject } from "../map-claims-D3oRmTk0.js";
|
|
14
|
+
import { r as instanceOptions } from "../build-instance-Bu_eDqYw.js";
|
|
15
|
+
import { n as createAgentKernel, r as refusalText } from "../kernel-D0NVb1cK.js";
|
|
16
16
|
import { t as boundedMap } from "../lru-8q4WZjBV.js";
|
|
17
17
|
import { t as delegationFrom } from "../delegation-input-FTxMK3ji.js";
|
|
18
|
-
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-
|
|
18
|
+
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-CMLN5xhn.js";
|
|
19
19
|
//#region src/mcp/mcp-auth.ts
|
|
20
20
|
/** `_meta` key on `tools/call`, `resources/read` and `prompts/get` carrying an approval token. */
|
|
21
21
|
const APPROVAL_META_KEY = "dev.permdock/approval";
|
|
@@ -234,8 +234,11 @@ function credentialRefusal(checks, permission, reach, authInfo) {
|
|
|
234
234
|
}));
|
|
235
235
|
}
|
|
236
236
|
/** The completion re-check of a long-running tool: the call must still be allowed, or approved with the same token. */
|
|
237
|
-
async function recheck(checks, binding, call, permission, approved) {
|
|
238
|
-
const rechecked = await checks.kernel.check(binding,
|
|
237
|
+
async function recheck(checks, binding, args, call, permission, approved, tool) {
|
|
238
|
+
const rechecked = await checks.kernel.check(binding, args, call, compact({
|
|
239
|
+
simulate: true,
|
|
240
|
+
tool
|
|
241
|
+
}));
|
|
239
242
|
if (!rechecked.ok) return {
|
|
240
243
|
ok: false,
|
|
241
244
|
refusal: failedRefusal(permission, rechecked.failure)
|
|
@@ -250,7 +253,7 @@ async function recheck(checks, binding, call, permission, approved) {
|
|
|
250
253
|
} : plainRefusal(permission, `Denied: ${permission.key} was revoked before the call completed.`, {})
|
|
251
254
|
};
|
|
252
255
|
}
|
|
253
|
-
async function decideCall(checks, permission, reach, load, context, handlerContext, capabilities, completion) {
|
|
256
|
+
async function decideCall(checks, permission, reach, args, load, context, handlerContext, capabilities, completion, tool) {
|
|
254
257
|
const authInfo = context.http?.authInfo;
|
|
255
258
|
const refused = credentialRefusal(checks, permission, reach, authInfo);
|
|
256
259
|
if (refused !== void 0) return {
|
|
@@ -262,8 +265,11 @@ async function decideCall(checks, permission, reach, load, context, handlerConte
|
|
|
262
265
|
data: load === void 0 ? void 0 : () => load()
|
|
263
266
|
});
|
|
264
267
|
const call = compact({ authInfo });
|
|
265
|
-
if (completion !== void 0) return recheck(checks, binding, call, permission, completion.approved);
|
|
266
|
-
const checked = await checks.kernel.check(binding,
|
|
268
|
+
if (completion !== void 0) return recheck(checks, binding, args, call, permission, completion.approved, tool);
|
|
269
|
+
const checked = await checks.kernel.check(binding, args, call, compact({
|
|
270
|
+
resumeToken: approvalTokenOf(context),
|
|
271
|
+
tool
|
|
272
|
+
}));
|
|
267
273
|
if (!checked.ok) return {
|
|
268
274
|
ok: false,
|
|
269
275
|
refusal: failedRefusal(permission, checked.failure)
|
|
@@ -301,17 +307,17 @@ async function decideCall(checks, permission, reach, load, context, handlerConte
|
|
|
301
307
|
default: return decision;
|
|
302
308
|
}
|
|
303
309
|
}
|
|
304
|
-
/** `decideCall` with the refusal text replaced by `
|
|
305
|
-
async function checkCall(checks, permission, reach, load, context, handlerContext, capabilities, completion) {
|
|
306
|
-
const checked = await decideCall(checks, permission, reach, load, context, handlerContext, capabilities, completion);
|
|
307
|
-
const {
|
|
308
|
-
if (checked.ok ||
|
|
310
|
+
/** `decideCall` with the refusal text replaced by `deniedText`'s. */
|
|
311
|
+
async function checkCall(checks, permission, reach, args, load, context, handlerContext, capabilities, completion, tool) {
|
|
312
|
+
const checked = await decideCall(checks, permission, reach, args, load, context, handlerContext, capabilities, completion, tool);
|
|
313
|
+
const { deniedText } = checks.options;
|
|
314
|
+
if (checked.ok || deniedText === void 0) return checked;
|
|
309
315
|
const { refusal } = checked;
|
|
310
316
|
return {
|
|
311
317
|
ok: false,
|
|
312
318
|
refusal: {
|
|
313
319
|
...refusal,
|
|
314
|
-
text: deniedText
|
|
320
|
+
text: refusalText(deniedText, {
|
|
315
321
|
decision: refusal.decision ?? null,
|
|
316
322
|
permission,
|
|
317
323
|
text: refusal.text
|
|
@@ -321,8 +327,11 @@ async function checkCall(checks, permission, reach, load, context, handlerContex
|
|
|
321
327
|
}
|
|
322
328
|
};
|
|
323
329
|
}
|
|
324
|
-
/**
|
|
325
|
-
|
|
330
|
+
/**
|
|
331
|
+
* The keys a list shows: unguarded ones, and guarded ones the token reaches and the subject may use.
|
|
332
|
+
* With `tools`, a guarded key is also a tool name an `agent` actor's `tools` list must name.
|
|
333
|
+
*/
|
|
334
|
+
async function visible(checks, context, permissionOf, keys, declaredOf = () => void 0, tools = false) {
|
|
326
335
|
const authInfo = context.http?.authInfo;
|
|
327
336
|
const shown = /* @__PURE__ */ new Set();
|
|
328
337
|
const guarded = [];
|
|
@@ -341,7 +350,7 @@ async function visible(checks, context, permissionOf, keys, declaredOf = () => v
|
|
|
341
350
|
} catch {
|
|
342
351
|
return shown;
|
|
343
352
|
}
|
|
344
|
-
for (const entry of guarded) if (
|
|
353
|
+
for (const entry of guarded) if ((!tools || actorMayCallTool(permdock.subject.actor, entry.key)) && permdock.mayUse(entry.permission)) shown.add(entry.key);
|
|
345
354
|
return shown;
|
|
346
355
|
}
|
|
347
356
|
/** `handler` behind the call check; a refusal goes to `onRefusal` instead. */
|
|
@@ -349,14 +358,16 @@ function guard(checks, permission, load, handler, dataArgs, onRefusal, extra = {
|
|
|
349
358
|
return async (...params) => {
|
|
350
359
|
const raw = params.at(-1);
|
|
351
360
|
const context = contextOf(raw);
|
|
352
|
-
const
|
|
361
|
+
const args = dataArgs(params);
|
|
362
|
+
const loader = load === void 0 ? void 0 : () => load(...args);
|
|
353
363
|
const reach = extra.reach ?? reachOf(checks.policy, permission, void 0);
|
|
354
|
-
const
|
|
364
|
+
const tool = extra.tool?.();
|
|
365
|
+
const checked = await checkCall(checks, permission, reach, args, loader, context, raw, extra.capabilities, void 0, tool);
|
|
355
366
|
let result;
|
|
356
367
|
if (checked.ok) {
|
|
357
368
|
result = await handler(...params);
|
|
358
369
|
if (extra.longRunning === true) {
|
|
359
|
-
const again = await checkCall(checks, permission, reach, loader, context, raw, extra.capabilities, { approved: checked.approved });
|
|
370
|
+
const again = await checkCall(checks, permission, reach, args, loader, context, raw, extra.capabilities, { approved: checked.approved }, tool);
|
|
360
371
|
if (!again.ok) result = onRefusal(again.refusal);
|
|
361
372
|
}
|
|
362
373
|
} else result = onRefusal(checked.refusal);
|
|
@@ -404,7 +415,7 @@ function protectServer(checks, server, enforcement) {
|
|
|
404
415
|
if (!isRecord(result) || !Array.isArray(result[field])) return result;
|
|
405
416
|
const context = contextOf(rawContext);
|
|
406
417
|
const entries = result[field];
|
|
407
|
-
const shown = await visible(checks, context, permissionOf, entries.map(keyOf), remember ? toolDeclared : void 0);
|
|
418
|
+
const shown = await visible(checks, context, permissionOf, entries.map(keyOf), remember ? toolDeclared : void 0, remember);
|
|
408
419
|
const kept = entries.filter((entry) => shown.has(keyOf(entry)));
|
|
409
420
|
if (remember) lastListed.set(sessionKey(context), [...shown].toSorted().join(","));
|
|
410
421
|
return definesCacheScope(context) ? {
|
|
@@ -445,18 +456,19 @@ function protectServer(checks, server, enforcement) {
|
|
|
445
456
|
const key = sessionKey(context);
|
|
446
457
|
const before = lastListed.get(key);
|
|
447
458
|
if (before === void 0) return;
|
|
448
|
-
const after = [...await visible(checks, context, toolPermission, [...tools.keys()], toolDeclared)].toSorted().join(",");
|
|
459
|
+
const after = [...await visible(checks, context, toolPermission, [...tools.keys()], toolDeclared, true)].toSorted().join(",");
|
|
449
460
|
if (after === before) return;
|
|
450
461
|
lastListed.set(key, after);
|
|
451
462
|
try {
|
|
452
463
|
await (context.mcpReq?.notify?.({ method: "notifications/tools/list_changed" }) ?? inner.sendToolListChanged?.());
|
|
453
464
|
} catch {}
|
|
454
465
|
};
|
|
455
|
-
const guardTool = (permission, reach, load, handler, longRunning) => guard(checks, permission, load, handler, (params) => params.length >= 2 ? [params[0]] : [void 0], toolRefusal, {
|
|
466
|
+
const guardTool = (tool, permission, reach, load, handler, longRunning) => guard(checks, permission, load, handler, (params) => params.length >= 2 ? [params[0]] : [void 0], toolRefusal, {
|
|
456
467
|
after: announce,
|
|
457
468
|
longRunning,
|
|
458
469
|
capabilities,
|
|
459
|
-
reach
|
|
470
|
+
reach,
|
|
471
|
+
tool
|
|
460
472
|
});
|
|
461
473
|
const originalTool = server.registerTool.bind(server);
|
|
462
474
|
const toolPermissionOf = (name, config) => {
|
|
@@ -465,7 +477,7 @@ function protectServer(checks, server, enforcement) {
|
|
|
465
477
|
return requirePermission("tool", name, { permission: enforcement.permissionFor(name) });
|
|
466
478
|
};
|
|
467
479
|
/** With `enforce: 'procedure'` the handler runs undecided: the procedure it calls decides. */
|
|
468
|
-
const wrapTool = (permission, reach, load, handler, longRunning) => enforcement === void 0 ? guardTool(permission, reach, load, handler, longRunning) : async (...params) => {
|
|
480
|
+
const wrapTool = (tool, permission, reach, load, handler, longRunning) => enforcement === void 0 ? guardTool(tool, permission, reach, load, handler, longRunning) : async (...params) => {
|
|
469
481
|
const result = await handler(...params);
|
|
470
482
|
await announce(contextOf(params.at(-1)));
|
|
471
483
|
return result;
|
|
@@ -477,6 +489,8 @@ function protectServer(checks, server, enforcement) {
|
|
|
477
489
|
const longRunning = rawLongRunning === true;
|
|
478
490
|
const declared = declaredScopes(name, rawScopes === void 0 ? enforcement?.oauthScopesFor?.(name) : rawScopes);
|
|
479
491
|
const reach = reachOf(checks.policy, permission, declared);
|
|
492
|
+
let current = name;
|
|
493
|
+
const tool = () => current;
|
|
480
494
|
const registered = originalTool(name, {
|
|
481
495
|
...passthrough,
|
|
482
496
|
annotations: {
|
|
@@ -484,11 +498,10 @@ function protectServer(checks, server, enforcement) {
|
|
|
484
498
|
...passthrough["annotations"]
|
|
485
499
|
},
|
|
486
500
|
scopeChallenge: challengeFor(scopeChallenge, reach.scopes, reach.challenge)
|
|
487
|
-
}, wrapTool(permission, reach, load, handler, longRunning));
|
|
501
|
+
}, wrapTool(tool, permission, reach, load, handler, longRunning));
|
|
488
502
|
tools.set(name, permission);
|
|
489
503
|
if (declared !== void 0) toolScopes.set(name, declared);
|
|
490
|
-
|
|
491
|
-
guardUpdates(registered, (callback) => wrapTool(permission, reach, load, callback, longRunning), (from, to) => {
|
|
504
|
+
guardUpdates(registered, (callback) => wrapTool(tool, permission, reach, load, callback, longRunning), (from, to) => {
|
|
492
505
|
tools.delete(from);
|
|
493
506
|
toolScopes.delete(from);
|
|
494
507
|
if (to !== null) {
|
|
@@ -581,7 +594,8 @@ function subjectFromMcp(authInfo, options = {}) {
|
|
|
581
594
|
}
|
|
582
595
|
//#endregion
|
|
583
596
|
//#region src/mcp/create.ts
|
|
584
|
-
function createPermDock(policy,
|
|
597
|
+
function createPermDock(policy, given) {
|
|
598
|
+
const options = withApp(policy, given);
|
|
585
599
|
const actorKind = mcpActorKind(options.actorKind);
|
|
586
600
|
if (actorKind === void 0) throw new TypeError("permdock/mcp: actorKind must be a non-empty string");
|
|
587
601
|
const checks = {
|
|
@@ -590,6 +604,7 @@ function createPermDock(policy, options) {
|
|
|
590
604
|
kernel: createAgentKernel(policy, compact({
|
|
591
605
|
subject: (call) => options.subject(call.authInfo ?? {}),
|
|
592
606
|
actor: (call) => {
|
|
607
|
+
if (options.actor !== void 0) return options.actor(call.authInfo ?? {});
|
|
593
608
|
const clientId = call.authInfo?.clientId;
|
|
594
609
|
return typeof clientId === "string" && clientId !== "" ? compact({
|
|
595
610
|
id: clientId,
|
|
@@ -597,7 +612,10 @@ function createPermDock(policy, options) {
|
|
|
597
612
|
client: clientNameOf(options.clients, clientId)
|
|
598
613
|
}) : void 0;
|
|
599
614
|
},
|
|
600
|
-
delegation: (call) =>
|
|
615
|
+
delegation: (call) => {
|
|
616
|
+
if (options.delegation !== void 0) return options.delegation(call.authInfo ?? {});
|
|
617
|
+
return call.authInfo === void 0 ? void 0 : delegationFrom(call.authInfo.scopes, call.authInfo.extra);
|
|
618
|
+
},
|
|
601
619
|
tenant: tenantOf(options.tenant),
|
|
602
620
|
store: options.store,
|
|
603
621
|
adapter: "mcp",
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { i as
|
|
2
|
+
import { i as dateAt } from "./time-DkWjdL98.js";
|
|
3
|
+
import { a as describeError } from "./errors-CWTY6uih.js";
|
|
3
4
|
import { o as sqlFiles } from "./files-D_JIzUrP.js";
|
|
4
|
-
import {
|
|
5
|
-
import "./sources-
|
|
6
|
-
import { a as RETIRE_MARKER } from "./markers-
|
|
7
|
-
import { r as
|
|
8
|
-
import {
|
|
5
|
+
import { r as escapeSqlIdent, s as quoteSqlLiteral } from "./sql-B5T1IL83.js";
|
|
6
|
+
import "./sources-vs5dGOsS.js";
|
|
7
|
+
import { a as RETIRE_MARKER } from "./markers-C6joDI3o.js";
|
|
8
|
+
import { r as refuseDirty, t as applyFiles } from "./files-C5ZI27eV.js";
|
|
9
|
+
import { f as writeOutputFiles, n as dataMigrationFile } from "./output-files-DhRBBE4n.js";
|
|
10
|
+
import { r as HELPERS } from "./shared-BAK8t4Uo.js";
|
|
9
11
|
import { o as sqlStatements } from "./deciding-columns-Sq12mEA6.js";
|
|
10
|
-
import { i as retireSql, r as retirePlan } from "./retire-
|
|
11
|
-
import { existsSync, readFileSync
|
|
12
|
+
import { i as retireSql, r as retirePlan } from "./retire-CALjIQ7e.js";
|
|
13
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
12
14
|
import { relative, resolve } from "node:path";
|
|
13
15
|
import { parse } from "pgsql-parser";
|
|
14
16
|
//#region src/cli/rls/migrate.ts
|
|
15
17
|
function migrateTarget(generated) {
|
|
16
18
|
const granted = /* @__PURE__ */ new Map();
|
|
19
|
+
const roles = /* @__PURE__ */ new Set();
|
|
17
20
|
for (const row of generated.seeds ?? []) {
|
|
21
|
+
roles.add(row.role);
|
|
18
22
|
if (row.effect !== "allow") continue;
|
|
19
23
|
let keys = granted.get(row.scope);
|
|
20
24
|
if (keys === void 0) {
|
|
@@ -29,7 +33,8 @@ function migrateTarget(generated) {
|
|
|
29
33
|
permissions: new Set(generated.keys?.permissions ?? []),
|
|
30
34
|
rowConditions: new Set(generated.keys?.rowConditions ?? []),
|
|
31
35
|
granted,
|
|
32
|
-
renamed: generated.keys?.renamed ?? {}
|
|
36
|
+
renamed: generated.keys?.renamed ?? {},
|
|
37
|
+
roles
|
|
33
38
|
};
|
|
34
39
|
}
|
|
35
40
|
function child(node, key) {
|
|
@@ -173,6 +178,21 @@ var Rewriter = class {
|
|
|
173
178
|
const column = this.#column(idArg);
|
|
174
179
|
return "to" in column ? { to: `(${column.to} in (select ${helper}()))` } : column;
|
|
175
180
|
}
|
|
181
|
+
#role(scope, idArg, roleArgs) {
|
|
182
|
+
const name = `member_${scope}_ids`;
|
|
183
|
+
const helper = this.#helper(name);
|
|
184
|
+
if (helper === void 0 || !this.#target.sql.includes(`.${name}(p_roles text[])`)) return skip("missing-helper", `rls generate writes no ${name}(p_roles text[]): run it with this rls.migrate config, which asks for it`);
|
|
185
|
+
const legacy = roleArgs.map((arg) => stringConst(arg)).filter((role) => role !== void 0);
|
|
186
|
+
if (legacy.length === 0 || legacy.length !== roleArgs.length) return skip("dynamic-role", "a role is not a string literal; map it by hand");
|
|
187
|
+
const mapped = [];
|
|
188
|
+
for (const value of legacy) {
|
|
189
|
+
const declared = this.#target.roleValues?.[value] ?? value;
|
|
190
|
+
if (!this.#target.roles.has(declared)) return skip("unknown-role", `${value} maps to ${declared}, which no role grants; add it to rls.roleValues or declare the role`);
|
|
191
|
+
mapped.push(declared);
|
|
192
|
+
}
|
|
193
|
+
const column = this.#column(idArg);
|
|
194
|
+
return "to" in column ? { to: `(${column.to} in (select ${helper}(array[${mapped.map(literal).join(", ")}])))` } : column;
|
|
195
|
+
}
|
|
176
196
|
#scoped(args, selected) {
|
|
177
197
|
const [scopeArg, idArg, keyArg] = args;
|
|
178
198
|
const named = stringConst(scopeArg);
|
|
@@ -187,6 +207,7 @@ var Rewriter = class {
|
|
|
187
207
|
case "ids": return this.#ids(helper.scope, args[0]);
|
|
188
208
|
case "row": return this.#row(helper.scope, args[0], args[1]);
|
|
189
209
|
case "membership": return this.#membership(helper.scope, args[0]);
|
|
210
|
+
case "role": return this.#role(helper.scope, args[0], args.slice(1));
|
|
190
211
|
case "scoped": return this.#scoped(args, selected);
|
|
191
212
|
case "global": return this.#global(args[0], selected);
|
|
192
213
|
default: return helper;
|
|
@@ -341,7 +362,7 @@ function describe(report, write) {
|
|
|
341
362
|
const lines = [...report.rewrites.map((item) => `${item.file}:${String(item.line)} ${item.from} -> ${item.to}`), ...report.skipped.map((item) => `skipped ${item.file}:${String(item.line)} ${item.call}: ${item.detail}`)];
|
|
342
363
|
const files = new Set(report.rewrites.map((item) => item.file)).size;
|
|
343
364
|
const unknown = report.skipped.filter((item) => item.reason === "unknown-key").length;
|
|
344
|
-
lines.push(`rls migrate: ${write ? "rewrote" : "would rewrite"} ${String(report.rewrites.length)} call(s) in ${String(files)} file(s), skipped ${String(report.skipped.length)}${unknown === 0 ? "" : `, ${String(unknown)} with an unknown key`}${write ? "" : "; --
|
|
365
|
+
lines.push(`rls migrate: ${write ? "rewrote" : "would rewrite"} ${String(report.rewrites.length)} call(s) in ${String(files)} file(s), skipped ${String(report.skipped.length)}${unknown === 0 ? "" : `, ${String(unknown)} with an unknown key`}${write ? "" : "; drop --dry-run to apply them"}`);
|
|
345
366
|
return lines.join("\n");
|
|
346
367
|
}
|
|
347
368
|
/** `permdock rls migrate`: a dry run unless `write`; exits 1 while a key is unknown. */
|
|
@@ -355,13 +376,17 @@ async function runRlsMigrate(input) {
|
|
|
355
376
|
const rewrites = [];
|
|
356
377
|
const skipped = [];
|
|
357
378
|
const statements = [];
|
|
379
|
+
const writes = [];
|
|
358
380
|
for (const path of files) {
|
|
359
381
|
const file = relative(input.cwd, path);
|
|
360
382
|
const text = readFileSync(path, "utf8");
|
|
361
383
|
const result = await migrateSql(file, text, input.config, input.target);
|
|
362
384
|
rewrites.push(...result.rewrites);
|
|
363
385
|
skipped.push(...result.skipped);
|
|
364
|
-
if (input.write && result.text !== text)
|
|
386
|
+
if (input.write && result.text !== text) writes.push({
|
|
387
|
+
path,
|
|
388
|
+
text: result.text
|
|
389
|
+
});
|
|
365
390
|
for (const statement of sqlStatements(input.write ? result.text : text)) statements.push({
|
|
366
391
|
file,
|
|
367
392
|
...statement
|
|
@@ -371,6 +396,16 @@ async function runRlsMigrate(input) {
|
|
|
371
396
|
code: 2,
|
|
372
397
|
output: "rls migrate --retire-out needs rls.migrate.tables in permdock.config.ts"
|
|
373
398
|
};
|
|
399
|
+
if (writes.length > 0) {
|
|
400
|
+
refuseDirty({
|
|
401
|
+
command: "rls migrate",
|
|
402
|
+
invocation: `rls migrate --sql ${input.sql}`,
|
|
403
|
+
cwd: input.cwd,
|
|
404
|
+
paths: writes.map((write) => write.path),
|
|
405
|
+
force: input.force === true
|
|
406
|
+
});
|
|
407
|
+
applyFiles(input.cwd, writes);
|
|
408
|
+
}
|
|
374
409
|
const retire = input.config.tables === void 0 ? void 0 : retirePlan(statements, input.config);
|
|
375
410
|
const report = retire === void 0 ? {
|
|
376
411
|
rewrites,
|
|
@@ -386,14 +421,14 @@ async function runRlsMigrate(input) {
|
|
|
386
421
|
code: unknown ? 1 : 0,
|
|
387
422
|
output
|
|
388
423
|
};
|
|
389
|
-
const retired = writeRetire(input.cwd, input.retireOut, retire, input.now);
|
|
424
|
+
const retired = writeRetire(input.cwd, input.retireOut, retire, input.now, !input.write);
|
|
390
425
|
return {
|
|
391
426
|
code: unknown || retired.code === 1 ? 1 : 0,
|
|
392
427
|
output: `${output}\n${retired.output}`
|
|
393
428
|
};
|
|
394
429
|
}
|
|
395
430
|
/** `--retire-out`: nothing is written while any listed table is still read. */
|
|
396
|
-
function writeRetire(cwd, out, plan, now) {
|
|
431
|
+
function writeRetire(cwd, out, plan, now, dryRun) {
|
|
397
432
|
const read = plan.tables.filter((table) => table.present && table.readers.length > 0);
|
|
398
433
|
if (read.length > 0) return {
|
|
399
434
|
code: 1,
|
|
@@ -410,13 +445,17 @@ function writeRetire(cwd, out, plan, now) {
|
|
|
410
445
|
part: "retire",
|
|
411
446
|
marker: RETIRE_MARKER,
|
|
412
447
|
text,
|
|
413
|
-
now: now ??
|
|
448
|
+
now: now ?? dateAt(),
|
|
414
449
|
check: false
|
|
415
450
|
});
|
|
416
451
|
if (file === void 0) return {
|
|
417
452
|
code: 0,
|
|
418
453
|
output: "rls migrate --retire-out: up to date"
|
|
419
454
|
};
|
|
455
|
+
if (dryRun && file.rel !== "-") return {
|
|
456
|
+
code: 0,
|
|
457
|
+
output: `would write ${file.rel}`
|
|
458
|
+
};
|
|
420
459
|
const written = writeOutputFiles(cwd, [file]);
|
|
421
460
|
return {
|
|
422
461
|
code: 0,
|
package/dist/nest/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { T as Policy, rr as Principal } from "../policy-types-n0uRTsW8.js";
|
|
2
|
+
import { w as Permission } from "../vocabulary-CN8H_9UF.js";
|
|
3
|
+
import { r as PermDock } from "../permdock-SV8ZINYT.js";
|
|
4
|
+
import { n as RevocationFeed } from "../revocations-R07lFBnX.js";
|
|
5
|
+
import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CKQiCnON.js";
|
|
6
|
+
import { t as ServerAdapterOptions } from "../bind-DOyrv6zi.js";
|
|
7
|
+
import { r as sendResponse, t as NodeRequest } from "../http-B_LphE5Y.js";
|
|
7
8
|
import { CanActivate, DynamicModule, ExceptionFilter, ExecutionContext, Type } from "@nestjs/common";
|
|
8
9
|
//#region src/nest/http.d.ts
|
|
9
10
|
/**
|
|
@@ -33,8 +34,8 @@ type NestSocket = {
|
|
|
33
34
|
disconnect?(close?: boolean): unknown;
|
|
34
35
|
close?(code?: number, reason?: string): unknown;
|
|
35
36
|
};
|
|
36
|
-
/** `Protect(null,
|
|
37
|
-
type NestProtect = (permission: Permission | null,
|
|
37
|
+
/** `Protect(null, data?, { oauthScopes })` needs a principal and one of the OAuth scopes, but no permission. */
|
|
38
|
+
type NestProtect = (permission: Permission | null, data?: (req: NestRequest) => unknown, protectOptions?: ProtectOptions) => ClassDecorator & MethodDecorator;
|
|
38
39
|
type NestHandlerOptions = {
|
|
39
40
|
/** Controller path; may hold route params such as `:org`. Default `api/permdock`. */
|
|
40
41
|
readonly path?: string;
|
|
@@ -44,6 +45,8 @@ type PermDockModuleOptions = {
|
|
|
44
45
|
readonly guard?: "global";
|
|
45
46
|
};
|
|
46
47
|
type NestPermDock = {
|
|
48
|
+
/** The `PermDock` for one request, for code the guard does not run before. */
|
|
49
|
+
readonly getPermDock: (req: NestRequest) => Promise<PermDock>;
|
|
47
50
|
readonly PermDockModule: Type<unknown> & {
|
|
48
51
|
readonly forRoot: (options?: PermDockModuleOptions) => DynamicModule;
|
|
49
52
|
};
|
|
@@ -72,4 +75,4 @@ export declare function decorateMethod(cls: {
|
|
|
72
75
|
readonly prototype: object;
|
|
73
76
|
}, key: string, ...decorators: readonly MethodDecorator[]): void;
|
|
74
77
|
//#endregion
|
|
75
|
-
export { InvalidSignatureError, type NestHandlerOptions, type NestPermDock, type NestPermDockOptions, type NestProtect, type NestRequest, type NestSocket, type PermDockModuleOptions, discoverViaSignatureAgent, sendResponse,
|
|
78
|
+
export { InvalidSignatureError, type NestHandlerOptions, type NestPermDock, type NestPermDockOptions, type NestProtect, type NestRequest, type NestSocket, type PermDockModuleOptions, discoverViaSignatureAgent, sendResponse, webBotAuthVerifier };
|
package/dist/nest/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as PermDockValidationError } from "../validation-error-ZfUHbKvf.js";
|
|
3
|
-
import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "../errors-
|
|
3
|
+
import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
|
|
4
4
|
import { c as writeReply, r as hasCredentials } from "../http-BBoKefeS.js";
|
|
5
|
-
import {
|
|
6
|
-
import { t as problemFromError } from "../map-error-
|
|
7
|
-
import { a as socketConnection, r as bindKernel } from "../bind-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
5
|
+
import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
|
|
6
|
+
import { t as problemFromError } from "../map-error-Dr70oA_3.js";
|
|
7
|
+
import { a as socketConnection, r as bindKernel } from "../bind-CAvgUuKs.js";
|
|
8
|
+
import { a as onRevoked, n as closeReason, t as POLICY_VIOLATION } from "../stream-CvdUS9V1.js";
|
|
9
|
+
import { n as sendResponse, r as toRequest$1, t as isServerResponse } from "../http-ujKm0JXE.js";
|
|
10
10
|
import { Catch, Controller, Get, Inject, Injectable, Module, Post, Req, Res, createParamDecorator } from "@nestjs/common";
|
|
11
11
|
import { APP_FILTER, APP_GUARD, Reflector } from "@nestjs/core";
|
|
12
12
|
//#region src/nest/decorate.ts
|
|
@@ -96,10 +96,10 @@ function rulesOf(target) {
|
|
|
96
96
|
if (!Array.isArray(found)) return [];
|
|
97
97
|
return found;
|
|
98
98
|
}
|
|
99
|
-
const Protect = (permission,
|
|
99
|
+
const Protect = (permission, data, protectOptions) => {
|
|
100
100
|
const rule = compact({
|
|
101
101
|
permission,
|
|
102
|
-
|
|
102
|
+
data,
|
|
103
103
|
options: protectOptions
|
|
104
104
|
});
|
|
105
105
|
return ((target, _propertyKey, descriptor) => {
|
|
@@ -110,11 +110,11 @@ const Protect = (permission, loadData, protectOptions) => {
|
|
|
110
110
|
});
|
|
111
111
|
};
|
|
112
112
|
function createPermDock(policy, options) {
|
|
113
|
-
const { kernel, bind, rebind, scopeOf, handlerScope } = bindKernel(policy, options, "nest", toRequest);
|
|
113
|
+
const { kernel, bind, rebind, scopeOf, handlerScope, getPermDock } = bindKernel(policy, options, "nest", toRequest);
|
|
114
114
|
const applyProtect = async (remaining, req, request, scope, load) => {
|
|
115
115
|
const [rule, ...rest] = remaining;
|
|
116
116
|
if (rule === void 0) return;
|
|
117
|
-
const guard = await kernel.protect(rule.permission, load(rule.
|
|
117
|
+
const guard = await kernel.protect(rule.permission, load(rule.data), rule.options)(request, scope);
|
|
118
118
|
if (!guard.ok) throw new PermDockHttpError(guard.response);
|
|
119
119
|
req.permdock = guard.permdock;
|
|
120
120
|
req.permdockData = guard.data;
|
|
@@ -126,7 +126,7 @@ function createPermDock(policy, options) {
|
|
|
126
126
|
onRevoked(conn, (problem) => {
|
|
127
127
|
client.emit?.("permdock:error", problem);
|
|
128
128
|
if (typeof client.disconnect === "function") client.disconnect(true);
|
|
129
|
-
else client.close?.(POLICY_VIOLATION, problem
|
|
129
|
+
else client.close?.(POLICY_VIOLATION, closeReason(problem));
|
|
130
130
|
});
|
|
131
131
|
return conn;
|
|
132
132
|
});
|
|
@@ -136,7 +136,7 @@ function createPermDock(policy, options) {
|
|
|
136
136
|
const load = loadsFor(req);
|
|
137
137
|
for (const rule of rules) {
|
|
138
138
|
if (conn.signal.aborted) throw conn.signal.reason instanceof PermDockRevokedError ? conn.signal.reason : new PermDockRevokedError({ code: "denied" });
|
|
139
|
-
const guard = await kernel.protectOn(conn.permdock, rule.permission, load(rule.
|
|
139
|
+
const guard = await kernel.protectOn(conn.permdock, rule.permission, load(rule.data), rule.options, request);
|
|
140
140
|
if (!guard.ok) throw new PermDockHttpError(guard.response);
|
|
141
141
|
}
|
|
142
142
|
};
|
|
@@ -158,7 +158,7 @@ function createPermDock(policy, options) {
|
|
|
158
158
|
if (req === void 0) return rules.length === 0;
|
|
159
159
|
const request = bind(req);
|
|
160
160
|
const scope = await scopeOf(req);
|
|
161
|
-
req.permdock = await kernel.
|
|
161
|
+
req.permdock = await kernel.getPermDock(request, scope);
|
|
162
162
|
await applyProtect(rules, req, request, scope, loadsFor(req));
|
|
163
163
|
return true;
|
|
164
164
|
}
|
|
@@ -246,6 +246,7 @@ function createPermDock(policy, options) {
|
|
|
246
246
|
return EvaluationsController;
|
|
247
247
|
};
|
|
248
248
|
return {
|
|
249
|
+
getPermDock,
|
|
249
250
|
PermDockModule: PermDockRoot,
|
|
250
251
|
PermDockGuard,
|
|
251
252
|
Protect,
|
|
@@ -257,4 +258,4 @@ function createPermDock(policy, options) {
|
|
|
257
258
|
};
|
|
258
259
|
}
|
|
259
260
|
//#endregion
|
|
260
|
-
export { InvalidSignatureError, createPermDock, decorateMethod, discoverViaSignatureAgent, sendResponse, toRequest,
|
|
261
|
+
export { InvalidSignatureError, createPermDock, decorateMethod, discoverViaSignatureAgent, sendResponse, toRequest, webBotAuthVerifier };
|
package/dist/next/index.d.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { In as DenialReason, Nn as Decision, T as Policy, Vt as Snapshot, ar as Subject, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
|
|
2
|
+
import { w as Permission } from "../vocabulary-CN8H_9UF.js";
|
|
3
|
+
import { r as PermDock } from "../permdock-SV8ZINYT.js";
|
|
4
|
+
import { m as ApprovalStore } from "../types-BdtSDbBO.js";
|
|
5
|
+
import { t as InstanceOptions } from "../instance-options-BsVpyGIk.js";
|
|
6
|
+
import { n as PermDockWrap } from "../wrap-C5jC6sKI.js";
|
|
7
|
+
import { o as OtelWrap } from "../types-lUlG3TVd.js";
|
|
8
|
+
import { n as DescribeMessages } from "../describe-B5qgDvEW.js";
|
|
9
|
+
import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-PXI-vGpY.js";
|
|
9
10
|
import { ReactElement, ReactNode } from "react";
|
|
10
11
|
//#region src/next/types.d.ts
|
|
11
12
|
type NextSubjectInput = unknown;
|
|
12
13
|
type NextPermDockOptions<TUser = NextSubjectInput> = InstanceOptions & {
|
|
13
|
-
|
|
14
|
+
/** The user, or a full `Subject` (core then skips `policy.subject`). */
|
|
15
|
+
readonly subject: () => TUser | Subject | Promise<TUser | Subject>;
|
|
14
16
|
readonly tenant?: string | (() => string | undefined | Promise<string | undefined>);
|
|
15
17
|
readonly onDenied?: (decision: Decision) => never | void;
|
|
16
18
|
readonly store?: ApprovalStore;
|
|
@@ -36,12 +38,7 @@ type GetSnapshotQuery = GetPermDockQuery & {
|
|
|
36
38
|
/** Tags added next to `snapshotTag(sub)`, such as the app's own organisation tag. */
|
|
37
39
|
readonly tags?: readonly string[];
|
|
38
40
|
};
|
|
39
|
-
type
|
|
40
|
-
readonly permission: Permission;
|
|
41
|
-
/** The row for an instance permission; omit it for a collection permission. */
|
|
42
|
-
readonly data?: unknown;
|
|
43
|
-
/** The active tenant, as for `getPermDock({ tenant })`; defaults to the factory's `tenant`. */
|
|
44
|
-
readonly tenant?: string;
|
|
41
|
+
type PermissionRequirementOptions = GetPermDockQuery & {
|
|
45
42
|
/**
|
|
46
43
|
* Runs before the default interrupts; throw or redirect to replace them.
|
|
47
44
|
* Defaults to the factory's `onDenied`.
|
|
@@ -53,7 +50,7 @@ type ServerPermissionState = {
|
|
|
53
50
|
readonly status: "ready";
|
|
54
51
|
readonly decision: Decision;
|
|
55
52
|
};
|
|
56
|
-
type
|
|
53
|
+
type NextPermDockProviderProps = {
|
|
57
54
|
readonly children: ReactNode;
|
|
58
55
|
readonly tenant?: string;
|
|
59
56
|
readonly include?: readonly (Permission | {
|
|
@@ -70,7 +67,7 @@ type ServerPermDockProviderProps = {
|
|
|
70
67
|
*/
|
|
71
68
|
readonly defaults?: {
|
|
72
69
|
readonly pending?: ReactNode;
|
|
73
|
-
readonly
|
|
70
|
+
readonly denied?: ReactNode;
|
|
74
71
|
readonly approval?: ReactNode;
|
|
75
72
|
};
|
|
76
73
|
/** Localised text for `useDescribe()`; records only, for the same reason. */
|
|
@@ -102,15 +99,15 @@ type NextPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
|
|
|
102
99
|
* subject and `forbidden()` otherwise (`experimental.authInterrupts`);
|
|
103
100
|
* approval-required and boundary validation throw as from `assert`.
|
|
104
101
|
*/
|
|
105
|
-
readonly
|
|
102
|
+
readonly requirePermission: (permission: Permission, data?: unknown, options?: PermissionRequirementOptions) => Promise<Extract<Decision, {
|
|
106
103
|
readonly outcome: "granted";
|
|
107
104
|
}>>;
|
|
108
105
|
/** Never awaits: passes an unawaited snapshot to the client provider, whose hooks suspend. */
|
|
109
|
-
readonly PermDockProvider: (props:
|
|
106
|
+
readonly PermDockProvider: (props: NextPermDockProviderProps) => ReactElement;
|
|
110
107
|
readonly permdockHandler: () => PermDockHandler;
|
|
111
108
|
};
|
|
112
109
|
//#endregion
|
|
113
110
|
//#region src/next/create.d.ts
|
|
114
|
-
export declare function createPermDock<TUser = NextSubjectInput, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>,
|
|
111
|
+
export declare function createPermDock<TUser = NextSubjectInput, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: NextPermDockOptions<TUser>): NextPermDock<V>;
|
|
115
112
|
//#endregion
|
|
116
|
-
export { type CacheLifeForOptions, type GetPermDockQuery, type GetSnapshotQuery, type NextPermDock, type NextPermDockOptions, type
|
|
113
|
+
export { type CacheLifeForOptions, type GetPermDockQuery, type GetSnapshotQuery, type NextPermDock, type NextPermDockOptions, type NextPermDockProviderProps, type PermDockHandler, type PermissionRequirementOptions, type ServerPermissionState, type SnapshotHeaders, type SnapshotHeadersOptions, cacheLifeFor, snapshotHeaders, snapshotTag };
|