permdock 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
- package/dist/a2a/index.d.ts +6 -6
- package/dist/a2a/index.js +14 -17
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-B4R5fnMU.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -35
- package/dist/ai-sdk/index.js +37 -23
- package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-DJ6Yd5z1.js +995 -0
- package/dist/arazzo-B6lebmiQ.js +36 -0
- package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.js} +20 -14
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-Dg8XsRaO.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +94 -79
- package/dist/automation-BMZPIVUM.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +9 -8
- package/dist/better-supabase/index.d.ts +357 -30
- package/dist/better-supabase/index.js +936 -194
- package/dist/{bind-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
- package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/{build-instance-DIIV9DbC.js → build-instance-BMnAudHn.js} +4 -3
- package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
- package/dist/{capability-CksyCWDH.d.ts → capability-BSslw1QV.d.ts} +44 -25
- package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/{catalog-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
- package/dist/catalog-DjhMYYCq.js +1 -0
- package/dist/catalog-R_A__RsH.js +52 -0
- package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.js} +45 -23
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +24 -27
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +9 -14
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +19 -5
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +239 -340
- package/dist/cloud-CIoHNevm.js +87 -0
- package/dist/codemod-Bmj9dWMH.js +37 -0
- package/dist/codemod-Cxvvc70T.js +2084 -0
- package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
- package/dist/collect-DloHbDVa.js +55 -0
- package/dist/collect-FlXJlhus.js +1 -0
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
- package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
- package/dist/completion-BqhRBJD8.js +143 -0
- package/dist/config-B46rm9sc.js +26 -0
- package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
- package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
- package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
- package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +6 -4
- package/dist/create-0VZ7Pdiu.d.ts +107 -0
- package/dist/create-BDS7wc3y.d.ts +138 -0
- package/dist/create-BFfm17UA.d.ts +110 -0
- package/dist/create-BWRSXgOF.js +403 -0
- package/dist/create-C3b4B5eF.js +130 -0
- package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
- package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/delegation-DaXVdDhM.js +286 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/{denied-text-DfRk15uw.d.ts → denied-text-D8jDHgsl.d.ts} +5 -5
- package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.d.ts} +2 -2
- package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/diff-CxZo9pTq.js +37 -0
- package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
- package/dist/doctor-CxiwSfqH.js +44 -0
- package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.js} +245 -50
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +2 -2
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +13 -12
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/{errors-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/evaluate-_R8QkWaf.js +1732 -0
- package/dist/evaluations-16UqqQ6W.d.ts +32 -0
- package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.js} +145 -34
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +22 -28
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +12 -11
- package/dist/fastify/index.d.ts +25 -22
- package/dist/fastify/index.js +13 -12
- package/dist/fetch-adapter-g0ypLkID.js +120 -0
- package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
- package/dist/fields-D9tPVUUS.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-D2lZt4Dd.js} +55 -52
- package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
- package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
- package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.js} +5 -4
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-C9YmyBIa.js → helpers-DTcZOzhF.js} +45 -38
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +13 -12
- package/dist/hosted-BZIAYvon.js +315 -0
- package/dist/hosted-DBDX0M-P.d.ts +78 -0
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
- package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
- package/dist/{import-BFIlhetD.js → import-DMmOG27O.js} +190 -53
- package/dist/index-BcHcPyIo.d.ts +110 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-Chrs5fQ-.d.ts +210 -0
- package/dist/index-CxGUswIC.d.ts +431 -0
- package/dist/index-D8EovfsP.d.ts +91 -0
- package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
- package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
- package/dist/index.d.ts +19 -15
- package/dist/index.js +31 -21
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-plkrsAog.d.ts → instance-options-Omfd793B.d.ts} +2 -2
- package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +156 -135
- package/dist/{kernel-CB3LrIJM.js → kernel-5JatXyND.js} +52 -24
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +2 -2
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-CtKR3GXL.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
- package/dist/{map-error-BE27PYkE.js → map-error-TCAdw-eW.js} +3 -3
- package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
- package/dist/mcp/index.d.ts +22 -12
- package/dist/mcp/index.js +57 -39
- package/dist/{migrate-BwlB5-Wk.js → migrate-BShP7Vf4.js} +53 -14
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +15 -14
- package/dist/next/index.d.ts +18 -21
- package/dist/next/index.js +13 -11
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +17 -24
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
- package/dist/{openapi-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
- package/dist/openapi-ahr8rHu3.js +138 -0
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-CxybZErY.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +20 -15
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +30 -7
- package/dist/output-Dyw8fyPF.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
- package/dist/{permission-keys-B26jeyUv.js → ownership-BatFgAA4.js} +1698 -869
- package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
- package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
- package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
- package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +45 -26
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-B9JxkBwC.js +868 -0
- package/dist/permdock-D7eeLJER.d.ts +502 -0
- package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-CCJ6lmxB.js → permissions-CZKiUfFM.js} +4 -3
- package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
- package/dist/policies-CO1oOymN.js +295 -0
- package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
- package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
- package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
- package/dist/postgrest-CW0IqC-U.js +566 -0
- package/dist/postgrest-NUqZT-RB.d.ts +100 -0
- package/dist/powersync-BHfuehf3.js +62 -0
- package/dist/powersync-CbzkqL_M.js +1 -0
- package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +2 -2
- package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
- package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
- package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/{protected-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
- package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
- package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
- package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
- package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
- package/dist/pull-BgIfno6w.js +256 -0
- package/dist/pull-ByOks_Tg.js +1 -0
- package/dist/push-CmFVBOeI.js +116 -0
- package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
- package/dist/pushed-policy-DobP7AHI.js +238 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -72
- package/dist/react-native/index.js +24 -22
- package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
- package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-COpmZUfx.d.ts → replay-D7iKcLFe.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.js} +3 -3
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
- package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BA8an5Ap.js +336 -0
- package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
- package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
- package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
- package/dist/run-CNsApDpd.js +1 -0
- package/dist/run-DOfMtc9V.js +723 -0
- package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DtaA4JuW.js → saas-FO-Q8oj0.js} +16 -14
- package/dist/scan-BOI5tJ-6.js +29 -0
- package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
- package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
- package/dist/server/index.d.ts +12 -143
- package/dist/server/index.js +12 -9
- package/dist/server-DqCT4CgZ.js +453 -0
- package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
- package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/sink-Bj_lDUDq.d.ts +225 -0
- package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-CXUWfsNy.js +269 -0
- package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
- package/dist/solid/index.d.ts +11 -12
- package/dist/solid/index.js +7 -7
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-Dljy06zL.d.ts → sources-BV9j0DeZ.d.ts} +7 -13
- package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
- package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
- package/dist/src-DLfUWFAI.js +1851 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +384 -47
- package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
- package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
- package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
- package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
- package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.d.ts} +2 -2
- package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +7 -6
- package/dist/supabase/middleware.js +13 -11
- package/dist/supabase-9pqI57pW.js +92 -0
- package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
- package/dist/supabase-hook-CXcGpHqq.js +1 -0
- package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +4 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +10 -10
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +4 -4
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +23 -287
- package/dist/testing/index.d.ts +311 -38
- package/dist/testing/index.js +3475 -201
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
- package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +16 -14
- package/dist/{types-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
- package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
- package/dist/types-BjV-fqcA.d.ts +57 -0
- package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
- package/dist/types-C8-KNsFf.d.ts +107 -0
- package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
- package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
- package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
- package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
- package/dist/types-DX0LaKTb.d.ts +157 -0
- package/dist/types-DiQjupG2.d.ts +332 -0
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/types-_sHy8BQf.d.ts +65 -0
- package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
- package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CHOtwL19.js +1 -0
- package/dist/usage-DHtE8j4E.js +32 -0
- package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
- package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
- package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
- package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
- package/dist/{verify-BztUB3GX.js → verify-DbCL9bnB.js} +645 -50
- package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
- package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-D6lPdb4Z.d.ts} +65 -2
- package/dist/vue/index.d.ts +9 -10
- package/dist/vue/index.js +8 -8
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/waiter-CKy4MQSY.d.ts +36 -0
- package/dist/watch-Cb-NcaUw.js +1 -0
- package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.js} +44 -5
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +3 -3
- package/dist/where-scope-Dv-WTP-w.js +306 -0
- package/dist/who-can-D0QoYbEb.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/{wrap-Cr93qqdP.d.ts → wrap-Bd1Tejur.d.ts} +2 -1
- package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
- package/package.json +136 -37
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +123 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +9 -8
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +5 -4
- package/skills/permdock-wire/SKILL.md +17 -11
- package/skills/permdock-wire/references/adapters.md +139 -51
- package/skills/permdock-wire/references/policy-options.md +5 -5
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DZL76lKW.js +0 -240
- package/dist/arazzo-CD8d0WLb.js +0 -54
- package/dist/catalog-6yWAX6Ps.js +0 -2
- package/dist/catalog-WHG4kBq7.js +0 -48
- package/dist/cloud-C7bSDgX4.js +0 -50
- package/dist/cloud-PeBN3IEn.js +0 -118
- package/dist/collect-Bw2Jdq1q.js +0 -2
- package/dist/collect-CQx4hX4N.js +0 -83
- package/dist/commands-Cpip4ULx.js +0 -97
- package/dist/config-DLt6BvV7.js +0 -36
- package/dist/diff-Cnghh_Ip.js +0 -48
- package/dist/doctor-CuVJvhV_.js +0 -53
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-fwfXN01n.js +0 -1016
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-DgM7w96K.d.ts +0 -6
- package/dist/index-Dz7didpC.d.ts +0 -201
- package/dist/load-B_shHrmd.js +0 -2
- package/dist/manifest-BngWKryL.js +0 -770
- package/dist/may-use-BOn_dR_w.js +0 -78
- package/dist/openapi-DcQ1Kg40.js +0 -164
- package/dist/ownership-BgnbOJFT.js +0 -851
- package/dist/permdock-L26udHSk.js +0 -3646
- package/dist/powersync-BFSbSElQ.js +0 -62
- package/dist/powersync-DCDgZgfZ.js +0 -2
- package/dist/rls-55DQTuf5.js +0 -250
- package/dist/run-DMcNW_8T.js +0 -174
- package/dist/server-ZYEHtNHS.js +0 -268
- package/dist/sink-BTtmfPnE.js +0 -141
- package/dist/sink-CPN4zLfs.d.ts +0 -104
- package/dist/skills-Dle4ZoLF.js +0 -56
- package/dist/snapshot-Dc9CHPME.js +0 -1078
- package/dist/src-Bb7no-hS.js +0 -639
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-Dbqr141s.js +0 -83
- package/dist/supabase-hook-BULg7Ut_.js +0 -2
- package/dist/thenable-QSmvt-vZ.js +0 -65
- package/dist/types-C0dee0Qf.d.ts +0 -197
- package/dist/types-DvupZE0w.d.ts +0 -9
- package/dist/usage-4G6t643F.js +0 -42
- package/dist/usage-iFLJ0-rr.js +0 -2
- package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
- package/dist/watch-C8TpsAl4.js +0 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as
|
|
1
|
+
import { $n as Delegation, Q as LimitStore, Rt as Instant, Zn as CustomRole, ir as Subject, it as RelationSource, nr as Membership, qn as Actor, rr as Principal } from "../../policy-types-DzwivBgR.js";
|
|
2
|
+
import { w as Permission } from "../../vocabulary-D6lPdb4Z.js";
|
|
3
|
+
import { i as PermDockOptions } from "../../permdock-D7eeLJER.js";
|
|
4
|
+
import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-oEWfl-kl.js";
|
|
5
|
+
import { n as saasPolicy, t as SAAS_API_KEY_LIMIT } from "../../policy-Czo4n3Hs.js";
|
|
5
6
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
7
|
//#region src/testing/saas/schema.d.ts
|
|
7
8
|
type FieldKind = "string" | "boolean" | "nullable-string";
|
|
@@ -121,8 +122,8 @@ type SaasTokenOptions = {
|
|
|
121
122
|
/** Claim memberships; `false` omits the claim (database mode). Defaults to the seed. */
|
|
122
123
|
readonly memberships?: readonly Membership[] | false;
|
|
123
124
|
readonly ttl?: number;
|
|
124
|
-
/**
|
|
125
|
-
readonly now?:
|
|
125
|
+
/** The instant used for `iat`; defaults to the current time. */
|
|
126
|
+
readonly now?: Instant;
|
|
126
127
|
readonly issuer?: string;
|
|
127
128
|
readonly audience?: string;
|
|
128
129
|
readonly claims?: Readonly<Record<string, unknown>>;
|
|
@@ -134,9 +135,9 @@ export declare function signSaasToken(sub: string, options?: SaasTokenOptions):
|
|
|
134
135
|
* and returns its `sub`, or `null`; never throws. Identity only: memberships
|
|
135
136
|
* and plans come from the seed, never from the token.
|
|
136
137
|
*/
|
|
137
|
-
export declare function verifySaasToken(token: string | null | undefined, now?:
|
|
138
|
+
export declare function verifySaasToken(token: string | null | undefined, now?: Instant): Promise<string | null>;
|
|
138
139
|
/** `verifySaasToken` plus the token's `exp` as `expiresAt` (epoch seconds). */
|
|
139
|
-
export declare function verifySaasSession(token: string | null | undefined,
|
|
140
|
+
export declare function verifySaasSession(token: string | null | undefined, at?: Instant): Promise<{
|
|
140
141
|
readonly sub: string;
|
|
141
142
|
readonly expiresAt: number;
|
|
142
143
|
} | null>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as saasPlans, c as rowSchema, i as saasPermissions, n as SaasFolderSchema, o as saasRoles, r as SaasProjectSchema, s as saasTenantRoleNames, t as SaasDocSchema } from "../../permissions-
|
|
2
|
-
import { C as saasOrg, D as saasUsers, E as saasSeed, O as SAAS_API_KEY_LIMIT, S as saasMemberships, T as saasRelations, _ as verifySaasToken, a as saasProject, b as SAAS_EXPIRED_AT, c as saasUser, d as saasIssuer, f as saasJwks, g as verifySaasSession, h as signSaasToken, i as saasLimitStore, k as saasPolicy, l as SAAS_TOKEN_TTL_SECONDS, m as saasPublicJwk, n as saasFolder, o as saasScenarioOptions, p as saasPrivateJwk, r as saasFolderScenarios, s as saasScenarios, t as saasDoc, u as saasAudience, v as saasSchemaSql, w as saasPrincipal, x as saasCustomRoles, y as saasSeedSql } from "../../saas-
|
|
1
|
+
import { a as saasPlans, c as rowSchema, i as saasPermissions, n as SaasFolderSchema, o as saasRoles, r as SaasProjectSchema, s as saasTenantRoleNames, t as SaasDocSchema } from "../../permissions-CZKiUfFM.js";
|
|
2
|
+
import { C as saasOrg, D as saasUsers, E as saasSeed, O as SAAS_API_KEY_LIMIT, S as saasMemberships, T as saasRelations, _ as verifySaasToken, a as saasProject, b as SAAS_EXPIRED_AT, c as saasUser, d as saasIssuer, f as saasJwks, g as verifySaasSession, h as signSaasToken, i as saasLimitStore, k as saasPolicy, l as SAAS_TOKEN_TTL_SECONDS, m as saasPublicJwk, n as saasFolder, o as saasScenarioOptions, p as saasPrivateJwk, r as saasFolderScenarios, s as saasScenarios, t as saasDoc, u as saasAudience, v as saasSchemaSql, w as saasPrincipal, x as saasCustomRoles, y as saasSeedSql } from "../../saas-FO-Q8oj0.js";
|
|
3
3
|
export { SAAS_API_KEY_LIMIT, SAAS_EXPIRED_AT, SAAS_TOKEN_TTL_SECONDS, SaasDocSchema, SaasFolderSchema, SaasProjectSchema, rowSchema, saasAudience, saasCustomRoles, saasDoc, saasFolder, saasFolderScenarios, saasIssuer, saasJwks, saasLimitStore, saasMemberships, saasOrg, saasPermissions, saasPlans, saasPolicy, saasPrincipal, saasPrivateJwk, saasProject, saasPublicJwk, saasRelations, saasRoles, saasScenarioOptions, saasScenarios, saasSchemaSql, saasSeed, saasSeedSql, saasTenantRoleNames, saasUser, saasUsers, signSaasToken, verifySaasSession, verifySaasToken };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-
|
|
1
|
+
import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-oEWfl-kl.js";
|
|
2
2
|
export { SaasDoc, SaasDocSchema, SaasFolder, SaasFolderSchema, SaasProject, SaasProjectSchema, saasPermissions, saasPlans, saasRoles, saasTenantRoleNames };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { SaasDocSchema, SaasFolderSchema, SaasProjectSchema, saasPermissions, saasPlans, saasRoles, saasTenantRoleNames };
|
|
1
|
+
export { t as SaasDocSchema, n as SaasFolderSchema, r as SaasProjectSchema, i as saasPermissions, a as saasPlans, o as saasRoles, s as saasTenantRoleNames } from "../../permissions-CZKiUfFM.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/cli/shared/text.ts
|
|
2
|
+
/** The text before the first `separator`, or all of it when there is none. */
|
|
3
|
+
function beforeFirst(text, separator) {
|
|
4
|
+
const at = text.indexOf(separator);
|
|
5
|
+
return at === -1 ? text : text.slice(0, at);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { beforeFirst as t };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
+
//#region src/core/thenable.ts
|
|
3
|
+
function isThenable(value) {
|
|
4
|
+
return value !== null && typeof value === "object" && "then" in value && typeof value.then === "function";
|
|
5
|
+
}
|
|
6
|
+
/** Settles a promise nobody awaits, so its rejection is not reported as unhandled. */
|
|
7
|
+
function ignoreRejection(value) {
|
|
8
|
+
Promise.resolve(value).then(void 0, () => void 0);
|
|
9
|
+
}
|
|
10
|
+
/** Runs a Standard Schema that must answer synchronously; an asynchronous answer fails. */
|
|
11
|
+
function validateSync(schema, value) {
|
|
12
|
+
const result = schema["~standard"].validate(value);
|
|
13
|
+
if (isThenable(result)) {
|
|
14
|
+
ignoreRejection(result);
|
|
15
|
+
return { ok: false };
|
|
16
|
+
}
|
|
17
|
+
return result.issues === void 0 ? {
|
|
18
|
+
ok: true,
|
|
19
|
+
value: result.value
|
|
20
|
+
} : {
|
|
21
|
+
ok: false,
|
|
22
|
+
issues: result.issues
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** `validateSync` for a schema whose output must be an object; anything else is `undefined`. */
|
|
26
|
+
function validateRecord(schema, value) {
|
|
27
|
+
const validated = validateSync(schema, value);
|
|
28
|
+
return validated.ok && isRecord(validated.value) ? validated.value : void 0;
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { validateSync as i, isThenable as n, validateRecord as r, ignoreRejection as t };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//#region src/core/time.ts
|
|
2
|
+
/** RFC 3339 `date-time` in UTC or with an offset; fractional seconds optional. */
|
|
3
|
+
const RFC3339_PATTERN = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$";
|
|
4
|
+
const RFC3339 = /* @__PURE__ */ new RegExp(RFC3339_PATTERN, "u");
|
|
5
|
+
function isRfc3339(value) {
|
|
6
|
+
return typeof value === "string" && RFC3339.test(value) && Number.isFinite(Date.parse(value));
|
|
7
|
+
}
|
|
8
|
+
/** Seconds since the epoch as RFC 3339 in UTC. */
|
|
9
|
+
function rfc3339(seconds) {
|
|
10
|
+
return (/* @__PURE__ */ new Date(seconds * 1e3)).toISOString();
|
|
11
|
+
}
|
|
12
|
+
/** Milliseconds since the epoch as RFC 3339 in UTC, milliseconds kept; throws a `RangeError` for a value outside the `Date` range. */
|
|
13
|
+
function isoAt(millis) {
|
|
14
|
+
return new Date(millis).toISOString();
|
|
15
|
+
}
|
|
16
|
+
/** RFC 3339 in UTC of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
|
|
17
|
+
function isoNow(now) {
|
|
18
|
+
return dateAt(now).toISOString();
|
|
19
|
+
}
|
|
20
|
+
/** Whole seconds since the epoch of an RFC 3339 instant; `undefined` for anything else. */
|
|
21
|
+
function secondsOf(value) {
|
|
22
|
+
return isRfc3339(value) ? Math.floor(Date.parse(value) / 1e3) : void 0;
|
|
23
|
+
}
|
|
24
|
+
/** Whole seconds since the epoch of an RFC 3339 string or an `Instant`; `undefined` for anything else, Unix seconds included. */
|
|
25
|
+
function instantOf(value) {
|
|
26
|
+
if (typeof value === "string") return secondsOf(value);
|
|
27
|
+
if (typeof value === "object" && value !== null && "epochMilliseconds" in value && typeof value.epochMilliseconds === "number" && Number.isFinite(value.epochMilliseconds)) return Math.floor(value.epochMilliseconds / 1e3);
|
|
28
|
+
}
|
|
29
|
+
/** A duration: a whole number of seconds above zero, else `undefined`. */
|
|
30
|
+
function durationOf(value) {
|
|
31
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : void 0;
|
|
32
|
+
}
|
|
33
|
+
/** Throws at definition time unless `value` is a whole number of seconds above zero. */
|
|
34
|
+
function assertDuration(value, label) {
|
|
35
|
+
if (durationOf(value) === void 0) throw new Error(`PermDock: ${label} must be a whole number of seconds above 0, got ${JSON.stringify(value) ?? String(value)}`);
|
|
36
|
+
}
|
|
37
|
+
/** Whole seconds since the epoch of `now`, or of the clock when absent. */
|
|
38
|
+
function nowSeconds(now) {
|
|
39
|
+
return Math.floor(nowMillis(now) / 1e3);
|
|
40
|
+
}
|
|
41
|
+
/** The `validation` denial detail for a `now` option that is not an `Instant`. */
|
|
42
|
+
const INVALID_NOW = Object.freeze({
|
|
43
|
+
field: "now",
|
|
44
|
+
message: "now must be an Instant ({ epochMilliseconds }), such as a Temporal.Instant"
|
|
45
|
+
});
|
|
46
|
+
/** The `Date` of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
|
|
47
|
+
function dateAt(now) {
|
|
48
|
+
const millis = nowMillis(now);
|
|
49
|
+
if (!Number.isFinite(millis)) throw new RangeError(`PermDock: ${INVALID_NOW.message}`);
|
|
50
|
+
return new Date(millis);
|
|
51
|
+
}
|
|
52
|
+
/** Whole seconds since the epoch of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
|
|
53
|
+
function secondsAt(now) {
|
|
54
|
+
return Math.floor(dateAt(now).getTime() / 1e3);
|
|
55
|
+
}
|
|
56
|
+
/** The instant `seconds` after the epoch. */
|
|
57
|
+
function instantAt(seconds) {
|
|
58
|
+
return { epochMilliseconds: seconds * 1e3 };
|
|
59
|
+
}
|
|
60
|
+
/** Seconds since the epoch of `now`, fraction kept, or of the clock when absent. */
|
|
61
|
+
function epochSeconds(now) {
|
|
62
|
+
return nowMillis(now) / 1e3;
|
|
63
|
+
}
|
|
64
|
+
/** Milliseconds since the epoch of `now`, or of the clock when absent; `NaN` for a `now` that is not an `Instant`. */
|
|
65
|
+
function nowMillis(now) {
|
|
66
|
+
if (now === void 0) return Date.now();
|
|
67
|
+
const millis = typeof now === "object" && now !== null ? now.epochMilliseconds : void 0;
|
|
68
|
+
return typeof millis === "number" ? millis : NaN;
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { durationOf as a, instantOf as c, isoNow as d, nowMillis as f, secondsOf as g, secondsAt as h, dateAt as i, isRfc3339 as l, rfc3339 as m, RFC3339_PATTERN as n, epochSeconds as o, nowSeconds as p, assertDuration as r, instantAt as s, INVALID_NOW as t, isoAt as u };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as canonicalJson } from "./canonical-json-
|
|
2
|
-
import {
|
|
1
|
+
import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
|
|
2
|
+
import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
|
|
3
3
|
//#region src/core/token.ts
|
|
4
4
|
/**
|
|
5
5
|
* Only stable identity goes into the token, so refreshing a session (new
|
|
@@ -22,7 +22,16 @@ function versionOf(row, field) {
|
|
|
22
22
|
}
|
|
23
23
|
/** The digest that binds a token to the call's data when no row id does. */
|
|
24
24
|
function payloadDigest(data) {
|
|
25
|
-
return
|
|
25
|
+
return sha256Digest(canonicalJson(data));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The payload a decision token binds: the call's `args` when the caller
|
|
29
|
+
* passes them (an agent or MCP tool call, row or not), otherwise the data of
|
|
30
|
+
* a call without a row id. `undefined` binds nothing beyond the row id.
|
|
31
|
+
*/
|
|
32
|
+
function tokenPayload(resourceId, data, args) {
|
|
33
|
+
if (args !== void 0) return payloadDigest(args);
|
|
34
|
+
return resourceId === "*" && data !== void 0 ? payloadDigest(data) : void 0;
|
|
26
35
|
}
|
|
27
36
|
/**
|
|
28
37
|
* `version` is set only for an approval that goes stale on a resource
|
|
@@ -32,7 +41,7 @@ function payloadDigest(data) {
|
|
|
32
41
|
* others.
|
|
33
42
|
*/
|
|
34
43
|
function decisionToken(input) {
|
|
35
|
-
const payload =
|
|
44
|
+
const payload = canonicalJson({
|
|
36
45
|
key: input.key,
|
|
37
46
|
resourceId: input.resourceId,
|
|
38
47
|
principal: principalIdentity(input.principal),
|
|
@@ -44,7 +53,7 @@ function decisionToken(input) {
|
|
|
44
53
|
...input.version === void 0 ? {} : { version: input.version },
|
|
45
54
|
...input.payload === void 0 ? {} : { payload: input.payload }
|
|
46
55
|
});
|
|
47
|
-
return
|
|
56
|
+
return sha256Digest(payload);
|
|
48
57
|
}
|
|
49
58
|
//#endregion
|
|
50
|
-
export { payloadDigest as n,
|
|
59
|
+
export { versionOf as i, payloadDigest as n, tokenPayload as r, decisionToken as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as describe } from "./describe-
|
|
1
|
+
import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
|
|
2
|
+
import { t as describe } from "./describe-BybMRY7A.js";
|
|
3
3
|
//#region src/core/tool-refusal.ts
|
|
4
4
|
function deniedToolRefusal(decision, permission, resource) {
|
|
5
5
|
const alternatives = decision.alternatives.map((leaf) => leaf.key);
|
package/dist/trpc/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
1
|
+
import { T as Policy, rr as Principal } from "../policy-types-DzwivBgR.js";
|
|
2
|
+
import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
|
|
3
|
+
import { r as PermDock } from "../permdock-D7eeLJER.js";
|
|
4
|
+
import { n as RevocationFeed } from "../revocations-R07lFBnX.js";
|
|
5
|
+
import { D as ConnectionOptions, T as Connection, i as OpenApiHooks } from "../server-types-BLd4MnBX.js";
|
|
6
|
+
import { t as ServerAdapterOptions } from "../bind--9EFVYWF.js";
|
|
7
|
+
import { t as StreamProtectOptions } from "../stream-7-xmnf3U.js";
|
|
7
8
|
import { AnyTRPCMiddlewareFunction } from "@trpc/server";
|
|
8
9
|
//#region src/trpc/create.d.ts
|
|
9
10
|
type TrpcMiddlewareOpts<TCtx = object, TInput = unknown> = {
|
|
@@ -33,11 +34,13 @@ type TrpcOpenApiHooks = {
|
|
|
33
34
|
readonly securitySchemes: OpenApiHooks["securitySchemes"];
|
|
34
35
|
};
|
|
35
36
|
type TrpcPermDock<TCtx = object> = {
|
|
36
|
-
|
|
37
|
-
readonly
|
|
37
|
+
/** The `PermDock` for one procedure call, for code the middleware does not run before. */
|
|
38
|
+
readonly getPermDock: (opts: TrpcMiddlewareOpts<TCtx>) => Promise<PermDock>;
|
|
39
|
+
readonly middleware: () => TrpcMiddleware;
|
|
40
|
+
readonly protect: (permission: Permission | null, data?: (opts: TrpcMiddlewareOpts<TCtx>) => unknown, protectOptions?: StreamProtectOptions) => TrpcMiddleware;
|
|
38
41
|
/** A long-lived connection for the request behind `ctx`. */
|
|
39
42
|
readonly connection: (opts: TrpcMiddlewareOpts<TCtx>, connectionOptions?: ConnectionOptions) => Promise<Connection>;
|
|
40
|
-
readonly permdockHandler: (request: Request) => Promise<Response>;
|
|
43
|
+
readonly permdockHandler: () => (request: Request) => Promise<Response>;
|
|
41
44
|
readonly openapi: TrpcOpenApiHooks;
|
|
42
45
|
readonly errorFormatter: <TShape extends {
|
|
43
46
|
readonly data: object;
|
package/dist/trpc/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { o as problemMessage } from "../http-BBoKefeS.js";
|
|
2
|
-
import { t as problemFromError } from "../map-error-
|
|
3
|
-
import { n as attached } from "../bind-
|
|
4
|
-
import {
|
|
5
|
-
import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-
|
|
2
|
+
import { t as problemFromError } from "../map-error-TCAdw-eW.js";
|
|
3
|
+
import { n as attached } from "../bind-CZzhx-Vj.js";
|
|
4
|
+
import { i as isAsyncIterable, o as reloadAfter } from "../stream-CvdUS9V1.js";
|
|
5
|
+
import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-aPyNi6tA.js";
|
|
6
6
|
import { TRPCError, isTrackedEnvelope } from "@trpc/server";
|
|
7
7
|
//#region src/trpc/create.ts
|
|
8
8
|
const PROBLEM = Symbol.for("permdock.problem");
|
|
@@ -58,9 +58,10 @@ function errorFormatter(opts) {
|
|
|
58
58
|
}
|
|
59
59
|
function createPermDock(policy, options) {
|
|
60
60
|
const { kernel, bind, attach, scopeOf, connection, evaluate, guard: runGuard } = bindRpcKernel(policy, options, "trpc", (opts) => opts.ctx, (opts) => opts.path);
|
|
61
|
-
const
|
|
61
|
+
const getPermDock = async (opts) => kernel.getPermDock(bind(opts), await scopeOf(opts));
|
|
62
|
+
const middleware = () => (async (opts) => {
|
|
62
63
|
const request = bind(opts);
|
|
63
|
-
const instance = await attached(async () => kernel.
|
|
64
|
+
const instance = await attached(async () => kernel.getPermDock(request, await scopeOf(opts)));
|
|
64
65
|
if (!instance.ok) return throwTrpcError(instance.response);
|
|
65
66
|
const nextCtx = {
|
|
66
67
|
...opts.ctx,
|
|
@@ -70,18 +71,18 @@ function createPermDock(policy, options) {
|
|
|
70
71
|
return mapDownstream(await opts.next({ ctx: nextCtx }));
|
|
71
72
|
});
|
|
72
73
|
/** Wraps a subscription's iterable so revocation ends it and unreadable items drop. */
|
|
73
|
-
const guardSubscription = async (result, opts, permission,
|
|
74
|
+
const guardSubscription = async (result, opts, permission, data, protectOptions) => {
|
|
74
75
|
if (result === null || typeof result !== "object" || result.ok !== true || !isAsyncIterable(result.data)) return result;
|
|
75
76
|
return {
|
|
76
77
|
...result,
|
|
77
|
-
data: await guardStream(result.data, (connectionOptions) => connection(opts, connectionOptions), permission,
|
|
78
|
+
data: await guardStream(result.data, (connectionOptions) => connection(opts, connectionOptions), permission, data, protectOptions, {
|
|
78
79
|
unwrap: (item) => isTrackedEnvelope(item) ? item[1] : item,
|
|
79
80
|
onRevoked: trpcErrorFrom
|
|
80
81
|
})
|
|
81
82
|
};
|
|
82
83
|
};
|
|
83
|
-
const protect = (permission,
|
|
84
|
-
const { request, guard } = await runGuard(permission,
|
|
84
|
+
const protect = (permission, data, protectOptions) => (async (opts) => {
|
|
85
|
+
const { request, guard } = await runGuard(permission, data, opts, protectOptions);
|
|
85
86
|
if (guard.ok) {
|
|
86
87
|
const nextCtx = {
|
|
87
88
|
...opts.ctx,
|
|
@@ -89,11 +90,11 @@ function createPermDock(policy, options) {
|
|
|
89
90
|
permdockData: guard.data
|
|
90
91
|
};
|
|
91
92
|
attach(nextCtx, request);
|
|
92
|
-
return guardSubscription(await mapDownstream(await opts.next({ ctx: nextCtx })), opts, permission,
|
|
93
|
+
return guardSubscription(await mapDownstream(await opts.next({ ctx: nextCtx })), opts, permission, data === void 0 ? void 0 : reloadAfter(guard.data, () => data(opts)), protectOptions);
|
|
93
94
|
}
|
|
94
95
|
return throwTrpcError(guard.response);
|
|
95
96
|
});
|
|
96
|
-
const
|
|
97
|
+
const handler = (request) => {
|
|
97
98
|
return evaluate(request, {
|
|
98
99
|
ctx: { req: request },
|
|
99
100
|
path: "permdock",
|
|
@@ -103,10 +104,11 @@ function createPermDock(policy, options) {
|
|
|
103
104
|
};
|
|
104
105
|
const kernelOpenApi = kernel.openapi;
|
|
105
106
|
return {
|
|
106
|
-
|
|
107
|
+
getPermDock,
|
|
108
|
+
middleware,
|
|
107
109
|
protect,
|
|
108
110
|
connection,
|
|
109
|
-
permdockHandler,
|
|
111
|
+
permdockHandler: () => handler,
|
|
110
112
|
openapi: {
|
|
111
113
|
security: (permission) => ({ openapi: {
|
|
112
114
|
protect: true,
|
|
@@ -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-CdlxsYQh.js";
|
|
2
|
+
import { o as SqlMembershipSource } from "./sources-BV9j0DeZ.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`. */
|
|
@@ -432,6 +454,9 @@ type RlsActions = Readonly<Record<string, "select" | "insert" | "update" | "dele
|
|
|
432
454
|
type RlsMigrateHelper = {
|
|
433
455
|
readonly form: "ids" | "row" | "membership";
|
|
434
456
|
readonly scope: string;
|
|
457
|
+
} | {
|
|
458
|
+
readonly form: "role";
|
|
459
|
+
readonly scope: string;
|
|
435
460
|
} | {
|
|
436
461
|
readonly form: "scoped";
|
|
437
462
|
} | {
|
|
@@ -500,7 +525,7 @@ type RlsStorage = {
|
|
|
500
525
|
};
|
|
501
526
|
/** `permdock supabase hook generate` input. */
|
|
502
527
|
type SupabaseHookConfig = {
|
|
503
|
-
/** The same `
|
|
528
|
+
/** The same `tableMembershipSource` / `junctionMembershipSource` sources the app passes as `memberships`. */
|
|
504
529
|
readonly memberships: readonly SqlMembershipSource[];
|
|
505
530
|
/** Schema of the hook and the version table. Default `rls.schema`, else `permdock`. */
|
|
506
531
|
readonly schema?: string;
|
|
@@ -565,8 +590,21 @@ type SupabaseHookConfig = {
|
|
|
565
590
|
readonly suspension?: RlsSuspension;
|
|
566
591
|
readonly out?: string;
|
|
567
592
|
};
|
|
593
|
+
/**
|
|
594
|
+
* How the project turns SQL into Supabase migrations: `'pg-delta'`
|
|
595
|
+
* (Declarative Schemas 2.0, `supabase db schema declarative sync`),
|
|
596
|
+
* `'migra'` (declarative schemas on `supabase db diff`) or `'migrations'`
|
|
597
|
+
* (hand-written migrations, no declarative schemas).
|
|
598
|
+
*/
|
|
599
|
+
type SupabaseSchemas = "pg-delta" | "migra" | "migrations";
|
|
568
600
|
type SupabaseConfig = {
|
|
569
601
|
readonly hook?: SupabaseHookConfig;
|
|
602
|
+
/**
|
|
603
|
+
* The schema workflow `rls generate --split`, `supabase hook generate` and
|
|
604
|
+
* doctor follow. Default: `'migra'` when `supabase/config.toml` sets
|
|
605
|
+
* `[experimental.pgdelta] enabled = false`, else `'pg-delta'`.
|
|
606
|
+
*/
|
|
607
|
+
readonly schemas?: SupabaseSchemas;
|
|
570
608
|
};
|
|
571
609
|
type DoctorConfig = {
|
|
572
610
|
/**
|
|
@@ -578,7 +616,7 @@ type DoctorConfig = {
|
|
|
578
616
|
readonly srcPath?: readonly string[];
|
|
579
617
|
readonly sensitiveActions?: readonly string[];
|
|
580
618
|
readonly memberships?: string;
|
|
581
|
-
/** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `
|
|
619
|
+
/** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `memorySettingsSource` input) for PD029. */
|
|
582
620
|
readonly credentials?: string;
|
|
583
621
|
/** Globs or directories whose files are client entries for PD001, for frameworks with no `'use client'` convention. */
|
|
584
622
|
readonly clientEntries?: readonly string[];
|
|
@@ -590,6 +628,8 @@ type DoctorConfig = {
|
|
|
590
628
|
type PermDockConfig = {
|
|
591
629
|
readonly permissions?: string;
|
|
592
630
|
readonly policy?: string;
|
|
631
|
+
/** A module exporting the `defineOperations` map as `operations` or default; `collect` writes it to the catalog's `operations`. */
|
|
632
|
+
readonly operations?: string;
|
|
593
633
|
readonly collect?: CollectConfig;
|
|
594
634
|
readonly catalog?: CatalogConfig;
|
|
595
635
|
readonly openapi?: {
|
|
@@ -608,7 +648,7 @@ type PowerSyncConfig = {
|
|
|
608
648
|
readonly resources?: readonly string[];
|
|
609
649
|
/** The action whose grants decide which rows sync; default `read`. */
|
|
610
650
|
readonly action?: string;
|
|
611
|
-
/** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `
|
|
651
|
+
/** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `powerSyncSource`; none by default. */
|
|
612
652
|
readonly manifest?: string;
|
|
613
653
|
};
|
|
614
654
|
type CliIo = {
|
|
@@ -617,13 +657,23 @@ type CliIo = {
|
|
|
617
657
|
readonly now?: () => Date;
|
|
618
658
|
readonly fetch?: typeof fetch;
|
|
619
659
|
readonly env?: Readonly<Record<string, string | undefined>>;
|
|
620
|
-
/** Styled
|
|
660
|
+
/** Styled stdout; `--no-color` turns it off. Unset is plain. */
|
|
621
661
|
readonly color?: boolean;
|
|
662
|
+
/** Styled stderr, decided for that stream on its own. Unset is plain. */
|
|
663
|
+
readonly errColor?: boolean;
|
|
622
664
|
/** A person at a terminal: commands may prompt. Unset never prompts. */
|
|
623
665
|
readonly interactive?: boolean;
|
|
666
|
+
/** stdout is a terminal; agent detection reads it. Unset is a pipe. */
|
|
667
|
+
readonly stdoutIsTty?: boolean;
|
|
668
|
+
/** stderr is a terminal: progress draws a spinner. Unset prints lines. */
|
|
669
|
+
readonly stderrIsTty?: boolean;
|
|
670
|
+
/** Reads all of stdin, for `--*-stdin` secrets. Unset reads nothing. */
|
|
671
|
+
readonly readStdin?: () => Promise<string>;
|
|
672
|
+
/** Aborted on SIGINT or SIGTERM. */
|
|
673
|
+
readonly signal?: AbortSignal;
|
|
624
674
|
};
|
|
625
675
|
type RunResult = {
|
|
626
|
-
readonly code:
|
|
676
|
+
readonly code: ExitCode;
|
|
627
677
|
readonly stdout: string;
|
|
628
678
|
readonly stderr: string;
|
|
629
679
|
};
|