permdock 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
- package/dist/a2a/index.d.ts +6 -6
- package/dist/a2a/index.js +14 -17
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-DCYe60Pi.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -35
- package/dist/ai-sdk/index.js +37 -23
- package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-DvSSPQJX.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-p1PGoVjb.js +995 -0
- package/dist/arazzo-41WuzHou.js +36 -0
- package/dist/{arazzo-C4BcskbX.js → arazzo-CaUVBn7D.js} +20 -14
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-DabClFLQ.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +94 -79
- package/dist/automation-BNM3TtDo.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +9 -8
- package/dist/better-supabase/index.d.ts +357 -30
- package/dist/better-supabase/index.js +936 -194
- package/dist/{bind-kk-uyCwH.js → bind-CAvgUuKs.js} +14 -10
- package/dist/{bind-BzqG8SMb.d.ts → bind-DOyrv6zi.d.ts} +12 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/{build-instance-DIIV9DbC.js → build-instance-Bu_eDqYw.js} +4 -3
- package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
- package/dist/{capability-CksyCWDH.d.ts → capability-Drg-1YhL.d.ts} +44 -25
- package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/catalog-BoWglDPI.js +1 -0
- package/dist/catalog-DZVbrF-z.js +52 -0
- package/dist/{catalog-tZUyOfOv.js → catalog-HD2gf5mY.js} +51 -6
- package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-Cdn7-0pQ.js} +45 -23
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +24 -27
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +9 -14
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +19 -5
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +239 -340
- package/dist/cloud-ytQ3uviA.js +87 -0
- package/dist/codemod-5mpSpnUY.js +37 -0
- package/dist/codemod-ua2hHy7w.js +2084 -0
- package/dist/collect-Ci6akVwH.js +55 -0
- package/dist/collect-D7eQDffE.js +1 -0
- package/dist/{collect-2SrB7lfk.js → collect-mLTY4nwb.js} +75 -11
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-CtTP7eur.d.ts → compile-1bsAezL0.d.ts} +5 -3
- package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
- package/dist/completion-BTFrHZhX.js +143 -0
- package/dist/config-Bj2Ixq3d.js +26 -0
- package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
- package/dist/{config-report--Xb9APJS.js → config-report-DSpsLpCE.js} +15 -5
- package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
- package/dist/{context-DieZVJXu.js → context-B_u3_bDJ.js} +2 -2
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +6 -4
- package/dist/create-B30OMUOJ.d.ts +107 -0
- package/dist/create-CBMmFie-.d.ts +138 -0
- package/dist/create-CGm28gyI.js +130 -0
- package/dist/create-CQWIpUG-.js +403 -0
- package/dist/{create-BBO24vj6.js → create-DCF2SvoT.js} +31 -32
- package/dist/create-D_NmPOdH.d.ts +110 -0
- package/dist/{credential-kue0qpbm.js → credential-BcoiejpY.js} +152 -31
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/delegation-j6-rc37o.js +286 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/{denied-text-DfRk15uw.d.ts → denied-text-CiFQNuMV.d.ts} +5 -5
- package/dist/{describe-C3ldA9os.d.ts → describe-B5qgDvEW.d.ts} +2 -2
- package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/{diff-rpqoe7Ag.js → diff-3jbx6Rm4.js} +60 -54
- package/dist/diff-CmuSD3vc.js +37 -0
- package/dist/doctor-3ZqNHX_G.js +44 -0
- package/dist/{doctor-owlv6ddh.js → doctor-BdZw53-k.js} +245 -50
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +2 -2
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +13 -12
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/{errors-OD_4c__H.d.ts → errors-DH5QEGXh.d.ts} +2 -2
- package/dist/evaluate-CNClBvcj.js +1785 -0
- package/dist/evaluations-C_1vdSZc.d.ts +32 -0
- package/dist/{evaluations-C9YJsv3H.js → evaluations-beAooV0n.js} +145 -34
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +22 -28
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +12 -11
- package/dist/fastify/index.d.ts +25 -22
- package/dist/fastify/index.js +13 -12
- package/dist/fetch-adapter-DD_gfmrC.js +120 -0
- package/dist/fetch-adapter-Dw0MTS3D.d.ts +31 -0
- package/dist/fields-OYG_JR78.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-CTCMsFZk.js} +55 -52
- package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
- package/dist/{grantee-CXY-0C87.js → grantee-hxrUsbpM.js} +16 -6
- package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DbENBHLB.js} +5 -4
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-C9YmyBIa.js → helpers-CBYVMjwh.js} +45 -38
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +13 -12
- package/dist/hosted-B46-5LYE.js +315 -0
- package/dist/hosted-BPk51-kX.d.ts +78 -0
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
- package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
- package/dist/{import-BFIlhetD.js → import-wyqXUyjm.js} +190 -53
- package/dist/index-B8YjkEZ4.d.ts +210 -0
- package/dist/index-C-6Letxg.d.ts +431 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/{index-BwMe94Xq.d.ts → index-Ch8LpNDp.d.ts} +34 -16
- package/dist/index-Cp_ilKi1.d.ts +91 -0
- package/dist/index-CueFnxQc.d.ts +110 -0
- package/dist/index-DuWxc5dt.d.ts +909 -0
- package/dist/index.d.ts +19 -15
- package/dist/index.js +31 -21
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-plkrsAog.d.ts → instance-options-BsVpyGIk.d.ts} +2 -2
- package/dist/instance-snapshot-BOEhcqIF.js +601 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +156 -135
- package/dist/{kernel-CB3LrIJM.js → kernel-D0NVb1cK.js} +52 -24
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +2 -2
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-dvL2XEe1.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
- package/dist/{map-error-BE27PYkE.js → map-error-Dr70oA_3.js} +3 -3
- package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
- package/dist/mcp/index.d.ts +22 -12
- package/dist/mcp/index.js +57 -39
- package/dist/{migrate-BwlB5-Wk.js → migrate-CIq4-E9F.js} +53 -14
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +15 -14
- package/dist/next/index.d.ts +18 -21
- package/dist/next/index.js +13 -11
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +17 -24
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
- package/dist/openapi-C4dDTVEd.js +138 -0
- package/dist/{openapi-BJdBmYDG.js → openapi-DD1SV-5-.js} +10 -9
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-X0VM7F3m.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +20 -15
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +30 -7
- package/dist/output-1im__-08.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
- package/dist/{permission-keys-B26jeyUv.js → ownership-DqaJNJPn.js} +1045 -153
- package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
- package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
- package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
- package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +45 -26
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-BrAscV28.js +868 -0
- package/dist/permdock-SV8ZINYT.d.ts +502 -0
- package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-CCJ6lmxB.js → permissions-BPxlwVhN.js} +4 -3
- package/dist/{permissions-COH-KRgT.d.ts → permissions-u_KHg-sN.d.ts} +1 -2
- package/dist/policies-DP2nqRoF.js +295 -0
- package/dist/{policy-ur0BBK_e.d.ts → policy-77FSAq_V.d.ts} +2 -2
- package/dist/{hosted-CBHgkzDl.js → policy-DbM5YYtV.js} +17 -273
- package/dist/policy-from-catalog-C2gMa2Dj.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-n0uRTsW8.d.ts} +460 -632
- package/dist/postgrest-CEgRbefE.d.ts +100 -0
- package/dist/postgrest-DAjUkF9w.js +575 -0
- package/dist/{powersync-cZe4kzhL.js → powersync-BkWWCS1K.js} +23 -24
- package/dist/powersync-DISt6SUe.js +62 -0
- package/dist/powersync-MMJ2mI2q.js +1 -0
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +2 -2
- package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
- package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
- package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/{protected-BN7BUdY1.js → protected-BlF0F6wL.js} +21 -4
- package/dist/{protected-B3_P7xuw.d.ts → protected-RFGpakN9.d.ts} +16 -8
- package/dist/{provider-Bi-0HNL3.js → provider-B1al-AZz.js} +2 -2
- package/dist/{provider-kwHC9CZD.d.ts → provider-DILL9oPK.d.ts} +1 -1
- package/dist/{provider-store-Ctt-81Ni.js → provider-store-DM6DNcta.js} +2 -2
- package/dist/pull-CvpINcMK.js +1 -0
- package/dist/pull-jEwbf80J.js +256 -0
- package/dist/push-BD4f15co.js +116 -0
- package/dist/pushed-policy-CqtxkV4G.js +238 -0
- package/dist/pushed-policy-DCW91KQU.d.ts +57 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -72
- package/dist/react-native/index.js +29 -25
- package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
- package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-COpmZUfx.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/{request-context-BVM7aWNs.js → request-context-C81Pip9n.js} +3 -3
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
- package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BAqP4q66.js +336 -0
- package/dist/{rls-BEktUaqg.js → rls-DTvYd-lI.js} +288 -690
- package/dist/{role-builder-B4GbKM-i.js → role-builder-uWQZ4v84.js} +14 -207
- package/dist/{rpc-nYC3cR_u.js → rpc-VSl5ylaQ.js} +7 -7
- package/dist/run-CUKuz0A8.js +723 -0
- package/dist/run-DDwUaJDU.js +1 -0
- package/dist/run-ticket-DocwaTKn.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DtaA4JuW.js → saas-BCXRuXca.js} +16 -14
- package/dist/scan-qvOe0hS3.js +29 -0
- package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
- package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
- package/dist/server/index.d.ts +12 -143
- package/dist/server/index.js +12 -9
- package/dist/server-C3WXAHZj.js +453 -0
- package/dist/{server-types-DdqBwZN_.d.ts → server-types-CKQiCnON.d.ts} +51 -68
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/{shared-1uhI-e-b.js → shared-BAK8t4Uo.js} +20 -9
- package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-4-eQIRWf.d.ts +225 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-B7DkYg6g.js +269 -0
- package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-PXI-vGpY.d.ts} +7 -5
- package/dist/solid/index.d.ts +11 -12
- package/dist/solid/index.js +7 -7
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-Dljy06zL.d.ts → sources-Xc4zkszI.d.ts} +7 -13
- package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
- package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
- package/dist/src-Cu2m75uo.js +1860 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +384 -47
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/standard-webhooks-rbD7LS6h.d.ts +88 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-ILkLUj_o.js → store-BDutJkDL.js} +40 -53
- package/dist/{store-options-CbUHDoSe.js → store-options-u0ycEe8s.js} +26 -21
- package/dist/{stores-Cxz_80g-.d.ts → stores-BUGNbJTt.d.ts} +7 -8
- package/dist/{stores-BHXdSbw9.js → stores-CGhM8BN_.js} +2 -2
- package/dist/{stream-Dwsg6WwE.d.ts → stream-CeCMJmBB.d.ts} +2 -2
- package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +7 -6
- package/dist/supabase/middleware.js +13 -11
- package/dist/supabase-By_frk3U.js +92 -0
- package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-BMoEhZir.js} +960 -64
- package/dist/supabase-hook-CCw5m35C.js +1 -0
- package/dist/{supabase-C1TWlnYt.js → supabase-x5JtR2tc.js} +99 -206
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +4 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +10 -10
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +4 -4
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +23 -287
- package/dist/testing/index.d.ts +311 -38
- package/dist/testing/index.js +3475 -201
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
- package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +16 -14
- package/dist/types-8RnwUAvE.d.ts +107 -0
- package/dist/{store-9KO4BlkB.d.ts → types-B3_ooZgZ.d.ts} +100 -75
- package/dist/{types-Br9IXUBG.d.ts → types-BdtSDbBO.d.ts} +77 -17
- package/dist/types-BtHtcKMr.d.ts +157 -0
- package/dist/{types-CqrjB9o6.d.ts → types-BzzaHxt3.d.ts} +23 -11
- package/dist/types-C791HFu9.d.ts +332 -0
- package/dist/types-C863OQiR.d.ts +57 -0
- package/dist/{types-ByUo56un.d.ts → types-CVZSNocA.d.ts} +23 -22
- package/dist/{types-DHrmBJLH.d.ts → types-CX7AvRqP.d.ts} +7 -7
- package/dist/types-C_IiEs64.d.ts +65 -0
- package/dist/{types-7rJVLWe5.d.ts → types-Dfv0aTER.d.ts} +63 -11
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/{types-DpWfQdSh.d.ts → types-Druu9wLM.d.ts} +46 -11
- package/dist/{types-CIlTojhq.d.ts → types-_WhUP7ud.d.ts} +9 -6
- package/dist/{types-CUcFZfpU.d.ts → types-lUlG3TVd.d.ts} +2 -1
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CRVl9V3t.js +32 -0
- package/dist/usage-CZpSQP6L.js +1 -0
- package/dist/{usage-CG9nOYZw.js → usage-SveTRTyr.js} +54 -11
- package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
- package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
- package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
- package/dist/{verify-BztUB3GX.js → verify-BaAKx7t6.js} +645 -50
- package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
- package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-CN8H_9UF.d.ts} +67 -2
- package/dist/vue/index.d.ts +9 -10
- package/dist/vue/index.js +8 -8
- package/dist/waiter-B986w1oK.d.ts +36 -0
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/watch--ovlPOc0.js +1 -0
- package/dist/{watch-zeucB7eF.js → watch-vea54PRw.js} +44 -5
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +3 -3
- package/dist/where-scope-C9vfEphl.js +306 -0
- package/dist/who-can-DWBAcaCQ.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/{wrap-Cr93qqdP.d.ts → wrap-C5jC6sKI.d.ts} +2 -1
- package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
- package/package.json +136 -37
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +123 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +10 -9
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
- package/skills/permdock-wire/SKILL.md +17 -11
- package/skills/permdock-wire/references/adapters.md +139 -51
- package/skills/permdock-wire/references/policy-options.md +5 -5
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DZL76lKW.js +0 -240
- package/dist/arazzo-CD8d0WLb.js +0 -54
- package/dist/catalog-6yWAX6Ps.js +0 -2
- package/dist/catalog-WHG4kBq7.js +0 -48
- package/dist/cloud-C7bSDgX4.js +0 -50
- package/dist/cloud-PeBN3IEn.js +0 -118
- package/dist/collect-Bw2Jdq1q.js +0 -2
- package/dist/collect-CQx4hX4N.js +0 -83
- package/dist/commands-Cpip4ULx.js +0 -97
- package/dist/config-DLt6BvV7.js +0 -36
- package/dist/diff-Cnghh_Ip.js +0 -48
- package/dist/doctor-CuVJvhV_.js +0 -53
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-fwfXN01n.js +0 -1016
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-DgM7w96K.d.ts +0 -6
- package/dist/index-Dz7didpC.d.ts +0 -201
- package/dist/index-UdVQgq48.d.ts +0 -550
- package/dist/load-B_shHrmd.js +0 -2
- package/dist/manifest-BngWKryL.js +0 -770
- package/dist/may-use-BOn_dR_w.js +0 -78
- package/dist/openapi-DcQ1Kg40.js +0 -164
- package/dist/ownership-BgnbOJFT.js +0 -851
- package/dist/permdock-L26udHSk.js +0 -3646
- package/dist/powersync-BFSbSElQ.js +0 -62
- package/dist/powersync-DCDgZgfZ.js +0 -2
- package/dist/rls-55DQTuf5.js +0 -250
- package/dist/run-DMcNW_8T.js +0 -174
- package/dist/server-ZYEHtNHS.js +0 -268
- package/dist/sink-BTtmfPnE.js +0 -141
- package/dist/sink-CPN4zLfs.d.ts +0 -104
- package/dist/skills-Dle4ZoLF.js +0 -56
- package/dist/snapshot-Dc9CHPME.js +0 -1078
- package/dist/src-Bb7no-hS.js +0 -639
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-Dbqr141s.js +0 -83
- package/dist/supabase-hook-BULg7Ut_.js +0 -2
- package/dist/thenable-QSmvt-vZ.js +0 -65
- package/dist/types-C0dee0Qf.d.ts +0 -197
- package/dist/types-DvupZE0w.d.ts +0 -9
- package/dist/usage-4G6t643F.js +0 -42
- package/dist/usage-iFLJ0-rr.js +0 -2
- package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
- package/dist/watch-C8TpsAl4.js +0 -2
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { n as RoleThrough } from "./types-
|
|
2
|
-
import { o as SqlMembershipSource } from "./sources-
|
|
1
|
+
import { n as RoleThrough } from "./types-BzzaHxt3.js";
|
|
2
|
+
import { o as SqlMembershipSource } from "./sources-Xc4zkszI.js";
|
|
3
|
+
//#region src/cli/core/errors.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* 0 success, 1 failure, 2 usage, 3 action required, 130 interrupted (SIGINT
|
|
6
|
+
* or a cancelled prompt), 143 terminated (SIGTERM).
|
|
7
|
+
*/
|
|
8
|
+
type ExitCode = 0 | 1 | 2 | 3 | 130 | 143;
|
|
9
|
+
//#endregion
|
|
3
10
|
//#region src/cli/types.d.ts
|
|
4
11
|
type CollectConfig = {
|
|
5
12
|
readonly srcPath?: readonly string[];
|
|
@@ -88,7 +95,7 @@ type RlsConfig = {
|
|
|
88
95
|
readonly dialect?: RlsDialect;
|
|
89
96
|
readonly memberships?: RlsMemberships;
|
|
90
97
|
/**
|
|
91
|
-
* `database` mode: the `
|
|
98
|
+
* `database` mode: the `tableMembershipSource` / `junctionMembershipSource` sources the helpers
|
|
92
99
|
* read for every scope `memberships` maps no table for. Default
|
|
93
100
|
* `supabase.hook.memberships`, so the helpers and the token hook run the
|
|
94
101
|
* same SQL. Setting it selects `database` mode.
|
|
@@ -117,6 +124,13 @@ type RlsConfig = {
|
|
|
117
124
|
/** Postgres type of each named scope's id column; overrides `tenantType` / `teamType`. */
|
|
118
125
|
readonly scopeTypes?: Readonly<Record<string, string>>;
|
|
119
126
|
readonly roleClaim?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Role values the existing SQL compares against (a string literal or an
|
|
129
|
+
* enum label) and the PermDock role each one is. `rls import` writes the
|
|
130
|
+
* PermDock name for a mapped value; `rls migrate` filters a `role` helper by
|
|
131
|
+
* it. An unmapped value must already be a declared role.
|
|
132
|
+
*/
|
|
133
|
+
readonly roleValues?: Readonly<Record<string, string>>;
|
|
120
134
|
readonly gucPrefix?: string;
|
|
121
135
|
readonly out?: string;
|
|
122
136
|
/** `--target drizzle`: where each policy's `.link()` finds its table. */
|
|
@@ -218,7 +232,8 @@ type RlsConfig = {
|
|
|
218
232
|
* Add the approval store `supabaseApprovalStore` reads and writes: the
|
|
219
233
|
* `approval_requests` table and one function per `ApprovalStore` method, in
|
|
220
234
|
* the helper schema, executable by no client role. Off by default. An
|
|
221
|
-
* object adopts a table the app already has instead
|
|
235
|
+
* object with `table` adopts a table the app already has instead, and
|
|
236
|
+
* `delegations: true` adds the out-of-office covers.
|
|
222
237
|
*/
|
|
223
238
|
readonly approvals?: boolean | RlsApprovalsAdopt;
|
|
224
239
|
/**
|
|
@@ -301,8 +316,15 @@ type RlsConfig = {
|
|
|
301
316
|
* fields into the app's own columns on each write, converted to their types.
|
|
302
317
|
*/
|
|
303
318
|
type RlsApprovalsAdopt = {
|
|
304
|
-
/** `table` or `schema.table`. */
|
|
305
|
-
readonly table
|
|
319
|
+
/** `table` or `schema.table`. Without it the store is the generated `approval_requests`. */
|
|
320
|
+
readonly table?: string;
|
|
321
|
+
/**
|
|
322
|
+
* Add `approval_delegations`, the out-of-office covers a user writes for
|
|
323
|
+
* themselves, and the four-argument `permdock_is_approver` that answers for
|
|
324
|
+
* a delegate inside an active cover. `tableApprovalDelegationSource` reads
|
|
325
|
+
* the same rows for `approvalsHandler`. Off by default.
|
|
326
|
+
*/
|
|
327
|
+
readonly delegations?: boolean;
|
|
306
328
|
/** A text column unique per request. Default `token`. */
|
|
307
329
|
readonly token?: string;
|
|
308
330
|
/** A jsonb column holding the `ApprovalRequest`. Default `body`. */
|
|
@@ -359,6 +381,8 @@ type RlsCustomRoleTable = {
|
|
|
359
381
|
readonly id?: string;
|
|
360
382
|
/** A boolean column marking rows that are not custom roles (declared or system roles); those rows are skipped. */
|
|
361
383
|
readonly skip?: string;
|
|
384
|
+
/** A boolean column marking a row with no tenant as a shared custom role, held at `scope` (default the first scope) in every tenant. Without it a row with no tenant is a platform role. */
|
|
385
|
+
readonly shared?: string;
|
|
362
386
|
};
|
|
363
387
|
/** `rls.customRoles` as an object: custom roles on, plus where existing ones live. */
|
|
364
388
|
type RlsCustomRolesConfig = {
|
|
@@ -432,6 +456,9 @@ type RlsActions = Readonly<Record<string, "select" | "insert" | "update" | "dele
|
|
|
432
456
|
type RlsMigrateHelper = {
|
|
433
457
|
readonly form: "ids" | "row" | "membership";
|
|
434
458
|
readonly scope: string;
|
|
459
|
+
} | {
|
|
460
|
+
readonly form: "role";
|
|
461
|
+
readonly scope: string;
|
|
435
462
|
} | {
|
|
436
463
|
readonly form: "scoped";
|
|
437
464
|
} | {
|
|
@@ -500,7 +527,7 @@ type RlsStorage = {
|
|
|
500
527
|
};
|
|
501
528
|
/** `permdock supabase hook generate` input. */
|
|
502
529
|
type SupabaseHookConfig = {
|
|
503
|
-
/** The same `
|
|
530
|
+
/** The same `tableMembershipSource` / `junctionMembershipSource` sources the app passes as `memberships`. */
|
|
504
531
|
readonly memberships: readonly SqlMembershipSource[];
|
|
505
532
|
/** Schema of the hook and the version table. Default `rls.schema`, else `permdock`. */
|
|
506
533
|
readonly schema?: string;
|
|
@@ -565,8 +592,21 @@ type SupabaseHookConfig = {
|
|
|
565
592
|
readonly suspension?: RlsSuspension;
|
|
566
593
|
readonly out?: string;
|
|
567
594
|
};
|
|
595
|
+
/**
|
|
596
|
+
* How the project turns SQL into Supabase migrations: `'pg-delta'`
|
|
597
|
+
* (Declarative Schemas 2.0, `supabase db schema declarative sync`),
|
|
598
|
+
* `'migra'` (declarative schemas on `supabase db diff`) or `'migrations'`
|
|
599
|
+
* (hand-written migrations, no declarative schemas).
|
|
600
|
+
*/
|
|
601
|
+
type SupabaseSchemas = "pg-delta" | "migra" | "migrations";
|
|
568
602
|
type SupabaseConfig = {
|
|
569
603
|
readonly hook?: SupabaseHookConfig;
|
|
604
|
+
/**
|
|
605
|
+
* The schema workflow `rls generate --split`, `supabase hook generate` and
|
|
606
|
+
* doctor follow. Default: `'migra'` when `supabase/config.toml` sets
|
|
607
|
+
* `[experimental.pgdelta] enabled = false`, else `'pg-delta'`.
|
|
608
|
+
*/
|
|
609
|
+
readonly schemas?: SupabaseSchemas;
|
|
570
610
|
};
|
|
571
611
|
type DoctorConfig = {
|
|
572
612
|
/**
|
|
@@ -578,7 +618,7 @@ type DoctorConfig = {
|
|
|
578
618
|
readonly srcPath?: readonly string[];
|
|
579
619
|
readonly sensitiveActions?: readonly string[];
|
|
580
620
|
readonly memberships?: string;
|
|
581
|
-
/** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `
|
|
621
|
+
/** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `memorySettingsSource` input) for PD029. */
|
|
582
622
|
readonly credentials?: string;
|
|
583
623
|
/** Globs or directories whose files are client entries for PD001, for frameworks with no `'use client'` convention. */
|
|
584
624
|
readonly clientEntries?: readonly string[];
|
|
@@ -590,6 +630,8 @@ type DoctorConfig = {
|
|
|
590
630
|
type PermDockConfig = {
|
|
591
631
|
readonly permissions?: string;
|
|
592
632
|
readonly policy?: string;
|
|
633
|
+
/** A module exporting the `defineOperations` map as `operations` or default; `collect` writes it to the catalog's `operations`. */
|
|
634
|
+
readonly operations?: string;
|
|
593
635
|
readonly collect?: CollectConfig;
|
|
594
636
|
readonly catalog?: CatalogConfig;
|
|
595
637
|
readonly openapi?: {
|
|
@@ -608,7 +650,7 @@ type PowerSyncConfig = {
|
|
|
608
650
|
readonly resources?: readonly string[];
|
|
609
651
|
/** The action whose grants decide which rows sync; default `read`. */
|
|
610
652
|
readonly action?: string;
|
|
611
|
-
/** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `
|
|
653
|
+
/** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `powerSyncSource`; none by default. */
|
|
612
654
|
readonly manifest?: string;
|
|
613
655
|
};
|
|
614
656
|
type CliIo = {
|
|
@@ -617,13 +659,23 @@ type CliIo = {
|
|
|
617
659
|
readonly now?: () => Date;
|
|
618
660
|
readonly fetch?: typeof fetch;
|
|
619
661
|
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
620
|
-
/** Styled
|
|
662
|
+
/** Styled stdout; `--no-color` turns it off. Unset is plain. */
|
|
621
663
|
readonly color?: boolean;
|
|
664
|
+
/** Styled stderr, decided for that stream on its own. Unset is plain. */
|
|
665
|
+
readonly errColor?: boolean;
|
|
622
666
|
/** A person at a terminal: commands may prompt. Unset never prompts. */
|
|
623
667
|
readonly interactive?: boolean;
|
|
668
|
+
/** stdout is a terminal; agent detection reads it. Unset is a pipe. */
|
|
669
|
+
readonly stdoutIsTty?: boolean;
|
|
670
|
+
/** stderr is a terminal: progress draws a spinner. Unset prints lines. */
|
|
671
|
+
readonly stderrIsTty?: boolean;
|
|
672
|
+
/** Reads all of stdin, for `--*-stdin` secrets. Unset reads nothing. */
|
|
673
|
+
readonly readStdin?: () => Promise<string>;
|
|
674
|
+
/** Aborted on SIGINT or SIGTERM. */
|
|
675
|
+
readonly signal?: AbortSignal;
|
|
624
676
|
};
|
|
625
677
|
type RunResult = {
|
|
626
|
-
readonly code:
|
|
678
|
+
readonly code: ExitCode;
|
|
627
679
|
readonly stdout: string;
|
|
628
680
|
readonly stderr: string;
|
|
629
681
|
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { a as durationOf } from "./time-DkWjdL98.js";
|
|
2
|
+
//#region src/approvals/errors.ts
|
|
3
|
+
var ApprovalError = class extends Error {
|
|
4
|
+
name = "ApprovalError";
|
|
5
|
+
code;
|
|
6
|
+
constructor(code, message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.code = code;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
const CODES = /* @__PURE__ */ new Set([
|
|
12
|
+
"approval-not-found",
|
|
13
|
+
"approval-not-pending",
|
|
14
|
+
"approval-expired",
|
|
15
|
+
"approver-unauthenticated",
|
|
16
|
+
"approver-is-actor",
|
|
17
|
+
"approver-is-principal",
|
|
18
|
+
"approver-not-eligible",
|
|
19
|
+
"approver-repeated"
|
|
20
|
+
]);
|
|
21
|
+
function isApprovalErrorCode(value) {
|
|
22
|
+
return typeof value === "string" && CODES.has(value);
|
|
23
|
+
}
|
|
24
|
+
/** Matches by `name` and `code`, so an error from another copy of the module still maps. */
|
|
25
|
+
function isApprovalError(value) {
|
|
26
|
+
if (!(value instanceof Error) || value.name !== "ApprovalError") return false;
|
|
27
|
+
const code = Reflect.get(value, "code");
|
|
28
|
+
return typeof code === "string" && CODES.has(code);
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/approvals/types.ts
|
|
32
|
+
const APPROVAL_HEADER = "PermDock-Approval";
|
|
33
|
+
/** Seconds a request stays open when neither the store nor the call sets a `ttl`. */
|
|
34
|
+
const DEFAULT_APPROVAL_TTL = 3600;
|
|
35
|
+
/** The approvals a request needs in total: `approvers.quorum` (or 1), or the sum of its stages' quorums. */
|
|
36
|
+
function approvalQuorum(request) {
|
|
37
|
+
const stages = request.approvers?.stages;
|
|
38
|
+
if (stages !== void 0) return stages.reduce((sum, stage) => sum + (stage.quorum ?? 1), 0);
|
|
39
|
+
return request.approvers?.quorum ?? 1;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The instant from which `approvers.escalation.to` may approve, in epoch
|
|
43
|
+
* milliseconds, or `undefined` when the request has no escalation or its
|
|
44
|
+
* `after` does not parse (then nobody escalates: fail-closed).
|
|
45
|
+
*/
|
|
46
|
+
function escalationOpenAt(request) {
|
|
47
|
+
const seconds = durationOf(request.approvers?.escalation?.after);
|
|
48
|
+
if (seconds === void 0) return;
|
|
49
|
+
return Date.parse(request.createdAt) + seconds * 1e3;
|
|
50
|
+
}
|
|
51
|
+
/** The instant from which a stage's own `escalation.to` may approve it, in epoch milliseconds; `undefined` when it has none or `after` does not parse. */
|
|
52
|
+
function stageEscalationOpenAt(request, stage) {
|
|
53
|
+
const seconds = durationOf(stage.escalation?.after);
|
|
54
|
+
if (seconds === void 0) return;
|
|
55
|
+
return Date.parse(request.createdAt) + seconds * 1e3;
|
|
56
|
+
}
|
|
57
|
+
/** The key a verdict's `relations` lists a relation approver under. */
|
|
58
|
+
function approverRelationKey(item) {
|
|
59
|
+
return JSON.stringify([
|
|
60
|
+
item.resource,
|
|
61
|
+
item.relation,
|
|
62
|
+
item.through ?? null,
|
|
63
|
+
item.depth ?? null
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { escalationOpenAt as a, isApprovalError as c, approverRelationKey as i, isApprovalErrorCode as l, DEFAULT_APPROVAL_TTL as n, stageEscalationOpenAt as o, approvalQuorum as r, ApprovalError as s, APPROVAL_HEADER as t };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { I as ResourceRelation } from "./vocabulary-CN8H_9UF.js";
|
|
2
|
+
import { s as OperationMeta } from "./operations-X0VM7F3m.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 };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Nn as Decision, Rn as ExplainedDecision, T as Policy, ar as Subject, j as PolicyVocabulary, nr as Membership, rr as Principal } from "./policy-types-n0uRTsW8.js";
|
|
2
|
+
import { E as PermissionTree, w as Permission } from "./vocabulary-CN8H_9UF.js";
|
|
3
|
+
import { c as WhereResult, i as PermDockOptions, n as DeriveOptions, o as SimulateOptions, r as PermDock, t as DecideOptions } from "./permdock-SV8ZINYT.js";
|
|
3
4
|
//#region src/pdp/types.d.ts
|
|
4
5
|
type RemotePdpAuth = {
|
|
5
6
|
readonly bearer: string | (() => string | Promise<string>);
|
|
@@ -25,7 +26,8 @@ type RemotePdpEndpoints = {
|
|
|
25
26
|
readonly searchResource?: string;
|
|
26
27
|
};
|
|
27
28
|
type RemotePdpCache = {
|
|
28
|
-
|
|
29
|
+
/** Seconds, at most 30. */
|
|
30
|
+
readonly ttl: number;
|
|
29
31
|
};
|
|
30
32
|
type RemotePdpOptions = {
|
|
31
33
|
readonly url: string;
|
|
@@ -84,9 +86,9 @@ type SpiceDbOptions = {
|
|
|
84
86
|
readonly cache?: RemotePdpCache;
|
|
85
87
|
readonly fetch?: typeof fetch;
|
|
86
88
|
};
|
|
87
|
-
type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<V>, "can" | "decide" | "assert" | "explain" | "filter" | "where" | "simulate" | "tenant" | "team" | "derive"> & {
|
|
89
|
+
type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<V>, "can" | "decide" | "decideEach" | "assert" | "explain" | "filter" | "where" | "simulate" | "tenant" | "team" | "derive"> & {
|
|
88
90
|
/** `permdock.derive` with the same providers: the result asks the PDP too. */
|
|
89
|
-
readonly derive: (options: DeriveOptions) =>
|
|
91
|
+
readonly derive: (options: DeriveOptions) => Promise<PdpPermDock<V>>;
|
|
90
92
|
/**
|
|
91
93
|
* For a delegated permission whose provider lists ids, an `in` over them
|
|
92
94
|
* (AND the local condition when local grants exist); otherwise the local
|
|
@@ -95,6 +97,8 @@ type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<
|
|
|
95
97
|
readonly where: (permission: Permission) => Promise<WhereResult>;
|
|
96
98
|
readonly can: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<boolean>;
|
|
97
99
|
readonly decide: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Decision>;
|
|
100
|
+
/** `decide` for each row, in row order, asking the PDP per row. */
|
|
101
|
+
readonly decideEach: (permission: Permission, rows: readonly unknown[], options?: DecideOptions) => Promise<readonly Decision[]>;
|
|
98
102
|
readonly assert: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Extract<Decision, {
|
|
99
103
|
readonly outcome: "granted";
|
|
100
104
|
}>>;
|
|
@@ -103,7 +107,6 @@ type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<
|
|
|
103
107
|
readonly filter: <T>(permission: Permission<string, T, "instance">, rows: readonly T[], options?: DecideOptions) => Promise<T[]>;
|
|
104
108
|
readonly simulate: {
|
|
105
109
|
(checks: readonly (readonly [Permission, unknown?])[], options?: SimulateOptions): Promise<readonly Decision[]>;
|
|
106
|
-
(plan: ArazzoSimulateInput): ArazzoPlan;
|
|
107
110
|
(preview: {
|
|
108
111
|
readonly roles?: readonly (string | {
|
|
109
112
|
readonly key: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Xt as DecisionEvent, j as PolicyVocabulary } from "./policy-types-n0uRTsW8.js";
|
|
2
|
+
import { r as PermDock } from "./permdock-SV8ZINYT.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";
|
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-Dfv0aTER.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-vea54PRw.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,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-CZpSQP6L.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 };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as runUsage } from "./usage-SveTRTyr.js";
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { a as getResource } from "./permission-registry-
|
|
2
|
-
import {
|
|
1
|
+
import { a as getResource } from "./permission-registry-Br4jSNVi.js";
|
|
2
|
+
import { u as usageResult } from "./errors-CWTY6uih.js";
|
|
3
3
|
import { a as rel, r as listSourceFiles } from "./files-D_JIzUrP.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-
|
|
7
|
-
import { r as runCollect } from "./collect-
|
|
4
|
+
import { o as USAGE_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
|
|
5
|
+
import { s as jsonSchemaOf } from "./catalog-doc-Cdn7-0pQ.js";
|
|
6
|
+
import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DFS_ry0W.js";
|
|
7
|
+
import { r as runCollect } from "./collect-mLTY4nwb.js";
|
|
8
|
+
import { t as beforeFirst } from "./text-BMFRfBqc.js";
|
|
9
|
+
import { t as DOCS_BASE } from "./manifest-dvL2XEe1.js";
|
|
10
|
+
import { r as findingOf } from "./output-1im__-08.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";
|
|
@@ -15,20 +18,26 @@ import { isBuiltin } from "node:module";
|
|
|
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-DH5QEGXh.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. */
|