permdock 0.0.0 → 0.1.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.
Files changed (290) hide show
  1. package/README.md +268 -1
  2. package/dist/a2a/index.d.ts +178 -0
  3. package/dist/a2a/index.js +271 -0
  4. package/dist/ai-sdk/index.d.ts +74 -0
  5. package/dist/ai-sdk/index.js +137 -0
  6. package/dist/approval-required-TzNB9oQA.js +6 -0
  7. package/dist/approvals/index.d.ts +3 -0
  8. package/dist/approvals/index.js +4 -0
  9. package/dist/approvals-DaxY-Bdg.js +218 -0
  10. package/dist/approvers-aH0PJkmf.js +20 -0
  11. package/dist/arazzo-CTeVuXr5.js +70 -0
  12. package/dist/arazzo-aoTkqYsJ.js +54 -0
  13. package/dist/authzen/index.d.ts +48 -0
  14. package/dist/authzen/index.js +336 -0
  15. package/dist/better-auth/index.d.ts +92 -0
  16. package/dist/better-auth/index.js +324 -0
  17. package/dist/budget-JqcRqyhK.d.ts +11 -0
  18. package/dist/budget-NbEtbJC_.js +11 -0
  19. package/dist/capability-B68OFnZx.js +171 -0
  20. package/dist/capability-BDG_nkxt.d.ts +99 -0
  21. package/dist/catalog/index.d.ts +12 -0
  22. package/dist/catalog/index.js +2 -0
  23. package/dist/catalog-B0E6bggc.js +48 -0
  24. package/dist/catalog-H-vFGwWK.js +55 -0
  25. package/dist/catalog-doc-BSo_Q_-6.js +298 -0
  26. package/dist/catalog-idsHc0vo.js +2 -0
  27. package/dist/catalog-path-CnI0XTFK.js +12 -0
  28. package/dist/claude-agent/index.d.ts +81 -0
  29. package/dist/claude-agent/index.js +83 -0
  30. package/dist/clerk/index.d.ts +56 -0
  31. package/dist/clerk/index.js +280 -0
  32. package/dist/cli/bin.d.ts +1 -0
  33. package/dist/cli/bin.js +20 -0
  34. package/dist/cli/index.d.ts +46 -0
  35. package/dist/cli/index.js +5 -0
  36. package/dist/cloud/index.d.ts +91 -0
  37. package/dist/cloud/index.js +390 -0
  38. package/dist/cloud-BNQTrmrr.js +50 -0
  39. package/dist/cloud-Cuxr6Czw.js +117 -0
  40. package/dist/collect-B7_TIfmg.js +49 -0
  41. package/dist/collect-O-tOtbnk.js +350 -0
  42. package/dist/collect-fRPAQIWb.js +2 -0
  43. package/dist/commands-BMh_Etm2.js +93 -0
  44. package/dist/compact-y6vfu2_f.js +19 -0
  45. package/dist/compare-pfyVnBjE.js +12 -0
  46. package/dist/compile-CQbvyIBr.d.ts +30 -0
  47. package/dist/compile-D22iwvuV.js +558 -0
  48. package/dist/config-BPYmjTOp.js +26 -0
  49. package/dist/connection-JvqwHODC.js +194 -0
  50. package/dist/context-CKEAabd7.js +73 -0
  51. package/dist/context-gtAwAILx.js +6 -0
  52. package/dist/convex/index.d.ts +40 -0
  53. package/dist/convex/index.js +55 -0
  54. package/dist/create-BKF3dgFk.d.ts +162 -0
  55. package/dist/create-CSkhDU9T.js +222 -0
  56. package/dist/credential-B_rkUNlY.js +326 -0
  57. package/dist/credentials-BgRX3WEg.js +268 -0
  58. package/dist/describe-Bt1YD5uS.js +99 -0
  59. package/dist/describe-DernyItf.d.ts +37 -0
  60. package/dist/diff-BUzf5Poi.js +48 -0
  61. package/dist/diff-x5Il8LVa.js +418 -0
  62. package/dist/digest-B3kc_PgQ.d.ts +19 -0
  63. package/dist/digest-BI-6aa6d.js +27 -0
  64. package/dist/doctor-BGle8Gqi.js +1314 -0
  65. package/dist/doctor-Bqo6FwUa.js +53 -0
  66. package/dist/drizzle/index.d.ts +72 -0
  67. package/dist/drizzle/index.js +160 -0
  68. package/dist/duration-xK2jGFVc.js +25 -0
  69. package/dist/elysia/index.d.ts +71 -0
  70. package/dist/elysia/index.js +103 -0
  71. package/dist/errors-DSMnAVNa.js +43 -0
  72. package/dist/errors-DbZ1YOnb.d.ts +138 -0
  73. package/dist/errors-Iy71s7Oj.js +177 -0
  74. package/dist/errors-m3u9TmDu.js +27 -0
  75. package/dist/evaluations-DsAU9ppl.js +479 -0
  76. package/dist/eve/index.d.ts +95 -0
  77. package/dist/eve/index.js +181 -0
  78. package/dist/express/index.d.ts +46 -0
  79. package/dist/express/index.js +108 -0
  80. package/dist/fastify/index.d.ts +56 -0
  81. package/dist/fastify/index.js +141 -0
  82. package/dist/files-B_wAGYmt.js +121 -0
  83. package/dist/fixtures-Cvaw0gDG.js +64 -0
  84. package/dist/freeze-y1_jQL4v.js +31 -0
  85. package/dist/from-snapshot-BMGnhmgv.js +552 -0
  86. package/dist/generate-CH7ThJ14.js +173 -0
  87. package/dist/grantee-Bv04_Vzf.js +521 -0
  88. package/dist/headers-B5RRv3Xm.js +6 -0
  89. package/dist/headers-C8SHQccD.d.ts +6 -0
  90. package/dist/helpers-DnSOrhB9.js +682 -0
  91. package/dist/hono/index.d.ts +70 -0
  92. package/dist/hono/index.js +131 -0
  93. package/dist/hosted-BwKQ1BTA.js +265 -0
  94. package/dist/http-DPuDaChb.d.ts +13 -0
  95. package/dist/http-GgVApX1k.js +111 -0
  96. package/dist/index-CltcQ4Bf.d.ts +138 -0
  97. package/dist/index-LF_hS-yn.d.ts +177 -0
  98. package/dist/index-fG6NSXlc.d.ts +9 -0
  99. package/dist/index-xIxJLwOQ.d.ts +415 -0
  100. package/dist/index.d.ts +11 -0
  101. package/dist/index.js +21 -0
  102. package/dist/jwt/index.d.ts +87 -0
  103. package/dist/jwt/index.js +571 -0
  104. package/dist/kernel-YOGCWNLf.js +211 -0
  105. package/dist/kysely/index.d.ts +77 -0
  106. package/dist/kysely/index.js +129 -0
  107. package/dist/load-BZ24CpZP.js +69 -0
  108. package/dist/load-QOOm1z70.js +2 -0
  109. package/dist/load-jose-BL6LH4bL.js +11 -0
  110. package/dist/lru-8q4WZjBV.js +28 -0
  111. package/dist/manifest-DDQbC6K0.d.ts +118 -0
  112. package/dist/map-DowSO96j.js +158 -0
  113. package/dist/map-claims-B_6I1Rn-.js +360 -0
  114. package/dist/map-error-RJ3ZsUyA.js +16 -0
  115. package/dist/markers-B0hYLvMD.js +60 -0
  116. package/dist/may-use-CnFEjVEp.js +37 -0
  117. package/dist/mcp/index.d.ts +127 -0
  118. package/dist/mcp/index.js +563 -0
  119. package/dist/nest/index.d.ts +80 -0
  120. package/dist/nest/index.js +270 -0
  121. package/dist/next/client.d.ts +24 -0
  122. package/dist/next/client.js +31 -0
  123. package/dist/next/index.d.ts +110 -0
  124. package/dist/next/index.js +195 -0
  125. package/dist/next/plugin.d.ts +14 -0
  126. package/dist/next/plugin.js +2 -0
  127. package/dist/node/index.d.ts +43 -0
  128. package/dist/node/index.js +66 -0
  129. package/dist/openai/index.d.ts +71 -0
  130. package/dist/openai/index.js +105 -0
  131. package/dist/openapi/index.d.ts +93 -0
  132. package/dist/openapi/index.js +3 -0
  133. package/dist/openapi-CwePaF7C.js +164 -0
  134. package/dist/openapi-DWD0Uc_4.js +250 -0
  135. package/dist/openapi-DcqM8nU7.js +306 -0
  136. package/dist/openapi-import-BWRUNNeW.js +5959 -0
  137. package/dist/openapi-schema-D8j_T9tO.js +6902 -0
  138. package/dist/orpc/index.d.ts +64 -0
  139. package/dist/orpc/index.js +188 -0
  140. package/dist/otel/index.d.ts +13 -0
  141. package/dist/otel/index.js +202 -0
  142. package/dist/package-root-zGkxO3oN.js +30 -0
  143. package/dist/parse-DPfIvFMU.js +135 -0
  144. package/dist/pdp/index.d.ts +22 -0
  145. package/dist/pdp/index.js +795 -0
  146. package/dist/peer-BOr_kJE1.js +31 -0
  147. package/dist/permdock-yoZ7EjxX.js +2956 -0
  148. package/dist/permissions-B4apnahQ.d.ts +185 -0
  149. package/dist/permissions-B8vCg_bI.d.ts +52 -0
  150. package/dist/permissions-CofRqesP.js +142 -0
  151. package/dist/permissions-DC7GROPA.js +600 -0
  152. package/dist/pg-4GJWDUxG.js +953 -0
  153. package/dist/pins-CqE1jZuF.js +12 -0
  154. package/dist/plugin-4gr7IxFJ.js +65 -0
  155. package/dist/policy-ANp36PnI.js +971 -0
  156. package/dist/policy-CInmNGkM.d.ts +1959 -0
  157. package/dist/policy-Cq2fB8Q5.d.ts +20 -0
  158. package/dist/prisma/index.d.ts +135 -0
  159. package/dist/prisma/index.js +430 -0
  160. package/dist/problem-Cgp9-KZA.js +226 -0
  161. package/dist/prompt-CXYhLfsS.js +32 -0
  162. package/dist/protected-B4K3BKoX.js +138 -0
  163. package/dist/protected-BuPAycJT.d.ts +26 -0
  164. package/dist/protected-wY7nXhY9.d.ts +23 -0
  165. package/dist/provider-_wx46HpB.js +48 -0
  166. package/dist/provider-wTAUda2v.d.ts +6 -0
  167. package/dist/react/index.d.ts +6 -0
  168. package/dist/react/index.js +6 -0
  169. package/dist/react/provider-client.d.ts +2 -0
  170. package/dist/react/provider-client.js +3 -0
  171. package/dist/react-native/index.d.ts +42 -0
  172. package/dist/react-native/index.js +174 -0
  173. package/dist/refs-ChLSxbST.js +90 -0
  174. package/dist/relations-r4soIFZB.js +426 -0
  175. package/dist/revocations-Cy06JNx2.d.ts +21 -0
  176. package/dist/rls-BOFU3chG.js +233 -0
  177. package/dist/rls-CJVja9Ww.js +2119 -0
  178. package/dist/rls-graph-DxQ39PJj.js +371 -0
  179. package/dist/rls-helpers-BxRuif0l.js +1346 -0
  180. package/dist/rls-import-CXV6LBlS.js +942 -0
  181. package/dist/rls-migrate-DrFPbf8p.js +366 -0
  182. package/dist/row-check-BajTgQZ-.d.ts +43 -0
  183. package/dist/run-CJ6UvS3a.js +155 -0
  184. package/dist/runtime-DP9ttFh1.js +27 -0
  185. package/dist/saas-BRrZzJkM.js +1193 -0
  186. package/dist/schema-P8yoma__.js +296 -0
  187. package/dist/scim/index.d.ts +2 -0
  188. package/dist/scim/index.js +2 -0
  189. package/dist/scim-9NFa0XVZ.js +1445 -0
  190. package/dist/scopes-cKVp_WTw.js +212 -0
  191. package/dist/server/index.d.ts +123 -0
  192. package/dist/server/index.js +8 -0
  193. package/dist/sha256-BO0swRXL.js +150 -0
  194. package/dist/sink-Bd9PSyfq.js +141 -0
  195. package/dist/sink-Cfr9-7YC.d.ts +104 -0
  196. package/dist/skills-C_lpV4Jx.js +50 -0
  197. package/dist/skills-Dx3QLnMY.js +110 -0
  198. package/dist/snapshot-DE8dE_hz.js +1051 -0
  199. package/dist/solid/index.d.ts +63 -0
  200. package/dist/solid/index.js +197 -0
  201. package/dist/source-DoBBYJi2.js +6 -0
  202. package/dist/sources-DOpW5Ila.d.ts +347 -0
  203. package/dist/sources-DVHM3Mwq.js +284 -0
  204. package/dist/sql-Bll1d7y0.js +22 -0
  205. package/dist/src-CTNT-PBW.js +430 -0
  206. package/dist/ssf/index.d.ts +3 -0
  207. package/dist/ssf/index.js +622 -0
  208. package/dist/store-Bq90395i.d.ts +27 -0
  209. package/dist/store-C6hFW6ta.js +508 -0
  210. package/dist/stores-CkG2HrSg.js +140 -0
  211. package/dist/stores-CvOnu_2T.d.ts +41 -0
  212. package/dist/stream-BhMfZOwr.d.ts +12 -0
  213. package/dist/stream-Q_xlB6Ko.js +52 -0
  214. package/dist/style-CTm1AXDT.js +22 -0
  215. package/dist/subject-C6dLxqHU.js +24 -0
  216. package/dist/subject-settings-xt7V845g.js +82 -0
  217. package/dist/supabase/index.d.ts +67 -0
  218. package/dist/supabase/index.js +4 -0
  219. package/dist/supabase/middleware.d.ts +77 -0
  220. package/dist/supabase/middleware.js +68 -0
  221. package/dist/supabase-D8UlBA7Z.js +83 -0
  222. package/dist/supabase-DTxGtYdi.js +796 -0
  223. package/dist/supabase-hook-DW-xP4hU.js +2 -0
  224. package/dist/supabase-hook-D_OqGb_V.js +1528 -0
  225. package/dist/svelte/Protected.svelte +34 -0
  226. package/dist/svelte/index.d.ts +10 -0
  227. package/dist/svelte/index.js +53 -0
  228. package/dist/svelte/runtime.d.ts +6 -0
  229. package/dist/svelte/runtime.js +3 -0
  230. package/dist/svelte/source.d.ts +10 -0
  231. package/dist/svelte/source.js +8 -0
  232. package/dist/terminal/index.d.ts +171 -0
  233. package/dist/terminal/index.js +821 -0
  234. package/dist/testing/index.d.ts +656 -0
  235. package/dist/testing/index.js +3208 -0
  236. package/dist/testing/saas/index.d.ts +194 -0
  237. package/dist/testing/saas/index.js +3 -0
  238. package/dist/testing/saas/permissions.d.ts +2 -0
  239. package/dist/testing/saas/permissions.js +2 -0
  240. package/dist/text-diff-BdkkYSbi.js +15 -0
  241. package/dist/thenable-okc2xDsj.js +10 -0
  242. package/dist/timeout-D51niuQP.js +8 -0
  243. package/dist/trpc/index.d.ts +80 -0
  244. package/dist/trpc/index.js +205 -0
  245. package/dist/types-B8w5PFtS.d.ts +141 -0
  246. package/dist/types-B9dmiiab.d.ts +66 -0
  247. package/dist/types-BBK-exvJ.d.ts +177 -0
  248. package/dist/types-BvBk1wgn.d.ts +118 -0
  249. package/dist/types-CxquUByI.d.ts +9 -0
  250. package/dist/types-D6Z6-rKJ.d.ts +312 -0
  251. package/dist/types-DbWdEfcm.d.ts +87 -0
  252. package/dist/types-bva3i4Gf.d.ts +98 -0
  253. package/dist/types-i4BAOvdb.d.ts +97 -0
  254. package/dist/unplugin/index.d.ts +7 -0
  255. package/dist/unplugin/index.js +30 -0
  256. package/dist/usage-1ozMubLY.js +42 -0
  257. package/dist/usage-CUnK6Ou9.js +530 -0
  258. package/dist/usage-PyEor6GA.js +2 -0
  259. package/dist/validity-D0uRmJKJ.js +224 -0
  260. package/dist/verifier-B90agnhl.js +461 -0
  261. package/dist/version-CnSh33Fj.js +16 -0
  262. package/dist/vocabulary-Dk0fs-Jk.d.ts +56 -0
  263. package/dist/vue/index.d.ts +57 -0
  264. package/dist/vue/index.js +203 -0
  265. package/dist/webmcp/index.d.ts +75 -0
  266. package/dist/webmcp/index.js +313 -0
  267. package/package.json +423 -4
  268. package/rulesets/permdock.yaml +29 -0
  269. package/schemas/catalog-v1.json +507 -0
  270. package/schemas/openapi/oas-3.1.json +1298 -0
  271. package/schemas/openapi/oas-3.2.json +1516 -0
  272. package/schemas/openapi/overlay-1.1.json +79 -0
  273. package/schemas/supabase-claims-v1.json +139 -0
  274. package/schemas/supabase-manifest-v1.json +217 -0
  275. package/skills/permdock/SKILL.md +66 -0
  276. package/skills/permdock-agents/SKILL.md +77 -0
  277. package/skills/permdock-agents/references/runtimes.md +211 -0
  278. package/skills/permdock-approvals/SKILL.md +80 -0
  279. package/skills/permdock-approvals/references/stores-and-resume.md +83 -0
  280. package/skills/permdock-audit/SKILL.md +67 -0
  281. package/skills/permdock-credentials/SKILL.md +55 -0
  282. package/skills/permdock-credentials/references/tokens-keys-links.md +127 -0
  283. package/skills/permdock-data/SKILL.md +57 -0
  284. package/skills/permdock-data/references/queries-and-rls.md +54 -0
  285. package/skills/permdock-data/references/relationships.md +65 -0
  286. package/skills/permdock-tenancy/SKILL.md +77 -0
  287. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +83 -0
  288. package/skills/permdock-wire/SKILL.md +116 -0
  289. package/skills/permdock-wire/references/adapters.md +480 -0
  290. package/skills/permdock-wire/references/policy-options.md +43 -0
@@ -0,0 +1,87 @@
1
+ import { E as PolicyVocabulary, Et as TokenVerifier, Mn as Decision, Zt as PermDock, gt as Snapshot, ir as Actor, mr as Principal, ur as Delegation } from "./policy-CInmNGkM.js";
2
+ import { d as Permission } from "./permissions-B4apnahQ.js";
3
+ import { ReactNode } from "react";
4
+ //#region src/react/types.d.ts
5
+ type ClientStatus = "ready" | "pending" | "stale" | "server-only";
6
+ type PermissionState = {
7
+ readonly allowed: boolean;
8
+ readonly status: ClientStatus;
9
+ readonly decision: Decision;
10
+ };
11
+ type PermissionSet = {
12
+ readonly granted: readonly Permission[];
13
+ get(permission: Permission): PermissionState | undefined;
14
+ };
15
+ type ClientPermDock<V extends PolicyVocabulary = PolicyVocabulary> = PermDock<V> & {
16
+ status(permission?: Permission, data?: unknown): ClientStatus;
17
+ invalidate(ref: Permission | {
18
+ readonly [key: string]: unknown;
19
+ }): void;
20
+ refresh(options?: {
21
+ readonly tenant?: string;
22
+ }): Promise<void>;
23
+ clear(): void;
24
+ subscribe(listener: () => void): () => void;
25
+ };
26
+ type ApprovalState = "not-needed" | "required" | "pending" | "approved" | "rejected" | "expired";
27
+ type ApprovalHandle = {
28
+ readonly state: ApprovalState;
29
+ readonly token: string | undefined;
30
+ readonly request: (note?: string) => Promise<void>;
31
+ };
32
+ type SubjectView = {
33
+ readonly principal: Principal | null;
34
+ readonly actor: Actor | undefined;
35
+ readonly delegation: Delegation | undefined;
36
+ readonly expiresAt: number | undefined;
37
+ readonly simulated: boolean;
38
+ };
39
+ type TenantView = {
40
+ readonly tenant: string | null;
41
+ readonly tenants: readonly string[];
42
+ readonly switchTo: (id: string) => Promise<void>;
43
+ readonly status: ClientStatus;
44
+ };
45
+ type FilterResult<T> = readonly T[] & {
46
+ readonly partial: boolean;
47
+ };
48
+ type PermDockProviderProps = ({
49
+ readonly snapshot: Snapshot | string;
50
+ readonly snapshotPromise?: never;
51
+ } | {
52
+ /**
53
+ * An unawaited snapshot from a Server Component. Hooks suspend until it resolves, so only
54
+ * the components that read permissions wait. A rejection reaches the nearest error boundary.
55
+ */
56
+ readonly snapshotPromise: PromiseLike<Snapshot | string>;
57
+ readonly snapshot?: never;
58
+ }) & {
59
+ /**
60
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer. `false` never
61
+ * fetches: those checks answer `denied` with reason `server-only`.
62
+ */
63
+ readonly endpoint?: string | false;
64
+ readonly approvals?: string;
65
+ readonly tenant?: string;
66
+ readonly fetch?: typeof fetch;
67
+ readonly headers?: Readonly<Record<string, string>>;
68
+ readonly maxAge?: number;
69
+ readonly verifier?: TokenVerifier;
70
+ readonly children: ReactNode;
71
+ };
72
+ type UseRolesOptions = {
73
+ readonly tenant?: string;
74
+ readonly team?: string;
75
+ };
76
+ type ProtectedProps = {
77
+ readonly permission: Permission;
78
+ readonly data?: unknown;
79
+ readonly tenant?: string;
80
+ readonly pending?: ReactNode;
81
+ readonly fallback?: ReactNode | ((decision: Decision) => ReactNode);
82
+ readonly children: ReactNode | ((decision: Extract<Decision, {
83
+ readonly outcome: "granted";
84
+ }>) => ReactNode);
85
+ };
86
+ //#endregion
87
+ export { FilterResult as a, PermissionState as c, TenantView as d, UseRolesOptions as f, ClientStatus as i, ProtectedProps as l, ApprovalState as n, PermDockProviderProps as o, ClientPermDock as r, PermissionSet as s, ApprovalHandle as t, SubjectView as u };
@@ -0,0 +1,98 @@
1
+ import { Et as TokenVerifier, J as AuthEvent, ct as MembershipSource, hr as Subject, ir as Actor, mr as Principal, nt as JwtClaims, wt as TokenFailureCause } from "./policy-CInmNGkM.js";
2
+ import { StandardSchemaV1 } from "@standard-schema/spec";
3
+ //#region src/jwt/types.d.ts
4
+ type JwtAlgorithm = "ES256" | "PS256" | "Ed25519" | "RS256" | "HS256" | "EdDSA";
5
+ type JwtProfile = "fapi2";
6
+ type JsonWebKeySet = {
7
+ readonly keys: readonly Record<string, unknown>[];
8
+ };
9
+ type JwtJwks = URL | string | JsonWebKeySet | {
10
+ readonly secret: Uint8Array | string;
11
+ };
12
+ type DiscoveryInput = string | {
13
+ readonly issuer: string;
14
+ readonly metadata?: {
15
+ readonly issuer?: string;
16
+ readonly jwks_uri?: string;
17
+ };
18
+ };
19
+ type JwksCacheOptions = {
20
+ readonly minTtl?: number;
21
+ readonly maxTtl?: number;
22
+ readonly cooldown?: number;
23
+ /** Milliseconds a discovery or JWKS request may take before it counts as failed. Default 5000. */
24
+ readonly timeout?: number;
25
+ };
26
+ type JoseTokenVerifierOptions = {
27
+ readonly jwks?: JwtJwks;
28
+ readonly discovery?: DiscoveryInput;
29
+ readonly issuer?: string;
30
+ readonly algorithms?: readonly JwtAlgorithm[];
31
+ readonly typ?: string | readonly string[];
32
+ readonly audience?: string | readonly string[];
33
+ readonly clockTolerance?: number;
34
+ readonly decryptionKeys?: JsonWebKeySet | Record<string, unknown>;
35
+ readonly decryptionAlgorithms?: readonly string[];
36
+ readonly profile?: JwtProfile;
37
+ readonly jwksCache?: JwksCacheOptions;
38
+ readonly fetch?: typeof fetch;
39
+ };
40
+ type JoseTokenSignerOptions = {
41
+ readonly key: Record<string, unknown> | Uint8Array;
42
+ readonly alg: JwtAlgorithm;
43
+ readonly kid: string;
44
+ readonly issuer?: string;
45
+ };
46
+ type JwtClaimPaths = {
47
+ readonly id?: string;
48
+ readonly roles?: string;
49
+ readonly groups?: string;
50
+ readonly entitlements?: string;
51
+ readonly plans?: string;
52
+ readonly tenant?: string;
53
+ readonly memberships?: string;
54
+ readonly kind?: string;
55
+ readonly assurance?: string | {
56
+ readonly acr?: string;
57
+ readonly amr?: string;
58
+ readonly authTime?: string;
59
+ /** OpenID Connect for Identity Assurance; default `verified_claims`. */
60
+ readonly verified?: string;
61
+ };
62
+ readonly session?: string;
63
+ };
64
+ type JwtDelegationPaths = {
65
+ readonly scopes?: string;
66
+ readonly authorizationDetails?: string;
67
+ readonly access?: string;
68
+ };
69
+ type JwtSubjectOptions = JoseTokenVerifierOptions & {
70
+ readonly accept?: "access-token" | "id-token";
71
+ readonly claims?: JwtClaimPaths;
72
+ readonly groupRoles?: Readonly<Record<string, readonly string[]>>;
73
+ readonly schema?: StandardSchemaV1;
74
+ readonly delegation?: JwtDelegationPaths;
75
+ readonly actor?: {
76
+ readonly from?: "act";
77
+ readonly kind?: string;
78
+ } | ((claims: JwtClaims) => Actor | undefined);
79
+ readonly sender?: "none" | "dpop" | "mtls";
80
+ readonly memberships?: MembershipSource;
81
+ readonly verifier?: TokenVerifier;
82
+ readonly certificateThumbprint?: string;
83
+ readonly onAuth?: (event: AuthEvent) => void;
84
+ readonly requestId?: string;
85
+ };
86
+ type JwtPrincipal = Principal & {
87
+ readonly issuer?: string;
88
+ readonly claims?: Readonly<Record<string, unknown>>;
89
+ };
90
+ type DpopProofResult = {
91
+ readonly ok: true;
92
+ } | {
93
+ readonly ok: false;
94
+ readonly cause: TokenFailureCause;
95
+ };
96
+ type MappedSubject = Subject<JwtPrincipal>;
97
+ //#endregion
98
+ export { JsonWebKeySet as a, JwtJwks as c, MappedSubject as d, JoseTokenVerifierOptions as i, JwtPrincipal as l, DpopProofResult as n, JwtAlgorithm as o, JoseTokenSignerOptions as r, JwtClaimPaths as s, DiscoveryInput as t, JwtSubjectOptions as u };
@@ -0,0 +1,97 @@
1
+ import { Et as TokenVerifier, wt as TokenFailureCause } from "./policy-CInmNGkM.js";
2
+ import { f as ApprovalStore } from "./types-B8w5PFtS.js";
3
+ import { c as JwtJwks, t as DiscoveryInput } from "./types-bva3i4Gf.js";
4
+ import { n as RevocationFeed } from "./revocations-Cy06JNx2.js";
5
+ //#region src/ssf/types.d.ts
6
+ type CaepEventName = "session-revoked" | "credential-change" | "assurance-level-change" | "token-claims-change" | "device-compliance-change";
7
+ type SetSubject = {
8
+ readonly format: string;
9
+ readonly [key: string]: unknown;
10
+ };
11
+ type SsfSubject = {
12
+ readonly id: string;
13
+ readonly session?: string;
14
+ readonly issuer?: string;
15
+ };
16
+ type SsfSubjectMapper = (setSubject: SetSubject, meta?: {
17
+ readonly session?: string;
18
+ readonly issuer?: string;
19
+ }) => string | SsfSubject | null | undefined | Promise<string | SsfSubject | null | undefined>;
20
+ type SsfEventInput = {
21
+ readonly subject: SsfSubject;
22
+ readonly event: Readonly<Record<string, unknown>>;
23
+ readonly event_timestamp?: number;
24
+ readonly jti: string;
25
+ readonly type: string;
26
+ };
27
+ type SsfEventHandler = (input: SsfEventInput) => void | Promise<void>;
28
+ type SsfOnEvent = { readonly [K in CaepEventName]?: SsfEventHandler; } & {
29
+ readonly "*"?: SsfEventHandler;
30
+ };
31
+ /**
32
+ * Keys are opaque strings namespaced by issuer. A store that implements both
33
+ * `claim` and `release` makes concurrent deliveries of one SET dispatch once;
34
+ * one with only `seen` and `remember` is checked and recorded non-atomically.
35
+ */
36
+ type ReplayStore = {
37
+ seen(key: string): boolean | Promise<boolean>;
38
+ remember(key: string, expiresAt?: number): void | Promise<void>;
39
+ /** Records `key` and returns `true` only if it was not already recorded. */
40
+ claim?(key: string, expiresAt?: number): boolean | Promise<boolean>;
41
+ /** Forgets a claimed `key` so a failed delivery can be retried. */
42
+ release?(key: string): void | Promise<void>;
43
+ };
44
+ type SsfAuditEvent = {
45
+ readonly type: string;
46
+ readonly subject?: SsfSubject;
47
+ readonly transmitter?: string;
48
+ readonly jti?: string;
49
+ readonly replayed?: true;
50
+ readonly cancelled?: number;
51
+ readonly unknown?: "event" | "subject";
52
+ readonly err?: string;
53
+ readonly cause?: TokenFailureCause;
54
+ };
55
+ type SsfEventListener = (event: SsfAuditEvent) => void;
56
+ type PollOptions = {
57
+ readonly endpoint: string;
58
+ readonly every?: number | string;
59
+ readonly token?: string;
60
+ readonly fetch?: typeof fetch;
61
+ readonly signal?: AbortSignal;
62
+ };
63
+ type PollHandle = {
64
+ readonly stop: () => void;
65
+ };
66
+ type PollResult = {
67
+ readonly acked: readonly string[];
68
+ };
69
+ type SsfPermDockOptions = {
70
+ readonly issuer?: string;
71
+ readonly audience: string | readonly string[];
72
+ readonly jwks?: JwtJwks | string;
73
+ readonly discovery?: DiscoveryInput;
74
+ readonly verifier?: TokenVerifier;
75
+ readonly subject: SsfSubjectMapper;
76
+ readonly onEvent?: SsfOnEvent;
77
+ readonly replay?: ReplayStore;
78
+ readonly approvals?: ApprovalStore;
79
+ /**
80
+ * Publishes `session-revoked` for a revoked session and `changed` for
81
+ * credential, assurance and claims changes, so open connections end or
82
+ * revalidate.
83
+ */
84
+ readonly revocations?: RevocationFeed;
85
+ readonly clockTolerance?: number;
86
+ };
87
+ type SsfReceiver = {
88
+ push(request: Request): Promise<Response>;
89
+ logout(request: Request): Promise<Response>;
90
+ poll(options: PollOptions): Promise<PollResult> | PollHandle;
91
+ on(event: "event", handler: SsfEventListener): () => void;
92
+ };
93
+ type SsfPermDock = {
94
+ readonly receiver: SsfReceiver;
95
+ };
96
+ //#endregion
97
+ export { ReplayStore as a, SsfEventHandler as c, SsfOnEvent as d, SsfPermDock as f, SsfSubjectMapper as g, SsfSubject as h, PollResult as i, SsfEventInput as l, SsfReceiver as m, PollHandle as n, SetSubject as o, SsfPermDockOptions as p, PollOptions as r, SsfAuditEvent as s, CaepEventName as t, SsfEventListener as u };
@@ -0,0 +1,7 @@
1
+ import { a as PermDockPluginOptions } from "../types-D6Z6-rKJ.js";
2
+ import { createUnplugin } from "unplugin";
3
+ //#region src/unplugin/index.d.ts
4
+ type CreateUnplugin = typeof createUnplugin<PermDockPluginOptions | undefined>;
5
+ export declare const createPermDockUnplugin: ReturnType<CreateUnplugin>;
6
+ //#endregion
7
+ export type { PermDockPluginOptions };
@@ -0,0 +1,30 @@
1
+ import { n as runPluginCollect } from "../plugin-4gr7IxFJ.js";
2
+ import { t as peerHint } from "../peer-BOr_kJE1.js";
3
+ import { createRequire } from "node:module";
4
+ //#region src/unplugin/index.ts
5
+ function loadCreateUnplugin() {
6
+ try {
7
+ return createRequire(import.meta.url)("unplugin").createUnplugin;
8
+ } catch {
9
+ throw new Error(peerHint("unplugin", "permdock/unplugin"));
10
+ }
11
+ }
12
+ function report(message) {
13
+ if (message !== void 0) process.stderr.write(`permdock: ${message}\n`);
14
+ }
15
+ function collectPlugin(options) {
16
+ return {
17
+ name: "permdock-collect",
18
+ async buildStart() {
19
+ report(await runPluginCollect(process.cwd(), options, options?.check === true));
20
+ },
21
+ watchChange() {
22
+ runPluginCollect(process.cwd(), options, false).then(report, (error) => {
23
+ report(error instanceof Error ? error.message : String(error));
24
+ });
25
+ }
26
+ };
27
+ }
28
+ const createPermDockUnplugin = loadCreateUnplugin()(collectPlugin);
29
+ //#endregion
30
+ export { createPermDockUnplugin };
@@ -0,0 +1,42 @@
1
+ import { a as listArg, i as globalArgs, t as COMMAND_DESCRIPTIONS } from "./commands-BMh_Etm2.js";
2
+ import { defineCommand } from "citty";
3
+ //#region src/cli/commands/usage.ts
4
+ function usage(ctx) {
5
+ return defineCommand({
6
+ meta: {
7
+ name: "usage",
8
+ description: COMMAND_DESCRIPTIONS.usage
9
+ },
10
+ args: {
11
+ ...globalArgs,
12
+ strict: {
13
+ type: "boolean",
14
+ description: "Exit 1 on any finding"
15
+ },
16
+ ignore: {
17
+ type: "string",
18
+ description: "Permission keys or globs to skip, repeatable",
19
+ valueHint: "glob"
20
+ },
21
+ "dynamic-as-used": {
22
+ type: "boolean",
23
+ description: "Count computed permission references as uses"
24
+ }
25
+ },
26
+ async run({ args: parsed, rawArgs }) {
27
+ const result = await (await import("./usage-PyEor6GA.js")).runUsage({
28
+ cwd: ctx.cwd,
29
+ config: ctx.config,
30
+ ignore: listArg(rawArgs, "ignore"),
31
+ strict: parsed.strict === true,
32
+ json: ctx.json,
33
+ dynamicAsUsed: parsed["dynamic-as-used"] === true,
34
+ now: ctx.now,
35
+ io: ctx.io
36
+ });
37
+ ctx.report(result);
38
+ }
39
+ });
40
+ }
41
+ //#endregion
42
+ export { usage };