permdock 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
- package/dist/a2a/index.d.ts +8 -6
- package/dist/a2a/index.js +21 -31
- package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
- package/dist/adoption-scan-B4R5fnMU.js +107 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.js +1 -0
- package/dist/ai-sdk/index.d.ts +18 -23
- package/dist/ai-sdk/index.js +38 -21
- package/dist/app-data-MuyzVqX8.js +60 -0
- package/dist/approval-header-CJACtHkv.js +23 -0
- package/dist/approval-prompt-Dg5LeAcT.js +62 -0
- package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
- package/dist/approvals/index.d.ts +5 -3
- package/dist/approvals/index.js +8 -5
- package/dist/approvals-DJ6Yd5z1.js +995 -0
- package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
- package/dist/arazzo-B6lebmiQ.js +36 -0
- package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
- package/dist/args-IIolxxKA.js +197 -0
- package/dist/astro/index.d.ts +43 -0
- package/dist/astro/index.js +27 -0
- package/dist/audience-Dg8XsRaO.js +55 -0
- package/dist/auth-DRLEizbL.js +178 -0
- package/dist/authzen/index.d.ts +26 -6
- package/dist/authzen/index.js +228 -75
- package/dist/automation-BMZPIVUM.d.ts +114 -0
- package/dist/automation-DVjOckjV.js +157 -0
- package/dist/better-auth/index.d.ts +8 -6
- package/dist/better-auth/index.js +11 -23
- package/dist/better-supabase/index.d.ts +438 -86
- package/dist/better-supabase/index.js +1027 -184
- package/dist/bind--9EFVYWF.d.ts +38 -0
- package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
- package/dist/body-CH5of8Ne.js +10 -0
- package/dist/body-text-QcXok_SI.js +52 -0
- package/dist/build-instance-BMnAudHn.js +52 -0
- package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
- package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
- package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
- package/dist/casbin-Cr7RLtA3.js +30 -0
- package/dist/casbin-Dyu2gnUD.js +234 -0
- package/dist/casl-64gpT-8x.js +24 -0
- package/dist/casl-DjEDhTCP.js +299 -0
- package/dist/catalog/index.d.ts +74 -2
- package/dist/catalog/index.js +51 -2
- package/dist/catalog-BECMPrwc.js +100 -0
- package/dist/catalog-DjhMYYCq.js +1 -0
- package/dist/catalog-R_A__RsH.js +52 -0
- package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
- package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +224 -0
- package/dist/chat-sdk/index.d.ts +87 -0
- package/dist/chat-sdk/index.js +197 -0
- package/dist/claims-map-7oQ3ue4X.js +13 -0
- package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
- package/dist/claude-agent/index.d.ts +7 -14
- package/dist/claude-agent/index.js +26 -30
- package/dist/clerk/index.d.ts +9 -8
- package/dist/clerk/index.js +15 -45
- package/dist/cli/bin.js +36 -17
- package/dist/cli/index.d.ts +20 -6
- package/dist/cli/index.js +164 -4
- package/dist/cloud/index.d.ts +102 -63
- package/dist/cloud/index.js +240 -347
- package/dist/cloud-CIoHNevm.js +87 -0
- package/dist/codemod-Bmj9dWMH.js +37 -0
- package/dist/codemod-Cxvvc70T.js +2084 -0
- package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
- package/dist/collect-DloHbDVa.js +55 -0
- package/dist/collect-FlXJlhus.js +1 -0
- package/dist/command-L8EstFNm.js +6 -0
- package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -2
- package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
- package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
- package/dist/completion-BqhRBJD8.js +143 -0
- package/dist/config-B46rm9sc.js +26 -0
- package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
- package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
- package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
- package/dist/constants-DcJABbLW.js +20 -0
- package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
- package/dist/convex/index.d.ts +11 -10
- package/dist/convex/index.js +18 -18
- package/dist/create-0VZ7Pdiu.d.ts +107 -0
- package/dist/create-BDS7wc3y.d.ts +138 -0
- package/dist/create-BFfm17UA.d.ts +110 -0
- package/dist/create-BWRSXgOF.js +403 -0
- package/dist/create-C3b4B5eF.js +130 -0
- package/dist/create-DnrmLnLW.js +323 -0
- package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
- package/dist/credentials-DPyHmYz5.js +74 -0
- package/dist/deciding-columns-Sq12mEA6.js +123 -0
- package/dist/delegation-DaXVdDhM.js +286 -0
- package/dist/delegation-input-FTxMK3ji.js +19 -0
- package/dist/delivery/index.d.ts +5 -0
- package/dist/delivery/index.js +5 -0
- package/dist/delivery-DCAgNyCn.js +499 -0
- package/dist/delivery-event-xX4obB8F.js +40 -0
- package/dist/denied-text-D8jDHgsl.d.ts +19 -0
- package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
- package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
- package/dist/device-BARQ8eYG.js +193 -0
- package/dist/diff-CxZo9pTq.js +37 -0
- package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
- package/dist/doctor-CxiwSfqH.js +44 -0
- package/dist/doctor-DFjUxf2f.js +2361 -0
- package/dist/drizzle/index.d.ts +5 -3
- package/dist/drizzle/index.js +6 -14
- package/dist/elysia/index.d.ts +16 -13
- package/dist/elysia/index.js +14 -13
- package/dist/env-DJZrPjRi.js +8 -0
- package/dist/errors-BDUwg2qC.js +27 -0
- package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
- package/dist/errors-BWXBMaKK.d.ts +11 -0
- package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
- package/dist/errors-CWTY6uih.js +143 -0
- package/dist/evaluate-_R8QkWaf.js +1732 -0
- package/dist/evaluations-16UqqQ6W.d.ts +32 -0
- package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
- package/dist/eve/index.d.ts +12 -16
- package/dist/eve/index.js +23 -29
- package/dist/event-time-CsegxXxB.js +23 -0
- package/dist/expiry-D4_YKRKD.js +52 -0
- package/dist/express/index.d.ts +13 -10
- package/dist/express/index.js +14 -12
- package/dist/fastify/index.d.ts +26 -13
- package/dist/fastify/index.js +17 -36
- package/dist/fetch-adapter-g0ypLkID.js +120 -0
- package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
- package/dist/fields-D9tPVUUS.js +203 -0
- package/dist/files-C5ZI27eV.js +124 -0
- package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
- package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
- package/dist/flags-C3DktBDY.js +86 -0
- package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
- package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
- package/dist/grantee-Cn1HyUsI.js +254 -0
- package/dist/grantee-conditions-CcXf8hMM.js +271 -0
- package/dist/grantee-match-DHArqY82.js +142 -0
- package/dist/h3/index.d.ts +37 -0
- package/dist/h3/index.js +35 -0
- package/dist/headers-BIjfMaoC.js +8 -0
- package/dist/headers-CIbDTUTK.d.ts +7 -0
- package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
- package/dist/hono/index.d.ts +12 -9
- package/dist/hono/index.js +14 -13
- package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
- package/dist/hosted-DBDX0M-P.d.ts +78 -0
- package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
- package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
- package/dist/http-DXJ37RDA.js +46 -0
- package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
- package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
- package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
- package/dist/index-BcHcPyIo.d.ts +110 -0
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-Chrs5fQ-.d.ts +210 -0
- package/dist/index-CxGUswIC.d.ts +431 -0
- package/dist/index-D8EovfsP.d.ts +91 -0
- package/dist/index-DOVf7RJv.d.ts +900 -0
- package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
- package/dist/index.d.ts +20 -14
- package/dist/index.js +33 -23
- package/dist/init-DeMYsnYJ.js +96 -0
- package/dist/init-GG6Jh8HD.js +95 -0
- package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
- package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
- package/dist/instant-BluqDvyS.js +19 -0
- package/dist/internals-Dk8A8fX3.js +17 -0
- package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
- package/dist/json-schema-CN_iLFH2.d.ts +40 -0
- package/dist/jwt/index.d.ts +18 -11
- package/dist/jwt/index.js +166 -145
- package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
- package/dist/kysely/index.d.ts +5 -3
- package/dist/kysely/index.js +6 -14
- package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
- package/dist/load-BxEtwlBS.js +1 -0
- package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
- package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
- package/dist/login-Dfe5RlYk.js +68 -0
- package/dist/login-imhuwvn3.js +254 -0
- package/dist/manifest-C8IzW3Do.js +42 -0
- package/dist/manifest-CtKR3GXL.js +370 -0
- package/dist/manifest-json-CAGzls-C.js +9 -0
- package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
- package/dist/manifest-schema-C0kK_8V0.js +399 -0
- package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
- package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
- package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
- package/dist/mcp/index.d.ts +36 -9
- package/dist/mcp/index.js +476 -448
- package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
- package/dist/nest/index.d.ts +12 -9
- package/dist/nest/index.js +20 -20
- package/dist/next/index.d.ts +40 -20
- package/dist/next/index.js +37 -39
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +10 -10
- package/dist/node/index.js +7 -9
- package/dist/ocsf-BFp-PZZA.js +126 -0
- package/dist/openai/index.d.ts +9 -16
- package/dist/openai/index.js +18 -25
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
- package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
- package/dist/openapi-ahr8rHu3.js +138 -0
- package/dist/operation-findings-DgATDpvh.js +36 -0
- package/dist/operations-CxybZErY.d.ts +59 -0
- package/dist/orpc/index.d.ts +13 -10
- package/dist/orpc/index.js +23 -20
- package/dist/otel/index.d.ts +3 -2
- package/dist/otel/index.js +53 -27
- package/dist/output-Dyw8fyPF.js +88 -0
- package/dist/output-files-B3IZJksC.js +1 -0
- package/dist/output-files-DhRBBE4n.js +138 -0
- package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
- package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
- package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
- package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
- package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
- package/dist/parse-request-D_tUXG6M.js +26 -0
- package/dist/paths-DXSHAMIa.js +42 -0
- package/dist/pdp/index.d.ts +7 -3
- package/dist/pdp/index.js +47 -29
- package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
- package/dist/peer-CRvC7Hg1.js +1 -0
- package/dist/permdock-B9JxkBwC.js +868 -0
- package/dist/permdock-D7eeLJER.d.ts +502 -0
- package/dist/permission-registry-Br4jSNVi.js +385 -0
- package/dist/permissions-B-wCP5ZC.js +30 -0
- package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
- package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
- package/dist/policies-CO1oOymN.js +295 -0
- package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
- package/dist/policy-DLZJ5gAp.js +399 -0
- package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
- package/dist/policy-module-CTlwMvLI.js +89 -0
- package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
- package/dist/postgrest-CW0IqC-U.js +566 -0
- package/dist/postgrest-NUqZT-RB.d.ts +100 -0
- package/dist/powersync-BHfuehf3.js +62 -0
- package/dist/powersync-CbzkqL_M.js +1 -0
- package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
- package/dist/preset/index.d.ts +146 -0
- package/dist/preset/index.js +1 -0
- package/dist/preset-DZdU0tne.js +1768 -0
- package/dist/principal-source-pHneukrx.js +103 -0
- package/dist/prisma/index.d.ts +6 -3
- package/dist/prisma/index.js +6 -12
- package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
- package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
- package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
- package/dist/problem-types-CJ2325SZ.js +5 -0
- package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
- package/dist/protected-DEPHc2xV.d.ts +38 -0
- package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
- package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
- package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
- package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
- package/dist/pull-BgIfno6w.js +256 -0
- package/dist/pull-ByOks_Tg.js +1 -0
- package/dist/push-CmFVBOeI.js +116 -0
- package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
- package/dist/pushed-policy-DobP7AHI.js +238 -0
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +6 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -2
- package/dist/react-native/index.d.ts +24 -63
- package/dist/react-native/index.js +45 -27
- package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
- package/dist/relation-walk-3OyDBF0S.js +186 -0
- package/dist/relations-BnCWnJGI.js +163 -0
- package/dist/renames-CGj7YwcQ.js +175 -0
- package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
- package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
- package/dist/request-context-BTRTG7OT.js +71 -0
- package/dist/request-context-C2_1lchh.d.ts +5 -0
- package/dist/request-schema-CMreVuFM.js +148 -0
- package/dist/resend/index.d.ts +126 -0
- package/dist/resend/index.js +379 -0
- package/dist/resource-relations-D_jw0BFx.js +243 -0
- package/dist/retire-CALjIQ7e.js +240 -0
- package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
- package/dist/rls-BA8an5Ap.js +336 -0
- package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
- package/dist/role-builder-CXbis5-X.js +623 -0
- package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
- package/dist/run-CNsApDpd.js +1 -0
- package/dist/run-DOfMtc9V.js +723 -0
- package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
- package/dist/run-ticket-sxFI6LAk.js +337 -0
- package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
- package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
- package/dist/scan-BOI5tJ-6.js +29 -0
- package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
- package/dist/schema-yLuBWWsh.js +130 -0
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +1 -2
- package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
- package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
- package/dist/server/index.d.ts +13 -134
- package/dist/server/index.js +13 -10
- package/dist/server-DqCT4CgZ.js +453 -0
- package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
- package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
- package/dist/shared-CD11nBbC.js +304 -0
- package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
- package/dist/signals-D3NcTKUS.js +32 -0
- package/dist/sink-BEZSlMS_.js +957 -0
- package/dist/sink-Bj_lDUDq.d.ts +225 -0
- package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
- package/dist/skills-CTYwkl44.js +51 -0
- package/dist/snapshot-CXUWfsNy.js +269 -0
- package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
- package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
- package/dist/solid/index.d.ts +24 -25
- package/dist/solid/index.js +41 -11
- package/dist/solid-start/index.d.ts +52 -0
- package/dist/solid-start/index.js +49 -0
- package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
- package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
- package/dist/sql-B5T1IL83.js +55 -0
- package/dist/src-DLfUWFAI.js +1851 -0
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +440 -106
- package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
- package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
- package/dist/storage-C2bWdvJH.js +132 -0
- package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
- package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
- package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
- package/dist/stores-ClZUgeoP.d.ts +30 -0
- package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
- package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
- package/dist/style-DiKWnAvn.js +1 -0
- package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
- package/dist/subject-BGoM5o8B.js +17 -0
- package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
- package/dist/supabase/index.d.ts +23 -106
- package/dist/supabase/index.js +5 -4
- package/dist/supabase/middleware.d.ts +13 -6
- package/dist/supabase/middleware.js +16 -11
- package/dist/supabase-9pqI57pW.js +92 -0
- package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
- package/dist/supabase-hook-CXcGpHqq.js +1 -0
- package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
- package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
- package/dist/support-session-C6xJQYut.js +158 -0
- package/dist/svelte/Protected.svelte +11 -4
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +26 -12
- package/dist/svelte/runtime.d.ts +10 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +7 -7
- package/dist/svelte/source.js +5 -5
- package/dist/sveltekit/index.d.ts +51 -0
- package/dist/sveltekit/index.js +27 -0
- package/dist/tanstack-start/index.d.ts +51 -0
- package/dist/tanstack-start/index.js +40 -0
- package/dist/target-Bw37TFNA.js +51 -0
- package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
- package/dist/terminal/index.d.ts +11 -9
- package/dist/terminal/index.js +36 -316
- package/dist/testing/index.d.ts +391 -106
- package/dist/testing/index.js +4574 -1286
- package/dist/testing/saas/index.d.ts +9 -8
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -2
- package/dist/text-BMFRfBqc.js +8 -0
- package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
- package/dist/thenable-yD7SabqG.js +31 -0
- package/dist/time-DkWjdL98.js +71 -0
- package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
- package/dist/tool-refusal-CMLN5xhn.js +41 -0
- package/dist/trpc/index.d.ts +12 -9
- package/dist/trpc/index.js +18 -17
- package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
- package/dist/types-BNORmDM8.d.ts +172 -0
- package/dist/types-BjV-fqcA.d.ts +57 -0
- package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
- package/dist/types-C8-KNsFf.d.ts +107 -0
- package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
- package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
- package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
- package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
- package/dist/types-DX0LaKTb.d.ts +157 -0
- package/dist/types-DiQjupG2.d.ts +332 -0
- package/dist/types-DqzsnlSA.js +67 -0
- package/dist/types-_sHy8BQf.d.ts +65 -0
- package/dist/types-fbZ7JEXr.d.ts +89 -0
- package/dist/types-tIgIeIKJ.d.ts +66 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CHOtwL19.js +1 -0
- package/dist/usage-DHtE8j4E.js +32 -0
- package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
- package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
- package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
- package/dist/validity-CZ7-y0Cj.js +79 -0
- package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
- package/dist/verify-DbCL9bnB.js +1770 -0
- package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
- package/dist/version-DXkYUISx.js +1 -0
- package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
- package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
- package/dist/vue/index.d.ts +25 -21
- package/dist/vue/index.js +25 -9
- package/dist/waiter-BGUtGYoU.js +67 -0
- package/dist/waiter-CKy4MQSY.d.ts +36 -0
- package/dist/watch-Cb-NcaUw.js +1 -0
- package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +13 -37
- package/dist/where-scope-Dv-WTP-w.js +306 -0
- package/dist/who-can-D0QoYbEb.js +364 -0
- package/dist/wire-delegation-Cv3W2eaM.js +36 -0
- package/dist/wire-denial-C7PaVYEM.js +27 -0
- package/dist/workflow/index.d.ts +5 -0
- package/dist/workflow/index.js +223 -0
- package/dist/workflow-sdk/index.d.ts +56 -0
- package/dist/workflow-sdk/index.js +78 -0
- package/dist/wrap-Bd1Tejur.d.ts +15 -0
- package/dist/wrap-gX61EtpB.js +27 -0
- package/package.json +140 -41
- package/schemas/access-event-v1.json +118 -0
- package/schemas/approval-request-v1.json +34 -1
- package/schemas/approval-signature-v1.json +94 -0
- package/schemas/automation-event-v1.json +113 -0
- package/schemas/capability-v1.json +84 -0
- package/schemas/catalog-event-v1.json +87 -0
- package/schemas/catalog-v1.json +129 -12
- package/schemas/cli-commands-v1.json +164 -0
- package/schemas/cli-result-v1.json +96 -0
- package/schemas/cloud-api-v1.json +5407 -0
- package/schemas/connector-v1.json +408 -0
- package/schemas/credential-event-v1.json +81 -0
- package/schemas/credential-v1.json +134 -0
- package/schemas/decision-event-v1.json +288 -0
- package/schemas/delivery-event-v1.json +117 -0
- package/schemas/directory-event-v1.json +85 -0
- package/schemas/evidence-export-v1.json +54 -0
- package/schemas/membership-event-v1.json +93 -0
- package/schemas/policy-v1.json +68 -0
- package/schemas/pushed-policy-v1.json +236 -0
- package/schemas/run-v1.json +162 -0
- package/schemas/snapshot-v1.json +138 -0
- package/schemas/supabase-claims-v1.json +4 -4
- package/schemas/supabase-manifest-v1.json +5 -1
- package/schemas/support-session-v1.json +111 -0
- package/skills/permdock/SKILL.md +16 -12
- package/skills/permdock-agents/SKILL.md +40 -23
- package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
- package/skills/permdock-agents/references/runtimes.md +22 -18
- package/skills/permdock-approvals/SKILL.md +29 -13
- package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
- package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +5 -5
- package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
- package/skills/permdock-data/SKILL.md +6 -6
- package/skills/permdock-data/references/queries-and-rls.md +13 -8
- package/skills/permdock-data/references/relationships.md +3 -3
- package/skills/permdock-tenancy/SKILL.md +20 -7
- package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
- package/skills/permdock-wire/SKILL.md +18 -12
- package/skills/permdock-wire/references/adapters.md +146 -50
- package/skills/permdock-wire/references/policy-options.md +15 -6
- package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
- package/dist/approvals-DbYAuNkG.js +0 -224
- package/dist/arazzo-C9chp3ST.js +0 -54
- package/dist/bind-C_ob3LKa.d.ts +0 -25
- package/dist/catalog-CRW5Mx_B.js +0 -2
- package/dist/catalog-CYj-mX2O.js +0 -48
- package/dist/catalog-DWF5cYqB.js +0 -55
- package/dist/cloud-CfwZ39Rl.js +0 -50
- package/dist/cloud-DWLXO2af.js +0 -118
- package/dist/collect-CHB22Sx4.js +0 -83
- package/dist/collect-DSWOk19R.js +0 -2
- package/dist/commands-BeaGNj_o.js +0 -97
- package/dist/config-ir40y8m0.js +0 -36
- package/dist/create-CMwIl-w2.js +0 -253
- package/dist/delegation-D8pUEuce.js +0 -103
- package/dist/diff-C9RDjjhs.js +0 -48
- package/dist/doctor-Djh6JDEk.js +0 -53
- package/dist/doctor-DvH0IQff.js +0 -1194
- package/dist/doctor-collect-CjdO0wQX.js +0 -665
- package/dist/duration-xK2jGFVc.js +0 -25
- package/dist/errors-CWfoNg9N.js +0 -47
- package/dist/errors-DRnGZHzF.js +0 -30
- package/dist/evaluation-items-CfCCejQd.js +0 -40
- package/dist/expiry-BoBJ8Tvc.js +0 -7
- package/dist/fields-BMl1RxoX.js +0 -26
- package/dist/grantee-Cv5Sogfv.js +0 -602
- package/dist/headers-BZSDieNT.js +0 -6
- package/dist/headers-Cf-zWvsO.d.ts +0 -6
- package/dist/ids-DC4V4CFu.js +0 -18
- package/dist/index-0nNqHspG.d.ts +0 -6
- package/dist/index-BNc7Wer_.d.ts +0 -483
- package/dist/index-C7Tw7MaW.d.ts +0 -201
- package/dist/instance-options-Dhhcnm3y.js +0 -22
- package/dist/load-DwJUafYN.js +0 -2
- package/dist/manifest-iaoBXHKc.js +0 -783
- package/dist/map-AcxK9o_D.js +0 -147
- package/dist/may-use-DndQ5tQ-.js +0 -77
- package/dist/openapi-CQTsgKoB.js +0 -164
- package/dist/permdock-CbgvLnuo.js +0 -3479
- package/dist/permissions-DVoF6dMt.js +0 -662
- package/dist/policy-xyWg7QdR.js +0 -1122
- package/dist/powersync-CrBX8hY6.js +0 -2
- package/dist/powersync-DE19b9dT.js +0 -62
- package/dist/protected-BdnIEFkY.d.ts +0 -27
- package/dist/protected-xAr24FEC.d.ts +0 -40
- package/dist/relations-cjOL01hZ.js +0 -505
- package/dist/rls-P-BeBx0n.js +0 -238
- package/dist/rls-graph-CHwx0V8q.js +0 -435
- package/dist/rls-ownership-DcYlZ09B.js +0 -843
- package/dist/rls-shared-Cewd_-zI.js +0 -495
- package/dist/rls-verify-CMv9H3wV.js +0 -746
- package/dist/run-BWc9qqvE.js +0 -174
- package/dist/server-DlZ28Oz5.js +0 -268
- package/dist/sink-B1fZzIMf.d.ts +0 -104
- package/dist/sink-Bd9PSyfq.js +0 -141
- package/dist/skills-C5CbhhpG.js +0 -56
- package/dist/snapshot-Enxd0n-s.js +0 -975
- package/dist/sql-xdg5f4Fi.js +0 -27
- package/dist/src-BDwEZWrZ.js +0 -568
- package/dist/store-jOBYpiXC.d.ts +0 -36
- package/dist/stores-C0IMQrGI.d.ts +0 -52
- package/dist/subject-C6dLxqHU.js +0 -24
- package/dist/supabase-config-Bj3iDH2I.js +0 -472
- package/dist/supabase-hook-gd3s8bxB.js +0 -2
- package/dist/supabase-s4o9s1O1.js +0 -83
- package/dist/thenable-okc2xDsj.js +0 -10
- package/dist/types-BnIEz1sU.d.ts +0 -48
- package/dist/types-Bvc4oWT6.d.ts +0 -9
- package/dist/types-CKNSyIf_.d.ts +0 -52
- package/dist/types-Cq_H8N_X.d.ts +0 -197
- package/dist/usage-B0YuTQRO.js +0 -42
- package/dist/usage-DorAJiU_.js +0 -2
- package/dist/vocabulary-DA8a8zif.d.ts +0 -56
- package/dist/watch-BwxLTYMZ.js +0 -2
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
+
import { i as idText } from "./expiry-D4_YKRKD.js";
|
|
3
|
+
import { n as isThenable } from "./thenable-yD7SabqG.js";
|
|
4
|
+
import { a as expandRelation } from "./resource-relations-D_jw0BFx.js";
|
|
5
|
+
//#region src/core/relations.ts
|
|
6
|
+
function isInstant(value) {
|
|
7
|
+
return value === void 0 || typeof value === "number" && Number.isFinite(value);
|
|
8
|
+
}
|
|
9
|
+
function asChain(value) {
|
|
10
|
+
if (!isRecord(value) || !Array.isArray(value["ancestors"])) return;
|
|
11
|
+
const ancestors = [];
|
|
12
|
+
for (const item of value["ancestors"]) {
|
|
13
|
+
if (!isRecord(item) || typeof item["id"] !== "string" || item["id"] === "") return;
|
|
14
|
+
ancestors.push(item["restricted"] === true ? {
|
|
15
|
+
id: item["id"],
|
|
16
|
+
restricted: true
|
|
17
|
+
} : { id: item["id"] });
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
ancestors,
|
|
21
|
+
...value["restricted"] === true ? { restricted: true } : {},
|
|
22
|
+
...value["truncated"] === true ? { truncated: true } : {}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function asRow(value) {
|
|
26
|
+
if (value === null || value === void 0) return { row: null };
|
|
27
|
+
return isRecord(value) ? { row: value } : void 0;
|
|
28
|
+
}
|
|
29
|
+
function asGroup(value) {
|
|
30
|
+
if (!isRecord(value) || typeof value["resource"] !== "string" || typeof value["id"] !== "string" || typeof value["relation"] !== "string" || value["id"] === "") return;
|
|
31
|
+
return {
|
|
32
|
+
resource: value["resource"],
|
|
33
|
+
id: value["id"],
|
|
34
|
+
relation: value["relation"]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function asHolders(value) {
|
|
38
|
+
if (!Array.isArray(value)) return;
|
|
39
|
+
const holders = [];
|
|
40
|
+
for (const item of value) {
|
|
41
|
+
if (!isRecord(item) || !isInstant(item["startsAt"]) || !isInstant(item["expiresAt"])) return;
|
|
42
|
+
const period = {
|
|
43
|
+
...item["startsAt"] === void 0 ? {} : { startsAt: item["startsAt"] },
|
|
44
|
+
...item["expiresAt"] === void 0 ? {} : { expiresAt: item["expiresAt"] }
|
|
45
|
+
};
|
|
46
|
+
if (isRecord(item["principal"]) && typeof item["principal"]["id"] === "string") {
|
|
47
|
+
holders.push({
|
|
48
|
+
principal: { id: item["principal"]["id"] },
|
|
49
|
+
...period
|
|
50
|
+
});
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const group = asGroup(item["group"]);
|
|
54
|
+
if (group === void 0) return;
|
|
55
|
+
holders.push({
|
|
56
|
+
group,
|
|
57
|
+
...period
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return holders;
|
|
61
|
+
}
|
|
62
|
+
function read(cache, key, call, validate) {
|
|
63
|
+
const entry = cache.get(key);
|
|
64
|
+
if (entry !== void 0) return entry.state === "ready" ? entry.value : entry.state;
|
|
65
|
+
if (call === void 0) return "failed";
|
|
66
|
+
const settle = (value) => {
|
|
67
|
+
const valid = validate(value);
|
|
68
|
+
cache.set(key, valid === void 0 ? { state: "failed" } : {
|
|
69
|
+
state: "ready",
|
|
70
|
+
value: valid
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
let result;
|
|
74
|
+
try {
|
|
75
|
+
result = call();
|
|
76
|
+
} catch {
|
|
77
|
+
cache.set(key, { state: "failed" });
|
|
78
|
+
return "failed";
|
|
79
|
+
}
|
|
80
|
+
if (isThenable(result)) {
|
|
81
|
+
const promise = Promise.resolve(result).then(settle, () => {
|
|
82
|
+
cache.set(key, { state: "failed" });
|
|
83
|
+
});
|
|
84
|
+
cache.set(key, {
|
|
85
|
+
state: "pending",
|
|
86
|
+
promise
|
|
87
|
+
});
|
|
88
|
+
return "pending";
|
|
89
|
+
}
|
|
90
|
+
settle(result);
|
|
91
|
+
const settled = cache.get(key);
|
|
92
|
+
return settled?.state === "ready" ? settled.value : "failed";
|
|
93
|
+
}
|
|
94
|
+
function relationReader(source, cache, resources) {
|
|
95
|
+
const concrete = (resource, id, relation) => read(cache, JSON.stringify([
|
|
96
|
+
"holders",
|
|
97
|
+
resource,
|
|
98
|
+
id,
|
|
99
|
+
relation
|
|
100
|
+
]), source === void 0 ? void 0 : () => source.related({
|
|
101
|
+
resource,
|
|
102
|
+
id,
|
|
103
|
+
relation
|
|
104
|
+
}), asHolders);
|
|
105
|
+
return {
|
|
106
|
+
available: source !== void 0,
|
|
107
|
+
row(query) {
|
|
108
|
+
const load = source?.row?.bind(source);
|
|
109
|
+
return read(cache, JSON.stringify([
|
|
110
|
+
"row",
|
|
111
|
+
query.resource,
|
|
112
|
+
query.id
|
|
113
|
+
]), load === void 0 ? void 0 : () => load({
|
|
114
|
+
resource: query.resource,
|
|
115
|
+
id: query.id
|
|
116
|
+
}), asRow);
|
|
117
|
+
},
|
|
118
|
+
chain(query) {
|
|
119
|
+
const through = query.through ?? "parent";
|
|
120
|
+
return read(cache, JSON.stringify([
|
|
121
|
+
"chain",
|
|
122
|
+
query.resource,
|
|
123
|
+
query.id,
|
|
124
|
+
query.depth,
|
|
125
|
+
through
|
|
126
|
+
]), source === void 0 ? void 0 : () => source.ancestors({
|
|
127
|
+
resource: query.resource,
|
|
128
|
+
id: query.id,
|
|
129
|
+
depth: query.depth,
|
|
130
|
+
through
|
|
131
|
+
}), asChain);
|
|
132
|
+
},
|
|
133
|
+
holders(query) {
|
|
134
|
+
const node = resources?.get(query.resource);
|
|
135
|
+
const names = node === void 0 ? [query.relation] : expandRelation(node, query.relation);
|
|
136
|
+
const out = [];
|
|
137
|
+
let unread;
|
|
138
|
+
for (const name of names) {
|
|
139
|
+
const answer = concrete(query.resource, query.id, name);
|
|
140
|
+
if (answer === "pending" || answer === "failed") {
|
|
141
|
+
unread = answer === "failed" || unread === "failed" ? "failed" : "pending";
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
for (const holder of answer) out.push({
|
|
145
|
+
...holder,
|
|
146
|
+
relation: name
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return unread ?? out;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/** The loads still in flight, for an instance that awaits them before deciding. */
|
|
154
|
+
function pendingRelations(cache) {
|
|
155
|
+
const out = [];
|
|
156
|
+
for (const entry of cache.values()) if (entry.state === "pending") out.push(entry.promise);
|
|
157
|
+
return out;
|
|
158
|
+
}
|
|
159
|
+
function relationId(value) {
|
|
160
|
+
return idText(value);
|
|
161
|
+
}
|
|
162
|
+
//#endregion
|
|
163
|
+
export { relationId as n, relationReader as r, pendingRelations as t };
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
//#region src/cli/core/renames.ts
|
|
2
|
+
const DB_COMMANDS = [
|
|
3
|
+
"rls generate",
|
|
4
|
+
"rls import",
|
|
5
|
+
"rls verify",
|
|
6
|
+
"supabase hook generate",
|
|
7
|
+
"powersync verify"
|
|
8
|
+
];
|
|
9
|
+
const FLAG_RENAMES = [
|
|
10
|
+
{
|
|
11
|
+
commands: DB_COMMANDS,
|
|
12
|
+
from: "--db",
|
|
13
|
+
to: "--db-url-stdin",
|
|
14
|
+
hint: "--db-url-stdin or DATABASE_URL"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
commands: DB_COMMANDS,
|
|
18
|
+
from: "--db-url",
|
|
19
|
+
to: "--db-url-stdin",
|
|
20
|
+
hint: "--db-url-stdin or DATABASE_URL"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
commands: ["rls generate"],
|
|
24
|
+
from: "--force",
|
|
25
|
+
to: "--force-rls"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
commands: ["rls verify"],
|
|
29
|
+
from: "--format",
|
|
30
|
+
to: "--kind"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
commands: ["rls verify"],
|
|
34
|
+
from: "--emit",
|
|
35
|
+
to: "--kind"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
commands: ["catalog"],
|
|
39
|
+
from: "--format",
|
|
40
|
+
to: "--kind",
|
|
41
|
+
values: {
|
|
42
|
+
json: "catalog",
|
|
43
|
+
schema: "json-schema",
|
|
44
|
+
markdown: "markdown"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
commands: ["openapi emit"],
|
|
49
|
+
from: "--format",
|
|
50
|
+
to: "--kind"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
commands: [
|
|
54
|
+
"rls generate",
|
|
55
|
+
"rls verify",
|
|
56
|
+
"rls migrate",
|
|
57
|
+
"powersync generate",
|
|
58
|
+
"powersync verify",
|
|
59
|
+
"openapi emit"
|
|
60
|
+
],
|
|
61
|
+
from: "--from",
|
|
62
|
+
to: "--policy"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
commands: ["catalog", "arazzo check"],
|
|
66
|
+
from: "--from",
|
|
67
|
+
to: "--permissions"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
commands: ["rls import", "openapi import"],
|
|
71
|
+
from: "--schema",
|
|
72
|
+
to: "--validator"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
commands: [
|
|
76
|
+
"usage",
|
|
77
|
+
"config",
|
|
78
|
+
"doctor"
|
|
79
|
+
],
|
|
80
|
+
from: "--strict",
|
|
81
|
+
to: "--fail-on",
|
|
82
|
+
hint: "--fail-on warning",
|
|
83
|
+
rewrite: "--fail-on warning"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
commands: ["login"],
|
|
87
|
+
from: "--write",
|
|
88
|
+
to: "--scope",
|
|
89
|
+
hint: "--scope catalog:write",
|
|
90
|
+
rewrite: "--scope catalog:write"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
commands: ["skills install", "skills update"],
|
|
94
|
+
from: "--agent",
|
|
95
|
+
to: "--for"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
commands: ["skills install", "skills update"],
|
|
99
|
+
from: "--client",
|
|
100
|
+
to: "--for"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
commands: ["init"],
|
|
104
|
+
from: "--agent",
|
|
105
|
+
to: "--integration"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
commands: ["init"],
|
|
109
|
+
from: "--ui",
|
|
110
|
+
to: "--integration"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
commands: ["init"],
|
|
114
|
+
from: "--src",
|
|
115
|
+
to: "--out-dir"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
commands: [
|
|
119
|
+
"rls generate",
|
|
120
|
+
"rls verify",
|
|
121
|
+
"rls migrate"
|
|
122
|
+
],
|
|
123
|
+
from: "--rbac-scaffold",
|
|
124
|
+
to: "--rbac",
|
|
125
|
+
hint: "--rbac supabase",
|
|
126
|
+
rewrite: "--rbac supabase"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
commands: ["rls migrate"],
|
|
130
|
+
from: "--write",
|
|
131
|
+
hint: "rls migrate writes by default; --dry-run prints the plan without writing",
|
|
132
|
+
rewrite: ""
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
commands: ["cloud push"],
|
|
136
|
+
from: "--environment",
|
|
137
|
+
to: "--project",
|
|
138
|
+
hint: "--project <id>: a project id is its environment"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
commands: ["scan"],
|
|
142
|
+
from: "--legacy",
|
|
143
|
+
hint: "permdock scan lists the checks written without PermDock; drop --legacy",
|
|
144
|
+
rewrite: ""
|
|
145
|
+
}
|
|
146
|
+
];
|
|
147
|
+
const COMMAND_MOVES = [
|
|
148
|
+
{
|
|
149
|
+
from: "openapi",
|
|
150
|
+
to: "openapi emit"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
from: "skills",
|
|
154
|
+
to: "skills install"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
from: "arazzo",
|
|
158
|
+
to: "arazzo check"
|
|
159
|
+
}
|
|
160
|
+
];
|
|
161
|
+
const DEFAULT_CHANGES = [{
|
|
162
|
+
command: "rls migrate",
|
|
163
|
+
unless: ["--write", "--retire-out"],
|
|
164
|
+
add: "--dry-run"
|
|
165
|
+
}];
|
|
166
|
+
/** The rename that matches `flag` (as typed, before any `=`) on `command`. */
|
|
167
|
+
function flagRename(command, flag) {
|
|
168
|
+
return FLAG_RENAMES.find((rename) => rename.from === flag && rename.commands.includes(command));
|
|
169
|
+
}
|
|
170
|
+
function renameMessage(command, rename) {
|
|
171
|
+
const replacement = rename.hint ?? rename.to;
|
|
172
|
+
return replacement === void 0 ? `${command}: ${rename.from} was removed in 0.5.0.` : rename.to === void 0 ? `${command}: ${rename.from} was removed in 0.5.0: ${replacement}.` : `${command}: ${rename.from} is ${replacement} since 0.5.0.`;
|
|
173
|
+
}
|
|
174
|
+
//#endregion
|
|
175
|
+
export { renameMessage as i, DEFAULT_CHANGES as n, flagRename as r, COMMAND_MOVES as t };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { o as epochSeconds } from "./time-DkWjdL98.js";
|
|
1
2
|
//#region src/ssf/replay.ts
|
|
2
3
|
function memoryReplayStore() {
|
|
3
4
|
const seen = /* @__PURE__ */ new Map();
|
|
4
|
-
function evict(now =
|
|
5
|
+
function evict(now = epochSeconds()) {
|
|
5
6
|
for (const [jti, expiresAt] of seen) if (expiresAt !== void 0 && expiresAt <= now) seen.delete(jti);
|
|
6
7
|
}
|
|
7
8
|
return {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { t as assertAppData } from "./app-data-MuyzVqX8.js";
|
|
2
|
+
import { n as wrapPermDock } from "./wrap-gX61EtpB.js";
|
|
3
|
+
import { t as buildInstance } from "./build-instance-BMnAudHn.js";
|
|
4
|
+
//#region src/core/request-context.ts
|
|
5
|
+
/**
|
|
6
|
+
* Errors an adapter raises around one instance (a `context` hook that threw,
|
|
7
|
+
* an `onDenied` that failed), fed to the instance's `on('error')` handlers and
|
|
8
|
+
* replayed to later ones, as core replays its own.
|
|
9
|
+
*/
|
|
10
|
+
function deliver(handler, error) {
|
|
11
|
+
try {
|
|
12
|
+
handler(error);
|
|
13
|
+
} catch {}
|
|
14
|
+
}
|
|
15
|
+
function errorChannel(queued) {
|
|
16
|
+
const errors = [...queued];
|
|
17
|
+
const handlers = /* @__PURE__ */ new Set();
|
|
18
|
+
return {
|
|
19
|
+
report: (error) => {
|
|
20
|
+
errors.push(error);
|
|
21
|
+
for (const handler of handlers) deliver(handler, error);
|
|
22
|
+
},
|
|
23
|
+
attach: (permdock) => wrapPermDock(permdock, (inner) => ({ on: (event, handler) => {
|
|
24
|
+
const off = inner.on(event, handler);
|
|
25
|
+
if (event !== "error") return off;
|
|
26
|
+
handlers.add(handler);
|
|
27
|
+
for (const error of errors) deliver(handler, error);
|
|
28
|
+
return () => {
|
|
29
|
+
off();
|
|
30
|
+
handlers.delete(handler);
|
|
31
|
+
};
|
|
32
|
+
} }))
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `buildInstance` with an error channel: the instance's `on('error')`
|
|
37
|
+
* replays `errors` raised while resolving the request, and `report` adds
|
|
38
|
+
* more. Kept beside `errorChannel`, so adapters without one do not bundle it.
|
|
39
|
+
*/
|
|
40
|
+
async function buildReportingInstance(input) {
|
|
41
|
+
const channel = errorChannel(input.errors);
|
|
42
|
+
const { wrap } = input;
|
|
43
|
+
return {
|
|
44
|
+
...await buildInstance({
|
|
45
|
+
...input,
|
|
46
|
+
wrap: (created) => {
|
|
47
|
+
const attached = channel.attach(created);
|
|
48
|
+
return wrap === void 0 ? attached : wrap(attached);
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
report: channel.report
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Runs an adapter's `context` hook. A throw, or a value that is not a JSON
|
|
56
|
+
* object, adds no context and lands in `errors`.
|
|
57
|
+
*/
|
|
58
|
+
async function requestContext(hook, input, errors) {
|
|
59
|
+
if (hook === void 0) return;
|
|
60
|
+
try {
|
|
61
|
+
const value = await hook(input);
|
|
62
|
+
if (value === void 0) return;
|
|
63
|
+
assertAppData(value, "context");
|
|
64
|
+
return value;
|
|
65
|
+
} catch (error) {
|
|
66
|
+
errors.push(error);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { requestContext as n, buildReportingInstance as t };
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
//#region src/approvals/request-schema.ts
|
|
2
|
+
/** An RFC 3339 instant as `Temporal.Instant` prints it; pg_jsonschema asserts no `format`. */
|
|
3
|
+
const INSTANT = String.raw`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$`;
|
|
4
|
+
const STRINGS = {
|
|
5
|
+
type: "array",
|
|
6
|
+
items: { type: "string" }
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* `schemas/approval-request-v1.json`: the `ApprovalRequest` an approval store
|
|
10
|
+
* holds. Self-contained (`$defs`, no remote `$ref`) so `rls.jsonSchema` can
|
|
11
|
+
* inline it into a pg_jsonschema check constraint.
|
|
12
|
+
*/
|
|
13
|
+
const APPROVAL_REQUEST_SCHEMA = {
|
|
14
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
15
|
+
$id: "https://permdock.com/schemas/approval-request-v1.json",
|
|
16
|
+
title: "PermDock approval request",
|
|
17
|
+
description: "An ApprovalRequest as an ApprovalStore holds it, wire format v1. Unknown properties are allowed so a v1 minor release can add one.",
|
|
18
|
+
type: "object",
|
|
19
|
+
required: [
|
|
20
|
+
"v",
|
|
21
|
+
"id",
|
|
22
|
+
"token",
|
|
23
|
+
"permission",
|
|
24
|
+
"scope",
|
|
25
|
+
"resource",
|
|
26
|
+
"subject",
|
|
27
|
+
"detail",
|
|
28
|
+
"createdAt",
|
|
29
|
+
"expiresAt",
|
|
30
|
+
"status"
|
|
31
|
+
],
|
|
32
|
+
properties: {
|
|
33
|
+
v: { const: 1 },
|
|
34
|
+
id: {
|
|
35
|
+
type: "string",
|
|
36
|
+
minLength: 1
|
|
37
|
+
},
|
|
38
|
+
token: {
|
|
39
|
+
type: "string",
|
|
40
|
+
minLength: 1
|
|
41
|
+
},
|
|
42
|
+
permission: {
|
|
43
|
+
type: "string",
|
|
44
|
+
minLength: 1
|
|
45
|
+
},
|
|
46
|
+
scope: { type: "string" },
|
|
47
|
+
resource: {
|
|
48
|
+
type: "object",
|
|
49
|
+
required: ["type"],
|
|
50
|
+
properties: {
|
|
51
|
+
type: { type: "string" },
|
|
52
|
+
id: { type: "string" }
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
subject: { $ref: "#/$defs/subject" },
|
|
56
|
+
membership: {
|
|
57
|
+
type: "object",
|
|
58
|
+
required: ["roles"],
|
|
59
|
+
properties: { roles: STRINGS }
|
|
60
|
+
},
|
|
61
|
+
approvers: { type: "object" },
|
|
62
|
+
detail: { type: "string" },
|
|
63
|
+
adapter: { type: "string" },
|
|
64
|
+
createdAt: { $ref: "#/$defs/instant" },
|
|
65
|
+
expiresAt: { $ref: "#/$defs/instant" },
|
|
66
|
+
status: { enum: [
|
|
67
|
+
"pending",
|
|
68
|
+
"approved",
|
|
69
|
+
"rejected",
|
|
70
|
+
"expired"
|
|
71
|
+
] },
|
|
72
|
+
approvals: {
|
|
73
|
+
type: "array",
|
|
74
|
+
items: { $ref: "#/$defs/signature" }
|
|
75
|
+
},
|
|
76
|
+
resolvedAt: { $ref: "#/$defs/instant" },
|
|
77
|
+
resolvedBy: { type: "string" },
|
|
78
|
+
vouched: { type: "string" },
|
|
79
|
+
note: { type: "string" },
|
|
80
|
+
consumedAt: { $ref: "#/$defs/instant" },
|
|
81
|
+
x: {
|
|
82
|
+
type: "object",
|
|
83
|
+
description: "The application's own data, set when the request opens: plain JSON, never read by a decision."
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
$defs: {
|
|
87
|
+
instant: {
|
|
88
|
+
type: "string",
|
|
89
|
+
format: "date-time",
|
|
90
|
+
pattern: INSTANT
|
|
91
|
+
},
|
|
92
|
+
subject: {
|
|
93
|
+
type: "object",
|
|
94
|
+
required: ["principal"],
|
|
95
|
+
properties: {
|
|
96
|
+
principal: { anyOf: [{ type: "null" }, {
|
|
97
|
+
type: "object",
|
|
98
|
+
required: ["id", "roles"],
|
|
99
|
+
properties: {
|
|
100
|
+
id: { type: "string" },
|
|
101
|
+
roles: STRINGS,
|
|
102
|
+
tenant: { type: "string" }
|
|
103
|
+
}
|
|
104
|
+
}] },
|
|
105
|
+
actor: {
|
|
106
|
+
type: "object",
|
|
107
|
+
required: ["id", "kind"],
|
|
108
|
+
properties: {
|
|
109
|
+
id: { type: "string" },
|
|
110
|
+
kind: { type: "string" }
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
session: { type: "string" },
|
|
114
|
+
delegation: {
|
|
115
|
+
type: "object",
|
|
116
|
+
properties: {
|
|
117
|
+
scope: { type: "string" },
|
|
118
|
+
authorization_details: {
|
|
119
|
+
type: "array",
|
|
120
|
+
items: {
|
|
121
|
+
type: "object",
|
|
122
|
+
required: ["type"],
|
|
123
|
+
properties: { type: { type: "string" } }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
signature: {
|
|
131
|
+
type: "object",
|
|
132
|
+
required: ["by", "at"],
|
|
133
|
+
properties: {
|
|
134
|
+
by: { type: "string" },
|
|
135
|
+
at: { $ref: "#/$defs/instant" },
|
|
136
|
+
stage: {
|
|
137
|
+
type: "integer",
|
|
138
|
+
minimum: 0
|
|
139
|
+
},
|
|
140
|
+
vouched: { type: "string" },
|
|
141
|
+
onBehalfOf: { type: "string" },
|
|
142
|
+
delegation: { type: "string" }
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
//#endregion
|
|
148
|
+
export { APPROVAL_REQUEST_SCHEMA as t };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { q as DecisionSink } from "../policy-types-DzwivBgR.js";
|
|
2
|
+
import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-Djo_PyZc.js";
|
|
3
|
+
import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-DX0LaKTb.js";
|
|
4
|
+
import { l as ReplayStore } from "../types-DiQjupG2.js";
|
|
5
|
+
//#region src/resend/approval-email.d.ts
|
|
6
|
+
type ApprovalEmailOptions = {
|
|
7
|
+
/** The app's approval page: a base the request id is appended to, or a function of the prompt. Must be https. */
|
|
8
|
+
readonly approvalUrl: ApprovalUrl;
|
|
9
|
+
/** The product name in the footer line. */
|
|
10
|
+
readonly product?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The default approval prompt email: an `approval`-category message whose
|
|
14
|
+
* one link opens the app's approval page for the request. It carries no
|
|
15
|
+
* approve or reject link; the signed-in approver decides on that page.
|
|
16
|
+
* Throws a `TypeError` for an approval page that is not https. Replace it
|
|
17
|
+
* with a React Email template by building the same `EmailMessage`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function approvalEmail(prompt: ApprovalPrompt, options: ApprovalEmailOptions): EmailMessage;
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/resend/transport.d.ts
|
|
22
|
+
/** One email as `resend.emails.send` and `resend.batch.send` take it. */
|
|
23
|
+
type ResendEmailPayload = {
|
|
24
|
+
readonly from: string;
|
|
25
|
+
readonly to: string[];
|
|
26
|
+
readonly subject: string;
|
|
27
|
+
readonly text: string;
|
|
28
|
+
readonly html?: string;
|
|
29
|
+
readonly replyTo?: string;
|
|
30
|
+
readonly headers?: Record<string, string>;
|
|
31
|
+
readonly tags?: {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly value: string;
|
|
34
|
+
}[];
|
|
35
|
+
};
|
|
36
|
+
type ResendError = {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly message: string;
|
|
39
|
+
readonly statusCode: number | null;
|
|
40
|
+
};
|
|
41
|
+
type ResendResult<T> = {
|
|
42
|
+
readonly data: T;
|
|
43
|
+
readonly error: null;
|
|
44
|
+
} | {
|
|
45
|
+
readonly data: null;
|
|
46
|
+
readonly error: ResendError;
|
|
47
|
+
};
|
|
48
|
+
/** The part of a `Resend` client the transport calls; a `new Resend(key)` fits. */
|
|
49
|
+
type ResendClient = {
|
|
50
|
+
readonly emails: {
|
|
51
|
+
send(payload: ResendEmailPayload, options?: {
|
|
52
|
+
readonly idempotencyKey?: string;
|
|
53
|
+
}): Promise<ResendResult<{
|
|
54
|
+
readonly id: string;
|
|
55
|
+
}>>;
|
|
56
|
+
};
|
|
57
|
+
readonly batch?: {
|
|
58
|
+
send(payloads: ResendEmailPayload[], options?: {
|
|
59
|
+
readonly idempotencyKey?: string;
|
|
60
|
+
}): Promise<ResendResult<{
|
|
61
|
+
readonly data: readonly {
|
|
62
|
+
readonly id: string;
|
|
63
|
+
}[];
|
|
64
|
+
}>>;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
type ResendTransportOptions = {
|
|
68
|
+
/** The `from` of an email whose message and router set none. */
|
|
69
|
+
readonly from?: string;
|
|
70
|
+
/** The `replyTo` of an email whose message sets none. */
|
|
71
|
+
readonly replyTo?: string;
|
|
72
|
+
/** Tags added to every email; names and values are ASCII letters, digits, `_` and `-`. */
|
|
73
|
+
readonly tags?: Readonly<Record<string, string>>;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* The failure a Resend error name means. Rate limits, quotas and server
|
|
77
|
+
* errors are retryable with the same idempotency key; a key, sender or
|
|
78
|
+
* validation error is final. An unknown name is retryable only for a 5xx or
|
|
79
|
+
* a missing status.
|
|
80
|
+
*/
|
|
81
|
+
export declare function resendFailure(error: ResendError): DeliveryResult;
|
|
82
|
+
/**
|
|
83
|
+
* Sends the email channel of `permdock/delivery` through Resend. The
|
|
84
|
+
* idempotency key is Resend's `idempotencyKey`. The delivery id, key and
|
|
85
|
+
* category travel as tags, so `resendWebhook` can join provider events to
|
|
86
|
+
* the delivery. Two or more recipients go out through `batch.send`, up to
|
|
87
|
+
* 100 per call. Throws a `TypeError` for a tag outside Resend's charset.
|
|
88
|
+
*/
|
|
89
|
+
export declare function resendTransport(resend: ResendClient, options?: ResendTransportOptions): EmailTransport;
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/resend/webhook.d.ts
|
|
92
|
+
/** The part of a `Resend` client the webhook calls; a `new Resend(key)` fits. */
|
|
93
|
+
type ResendWebhookClient = {
|
|
94
|
+
readonly webhooks: {
|
|
95
|
+
verify(input: {
|
|
96
|
+
readonly payload: string;
|
|
97
|
+
readonly headers: {
|
|
98
|
+
readonly id: string;
|
|
99
|
+
readonly timestamp: string;
|
|
100
|
+
readonly signature: string;
|
|
101
|
+
};
|
|
102
|
+
readonly webhookSecret: string;
|
|
103
|
+
}): unknown;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
type ResendWebhookOptions = {
|
|
107
|
+
readonly resend: ResendWebhookClient;
|
|
108
|
+
/** The endpoint's signing secret, `whsec_…`. */
|
|
109
|
+
readonly secret: string;
|
|
110
|
+
readonly sink: DecisionSink;
|
|
111
|
+
/** Claims each message id, so a redelivered message writes no second event. */
|
|
112
|
+
readonly replay: ReplayStore;
|
|
113
|
+
/** The event `source`; defaults to `permdock`. */
|
|
114
|
+
readonly source?: string;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* A fetch handler for Resend webhooks. It verifies the Standard Webhooks
|
|
118
|
+
* signature through `resend.webhooks.verify` (the `svix-*` and `webhook-*`
|
|
119
|
+
* header names both work), claims the message id, and writes one delivery
|
|
120
|
+
* event for `email.delivered`, `email.bounced`, `email.complained`,
|
|
121
|
+
* `email.failed` and `email.suppressed`. A bad signature is a `401`; a sink
|
|
122
|
+
* failure releases the claim and answers `503`, so Resend retries.
|
|
123
|
+
*/
|
|
124
|
+
export declare function resendWebhook(options: ResendWebhookOptions): (request: Request) => Promise<Response>;
|
|
125
|
+
//#endregion
|
|
126
|
+
export type { ApprovalEmailOptions, ResendClient, ResendEmailPayload, ResendError, ResendResult, ResendTransportOptions, ResendWebhookClient, ResendWebhookOptions };
|