permdock 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/{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-B4R5fnMU.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -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-Djo_PyZc.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-DJ6Yd5z1.js +995 -0
- package/dist/arazzo-B6lebmiQ.js +36 -0
- package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.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-Dg8XsRaO.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-BMZPIVUM.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +9 -8
- package/dist/better-supabase/index.d.ts +357 -30
- package/dist/better-supabase/index.js +936 -194
- package/dist/{bind-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
- package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -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-BMnAudHn.js} +4 -3
- package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
- package/dist/{capability-CksyCWDH.d.ts → capability-BSslw1QV.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-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
- package/dist/catalog-DjhMYYCq.js +1 -0
- package/dist/catalog-R_A__RsH.js +52 -0
- package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.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-CIoHNevm.js +87 -0
- package/dist/codemod-Bmj9dWMH.js +37 -0
- package/dist/codemod-Cxvvc70T.js +2084 -0
- package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
- package/dist/collect-DloHbDVa.js +55 -0
- package/dist/collect-FlXJlhus.js +1 -0
- 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-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
- package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
- package/dist/completion-BqhRBJD8.js +143 -0
- package/dist/config-B46rm9sc.js +26 -0
- package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
- package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
- package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
- package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +6 -4
- package/dist/create-0VZ7Pdiu.d.ts +107 -0
- package/dist/create-BDS7wc3y.d.ts +138 -0
- package/dist/create-BFfm17UA.d.ts +110 -0
- package/dist/create-BWRSXgOF.js +403 -0
- package/dist/create-C3b4B5eF.js +130 -0
- package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
- package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/delegation-DaXVdDhM.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-D8jDHgsl.d.ts} +5 -5
- package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.d.ts} +2 -2
- package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/diff-CxZo9pTq.js +37 -0
- package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
- package/dist/doctor-CxiwSfqH.js +44 -0
- package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.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-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/evaluate-_R8QkWaf.js +1732 -0
- package/dist/evaluations-16UqqQ6W.d.ts +32 -0
- package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.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-g0ypLkID.js +120 -0
- package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
- package/dist/fields-D9tPVUUS.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-D2lZt4Dd.js} +55 -52
- package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
- package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
- package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.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-DTcZOzhF.js} +45 -38
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +13 -12
- package/dist/hosted-BZIAYvon.js +315 -0
- package/dist/hosted-DBDX0M-P.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-DMmOG27O.js} +190 -53
- package/dist/index-BcHcPyIo.d.ts +110 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-Chrs5fQ-.d.ts +210 -0
- package/dist/index-CxGUswIC.d.ts +431 -0
- package/dist/index-D8EovfsP.d.ts +91 -0
- package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
- package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
- 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-Omfd793B.d.ts} +2 -2
- package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-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-5JatXyND.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-CtKR3GXL.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
- package/dist/{map-error-BE27PYkE.js → map-error-TCAdw-eW.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-BShP7Vf4.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-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
- package/dist/openapi-ahr8rHu3.js +138 -0
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-CxybZErY.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +20 -15
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +30 -7
- package/dist/output-Dyw8fyPF.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-BatFgAA4.js} +1698 -869
- 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-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
- package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +45 -26
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-B9JxkBwC.js +868 -0
- package/dist/permdock-D7eeLJER.d.ts +502 -0
- package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-CCJ6lmxB.js → permissions-CZKiUfFM.js} +4 -3
- package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
- package/dist/policies-CO1oOymN.js +295 -0
- package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
- package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
- package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
- package/dist/postgrest-CW0IqC-U.js +566 -0
- package/dist/postgrest-NUqZT-RB.d.ts +100 -0
- package/dist/powersync-BHfuehf3.js +62 -0
- package/dist/powersync-CbzkqL_M.js +1 -0
- package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
- 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-DXlt-vks.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-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
- package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
- package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
- package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
- package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
- package/dist/pull-BgIfno6w.js +256 -0
- package/dist/pull-ByOks_Tg.js +1 -0
- package/dist/push-CmFVBOeI.js +116 -0
- package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
- package/dist/pushed-policy-DobP7AHI.js +238 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -72
- package/dist/react-native/index.js +24 -22
- 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-D7iKcLFe.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.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-BA8an5Ap.js +336 -0
- package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
- package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
- package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
- package/dist/run-CNsApDpd.js +1 -0
- package/dist/run-DOfMtc9V.js +723 -0
- package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DtaA4JuW.js → saas-FO-Q8oj0.js} +16 -14
- package/dist/scan-BOI5tJ-6.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-DqCT4CgZ.js +453 -0
- package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
- package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/sink-Bj_lDUDq.d.ts +225 -0
- package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-CXUWfsNy.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-DqK9eDmM.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-BV9j0DeZ.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-DLfUWFAI.js +1851 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +384 -47
- package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
- package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
- package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
- package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
- package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.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-9pqI57pW.js +92 -0
- package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
- package/dist/supabase-hook-CXcGpHqq.js +1 -0
- package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
- 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-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
- package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
- package/dist/types-BjV-fqcA.d.ts +57 -0
- package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
- package/dist/types-C8-KNsFf.d.ts +107 -0
- package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
- package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
- package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
- package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
- package/dist/types-DX0LaKTb.d.ts +157 -0
- package/dist/types-DiQjupG2.d.ts +332 -0
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/types-_sHy8BQf.d.ts +65 -0
- package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
- package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CHOtwL19.js +1 -0
- package/dist/usage-DHtE8j4E.js +32 -0
- package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
- package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.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-DbCL9bnB.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-D6lPdb4Z.d.ts} +65 -2
- package/dist/vue/index.d.ts +9 -10
- package/dist/vue/index.js +8 -8
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/waiter-CKy4MQSY.d.ts +36 -0
- package/dist/watch-Cb-NcaUw.js +1 -0
- package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.js} +44 -5
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +3 -3
- package/dist/where-scope-Dv-WTP-w.js +306 -0
- package/dist/who-can-D0QoYbEb.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/{wrap-Cr93qqdP.d.ts → wrap-Bd1Tejur.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 +9 -8
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +5 -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/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
|
@@ -1,77 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
type ClientStatus = "ready" | "pending" | "stale" | "server-only";
|
|
6
|
-
type PermissionState = {
|
|
7
|
-
readonly allowed: boolean;
|
|
8
|
-
readonly status: ClientStatus;
|
|
9
|
-
readonly decision: Decision;
|
|
10
|
-
};
|
|
11
|
-
type PermissionSet = {
|
|
12
|
-
readonly granted: readonly Permission[];
|
|
13
|
-
get(permission: Permission): PermissionState | undefined;
|
|
14
|
-
};
|
|
15
|
-
type ClientPermDock<V extends PolicyVocabulary = PolicyVocabulary> = PermDock<V> & {
|
|
16
|
-
status(permission?: Permission, data?: unknown): ClientStatus;
|
|
17
|
-
invalidate(ref: Permission | {
|
|
18
|
-
readonly [key: string]: unknown;
|
|
19
|
-
}): void;
|
|
20
|
-
refresh(options?: {
|
|
21
|
-
readonly tenant?: string;
|
|
22
|
-
}): Promise<void>;
|
|
23
|
-
clear(): void;
|
|
24
|
-
subscribe(listener: () => void): () => void;
|
|
25
|
-
};
|
|
26
|
-
type ApprovalState = "not-needed" | "required" | "pending" | "approved" | "rejected" | "expired";
|
|
27
|
-
type ApprovalHandle = {
|
|
28
|
-
readonly state: ApprovalState;
|
|
29
|
-
readonly token: string | undefined;
|
|
30
|
-
readonly request: (note?: string) => Promise<void>;
|
|
31
|
-
};
|
|
32
|
-
type SubjectView = {
|
|
33
|
-
readonly principal: Principal | null;
|
|
34
|
-
readonly actor: Actor | undefined;
|
|
35
|
-
readonly delegation: Delegation | undefined;
|
|
36
|
-
readonly expiresAt: number | undefined;
|
|
37
|
-
readonly simulated: boolean;
|
|
38
|
-
};
|
|
39
|
-
type TenantView = {
|
|
40
|
-
readonly tenant: string | null;
|
|
41
|
-
readonly tenants: readonly string[];
|
|
42
|
-
readonly switchTo: (id: string) => Promise<void>;
|
|
43
|
-
readonly status: ClientStatus;
|
|
44
|
-
};
|
|
45
|
-
type FilterResult<T> = readonly T[] & {
|
|
46
|
-
readonly partial: boolean;
|
|
47
|
-
};
|
|
48
|
-
type UseRolesOptions = {
|
|
49
|
-
readonly tenant?: string;
|
|
50
|
-
readonly team?: string;
|
|
51
|
-
};
|
|
52
|
-
/** The provider options Vue, Svelte and Solid share; each adds its own reactive `snapshot`, `tenant`, `headers`, `verifier` and `defaults`. */
|
|
53
|
-
type ProviderOptionsBase = {
|
|
54
|
-
/**
|
|
55
|
-
* The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
|
|
56
|
-
* `false` never calls one: such a check is denied with reason `server-only`.
|
|
57
|
-
*/
|
|
58
|
-
readonly endpoint?: string | false;
|
|
59
|
-
/** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
|
|
60
|
-
readonly snapshotUrl?: string;
|
|
61
|
-
readonly approvals?: string;
|
|
62
|
-
/** Read on every request, so a new `fetch` applies without a new store. */
|
|
63
|
-
readonly fetch?: typeof fetch;
|
|
64
|
-
readonly maxAge?: number;
|
|
65
|
-
/** Localised text for the describe helper. */
|
|
66
|
-
readonly messages?: DescribeMessages;
|
|
67
|
-
/** Called with each snapshot the store accepts. */
|
|
68
|
-
readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
|
|
69
|
-
/** Called when the store drops its snapshot. */
|
|
70
|
-
readonly onClear?: () => void;
|
|
71
|
-
/** Milliseconds between approval status polls. Defaults to 2000. */
|
|
72
|
-
readonly approvalInterval?: number;
|
|
73
|
-
};
|
|
74
|
-
//#endregion
|
|
1
|
+
import { $n as Delegation, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, j as PolicyVocabulary, qn as Actor, rr as Principal } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
|
|
3
|
+
import { r as PermDock } from "./permdock-D7eeLJER.js";
|
|
4
|
+
import { n as DescribeMessages, t as DecisionDescription } from "./describe-BZUsixiL.js";
|
|
75
5
|
//#region src/client/request.d.ts
|
|
76
6
|
type StoreHeaders = Readonly<Record<string, string>>;
|
|
77
7
|
//#endregion
|
|
@@ -144,4 +74,99 @@ type ClientStore = {
|
|
|
144
74
|
dispose(): void;
|
|
145
75
|
};
|
|
146
76
|
//#endregion
|
|
147
|
-
|
|
77
|
+
//#region src/client/types.d.ts
|
|
78
|
+
type ClientStatus = "ready" | "pending" | "stale" | "server-only";
|
|
79
|
+
type PermissionState = {
|
|
80
|
+
readonly allowed: boolean;
|
|
81
|
+
readonly status: ClientStatus;
|
|
82
|
+
readonly decision: Decision;
|
|
83
|
+
};
|
|
84
|
+
type PermissionSet = {
|
|
85
|
+
readonly granted: readonly Permission[];
|
|
86
|
+
get(permission: Permission): PermissionState | undefined;
|
|
87
|
+
};
|
|
88
|
+
type ClientPermDock<V extends PolicyVocabulary = PolicyVocabulary> = PermDock<V> & {
|
|
89
|
+
status(permission?: Permission, data?: unknown): ClientStatus;
|
|
90
|
+
invalidate(ref: Permission | {
|
|
91
|
+
readonly [key: string]: unknown;
|
|
92
|
+
}): void;
|
|
93
|
+
refresh(options?: {
|
|
94
|
+
readonly tenant?: string;
|
|
95
|
+
}): Promise<void>;
|
|
96
|
+
clear(): void;
|
|
97
|
+
subscribe(listener: () => void): () => void;
|
|
98
|
+
};
|
|
99
|
+
type ApprovalState = "not-needed" | "required" | "pending" | "approved" | "rejected" | "expired";
|
|
100
|
+
type ApprovalHandle = {
|
|
101
|
+
readonly state: ApprovalState;
|
|
102
|
+
readonly token: string | undefined;
|
|
103
|
+
readonly request: (note?: string) => Promise<void>;
|
|
104
|
+
};
|
|
105
|
+
type SubjectView = {
|
|
106
|
+
readonly principal: Principal | null;
|
|
107
|
+
readonly actor: Actor | undefined;
|
|
108
|
+
readonly delegation: Delegation | undefined;
|
|
109
|
+
readonly expiresAt: number | undefined;
|
|
110
|
+
readonly simulated: boolean;
|
|
111
|
+
};
|
|
112
|
+
type TenantView = {
|
|
113
|
+
readonly tenant: string | null;
|
|
114
|
+
readonly tenants: readonly string[];
|
|
115
|
+
readonly switchTo: (id: string) => Promise<void>;
|
|
116
|
+
readonly status: ClientStatus;
|
|
117
|
+
};
|
|
118
|
+
type FilterResult<T> = readonly T[] & {
|
|
119
|
+
readonly partial: boolean;
|
|
120
|
+
};
|
|
121
|
+
type RolesOptions = {
|
|
122
|
+
readonly tenant?: string;
|
|
123
|
+
readonly team?: string;
|
|
124
|
+
};
|
|
125
|
+
/** The provider options Vue, Svelte and Solid share; each adds its own reactive `snapshot`, `tenant`, `headers`, `verifier` and `defaults`. */
|
|
126
|
+
type ProviderOptionsBase = {
|
|
127
|
+
/**
|
|
128
|
+
* The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
|
|
129
|
+
* `false` never calls one: such a check is denied with reason `server-only`.
|
|
130
|
+
*/
|
|
131
|
+
readonly endpoint?: string | false;
|
|
132
|
+
/** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
|
|
133
|
+
readonly snapshotUrl?: string;
|
|
134
|
+
readonly approvals?: string;
|
|
135
|
+
/** Read on every request, so a new `fetch` applies without a new store. */
|
|
136
|
+
readonly fetch?: typeof fetch;
|
|
137
|
+
readonly maxAge?: number;
|
|
138
|
+
/** Localised text for the describe helper. */
|
|
139
|
+
readonly messages?: DescribeMessages;
|
|
140
|
+
/** Called with each snapshot the store accepts. */
|
|
141
|
+
readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
|
|
142
|
+
/** Called when the store drops its snapshot. */
|
|
143
|
+
readonly onClear?: () => void;
|
|
144
|
+
/** Milliseconds between approval status polls. Defaults to 2000. */
|
|
145
|
+
readonly approvalInterval?: number;
|
|
146
|
+
};
|
|
147
|
+
/** How a control shows a permission it cannot use: hidden, or disabled with a reason. */
|
|
148
|
+
type GateMode = "hide" | "disable";
|
|
149
|
+
/**
|
|
150
|
+
* Everything a permission-gated control renders from, in one value: a
|
|
151
|
+
* button, a menu item or a link reads these fields and decides nothing
|
|
152
|
+
* itself. The client is a hint; the server checks again.
|
|
153
|
+
*/
|
|
154
|
+
type GateView = {
|
|
155
|
+
/** The decision granted the action. */
|
|
156
|
+
readonly allowed: boolean;
|
|
157
|
+
/** The snapshot is loading; render the control disabled, not hidden. */
|
|
158
|
+
readonly pending: boolean;
|
|
159
|
+
/** `mode: "hide"` and the action is not available: render nothing. */
|
|
160
|
+
readonly hidden: boolean;
|
|
161
|
+
/** The control cannot run the action now (denied, pending or awaiting approval). */
|
|
162
|
+
readonly disabled: boolean;
|
|
163
|
+
/** The decision needs a person's approval first; offer to request it. */
|
|
164
|
+
readonly needsApproval: boolean;
|
|
165
|
+
/** The plans that would grant the action, for an upgrade prompt; empty otherwise. */
|
|
166
|
+
readonly upgrade: readonly string[];
|
|
167
|
+
/** Title and detail for a tooltip or an accessible description. */
|
|
168
|
+
readonly reason: DecisionDescription;
|
|
169
|
+
readonly decision: Decision;
|
|
170
|
+
};
|
|
171
|
+
//#endregion
|
|
172
|
+
export { FilterResult as a, PermissionSet as c, RolesOptions as d, SubjectView as f, ClientStoreOptions as h, ClientStatus as i, PermissionState as l, ClientStore as m, ApprovalState as n, GateMode as o, TenantView as p, ClientPermDock as r, GateView as s, ApprovalHandle as t, ProviderOptionsBase as u };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Vt as Snapshot, dt as TokenVerifier, ot as SnapshotSource } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { n as DescribeMessages } from "./describe-BZUsixiL.js";
|
|
3
|
+
import { h as ClientStoreOptions } from "./types-BNORmDM8.js";
|
|
4
|
+
import { t as PermDockDefaults } from "./types-tIgIeIKJ.js";
|
|
5
|
+
import { ReactNode } from "react";
|
|
6
|
+
//#region src/react-native/types.d.ts
|
|
7
|
+
type SnapshotStorage = {
|
|
8
|
+
/** Names the implementation in errors and events. */
|
|
9
|
+
readonly name?: string;
|
|
10
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
11
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
12
|
+
removeItem(key: string): void | Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
type NativeRevalidate = "launch" | "focus" | number;
|
|
15
|
+
/**
|
|
16
|
+
* Calls `listener` when the app changes state; `active` is `false` when it
|
|
17
|
+
* goes to the background. A listener called without an argument counts as
|
|
18
|
+
* a return to the foreground.
|
|
19
|
+
*/
|
|
20
|
+
type SubscribeForeground = (listener: (active?: boolean) => void) => () => void;
|
|
21
|
+
/** Calls `listener` with `false` when the device loses connectivity and `true` when it returns. */
|
|
22
|
+
type SubscribeOnline = (listener: (online: boolean) => void) => () => void;
|
|
23
|
+
type ReactNativePermDockProviderProps = {
|
|
24
|
+
readonly storage: SnapshotStorage;
|
|
25
|
+
/**
|
|
26
|
+
* The signed-in principal's id, or `null` when nobody is signed in. Only a
|
|
27
|
+
* persisted snapshot for this id is read or written; `null` clears storage.
|
|
28
|
+
*/
|
|
29
|
+
readonly subjectId: string | null;
|
|
30
|
+
readonly snapshot?: Snapshot | string;
|
|
31
|
+
readonly snapshotUrl?: string;
|
|
32
|
+
/** Hydrates from the device's own rows (`localSnapshot`); with `snapshotUrl` too, the latest answer wins. */
|
|
33
|
+
readonly source?: SnapshotSource;
|
|
34
|
+
readonly endpoint?: string;
|
|
35
|
+
readonly approvals?: string;
|
|
36
|
+
readonly tenant?: string;
|
|
37
|
+
readonly revalidate?: NativeRevalidate;
|
|
38
|
+
readonly subscribeForeground?: SubscribeForeground;
|
|
39
|
+
readonly subscribeOnline?: SubscribeOnline;
|
|
40
|
+
readonly fetch?: typeof fetch;
|
|
41
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
42
|
+
readonly maxAge?: number;
|
|
43
|
+
readonly verifier?: TokenVerifier;
|
|
44
|
+
/** What every `<Protected>` below renders for a slot it leaves out. */
|
|
45
|
+
readonly defaults?: PermDockDefaults;
|
|
46
|
+
/** Localised text for `useDescribe()`. */
|
|
47
|
+
readonly messages?: DescribeMessages;
|
|
48
|
+
/** Called with each snapshot the store accepts, after it is persisted. */
|
|
49
|
+
readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
|
|
50
|
+
/** Called when the store drops its snapshot, after storage is cleared. */
|
|
51
|
+
readonly onClear?: () => void;
|
|
52
|
+
/** Milliseconds between approval status polls. Defaults to 2000. */
|
|
53
|
+
readonly approvalInterval?: number;
|
|
54
|
+
readonly children: ReactNode;
|
|
55
|
+
};
|
|
56
|
+
//#endregion
|
|
57
|
+
export { SubscribeOnline as a, SubscribeForeground as i, ReactNativePermDockProviderProps as n, SnapshotStorage as r, NativeRevalidate as t };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Xt as DecisionEvent, j as PolicyVocabulary } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { r as PermDock } from "./permdock-D7eeLJER.js";
|
|
2
3
|
//#region src/otel/types.d.ts
|
|
3
4
|
declare const GENAI_SEMCONV_PIN = "1.37.0";
|
|
4
5
|
declare const GEN_AI_TOOL_NAME = "gen_ai.tool.name";
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { dt as TokenVerifier, ir as Subject, ot as SnapshotSource, q as DecisionSink, ut as TokenSigner } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { o as PolicySource } from "./hosted-DBDX0M-P.js";
|
|
3
|
+
import { m as ApprovalStore, u as ApprovalRequest } from "./types-CCpc2Dcv.js";
|
|
4
|
+
import { a as CatalogDocument } from "./types-CZTnPFzM.js";
|
|
5
|
+
import { a as CatalogFinding } from "./sink-Bj_lDUDq.js";
|
|
6
|
+
//#region src/cloud/types.d.ts
|
|
7
|
+
type CloudEndpointOptions = {
|
|
8
|
+
readonly url?: string;
|
|
9
|
+
readonly environment?: string;
|
|
10
|
+
};
|
|
11
|
+
type CloudEndpoints = {
|
|
12
|
+
/** The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the policy document. */
|
|
13
|
+
readonly issuer: string;
|
|
14
|
+
/** The environment's JWK Set URL, for `joseTokenVerifier({ jwks })`. */
|
|
15
|
+
readonly jwks: string;
|
|
16
|
+
};
|
|
17
|
+
/** What every `permdock/cloud` client needs to reach one environment. */
|
|
18
|
+
type CloudConnectionOptions = CloudEndpointOptions & {
|
|
19
|
+
/** The environment key; defaults to `PERMDOCK_CLOUD_KEY`. */
|
|
20
|
+
readonly key?: string;
|
|
21
|
+
readonly fetch?: typeof fetch;
|
|
22
|
+
};
|
|
23
|
+
/** Who signs the `PermDock-Approver` token `approvals.resolve` sends. */
|
|
24
|
+
type CloudApproverOptions = {
|
|
25
|
+
/**
|
|
26
|
+
* Signs the token with a key the environment trusts as an issuer, such as
|
|
27
|
+
* `joseTokenSigner` over your own key. Never `cloudSigner`: a client key
|
|
28
|
+
* that could mint approver tokens could forge any approver.
|
|
29
|
+
*/
|
|
30
|
+
readonly signer: TokenSigner;
|
|
31
|
+
/** `aud` of the token; defaults to `<issuer>/approvals`, the environment URL plus `/approvals`. */
|
|
32
|
+
readonly audience?: string | readonly string[];
|
|
33
|
+
/**
|
|
34
|
+
* The `holder(permission)` approvers of `request` that `approver` holds,
|
|
35
|
+
* typically `approverPermissions(request, permdockFor(approver))`. Signed
|
|
36
|
+
* into the token as `permissions`; without it the verdict's own
|
|
37
|
+
* `permissions` are signed. A throw signs none.
|
|
38
|
+
*/
|
|
39
|
+
readonly permissions?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
|
|
40
|
+
/**
|
|
41
|
+
* The relation approvers of `request` that `approver` holds, typically
|
|
42
|
+
* `approverRelations(request, approver, { relations, permissions })`.
|
|
43
|
+
* Signed into the token as `relations`; without it the verdict's own
|
|
44
|
+
* `relations` are signed. A throw signs none.
|
|
45
|
+
*/
|
|
46
|
+
readonly relations?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
|
|
47
|
+
};
|
|
48
|
+
type CloudOptions = CloudConnectionOptions & {
|
|
49
|
+
/**
|
|
50
|
+
* Proves the approver on `approvals.resolve`. Without it, every resolve but
|
|
51
|
+
* a `system` rejection throws `approver-unauthenticated` and sends nothing.
|
|
52
|
+
*/
|
|
53
|
+
readonly approver?: CloudApproverOptions;
|
|
54
|
+
readonly flushAt?: number;
|
|
55
|
+
/** Most events the sink holds while the Cloud is unreachable (default 10 000); the oldest are dropped first. */
|
|
56
|
+
readonly capacity?: number;
|
|
57
|
+
readonly waitUntil?: (task: Promise<void>) => void;
|
|
58
|
+
/** The CloudEvents `source` of every event the sink sends, an absolute URI; defaults to the environment URL. */
|
|
59
|
+
readonly source?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Verifies the environment's signed policy document, typically
|
|
62
|
+
* `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`. Without one,
|
|
63
|
+
* `policies.current()` stays `null`: an unverifiable document is never applied.
|
|
64
|
+
*/
|
|
65
|
+
readonly verifier?: TokenVerifier;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* What `POST /catalog` answers: `201` with the new version and the drift
|
|
69
|
+
* findings against the previous one, or `200` with `unchanged: true` when
|
|
70
|
+
* the fingerprint is already published.
|
|
71
|
+
*/
|
|
72
|
+
type CloudCatalogPush = {
|
|
73
|
+
readonly version: number;
|
|
74
|
+
readonly fingerprint: string;
|
|
75
|
+
readonly findings: readonly CatalogFinding[];
|
|
76
|
+
} | {
|
|
77
|
+
readonly version: number;
|
|
78
|
+
readonly fingerprint: string;
|
|
79
|
+
readonly unchanged: true;
|
|
80
|
+
};
|
|
81
|
+
type CloudCatalog = {
|
|
82
|
+
/**
|
|
83
|
+
* Posts the catalog, its `operations` included, to the environment.
|
|
84
|
+
* Throws when the Cloud refuses it or answers another shape. The Cloud
|
|
85
|
+
* shows and diffs it; it never decides with it.
|
|
86
|
+
*/
|
|
87
|
+
push(catalog: CatalogDocument): Promise<CloudCatalogPush>;
|
|
88
|
+
};
|
|
89
|
+
type CloudClient = CloudEndpoints & {
|
|
90
|
+
readonly approvals: ApprovalStore;
|
|
91
|
+
readonly sink: DecisionSink;
|
|
92
|
+
/**
|
|
93
|
+
* A `SnapshotSource` for the subject `token` proves: an `at+jwt` the
|
|
94
|
+
* environment issued, or one a trusted issuer registered for `subject`
|
|
95
|
+
* signed. Sent as `PermDock-Subject`; the Cloud never takes a subject from
|
|
96
|
+
* anything else.
|
|
97
|
+
*/
|
|
98
|
+
snapshotsFor(token: string): SnapshotSource;
|
|
99
|
+
readonly policies: PolicySource;
|
|
100
|
+
readonly catalog: CloudCatalog;
|
|
101
|
+
};
|
|
102
|
+
type CloudSignerOptions = CloudConnectionOptions & {
|
|
103
|
+
/** `aud` when a `sign` call names none; signing without either throws. */
|
|
104
|
+
readonly audience?: string | readonly string[];
|
|
105
|
+
};
|
|
106
|
+
//#endregion
|
|
107
|
+
export { CloudConnectionOptions as a, CloudOptions as c, CloudClient as i, CloudSignerOptions as l, CloudCatalog as n, CloudEndpointOptions as o, CloudCatalogPush as r, CloudEndpoints as s, CloudApproverOptions as t };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cn as RelationGrantee, Rt as Instant, fn as Approver, ir as Subject, nr as Membership, o as ApprovalStage, on as WireDelegation, r as ApprovalMode, sr as AdapterId } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { V as AppData } from "./vocabulary-D6lPdb4Z.js";
|
|
2
3
|
//#region src/approvals/types.d.ts
|
|
3
4
|
type ApprovalStatus = "pending" | "approved" | "rejected" | "expired";
|
|
4
5
|
type ApprovalApprovers = {
|
|
@@ -13,9 +14,9 @@ type ApprovalApprovers = {
|
|
|
13
14
|
readonly staleOn?: "resource-change";
|
|
14
15
|
/** Distinct approvers of `by` needed before `status` becomes `approved`; absent means 1. */
|
|
15
16
|
readonly quorum?: number;
|
|
16
|
-
/** Who else may approve once the request has waited `after`
|
|
17
|
+
/** Who else may approve once the request has waited `after` seconds since `createdAt`. */
|
|
17
18
|
readonly escalation?: {
|
|
18
|
-
readonly after:
|
|
19
|
+
readonly after: number;
|
|
19
20
|
readonly to: Approver | readonly Approver[];
|
|
20
21
|
};
|
|
21
22
|
};
|
|
@@ -25,6 +26,43 @@ type ApprovalSignature = {
|
|
|
25
26
|
readonly at: string;
|
|
26
27
|
readonly stage?: number;
|
|
27
28
|
readonly vouched?: string;
|
|
29
|
+
/** The principal `by` approved for, when `by` acted under an `ApprovalDelegation`. */
|
|
30
|
+
readonly onBehalfOf?: string;
|
|
31
|
+
/** The `ApprovalDelegation` id `onBehalfOf` was read from. */
|
|
32
|
+
readonly delegation?: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* One out-of-office delegation: `delegate` may approve what `delegator`
|
|
36
|
+
* could approve, from `from` until `until`. Both instants are required, so
|
|
37
|
+
* a delegation cannot be open-ended. `permissions` and `resources` narrow
|
|
38
|
+
* it; absent, it covers every request. `tenant` holds it to one tenant.
|
|
39
|
+
*/
|
|
40
|
+
type ApprovalDelegation = {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly delegator: string;
|
|
43
|
+
readonly delegate: string;
|
|
44
|
+
readonly tenant?: string;
|
|
45
|
+
readonly permissions?: readonly string[];
|
|
46
|
+
readonly resources?: readonly string[];
|
|
47
|
+
/** RFC 3339. Inclusive. */
|
|
48
|
+
readonly from: string;
|
|
49
|
+
/** RFC 3339. Exclusive. */
|
|
50
|
+
readonly until: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Active approval delegations for one delegate, a subject input the handler
|
|
54
|
+
* reads when the caller is not an approver on their own. A throw matches
|
|
55
|
+
* nobody. One hop: the handler never reads the delegator's own delegations.
|
|
56
|
+
*/
|
|
57
|
+
type ApprovalDelegationSource = {
|
|
58
|
+
/** Names the implementation in errors and events. */
|
|
59
|
+
readonly name?: string;
|
|
60
|
+
delegationsFor(query: {
|
|
61
|
+
readonly delegate: string;
|
|
62
|
+
readonly tenant?: string;
|
|
63
|
+
/** RFC 3339. The source returns delegations active at this instant. */
|
|
64
|
+
readonly at: string;
|
|
65
|
+
}): readonly ApprovalDelegation[] | Promise<readonly ApprovalDelegation[]>;
|
|
28
66
|
};
|
|
29
67
|
type ApprovalSubjectSummary = {
|
|
30
68
|
readonly principal: {
|
|
@@ -37,13 +75,13 @@ type ApprovalSubjectSummary = {
|
|
|
37
75
|
readonly kind: string;
|
|
38
76
|
};
|
|
39
77
|
readonly session?: string;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
readonly authorizationDetails?: readonly unknown[];
|
|
43
|
-
};
|
|
78
|
+
/** OAuth `scope` (space-separated) and RFC 9396 `authorization_details`. */
|
|
79
|
+
readonly delegation?: WireDelegation;
|
|
44
80
|
};
|
|
45
81
|
type ApprovalRequest = {
|
|
46
82
|
readonly v: 1;
|
|
83
|
+
/** The request id: the signature's `jti`. */
|
|
84
|
+
readonly id: string;
|
|
47
85
|
readonly token: string;
|
|
48
86
|
readonly permission: string;
|
|
49
87
|
readonly scope: string;
|
|
@@ -55,7 +93,7 @@ type ApprovalRequest = {
|
|
|
55
93
|
readonly membership?: Membership;
|
|
56
94
|
readonly approvers?: ApprovalApprovers;
|
|
57
95
|
readonly detail: string;
|
|
58
|
-
readonly adapter?:
|
|
96
|
+
readonly adapter?: AdapterId;
|
|
59
97
|
readonly createdAt: string;
|
|
60
98
|
readonly expiresAt: string;
|
|
61
99
|
readonly status: ApprovalStatus;
|
|
@@ -67,6 +105,8 @@ type ApprovalRequest = {
|
|
|
67
105
|
readonly vouched?: string;
|
|
68
106
|
readonly note?: string;
|
|
69
107
|
readonly consumedAt?: string;
|
|
108
|
+
/** The application's own data, set when the request opens; plain JSON, never read by a decision. */
|
|
109
|
+
readonly x?: AppData;
|
|
70
110
|
};
|
|
71
111
|
type ApprovalVerdict = {
|
|
72
112
|
readonly status: "approved" | "rejected";
|
|
@@ -87,6 +127,18 @@ type ApprovalVerdict = {
|
|
|
87
127
|
*/
|
|
88
128
|
readonly permissions?: readonly string[];
|
|
89
129
|
readonly vouched?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Set when `by` is not an approver and acts for this principal under an
|
|
132
|
+
* `ApprovalDelegation`. Server-side input: the handler resolves the
|
|
133
|
+
* delegator, and `applyApprovalVerdict` checks them again. `relations`
|
|
134
|
+
* and `permissions` are that principal's facts, never the delegate's.
|
|
135
|
+
*/
|
|
136
|
+
readonly onBehalfOf?: {
|
|
137
|
+
readonly subject: Subject;
|
|
138
|
+
readonly delegation: string;
|
|
139
|
+
readonly relations?: readonly string[];
|
|
140
|
+
readonly permissions?: readonly string[];
|
|
141
|
+
};
|
|
90
142
|
};
|
|
91
143
|
type ApprovalListFilter = {
|
|
92
144
|
readonly status?: ApprovalStatus;
|
|
@@ -114,35 +166,43 @@ type ApprovalCancelMeta = {
|
|
|
114
166
|
readonly note?: string;
|
|
115
167
|
};
|
|
116
168
|
type ApprovalStore = {
|
|
169
|
+
/** Names the implementation in errors and events. */
|
|
170
|
+
readonly name?: string;
|
|
117
171
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* `
|
|
172
|
+
* Seconds a request opened against this store stays open when the
|
|
173
|
+
* caller sets no `ttl`; absent means `DEFAULT_APPROVAL_TTL`. A grant's
|
|
174
|
+
* `approval.ttl` still caps it.
|
|
121
175
|
*/
|
|
122
176
|
readonly ttl?: number;
|
|
123
177
|
create(request: ApprovalRequest): Promise<void> | void;
|
|
124
178
|
get(token: string): Promise<ApprovalRequest | null> | ApprovalRequest | null;
|
|
179
|
+
/**
|
|
180
|
+
* The request with this `id`, for `approvalsHandler`, which routes by id.
|
|
181
|
+
* Without it the handler pages through `list` to find the id.
|
|
182
|
+
*/
|
|
183
|
+
getById?(id: string): Promise<ApprovalRequest | null> | ApprovalRequest | null;
|
|
125
184
|
resolve(token: string, verdict: ApprovalVerdict): Promise<ApprovalRequest> | ApprovalRequest;
|
|
126
185
|
list(query: ApprovalListQuery): Promise<ApprovalPage> | ApprovalPage;
|
|
127
|
-
expire(now?:
|
|
186
|
+
expire(now?: Instant): Promise<number> | number;
|
|
128
187
|
/**
|
|
129
188
|
* Marks an approved, unexpired, unconsumed request consumed and returns it;
|
|
130
189
|
* returns `null` otherwise. Must be atomic: two concurrent calls for one
|
|
131
190
|
* token never both return the request.
|
|
132
191
|
*/
|
|
133
|
-
consume(token: string, now?:
|
|
192
|
+
consume(token: string, now?: Instant): Promise<ApprovalRequest | null> | ApprovalRequest | null;
|
|
134
193
|
cancel?(filter: ApprovalListFilter, meta: ApprovalCancelMeta): Promise<number> | number;
|
|
135
194
|
};
|
|
136
|
-
type
|
|
195
|
+
type ApprovalResumeFailureCause = "approval-not-found" | "approval-pending" | "approval-rejected" | "approval-expired" | "approval-consumed";
|
|
137
196
|
type ApprovalInspectResult = {
|
|
138
197
|
readonly ok: true;
|
|
139
198
|
readonly request: ApprovalRequest;
|
|
140
199
|
} | {
|
|
141
200
|
readonly ok: false;
|
|
142
|
-
readonly
|
|
201
|
+
readonly cause: ApprovalResumeFailureCause;
|
|
143
202
|
};
|
|
144
203
|
declare const APPROVAL_HEADER: "PermDock-Approval";
|
|
145
|
-
|
|
204
|
+
/** Seconds a request stays open when neither the store nor the call sets a `ttl`. */
|
|
205
|
+
declare const DEFAULT_APPROVAL_TTL: number;
|
|
146
206
|
/** The approvals a request needs in total: `approvers.quorum` (or 1), or the sum of its stages' quorums. */
|
|
147
207
|
declare function approvalQuorum(request: ApprovalRequest): number;
|
|
148
208
|
/**
|
|
@@ -154,4 +214,4 @@ declare function escalationOpenAt(request: ApprovalRequest): number | undefined;
|
|
|
154
214
|
/** The key a verdict's `relations` lists a relation approver under. */
|
|
155
215
|
declare function approverRelationKey(item: RelationGrantee): string;
|
|
156
216
|
//#endregion
|
|
157
|
-
export {
|
|
217
|
+
export { DEFAULT_APPROVAL_TTL as _, ApprovalDelegationSource as a, escalationOpenAt as b, ApprovalListQuery as c, ApprovalResumeFailureCause as d, ApprovalSignature as f, ApprovalVerdict as g, ApprovalSubjectSummary as h, ApprovalDelegation as i, ApprovalPage as l, ApprovalStore as m, ApprovalApprovers as n, ApprovalInspectResult as o, ApprovalStatus as p, ApprovalCancelMeta as r, ApprovalListFilter as s, APPROVAL_HEADER as t, ApprovalRequest as u, approvalQuorum as v, approverRelationKey as y };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { I as ResourceRelation } from "./vocabulary-D6lPdb4Z.js";
|
|
2
|
+
import { s as OperationMeta } from "./operations-CxybZErY.js";
|
|
2
3
|
//#region src/catalog/types.d.ts
|
|
3
4
|
type CatalogUsage = {
|
|
4
5
|
readonly file: string;
|
|
@@ -35,7 +36,8 @@ type CatalogBreakGlass = {
|
|
|
35
36
|
readonly overrides: readonly string[];
|
|
36
37
|
readonly purpose?: readonly string[];
|
|
37
38
|
readonly reason: boolean;
|
|
38
|
-
|
|
39
|
+
/** Seconds. */
|
|
40
|
+
readonly maxDuration?: number;
|
|
39
41
|
readonly obligations: readonly string[];
|
|
40
42
|
};
|
|
41
43
|
type CatalogApproval = "human" | {
|
|
@@ -48,9 +50,11 @@ type CatalogApproval = "human" | {
|
|
|
48
50
|
readonly distinct?: boolean;
|
|
49
51
|
readonly staleOn?: "resource-change";
|
|
50
52
|
readonly quorum?: number;
|
|
51
|
-
|
|
53
|
+
/** Seconds. */
|
|
54
|
+
readonly ttl?: number;
|
|
55
|
+
/** `after` is seconds from the request's creation. */
|
|
52
56
|
readonly escalation?: {
|
|
53
|
-
readonly after:
|
|
57
|
+
readonly after: number;
|
|
54
58
|
readonly to: unknown;
|
|
55
59
|
};
|
|
56
60
|
};
|
|
@@ -58,6 +62,18 @@ type CatalogResource = {
|
|
|
58
62
|
readonly id: string;
|
|
59
63
|
readonly schema: unknown;
|
|
60
64
|
readonly definedIn?: string;
|
|
65
|
+
/** `resource(…, { parent })`: the row field that holds the parent row's id. */
|
|
66
|
+
readonly parent?: {
|
|
67
|
+
readonly field: string;
|
|
68
|
+
readonly resource: string;
|
|
69
|
+
};
|
|
70
|
+
/** `resource(…, { links })`: to-one links `through` walks; absent when none. */
|
|
71
|
+
readonly links?: Readonly<Record<string, {
|
|
72
|
+
readonly field: string;
|
|
73
|
+
readonly resource: string;
|
|
74
|
+
}>>;
|
|
75
|
+
/** `'hide'` answers a denied check on a loaded row as if the row did not exist; absent for `'reveal'`. */
|
|
76
|
+
readonly disclosure?: "hide";
|
|
61
77
|
readonly relations?: Readonly<Record<string, ResourceRelation>>;
|
|
62
78
|
/** The row field an `approval: { staleOn: 'resource-change' }` binds to. */
|
|
63
79
|
readonly version?: string;
|
|
@@ -88,7 +104,8 @@ type CatalogRole = {
|
|
|
88
104
|
};
|
|
89
105
|
/** A role activation as the catalog carries it. */
|
|
90
106
|
type CatalogActivation = {
|
|
91
|
-
|
|
107
|
+
/** Seconds. */
|
|
108
|
+
readonly maxDuration?: number;
|
|
92
109
|
readonly justification: "required" | "optional";
|
|
93
110
|
readonly approval?: boolean;
|
|
94
111
|
readonly assurance?: {
|
|
@@ -101,7 +118,8 @@ type CatalogActivation = {
|
|
|
101
118
|
type CatalogSupportAccess = {
|
|
102
119
|
readonly actorRequired: boolean;
|
|
103
120
|
readonly group: string;
|
|
104
|
-
|
|
121
|
+
/** Seconds. */
|
|
122
|
+
readonly durations: readonly number[];
|
|
105
123
|
};
|
|
106
124
|
/** One declared scope, in declaration order. */
|
|
107
125
|
type CatalogScope = {
|
|
@@ -109,10 +127,10 @@ type CatalogScope = {
|
|
|
109
127
|
readonly key: string;
|
|
110
128
|
readonly within?: string;
|
|
111
129
|
};
|
|
112
|
-
/** A grant's `validFrom` / `validUntil` window in
|
|
130
|
+
/** A grant's `validFrom` / `validUntil` window in RFC 3339. */
|
|
113
131
|
type CatalogValidity = {
|
|
114
|
-
readonly from?:
|
|
115
|
-
readonly until?:
|
|
132
|
+
readonly from?: string;
|
|
133
|
+
readonly until?: string;
|
|
116
134
|
};
|
|
117
135
|
/**
|
|
118
136
|
* One code grant as the catalog carries it: the normalised shape
|
|
@@ -143,7 +161,8 @@ type CatalogGrant = {
|
|
|
143
161
|
readonly requires?: string | readonly string[];
|
|
144
162
|
readonly limit?: {
|
|
145
163
|
readonly count: number;
|
|
146
|
-
|
|
164
|
+
/** Seconds. */
|
|
165
|
+
readonly per: number;
|
|
147
166
|
readonly mode?: "hard" | "soft";
|
|
148
167
|
};
|
|
149
168
|
/** Present when the grant is a closure, reads the relation graph or is opaque; `where` and `check` are then omitted. */
|
|
@@ -171,6 +190,22 @@ type CatalogDocument = {
|
|
|
171
190
|
readonly grants?: readonly CatalogGrant[];
|
|
172
191
|
/** The policy's standing delegations, canonically ordered; present when the policy declares any. */
|
|
173
192
|
readonly delegations?: readonly CatalogDelegation[];
|
|
193
|
+
/** The `defineOperations` map in definition order; present when the config names an `operations` module. */
|
|
194
|
+
readonly operations?: readonly CatalogOperation[];
|
|
195
|
+
/** The policy's coarse OAuth scopes, sorted by scope; present when the policy declares any. */
|
|
196
|
+
readonly oauthScopes?: readonly CatalogOAuthScope[];
|
|
197
|
+
};
|
|
198
|
+
/** One `definePolicy({ oauthScopes })` entry: the coarse scope an authorization server issues and the permission keys it covers, sorted by code point. */
|
|
199
|
+
type CatalogOAuthScope = {
|
|
200
|
+
readonly scope: string;
|
|
201
|
+
readonly permissions: readonly string[];
|
|
202
|
+
};
|
|
203
|
+
/** One `defineOperations` entry: its name, the permission keys it is bound to, and its meta. */
|
|
204
|
+
type CatalogOperation = {
|
|
205
|
+
readonly name: string;
|
|
206
|
+
readonly permission: string;
|
|
207
|
+
readonly results?: string;
|
|
208
|
+
readonly meta: OperationMeta;
|
|
174
209
|
};
|
|
175
210
|
/** One `definePolicy({ delegations })` entry: who hands over, to which actor, which permission keys, and when. */
|
|
176
211
|
type CatalogDelegation = {
|
|
@@ -184,4 +219,4 @@ type CatalogDelegation = {
|
|
|
184
219
|
readonly validity?: CatalogValidity;
|
|
185
220
|
};
|
|
186
221
|
//#endregion
|
|
187
|
-
export { CatalogDocument as a,
|
|
222
|
+
export { CatalogDocument as a, CatalogOperation as c, CatalogRole as d, CatalogScope as f, CatalogValidity as h, CatalogDelegation as i, CatalogPermission as l, CatalogUsage as m, CatalogApproval as n, CatalogGrant as o, CatalogSupportAccess as p, CatalogBreakGlass as r, CatalogOAuthScope as s, CatalogActivation as t, CatalogResource as u };
|