permdock 0.1.0 → 0.2.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 +106 -47
- package/dist/a2a/index.d.ts +7 -16
- package/dist/a2a/index.js +59 -98
- package/dist/adapter-context-mlWsVGGg.js +23 -0
- package/dist/ai-sdk/index.d.ts +37 -16
- package/dist/ai-sdk/index.js +30 -13
- package/dist/approvals/index.d.ts +3 -3
- package/dist/approvals/index.js +5 -4
- package/dist/{approvals-DaxY-Bdg.js → approvals-DbYAuNkG.js} +17 -11
- package/dist/approvers-DT4AVyIg.js +52 -0
- package/dist/{arazzo-CTeVuXr5.js → arazzo-BAgw9ap6.js} +2 -2
- package/dist/{arazzo-aoTkqYsJ.js → arazzo-cmvX2jDe.js} +2 -2
- package/dist/authzen/index.d.ts +4 -13
- package/dist/authzen/index.js +16 -50
- package/dist/better-auth/index.d.ts +20 -3
- package/dist/better-auth/index.js +27 -7
- package/dist/better-supabase/index.d.ts +206 -0
- package/dist/better-supabase/index.js +620 -0
- package/dist/bind-CVy3Espv.d.ts +25 -0
- package/dist/bind-VnYn2HKq.js +97 -0
- package/dist/boundary-BM8a_P6E.js +13 -0
- package/dist/boundary-BmHxVH1J.d.ts +15 -0
- package/dist/canonical-json-DemiK4Vp.js +26 -0
- package/dist/{capability-B68OFnZx.js → capability-4qPdO9gk.js} +7 -5
- package/dist/{capability-BDG_nkxt.d.ts → capability-Dq43tT1u.d.ts} +2 -2
- package/dist/catalog/index.d.ts +1 -1
- package/dist/catalog/index.js +1 -1
- package/dist/catalog-BjZSovXQ.js +2 -0
- package/dist/{catalog-doc-BSo_Q_-6.js → catalog-doc-Dsc9y7sd.js} +23 -12
- package/dist/{catalog-B0E6bggc.js → catalog-h2tlKFkq.js} +2 -2
- package/dist/{catalog-H-vFGwWK.js → catalog-z8q6bi_r.js} +4 -4
- package/dist/claude-agent/index.d.ts +5 -14
- package/dist/claude-agent/index.js +4 -10
- package/dist/clerk/index.d.ts +12 -3
- package/dist/clerk/index.js +26 -5
- package/dist/cli/bin.js +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +2 -2
- package/dist/clients-C7zLFuWT.d.ts +12 -0
- package/dist/clients-DjU5ABMy.js +23 -0
- package/dist/cloud/index.d.ts +4 -5
- package/dist/cloud/index.js +20 -6
- package/dist/{cloud-BNQTrmrr.js → cloud-BGhHS-lY.js} +2 -2
- package/dist/{cloud-Cuxr6Czw.js → cloud-Bo3e9Ak3.js} +7 -6
- package/dist/{collect-O-tOtbnk.js → collect-DDDv_ESs.js} +194 -42
- package/dist/collect-DLlujdHC.js +83 -0
- package/dist/collect-rG2IQ3t0.js +2 -0
- package/dist/{commands-BMh_Etm2.js → commands-DWOrSQic.js} +16 -12
- package/dist/compile/index.d.ts +3 -0
- package/dist/compile/index.js +2 -0
- package/dist/{compile-D22iwvuV.js → compile-Ba4blROR.js} +85 -30
- package/dist/compile-CNnl6uIt.d.ts +94 -0
- package/dist/config-BJiM-xAm.js +157 -0
- package/dist/config-Bn00Z3ks.js +36 -0
- package/dist/config-report-Dw_JcUqT.js +44 -0
- package/dist/{connection-JvqwHODC.js → connection-CU8MQxRi.js} +1 -1
- package/dist/{context-CKEAabd7.js → context-Ttp0ekMT.js} +36 -27
- package/dist/convex/index.d.ts +9 -4
- package/dist/convex/index.js +14 -4
- package/dist/create-BWyx3jua.d.ts +245 -0
- package/dist/create-CPhDL6qx.js +253 -0
- package/dist/{credential-B_rkUNlY.js → credential-8P81ff4u.js} +26 -46
- package/dist/delegation-D8pUEuce.js +103 -0
- package/dist/{describe-Bt1YD5uS.js → describe-B_gVZEVi.js} +10 -15
- package/dist/{describe-DernyItf.d.ts → describe-PdoqESvg.d.ts} +9 -10
- package/dist/{diff-x5Il8LVa.js → diff-B8Tunc3o.js} +44 -11
- package/dist/{diff-BUzf5Poi.js → diff-CzqLxZ77.js} +2 -2
- package/dist/doctor-WpvG6p4k.js +1194 -0
- package/dist/doctor-collect-ByfYlNv1.js +664 -0
- package/dist/{doctor-Bqo6FwUa.js → doctor-rOr-4ZfS.js} +2 -2
- package/dist/drizzle/index.d.ts +4 -3
- package/dist/drizzle/index.js +3 -3
- package/dist/elysia/index.d.ts +6 -28
- package/dist/elysia/index.js +16 -60
- package/dist/{errors-DSMnAVNa.js → errors-CWfoNg9N.js} +8 -4
- package/dist/{errors-Iy71s7Oj.js → errors-Cz5zn0mW.js} +17 -71
- package/dist/{errors-DbZ1YOnb.d.ts → errors-DAqevpNk.d.ts} +8 -21
- package/dist/{errors-m3u9TmDu.js → errors-DRnGZHzF.js} +4 -1
- package/dist/evaluation-items-CfCCejQd.js +40 -0
- package/dist/{evaluations-DsAU9ppl.js → evaluations-tz6D9A2G.js} +28 -46
- package/dist/eve/index.d.ts +6 -15
- package/dist/eve/index.js +7 -12
- package/dist/expiry-BoBJ8Tvc.js +7 -0
- package/dist/express/index.d.ts +6 -29
- package/dist/express/index.js +28 -58
- package/dist/fastify/index.d.ts +6 -29
- package/dist/fastify/index.js +16 -65
- package/dist/fields-BMl1RxoX.js +26 -0
- package/dist/{files-B_wAGYmt.js → files-DWUN9PzI.js} +5 -1
- package/dist/{fixtures-Cvaw0gDG.js → fixtures-ht28Cplr.js} +5 -2
- package/dist/{freeze-y1_jQL4v.js → freeze-CrU8nQeX.js} +31 -2
- package/dist/{from-snapshot-BMGnhmgv.js → from-snapshot-C3sHpZNS.js} +65 -48
- package/dist/{grantee-Bv04_Vzf.js → grantee-Cv5Sogfv.js} +88 -7
- package/dist/graph-sql-B-dsAT6j.d.ts +29 -0
- package/dist/{headers-B5RRv3Xm.js → headers-BZSDieNT.js} +1 -1
- package/dist/{headers-C8SHQccD.d.ts → headers-Cf-zWvsO.d.ts} +1 -1
- package/dist/helpers-H_KARDVC.js +421 -0
- package/dist/hono/index.d.ts +6 -28
- package/dist/hono/index.js +11 -43
- package/dist/{hosted-BwKQ1BTA.js → hosted-DJQw46hn.js} +6 -5
- package/dist/{http-GgVApX1k.js → http-BIhmLfCc.js} +4 -20
- package/dist/http-SO7qGttf.js +44 -0
- package/dist/ids-DC4V4CFu.js +18 -0
- package/dist/{index-LF_hS-yn.d.ts → index-A0YNL8jZ.d.ts} +1 -1
- package/dist/index-CtE07CBF.d.ts +6 -0
- package/dist/{index-xIxJLwOQ.d.ts → index-D3vbkoSI.d.ts} +75 -7
- package/dist/{index-CltcQ4Bf.d.ts → index-D6_cSa1z.d.ts} +68 -5
- package/dist/index.d.ts +14 -9
- package/dist/index.js +22 -17
- package/dist/instance-options-BK_rNOSC.d.ts +11 -0
- package/dist/instance-options-Dhhcnm3y.js +22 -0
- package/dist/{parse-DPfIvFMU.js → json-schema-BsAflUGW.js} +28 -57
- package/dist/jwt/index.d.ts +10 -6
- package/dist/jwt/index.js +32 -13
- package/dist/kernel-GSQnMz3O.js +208 -0
- package/dist/kysely/index.d.ts +4 -3
- package/dist/kysely/index.js +3 -3
- package/dist/live-options-H2eG8dfJ.js +60 -0
- package/dist/{load-BZ24CpZP.js → load-DhWEB9P1.js} +16 -10
- package/dist/load-DwJUafYN.js +2 -0
- package/dist/manifest-iaoBXHKc.js +783 -0
- package/dist/manifest-uDS9y5de.d.ts +206 -0
- package/dist/{map-DowSO96j.js → map-AcxK9o_D.js} +4 -15
- package/dist/{map-claims-B_6I1Rn-.js → map-claims-Z4QZOiFF.js} +13 -4
- package/dist/map-error-pgUWNNtG.js +23 -0
- package/dist/may-use-DndQ5tQ-.js +77 -0
- package/dist/mcp/index.d.ts +54 -22
- package/dist/mcp/index.js +218 -178
- package/dist/nest/index.d.ts +26 -31
- package/dist/nest/index.js +75 -84
- package/dist/next/client.d.ts +7 -8
- package/dist/next/client.js +11 -9
- package/dist/next/index.d.ts +30 -47
- package/dist/next/index.js +45 -60
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +32 -1
- package/dist/node/index.d.ts +9 -28
- package/dist/node/index.js +11 -43
- package/dist/openai/index.d.ts +6 -15
- package/dist/openai/index.js +7 -20
- package/dist/openapi/index.d.ts +87 -4
- package/dist/openapi/index.js +3 -3
- package/dist/{openapi-CwePaF7C.js → openapi-Bbg4wGVL.js} +3 -3
- package/dist/{openapi-DcqM8nU7.js → openapi-BqRBvAng.js} +237 -5
- package/dist/{openapi-DWD0Uc_4.js → openapi-CqqEbHsL.js} +5 -5
- package/dist/{openapi-import-BWRUNNeW.js → openapi-import-cmwetbzw.js} +1 -1
- package/dist/{openapi-schema-D8j_T9tO.js → openapi-schema--ARjyfQr.js} +2 -2
- package/dist/orpc/index.d.ts +15 -28
- package/dist/orpc/index.js +74 -117
- package/dist/otel/index.d.ts +2 -2
- package/dist/parse-BuyjxhZV.js +53 -0
- package/dist/parse-local-manifest-BkGQNzAh.d.ts +10 -0
- package/dist/parse-local-manifest-BrMozJCo.js +36 -0
- package/dist/pdp/index.d.ts +2 -2
- package/dist/pdp/index.js +14 -127
- package/dist/{permdock-yoZ7EjxX.js → permdock-CzqXjCpU.js} +641 -126
- package/dist/{permissions-B8vCg_bI.d.ts → permissions-CDgvKG5L.d.ts} +2 -2
- package/dist/{permissions-CofRqesP.js → permissions-CpZrivYv.js} +3 -3
- package/dist/{permissions-DC7GROPA.js → permissions-DVoF6dMt.js} +77 -15
- package/dist/{permissions-B4apnahQ.d.ts → permissions-DttnqqxC.d.ts} +34 -5
- package/dist/{pins-CqE1jZuF.js → pins-8ILTftC9.js} +2 -2
- package/dist/{policy-CInmNGkM.d.ts → policy-CFZAr_Al.d.ts} +330 -37
- package/dist/{policy-Cq2fB8Q5.d.ts → policy-D8UFyERw.d.ts} +2 -2
- package/dist/{policy-ANp36PnI.js → policy-xyWg7QdR.js} +173 -22
- package/dist/powersync-A8x_Yyvh.js +2 -0
- package/dist/powersync-C7kLglqX.js +540 -0
- package/dist/powersync-yW1UUFzp.js +62 -0
- package/dist/prisma/index.d.ts +3 -2
- package/dist/prisma/index.js +45 -20
- package/dist/{problem-Cgp9-KZA.js → problem-B43ztKIm.js} +74 -109
- package/dist/problem-details-CkL50EEf.d.ts +7 -0
- package/dist/problem-details-_AMOYz-w.js +144 -0
- package/dist/{protected-BuPAycJT.d.ts → protected-CNsMzrVd.d.ts} +5 -4
- package/dist/protected-Cs6kTaHo.js +100 -0
- package/dist/protected-bZs6rbT1.d.ts +40 -0
- package/dist/{provider-wTAUda2v.d.ts → provider-Cjr62YMV.d.ts} +1 -1
- package/dist/provider-DLzpb2Xz.js +52 -0
- package/dist/provider-store-DNyC1y48.js +43 -0
- package/dist/react/index.d.ts +7 -5
- package/dist/react/index.js +5 -4
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +166 -10
- package/dist/react-native/index.js +607 -85
- package/dist/{refs-ChLSxbST.js → refs-KYb4ntaz.js} +4 -3
- package/dist/{relations-r4soIFZB.js → relations-cjOL01hZ.js} +110 -31
- package/dist/replay-BsOyTrdV.js +28 -0
- package/dist/replay-sqBGMnNs.d.ts +5 -0
- package/dist/resource-ref-CaS9yVPi.js +20 -0
- package/dist/revocations-Bhr0aMIC.js +27 -0
- package/dist/rls-BMNydpHk.js +2521 -0
- package/dist/{rls-BOFU3chG.js → rls-CEvs64Kj.js} +8 -3
- package/dist/rls-fields-BMasREhR.js +3502 -0
- package/dist/{rls-graph-DxQ39PJj.js → rls-graph-pc9fuXYm.js} +100 -36
- package/dist/{rls-import-CXV6LBlS.js → rls-import-D8F7j35Q.js} +7 -6
- package/dist/{rls-migrate-DrFPbf8p.js → rls-migrate-7wikfrVI.js} +6 -5
- package/dist/rls-ownership-B5Lkq62W.js +843 -0
- package/dist/rls-shared-aOQ4hGTO.js +493 -0
- package/dist/rls-verify-D8B7dOTh.js +745 -0
- package/dist/{row-check-BajTgQZ-.d.ts → row-check-Dt35czLy.d.ts} +12 -15
- package/dist/rpc-DOK54_CS.js +89 -0
- package/dist/{run-CJ6UvS3a.js → run-YXCJDNYk.js} +31 -12
- package/dist/runtime-CB8gQFvS.js +11 -0
- package/dist/{saas-BRrZzJkM.js → saas-Bj_FFkjN.js} +17 -7
- package/dist/{schema-P8yoma__.js → schema-D3MnDMxa.js} +8 -4
- package/dist/scim/index.d.ts +1 -1
- package/dist/scim/index.js +1 -1
- package/dist/{scim-9NFa0XVZ.js → scim-BFGBBAqR.js} +1 -1
- package/dist/{scopes-cKVp_WTw.js → scopes-CVdPrWN-.js} +35 -8
- package/dist/server/index.d.ts +22 -11
- package/dist/server/index.js +11 -8
- package/dist/{credentials-BgRX3WEg.js → server-DlZ28Oz5.js} +1 -1
- package/dist/shared-DRu8VFVM.js +123 -0
- package/dist/{sink-Cfr9-7YC.d.ts → sink-Gs6TTVa-.d.ts} +1 -1
- package/dist/skills-Biq5uup3.js +192 -0
- package/dist/{skills-C_lpV4Jx.js → skills-JaymNCdK.js} +10 -4
- package/dist/{snapshot-DE8dE_hz.js → snapshot-Enxd0n-s.js} +138 -214
- package/dist/snapshot-cache-D6jLelln.js +44 -0
- package/dist/snapshot-cache-DwQH8ufx.d.ts +45 -0
- package/dist/solid/index.d.ts +39 -9
- package/dist/solid/index.js +76 -85
- package/dist/sources-B0UvrJ21.js +534 -0
- package/dist/sources-BcJgw0lt.d.ts +192 -0
- package/dist/{sql-Bll1d7y0.js → sql-xdg5f4Fi.js} +6 -1
- package/dist/{src-CTNT-PBW.js → src-CSbUiozF.js} +149 -11
- package/dist/ssf/index.d.ts +3 -2
- package/dist/ssf/index.js +3 -29
- package/dist/store-DMAWwAJV.js +371 -0
- package/dist/{store-Bq90395i.d.ts → store-D_pjn91-.d.ts} +13 -4
- package/dist/store-options-yO0V6gRn.js +716 -0
- package/dist/{stores-CkG2HrSg.js → stores-4_sqiOA1.js} +10 -63
- package/dist/{stores-CvOnu_2T.d.ts → stores-DVR5NHLE.d.ts} +20 -9
- package/dist/{stream-Q_xlB6Ko.js → stream-DDpvynSB.js} +16 -2
- package/dist/{stream-BhMfZOwr.d.ts → stream-DlvG2hs-.d.ts} +2 -2
- package/dist/subject-settings-BwBmCdTR.js +128 -0
- package/dist/supabase/index.d.ts +122 -6
- package/dist/supabase/index.js +4 -3
- package/dist/supabase/middleware.d.ts +32 -27
- package/dist/supabase/middleware.js +56 -22
- package/dist/{supabase-D8UlBA7Z.js → supabase-CwafwxxF.js} +3 -3
- package/dist/{supabase-DTxGtYdi.js → supabase-DTBaC20O.js} +345 -367
- package/dist/supabase-config-Bs44dare.js +472 -0
- package/dist/{supabase-hook-D_OqGb_V.js → supabase-hook-BuxLQLpU.js} +994 -708
- package/dist/supabase-hook-D5qVd_D8.js +2 -0
- package/dist/supautils-DYZnzRWV.js +91 -0
- package/dist/svelte/PermissionBoundary.svelte +37 -0
- package/dist/svelte/Protected.svelte +8 -2
- package/dist/svelte/index.d.ts +9 -6
- package/dist/svelte/index.js +61 -7
- package/dist/svelte/runtime.d.ts +4 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +9 -6
- package/dist/svelte/source.js +7 -4
- package/dist/terminal/index.d.ts +6 -14
- package/dist/terminal/index.js +44 -32
- package/dist/testing/index.d.ts +105 -16
- package/dist/testing/index.js +504 -40
- package/dist/testing/saas/index.d.ts +4 -4
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/token-CIWxJOCh.js +50 -0
- package/dist/trpc/index.d.ts +7 -26
- package/dist/trpc/index.js +17 -100
- package/dist/types-9AWO9EGt.d.ts +197 -0
- package/dist/{types-D6Z6-rKJ.d.ts → types-BPxgszlT.d.ts} +260 -22
- package/dist/{types-BvBk1wgn.d.ts → types-BVyImy5I.d.ts} +5 -3
- package/dist/{types-CxquUByI.d.ts → types-Bvc4oWT6.d.ts} +1 -1
- package/dist/types-C3s9xVJG.d.ts +48 -0
- package/dist/{types-BBK-exvJ.d.ts → types-Dnemwd77.d.ts} +7 -1
- package/dist/types-kxznc7cn.d.ts +52 -0
- package/dist/{types-B8w5PFtS.d.ts → types-vKyAMtcX.d.ts} +17 -1
- package/dist/{types-B9dmiiab.d.ts → types-vNSDF7Dq.d.ts} +1 -1
- package/dist/{sources-DOpW5Ila.d.ts → types-yF5LmQVD.d.ts} +86 -127
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +10 -9
- package/dist/{usage-1ozMubLY.js → usage-D07N9QJ3.js} +2 -2
- package/dist/usage-D82l1CwK.js +2 -0
- package/dist/{usage-CUnK6Ou9.js → usage-DG1oeCca.js} +225 -62
- package/dist/validation-error-CnjZ4t92.js +33 -0
- package/dist/validation-error-CtF23SrC.d.ts +26 -0
- package/dist/{validity-D0uRmJKJ.js → validity-uOp8UpYn.js} +57 -36
- package/dist/{verifier-B90agnhl.js → verifier-BxBo6I44.js} +10 -5
- package/dist/version-BvacVTZR.js +17 -0
- package/dist/views-Soe7bGSC.js +95 -0
- package/dist/{vocabulary-Dk0fs-Jk.d.ts → vocabulary-DA8a8zif.d.ts} +1 -1
- package/dist/vue/index.d.ts +35 -13
- package/dist/vue/index.js +86 -93
- package/dist/watch-Etoa_Mvr.js +2 -0
- package/dist/watch-UihESpsJ.js +128 -0
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +7 -13
- package/package.json +62 -36
- package/schemas/approval-request-v1.json +175 -0
- package/schemas/catalog-v1.json +29 -1
- package/schemas/supabase-claims-v1.json +6 -1
- package/schemas/supabase-manifest-v1.json +150 -6
- package/skills/permdock/SKILL.md +7 -7
- package/skills/permdock-agents/SKILL.md +5 -5
- package/skills/permdock-agents/references/runtimes.md +12 -10
- package/skills/permdock-approvals/SKILL.md +4 -4
- package/skills/permdock-approvals/references/stores-and-resume.md +15 -4
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +4 -4
- package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
- package/skills/permdock-data/SKILL.md +4 -4
- package/skills/permdock-data/references/queries-and-rls.md +14 -6
- package/skills/permdock-data/references/relationships.md +5 -3
- package/skills/permdock-tenancy/SKILL.md +9 -6
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +14 -8
- package/skills/permdock-wire/SKILL.md +4 -4
- package/skills/permdock-wire/references/adapters.md +42 -30
- package/skills/permdock-wire/references/policy-options.md +5 -3
- package/dist/approvers-aH0PJkmf.js +0 -20
- package/dist/catalog-idsHc0vo.js +0 -2
- package/dist/collect-B7_TIfmg.js +0 -49
- package/dist/collect-fRPAQIWb.js +0 -2
- package/dist/compile-CQbvyIBr.d.ts +0 -30
- package/dist/config-BPYmjTOp.js +0 -26
- package/dist/context-gtAwAILx.js +0 -6
- package/dist/create-BKF3dgFk.d.ts +0 -162
- package/dist/create-CSkhDU9T.js +0 -222
- package/dist/doctor-BGle8Gqi.js +0 -1314
- package/dist/helpers-DnSOrhB9.js +0 -682
- package/dist/index-fG6NSXlc.d.ts +0 -9
- package/dist/kernel-YOGCWNLf.js +0 -211
- package/dist/load-QOOm1z70.js +0 -2
- package/dist/manifest-DDQbC6K0.d.ts +0 -118
- package/dist/map-error-RJ3ZsUyA.js +0 -16
- package/dist/may-use-CnFEjVEp.js +0 -37
- package/dist/pg-4GJWDUxG.js +0 -953
- package/dist/plugin-4gr7IxFJ.js +0 -65
- package/dist/protected-B4K3BKoX.js +0 -138
- package/dist/protected-wY7nXhY9.d.ts +0 -23
- package/dist/provider-_wx46HpB.js +0 -48
- package/dist/rls-CJVja9Ww.js +0 -2119
- package/dist/rls-helpers-BxRuif0l.js +0 -1346
- package/dist/runtime-DP9ttFh1.js +0 -27
- package/dist/skills-Dx3QLnMY.js +0 -110
- package/dist/source-DoBBYJi2.js +0 -6
- package/dist/sources-DVHM3Mwq.js +0 -284
- package/dist/store-C6hFW6ta.js +0 -508
- package/dist/subject-settings-xt7V845g.js +0 -82
- package/dist/supabase-hook-DW-xP4hU.js +0 -2
- package/dist/types-DbWdEfcm.d.ts +0 -87
- package/dist/types-bva3i4Gf.d.ts +0 -98
- package/dist/types-i4BAOvdb.d.ts +0 -97
- package/dist/usage-PyEor6GA.js +0 -2
- package/dist/version-CnSh33Fj.js +0 -16
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { t as compact } from "./compact-y6vfu2_f.js";
|
|
2
|
+
import { t as emptySnapshot } from "./from-snapshot-C3sHpZNS.js";
|
|
3
|
+
import { t as adapterStore } from "./store-options-yO0V6gRn.js";
|
|
4
|
+
import { i as PermDockStoreContext, n as useKeyed, r as PermDockSnapshotPromiseContext, t as useLiveOptions } from "./live-options-H2eG8dfJ.js";
|
|
5
|
+
import { useLayoutEffect } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/react/provider.tsx
|
|
8
|
+
function PermDockProvider(props) {
|
|
9
|
+
const promise = props.snapshotPromise ?? null;
|
|
10
|
+
const suspend = props.suspend === true;
|
|
11
|
+
const awaiting = promise !== null && !suspend;
|
|
12
|
+
const live = useLiveOptions(props);
|
|
13
|
+
const store = useKeyed(() => adapterStore(compact({
|
|
14
|
+
endpoint: props.endpoint,
|
|
15
|
+
snapshotUrl: props.snapshotUrl,
|
|
16
|
+
approvals: props.approvals,
|
|
17
|
+
tenant: props.tenant,
|
|
18
|
+
fetch: live.fetch,
|
|
19
|
+
headers: live.headers,
|
|
20
|
+
maxAge: props.maxAge,
|
|
21
|
+
verifier: live.verifier,
|
|
22
|
+
awaiting,
|
|
23
|
+
passCache: true
|
|
24
|
+
}), props.snapshot ?? emptySnapshot()), [
|
|
25
|
+
props.snapshot,
|
|
26
|
+
props.endpoint,
|
|
27
|
+
props.snapshotUrl,
|
|
28
|
+
props.approvals,
|
|
29
|
+
props.tenant,
|
|
30
|
+
live.fetch,
|
|
31
|
+
live.headers,
|
|
32
|
+
props.maxAge,
|
|
33
|
+
live.verifier,
|
|
34
|
+
awaiting
|
|
35
|
+
]);
|
|
36
|
+
useLayoutEffect(() => {
|
|
37
|
+
if (promise !== null && !suspend) store.track(promise);
|
|
38
|
+
}, [
|
|
39
|
+
store,
|
|
40
|
+
promise,
|
|
41
|
+
suspend
|
|
42
|
+
]);
|
|
43
|
+
return /* @__PURE__ */ jsx(PermDockStoreContext, {
|
|
44
|
+
value: store,
|
|
45
|
+
children: /* @__PURE__ */ jsx(PermDockSnapshotPromiseContext, {
|
|
46
|
+
value: suspend ? promise : null,
|
|
47
|
+
children: props.children
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { PermDockProvider as t };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { t as compact } from "./compact-y6vfu2_f.js";
|
|
2
|
+
import { t as emptySnapshot } from "./from-snapshot-C3sHpZNS.js";
|
|
3
|
+
import { i as isPromiseLike, t as adapterStore } from "./store-options-yO0V6gRn.js";
|
|
4
|
+
//#region src/client/provider-store.ts
|
|
5
|
+
/**
|
|
6
|
+
* Store options that read `read()` on every request, so a rotated token, a
|
|
7
|
+
* new `fetch` or a new verifier applies without rebuilding the store. A
|
|
8
|
+
* verifier is wired only when one is present at creation: it switches the
|
|
9
|
+
* store to signed snapshots.
|
|
10
|
+
*/
|
|
11
|
+
function liveOptions(read) {
|
|
12
|
+
return compact({
|
|
13
|
+
headers: () => read().headers,
|
|
14
|
+
fetch: (...args) => (read().fetch ?? fetch)(...args),
|
|
15
|
+
verifier: read().verifier === void 0 ? void 0 : { verify: (token, expectations) => {
|
|
16
|
+
const current = read().verifier;
|
|
17
|
+
return current === void 0 ? Promise.reject(/* @__PURE__ */ new Error("PermDock: the verifier option was removed.")) : current.verify(token, expectations);
|
|
18
|
+
} }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The store a Vue, Svelte or Solid provider owns. A promised snapshot keeps
|
|
23
|
+
* it `pending` until the promise settles; `undefined` starts empty.
|
|
24
|
+
*/
|
|
25
|
+
function providerStore(options, read, snapshot) {
|
|
26
|
+
const promised = isPromiseLike(snapshot);
|
|
27
|
+
const store = adapterStore(compact({
|
|
28
|
+
endpoint: options.endpoint,
|
|
29
|
+
snapshotUrl: options.snapshotUrl,
|
|
30
|
+
approvals: options.approvals,
|
|
31
|
+
tenant: options.tenant,
|
|
32
|
+
maxAge: options.maxAge,
|
|
33
|
+
...liveOptions(read)
|
|
34
|
+
}), promised || snapshot === void 0 ? emptySnapshot() : snapshot);
|
|
35
|
+
if (promised) store.follow(snapshot);
|
|
36
|
+
return store;
|
|
37
|
+
}
|
|
38
|
+
/** Refreshes for the tenant a reactive `tenant` option switched to; a failed refresh keeps the current answers. */
|
|
39
|
+
function switchTenant(store, tenant) {
|
|
40
|
+
if (tenant !== void 0) store.get().refresh({ tenant }).catch(() => void 0);
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { switchTenant as n, providerStore as t };
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { a as
|
|
5
|
-
import { t as
|
|
1
|
+
import { n as requiredPlans } from "../problem-details-CkL50EEf.js";
|
|
2
|
+
import { i as describe } from "../describe-PdoqESvg.js";
|
|
3
|
+
import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
|
|
4
|
+
import { a as FilterResult, c as SubjectView, i as ClientStatus, l as TenantView, n as ApprovalState, o as PermissionSet, r as ClientPermDock, s as PermissionState, t as ApprovalHandle } from "../types-kxznc7cn.js";
|
|
5
|
+
import { n as ProtectedProps, t as PermDockProviderProps } from "../types-C3s9xVJG.js";
|
|
6
|
+
import { a as useFilter, c as usePermission, d as useSubject, f as useTenant, i as useAssignableRoles, l as usePermissions, n as useApproval, o as useMemberships, r as useAssignablePermissions, s as usePermDock, t as Protected, u as useRoles } from "../protected-CNsMzrVd.js";
|
|
7
|
+
import { t as PermDockProvider } from "../provider-Cjr62YMV.js";
|
|
6
8
|
export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, PermDockProvider, type PermDockProviderProps, type PermissionSet, type PermissionState, Protected, type ProtectedProps, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
package/dist/react/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
2
|
+
import { r as requiredPlans } from "../problem-details-_AMOYz-w.js";
|
|
3
|
+
import { t as describe } from "../describe-B_gVZEVi.js";
|
|
4
|
+
import { t as approvalHeaders } from "../headers-BZSDieNT.js";
|
|
5
|
+
import { a as useFilter, c as usePermission, d as useSubject, f as useTenant, i as useAssignableRoles, l as usePermissions, n as useApproval, o as useMemberships, r as useAssignablePermissions, s as usePermDock, t as Protected, u as useRoles } from "../protected-Cs6kTaHo.js";
|
|
6
|
+
import { t as PermDockProvider } from "../provider-DLzpb2Xz.js";
|
|
6
7
|
export { PermDockProvider, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PermDockProvider } from "../provider-
|
|
1
|
+
import { t as PermDockProvider } from "../provider-Cjr62YMV.js";
|
|
2
2
|
export { PermDockProvider };
|
|
@@ -1,10 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
1
|
+
import { At as SnapshotSource, Dr as CustomRole, Ft as TokenVerifier, Mr as Membership, Tt as Snapshot, pt as LocalSnapshotManifest } from "../policy-CFZAr_Al.js";
|
|
2
|
+
import { f as Permission } from "../permissions-DttnqqxC.js";
|
|
3
|
+
import { n as requiredPlans } from "../problem-details-CkL50EEf.js";
|
|
4
|
+
import { i as describe } from "../describe-PdoqESvg.js";
|
|
5
|
+
import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-BkGQNzAh.js";
|
|
6
|
+
import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
|
|
7
|
+
import { a as FilterResult, c as SubjectView, i as ClientStatus, l as TenantView, n as ApprovalState, o as PermissionSet, r as ClientPermDock, s as PermissionState, t as ApprovalHandle } from "../types-kxznc7cn.js";
|
|
8
|
+
import { n as ProtectedProps } from "../types-C3s9xVJG.js";
|
|
9
|
+
import { a as useFilter, c as usePermission, d as useSubject, f as useTenant, i as useAssignableRoles, l as usePermissions, n as useApproval, o as useMemberships, r as useAssignablePermissions, s as usePermDock, t as Protected, u as useRoles } from "../protected-CNsMzrVd.js";
|
|
10
|
+
import { t as ClientStore } from "../store-D_pjn91-.js";
|
|
7
11
|
import { ReactElement, ReactNode } from "react";
|
|
12
|
+
//#region src/react-native/guards.d.ts
|
|
13
|
+
/** `true` once the provider has a snapshot to answer from: storage was read or a seed was given. Hide the splash screen on it. */
|
|
14
|
+
export declare function useSnapshotReady(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* A boolean for `Stack.Protected` and `Tabs.Protected`: `false` while the
|
|
17
|
+
* snapshot is pending, `true` only when every permission is allowed for
|
|
18
|
+
* `data`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function usePermissionGuard(permission: Permission | readonly Permission[], data?: unknown): boolean;
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/react-native/local.d.ts
|
|
23
|
+
/** What the device holds for the signed-in user, read from its local database. */
|
|
24
|
+
type LocalSnapshotData = {
|
|
25
|
+
readonly principal: {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
/** Global roles, declared or platform custom roles. */
|
|
28
|
+
readonly roles?: readonly string[];
|
|
29
|
+
readonly plans?: readonly string[];
|
|
30
|
+
/** The active tenant: the first scope's instance the UI shows. */
|
|
31
|
+
readonly tenant?: string;
|
|
32
|
+
readonly memberships?: readonly Membership[];
|
|
33
|
+
/** Attributes conditions read, such as `claims` for `principal.claims.team_ids`. */
|
|
34
|
+
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
35
|
+
} | null;
|
|
36
|
+
/** The tenant's custom roles, in the shape a `RoleSource` returns. */
|
|
37
|
+
readonly customRoles?: readonly CustomRole[];
|
|
38
|
+
};
|
|
39
|
+
type LocalSnapshotOptions = {
|
|
40
|
+
/** `localSnapshotManifest(policy)`, written at build time. */
|
|
41
|
+
readonly manifest: LocalSnapshotManifest;
|
|
42
|
+
readonly read: () => LocalSnapshotData | Promise<LocalSnapshotData>;
|
|
43
|
+
/** Calls the listener when the rows `read` reads change; returns the unsubscribe. */
|
|
44
|
+
readonly subscribe?: (listener: () => void) => () => void;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The snapshot a server would send for `data`, built from the manifest. It
|
|
48
|
+
* drives UI guards only: the server still decides every request.
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildLocalSnapshot(manifest: LocalSnapshotManifest, data: LocalSnapshotData, now?: number): Snapshot;
|
|
51
|
+
/**
|
|
52
|
+
* A snapshot source over the device's own membership rows (SQLite, a
|
|
53
|
+
* PowerSync or Electric replica): offline, the UI guards answer from them.
|
|
54
|
+
*/
|
|
55
|
+
export declare function localSnapshot(options: LocalSnapshotOptions): SnapshotSource;
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/react-native/powersync.d.ts
|
|
58
|
+
/** The `PowerSyncDatabase` methods `powersyncSource` calls. */
|
|
59
|
+
type PowerSyncWatchable = {
|
|
60
|
+
getAll(sql: string, parameters?: unknown[]): Promise<unknown[]>;
|
|
61
|
+
watch(sql: string, parameters: unknown[] | undefined, handler: {
|
|
62
|
+
onResult(result: unknown): void;
|
|
63
|
+
onError?(error: Error): void;
|
|
64
|
+
}, options: {
|
|
65
|
+
readonly signal: AbortSignal;
|
|
66
|
+
}): void;
|
|
67
|
+
};
|
|
68
|
+
/** One local query: SQL over the synced tables and its parameters. */
|
|
69
|
+
type PowerSyncQuery = {
|
|
70
|
+
readonly sql: string;
|
|
71
|
+
readonly parameters?: readonly unknown[];
|
|
72
|
+
};
|
|
73
|
+
type PowerSyncSourceOptions<Q extends string> = {
|
|
74
|
+
/** `localSnapshotManifest(policy)`, as `permdock powersync generate` writes it to `powersync.manifest`. */
|
|
75
|
+
readonly manifest: LocalSnapshotManifest;
|
|
76
|
+
/** The queries over the `permdock_*` streams' tables; each one is watched. */
|
|
77
|
+
readonly queries: Readonly<Record<Q, PowerSyncQuery>>;
|
|
78
|
+
/** Maps the rows of each query to the signed-in user's memberships and roles. */
|
|
79
|
+
readonly read: (rows: Readonly<Record<Q, readonly unknown[]>>) => LocalSnapshotData;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* A `localSnapshot` source over a PowerSync database: `get` runs every query
|
|
83
|
+
* with `db.getAll`, and a `db.watch` per query reports changes. A watch
|
|
84
|
+
* result with unchanged content re-renders nothing (`connectSource`). The source
|
|
85
|
+
* takes the database as an argument; `permdock/react-native` never imports
|
|
86
|
+
* `@powersync/*`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function powersyncSource<Q extends string>(db: PowerSyncWatchable, options: PowerSyncSourceOptions<Q>): SnapshotSource;
|
|
89
|
+
//#endregion
|
|
8
90
|
//#region src/react-native/types.d.ts
|
|
9
91
|
type PermDockStorage = {
|
|
10
92
|
getItem(key: string): string | null | Promise<string | null>;
|
|
@@ -12,16 +94,31 @@ type PermDockStorage = {
|
|
|
12
94
|
removeItem(key: string): void | Promise<void>;
|
|
13
95
|
};
|
|
14
96
|
type NativeRevalidate = "launch" | "focus" | number;
|
|
97
|
+
/**
|
|
98
|
+
* Calls `listener` when the app changes state; `active` is `false` when it
|
|
99
|
+
* goes to the background. A listener called without an argument counts as
|
|
100
|
+
* a return to the foreground.
|
|
101
|
+
*/
|
|
102
|
+
type SubscribeForeground = (listener: (active?: boolean) => void) => () => void;
|
|
103
|
+
/** Calls `listener` with `false` when the device loses connectivity and `true` when it returns. */
|
|
104
|
+
type SubscribeOnline = (listener: (online: boolean) => void) => () => void;
|
|
15
105
|
type NativePermDockProviderProps = {
|
|
16
106
|
readonly storage: PermDockStorage;
|
|
107
|
+
/**
|
|
108
|
+
* The signed-in principal's id, or `null` when nobody is signed in. Only a
|
|
109
|
+
* persisted snapshot for this id is read or written; `null` clears storage.
|
|
110
|
+
*/
|
|
111
|
+
readonly subjectId: string | null;
|
|
17
112
|
readonly snapshot?: Snapshot | string;
|
|
18
113
|
readonly snapshotUrl?: string;
|
|
114
|
+
/** Hydrates from the device's own rows (`localSnapshot`); with `snapshotUrl` too, the latest answer wins. */
|
|
115
|
+
readonly source?: SnapshotSource;
|
|
19
116
|
readonly endpoint?: string;
|
|
20
117
|
readonly approvals?: string;
|
|
21
118
|
readonly tenant?: string;
|
|
22
|
-
readonly subjectId?: string;
|
|
23
119
|
readonly revalidate?: NativeRevalidate;
|
|
24
|
-
readonly subscribeForeground?:
|
|
120
|
+
readonly subscribeForeground?: SubscribeForeground;
|
|
121
|
+
readonly subscribeOnline?: SubscribeOnline;
|
|
25
122
|
readonly fetch?: typeof fetch;
|
|
26
123
|
readonly headers?: Readonly<Record<string, string>>;
|
|
27
124
|
readonly maxAge?: number;
|
|
@@ -35,8 +132,67 @@ export declare function PermDockProvider(props: NativePermDockProviderProps): Re
|
|
|
35
132
|
//#region src/react-native/storage.d.ts
|
|
36
133
|
export declare function memoryStorage(initial?: Readonly<Record<string, string>>): PermDockStorage;
|
|
37
134
|
//#endregion
|
|
135
|
+
//#region src/react-native/storage-adapters.d.ts
|
|
136
|
+
/** The `expo-secure-store` functions `secureStoreStorage` calls. */
|
|
137
|
+
type SecureStoreModule = {
|
|
138
|
+
getItem(key: string, options?: object): string | null;
|
|
139
|
+
setItem(key: string, value: string, options?: object): void;
|
|
140
|
+
deleteItemAsync(key: string, options?: object): Promise<void>;
|
|
141
|
+
};
|
|
142
|
+
/** The `react-native-mmkv` instance methods `mmkvStorage` calls: `remove` (v4) or `delete` (v3). */
|
|
143
|
+
type MmkvInstance = {
|
|
144
|
+
getString(key: string): string | undefined;
|
|
145
|
+
set(key: string, value: string): void;
|
|
146
|
+
} & ({
|
|
147
|
+
remove(key: string): unknown;
|
|
148
|
+
} | {
|
|
149
|
+
delete(key: string): unknown;
|
|
150
|
+
});
|
|
151
|
+
/**
|
|
152
|
+
* A `PermDockStorage` over `expo-secure-store`. Values are split into chunks
|
|
153
|
+
* of at most 2048 bytes under `<key>.<n>`; `<key>` holds the chunk count and
|
|
154
|
+
* is written last, so an interrupted write reads as absent.
|
|
155
|
+
*/
|
|
156
|
+
export declare function secureStoreStorage(store: SecureStoreModule, options?: object): PermDockStorage;
|
|
157
|
+
/** A synchronous `PermDockStorage` over a `react-native-mmkv` instance: the first frame already has the snapshot. */
|
|
158
|
+
export declare function mmkvStorage(mmkv: MmkvInstance): PermDockStorage;
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region src/react-native/subscriptions.d.ts
|
|
161
|
+
/** The `AppState` export of `react-native`, as `appStateForeground` calls it. */
|
|
162
|
+
type AppStateModule = {
|
|
163
|
+
addEventListener(type: "change", listener: (state: string) => void): {
|
|
164
|
+
remove(): void;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
/** The default export of `@react-native-community/netinfo`, as `netInfoOnline` calls it. */
|
|
168
|
+
type NetInfoModule = {
|
|
169
|
+
addEventListener(listener: (state: {
|
|
170
|
+
readonly isConnected: boolean | null;
|
|
171
|
+
readonly isInternetReachable?: boolean | null;
|
|
172
|
+
}) => void): () => void;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* `subscribeForeground` over `AppState`: `active` returns to the foreground
|
|
176
|
+
* and `background` leaves it. iOS `inactive` (a system sheet over the app) is
|
|
177
|
+
* neither.
|
|
178
|
+
*/
|
|
179
|
+
export declare function appStateForeground(appState: AppStateModule): SubscribeForeground;
|
|
180
|
+
/** `subscribeOnline` over NetInfo. An unknown (`null`) connection counts as online. */
|
|
181
|
+
export declare function netInfoOnline(netInfo: NetInfoModule): SubscribeOnline;
|
|
182
|
+
//#endregion
|
|
38
183
|
//#region src/react-native/store.d.ts
|
|
39
|
-
type NativeStoreOptions = Omit<NativePermDockProviderProps, "children"
|
|
184
|
+
type NativeStoreOptions = Omit<NativePermDockProviderProps, "children" | "headers"> & {
|
|
185
|
+
readonly headers?: Readonly<Record<string, string>> | (() => Readonly<Record<string, string>> | undefined);
|
|
186
|
+
/** A store this one replaces: its snapshot and tenant seed this store, so guards do not flip while it boots. */
|
|
187
|
+
readonly previous?: ClientStore;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Hydrates `store` from `source` now, on every change it reports and on each
|
|
191
|
+
* return to the foreground. Only the latest read applies; a read with
|
|
192
|
+
* unchanged content re-renders nothing, and a failed read keeps the current
|
|
193
|
+
* snapshot. Returns the unsubscribe.
|
|
194
|
+
*/
|
|
195
|
+
export declare function connectSource(store: ClientStore, source: SnapshotSource, subscribeForeground?: SubscribeForeground): () => void;
|
|
40
196
|
export declare function createNativeStore(options: NativeStoreOptions): ClientStore;
|
|
41
197
|
//#endregion
|
|
42
|
-
export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type NativePermDockProviderProps, type NativeRevalidate, type PermDockStorage, type PermissionSet, type PermissionState, Protected, type ProtectedProps, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
|
198
|
+
export { type AppStateModule, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type LocalSnapshotData, type LocalSnapshotManifest, type LocalSnapshotOptions, type MmkvInstance, type NativePermDockProviderProps, type NativeRevalidate, type NetInfoModule, type PermDockStorage, type PermissionSet, type PermissionState, type PowerSyncQuery, type PowerSyncSourceOptions, type PowerSyncWatchable, Protected, type ProtectedProps, type SecureStoreModule, type SnapshotSource, type SubjectView, type SubscribeForeground, type SubscribeOnline, type TenantView, approvalHeaders, describe, parseLocalSnapshotManifest, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useFilter, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|