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/testing/index.d.ts
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { J as EntitlementSource, K as DecisionProvider, Q as LimitStore, T as Policy, U as CredentialVerifier, Vt as Snapshot, W as CustomRoleSource, Zn as CustomRole, Zt as DeliveryChannel, ar as Subject, at as SettingsSource, dt as TokenVerifier, et as MembershipSource, it as RelationSource, mt as WhereCompiler, nr as Membership, ot as SnapshotSource, q as DecisionSink, rr as Principal, st as SubjectResolver, ut as TokenSigner } from "../policy-types-n0uRTsW8.js";
|
|
2
|
+
import { C as InferPermissionTree, k as ResourceInit, r as Role, w as Permission } from "../vocabulary-CN8H_9UF.js";
|
|
3
|
+
import { Q as LegacyCheck } from "../index-DuWxc5dt.js";
|
|
4
|
+
import { S as ApprovalPolicySource, c as WhereResult, d as PrincipalIdentity, g as Limits, i as PermDockOptions, p as PrincipalSource, r as PermDock } from "../permdock-SV8ZINYT.js";
|
|
5
|
+
import { o as PolicySource } from "../hosted-BPk51-kX.js";
|
|
6
|
+
import { a as ApprovalDelegationSource, m as ApprovalStore } from "../types-BdtSDbBO.js";
|
|
7
|
+
import { a as ProblemDetails } from "../errors-DH5QEGXh.js";
|
|
8
|
+
import { c as ModelMap, t as AgentPermDock, u as ToolMap } from "../create-CBMmFie-.js";
|
|
9
|
+
import { c as AccessReviewStore } from "../types-C_IiEs64.js";
|
|
10
|
+
import { F as IdempotencyStore } from "../index-C-6Letxg.js";
|
|
11
|
+
import { n as RevocationFeed } from "../revocations-R07lFBnX.js";
|
|
12
|
+
import { s as SupportSessionSource } from "../index-B8YjkEZ4.js";
|
|
13
|
+
import { a as AutomationSource, t as Automation } from "../automation-BNM3TtDo.js";
|
|
14
|
+
import { c as DeliveryTransport, g as TransportMessages } from "../types-BtHtcKMr.js";
|
|
15
|
+
import { n as SupabaseHookManifest } from "../manifest-mx5ghSFM.js";
|
|
7
16
|
import { t as supabaseMembershipsBudget } from "../budget-JqcRqyhK.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
17
|
+
import { t as CloudApproverOptions } from "../types-8RnwUAvE.js";
|
|
18
|
+
import { n as ApprovalWaiter } from "../waiter-B986w1oK.js";
|
|
19
|
+
import { g as SetQueue, l as ReplayStore } from "../types-C791HFu9.js";
|
|
20
|
+
import { r as SnapshotStorage } from "../types-C863OQiR.js";
|
|
21
|
+
import { y as DirectoryStore } from "../index-Ch8LpNDp.js";
|
|
22
|
+
import { a as SaasProject } from "../permissions-u_KHg-sN.js";
|
|
23
|
+
import { n as saasPolicy } from "../policy-77FSAq_V.js";
|
|
13
24
|
import { expectTypeOf } from "vitest";
|
|
14
25
|
//#region src/testing/describe-policy.d.ts
|
|
15
26
|
type MatrixOutcome = "granted" | "denied" | "approval-required";
|
|
@@ -81,7 +92,7 @@ type RlsParityOptions = {
|
|
|
81
92
|
readonly role?: "authenticated" | "anon";
|
|
82
93
|
/**
|
|
83
94
|
* Tenant-defined roles the subjects' memberships may hold. `decide` resolves them through a
|
|
84
|
-
* `
|
|
95
|
+
* `CustomRoleSource`; each membership's claim carries them as the compact `grants` map, which the
|
|
85
96
|
* helpers read in `jwt` mode. Seeding the `database`-mode tables is the caller's job.
|
|
86
97
|
*/
|
|
87
98
|
readonly customRoles?: readonly CustomRole[];
|
|
@@ -113,7 +124,7 @@ type RlsParityReport = {
|
|
|
113
124
|
readonly ok: boolean;
|
|
114
125
|
readonly results: readonly RlsParityCase[];
|
|
115
126
|
};
|
|
116
|
-
export declare function
|
|
127
|
+
export declare function testRlsParity<TUser>(policy: Policy<TUser>, options: RlsParityOptions): Promise<RlsParityReport>;
|
|
117
128
|
//#endregion
|
|
118
129
|
//#region src/testing/orm-parity.d.ts
|
|
119
130
|
type OrmParityScenario<TUser = unknown> = {
|
|
@@ -161,7 +172,7 @@ type OrmParityReport = {
|
|
|
161
172
|
* A partial `where()` (a closure grant it cannot compile) may be refused or
|
|
162
173
|
* return fewer rows, never more.
|
|
163
174
|
*/
|
|
164
|
-
export declare function
|
|
175
|
+
export declare function testOrmParity<TUser>(policy: Policy<TUser>, scenarios: readonly OrmParityScenario<TUser>[], options: OrmParityOptions<TUser>): Promise<OrmParityReport>;
|
|
165
176
|
//#endregion
|
|
166
177
|
//#region src/testing/client-parity.d.ts
|
|
167
178
|
type ClientParityCase = {
|
|
@@ -178,7 +189,7 @@ type ClientParityCase = {
|
|
|
178
189
|
readonly stricter?: boolean;
|
|
179
190
|
};
|
|
180
191
|
type ClientParityOptions = {
|
|
181
|
-
readonly customRoles?:
|
|
192
|
+
readonly customRoles?: CustomRoleSource;
|
|
182
193
|
};
|
|
183
194
|
/**
|
|
184
195
|
* Asserts that `fromSnapshot(permdock.snapshot())` never grants what the
|
|
@@ -186,6 +197,26 @@ type ClientParityOptions = {
|
|
|
186
197
|
*/
|
|
187
198
|
export declare function testClientParity(policy: Policy, cases: readonly ClientParityCase[], options?: ClientParityOptions): void;
|
|
188
199
|
//#endregion
|
|
200
|
+
//#region src/testing/legacy-parity.d.ts
|
|
201
|
+
type LegacyParityCase = {
|
|
202
|
+
readonly name: string;
|
|
203
|
+
/** The value the policy's `subject` function receives. */
|
|
204
|
+
readonly user: unknown;
|
|
205
|
+
readonly permission: Permission;
|
|
206
|
+
readonly row?: unknown;
|
|
207
|
+
/**
|
|
208
|
+
* The answer PermDock should give where it intentionally differs from the
|
|
209
|
+
* legacy check; absent means the two must agree.
|
|
210
|
+
*/
|
|
211
|
+
readonly expect?: boolean;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Asserts that the policy answers each case as the application's legacy
|
|
215
|
+
* check does, or as the case's `expect` says where the difference is
|
|
216
|
+
* intended. Run it before enforcing a permission with `shadowMode`.
|
|
217
|
+
*/
|
|
218
|
+
export declare function testLegacyParity(policy: Policy, legacy: LegacyCheck, cases: readonly LegacyParityCase[]): void;
|
|
219
|
+
//#endregion
|
|
189
220
|
//#region src/testing/client-store.d.ts
|
|
190
221
|
type ClientStoreStatus = "ready" | "pending" | "stale" | "server-only";
|
|
191
222
|
/** The client surface every UI adapter hands to components. */
|
|
@@ -254,9 +285,9 @@ type HttpScenarioDomain = {
|
|
|
254
285
|
readonly ticks: (org: string | undefined, signal: AbortSignal) => AsyncIterable<SaasProject>;
|
|
255
286
|
/** The `:org` segment of a path; mounts may read their route param instead. */
|
|
256
287
|
readonly org: (path: string) => string | undefined;
|
|
257
|
-
readonly customRoles:
|
|
288
|
+
readonly customRoles: CustomRoleSource;
|
|
258
289
|
readonly store: ApprovalStore;
|
|
259
|
-
readonly limits:
|
|
290
|
+
readonly limits: Limits;
|
|
260
291
|
/** A project row by id, whatever its org: tenant checks belong to the policy. */
|
|
261
292
|
readonly project: (id: string | undefined) => SaasProject | null;
|
|
262
293
|
};
|
|
@@ -385,7 +416,7 @@ type AgentScenarioDomain = {
|
|
|
385
416
|
* approval.
|
|
386
417
|
*/
|
|
387
418
|
readonly tools: ToolMap & { readonly [K in AgentToolName]: ToolMap[K]; };
|
|
388
|
-
readonly customRoles:
|
|
419
|
+
readonly customRoles: CustomRoleSource;
|
|
389
420
|
readonly store: ApprovalStore;
|
|
390
421
|
};
|
|
391
422
|
type AgentCall = {
|
|
@@ -416,13 +447,55 @@ type AgentAdapterOptions = {
|
|
|
416
447
|
*/
|
|
417
448
|
export declare function testAgentAdapter(options: AgentAdapterOptions): void;
|
|
418
449
|
//#endregion
|
|
450
|
+
//#region src/testing/agent-runtime.d.ts
|
|
451
|
+
/** The server-side context of one call; the subject and tenant come from here, never from arguments. */
|
|
452
|
+
type AgentRuntimeContext = {
|
|
453
|
+
/** `null` for a call with no authenticated user. */
|
|
454
|
+
readonly user: string | null;
|
|
455
|
+
readonly org: string;
|
|
456
|
+
};
|
|
457
|
+
type AgentRuntimeOperation = "project_read" | "project_search" | "api_keys_revoke_all";
|
|
458
|
+
type AgentRuntimeModel = "standard" | "frontier";
|
|
459
|
+
/** What a mount wires into its `AgentPermDock`. */
|
|
460
|
+
type AgentRuntimeDomain = {
|
|
461
|
+
readonly policy: typeof saasPolicy;
|
|
462
|
+
/** The principal for `user` with the plans of `org`, or `null`. Throws for `AGENT_THROWING_USER`. */
|
|
463
|
+
readonly subject: (user: string | null, org: string) => Principal | null;
|
|
464
|
+
/**
|
|
465
|
+
* `project_read` loads the row named by `args.id`; `project_search` has a
|
|
466
|
+
* `results` permission; `api_keys_revoke_all` needs approval.
|
|
467
|
+
*/
|
|
468
|
+
readonly operations: ToolMap & { readonly [K in AgentRuntimeOperation]: ToolMap[K]; };
|
|
469
|
+
/** `standard` for any reader, `frontier` for an admin on the `pro` plan. */
|
|
470
|
+
readonly models: ModelMap & { readonly [K in AgentRuntimeModel]: ModelMap[K]; };
|
|
471
|
+
readonly customRoles: CustomRoleSource;
|
|
472
|
+
readonly store: ApprovalStore;
|
|
473
|
+
};
|
|
474
|
+
type AgentRuntimeMounted = {
|
|
475
|
+
readonly agent: AgentPermDock<AgentRuntimeContext>;
|
|
476
|
+
readonly close?: () => Promise<void> | void;
|
|
477
|
+
};
|
|
478
|
+
type AgentRuntimeScenarioName = "granted" | "denied" | "cross-tenant" | "anonymous" | "subject-throws" | "loader-throws" | "missing-row" | "approval-required" | "unmapped-operation" | "allowed-operations" | "model-gate" | "permitted-models" | "results-filter" | "gateway-options";
|
|
479
|
+
type AgentRuntimeOptions = {
|
|
480
|
+
readonly name: string;
|
|
481
|
+
readonly mount: (domain: AgentRuntimeDomain) => AgentRuntimeMounted | Promise<AgentRuntimeMounted>;
|
|
482
|
+
/** Scenarios the runtime cannot express, each with a reason. */
|
|
483
|
+
readonly skip?: Readonly<Partial<Record<AgentRuntimeScenarioName, string>>>;
|
|
484
|
+
};
|
|
485
|
+
/**
|
|
486
|
+
* Runs the `AgentPermDock` contract against a runtime: operations decided by
|
|
487
|
+
* name, the listing hint, the model gate, the results filter and gateway
|
|
488
|
+
* attribution. Every failure denies, and no method throws.
|
|
489
|
+
*/
|
|
490
|
+
export declare function testAgentRuntime(options: AgentRuntimeOptions): void;
|
|
491
|
+
//#endregion
|
|
419
492
|
//#region src/testing/authzen.d.ts
|
|
420
493
|
type Entity = {
|
|
421
494
|
readonly type: string;
|
|
422
495
|
readonly id?: string;
|
|
423
496
|
readonly properties?: Readonly<Record<string, unknown>>;
|
|
424
497
|
};
|
|
425
|
-
type
|
|
498
|
+
type AuthzenEvaluationVector = {
|
|
426
499
|
readonly request: {
|
|
427
500
|
readonly subject: Entity;
|
|
428
501
|
readonly action: {
|
|
@@ -433,7 +506,7 @@ type AuthZenEvaluationVector = {
|
|
|
433
506
|
};
|
|
434
507
|
readonly expected: boolean;
|
|
435
508
|
};
|
|
436
|
-
type
|
|
509
|
+
type AuthzenEvaluationsVector = {
|
|
437
510
|
readonly request: {
|
|
438
511
|
readonly subject?: Entity;
|
|
439
512
|
readonly action?: {
|
|
@@ -452,7 +525,7 @@ type AuthZenEvaluationsVector = {
|
|
|
452
525
|
readonly decision: boolean;
|
|
453
526
|
}[];
|
|
454
527
|
};
|
|
455
|
-
type
|
|
528
|
+
type AuthzenSearchVector = {
|
|
456
529
|
readonly request: Readonly<Record<string, unknown>>;
|
|
457
530
|
readonly expected: {
|
|
458
531
|
readonly results: readonly Readonly<Record<string, unknown>>[];
|
|
@@ -463,17 +536,17 @@ type AuthZenSearchVector = {
|
|
|
463
536
|
* (`decisions-*.json` for Basic and Batch, `search/{subject,resource,action}`
|
|
464
537
|
* `results.json` for Search), so the official files load unchanged.
|
|
465
538
|
*/
|
|
466
|
-
type
|
|
467
|
-
readonly evaluation?: readonly
|
|
468
|
-
readonly evaluations?: readonly
|
|
539
|
+
type AuthzenVectors = {
|
|
540
|
+
readonly evaluation?: readonly AuthzenEvaluationVector[];
|
|
541
|
+
readonly evaluations?: readonly AuthzenEvaluationsVector[];
|
|
469
542
|
readonly search?: {
|
|
470
|
-
readonly subject?: readonly
|
|
471
|
-
readonly resource?: readonly
|
|
472
|
-
readonly action?: readonly
|
|
543
|
+
readonly subject?: readonly AuthzenSearchVector[];
|
|
544
|
+
readonly resource?: readonly AuthzenSearchVector[];
|
|
545
|
+
readonly action?: readonly AuthzenSearchVector[];
|
|
473
546
|
};
|
|
474
547
|
};
|
|
475
|
-
type
|
|
476
|
-
readonly vectors:
|
|
548
|
+
type TestAuthzenOptions = {
|
|
549
|
+
readonly vectors: AuthzenVectors;
|
|
477
550
|
/** Origin the requests are addressed to; the discovery document must name it. */
|
|
478
551
|
readonly origin?: string;
|
|
479
552
|
readonly headers?: Readonly<Record<string, string>>;
|
|
@@ -481,7 +554,7 @@ type TestAuthZenOptions = {
|
|
|
481
554
|
readonly discovery?: boolean;
|
|
482
555
|
};
|
|
483
556
|
/** Runs AuthZEN 1.0 interop vectors against an Authorization API endpoint. */
|
|
484
|
-
export declare function
|
|
557
|
+
export declare function testAuthzen(handle: (request: Request) => Promise<Response>, options: TestAuthzenOptions): void;
|
|
485
558
|
type TodoUser = {
|
|
486
559
|
readonly id: string;
|
|
487
560
|
readonly identity: string;
|
|
@@ -511,7 +584,57 @@ export declare const authzenTodoData: {
|
|
|
511
584
|
* every user against every action on their own and on Rick's todo, one batch
|
|
512
585
|
* per user, and the three searches.
|
|
513
586
|
*/
|
|
514
|
-
export declare function authzenTodoVectors():
|
|
587
|
+
export declare function authzenTodoVectors(): AuthzenVectors;
|
|
588
|
+
//#endregion
|
|
589
|
+
//#region src/testing/cloud-api/platform-checks.d.ts
|
|
590
|
+
type TestCloudPlatformOptions = {
|
|
591
|
+
/** A `PERMDOCK_CLOUD_TOKEN` for `project`: read-only, pinned to one environment. */
|
|
592
|
+
readonly token: string;
|
|
593
|
+
/** The project the token reads; defaults to the environment. */
|
|
594
|
+
readonly project?: string;
|
|
595
|
+
/** A project with no `cloud push` yet and a login token that reads it; the `policy-not-published` check is skipped without it. */
|
|
596
|
+
readonly unpublished?: {
|
|
597
|
+
readonly project: string;
|
|
598
|
+
readonly token: string;
|
|
599
|
+
};
|
|
600
|
+
/** Registers a test MCP client with RFC 7591; skipped unless true. */
|
|
601
|
+
readonly registration?: boolean;
|
|
602
|
+
};
|
|
603
|
+
//#endregion
|
|
604
|
+
//#region src/testing/cloud-api/index.d.ts
|
|
605
|
+
type CloudApiKeys = {
|
|
606
|
+
/** The `client` key the application deploys (`PERMDOCK_CLOUD_KEY`). */
|
|
607
|
+
readonly client: string;
|
|
608
|
+
/** The `admin` key; the authoring checks are skipped without it. */
|
|
609
|
+
readonly admin?: string;
|
|
610
|
+
/** An `export` key; its key-kind check is skipped without it. */
|
|
611
|
+
readonly export?: string;
|
|
612
|
+
};
|
|
613
|
+
type TestCloudApiOptions = {
|
|
614
|
+
readonly environment?: string;
|
|
615
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
616
|
+
/** Signs the `PermDock-Approver` tokens; its issuer is a trusted issuer for `approver`. */
|
|
617
|
+
readonly approver: CloudApproverOptions;
|
|
618
|
+
/** A fresh `PermDock-Subject` token per call; the snapshot checks are skipped without it. */
|
|
619
|
+
readonly subject?: () => string | Promise<string>;
|
|
620
|
+
/** Verifies the environment's policy documents for `testPolicySource`. */
|
|
621
|
+
readonly verifier?: TokenVerifier;
|
|
622
|
+
/** AuthZEN vectors for the hosted ADS, with the caller's credentials as `headers`. */
|
|
623
|
+
readonly authzen?: {
|
|
624
|
+
readonly vectors: AuthzenVectors;
|
|
625
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
626
|
+
};
|
|
627
|
+
/** The platform issuer and project read API at `baseUrl`; skipped without it. */
|
|
628
|
+
readonly platform?: TestCloudPlatformOptions;
|
|
629
|
+
};
|
|
630
|
+
/**
|
|
631
|
+
* Runs the conformance runners and the HTTP contract checks against one
|
|
632
|
+
* PermDock Cloud environment, and validates every response body against
|
|
633
|
+
* `cloud-api-v1.json`. Point it at a test environment: it creates approvals,
|
|
634
|
+
* sends decision events and deliveries to `.invalid` addresses, and pushes
|
|
635
|
+
* the catalog the environment already holds.
|
|
636
|
+
*/
|
|
637
|
+
export declare function testCloudApi(baseUrl: string, keys: CloudApiKeys, options: TestCloudApiOptions): void;
|
|
515
638
|
//#endregion
|
|
516
639
|
//#region src/testing/conformance/approvals.d.ts
|
|
517
640
|
type ApprovalStoreOptions = {
|
|
@@ -533,6 +656,27 @@ export declare function testApprovalPolicySource(source: ApprovalPolicySource, o
|
|
|
533
656
|
readonly tenant: string;
|
|
534
657
|
readonly unknown?: string;
|
|
535
658
|
}): void;
|
|
659
|
+
/**
|
|
660
|
+
* Checks an `AccessReviewStore`: create is kept, items page, a decision is
|
|
661
|
+
* recorded once, only a revoked item can be marked applied, and close is once.
|
|
662
|
+
*/
|
|
663
|
+
export declare function testAccessReviewStore(store: AccessReviewStore): void;
|
|
664
|
+
/**
|
|
665
|
+
* Checks an `ApprovalDelegationSource`: entries are plain JSON, name the
|
|
666
|
+
* delegate, and are active at `at`. A query for another delegate is empty.
|
|
667
|
+
*/
|
|
668
|
+
export declare function testApprovalDelegationSource(source: ApprovalDelegationSource, options: {
|
|
669
|
+
readonly delegate: string;
|
|
670
|
+
readonly delegator: string;
|
|
671
|
+
readonly tenant?: string;
|
|
672
|
+
readonly at?: string;
|
|
673
|
+
}): void;
|
|
674
|
+
/**
|
|
675
|
+
* Checks an `IdempotencyStore`: a stored response comes back as written
|
|
676
|
+
* until it expires, keys never share an entry, and a later `set` replaces an
|
|
677
|
+
* earlier one.
|
|
678
|
+
*/
|
|
679
|
+
export declare function testIdempotencyStore(store: IdempotencyStore): void;
|
|
536
680
|
//#endregion
|
|
537
681
|
//#region src/testing/conformance/where.d.ts
|
|
538
682
|
type WhereRow = Readonly<Record<string, unknown>>;
|
|
@@ -550,6 +694,7 @@ export declare function testWhereCompiler<TTarget>(compiler: WhereCompiler<TTarg
|
|
|
550
694
|
//#endregion
|
|
551
695
|
//#region src/testing/conformance/credentials.d.ts
|
|
552
696
|
export declare function testReplayStore(store: ReplayStore): void;
|
|
697
|
+
export declare function testSetQueue(queue: SetQueue): void;
|
|
553
698
|
export declare function testRevocationFeed(feed: RevocationFeed): void;
|
|
554
699
|
export declare function testTokenVerifier(verifier: TokenVerifier, options?: {
|
|
555
700
|
readonly audience?: string;
|
|
@@ -576,6 +721,18 @@ export declare function testPolicySource(source: PolicySource, options?: {
|
|
|
576
721
|
readonly policy?: Policy;
|
|
577
722
|
}): void;
|
|
578
723
|
//#endregion
|
|
724
|
+
//#region src/testing/conformance/providers.d.ts
|
|
725
|
+
type DecisionProviderRunnerOptions = {
|
|
726
|
+
/** A permission the provider handles. */
|
|
727
|
+
readonly permission: Permission;
|
|
728
|
+
readonly subject: Subject;
|
|
729
|
+
readonly data?: unknown;
|
|
730
|
+
/** The same provider wired to a transport that fails; it must deny. */
|
|
731
|
+
readonly unavailable?: DecisionProvider;
|
|
732
|
+
};
|
|
733
|
+
export declare function testDecisionProvider(provider: DecisionProvider, options: DecisionProviderRunnerOptions): void;
|
|
734
|
+
export declare function testSnapshotStorage(storage: SnapshotStorage): void;
|
|
735
|
+
//#endregion
|
|
579
736
|
//#region src/testing/conformance/relations.d.ts
|
|
580
737
|
/**
|
|
581
738
|
* A `RelationSource` answers facts only: well-formed chains nearest first and
|
|
@@ -600,6 +757,103 @@ export declare function testRelationSource(source: RelationSource, options: {
|
|
|
600
757
|
};
|
|
601
758
|
}): void;
|
|
602
759
|
//#endregion
|
|
760
|
+
//#region src/testing/conformance/principals.d.ts
|
|
761
|
+
/**
|
|
762
|
+
* Checks a `PrincipalSource`: `principal` answers each listed id with the
|
|
763
|
+
* expected principal or `null`, never another id; `principalByIdentity`
|
|
764
|
+
* resolves each listed identity to the expected principal id or `null`, and
|
|
765
|
+
* an email matches trimmed and in any case.
|
|
766
|
+
*/
|
|
767
|
+
export declare function testPrincipalSource(source: PrincipalSource, options: {
|
|
768
|
+
readonly principals: readonly {
|
|
769
|
+
readonly id: string;
|
|
770
|
+
readonly tenant?: string;
|
|
771
|
+
/** The principal `principal(id)` returns, or `null` for none; omit to check only the shape. */
|
|
772
|
+
readonly expect?: Principal | null;
|
|
773
|
+
}[];
|
|
774
|
+
readonly identities?: readonly {
|
|
775
|
+
readonly identity: PrincipalIdentity;
|
|
776
|
+
/** The id of the principal the identity resolves to, or `null` for none. */
|
|
777
|
+
readonly expect: string | null;
|
|
778
|
+
}[];
|
|
779
|
+
}): void;
|
|
780
|
+
//#endregion
|
|
781
|
+
//#region src/testing/conformance/automations.d.ts
|
|
782
|
+
/**
|
|
783
|
+
* Checks an `AutomationSource`: `automation(id)` answers each listed id
|
|
784
|
+
* with a valid Automation v1 record of that id or `null`, never another id;
|
|
785
|
+
* a record held to one tenant is `null` when asked for another; an empty or
|
|
786
|
+
* unknown id is `null`.
|
|
787
|
+
*/
|
|
788
|
+
export declare function testAutomationSource(source: AutomationSource, options: {
|
|
789
|
+
readonly automations: readonly {
|
|
790
|
+
readonly id: string;
|
|
791
|
+
readonly tenant?: string;
|
|
792
|
+
/** The record `automation(id)` returns, or `null` for none; omit to check only the shape. */
|
|
793
|
+
readonly expect?: Automation | null;
|
|
794
|
+
}[];
|
|
795
|
+
}): void;
|
|
796
|
+
/**
|
|
797
|
+
* Checks a `SupportSessionSource`: `session(id)` answers each listed id
|
|
798
|
+
* with a record of that id or `null`, never another id; `ended` is a
|
|
799
|
+
* boolean when present; an empty or unknown id is `null`.
|
|
800
|
+
*/
|
|
801
|
+
export declare function testSupportSessionSource(source: SupportSessionSource, options: {
|
|
802
|
+
readonly sessions: readonly {
|
|
803
|
+
readonly id: string;
|
|
804
|
+
/** `true` for an ended session, `false` for a live one, `null` for an unknown one. */
|
|
805
|
+
readonly ended?: boolean | null;
|
|
806
|
+
}[];
|
|
807
|
+
}): void;
|
|
808
|
+
/**
|
|
809
|
+
* Checks an `ApprovalWaiter`: a wait ends when its token is woken and not
|
|
810
|
+
* when another token is; waking a token nobody waits on resolves; a wait
|
|
811
|
+
* whose `expiresAt` has passed ends; an aborted `signal` rejects the wait with its reason.
|
|
812
|
+
* Pass `expiry: false` or `abort: false` for a waiter whose runner offers no
|
|
813
|
+
* timer or no cancellation, `pending` when the waiter reads a store, and
|
|
814
|
+
* `parked` when a wait parks asynchronously.
|
|
815
|
+
*/
|
|
816
|
+
export declare function testApprovalWaiter(waiter: ApprovalWaiter, options?: {
|
|
817
|
+
/** Opens a pending approval request and returns its token; a fixed token per label when absent. */
|
|
818
|
+
readonly pending?: (label: string) => string | Promise<string>;
|
|
819
|
+
/** Resolves once `wait(token)` has parked; one macrotask when absent. */
|
|
820
|
+
readonly parked?: (token: string) => Promise<void>;
|
|
821
|
+
readonly expiry?: boolean;
|
|
822
|
+
readonly abort?: boolean;
|
|
823
|
+
/** Milliseconds a wait may take to end after its trigger. Defaults to 1000. */
|
|
824
|
+
readonly timeout?: number;
|
|
825
|
+
}): void;
|
|
826
|
+
//#endregion
|
|
827
|
+
//#region src/testing/delivery-transport.d.ts
|
|
828
|
+
/** How a provider fails on its next call: a retryable error, a final error, or a throw from its client. */
|
|
829
|
+
type DeliveryFailureKind = "retryable" | "final" | "throw";
|
|
830
|
+
type DeliveryTransportHarness<C extends DeliveryChannel> = {
|
|
831
|
+
readonly transport: DeliveryTransport<C>;
|
|
832
|
+
/** What the provider accepted, one entry per delivery, with the idempotency key it received. */
|
|
833
|
+
received(): readonly {
|
|
834
|
+
readonly idempotencyKey: string;
|
|
835
|
+
}[] | Promise<readonly {
|
|
836
|
+
readonly idempotencyKey: string;
|
|
837
|
+
}[]>;
|
|
838
|
+
/** Makes the provider's next call fail this way. */
|
|
839
|
+
fail(kind: DeliveryFailureKind): void;
|
|
840
|
+
};
|
|
841
|
+
type DeliveryTransportOptions<C extends DeliveryChannel> = {
|
|
842
|
+
readonly channel: C;
|
|
843
|
+
/** An address the provider accepts on `channel`. */
|
|
844
|
+
readonly address: string;
|
|
845
|
+
readonly message: TransportMessages[C];
|
|
846
|
+
/** A fresh harness per test. */
|
|
847
|
+
create(): DeliveryTransportHarness<C>;
|
|
848
|
+
};
|
|
849
|
+
/**
|
|
850
|
+
* Conformance for a `DeliveryTransport`: it sends a checked target with its
|
|
851
|
+
* idempotency key, keeps the key on a retry, refuses a target without a
|
|
852
|
+
* granted decision before calling the provider, and maps provider errors to
|
|
853
|
+
* retryable or final failures without rejecting.
|
|
854
|
+
*/
|
|
855
|
+
export declare function testDeliveryTransport<C extends DeliveryChannel>(name: string, options: DeliveryTransportOptions<C>): void;
|
|
856
|
+
//#endregion
|
|
603
857
|
//#region src/testing/conformance/identity.d.ts
|
|
604
858
|
export declare function testSubjectResolver<TInput>(resolver: SubjectResolver<TInput>, options: {
|
|
605
859
|
readonly invalid: TInput;
|
|
@@ -622,7 +876,7 @@ export declare function testEntitlementSource(source: EntitlementSource, options
|
|
|
622
876
|
readonly tenant: string;
|
|
623
877
|
readonly expect?: readonly string[];
|
|
624
878
|
}): void;
|
|
625
|
-
export declare function
|
|
879
|
+
export declare function testCustomRoleSource(source: CustomRoleSource, options: {
|
|
626
880
|
readonly tenant: string;
|
|
627
881
|
readonly declared: readonly (string | Role)[];
|
|
628
882
|
/** When set, every custom role's `grants` must resolve inside the ceiling. */
|
|
@@ -662,9 +916,9 @@ export declare const jwtFixtureTokens: {
|
|
|
662
916
|
readonly wrongIss: "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoiMjAyNi0wOSIsInR5cCI6ImF0K2p3dCJ9.eyJzdWIiOiJ1XzEiLCJpc3MiOiJodHRwczovL2V2aWwuZXhhbXBsZS5jb20iLCJhdWQiOiJodHRwczovL2FwaS5leGFtcGxlLmNvbSIsImlhdCI6MTcwMDAwMDAwMCwiZXhwIjoyMDAwMDAwMDAwfQ.tIcLHLa9JLtKz1gqjRGdr5DFbUzRDs5KsoPsJCxspvbBcsFfRFG2G0XJnd1h4QHyZ_5B4OhY3W_jIIsnOPD9Bg";
|
|
663
917
|
readonly unknownKid: "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoibm9wZSIsInR5cCI6ImF0K2p3dCJ9.eyJzdWIiOiJ1XzEiLCJpc3MiOiJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIiwiYXVkIjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iLCJpYXQiOjE3MDAwMDAwMDAsImV4cCI6MjAwMDAwMDAwMH0.walgG5GvpCVBnkMtkdw-epi5c93JqfvAM_N4EWR9Tqhiw_cnzITnlQyoVfihECmV1fqtFrhwM1RCIRJvd38zAQ";
|
|
664
918
|
readonly none: "eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1XzEiLCJpc3MiOiJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIiwiYXVkIjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20iLCJleHAiOjIwMDAwMDAwMDAsImlhdCI6MTcwMDAwMDAwMH0.";
|
|
665
|
-
readonly snapshot: "
|
|
666
|
-
readonly approval: "
|
|
667
|
-
readonly decisions: "
|
|
919
|
+
readonly snapshot: "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoiMjAyNi0wOSIsInR5cCI6InZuZC5wZXJtZG9jay5zbmFwc2hvdCtqd3QifQ.eyJzbmFwc2hvdCI6eyJ2IjoxLCJzdWJqZWN0Ijp7InByaW5jaXBhbCI6eyJpZCI6InVfMSIsInJvbGVzIjpbIm1lbWJlciJdfSwiY29udGV4dCI6e319LCJyb2xlcyI6WyJtZW1iZXIiXSwiZ3JhbnRzIjpbXSwidGVuYW50cyI6W119LCJzdWIiOiJ1XzEiLCJpYXQiOjE3MDAwMDAwMDAsImp0aSI6InNuYXBfZml4dHVyZSIsImlzcyI6Imh0dHBzOi8vYXBwLmV4YW1wbGUuY29tIiwiYXVkIjoiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20iLCJleHAiOjIwMDAwMDAwMDB9.41KijBuOn1Ehodp60-Pn6qx_WrHQ-BiVUmYy2vjcHjO3o1dopXxjnHJP7P1c-6ghYgrvucPu7hZrDjTtPhxWBw";
|
|
920
|
+
readonly approval: "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoiMjAyNi0wOSIsInR5cCI6InZuZC5wZXJtZG9jay5hcHByb3ZhbCtqd3QifQ.eyJzdWIiOiJ1XzEiLCJ0b2tlbiI6InNoYS0yNTY6NDdERVFwajhIQlNhLV9USW1XLTVKQ2V1UWVSa201Tk1wSldaRzNoU3VGVSIsInJlc29sdmVkX2J5IjoidV8yIiwiYXBwcm92YWxzIjpbeyJieSI6InVfMiIsImF0IjoiMjAyMy0xMS0xNFQyMjoxMzoyMFoifV0sImF1dGhvcml6YXRpb25fZGV0YWlscyI6W3sidHlwZSI6InBvc3QiLCJhY3Rpb25zIjpbImRlbGV0ZSJdLCJpZGVudGlmaWVyIjoiNDIifV0sImlhdCI6MTcwMDAwMDAwMCwianRpIjoiYXByX2ZpeHR1cmUiLCJpc3MiOiJodHRwczovL2FwcC5leGFtcGxlLmNvbSIsImF1ZCI6Imh0dHBzOi8vYXBwLmV4YW1wbGUuY29tIiwiZXhwIjoyMDAwMDAwMDAwfQ.Q76F3tDT2FrEnxD9TjdLfEayJEyyGUWHu6bTCCl5Flegcl9-o370agNVhcV03Khfidm-lK7gPg05ZiYcpCfyBQ";
|
|
921
|
+
readonly decisions: "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoiMjAyNi0wOSIsInR5cCI6InZuZC5wZXJtZG9jay5ldmlkZW5jZStqd3QifQ.eyJldmVudHMiOltdLCJpYXQiOjE3MDAwMDAwMDAsImp0aSI6ImRlY19maXh0dXJlIiwiaXNzIjoiaHR0cHM6Ly9hcHAuZXhhbXBsZS5jb20iLCJhdWQiOiJodHRwczovL2FwcC5leGFtcGxlLmNvbSIsImV4cCI6MjAwMDAwMDAwMH0.oGiFmCEFWUAEBtLO3F_rnGMSKBhb9rIxng4YLwRbBTA3fudrbJMcJD2BhNH99cjcBa1xCmADfdOnTc-Ltq-kAA";
|
|
668
922
|
};
|
|
669
923
|
//#endregion
|
|
670
924
|
//#region src/testing/supabase-fixtures.d.ts
|
|
@@ -672,7 +926,7 @@ export declare const jwtFixtureTokens: {
|
|
|
672
926
|
* Claim sets in the shape the Supabase custom access token hook produces (the RBAC guide's
|
|
673
927
|
* `user_role` claim, optionally mirrored into `app_metadata`, plus a `memberships` array for
|
|
674
928
|
* multi-org apps). `tenantPlans` has scoped memberships, `tenant_id` and per-tenant plans in
|
|
675
|
-
* `features`, read with `plans: 'features'`. `full` sets every field of the
|
|
929
|
+
* `features`, read with `claims: { plans: 'features' }`. `full` sets every field of the
|
|
676
930
|
* claim contract plus a `hook.claims` extra claim; `portalContact`, `oauthClient` and
|
|
677
931
|
* `actChain` cover a customer contact, a Supabase OAuth server token and an RFC 8693 chain.
|
|
678
932
|
* `supportSession`, `supportSessionReadOnly` and `impersonation` are the `act.kind` tokens
|
|
@@ -684,7 +938,9 @@ type SupabaseClaimFixture = {
|
|
|
684
938
|
readonly claims: Readonly<Record<string, unknown>>;
|
|
685
939
|
/** `subjectFromSupabase` options the case needs. */
|
|
686
940
|
readonly options?: {
|
|
687
|
-
readonly
|
|
941
|
+
readonly claims?: {
|
|
942
|
+
readonly plans?: string;
|
|
943
|
+
};
|
|
688
944
|
readonly anonymousSignIns?: "deny";
|
|
689
945
|
};
|
|
690
946
|
readonly expect: {
|
|
@@ -754,4 +1010,21 @@ export declare const supabaseClaimVectors: SupabaseClaimVectors;
|
|
|
754
1010
|
*/
|
|
755
1011
|
export declare const supabaseHookManifestFixture: SupabaseHookManifest;
|
|
756
1012
|
//#endregion
|
|
757
|
-
|
|
1013
|
+
//#region src/core/problem-types.d.ts
|
|
1014
|
+
/**
|
|
1015
|
+
* The Problem Details types PermDock defines (RFC 9457 section 4). Every
|
|
1016
|
+
* other status answers with `about:blank` and its RFC 9110 reason phrase.
|
|
1017
|
+
*/
|
|
1018
|
+
declare const PROBLEM_TYPES: readonly ["denied", "approval-required", "validation", "step-up-required", "not-entitled", "rate-limited", "limit-unavailable", "invalid-signature", "approver-not-eligible"];
|
|
1019
|
+
type ProblemType = (typeof PROBLEM_TYPES)[number];
|
|
1020
|
+
//#endregion
|
|
1021
|
+
//#region src/testing/problem-examples.d.ts
|
|
1022
|
+
/**
|
|
1023
|
+
* One RFC 9457 body per PermDock problem type, exactly as the HTTP adapters
|
|
1024
|
+
* write it for a `post.delete` request by subject `u_123`. A client tests its
|
|
1025
|
+
* error handling against these; `tests/standards/problem-details.test.ts`
|
|
1026
|
+
* rebuilds each from the code that emits it, and the docs show the same JSON.
|
|
1027
|
+
*/
|
|
1028
|
+
export declare const PROBLEM_EXAMPLES: Readonly<Record<ProblemType, ProblemDetails>>;
|
|
1029
|
+
//#endregion
|
|
1030
|
+
export { type AgentAdapterOptions, type AgentCall, type AgentMounted, type AgentOutcome, type AgentRuntimeContext, type AgentRuntimeDomain, type AgentRuntimeModel, type AgentRuntimeMounted, type AgentRuntimeOperation, type AgentRuntimeOptions, type AgentRuntimeScenarioName, type AgentScenarioDomain, type AgentScenarioName, type AgentToolName, type ApprovalStoreOptions, type AuthzenEvaluationVector, type AuthzenEvaluationsVector, type AuthzenSearchVector, type AuthzenVectors, type ClientParityCase, type ClientParityOptions, type ClientStoreFactory, type ClientStoreFactoryOptions, type ClientStoreHandle, type ClientStorePermDock, type ClientStoreStatus, type CloudApiKeys, type DecisionProviderRunnerOptions, type DeliveryFailureKind, type DeliveryTransportHarness, type DeliveryTransportOptions, type DescribePolicyConfig, type HttpAdapterOptions, type HttpCall, type HttpMounted, type HttpOp, type HttpResult, type HttpScenarioDomain, type HttpScenarioName, type LegacyParityCase, type MatrixCell, type MatrixOutcome, type OrmParityCase, type OrmParityOptions, type OrmParityReport, type OrmParityRunInput, type OrmParityScenario, type RlsDbOutcome, type RlsFieldsOutcome, type RlsParityCase, type RlsParityFixture, type RlsParityOptions, type RlsParityReport, type RlsParitySubject, type RlsQueryFn, type RlsQueryResult, type SupabaseClaimFixture, type SupabaseClaimFixtureName, type SupabaseClaimVectors, type TestAuthzenOptions, type TestCloudApiOptions, type TestCloudPlatformOptions, expectTypeOf, supabaseMembershipsBudget };
|