permdock 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
- package/dist/a2a/index.d.ts +8 -6
- package/dist/a2a/index.js +21 -31
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-B4R5fnMU.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -23
- package/dist/ai-sdk/index.js +38 -21
- package/dist/app-data-MuyzVqX8.js +60 -0
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-DJ6Yd5z1.js +995 -0
- package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
- package/dist/arazzo-B6lebmiQ.js +36 -0
- package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-Dg8XsRaO.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +228 -75
- package/dist/automation-BMZPIVUM.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +11 -23
- package/dist/better-supabase/index.d.ts +438 -86
- package/dist/better-supabase/index.js +1027 -184
- package/dist/bind--9EFVYWF.d.ts +38 -0
- package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/build-instance-BMnAudHn.js +52 -0
- package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
- package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
- package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/catalog-BECMPrwc.js +100 -0
- package/dist/catalog-DjhMYYCq.js +1 -0
- package/dist/catalog-R_A__RsH.js +52 -0
- package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +26 -30
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +15 -45
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +20 -6
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +240 -347
- package/dist/cloud-CIoHNevm.js +87 -0
- package/dist/codemod-Bmj9dWMH.js +37 -0
- package/dist/codemod-Cxvvc70T.js +2084 -0
- package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
- package/dist/collect-DloHbDVa.js +55 -0
- package/dist/collect-FlXJlhus.js +1 -0
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
- package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
- package/dist/completion-BqhRBJD8.js +143 -0
- package/dist/config-B46rm9sc.js +26 -0
- package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
- package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
- package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
- package/dist/constants-DcJABbLW.js +20 -0
- package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +18 -18
- package/dist/create-0VZ7Pdiu.d.ts +107 -0
- package/dist/create-BDS7wc3y.d.ts +138 -0
- package/dist/create-BFfm17UA.d.ts +110 -0
- package/dist/create-BWRSXgOF.js +403 -0
- package/dist/create-C3b4B5eF.js +130 -0
- package/dist/create-DnrmLnLW.js +323 -0
- package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/deciding-columns-Sq12mEA6.js +123 -0
- package/dist/delegation-DaXVdDhM.js +286 -0
- package/dist/delegation-input-FTxMK3ji.js +19 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/denied-text-D8jDHgsl.d.ts +19 -0
- package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
- package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/diff-CxZo9pTq.js +37 -0
- package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
- package/dist/doctor-CxiwSfqH.js +44 -0
- package/dist/doctor-DFjUxf2f.js +2361 -0
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +6 -14
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +14 -13
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/evaluate-_R8QkWaf.js +1732 -0
- package/dist/evaluations-16UqqQ6W.d.ts +32 -0
- package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +23 -29
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +14 -12
- package/dist/fastify/index.d.ts +26 -13
- package/dist/fastify/index.js +17 -36
- package/dist/fetch-adapter-g0ypLkID.js +120 -0
- package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
- package/dist/fields-D9tPVUUS.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
- package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
- package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
- package/dist/grantee-Cn1HyUsI.js +254 -0
- package/dist/grantee-conditions-CcXf8hMM.js +271 -0
- package/dist/grantee-match-DHArqY82.js +142 -0
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +14 -13
- package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
- package/dist/hosted-DBDX0M-P.d.ts +78 -0
- package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
- package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
- package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
- package/dist/index-BcHcPyIo.d.ts +110 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-Chrs5fQ-.d.ts +210 -0
- package/dist/index-CxGUswIC.d.ts +431 -0
- package/dist/index-D8EovfsP.d.ts +91 -0
- package/dist/index-DOVf7RJv.d.ts +900 -0
- package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
- package/dist/index.d.ts +20 -14
- package/dist/index.js +33 -23
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
- package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +166 -145
- package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +6 -14
- package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-CtKR3GXL.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
- package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
- package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
- package/dist/mcp/index.d.ts +36 -9
- package/dist/mcp/index.js +476 -448
- package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +20 -20
- package/dist/next/index.d.ts +40 -20
- package/dist/next/index.js +37 -39
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/ocsf-BFp-PZZA.js +126 -0
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +18 -25
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
- package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
- package/dist/openapi-ahr8rHu3.js +138 -0
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-CxybZErY.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +23 -20
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +53 -27
- package/dist/output-Dyw8fyPF.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/output-files-DhRBBE4n.js +138 -0
- package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
- package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
- package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
- package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
- package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +47 -29
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-B9JxkBwC.js +868 -0
- package/dist/permdock-D7eeLJER.d.ts +502 -0
- package/dist/permission-registry-Br4jSNVi.js +385 -0
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
- package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
- package/dist/policies-CO1oOymN.js +295 -0
- package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
- package/dist/policy-DLZJ5gAp.js +399 -0
- package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
- package/dist/postgrest-CW0IqC-U.js +566 -0
- package/dist/postgrest-NUqZT-RB.d.ts +100 -0
- package/dist/powersync-BHfuehf3.js +62 -0
- package/dist/powersync-CbzkqL_M.js +1 -0
- package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +6 -12
- package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
- package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
- package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/protected-DEPHc2xV.d.ts +38 -0
- package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
- package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
- package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
- package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
- package/dist/pull-BgIfno6w.js +256 -0
- package/dist/pull-ByOks_Tg.js +1 -0
- package/dist/push-CmFVBOeI.js +116 -0
- package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
- package/dist/pushed-policy-DobP7AHI.js +238 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -63
- package/dist/react-native/index.js +45 -27
- package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/relation-walk-3OyDBF0S.js +186 -0
- package/dist/relations-BnCWnJGI.js +163 -0
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/request-context-BTRTG7OT.js +71 -0
- package/dist/request-context-C2_1lchh.d.ts +5 -0
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/resource-relations-D_jw0BFx.js +243 -0
- package/dist/retire-CALjIQ7e.js +240 -0
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BA8an5Ap.js +336 -0
- package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
- package/dist/role-builder-CXbis5-X.js +623 -0
- package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
- package/dist/run-CNsApDpd.js +1 -0
- package/dist/run-DOfMtc9V.js +723 -0
- package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
- package/dist/scan-BOI5tJ-6.js +29 -0
- package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
- package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
- package/dist/server/index.d.ts +13 -134
- package/dist/server/index.js +13 -10
- package/dist/server-DqCT4CgZ.js +453 -0
- package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/shared-CD11nBbC.js +304 -0
- package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/sink-Bj_lDUDq.d.ts +225 -0
- package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-CXUWfsNy.js +269 -0
- package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
- package/dist/solid/index.d.ts +24 -25
- package/dist/solid/index.js +41 -11
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
- package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
- package/dist/sql-B5T1IL83.js +55 -0
- package/dist/src-DLfUWFAI.js +1851 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +440 -106
- package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
- package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
- package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
- package/dist/stores-ClZUgeoP.d.ts +30 -0
- package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
- package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +13 -6
- package/dist/supabase/middleware.js +16 -11
- package/dist/supabase-9pqI57pW.js +92 -0
- package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
- package/dist/supabase-hook-CXcGpHqq.js +1 -0
- package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
- package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +11 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +26 -12
- package/dist/svelte/runtime.d.ts +10 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +5 -5
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +36 -316
- package/dist/testing/index.d.ts +391 -106
- package/dist/testing/index.js +4574 -1286
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
- package/dist/tool-refusal-CMLN5xhn.js +41 -0
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +18 -17
- package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
- package/dist/types-BNORmDM8.d.ts +172 -0
- package/dist/types-BjV-fqcA.d.ts +57 -0
- package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
- package/dist/types-C8-KNsFf.d.ts +107 -0
- package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
- package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
- package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
- package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
- package/dist/types-DX0LaKTb.d.ts +157 -0
- package/dist/types-DiQjupG2.d.ts +332 -0
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/types-_sHy8BQf.d.ts +65 -0
- package/dist/types-fbZ7JEXr.d.ts +89 -0
- package/dist/types-tIgIeIKJ.d.ts +66 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CHOtwL19.js +1 -0
- package/dist/usage-DHtE8j4E.js +32 -0
- package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
- package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
- package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
- package/dist/validity-CZ7-y0Cj.js +79 -0
- package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
- package/dist/verify-DbCL9bnB.js +1770 -0
- package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
- package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
- package/dist/vue/index.d.ts +25 -21
- package/dist/vue/index.js +25 -9
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/waiter-CKy4MQSY.d.ts +36 -0
- package/dist/watch-Cb-NcaUw.js +1 -0
- package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +13 -37
- package/dist/where-scope-Dv-WTP-w.js +306 -0
- package/dist/who-can-D0QoYbEb.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/wrap-Bd1Tejur.d.ts +15 -0
- package/dist/wrap-gX61EtpB.js +27 -0
- package/package.json +140 -41
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +129 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +13 -8
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
- package/skills/permdock-wire/SKILL.md +18 -12
- package/skills/permdock-wire/references/adapters.md +146 -50
- package/skills/permdock-wire/references/policy-options.md +15 -6
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DbYAuNkG.js +0 -224
- package/dist/arazzo-C9chp3ST.js +0 -54
- package/dist/bind-C_ob3LKa.d.ts +0 -25
- package/dist/catalog-CRW5Mx_B.js +0 -2
- package/dist/catalog-CYj-mX2O.js +0 -48
- package/dist/catalog-DWF5cYqB.js +0 -55
- package/dist/cloud-CfwZ39Rl.js +0 -50
- package/dist/cloud-DWLXO2af.js +0 -118
- package/dist/collect-CHB22Sx4.js +0 -83
- package/dist/collect-DSWOk19R.js +0 -2
- package/dist/commands-BeaGNj_o.js +0 -97
- package/dist/config-ir40y8m0.js +0 -36
- package/dist/create-CMwIl-w2.js +0 -253
- package/dist/delegation-D8pUEuce.js +0 -103
- package/dist/diff-C9RDjjhs.js +0 -48
- package/dist/doctor-Djh6JDEk.js +0 -53
- package/dist/doctor-DvH0IQff.js +0 -1194
- package/dist/doctor-collect-CjdO0wQX.js +0 -665
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/evaluation-items-CfCCejQd.js +0 -40
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-BMl1RxoX.js +0 -26
- package/dist/grantee-Cv5Sogfv.js +0 -602
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-0nNqHspG.d.ts +0 -6
- package/dist/index-BNc7Wer_.d.ts +0 -483
- package/dist/index-C7Tw7MaW.d.ts +0 -201
- package/dist/instance-options-Dhhcnm3y.js +0 -22
- package/dist/load-DwJUafYN.js +0 -2
- package/dist/manifest-iaoBXHKc.js +0 -783
- package/dist/map-AcxK9o_D.js +0 -147
- package/dist/may-use-DndQ5tQ-.js +0 -77
- package/dist/openapi-CQTsgKoB.js +0 -164
- package/dist/permdock-CbgvLnuo.js +0 -3479
- package/dist/permissions-DVoF6dMt.js +0 -662
- package/dist/policy-xyWg7QdR.js +0 -1122
- package/dist/powersync-CrBX8hY6.js +0 -2
- package/dist/powersync-DE19b9dT.js +0 -62
- package/dist/protected-BdnIEFkY.d.ts +0 -27
- package/dist/protected-xAr24FEC.d.ts +0 -40
- package/dist/relations-cjOL01hZ.js +0 -505
- package/dist/rls-P-BeBx0n.js +0 -238
- package/dist/rls-graph-CHwx0V8q.js +0 -435
- package/dist/rls-ownership-DcYlZ09B.js +0 -843
- package/dist/rls-shared-Cewd_-zI.js +0 -495
- package/dist/rls-verify-CMv9H3wV.js +0 -746
- package/dist/run-BWc9qqvE.js +0 -174
- package/dist/server-DlZ28Oz5.js +0 -268
- package/dist/sink-B1fZzIMf.d.ts +0 -104
- package/dist/sink-Bd9PSyfq.js +0 -141
- package/dist/skills-C5CbhhpG.js +0 -56
- package/dist/snapshot-Enxd0n-s.js +0 -975
- package/dist/sql-xdg5f4Fi.js +0 -27
- package/dist/src-BDwEZWrZ.js +0 -568
- package/dist/store-jOBYpiXC.d.ts +0 -36
- package/dist/stores-C0IMQrGI.d.ts +0 -52
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-config-Bj3iDH2I.js +0 -472
- package/dist/supabase-hook-gd3s8bxB.js +0 -2
- package/dist/supabase-s4o9s1O1.js +0 -83
- package/dist/thenable-okc2xDsj.js +0 -10
- package/dist/types-BnIEz1sU.d.ts +0 -48
- package/dist/types-Bvc4oWT6.d.ts +0 -9
- package/dist/types-CKNSyIf_.d.ts +0 -52
- package/dist/types-Cq_H8N_X.d.ts +0 -197
- package/dist/usage-B0YuTQRO.js +0 -42
- package/dist/usage-DorAJiU_.js +0 -2
- package/dist/vocabulary-DA8a8zif.d.ts +0 -56
- package/dist/watch-BwxLTYMZ.js +0 -2
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { fn as Approver } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
//#region src/approvals/access-reviews/types.d.ts
|
|
3
|
+
type AccessReviewStatus = "open" | "closed";
|
|
4
|
+
type AccessReviewItemStatus = "pending" | "kept" | "revoked";
|
|
5
|
+
/**
|
|
6
|
+
* Access review v1: who holds `permissions` in one tenant, and who may
|
|
7
|
+
* confirm or revoke each holding. PermDock records the reviewer's decision
|
|
8
|
+
* and never changes the role or membership itself.
|
|
9
|
+
*/
|
|
10
|
+
type AccessReview = {
|
|
11
|
+
readonly v: 1;
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly tenant: string;
|
|
14
|
+
readonly permissions: readonly string[];
|
|
15
|
+
readonly reviewers: Approver | readonly Approver[];
|
|
16
|
+
readonly createdBy: string;
|
|
17
|
+
readonly createdAt: string;
|
|
18
|
+
readonly dueAt: string;
|
|
19
|
+
readonly status: AccessReviewStatus;
|
|
20
|
+
/** `false` when the population can omit a holder, such as a global role. */
|
|
21
|
+
readonly complete: boolean;
|
|
22
|
+
};
|
|
23
|
+
/** One holding in a review. `via` names the roles the population attributed it to. */
|
|
24
|
+
type AccessReviewItem = {
|
|
25
|
+
readonly v: 1;
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly review: string;
|
|
28
|
+
readonly principal: string;
|
|
29
|
+
readonly permission: string;
|
|
30
|
+
readonly via: readonly string[];
|
|
31
|
+
readonly status: AccessReviewItemStatus;
|
|
32
|
+
readonly decidedBy?: string;
|
|
33
|
+
readonly decidedAt?: string;
|
|
34
|
+
readonly note?: string;
|
|
35
|
+
/** Set by the application after it revoked the holding at its source. */
|
|
36
|
+
readonly appliedAt?: string;
|
|
37
|
+
};
|
|
38
|
+
type AccessReviewItemQuery = {
|
|
39
|
+
readonly review: string;
|
|
40
|
+
readonly status?: AccessReviewItemStatus;
|
|
41
|
+
readonly limit?: number;
|
|
42
|
+
readonly cursor?: string;
|
|
43
|
+
};
|
|
44
|
+
type AccessReviewItemPage = {
|
|
45
|
+
readonly items: readonly AccessReviewItem[];
|
|
46
|
+
readonly next?: string;
|
|
47
|
+
};
|
|
48
|
+
type AccessReviewDecision = {
|
|
49
|
+
readonly status: "kept" | "revoked";
|
|
50
|
+
readonly decidedBy: string;
|
|
51
|
+
readonly decidedAt: string;
|
|
52
|
+
readonly note?: string;
|
|
53
|
+
};
|
|
54
|
+
type AccessReviewStore = {
|
|
55
|
+
/** Names the implementation in errors and events. */
|
|
56
|
+
readonly name?: string;
|
|
57
|
+
create(review: AccessReview, items: readonly AccessReviewItem[]): Promise<void> | void;
|
|
58
|
+
get(id: string): Promise<AccessReview | null> | AccessReview | null;
|
|
59
|
+
items(query: AccessReviewItemQuery): Promise<AccessReviewItemPage> | AccessReviewItemPage;
|
|
60
|
+
decide(reviewId: string, itemId: string, decision: AccessReviewDecision): Promise<AccessReviewItem> | AccessReviewItem;
|
|
61
|
+
markApplied(reviewId: string, itemId: string, at: string): Promise<AccessReviewItem> | AccessReviewItem;
|
|
62
|
+
close(id: string): Promise<AccessReview> | AccessReview;
|
|
63
|
+
};
|
|
64
|
+
//#endregion
|
|
65
|
+
export { AccessReviewItemQuery as a, AccessReviewStore as c, AccessReviewItemPage as i, AccessReviewDecision as n, AccessReviewItemStatus as o, AccessReviewItem as r, AccessReviewStatus as s, AccessReview as t };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, zn as GrantedDecision } 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 { t as PermissionBoundaryState } from "./boundary-BmHxVH1J.js";
|
|
5
|
+
import { l as PermissionState, m as ClientStore, u as ProviderOptionsBase } from "./types-BNORmDM8.js";
|
|
6
|
+
import { Snippet } from "svelte";
|
|
7
|
+
import { Readable } from "svelte/store";
|
|
8
|
+
//#region src/client/views.d.ts
|
|
9
|
+
/**
|
|
10
|
+
* What `Protected` renders: `pending` while an endpoint answer is in flight,
|
|
11
|
+
* `approval` for an approval-required decision, `denied` for any other
|
|
12
|
+
* denial.
|
|
13
|
+
*/
|
|
14
|
+
type ProtectedView = (PermissionState & {
|
|
15
|
+
readonly slot: "pending" | "denied";
|
|
16
|
+
}) | {
|
|
17
|
+
readonly allowed: false;
|
|
18
|
+
readonly status: PermissionState["status"];
|
|
19
|
+
readonly decision: ApprovalRequiredDecision;
|
|
20
|
+
readonly slot: "approval";
|
|
21
|
+
} | {
|
|
22
|
+
readonly allowed: true;
|
|
23
|
+
readonly status: PermissionState["status"];
|
|
24
|
+
readonly decision: GrantedDecision;
|
|
25
|
+
readonly slot: "default";
|
|
26
|
+
};
|
|
27
|
+
/** Provider-wide content for the `Protected` slots a component leaves out. */
|
|
28
|
+
type SlotDefaults<P, F, A = F> = {
|
|
29
|
+
readonly pending?: P;
|
|
30
|
+
readonly denied?: F;
|
|
31
|
+
readonly approval?: A;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The content `Protected` renders for a non-default slot. Its own prop wins
|
|
35
|
+
* over the provider default; `approval` falls back to `denied`, first the
|
|
36
|
+
* component's, then the provider's.
|
|
37
|
+
*/
|
|
38
|
+
declare function slotContent<P, F, A>(slot: "pending", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): P | undefined;
|
|
39
|
+
declare function slotContent<P, F, A>(slot: "denied", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | undefined;
|
|
40
|
+
declare function slotContent<P, F, A>(slot: "approval", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | A | undefined;
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/svelte/boundary.d.ts
|
|
43
|
+
type PermissionBoundaryProps = {
|
|
44
|
+
readonly children?: Snippet;
|
|
45
|
+
/** Rendered in place of the children when one throws `PermDockDeniedError`. */
|
|
46
|
+
readonly denied?: Snippet<[PermissionBoundaryState]>;
|
|
47
|
+
/** Rendered for `PermDockApprovalRequiredError`; defaults to `denied`. */
|
|
48
|
+
readonly approval?: Snippet<[PermissionBoundaryState]>;
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/svelte/protected.d.ts
|
|
52
|
+
type ProtectedProps = {
|
|
53
|
+
readonly permission: Permission;
|
|
54
|
+
readonly data?: unknown;
|
|
55
|
+
readonly tenant?: string;
|
|
56
|
+
readonly children?: Snippet<[GrantedDecision]>;
|
|
57
|
+
readonly pending?: Snippet;
|
|
58
|
+
readonly denied?: Snippet<[Decision]>;
|
|
59
|
+
/** Rendered for an approval-required decision; defaults to `denied`. */
|
|
60
|
+
readonly approval?: Snippet<[ApprovalRequiredDecision]>;
|
|
61
|
+
};
|
|
62
|
+
/** The instance for `tenant`, built once per store change rather than once per check. */
|
|
63
|
+
declare function scopedFor(store: ClientStore, tenant: string | undefined, _generation?: number): PermDock | undefined;
|
|
64
|
+
declare function viewFor(store: ClientStore, reference: Permission, data: unknown, scoped: PermDock | undefined, _generation?: number): ProtectedView;
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/svelte/types.d.ts
|
|
67
|
+
type SveltePermDockOptions = ProviderOptionsBase & {
|
|
68
|
+
/**
|
|
69
|
+
* A getter (`() => data.snapshot`) or a readable store re-hydrates the
|
|
70
|
+
* store when it changes; a promise keeps the store `pending` until it
|
|
71
|
+
* settles (render the same promise with `{#await}`).
|
|
72
|
+
*/
|
|
73
|
+
readonly snapshot: Snapshot | string | (() => Snapshot | string) | Readable<Snapshot | string> | PromiseLike<Snapshot | string>;
|
|
74
|
+
/** A getter (`() => page.params.org`) switches the active tenant (`refresh({ tenant })`) when it changes. */
|
|
75
|
+
readonly tenant?: string | (() => string | undefined);
|
|
76
|
+
/** A getter is read on every request, so a rotated token applies without a new store. */
|
|
77
|
+
readonly headers?: Readonly<Record<string, string>> | (() => Readonly<Record<string, string>> | undefined);
|
|
78
|
+
readonly verifier?: TokenVerifier;
|
|
79
|
+
/** What every `<Protected>` renders for a snippet it leaves out. */
|
|
80
|
+
readonly defaults?: PermDockDefaults;
|
|
81
|
+
};
|
|
82
|
+
/** Snippets for the `<Protected>` slots a component leaves out. */
|
|
83
|
+
type PermDockDefaults = {
|
|
84
|
+
readonly pending?: Snippet;
|
|
85
|
+
readonly denied?: Snippet<[Decision]>;
|
|
86
|
+
readonly approval?: Snippet<[ApprovalRequiredDecision]>;
|
|
87
|
+
};
|
|
88
|
+
//#endregion
|
|
89
|
+
export { viewFor as a, scopedFor as i, SveltePermDockOptions as n, PermissionBoundaryProps as o, ProtectedProps as r, slotContent as s, PermDockDefaults as t };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, zn as GrantedDecision } from "./policy-types-DzwivBgR.js";
|
|
2
|
+
import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
|
|
3
|
+
import { n as DescribeMessages } from "./describe-BZUsixiL.js";
|
|
4
|
+
import { h as ClientStoreOptions } from "./types-BNORmDM8.js";
|
|
5
|
+
import { ReactNode } from "react";
|
|
6
|
+
//#region src/react/types.d.ts
|
|
7
|
+
type PermDockProviderProps = ({
|
|
8
|
+
readonly snapshot: Snapshot | string;
|
|
9
|
+
readonly snapshotPromise?: never;
|
|
10
|
+
} | {
|
|
11
|
+
/**
|
|
12
|
+
* An unawaited snapshot from a Server Component. Hooks never suspend on it: until it
|
|
13
|
+
* resolves they deny with `status: 'pending'`, then re-render. A rejection fails closed
|
|
14
|
+
* (`server-only`). Set `suspend` to suspend readers through `use()` instead.
|
|
15
|
+
*/
|
|
16
|
+
readonly snapshotPromise: PromiseLike<Snapshot | string>;
|
|
17
|
+
readonly snapshot?: never;
|
|
18
|
+
}) & {
|
|
19
|
+
/**
|
|
20
|
+
* With `snapshotPromise`: `true` suspends every hook to the nearest Suspense boundary until it
|
|
21
|
+
* resolves, and a rejection reaches the nearest error boundary. Defaults to `false`.
|
|
22
|
+
*/
|
|
23
|
+
readonly suspend?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The AuthZEN evaluations endpoint for checks the snapshot cannot answer. `false` never
|
|
26
|
+
* fetches: those checks answer `denied` with reason `server-only`.
|
|
27
|
+
*/
|
|
28
|
+
readonly endpoint?: string | false;
|
|
29
|
+
/** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
|
|
30
|
+
readonly snapshotUrl?: string;
|
|
31
|
+
readonly approvals?: string;
|
|
32
|
+
readonly tenant?: string;
|
|
33
|
+
readonly fetch?: typeof fetch;
|
|
34
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
35
|
+
readonly maxAge?: number;
|
|
36
|
+
readonly verifier?: TokenVerifier;
|
|
37
|
+
/** What every `<Protected>` below renders for a slot it leaves out. */
|
|
38
|
+
readonly defaults?: PermDockDefaults;
|
|
39
|
+
/** Localised text for `useDescribe()`. */
|
|
40
|
+
readonly messages?: DescribeMessages;
|
|
41
|
+
/** Called with each snapshot the store accepts; the latest prop is called. */
|
|
42
|
+
readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
|
|
43
|
+
/** Called when the store drops its snapshot; the latest prop is called. */
|
|
44
|
+
readonly onClear?: () => void;
|
|
45
|
+
/** Milliseconds between approval status polls. Defaults to 2000. */
|
|
46
|
+
readonly approvalInterval?: number;
|
|
47
|
+
readonly children: ReactNode;
|
|
48
|
+
};
|
|
49
|
+
/** Provider-wide content for the `<Protected>` slots a component leaves out. */
|
|
50
|
+
type PermDockDefaults = {
|
|
51
|
+
readonly pending?: ReactNode;
|
|
52
|
+
readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
|
|
53
|
+
readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
|
|
54
|
+
};
|
|
55
|
+
type ProtectedProps = {
|
|
56
|
+
readonly permission: Permission;
|
|
57
|
+
readonly data?: unknown;
|
|
58
|
+
readonly tenant?: string;
|
|
59
|
+
readonly pending?: ReactNode;
|
|
60
|
+
readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
|
|
61
|
+
/** Rendered for an approval-required decision; defaults to `denied`. */
|
|
62
|
+
readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
|
|
63
|
+
readonly children: ReactNode | ((decision: GrantedDecision) => ReactNode);
|
|
64
|
+
};
|
|
65
|
+
//#endregion
|
|
66
|
+
export { PermDockProviderProps as n, ProtectedProps as r, PermDockDefaults as t };
|
package/dist/unplugin/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as PermDockPluginOptions } from "../types-
|
|
1
|
+
import { a as PermDockPluginOptions } from "../types-5Ut_pbKy.js";
|
|
2
2
|
import { createUnplugin } from "unplugin";
|
|
3
3
|
//#region src/unplugin/index.d.ts
|
|
4
4
|
type CreateUnplugin = typeof createUnplugin<PermDockPluginOptions | undefined>;
|
package/dist/unplugin/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as createCollectScheduler, r as report } from "../watch-
|
|
2
|
-
import {
|
|
1
|
+
import { n as createCollectScheduler, r as report } from "../watch-CszoTJMq.js";
|
|
2
|
+
import { r as peerHint } from "../peer-C8swJ2GH.js";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
//#region src/unplugin/index.ts
|
|
5
5
|
function loadCreateUnplugin() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as runUsage } from "./usage-T5mXq98v.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
+
import { a as failOnFlag } from "./flags-C3DktBDY.js";
|
|
3
|
+
//#region src/cli/commands/usage.ts
|
|
4
|
+
const usage = defineLeaf({
|
|
5
|
+
flags: {
|
|
6
|
+
...failOnFlag,
|
|
7
|
+
ignore: {
|
|
8
|
+
type: "string",
|
|
9
|
+
repeatable: true,
|
|
10
|
+
description: "Permission keys or globs to skip",
|
|
11
|
+
valueHint: "glob"
|
|
12
|
+
},
|
|
13
|
+
"dynamic-as-used": {
|
|
14
|
+
type: "boolean",
|
|
15
|
+
description: "Count computed permission references as uses"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
async run(ctx, { flags }) {
|
|
19
|
+
return (await import("./usage-CHOtwL19.js")).runUsage({
|
|
20
|
+
cwd: ctx.cwd,
|
|
21
|
+
config: ctx.config,
|
|
22
|
+
ignore: flags.ignore,
|
|
23
|
+
strict: flags["fail-on"] === "warning",
|
|
24
|
+
json: ctx.json,
|
|
25
|
+
dynamicAsUsed: flags["dynamic-as-used"],
|
|
26
|
+
now: ctx.now,
|
|
27
|
+
io: ctx.io
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
//#endregion
|
|
32
|
+
export { usage };
|
|
@@ -1,34 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as
|
|
4
|
-
import { o as
|
|
5
|
-
import {
|
|
6
|
-
import { a as loadModule, n as asPolicy,
|
|
7
|
-
import { r as runCollect } from "./collect-
|
|
1
|
+
import { a as getResource } from "./permission-registry-Br4jSNVi.js";
|
|
2
|
+
import { u as usageResult } from "./errors-CWTY6uih.js";
|
|
3
|
+
import { a as rel, r as listSourceFiles } from "./files-D_JIzUrP.js";
|
|
4
|
+
import { o as USAGE_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
|
|
5
|
+
import { s as jsonSchemaOf } from "./catalog-doc-C9wjsfNY.js";
|
|
6
|
+
import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DFS_ry0W.js";
|
|
7
|
+
import { r as runCollect } from "./collect-CrZJJnEF.js";
|
|
8
|
+
import { t as beforeFirst } from "./text-BMFRfBqc.js";
|
|
9
|
+
import { t as DOCS_BASE } from "./manifest-CtKR3GXL.js";
|
|
10
|
+
import { r as findingOf } from "./output-Dyw8fyPF.js";
|
|
8
11
|
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
9
12
|
import { dirname, resolve } from "node:path";
|
|
10
13
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
11
14
|
import { createJiti } from "jiti";
|
|
12
15
|
import { Visitor, parseSync } from "oxc-parser";
|
|
13
16
|
import { isBuiltin } from "node:module";
|
|
14
|
-
//#region src/cli/doctor
|
|
17
|
+
//#region src/cli/doctor/source.ts
|
|
15
18
|
/** Entries a client file must not import; `tests/cli/doctor-entries.test.ts` keeps it in step with `exports`. */
|
|
16
19
|
const SERVER_SPECIFIERS = [
|
|
17
20
|
"permdock/a2a",
|
|
21
|
+
"permdock/agent",
|
|
18
22
|
"permdock/ai-sdk",
|
|
19
23
|
"permdock/approvals",
|
|
24
|
+
"permdock/astro",
|
|
20
25
|
"permdock/authzen",
|
|
21
26
|
"permdock/better-auth",
|
|
22
27
|
"permdock/better-supabase",
|
|
28
|
+
"permdock/chat",
|
|
29
|
+
"permdock/chat-sdk",
|
|
23
30
|
"permdock/claude-agent",
|
|
24
31
|
"permdock/clerk",
|
|
25
32
|
"permdock/cloud",
|
|
26
33
|
"permdock/convex",
|
|
34
|
+
"permdock/delivery",
|
|
27
35
|
"permdock/drizzle",
|
|
28
36
|
"permdock/elysia",
|
|
29
37
|
"permdock/eve",
|
|
30
38
|
"permdock/express",
|
|
31
39
|
"permdock/fastify",
|
|
40
|
+
"permdock/h3",
|
|
32
41
|
"permdock/hono",
|
|
33
42
|
"permdock/jwt",
|
|
34
43
|
"permdock/kysely",
|
|
@@ -42,24 +51,35 @@ const SERVER_SPECIFIERS = [
|
|
|
42
51
|
"permdock/otel",
|
|
43
52
|
"permdock/pdp",
|
|
44
53
|
"permdock/prisma",
|
|
54
|
+
"permdock/resend",
|
|
45
55
|
"permdock/scim",
|
|
46
56
|
"permdock/server",
|
|
57
|
+
"permdock/solid-start",
|
|
47
58
|
"permdock/ssf",
|
|
48
59
|
"permdock/supabase",
|
|
49
60
|
"permdock/supabase/middleware",
|
|
61
|
+
"permdock/sveltekit",
|
|
62
|
+
"permdock/tanstack-start",
|
|
50
63
|
"permdock/terminal",
|
|
51
|
-
"permdock/trpc"
|
|
64
|
+
"permdock/trpc",
|
|
65
|
+
"permdock/workflow",
|
|
66
|
+
"permdock/workflow-sdk"
|
|
52
67
|
];
|
|
53
68
|
/** Entries that feed request, tool or model data into a check. */
|
|
54
69
|
const ADAPTER_SPECIFIERS = [
|
|
55
70
|
"permdock/a2a",
|
|
71
|
+
"permdock/agent",
|
|
56
72
|
"permdock/ai-sdk",
|
|
73
|
+
"permdock/astro",
|
|
57
74
|
"permdock/authzen",
|
|
75
|
+
"permdock/chat",
|
|
76
|
+
"permdock/chat-sdk",
|
|
58
77
|
"permdock/claude-agent",
|
|
59
78
|
"permdock/elysia",
|
|
60
79
|
"permdock/eve",
|
|
61
80
|
"permdock/express",
|
|
62
81
|
"permdock/fastify",
|
|
82
|
+
"permdock/h3",
|
|
63
83
|
"permdock/hono",
|
|
64
84
|
"permdock/mcp",
|
|
65
85
|
"permdock/nest",
|
|
@@ -68,7 +88,10 @@ const ADAPTER_SPECIFIERS = [
|
|
|
68
88
|
"permdock/openai",
|
|
69
89
|
"permdock/orpc",
|
|
70
90
|
"permdock/server",
|
|
91
|
+
"permdock/solid-start",
|
|
71
92
|
"permdock/supabase/middleware",
|
|
93
|
+
"permdock/sveltekit",
|
|
94
|
+
"permdock/tanstack-start",
|
|
72
95
|
"permdock/terminal",
|
|
73
96
|
"permdock/trpc",
|
|
74
97
|
"permdock/webmcp"
|
|
@@ -241,6 +264,12 @@ function stringValue(node) {
|
|
|
241
264
|
if (value?.type === "Literal") return typeof value.value === "string" ? value.value : void 0;
|
|
242
265
|
return value?.type === "TemplateLiteral" ? value.quasis[0]?.value.cooked ?? void 0 : void 0;
|
|
243
266
|
}
|
|
267
|
+
/** Their `jwks` holds Standard Webhooks `v1a` keys, not a token issuer's. */
|
|
268
|
+
const WEBHOOK_VERIFIERS = /* @__PURE__ */ new Set([
|
|
269
|
+
"cloudApprovalWaiter",
|
|
270
|
+
"verifyWebhook",
|
|
271
|
+
"webhookVerifier"
|
|
272
|
+
]);
|
|
244
273
|
function isPermDockSpecifier(value) {
|
|
245
274
|
return value === "permdock" || value.startsWith("permdock/");
|
|
246
275
|
}
|
|
@@ -254,7 +283,8 @@ function permdockOptionObjects(source) {
|
|
|
254
283
|
ImportDeclaration(node) {
|
|
255
284
|
if (node.importKind === "type" || !isPermDockSpecifier(node.source.value)) return;
|
|
256
285
|
for (const specifier of node.specifiers) if (specifier.type === "ImportNamespaceSpecifier") namespaces.add(specifier.local.name);
|
|
257
|
-
else if (specifier.type === "ImportDefaultSpecifier"
|
|
286
|
+
else if (specifier.type === "ImportDefaultSpecifier") functions.add(specifier.local.name);
|
|
287
|
+
else if (specifier.importKind !== "type" && !WEBHOOK_VERIFIERS.has(specifier.imported.type === "Identifier" ? specifier.imported.name : specifier.imported.value)) functions.add(specifier.local.name);
|
|
258
288
|
},
|
|
259
289
|
VariableDeclarator(node) {
|
|
260
290
|
const init = unwrapped(node.init);
|
|
@@ -373,7 +403,7 @@ function pd038(sources, tenantClaim, fallback) {
|
|
|
373
403
|
code: "PD038",
|
|
374
404
|
severity: "warning",
|
|
375
405
|
message: `${source.file}:${line} reads the tenant from '${read}', but rls.tenantClaim is '${tenantClaim}'`,
|
|
376
|
-
fix: `pass tenant: '${tenantClaim}' or set rls.tenantClaim to '${read}'`
|
|
406
|
+
fix: `pass claims: { tenant: '${tenantClaim}' } or set rls.tenantClaim to '${read}'`
|
|
377
407
|
});
|
|
378
408
|
}
|
|
379
409
|
return findings;
|
|
@@ -534,7 +564,20 @@ async function runUsage(input) {
|
|
|
534
564
|
};
|
|
535
565
|
return {
|
|
536
566
|
code: report.errors > 0 || input.strict && report.warnings > 0 ? 1 : 0,
|
|
537
|
-
output: input.json ? `${JSON.stringify(report, null, 2)}\n` : formatUsage(report)
|
|
567
|
+
output: input.json ? `${JSON.stringify(report, null, 2)}\n` : formatUsage(report),
|
|
568
|
+
findings: [
|
|
569
|
+
...unused,
|
|
570
|
+
...ungranted,
|
|
571
|
+
...noRole,
|
|
572
|
+
...dynamic,
|
|
573
|
+
...undeclared,
|
|
574
|
+
...outsideInclude
|
|
575
|
+
].map((item) => findingOf({
|
|
576
|
+
code: item.kind,
|
|
577
|
+
severity: item.kind === "no-role" ? "error" : "warning",
|
|
578
|
+
message: `${item.key === "*" ? "" : `${item.key}: `}${item.detail}`,
|
|
579
|
+
docs: `${DOCS_BASE}/usage`
|
|
580
|
+
}))
|
|
538
581
|
};
|
|
539
582
|
}
|
|
540
583
|
async function usagePolicy(cwd, policyRel, loaded) {
|
|
@@ -587,7 +630,7 @@ function declaredFields(policy, resource) {
|
|
|
587
630
|
function conditionFields(condition, out) {
|
|
588
631
|
if (condition === void 0) return;
|
|
589
632
|
const add = (field) => {
|
|
590
|
-
out.add(field
|
|
633
|
+
out.add(beforeFirst(field, "."));
|
|
591
634
|
};
|
|
592
635
|
switch (condition.op) {
|
|
593
636
|
case "eq":
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ProblemDetails } from "./errors-
|
|
1
|
+
import { a as ProblemDetails } from "./errors-C2PXIv4c.js";
|
|
2
2
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
3
3
|
//#region src/core/validation-error.d.ts
|
|
4
4
|
/** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as compact } from "./compact-
|
|
1
|
+
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
//#region src/core/validation-error.ts
|
|
3
3
|
/** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
|
|
4
4
|
const PROBLEM_BASE = "https://permdock.com/problems";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
2
|
+
import { i as ownKeys, n as isForbiddenKey, r as ownGet } from "./paths-DXSHAMIa.js";
|
|
3
|
+
import { c as instantOf, g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
|
|
4
|
+
//#region src/core/fields.ts
|
|
5
|
+
function sanitizeFields(fields) {
|
|
6
|
+
if (fields === void 0) return;
|
|
7
|
+
return fields.filter((field) => field.length > 0 && !isForbiddenKey(field));
|
|
8
|
+
}
|
|
9
|
+
function grantCoversField(fields, field, effect) {
|
|
10
|
+
if (fields === void 0) return true;
|
|
11
|
+
if (fields.length === 0) return false;
|
|
12
|
+
if (field === void 0) return effect === "allow";
|
|
13
|
+
return fields.includes(field);
|
|
14
|
+
}
|
|
15
|
+
function pickVisible(row, canField) {
|
|
16
|
+
const out = {};
|
|
17
|
+
for (const key of ownKeys(row)) if (canField(key)) out[key] = ownGet(row, key);
|
|
18
|
+
return freezeDeep(out);
|
|
19
|
+
}
|
|
20
|
+
function sanitizeContext(value) {
|
|
21
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return {};
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const key of ownKeys(value)) out[key] = ownGet(value, key);
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/core/validity.ts
|
|
28
|
+
/**
|
|
29
|
+
* The normalised validity of a grant, or `undefined` when neither bound is
|
|
30
|
+
* set. Fail-closed at definition time: a bound that does not parse, or a
|
|
31
|
+
* window that ends before it starts, throws so a typo never widens a grant.
|
|
32
|
+
*/
|
|
33
|
+
function normalizeValidity(options, permissionKey) {
|
|
34
|
+
const from = options.validFrom === void 0 ? void 0 : instantOf(options.validFrom);
|
|
35
|
+
const until = options.validUntil === void 0 ? void 0 : instantOf(options.validUntil);
|
|
36
|
+
if (options.validFrom !== void 0 && from === void 0) throw new Error(`PermDock: validFrom on '${permissionKey}' must be an RFC 3339 string or an Instant`);
|
|
37
|
+
if (options.validUntil !== void 0 && until === void 0) throw new Error(`PermDock: validUntil on '${permissionKey}' must be an RFC 3339 string or an Instant`);
|
|
38
|
+
if (from !== void 0 && until !== void 0 && until <= from) throw new Error(`PermDock: validUntil on '${permissionKey}' must be after validFrom`);
|
|
39
|
+
if (from === void 0 && until === void 0) return;
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
...from === void 0 ? {} : { from },
|
|
42
|
+
...until === void 0 ? {} : { until }
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** Whether a grant with this validity applies at `now` (Unix seconds); no validity always applies. */
|
|
46
|
+
function isActive(validity, now) {
|
|
47
|
+
if (validity === void 0) return true;
|
|
48
|
+
if (validity.from !== void 0 && now < validity.from) return false;
|
|
49
|
+
return validity.until === void 0 || now < validity.until;
|
|
50
|
+
}
|
|
51
|
+
function wireValidity(validity) {
|
|
52
|
+
if (validity === void 0) return;
|
|
53
|
+
return Object.freeze({
|
|
54
|
+
...validity.from === void 0 ? {} : { from: rfc3339(validity.from) },
|
|
55
|
+
...validity.until === void 0 ? {} : { until: rfc3339(validity.until) }
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The validity of a wire grant. A malformed window fails closed for the
|
|
60
|
+
* grant's effect: an allow never applies (`{ from: +∞ }`), a deny always
|
|
61
|
+
* does (no window), so a corrupt bound can never lift a deny.
|
|
62
|
+
*/
|
|
63
|
+
function readWireValidity(value, effect = "allow") {
|
|
64
|
+
if (value === void 0) return;
|
|
65
|
+
const malformed = effect === "deny" ? void 0 : NEVER;
|
|
66
|
+
if (typeof value !== "object" || value === null) return malformed;
|
|
67
|
+
const from = "from" in value ? value.from : void 0;
|
|
68
|
+
const until = "until" in value ? value.until : void 0;
|
|
69
|
+
const start = from === void 0 ? void 0 : secondsOf(from);
|
|
70
|
+
const end = until === void 0 ? void 0 : secondsOf(until);
|
|
71
|
+
if (from !== void 0 && start === void 0 || until !== void 0 && end === void 0) return malformed;
|
|
72
|
+
return Object.freeze({
|
|
73
|
+
...start === void 0 ? {} : { from: start },
|
|
74
|
+
...end === void 0 ? {} : { until: end }
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const NEVER = Object.freeze({ from: Number.POSITIVE_INFINITY });
|
|
78
|
+
//#endregion
|
|
79
|
+
export { grantCoversField as a, sanitizeFields as c, wireValidity as i, normalizeValidity as n, pickVisible as o, readWireValidity as r, sanitizeContext as s, isActive as t };
|