permdock 0.16.0 → 0.18.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/dist/a2a/index.d.ts +4 -4
- package/dist/a2a/index.js +3 -3
- package/dist/{adapter-context-CIQpQxbE.js → adapter-context-OHikyRqV.js} +1 -1
- package/dist/{adoption-scan-C2BCiUEG.js → adoption-scan-CxExBYSJ.js} +1 -1
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +3 -3
- package/dist/ai-sdk/index.js +3 -3
- package/dist/approval-normalize-CUjgSsOl.js +189 -0
- package/dist/approval-policies-oNnckT12.d.ts +138 -0
- package/dist/{approval-prompt-3BqWczTt.d.ts → approval-prompt-Bg7gDSqd.d.ts} +1 -1
- package/dist/approvals/index.d.ts +5 -4
- package/dist/approvals/index.js +7 -6
- package/dist/{approvals-DnIBTuXE.js → approvals-DGId_hgJ.js} +3 -3
- package/dist/{approvers-B4r0N_Uz.js → approvers-BaNwKYgd.js} +20 -1
- package/dist/{arazzo-ClYz2Z0W.js → arazzo--riLuGY0.js} +4 -4
- package/dist/{arazzo-CHoYnQXO.js → arazzo-CEDbb-uM.js} +2 -2
- package/dist/{args-0FrVs5EH.js → args-iafbHiXn.js} +2 -5
- package/dist/astro/index.d.ts +4 -4
- package/dist/astro/index.js +2 -2
- package/dist/{audience-DTjR8xet.js → audience-B4YR9UpV.js} +1 -1
- package/dist/{auth--yPyZNgr.js → auth-j3Eu-j4h.js} +1 -1
- package/dist/authz-topic-Dbc-HDOS.js +15 -0
- package/dist/authzen/index.d.ts +5 -5
- package/dist/authzen/index.js +2 -2
- package/dist/{automation-C6Jg75xq.d.ts → automation-Bfa_wD1h.d.ts} +1 -1
- package/dist/better-auth/index.d.ts +1 -1
- package/dist/better-auth/index.js +10 -8
- package/dist/better-supabase/index.d.ts +335 -38
- package/dist/better-supabase/index.js +778 -117
- package/dist/{better-supabase-Dirf_8Ec.js → better-supabase-BJtQ-kNf.js} +26 -10
- package/dist/{bind-BNQA9JK9.js → bind-B4pMH9bm.js} +6 -6
- package/dist/{bind-YYjvfpB9.d.ts → bind-DR6ku3A9.d.ts} +7 -7
- package/dist/{budget-BELja5A9.js → budget-BBCPDOGP.js} +1 -1
- package/dist/{budget-hYsPz_yE.d.ts → budget-CNLsV2SL.d.ts} +1 -1
- package/dist/{build-instance-BWXqwQYU.js → build-instance-BFMFQdE_.js} +3 -2
- package/dist/{capability-Di9tiUvi.d.ts → capability-BZ_veK9o.d.ts} +1 -1
- package/dist/{capability-BqX94r07.js → capability-zN6T9fxe.js} +2 -3
- package/dist/{casbin-D_rVQ31U.js → casbin-DCQHkkyj.js} +2 -2
- package/dist/{casbin-C9EvElBb.js → casbin-bKC1FpEx.js} +2 -2
- package/dist/{casl-C4OINZHI.js → casl-CjBVJj8R.js} +2 -2
- package/dist/{casl-CHHoCldP.js → casl-CkBssiB1.js} +1 -1
- package/dist/catalog/index.d.ts +5 -5
- package/dist/catalog/index.js +7 -7
- package/dist/catalog-Caqhbdix.js +1 -0
- package/dist/{catalog-CGlSwU6j.js → catalog-D1fw8qif.js} +5 -5
- package/dist/{catalog-doc-DjMKzJp9.js → catalog-doc-C4DGfJCO.js} +3 -3
- package/dist/{catalog-operations-DeHTrJSV.js → catalog-operations-BD22drQf.js} +4 -4
- package/dist/{catalog-amPDr0JQ.js → catalog-zzNuR3sY.js} +3 -3
- package/dist/{challenge-DImNcR7B.js → challenge-B2O2OLEk.js} +2 -2
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +2 -2
- package/dist/chat-sdk/index.d.ts +3 -3
- package/dist/{checks-CGkP3Z7A.js → checks-fyDOhcz0.js} +33 -1
- package/dist/claude-agent/index.d.ts +3 -3
- package/dist/claude-agent/index.js +2 -2
- package/dist/clerk/index.d.ts +2 -2
- package/dist/clerk/index.js +10 -7
- package/dist/cli/bin.js +1 -1
- package/dist/cli/index.d.ts +5 -5
- package/dist/cli/index.js +3 -3
- package/dist/client-CH7vzSAY.d.ts +32 -0
- package/dist/cloud/index.d.ts +8 -8
- package/dist/cloud/index.js +1 -1
- package/dist/{cloud-DdaJ7ILM.js → cloud-C0vXBmLG.js} +4 -4
- package/dist/{codemod-B1USJS7a.js → codemod-C-L0w-u7.js} +3 -3
- package/dist/{codemod-ammy6wv4.js → codemod-eYI1FbeJ.js} +395 -8
- package/dist/{collect-DnXL4B8c.js → collect-CU85z6Ta.js} +4 -4
- package/dist/{collect-WCl8cJQV.js → collect-D878zLDP.js} +4 -4
- package/dist/collect-KCtOigxx.js +1 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -1
- package/dist/{compile-EzEMB-7v.js → compile-B_oJqmIg.js} +4 -4
- package/dist/{compile-BEklRUYo.d.ts → compile-DBm0ub4p.d.ts} +2 -2
- package/dist/{completion--Y4YItFZ.js → completion-Dauc6pVT.js} +3 -3
- package/dist/{config-CcLlvEYW.js → config-COHmivz9.js} +4 -4
- package/dist/{config-BQ77xMZk.js → config-DWp2PucY.js} +2 -2
- package/dist/{config-report-DVMOLJ7F.js → config-report-DKpFm5ID.js} +2 -2
- package/dist/{context-BnIzxTNE.js → context-DeammvFl.js} +2 -2
- package/dist/convex/index.d.ts +4 -4
- package/dist/convex/index.js +3 -3
- package/dist/{core-lxoANyai.js → core-B8sLve3z.js} +7 -7
- package/dist/{core-CFepFiDP.d.ts → core-D87h2kpR.d.ts} +2 -2
- package/dist/{create-BLPKnJKa.js → create-3A7J9KRR.js} +6 -5
- package/dist/{create-CDd9c22W.d.ts → create-BrQXL-Wt.d.ts} +6 -6
- package/dist/{create-BPUopdfL.d.ts → create-BzwjZuRS.d.ts} +7 -7
- package/dist/{create-Coq5fIrq.js → create-C-tm3KIF.js} +5 -5
- package/dist/{create-DBvUsgzK.d.ts → create-CtoT1lIQ.d.ts} +4 -4
- package/dist/{credential-CyyyvCsL.js → credential-B3Hj4puZ.js} +4 -3
- package/dist/{credentials-CdDxp7jN.js → credentials-dkycUsY3.js} +1 -1
- package/dist/decision-CaG5_eNJ.js +21 -0
- package/dist/{delegation-CDB6_keF.js → delegation-aK4T_5WU.js} +3 -3
- package/dist/delivery/index.d.ts +4 -4
- package/dist/delivery/index.js +1 -1
- package/dist/{denied-text-DHldhVUv.d.ts → denied-text-DlIxt8fh.d.ts} +1 -1
- package/dist/{describe-BbFPBSms.d.ts → describe-BKtC_8PG.d.ts} +1 -1
- package/dist/{describe-Bb4hGK5d.js → describe-BZAlPHxT.js} +2 -1
- package/dist/{diff-DfmYaIhB.js → diff-BnNHqtHj.js} +8 -8
- package/dist/{diff-CxtbOi2l.js → diff-CBCzOTWM.js} +2 -2
- package/dist/{doctor-D1Xnmy6u.js → doctor-CkYKCuX7.js} +233 -30
- package/dist/{doctor-CwYc2lJb.js → doctor-xUpR5rXg.js} +3 -3
- package/dist/drizzle/index.d.ts +3 -3
- package/dist/drizzle/index.js +1 -1
- package/dist/elysia/index.d.ts +4 -4
- package/dist/elysia/index.js +3 -3
- package/dist/{errors-Vpu6rKHl.js → errors-BhRkoNS7.js} +0 -2
- package/dist/{errors-BIM4MFsJ.d.ts → errors-TpzkEKgJ.d.ts} +1 -1
- package/dist/{evaluate-BAmf_AQd.js → evaluate-Czbj7thS.js} +18 -15
- package/dist/{evaluations-DOWuBpWv.d.ts → evaluations-CisTTURl.d.ts} +3 -3
- package/dist/{evaluations-IBceAeKT.js → evaluations-h3KoJAPa.js} +3 -22
- package/dist/eve/index.d.ts +4 -4
- package/dist/eve/index.js +3 -3
- package/dist/express/index.d.ts +4 -4
- package/dist/express/index.js +3 -3
- package/dist/fastify/index.d.ts +4 -4
- package/dist/fastify/index.js +3 -3
- package/dist/{fetch-adapter-BIbBAtPZ.d.ts → fetch-adapter-BdmfnbJM.d.ts} +2 -2
- package/dist/{fetch-adapter-dPTgJVHd.js → fetch-adapter-DH-NJPbL.js} +2 -2
- package/dist/{fields-DI8s3cPl.js → fields-CrjL6A49.js} +3 -3
- package/dist/{files-B3AA05f1.js → files-CfiRtQ-m.js} +1 -1
- package/dist/{fixtures-Bm4_K1ke.js → fixtures-Cemqurt8.js} +10 -4
- package/dist/{flags-DXjoTVbS.js → flags-BlmpmXoY.js} +2 -2
- package/dist/{from-snapshot-DCakWRsr.js → from-snapshot-DMlSSo9b.js} +14 -12
- package/dist/{gen-DwgCSC6V.js → gen-BEIN-DRM.js} +2 -2
- package/dist/{gen-DuAhghDw.js → gen-mf-MRwVr.js} +9 -9
- package/dist/{generate-CRVV5V7l.js → generate-BqkZq8Dr.js} +2 -2
- package/dist/{grantee-conditions-BrYPe-w0.js → grantee-conditions-DX4K_gGI.js} +1 -1
- package/dist/{grantee-match-7RZZvoT_.js → grantee-match-BP-k4vRJ.js} +2 -2
- package/dist/h3/index.d.ts +4 -4
- package/dist/h3/index.js +3 -3
- package/dist/{helpers-DJicaG6f.js → helpers-DmqGy63f.js} +85 -13
- package/dist/hono/index.d.ts +4 -4
- package/dist/hono/index.js +3 -3
- package/dist/{hosted-DVxlLZMe.d.ts → hosted-BFNXwcjd.d.ts} +1 -1
- package/dist/{hosted-D0IzESu_.js → hosted-waouw2V-.js} +12 -10
- package/dist/{http-DOL33cO0.js → http-DhMWeB_h.js} +1 -1
- package/dist/{import-CNBF96hB.js → import-C1XXpG_m.js} +4 -4
- package/dist/{import-Dfe2unKO.js → import-DObwEota.js} +3 -3
- package/dist/{index-BinlXeU-.d.ts → index-BhnOOnp9.d.ts} +2 -2
- package/dist/{index-ymept53A.d.ts → index-CVGio3cH.d.ts} +4 -4
- package/dist/{index-DJwEgYzA.d.ts → index-CdMOd-GY.d.ts} +17 -11
- package/dist/{index-Cay5-Kvx.d.ts → index-CdUTE6qd.d.ts} +11 -10
- package/dist/{index-Dj2qF9VC.d.ts → index-Dfv9Toct.d.ts} +1 -1
- package/dist/{index-CV-7DWeD.d.ts → index-rFp6X_QP.d.ts} +4 -4
- package/dist/index.d.ts +18 -16
- package/dist/index.js +24 -20
- package/dist/{init-BUo2G-FI.js → init-CNJ8lLjo.js} +5 -5
- package/dist/{init-C6cWP3xW.js → init-DS3PEsCG.js} +5 -5
- package/dist/{instance-options-CoHn-0e8.d.ts → instance-options-2sFGSdsf.d.ts} +2 -2
- package/dist/{instance-snapshot-DuWf1cT3.js → instance-snapshot-BWa71my8.js} +15 -12
- package/dist/jwt/index.d.ts +4 -4
- package/dist/jwt/index.js +3 -3
- package/dist/{kernel-BD8QuMnv.js → kernel-30Z2zM_d.js} +10 -10
- package/dist/kysely/index.d.ts +3 -3
- package/dist/kysely/index.js +1 -1
- package/dist/{load-DjSU5KXO.js → load-BaEamml-.js} +1 -1
- package/dist/load-CjnlPxpL.js +1 -0
- package/dist/{login-D1MHOomI.js → login-BgK5Jloo.js} +4 -4
- package/dist/{login-DCKE5pVy.js → login-DUVzBLh7.js} +4 -4
- package/dist/{manifest-BXTbHNIV.js → manifest-BdzBobNK.js} +1 -1
- package/dist/{manifest-schema-DQkBK2Mr.js → manifest-schema-CsFsYLF-.js} +1 -1
- package/dist/{manifest-Cft51TLK.js → manifest-wclLWBVH.js} +37 -37
- package/dist/{map-claims-C-nv08_n.js → map-claims-PQwHynxV.js} +25 -11
- package/dist/{map-error-pasIGqMT.js → map-error-BH16Ah8P.js} +1 -1
- package/dist/mcp/index.d.ts +8 -8
- package/dist/mcp/index.js +9 -9
- package/dist/{migrate-BJHxQqT5.js → migrate-BbY5-Khy.js} +4 -4
- package/dist/{module-values-B1EVTkHP.js → module-values-B8tNIxdd.js} +2 -2
- package/dist/nest/index.d.ts +4 -4
- package/dist/nest/index.js +3 -3
- package/dist/next/index.d.ts +45 -13
- package/dist/next/index.js +68 -30
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +4 -4
- package/dist/node/index.js +2 -2
- package/dist/openai/index.d.ts +4 -4
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +2 -2
- package/dist/{openapi-BwWkHxvW.js → openapi-C4gFqeRz.js} +4 -4
- package/dist/{openapi-DSzQN7Zu.js → openapi-zMEB9qxn.js} +5 -5
- package/dist/{operation-findings-CXtFzlKJ.js → operation-findings-CVwJHEu_.js} +1 -1
- package/dist/operation-risks-BKOcTv8J.js +13 -0
- package/dist/operations-Bm9HFecz.js +89 -0
- package/dist/orpc/index.d.ts +5 -5
- package/dist/orpc/index.js +3 -3
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +1 -1
- package/dist/{output-DlICTjBh.js → output-BFWLER4r.js} +1 -1
- package/dist/output-files-BYscrQl-.js +1 -0
- package/dist/{output-files-BIQ_9pIs.js → output-files-CM0BnH05.js} +1 -1
- package/dist/{ownership-qqBuGJXr.js → ownership-D-mIt-w0.js} +6 -6
- package/dist/{parse-1_ZheTW5.js → parse-UTC-sDrt.js} +2 -2
- package/dist/{parse-local-manifest-DEiCF4ah.js → parse-local-manifest-CxcSMQgl.js} +2 -2
- package/dist/{parse-local-manifest-CCmbhnxP.d.ts → parse-local-manifest-DvjTQNuO.d.ts} +1 -1
- package/dist/{parse-request-CwCZpyjV.js → parse-request-DOBVaeiQ.js} +1 -1
- package/dist/pdp/index.d.ts +3 -3
- package/dist/pdp/index.js +3 -3
- package/dist/{peer-Q0fuZ6hx.js → peer-BuK9F53f.js} +1 -1
- package/dist/{peer-C9LvBCcb.js → peer-n-swIV4H.js} +1 -1
- package/dist/{permdock-BvjivVb9.js → permdock-D-_WrdKu.js} +205 -102
- package/dist/{permdock-CprAPN3w.d.ts → permdock-ffY4CMd9.d.ts} +101 -131
- package/dist/{permissions-CYcHj_w7.js → permissions-B3ggI88M.js} +2 -2
- package/dist/{permissions-CVXmRILq.js → permissions-BaoLxy66.js} +1 -13
- package/dist/{pg-DQTqRrou.js → pg-Ddxsd5ZB.js} +2 -2
- package/dist/{policy-BycVKnXv.d.ts → policy-BtKSApSt.d.ts} +1 -1
- package/dist/{policy-CLQ8__GF.js → policy-cV_wwPb8.js} +5 -4
- package/dist/{policy-from-catalog-CU3An8uP.js → policy-from-catalog-B68hGC0S.js} +9 -8
- package/dist/{policy-types-DGIO_gxq.d.ts → policy-types-D-GwfQTc.d.ts} +72 -19
- package/dist/{postgrest-DAxFltvO.js → postgrest-BrjrckDG.js} +74 -19
- package/dist/{postgrest-D5nUGm-c.d.ts → postgrest-D84p5dbA.d.ts} +12 -7
- package/dist/{powersync-CBhTBhG2.js → powersync-9PYOE1wt.js} +158 -21
- package/dist/{powersync-DAfo0EL5.js → powersync-DStC_g0B.js} +3 -3
- package/dist/powersync-xNRlC4jN.js +1 -0
- package/dist/preset/index.js +1 -1
- package/dist/{preset-BjLzeFpp.js → preset-pPrVyGU5.js} +74 -7
- package/dist/prisma/index.d.ts +2 -2
- package/dist/prisma/index.js +1 -1
- package/dist/{protected-action-QEA8arRB.js → protected-action-B40tU3yP.js} +15 -5
- package/dist/{protected-action-D8x73IGm.d.ts → protected-action-Ds_EUY8B.d.ts} +14 -7
- package/dist/{protected-action-DUYqb-Ma.js → protected-action-OpOxtTsN.js} +1 -1
- package/dist/{provider-C55OGXJ7.js → provider-CY4TSSJo.js} +2 -2
- package/dist/{provider-DfLeek9O.d.ts → provider-OtnIiFWm.d.ts} +1 -1
- package/dist/{provider-store-CaTv00tr.js → provider-store-BQP_pp8s.js} +2 -2
- package/dist/{pull-CQCGy1gv.js → pull-DLP4I1Kl.js} +7 -7
- package/dist/pull-UBjDnf4b.js +1 -0
- package/dist/{push-Dq_ca4-j.js → push-BSb8j1EW.js} +8 -8
- package/dist/{pushed-policy-CDuOL2de.js → pushed-policy-BecMsTtM.js} +1 -1
- package/dist/{pushed-policy-CryQheKq.d.ts → pushed-policy-Ck3FZcoy.d.ts} +1 -1
- 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 -1
- package/dist/react-native/index.d.ts +104 -39
- package/dist/react-native/index.js +199 -40
- package/dist/refresh-on-L9UOwATg.d.ts +49 -0
- package/dist/{replay-Bs9Df2fQ.d.ts → replay-E5X9E1lC.d.ts} +1 -1
- package/dist/{request-context-Duzdf0cd.js → request-context-DM6_jY1n.js} +2 -2
- package/dist/{request-schema-DhX7UbfQ.js → request-schema-CMP8Cmxd.js} +5 -0
- package/dist/resend/index.d.ts +4 -4
- package/dist/{resolve-names-Y1Cb22cp.js → resolve-names-CBl4r4_r.js} +6 -6
- package/dist/{rls-tHu7N_Pe.js → rls-DGBL-jDY.js} +20 -20
- package/dist/{rls-C5ZGzR_B.js → rls-pAHGYgTb.js} +4 -4
- package/dist/{role-builder-BK2-T6oD.js → role-builder-CMW4wWzn.js} +3 -157
- package/dist/{rpc-vHIwyXCp.js → rpc-KwX_Jcxz.js} +2 -2
- package/dist/{run-DUq1xU4K.js → run-B7lv3NuK.js} +8 -40
- package/dist/run-UPbacxPg.js +1 -0
- package/dist/{run-ticket-DfnZCh-u.js → run-ticket-CjvXr6wj.js} +1 -1
- package/dist/{run-ticket-ylovhyFQ.d.ts → run-ticket-DPaD27_r.d.ts} +2 -2
- package/dist/{runtime-BGnrOkVH.js → runtime-rf0ZuyF3.js} +1 -1
- package/dist/{saas-DK4V-3Is.js → saas-B8H1MsQ3.js} +13 -10
- package/dist/{scan-C3HRH9Fs.js → scan-0r3OZqqK.js} +1 -1
- package/dist/{schema-DvXvxPhQ.js → schema-B_9tXrbG.js} +1 -1
- package/dist/{schema-BOJjqlWL.js → schema-CuX70xgH.js} +15 -2
- package/dist/scim/index.d.ts +1 -1
- package/dist/scim/index.js +1 -1
- package/dist/{scim-jJBJ7g1Z.js → scim-C30QBBoF.js} +2 -1
- package/dist/{scim-D8YupzX1.js → scim-CovliQUg.js} +2 -2
- package/dist/{scopes-0Up_UA2t.js → scopes-BSdYaGHs.js} +9 -40
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +8 -8
- package/dist/{server-3cVlTLde.js → server-D0PW6ZCw.js} +2 -2
- package/dist/{server-types-CyRN0-Cd.d.ts → server-types-3OnXjZ2D.d.ts} +8 -8
- package/dist/{shared-l0oGGetg.js → shared-BRmCJxDK.js} +2 -2
- package/dist/{shared-DrGLwM3s.js → shared-DyYVEjKC.js} +2 -2
- package/dist/{sink-B5zoUW_O.d.ts → sink-ogbVkyeo.d.ts} +2 -2
- package/dist/{skills-Celu2W6v.js → skills-B4MPRxQd.js} +2 -2
- package/dist/{skills-B2qTbaQa.js → skills-C9sTD70r.js} +2 -2
- package/dist/{snapshot-CXlzi69u.js → snapshot-DN_8J27z.js} +6 -2
- package/dist/{snapshot-cache-BjAWkchD.d.ts → snapshot-cache-B4YvlGG_.d.ts} +20 -6
- package/dist/{snapshot-cache-Bx_4xC_6.js → snapshot-cache-B66h7FBK.js} +25 -8
- package/dist/solid/index.d.ts +7 -7
- package/dist/solid/index.js +6 -6
- package/dist/solid-start/index.d.ts +4 -4
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-oB1Hg1Fm.d.ts → sources-xdQShLDU.d.ts} +1 -1
- package/dist/{src-C_pi2Rnh.js → src-Brzq_0in.js} +193 -128
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +1 -1
- package/dist/{standard-webhooks-DOYEuOLx.d.ts → standard-webhooks-BfPaZ6T1.d.ts} +2 -2
- package/dist/{types-tQB2CEnY.d.ts → store-DYeB-_U3.d.ts} +114 -113
- package/dist/{store-RNFvaJJv.js → store-DmVqy74I.js} +13 -7
- package/dist/{store-options-Dil3lraY.js → store-options--zWn48PK.js} +76 -7
- package/dist/{stores-DxZWDXCs.js → stores-BYFopOm1.js} +3 -3
- package/dist/{stores-DZJvxFIZ.d.ts → stores-EPul_8MN.d.ts} +5 -6
- package/dist/{stream-9y9qw51m.d.ts → stream-W2RuUYly.d.ts} +1 -1
- package/dist/{subject-BGoM5o8B.js → subject-C7RddW0G.js} +8 -1
- package/dist/supabase/client.d.ts +2 -0
- package/dist/supabase/client.js +21 -0
- package/dist/supabase/index.d.ts +37 -6
- package/dist/supabase/index.js +6 -5
- package/dist/supabase/middleware.d.ts +8 -7
- package/dist/supabase/middleware.js +6 -6
- package/dist/{supabase-CDHMsDD0.js → supabase-BiViJpQ4.js} +31 -8
- package/dist/{supabase-DYWnT800.js → supabase-CogTyJH2.js} +3 -3
- package/dist/supabase-hook-BN46IrVI.js +1 -0
- package/dist/{supabase-hook-HPgwYb9V.js → supabase-hook-DX38Hj8h.js} +393 -32
- package/dist/{supautils-SwE642N1.js → supautils-BGf6zRvM.js} +12 -12
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +8 -8
- 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 +5 -5
- package/dist/sveltekit/index.d.ts +4 -4
- package/dist/sveltekit/index.js +2 -2
- package/dist/{tables-DimBcVWY.js → tables-BfOk0ymL.js} +7 -7
- package/dist/tanstack-start/index.d.ts +4 -4
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{tenancy-5d1zVBvK.js → tenancy-DvOHHk3-.js} +1 -1
- package/dist/terminal/index.d.ts +5 -5
- package/dist/terminal/index.js +6 -6
- package/dist/testing/core.d.ts +1 -1
- package/dist/testing/core.js +1 -1
- package/dist/testing/fixtures/index.d.ts +1 -1
- package/dist/testing/fixtures/index.js +2 -2
- package/dist/testing/index.d.ts +29 -22
- package/dist/testing/index.js +120 -48
- package/dist/testing/saas/index.d.ts +3 -3
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/token-D6pWn8Uj.d.ts +11 -0
- package/dist/{token-DC9EQiet.js → token-DaMnIU9O.js} +24 -8
- package/dist/{tool-refusal-Qpjs_W6M.js → tool-refusal-D4spOJ7I.js} +1 -1
- package/dist/trpc/index.d.ts +5 -5
- package/dist/trpc/index.js +3 -3
- package/dist/{type-helpers-c7Xo_2Cu.d.ts → type-helpers-i1EJ3Eb1.d.ts} +1 -1
- package/dist/{types-Cklw5hJo.d.ts → types-3Y8UpFkF.d.ts} +40 -1
- package/dist/{types-DlelvQk4.d.ts → types-B8qUkGja.d.ts} +2 -2
- package/dist/{types-CN0LsqbK.d.ts → types-CCEeSCMB.d.ts} +3 -3
- package/dist/{types-B2efzoSX.d.ts → types-CDVXR6YD.d.ts} +1 -1
- package/dist/{types-DsHGPtkR.d.ts → types-Ck1KOfug.d.ts} +2 -2
- package/dist/{types-DLvhVm1r.d.ts → types-CqcsNCaN.d.ts} +16 -7
- package/dist/{types-BB-zWDcR.d.ts → types-D-JO7lh8.d.ts} +5 -5
- package/dist/{types-CEinc15V.d.ts → types-D19MK4t-.d.ts} +3 -4
- package/dist/{types-B6ExllNo.d.ts → types-DGf_cpKF.d.ts} +2 -2
- package/dist/{types-rCRV4Ge-.d.ts → types-DmbfLu2p.d.ts} +4 -4
- package/dist/{types-ZzRGoViD.d.ts → types-NYoj8JBm.d.ts} +2 -2
- package/dist/{types-CWBsAwqn.d.ts → types-o1vu6Ks3.d.ts} +4 -4
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-Cl5eb-e1.js +1 -0
- package/dist/{usage-CPXeuAdT.js → usage-DC0UKe6C.js} +6 -6
- package/dist/{usage-CfZCQd0F.js → usage-DYtRVkcN.js} +2 -2
- package/dist/{validation-error-uvp-kyfO.d.ts → validation-error-Dx8PipbO.d.ts} +1 -1
- package/dist/{verify-DfT0QYNh.js → verify-Bpj0hauG.js} +19 -19
- package/dist/{version-cache-Df11C2Qp.d.ts → version-cache-DzNKWiI6.d.ts} +9 -3
- package/dist/{views-CD8wuL4Z.js → views-MWmJ6Y4P.js} +1 -1
- package/dist/vue/index.d.ts +7 -7
- package/dist/vue/index.js +6 -6
- package/dist/{waiter-CqUKX6CY.d.ts → waiter-NK_UuZbb.d.ts} +2 -2
- package/dist/{watch-DAkjm75Y.js → watch-CBHADqBH.js} +3 -3
- package/dist/watch-OYwAPCzx.js +1 -0
- package/dist/webmcp/index.d.ts +1 -1
- package/dist/webmcp/index.js +1 -1
- package/dist/{where-scope-DlCdCM_8.js → where-scope-BKrqUDVk.js} +5 -5
- package/dist/{who-can-BoDJm0Nc.js → who-can-KhVWMxtf.js} +4 -4
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +5 -4
- package/dist/workflow-sdk/index.d.ts +4 -4
- package/dist/{wrap-DxXB54Wu.d.ts → wrap-BHGA-SMM.d.ts} +2 -2
- package/dist/{wrap-B2wziJI_.js → wrap-C5PWzgkq.js} +1 -1
- package/package.json +8 -5
- package/schemas/approval-request-v1.json +5 -0
- package/schemas/catalog-v1.json +18 -2
- package/schemas/cli-result-v1.json +0 -2
- package/schemas/snapshot-v1.json +9 -0
- package/schemas/supabase-manifest-v1.json +1 -1
- package/skills/permdock-approvals/SKILL.md +8 -8
- package/skills/permdock-approvals/references/stores-and-resume.md +7 -3
- package/skills/permdock-audit/SKILL.md +1 -1
- package/skills/permdock-wire/references/adapters.md +3 -1
- package/dist/action-result-BcudBQOF.d.ts +0 -19
- package/dist/catalog-D3oS2GH3.js +0 -1
- package/dist/collect-D-eroIfV.js +0 -1
- package/dist/load-Dm0pSYH3.js +0 -1
- package/dist/output-files-BHOIlrfD.js +0 -1
- package/dist/powersync-0QVP_DuR.js +0 -1
- package/dist/pull-CCAChKuy.js +0 -1
- package/dist/renames-CGj7YwcQ.js +0 -175
- package/dist/run-C5P3x1EI.js +0 -1
- package/dist/supabase-hook-qsewAVZY.js +0 -1
- package/dist/usage-DmmO_xjJ.js +0 -1
- package/dist/watch-CuPz0D2M.js +0 -1
|
@@ -1,149 +1,98 @@
|
|
|
1
|
-
import { $
|
|
1
|
+
import { $t as Snapshot, E as Policy, K as CustomRoleSource, Kt as Instant, M as PolicyVocabulary, Qn as ExplainedDecision, Sr as AdapterId, X as EntitlementSource, Y as DecisionSink, Z as Intent, _r as Principal, bn as Scope, cn as DecisionEvent, ct as SettingsSource, er as LimitDetail, gr as Membership, gt as TokenSigner, nr as Obligation, pr as Delegation, q as CustomRoleSourceFactory, qn as Decision, rr as Quota, rt as MembershipSource, sr as Actor, st as RelationSource, tt as LimitStore, v as GrantLimit, wr as Condition, yr as Subject } from "./policy-types-D-GwfQTc.js";
|
|
2
2
|
import { D as RowOf, M as AppData, b as ResourceNode, u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
3
|
import { a as RoleTree, n as PlanTree, r as Role } from "./vocabulary-DEJ5j4mR.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
4
|
+
import { t as Operation } from "./operations-Ci_rT6Uo.js";
|
|
5
|
+
import { t as ApprovalPolicies } from "./approval-policies-oNnckT12.js";
|
|
6
|
+
import { a as HostedPolicies } from "./hosted-BFNXwcjd.js";
|
|
7
|
+
//#region src/core/checks.d.ts
|
|
7
8
|
/**
|
|
8
|
-
* One
|
|
9
|
-
*
|
|
9
|
+
* One check of `canAll` or `decideAll`: a permission alone, or with the row it
|
|
10
|
+
* is checked on.
|
|
10
11
|
*/
|
|
11
|
-
type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* Matches an operation call whose `meta.risk` is one of these; a call that
|
|
19
|
-
* names no operation never matches.
|
|
20
|
-
*/
|
|
21
|
-
readonly risk?: readonly OperationRisk[];
|
|
22
|
-
/**
|
|
23
|
-
* Matches an operation call whose `meta.effects` includes one of these; a
|
|
24
|
-
* call that names no operation never matches.
|
|
25
|
-
*/
|
|
26
|
-
readonly effects?: readonly OperationEffect[];
|
|
27
|
-
/** Absent: every tenant. */
|
|
28
|
-
readonly tenant?: string;
|
|
29
|
-
/**
|
|
30
|
-
* Actor kinds it applies to (`['agent']`); absent: every call. A call without
|
|
31
|
-
* an actor never matches a list.
|
|
32
|
-
*/
|
|
33
|
-
readonly actors?: readonly string[];
|
|
34
|
-
/**
|
|
35
|
-
* A portable condition over the row; instance permissions only, since a
|
|
36
|
-
* collection action has no row.
|
|
37
|
-
*/
|
|
38
|
-
readonly where?: Condition;
|
|
39
|
-
/** A portable condition over the call's input (the proposed row). */
|
|
40
|
-
readonly check?: Condition;
|
|
41
|
-
/**
|
|
42
|
-
* The same shape as `allow(..., { approval })`. An `escalation` here widens
|
|
43
|
-
* only this entry's stages, never the code's.
|
|
44
|
-
*/
|
|
45
|
-
readonly approval: ApprovalOption;
|
|
12
|
+
type PermissionCheck = Permission | readonly [permission: Permission, data?: unknown];
|
|
13
|
+
/** One entry of `getPermissions`: plain JSON, safe across a cache boundary. */
|
|
14
|
+
type PermissionState = {
|
|
15
|
+
readonly allowed: boolean;
|
|
16
|
+
readonly outcome: Decision["outcome"];
|
|
17
|
+
/** The first denial's reason; absent unless `outcome` is `denied`. */
|
|
18
|
+
readonly reason?: string;
|
|
46
19
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
readonly
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}) => readonly ApprovalPolicy[] | Promise<readonly ApprovalPolicy[]>;
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/core/instance-cache.d.ts
|
|
22
|
+
type InstanceCacheStats = {
|
|
23
|
+
/** Instances and source answers built or read. */
|
|
24
|
+
readonly builds: number;
|
|
25
|
+
/** Calls answered by a build already in flight. */
|
|
26
|
+
readonly shared: number;
|
|
27
|
+
/** Calls answered from an entry. */
|
|
28
|
+
readonly hits: number;
|
|
29
|
+
readonly evictions: number;
|
|
30
|
+
readonly size: number;
|
|
59
31
|
};
|
|
60
32
|
/**
|
|
61
|
-
* The
|
|
62
|
-
*
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* The in-process `ApprovalPolicySource`, usable directly as the
|
|
66
|
-
* `approvalPolicies` option: it is the source and its feature at once.
|
|
33
|
+
* The key of one cached instance: who it serves, at which authorization
|
|
34
|
+
* version, for which tenant and intent. `parts` holds everything else that
|
|
35
|
+
* shapes the instance (the claims, the request scope); it is hashed.
|
|
67
36
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
readonly permission?: string;
|
|
72
|
-
readonly risk?: ReadonlySet<OperationRisk>;
|
|
73
|
-
readonly effects?: ReadonlySet<OperationEffect>;
|
|
37
|
+
type InstanceCacheKey = {
|
|
38
|
+
readonly principal: string;
|
|
39
|
+
readonly version: number;
|
|
74
40
|
readonly tenant?: string;
|
|
75
|
-
readonly
|
|
76
|
-
readonly
|
|
77
|
-
readonly check?: Condition;
|
|
78
|
-
readonly approval: NonNullable<Grant["approval"]>;
|
|
41
|
+
readonly intent: "read" | "write";
|
|
42
|
+
readonly parts: unknown;
|
|
79
43
|
};
|
|
80
|
-
/** `"failed"`: the source threw or returned something that cannot be applied. */
|
|
81
|
-
/** What `tightenApproval` reads besides the code's approval. */
|
|
82
|
-
type TightenInput = Parameters<typeof tightenApproval>[2];
|
|
83
|
-
/**
|
|
84
|
-
* Approval policies loaded for an instance: the tightening the evaluator
|
|
85
|
-
* applies to each allow, or `"failed"` when the source threw or returned an
|
|
86
|
-
* invalid entry (every allow then denies).
|
|
87
|
-
*/
|
|
88
|
-
type LoadedApprovalPolicies = {
|
|
89
|
-
readonly tighten: (code: Grant["approval"], input: TightenInput) => Grant["approval"];
|
|
90
|
-
} | "failed";
|
|
91
44
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
45
|
+
* Instances shared across requests: a subject at a known authorization version
|
|
46
|
+
* gets the instance built for it, until `maxAgeMs` passes or `evict` drops it.
|
|
47
|
+
* An instance whose version is unknown is never cached.
|
|
95
48
|
*/
|
|
96
|
-
type
|
|
97
|
-
readonly
|
|
98
|
-
|
|
49
|
+
type InstanceCache = {
|
|
50
|
+
readonly name?: string;
|
|
51
|
+
/** The longest an instance, a custom role or an entitlement is reused. */
|
|
52
|
+
readonly maxAgeMs: number;
|
|
53
|
+
/**
|
|
54
|
+
* The instance for `key`: a stored one, the build in flight, or `build()`. A
|
|
55
|
+
* rejected build is not stored.
|
|
56
|
+
*/
|
|
57
|
+
instance: <T>(key: InstanceCacheKey, owners: readonly unknown[], build: () => Promise<T>) => Promise<T>;
|
|
58
|
+
/**
|
|
59
|
+
* `source` with every answer kept for `maxAgeMs`, keyed by its arguments.
|
|
60
|
+
* With `of`, the answers are keyed by `of.owner` and `of.principal` instead
|
|
61
|
+
* of `source`, so the new source a `CustomRoleSourceFactory` returns per
|
|
62
|
+
* subject reuses them, and `evict(of.principal)` drops them.
|
|
63
|
+
*/
|
|
64
|
+
customRoles: (source: CustomRoleSource, of?: CustomRoleOwner) => CustomRoleSource;
|
|
65
|
+
/** `source` with every answer kept for `maxAgeMs`, per principal and tenant. */
|
|
66
|
+
entitlements: (source: EntitlementSource) => EntitlementSource;
|
|
67
|
+
/**
|
|
68
|
+
* Drops `principal`'s instances, entitlements and the answers of custom-role
|
|
69
|
+
* sources cached for it.
|
|
70
|
+
*/
|
|
71
|
+
evict: (principal: string) => void;
|
|
72
|
+
stats: () => InstanceCacheStats;
|
|
99
73
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
readonly
|
|
113
|
-
|
|
114
|
-
readonly
|
|
115
|
-
readonly problem: ApprovalPolicyProblem;
|
|
74
|
+
/** The factory and principal a per-subject custom-role source belongs to. */
|
|
75
|
+
type CustomRoleOwner = {
|
|
76
|
+
readonly owner: object;
|
|
77
|
+
readonly principal: string;
|
|
78
|
+
};
|
|
79
|
+
type InstanceCacheOptions = {
|
|
80
|
+
/** Entries kept; the least recently used goes first. Default 10,000. */
|
|
81
|
+
readonly maxEntries?: number;
|
|
82
|
+
/**
|
|
83
|
+
* Milliseconds an entry is reused: the longest a custom-role or entitlement
|
|
84
|
+
* change waits to reach an instance. Default 5,000; clamped to 0 to 60,000.
|
|
85
|
+
*/
|
|
86
|
+
readonly maxAgeMs?: number;
|
|
87
|
+
/** Epoch milliseconds. */
|
|
88
|
+
readonly now?: () => number;
|
|
116
89
|
};
|
|
117
90
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*/
|
|
122
|
-
declare function validateApprovalPolicy(policy: Policy, entry: unknown): ApprovalPolicyValidation;
|
|
123
|
-
/**
|
|
124
|
-
* `code` with every matching entry added as further stages: the result needs
|
|
125
|
-
* all of them (`'sequential'` when any part is ordered), keeps the code's
|
|
126
|
-
* escalation, the shortest `ttl`, and `distinct` unless every part opts out.
|
|
127
|
-
* Without a matching entry, `code` unchanged.
|
|
128
|
-
*/
|
|
129
|
-
declare function tightenApproval(code: Grant["approval"], entries: readonly LoadedApprovalPolicy[], input: {
|
|
130
|
-
readonly permission: string;
|
|
131
|
-
readonly tenant: string | undefined;
|
|
132
|
-
readonly subject: Subject;
|
|
133
|
-
readonly current: unknown;
|
|
134
|
-
readonly next: unknown;
|
|
135
|
-
readonly now: number;
|
|
136
|
-
readonly scopes: readonly Scope[];
|
|
137
|
-
/** The meta of the operation the call decides, when it names one. */
|
|
138
|
-
readonly operation?: OperationMeta | undefined;
|
|
139
|
-
}): Grant["approval"];
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region src/core/checks.d.ts
|
|
142
|
-
/**
|
|
143
|
-
* One check of `canAll` or `decideAll`: a permission alone, or with the row it
|
|
144
|
-
* is checked on.
|
|
91
|
+
* An in-process `InstanceCache`: a bounded LRU that shares builds in flight.
|
|
92
|
+
* Create it once at module scope and pass it as `instances` to every adapter of
|
|
93
|
+
* the app; adapters with the same sources and policy share entries.
|
|
145
94
|
*/
|
|
146
|
-
|
|
95
|
+
declare function instanceCache(options?: InstanceCacheOptions): InstanceCache;
|
|
147
96
|
//#endregion
|
|
148
97
|
//#region src/core/limits.d.ts
|
|
149
98
|
declare function memoryLimitStore(): LimitStore & {
|
|
@@ -325,6 +274,13 @@ type DecideOptions = {
|
|
|
325
274
|
* arguments. Never read when deciding.
|
|
326
275
|
*/
|
|
327
276
|
readonly args?: unknown;
|
|
277
|
+
/**
|
|
278
|
+
* The `approvalFingerprint` of the exact operation the call runs. An
|
|
279
|
+
* `approval-required` token binds it, the request records it, and resuming
|
|
280
|
+
* under another fingerprint denies with `approval-fingerprint-mismatch`.
|
|
281
|
+
* Never read when deciding.
|
|
282
|
+
*/
|
|
283
|
+
readonly fingerprint?: string;
|
|
328
284
|
/**
|
|
329
285
|
* The application's own data for the decision event (a request id, a route).
|
|
330
286
|
* Plain JSON; a value that is not is dropped. Never read when deciding.
|
|
@@ -602,6 +558,14 @@ type PermDockOptions = {
|
|
|
602
558
|
* handlers, never for a mutation.
|
|
603
559
|
*/
|
|
604
560
|
readonly intent?: Intent;
|
|
561
|
+
/**
|
|
562
|
+
* The principal's authorization version this request already read, such as
|
|
563
|
+
* `bsb.bootstrap()`'s `authz_ver`: the memberships source's `version` is not
|
|
564
|
+
* called. Anything but a non-negative integer is ignored.
|
|
565
|
+
*/
|
|
566
|
+
readonly version?: {
|
|
567
|
+
readonly known: number;
|
|
568
|
+
};
|
|
605
569
|
readonly customRoles?: CustomRoleSource | CustomRoleSourceFactory;
|
|
606
570
|
/**
|
|
607
571
|
* Plans and seats from billing, merged into `principal.plans` for the active
|
|
@@ -645,6 +609,12 @@ type PermDockOptions = {
|
|
|
645
609
|
* into `subject.context`; keys from `policy.context` win on a clash.
|
|
646
610
|
*/
|
|
647
611
|
readonly context?: Readonly<Record<string, unknown>>;
|
|
612
|
+
/**
|
|
613
|
+
* Reuses the instance built for a subject at a known authorization version
|
|
614
|
+
* across requests, until the version moves or `maxAgeMs` passes: one
|
|
615
|
+
* `instanceCache()` at module scope. `getPermDockSync` ignores it.
|
|
616
|
+
*/
|
|
617
|
+
readonly instances?: InstanceCache;
|
|
648
618
|
};
|
|
649
619
|
/**
|
|
650
620
|
* The instance for `user`, built synchronously. Every input must answer
|
|
@@ -659,4 +629,4 @@ declare function getPermDockSync<TUser, TPrincipal extends Principal = Principal
|
|
|
659
629
|
*/
|
|
660
630
|
declare function getPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, user: TUser | Subject | null, options?: PermDockOptions): Promise<PermDock<V>>;
|
|
661
631
|
//#endregion
|
|
662
|
-
export {
|
|
632
|
+
export { PermissionState as A, CustomRoleOwner as C, InstanceCacheStats as D, InstanceCacheOptions as E, instanceCache as O, memoryLimitStore as S, InstanceCacheKey as T, PrincipalSource as _, PermDock as a, Limits as b, RowPair as c, UncheckedData as d, WhereResult as f, PrincipalIdentityLink as g, PrincipalIdentity as h, LoadedRows as i, PermissionCheck as k, SimulateOptions as l, getPermDockSync as m, DecideOptions as n, PermDockOptions as o, getPermDock as p, DeriveOptions as r, RowData as s, DecideIdsOptions as t, SnapshotOptions as u, memoryPrincipalSource as v, InstanceCache as w, limits as x, PermittedIdsOptions as y };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as crud } from "./src-
|
|
1
|
+
import { c as crud } from "./src-Brzq_0in.js";
|
|
2
2
|
import { v as resource } from "./permission-registry-B8tYxPIt.js";
|
|
3
3
|
import { f as definePlans, p as defineRoles } from "./grantee-Dke-9rd1.js";
|
|
4
|
-
import { t as definePermissions } from "./permissions-
|
|
4
|
+
import { t as definePermissions } from "./permissions-BaoLxy66.js";
|
|
5
5
|
//#region src/testing/saas/schema.ts
|
|
6
6
|
function accepts(kind, value) {
|
|
7
7
|
switch (kind) {
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
2
2
|
import { d as attachRegistry, p as walk, r as formerByKey, t as assertKeys } from "./permission-registry-B8tYxPIt.js";
|
|
3
3
|
import { r as assertGraphTargets } from "./resource-relations-8-pCScBO.js";
|
|
4
|
-
//#region src/core/operation-risks.ts
|
|
5
|
-
/** Every `meta.risk` level, lowest first. */
|
|
6
|
-
const OPERATION_RISKS = Object.freeze([
|
|
7
|
-
"low",
|
|
8
|
-
"medium",
|
|
9
|
-
"high",
|
|
10
|
-
"critical"
|
|
11
|
-
]);
|
|
12
|
-
function isOperationRisk(value) {
|
|
13
|
-
return OPERATION_RISKS.some((risk) => risk === value);
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
4
|
//#region src/core/permissions.ts
|
|
17
5
|
function definePermissions(input, options) {
|
|
18
6
|
const registry = /* @__PURE__ */ new Map();
|
|
@@ -27,4 +15,4 @@ function definePermissions(input, options) {
|
|
|
27
15
|
return freezeDeep(attachRegistry(tree, registry, leaves));
|
|
28
16
|
}
|
|
29
17
|
//#endregion
|
|
30
|
-
export {
|
|
18
|
+
export { definePermissions as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { i as requirePeer } from "./peer-
|
|
1
|
+
import { n as CliError } from "./errors-BhRkoNS7.js";
|
|
2
|
+
import { i as requirePeer } from "./peer-BuK9F53f.js";
|
|
3
3
|
//#region src/cli/pg.ts
|
|
4
4
|
const CONNECT_TIMEOUT_MS = 1e4;
|
|
5
5
|
const STATEMENT_TIMEOUT_MS = 6e4;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as Policy, _r as Principal, yr as Subject } from "./policy-types-D-GwfQTc.js";
|
|
2
2
|
import { c as saasPlans, l as saasRoles, s as saasPermissions } from "./permissions-Bx6UI8n1.js";
|
|
3
3
|
//#region src/testing/saas/policy.d.ts
|
|
4
4
|
/** Daily API-key quota per subject; the bucket should be per tenant too. */
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
-
import { c as withGrantSchema,
|
|
3
|
+
import { c as withGrantSchema, i as completeGrant, l as normalizeWhere, o as flattenGrants, s as flattenPermissions } from "./role-builder-CMW4wWzn.js";
|
|
4
4
|
import { c as listPermissions, i as getRegistry, m as annotationsFor, n as findPermission, s as isRegistryTree } from "./permission-registry-B8tYxPIt.js";
|
|
5
5
|
import { d as isSelfParented, l as isFieldRelation } from "./resource-relations-8-pCScBO.js";
|
|
6
6
|
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
7
7
|
import { r as sha256Digest } from "./sha256-C-4WXKIu.js";
|
|
8
|
-
import { n as defineScopes, s as resolveScope } from "./scopes-
|
|
8
|
+
import { n as defineScopes, s as resolveScope } from "./scopes-BSdYaGHs.js";
|
|
9
9
|
import { o as flattenGrantee, r as asGrantee, v as listRoles } from "./grantee-Dke-9rd1.js";
|
|
10
|
+
import { i as assertApprovalVersions, r as assertApprovalRelations } from "./approval-normalize-CUjgSsOl.js";
|
|
10
11
|
import { n as normalizeValidity } from "./validity-Buc7w8E9.js";
|
|
11
12
|
import { t as byCodePoint } from "./compare-DTfyUunF.js";
|
|
12
|
-
import { a as relationStart, i as relationHops, n as isGraphRelation, t as inheritCondition } from "./grantee-conditions-
|
|
13
|
-
import { a as memberOfFields, p as scopeField, u as relatesTo } from "./tenancy-
|
|
13
|
+
import { a as relationStart, i as relationHops, n as isGraphRelation, t as inheritCondition } from "./grantee-conditions-DX4K_gGI.js";
|
|
14
|
+
import { a as memberOfFields, p as scopeField, u as relatesTo } from "./tenancy-DvOHHk3-.js";
|
|
14
15
|
//#region src/core/policy-assertions.ts
|
|
15
16
|
function assertParentGraph(resources) {
|
|
16
17
|
for (const node of resources.values()) {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
-
import {
|
|
3
|
+
import { l as normalizeWhere } from "./role-builder-CMW4wWzn.js";
|
|
4
4
|
import { n as PermDockValidationError } from "./validation-error-CYg2kJEw.js";
|
|
5
5
|
import { i as getRegistry, n as findPermission, v as resource } from "./permission-registry-B8tYxPIt.js";
|
|
6
|
-
import { n as defineScopes } from "./scopes-
|
|
6
|
+
import { n as defineScopes } from "./scopes-BSdYaGHs.js";
|
|
7
7
|
import { f as definePlans, p as defineRoles } from "./grantee-Dke-9rd1.js";
|
|
8
|
+
import { o as readWireApproval } from "./approval-normalize-CUjgSsOl.js";
|
|
8
9
|
import { r as readWireValidity } from "./validity-Buc7w8E9.js";
|
|
9
|
-
import { a as indexPolicy, f as normalizeDelegation } from "./policy-
|
|
10
|
-
import { o as isPortableCondition } from "./hosted-
|
|
11
|
-
import { t as definePermissions } from "./permissions-
|
|
10
|
+
import { a as indexPolicy, f as normalizeDelegation } from "./policy-cV_wwPb8.js";
|
|
11
|
+
import { o as isPortableCondition } from "./hosted-waouw2V-.js";
|
|
12
|
+
import { t as definePermissions } from "./permissions-BaoLxy66.js";
|
|
12
13
|
import { n as copyJson, t as checkSchema } from "./json-schema-BPGa-RjQ.js";
|
|
13
|
-
import { t as parseCatalog } from "./parse-
|
|
14
|
-
import { n as parsePushedPolicy } from "./pushed-policy-
|
|
14
|
+
import { t as parseCatalog } from "./parse-UTC-sDrt.js";
|
|
15
|
+
import { n as parsePushedPolicy } from "./pushed-policy-BecMsTtM.js";
|
|
15
16
|
//#region src/catalog/json-schema-validator.ts
|
|
16
17
|
const ANNOTATIONS = /* @__PURE__ */ new Set([
|
|
17
18
|
"$schema",
|
|
@@ -292,7 +293,7 @@ function buildGrant(tree, raw) {
|
|
|
292
293
|
role: raw.role,
|
|
293
294
|
where,
|
|
294
295
|
check: condition(raw.check, `grant '${raw.permission}' check`, raw.portable !== false),
|
|
295
|
-
approval: raw.approval,
|
|
296
|
+
approval: readWireApproval(raw.approval),
|
|
296
297
|
portable: raw.portable !== false,
|
|
297
298
|
limit: raw.limit,
|
|
298
299
|
fields: raw.fields,
|
|
@@ -193,7 +193,7 @@ type ActorKind = OpenUnion<"mcp-client" | "oauth-client" | "support" | "imperson
|
|
|
193
193
|
* The adapter a decision event names: a PermDock entry, or an integrator's own
|
|
194
194
|
* adapter.
|
|
195
195
|
*/
|
|
196
|
-
type AdapterId = OpenUnion<"server" | "next" | "hono" | "express" | "fastify" | "elysia" | "nest" | "node" | "h3" | "sveltekit" | "astro" | "solid-start" | "tanstack-start" | "trpc" | "orpc" | "supabase-middleware" | "convex" | "authzen" | "mcp" | "a2a" | "agent" | "ai-sdk" | "claude-agent" | "openai" | "eve" | "terminal" | "webmcp" | "workflow" | "chat" | "delivery">;
|
|
196
|
+
type AdapterId = OpenUnion<"server" | "next" | "hono" | "express" | "fastify" | "elysia" | "nest" | "node" | "h3" | "sveltekit" | "astro" | "solid-start" | "tanstack-start" | "trpc" | "orpc" | "supabase-middleware" | "better-supabase" | "convex" | "authzen" | "mcp" | "a2a" | "agent" | "ai-sdk" | "claude-agent" | "openai" | "eve" | "terminal" | "webmcp" | "workflow" | "chat" | "delivery">;
|
|
197
197
|
/**
|
|
198
198
|
* How a membership was obtained (`membership.via`); `viaOnly` and support rules
|
|
199
199
|
* match it by equality.
|
|
@@ -289,10 +289,6 @@ type Membership = {
|
|
|
289
289
|
* conditions or RLS, and never written into token claims.
|
|
290
290
|
*/
|
|
291
291
|
readonly x?: AppData;
|
|
292
|
-
/** Input only: an instance of the first scope. */
|
|
293
|
-
readonly tenant?: string;
|
|
294
|
-
/** Input only: an instance of the second scope, inside `tenant`. */
|
|
295
|
-
readonly team?: string;
|
|
296
292
|
};
|
|
297
293
|
/**
|
|
298
294
|
* One permission a custom role adds or removes. It names a declared permission
|
|
@@ -595,6 +591,11 @@ type ApprovalRequiredDecision = {
|
|
|
595
591
|
readonly grant: MatchedGrant;
|
|
596
592
|
readonly reason: "human";
|
|
597
593
|
readonly token: string;
|
|
594
|
+
/**
|
|
595
|
+
* The `fingerprint` the call passed, bound into `token`; the request it opens
|
|
596
|
+
* records it, and a resume under another fingerprint is refused.
|
|
597
|
+
*/
|
|
598
|
+
readonly fingerprint?: string;
|
|
598
599
|
/** Present only with `explain: true`. */
|
|
599
600
|
readonly trace?: Trace;
|
|
600
601
|
};
|
|
@@ -690,6 +691,16 @@ type PermissionApprover = {
|
|
|
690
691
|
readonly kind: "permission";
|
|
691
692
|
readonly permission: string;
|
|
692
693
|
};
|
|
694
|
+
/**
|
|
695
|
+
* The requester's manager, or anyone up the chain within `levels` (default 1),
|
|
696
|
+
* read from the `manager` relation on the requester's `user` record. Checked
|
|
697
|
+
* only through verdict facts (`ApprovalVerdict.relations`) that the handler
|
|
698
|
+
* reads from its `RelationSource`.
|
|
699
|
+
*/
|
|
700
|
+
type ManagerApprover = {
|
|
701
|
+
readonly kind: "manager";
|
|
702
|
+
readonly levels?: number;
|
|
703
|
+
};
|
|
693
704
|
/**
|
|
694
705
|
* An approver who matches at least one item; an item that is a list matches
|
|
695
706
|
* when every entry does.
|
|
@@ -701,11 +712,11 @@ type AnyOfApprover = {
|
|
|
701
712
|
/**
|
|
702
713
|
* Who may approve: a subject-only grantee, a `relation()` the approver holds on
|
|
703
714
|
* the requested row (checked when the verdict is given), `user(id)`,
|
|
704
|
-
* `holder(permission)`, or `anyOf(...)`. A list (or `allOf(...)`)
|
|
705
|
-
* approver who satisfies every item.
|
|
715
|
+
* `holder(permission)`, `manager()`, or `anyOf(...)`. A list (or `allOf(...)`)
|
|
716
|
+
* matches an approver who satisfies every item.
|
|
706
717
|
*/
|
|
707
|
-
type Approver = Grantee | UserApprover | PermissionApprover | AnyOfApprover;
|
|
708
|
-
type ApproverInput = GranteeInput | UserApprover | PermissionApprover | {
|
|
718
|
+
type Approver = Grantee | UserApprover | PermissionApprover | ManagerApprover | AnyOfApprover;
|
|
719
|
+
type ApproverInput = GranteeInput | UserApprover | PermissionApprover | ManagerApprover | {
|
|
709
720
|
readonly kind: "any-of";
|
|
710
721
|
readonly of: readonly ApproverInput[];
|
|
711
722
|
} | readonly ApproverInput[];
|
|
@@ -723,6 +734,13 @@ declare function anyOf(...items: readonly ApproverInput[]): {
|
|
|
723
734
|
declare function allOf(...items: readonly ApproverInput[]): readonly ApproverInput[];
|
|
724
735
|
/** A named approver for `approval.by`, matched on the approver's principal id. */
|
|
725
736
|
declare function user(id: string): UserApprover;
|
|
737
|
+
/**
|
|
738
|
+
* Approves when the approver manages the requester, directly or within `levels`
|
|
739
|
+
* steps up the chain (1 to `MAX_MANAGER_LEVELS`, default 1).
|
|
740
|
+
*/
|
|
741
|
+
declare function manager(options?: {
|
|
742
|
+
readonly levels?: number;
|
|
743
|
+
}): ManagerApprover;
|
|
726
744
|
//#endregion
|
|
727
745
|
//#region src/core/scopes.d.ts
|
|
728
746
|
/**
|
|
@@ -1183,6 +1201,13 @@ type Snapshot = {
|
|
|
1183
1201
|
* still cover.
|
|
1184
1202
|
*/
|
|
1185
1203
|
readonly delegated?: readonly string[];
|
|
1204
|
+
/**
|
|
1205
|
+
* The token's authorization version (`authz_ver`) the snapshot was built
|
|
1206
|
+
* from. A client compares it with the version in a refresh signal.
|
|
1207
|
+
*/
|
|
1208
|
+
readonly authzVersion?: number;
|
|
1209
|
+
/** The Auth session (`session_id`) the snapshot was built for. */
|
|
1210
|
+
readonly sessionId?: string;
|
|
1186
1211
|
};
|
|
1187
1212
|
/**
|
|
1188
1213
|
* A grant the subject would hold on another plan: its permission, role and
|
|
@@ -1371,6 +1396,15 @@ type LocalSnapshotRows = {
|
|
|
1371
1396
|
readonly permissions: string;
|
|
1372
1397
|
readonly includes: string;
|
|
1373
1398
|
};
|
|
1399
|
+
/**
|
|
1400
|
+
* The user's authorization version row (`permdock_authz_version`), the value
|
|
1401
|
+
* the token hook stamps `authz_ver` from.
|
|
1402
|
+
*/
|
|
1403
|
+
readonly version?: {
|
|
1404
|
+
readonly table: string;
|
|
1405
|
+
readonly user: string;
|
|
1406
|
+
readonly version: string;
|
|
1407
|
+
};
|
|
1374
1408
|
};
|
|
1375
1409
|
/**
|
|
1376
1410
|
* Grants a custom role entry resolves to, held by a placeholder role the client
|
|
@@ -1721,6 +1755,16 @@ type DecisionProvider = {
|
|
|
1721
1755
|
* query and no answer outlives the instance.
|
|
1722
1756
|
*/
|
|
1723
1757
|
type SourceMemo = <T>(key: string, read: () => T) => T;
|
|
1758
|
+
/**
|
|
1759
|
+
* One read a source made, for an `onSourceCall` hook: `cached` is `true` when
|
|
1760
|
+
* the instance's `SourceMemo` answered it without a query.
|
|
1761
|
+
*/
|
|
1762
|
+
type SourceCall = {
|
|
1763
|
+
readonly source: string;
|
|
1764
|
+
readonly method: string;
|
|
1765
|
+
readonly durationMs: number;
|
|
1766
|
+
readonly cached: boolean;
|
|
1767
|
+
};
|
|
1724
1768
|
/** What `getPermDock` passes to every source call besides its query. */
|
|
1725
1769
|
type SourceContext = {
|
|
1726
1770
|
/** Absent when the source is called outside `getPermDock`. */
|
|
@@ -2089,16 +2133,22 @@ type ApprovalStage = {
|
|
|
2089
2133
|
* order. `'sequential'`: stages complete in order; an approver signs only the
|
|
2090
2134
|
* first incomplete stage. An approver signs once per request.
|
|
2091
2135
|
*/
|
|
2092
|
-
type
|
|
2136
|
+
type ApprovalCombine = "any" | "all" | "sequential";
|
|
2137
|
+
/**
|
|
2138
|
+
* `'authorize'` (the default): someone other than the request's principal
|
|
2139
|
+
* approves. `'confirm'`: the principal may approve their own request. Neither
|
|
2140
|
+
* is met by an approver acting through an agent or a delegated token.
|
|
2141
|
+
*/
|
|
2142
|
+
type ApprovalMode = "confirm" | "authorize";
|
|
2093
2143
|
type ApprovalRequirement = {
|
|
2094
|
-
/** Set when `
|
|
2144
|
+
/** Set when `combine` is `'any'` (the default); absent under `stages`. */
|
|
2095
2145
|
readonly by?: Approver | readonly Approver[];
|
|
2096
2146
|
/** Absent means `'any'`. */
|
|
2097
|
-
readonly
|
|
2098
|
-
/** Set when `
|
|
2147
|
+
readonly combine?: ApprovalCombine;
|
|
2148
|
+
/** Set when `combine` is `'all'` or `'sequential'`. */
|
|
2099
2149
|
readonly stages?: readonly ApprovalStage[];
|
|
2100
|
-
/**
|
|
2101
|
-
readonly
|
|
2150
|
+
/** Absent means `'authorize'`. */
|
|
2151
|
+
readonly mode?: ApprovalMode;
|
|
2102
2152
|
/** `'resource-change'` binds the approval to the row's `version` field. */
|
|
2103
2153
|
readonly staleOn?: "resource-change";
|
|
2104
2154
|
/**
|
|
@@ -2119,7 +2169,7 @@ type ApprovalOption = "human" | {
|
|
|
2119
2169
|
* `'all'` or `'sequential'` with `stages`; absent means `'any'` with
|
|
2120
2170
|
* `by`.
|
|
2121
2171
|
*/
|
|
2122
|
-
readonly
|
|
2172
|
+
readonly combine?: ApprovalCombine;
|
|
2123
2173
|
readonly stages?: readonly {
|
|
2124
2174
|
readonly by: ApproverInput;
|
|
2125
2175
|
readonly quorum?: number;
|
|
@@ -2129,8 +2179,11 @@ type ApprovalOption = "human" | {
|
|
|
2129
2179
|
readonly to: ApproverInput;
|
|
2130
2180
|
};
|
|
2131
2181
|
}[];
|
|
2132
|
-
/**
|
|
2133
|
-
|
|
2182
|
+
/**
|
|
2183
|
+
* `'confirm'` lets the request's principal approve it; absent means
|
|
2184
|
+
* `'authorize'`.
|
|
2185
|
+
*/
|
|
2186
|
+
readonly mode?: ApprovalMode;
|
|
2134
2187
|
/**
|
|
2135
2188
|
* `'resource-change'`: the approval covers the row as it was when it was
|
|
2136
2189
|
* requested. The resource must declare `version`; once that field
|
|
@@ -2676,4 +2729,4 @@ type SubjectOf<P> = {
|
|
|
2676
2729
|
readonly expiresAt?: number;
|
|
2677
2730
|
};
|
|
2678
2731
|
//#endregion
|
|
2679
|
-
export {
|
|
2732
|
+
export { LimitConsumeInput as $, GrantedDecision as $n, Snapshot as $t, PolicyOptions as A, anyOf as An, RelatedCondition as Ar, ApiKeyPrincipal as At, SupportConsent as B, assurance as Bn, credentialDelegation as Bt, HostedGrantRef as C, AnyOfApprover as Cn, MembershipVia as Cr, DecideSupportSessionOptions as Ct, PolicyAppDataSchemas as D, PermissionApprover as Dn, MemberOfCondition as Dr, SupportSessionRequest as Dt, Policy as E, ManagerApprover as En, ConditionValue as Er, SupportSessionPolicy as Et, RoleOptions as F, GranteeInput as Fn, hasConditionOp as Fr, CredentialPermissionInput as Ft, CustomRoleContext as G, AppObligation as Gn, InstanceHandle as Gt, VocabularyFromInput as H, inherit as Hn, decideCredential as Ht, RoleScope as I, InheritGrantee as In, isCondition as Ir, CredentialPolicy as It, DecisionProvider as J, Denial as Jn, LocalMembershipRows as Jt, CustomRoleSource as K, ApprovalRequiredDecision as Kn, Instant as Kt, SeparationConflict as L, RelationGrantee as Ln, isConditionDate as Lr, CredentialPolicyViolation as Lt, PolicyVocabulary as M, manager as Mn, RestrictedAncestors as Mr, CredentialDecision as Mt, PrincipalOf as N, user as Nn, SqlFunctionArg as Nr, CredentialKind as Nt, PolicyDelegation as O, UserApprover as On, MemberOfParent as Or, decideSupportSession as Ot, RoleBinding as P, Grantee as Pn, SqlFunctionCondition as Pr, CredentialPermission as Pt, JwtClaims as Q, ExplainedDecision as Qn, LocalSnapshotRows as Qt, SubjectOf as R, actor as Rn, isConditionRef as Rr, CredentialRequest as Rt, GrantValidity as S, ScopeNames as Sn, AdapterId as Sr, WhereCompiler as St, ObligationInput as T, ApproverInput as Tn, ConditionRef as Tr, SupportSessionDecision as Tt, WireValidity as U, plan as Un, isFeedId as Ut, ValidateMode as V, authenticated as Vn, credentialPolicyViolation as Vt, CredentialVerifier as W, relation as Wn, parseCredential as Wt, EntitlementSource as X, DenialReason as Xn, LocalRowValue as Xt, DecisionSink as Y, DenialDetails as Yn, LocalRowColumn as Yt, Intent as Z, DeniedDecision as Zn, LocalSnapshotManifest as Zt, GrantCondition as _, WireDenial as _n, Principal as _r, TokenVerifier as _t, ApprovalOption as a, AuthEvent as an, TraceSkip as ar, RelationGroup as at, GrantOptions as b, Scope as bn, VerifiedClaims as br, VersionContext as bt, AssuranceRequirement as c, DecisionEvent as cn, Assurance as cr, SettingsSource as ct, BreakGlassSpec as d, DeliveryFailureCause as dn, CustomRole as dr, SourceContext as dt, SnapshotAssignable as en, LimitDetail as er, LimitRemaining as et, ClosureContext as f, DirectoryEvent as fn, CustomRoleGrant as fr, SourceMemo as ft, Grant as g, WireDecision as gn, Membership as gr, TokenSigner as gt, DelegationTarget as h, SinkEvent as hn, JsonWebKeyLike as hr, TokenFailureCause as ht, ApprovalMode as i, AccessEvent as in, Trace as ir, RelationChain as it, PolicyScopes as j, holder as jn, RelatedHop as jr, Credential as jt, PolicyOAuthScope as k, allOf as kn, OpaqueCondition as kr, parseSupportSession as kt, BreakGlassOptions as l, DeliveryChannel as ln, AuthorizationDetail as lr, SnapshotSource as lt, DelegationInput as m, MembershipEvent as mn, GnapAccess as mr, TenantSettings as mt, ApprovalCombine as n, SnapshotNotEntitled as nn, Obligation as nr, MemberEntry as nt, ApprovalRequirement as o, AutomationEvent as on, TraceSkipReason as or, RelationHolder as ot, ClosureGrantFn as p, EmailCategory as pn, Delegation as pr, SubjectResolver as pt, CustomRoleSourceFactory as q, Decision as qn, LocalCustomRoleTable as qt, ApprovalEscalation as r, SnapshotScope as rn, Quota as rr, MembershipSource as rt, ApprovalStage as s, CredentialEvent as sn, Actor as sr, RelationSource as st, ActivationOption as t, SnapshotGrant as tn, MatchedGrant as tr, LimitStore as tt, BreakGlassRequirements as u, DeliveryEvent as un, Binding as ur, SourceCall as ut, GrantLimit as v, WireDelegation as vn, SharedCustomRole as vr, VerificationFailure as vt, MembershipFixture as w, Approver as wn, Condition as wr, SupportSession as wt, GrantScope as x, ScopeDeclaration as xn, ActorKind as xr, VersionQuery as xt, GrantMeta as y, PolicyScopesInput as yn, Subject as yr, VerifiedToken as yt, SupportAccessOptions as z, anyone as zn, isSqlFunctionField as zr, DecideCredentialOptions as zt };
|