@fuzdev/fuz_app 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 (457) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/dist/actions/action_bridge.d.ts +65 -0
  4. package/dist/actions/action_bridge.d.ts.map +1 -0
  5. package/dist/actions/action_bridge.js +76 -0
  6. package/dist/actions/action_codegen.d.ts +97 -0
  7. package/dist/actions/action_codegen.d.ts.map +1 -0
  8. package/dist/actions/action_codegen.js +280 -0
  9. package/dist/actions/action_registry.d.ts +35 -0
  10. package/dist/actions/action_registry.d.ts.map +1 -0
  11. package/dist/actions/action_registry.js +83 -0
  12. package/dist/actions/action_spec.d.ts +169 -0
  13. package/dist/actions/action_spec.d.ts.map +1 -0
  14. package/dist/actions/action_spec.js +76 -0
  15. package/dist/auth/account_queries.d.ts +96 -0
  16. package/dist/auth/account_queries.d.ts.map +1 -0
  17. package/dist/auth/account_queries.js +172 -0
  18. package/dist/auth/account_routes.d.ts +86 -0
  19. package/dist/auth/account_routes.d.ts.map +1 -0
  20. package/dist/auth/account_routes.js +406 -0
  21. package/dist/auth/account_schema.d.ts +192 -0
  22. package/dist/auth/account_schema.d.ts.map +1 -0
  23. package/dist/auth/account_schema.js +105 -0
  24. package/dist/auth/admin_routes.d.ts +29 -0
  25. package/dist/auth/admin_routes.d.ts.map +1 -0
  26. package/dist/auth/admin_routes.js +193 -0
  27. package/dist/auth/api_token.d.ts +33 -0
  28. package/dist/auth/api_token.d.ts.map +1 -0
  29. package/dist/auth/api_token.js +36 -0
  30. package/dist/auth/api_token_queries.d.ts +80 -0
  31. package/dist/auth/api_token_queries.d.ts.map +1 -0
  32. package/dist/auth/api_token_queries.js +116 -0
  33. package/dist/auth/app_settings_queries.d.ts +33 -0
  34. package/dist/auth/app_settings_queries.d.ts.map +1 -0
  35. package/dist/auth/app_settings_queries.js +51 -0
  36. package/dist/auth/app_settings_routes.d.ts +27 -0
  37. package/dist/auth/app_settings_routes.d.ts.map +1 -0
  38. package/dist/auth/app_settings_routes.js +66 -0
  39. package/dist/auth/app_settings_schema.d.ts +35 -0
  40. package/dist/auth/app_settings_schema.d.ts.map +1 -0
  41. package/dist/auth/app_settings_schema.js +22 -0
  42. package/dist/auth/audit_log_queries.d.ts +90 -0
  43. package/dist/auth/audit_log_queries.d.ts.map +1 -0
  44. package/dist/auth/audit_log_queries.js +205 -0
  45. package/dist/auth/audit_log_routes.d.ts +33 -0
  46. package/dist/auth/audit_log_routes.d.ts.map +1 -0
  47. package/dist/auth/audit_log_routes.js +106 -0
  48. package/dist/auth/audit_log_schema.d.ts +259 -0
  49. package/dist/auth/audit_log_schema.d.ts.map +1 -0
  50. package/dist/auth/audit_log_schema.js +123 -0
  51. package/dist/auth/bearer_auth.d.ts +32 -0
  52. package/dist/auth/bearer_auth.d.ts.map +1 -0
  53. package/dist/auth/bearer_auth.js +90 -0
  54. package/dist/auth/bootstrap_account.d.ts +82 -0
  55. package/dist/auth/bootstrap_account.d.ts.map +1 -0
  56. package/dist/auth/bootstrap_account.js +97 -0
  57. package/dist/auth/bootstrap_routes.d.ts +74 -0
  58. package/dist/auth/bootstrap_routes.d.ts.map +1 -0
  59. package/dist/auth/bootstrap_routes.js +154 -0
  60. package/dist/auth/daemon_token.d.ts +49 -0
  61. package/dist/auth/daemon_token.d.ts.map +1 -0
  62. package/dist/auth/daemon_token.js +49 -0
  63. package/dist/auth/daemon_token_middleware.d.ts +93 -0
  64. package/dist/auth/daemon_token_middleware.d.ts.map +1 -0
  65. package/dist/auth/daemon_token_middleware.js +167 -0
  66. package/dist/auth/ddl.d.ts +27 -0
  67. package/dist/auth/ddl.d.ts.map +1 -0
  68. package/dist/auth/ddl.js +111 -0
  69. package/dist/auth/deps.d.ts +52 -0
  70. package/dist/auth/deps.d.ts.map +1 -0
  71. package/dist/auth/deps.js +10 -0
  72. package/dist/auth/invite_queries.d.ts +68 -0
  73. package/dist/auth/invite_queries.d.ts.map +1 -0
  74. package/dist/auth/invite_queries.js +105 -0
  75. package/dist/auth/invite_routes.d.ts +18 -0
  76. package/dist/auth/invite_routes.d.ts.map +1 -0
  77. package/dist/auth/invite_routes.js +129 -0
  78. package/dist/auth/invite_schema.d.ts +51 -0
  79. package/dist/auth/invite_schema.d.ts.map +1 -0
  80. package/dist/auth/invite_schema.js +25 -0
  81. package/dist/auth/keyring.d.ts +87 -0
  82. package/dist/auth/keyring.d.ts.map +1 -0
  83. package/dist/auth/keyring.js +142 -0
  84. package/dist/auth/middleware.d.ts +40 -0
  85. package/dist/auth/middleware.d.ts.map +1 -0
  86. package/dist/auth/middleware.js +64 -0
  87. package/dist/auth/migrations.d.ts +42 -0
  88. package/dist/auth/migrations.d.ts.map +1 -0
  89. package/dist/auth/migrations.js +79 -0
  90. package/dist/auth/password.d.ts +39 -0
  91. package/dist/auth/password.d.ts.map +1 -0
  92. package/dist/auth/password.js +25 -0
  93. package/dist/auth/password_argon2.d.ts +43 -0
  94. package/dist/auth/password_argon2.d.ts.map +1 -0
  95. package/dist/auth/password_argon2.js +76 -0
  96. package/dist/auth/permit_queries.d.ts +72 -0
  97. package/dist/auth/permit_queries.d.ts.map +1 -0
  98. package/dist/auth/permit_queries.js +116 -0
  99. package/dist/auth/request_context.d.ts +114 -0
  100. package/dist/auth/request_context.d.ts.map +1 -0
  101. package/dist/auth/request_context.js +176 -0
  102. package/dist/auth/require_keeper.d.ts +20 -0
  103. package/dist/auth/require_keeper.d.ts.map +1 -0
  104. package/dist/auth/require_keeper.js +35 -0
  105. package/dist/auth/role_schema.d.ts +69 -0
  106. package/dist/auth/role_schema.d.ts.map +1 -0
  107. package/dist/auth/role_schema.js +70 -0
  108. package/dist/auth/route_guards.d.ts +21 -0
  109. package/dist/auth/route_guards.d.ts.map +1 -0
  110. package/dist/auth/route_guards.js +32 -0
  111. package/dist/auth/session_cookie.d.ts +158 -0
  112. package/dist/auth/session_cookie.d.ts.map +1 -0
  113. package/dist/auth/session_cookie.js +135 -0
  114. package/dist/auth/session_lifecycle.d.ts +35 -0
  115. package/dist/auth/session_lifecycle.d.ts.map +1 -0
  116. package/dist/auth/session_lifecycle.js +27 -0
  117. package/dist/auth/session_middleware.d.ts +33 -0
  118. package/dist/auth/session_middleware.d.ts.map +1 -0
  119. package/dist/auth/session_middleware.js +62 -0
  120. package/dist/auth/session_queries.d.ts +135 -0
  121. package/dist/auth/session_queries.d.ts.map +1 -0
  122. package/dist/auth/session_queries.js +186 -0
  123. package/dist/auth/signup_routes.d.ts +32 -0
  124. package/dist/auth/signup_routes.d.ts.map +1 -0
  125. package/dist/auth/signup_routes.js +150 -0
  126. package/dist/cli/args.d.ts +48 -0
  127. package/dist/cli/args.d.ts.map +1 -0
  128. package/dist/cli/args.js +76 -0
  129. package/dist/cli/config.d.ts +48 -0
  130. package/dist/cli/config.d.ts.map +1 -0
  131. package/dist/cli/config.js +77 -0
  132. package/dist/cli/daemon.d.ts +82 -0
  133. package/dist/cli/daemon.d.ts.map +1 -0
  134. package/dist/cli/daemon.js +149 -0
  135. package/dist/cli/help.d.ts +85 -0
  136. package/dist/cli/help.d.ts.map +1 -0
  137. package/dist/cli/help.js +138 -0
  138. package/dist/cli/logger.d.ts +46 -0
  139. package/dist/cli/logger.d.ts.map +1 -0
  140. package/dist/cli/logger.js +48 -0
  141. package/dist/cli/util.d.ts +36 -0
  142. package/dist/cli/util.d.ts.map +1 -0
  143. package/dist/cli/util.js +50 -0
  144. package/dist/crypto.d.ts +13 -0
  145. package/dist/crypto.d.ts.map +1 -0
  146. package/dist/crypto.js +19 -0
  147. package/dist/db/assert_row.d.ts +18 -0
  148. package/dist/db/assert_row.d.ts.map +1 -0
  149. package/dist/db/assert_row.js +24 -0
  150. package/dist/db/create_db.d.ts +38 -0
  151. package/dist/db/create_db.d.ts.map +1 -0
  152. package/dist/db/create_db.js +57 -0
  153. package/dist/db/db.d.ts +97 -0
  154. package/dist/db/db.d.ts.map +1 -0
  155. package/dist/db/db.js +76 -0
  156. package/dist/db/db_pg.d.ts +21 -0
  157. package/dist/db/db_pg.d.ts.map +1 -0
  158. package/dist/db/db_pg.js +45 -0
  159. package/dist/db/db_pglite.d.ts +21 -0
  160. package/dist/db/db_pglite.d.ts.map +1 -0
  161. package/dist/db/db_pglite.js +28 -0
  162. package/dist/db/migrate.d.ts +67 -0
  163. package/dist/db/migrate.d.ts.map +1 -0
  164. package/dist/db/migrate.js +118 -0
  165. package/dist/db/pg_error.d.ts +16 -0
  166. package/dist/db/pg_error.d.ts.map +1 -0
  167. package/dist/db/pg_error.js +15 -0
  168. package/dist/db/query_deps.d.ts +14 -0
  169. package/dist/db/query_deps.d.ts.map +1 -0
  170. package/dist/db/query_deps.js +9 -0
  171. package/dist/db/sql_identifier.d.ts +27 -0
  172. package/dist/db/sql_identifier.d.ts.map +1 -0
  173. package/dist/db/sql_identifier.js +31 -0
  174. package/dist/db/status.d.ts +62 -0
  175. package/dist/db/status.d.ts.map +1 -0
  176. package/dist/db/status.js +116 -0
  177. package/dist/dev/setup.d.ts +159 -0
  178. package/dist/dev/setup.d.ts.map +1 -0
  179. package/dist/dev/setup.js +265 -0
  180. package/dist/env/dotenv.d.ts +25 -0
  181. package/dist/env/dotenv.d.ts.map +1 -0
  182. package/dist/env/dotenv.js +52 -0
  183. package/dist/env/load.d.ts +52 -0
  184. package/dist/env/load.d.ts.map +1 -0
  185. package/dist/env/load.js +79 -0
  186. package/dist/env/mask.d.ts +19 -0
  187. package/dist/env/mask.d.ts.map +1 -0
  188. package/dist/env/mask.js +26 -0
  189. package/dist/env/resolve.d.ts +126 -0
  190. package/dist/env/resolve.d.ts.map +1 -0
  191. package/dist/env/resolve.js +200 -0
  192. package/dist/hono_context.d.ts +48 -0
  193. package/dist/hono_context.d.ts.map +1 -0
  194. package/dist/hono_context.js +22 -0
  195. package/dist/http/common_routes.d.ts +52 -0
  196. package/dist/http/common_routes.d.ts.map +1 -0
  197. package/dist/http/common_routes.js +65 -0
  198. package/dist/http/db_routes.d.ts +57 -0
  199. package/dist/http/db_routes.d.ts.map +1 -0
  200. package/dist/http/db_routes.js +176 -0
  201. package/dist/http/error_schemas.d.ts +169 -0
  202. package/dist/http/error_schemas.d.ts.map +1 -0
  203. package/dist/http/error_schemas.js +178 -0
  204. package/dist/http/middleware_spec.d.ts +19 -0
  205. package/dist/http/middleware_spec.d.ts.map +1 -0
  206. package/dist/http/middleware_spec.js +9 -0
  207. package/dist/http/origin.d.ts +57 -0
  208. package/dist/http/origin.d.ts.map +1 -0
  209. package/dist/http/origin.js +207 -0
  210. package/dist/http/proxy.d.ts +112 -0
  211. package/dist/http/proxy.d.ts.map +1 -0
  212. package/dist/http/proxy.js +240 -0
  213. package/dist/http/route_spec.d.ts +197 -0
  214. package/dist/http/route_spec.d.ts.map +1 -0
  215. package/dist/http/route_spec.js +243 -0
  216. package/dist/http/schema_helpers.d.ts +64 -0
  217. package/dist/http/schema_helpers.d.ts.map +1 -0
  218. package/dist/http/schema_helpers.js +90 -0
  219. package/dist/http/surface.d.ts +132 -0
  220. package/dist/http/surface.d.ts.map +1 -0
  221. package/dist/http/surface.js +156 -0
  222. package/dist/http/surface_query.d.ts +77 -0
  223. package/dist/http/surface_query.d.ts.map +1 -0
  224. package/dist/http/surface_query.js +86 -0
  225. package/dist/rate_limiter.d.ts +94 -0
  226. package/dist/rate_limiter.d.ts.map +1 -0
  227. package/dist/rate_limiter.js +156 -0
  228. package/dist/realtime/sse.d.ts +80 -0
  229. package/dist/realtime/sse.d.ts.map +1 -0
  230. package/dist/realtime/sse.js +109 -0
  231. package/dist/realtime/sse_auth_guard.d.ts +93 -0
  232. package/dist/realtime/sse_auth_guard.d.ts.map +1 -0
  233. package/dist/realtime/sse_auth_guard.js +111 -0
  234. package/dist/realtime/subscriber_registry.d.ts +85 -0
  235. package/dist/realtime/subscriber_registry.d.ts.map +1 -0
  236. package/dist/realtime/subscriber_registry.js +108 -0
  237. package/dist/runtime/deno.d.ts +21 -0
  238. package/dist/runtime/deno.d.ts.map +1 -0
  239. package/dist/runtime/deno.js +83 -0
  240. package/dist/runtime/deps.d.ts +113 -0
  241. package/dist/runtime/deps.d.ts.map +1 -0
  242. package/dist/runtime/deps.js +10 -0
  243. package/dist/runtime/fs.d.ts +15 -0
  244. package/dist/runtime/fs.d.ts.map +1 -0
  245. package/dist/runtime/fs.js +17 -0
  246. package/dist/runtime/mock.d.ts +81 -0
  247. package/dist/runtime/mock.d.ts.map +1 -0
  248. package/dist/runtime/mock.js +195 -0
  249. package/dist/runtime/node.d.ts +17 -0
  250. package/dist/runtime/node.d.ts.map +1 -0
  251. package/dist/runtime/node.js +117 -0
  252. package/dist/schema_meta.d.ts +16 -0
  253. package/dist/schema_meta.d.ts.map +1 -0
  254. package/dist/schema_meta.js +9 -0
  255. package/dist/sensitivity.d.ts +15 -0
  256. package/dist/sensitivity.d.ts.map +1 -0
  257. package/dist/sensitivity.js +9 -0
  258. package/dist/server/app_backend.d.ts +74 -0
  259. package/dist/server/app_backend.d.ts.map +1 -0
  260. package/dist/server/app_backend.js +39 -0
  261. package/dist/server/app_server.d.ts +201 -0
  262. package/dist/server/app_server.d.ts.map +1 -0
  263. package/dist/server/app_server.js +266 -0
  264. package/dist/server/env.d.ts +68 -0
  265. package/dist/server/env.d.ts.map +1 -0
  266. package/dist/server/env.js +95 -0
  267. package/dist/server/startup.d.ts +22 -0
  268. package/dist/server/startup.d.ts.map +1 -0
  269. package/dist/server/startup.js +48 -0
  270. package/dist/server/static.d.ts +39 -0
  271. package/dist/server/static.d.ts.map +1 -0
  272. package/dist/server/static.js +38 -0
  273. package/dist/server/validate_nginx.d.ts +34 -0
  274. package/dist/server/validate_nginx.d.ts.map +1 -0
  275. package/dist/server/validate_nginx.js +118 -0
  276. package/dist/testing/CLAUDE.md +3 -0
  277. package/dist/testing/admin_integration.d.ts +45 -0
  278. package/dist/testing/admin_integration.d.ts.map +1 -0
  279. package/dist/testing/admin_integration.js +840 -0
  280. package/dist/testing/adversarial_404.d.ts +15 -0
  281. package/dist/testing/adversarial_404.d.ts.map +1 -0
  282. package/dist/testing/adversarial_404.js +118 -0
  283. package/dist/testing/adversarial_headers.d.ts +36 -0
  284. package/dist/testing/adversarial_headers.d.ts.map +1 -0
  285. package/dist/testing/adversarial_headers.js +128 -0
  286. package/dist/testing/adversarial_input.d.ts +56 -0
  287. package/dist/testing/adversarial_input.d.ts.map +1 -0
  288. package/dist/testing/adversarial_input.js +494 -0
  289. package/dist/testing/app_server.d.ts +169 -0
  290. package/dist/testing/app_server.d.ts.map +1 -0
  291. package/dist/testing/app_server.js +240 -0
  292. package/dist/testing/assert_dev_env.d.ts +10 -0
  293. package/dist/testing/assert_dev_env.d.ts.map +1 -0
  294. package/dist/testing/assert_dev_env.js +13 -0
  295. package/dist/testing/assertions.d.ts +61 -0
  296. package/dist/testing/assertions.d.ts.map +1 -0
  297. package/dist/testing/assertions.js +96 -0
  298. package/dist/testing/attack_surface.d.ts +63 -0
  299. package/dist/testing/attack_surface.d.ts.map +1 -0
  300. package/dist/testing/attack_surface.js +224 -0
  301. package/dist/testing/audit_completeness.d.ts +29 -0
  302. package/dist/testing/audit_completeness.d.ts.map +1 -0
  303. package/dist/testing/audit_completeness.js +410 -0
  304. package/dist/testing/auth_apps.d.ts +55 -0
  305. package/dist/testing/auth_apps.d.ts.map +1 -0
  306. package/dist/testing/auth_apps.js +122 -0
  307. package/dist/testing/data_exposure.d.ts +62 -0
  308. package/dist/testing/data_exposure.d.ts.map +1 -0
  309. package/dist/testing/data_exposure.js +297 -0
  310. package/dist/testing/db.d.ts +111 -0
  311. package/dist/testing/db.d.ts.map +1 -0
  312. package/dist/testing/db.js +258 -0
  313. package/dist/testing/entities.d.ts +21 -0
  314. package/dist/testing/entities.d.ts.map +1 -0
  315. package/dist/testing/entities.js +42 -0
  316. package/dist/testing/error_coverage.d.ts +78 -0
  317. package/dist/testing/error_coverage.d.ts.map +1 -0
  318. package/dist/testing/error_coverage.js +135 -0
  319. package/dist/testing/integration.d.ts +37 -0
  320. package/dist/testing/integration.d.ts.map +1 -0
  321. package/dist/testing/integration.js +1139 -0
  322. package/dist/testing/integration_helpers.d.ts +107 -0
  323. package/dist/testing/integration_helpers.d.ts.map +1 -0
  324. package/dist/testing/integration_helpers.js +246 -0
  325. package/dist/testing/middleware.d.ts +125 -0
  326. package/dist/testing/middleware.d.ts.map +1 -0
  327. package/dist/testing/middleware.js +210 -0
  328. package/dist/testing/rate_limiting.d.ts +43 -0
  329. package/dist/testing/rate_limiting.d.ts.map +1 -0
  330. package/dist/testing/rate_limiting.js +216 -0
  331. package/dist/testing/round_trip.d.ts +37 -0
  332. package/dist/testing/round_trip.d.ts.map +1 -0
  333. package/dist/testing/round_trip.js +128 -0
  334. package/dist/testing/schema_generators.d.ts +33 -0
  335. package/dist/testing/schema_generators.d.ts.map +1 -0
  336. package/dist/testing/schema_generators.js +137 -0
  337. package/dist/testing/standard.d.ts +49 -0
  338. package/dist/testing/standard.d.ts.map +1 -0
  339. package/dist/testing/standard.js +16 -0
  340. package/dist/testing/stubs.d.ts +96 -0
  341. package/dist/testing/stubs.d.ts.map +1 -0
  342. package/dist/testing/stubs.js +192 -0
  343. package/dist/testing/surface_invariants.d.ts +189 -0
  344. package/dist/testing/surface_invariants.d.ts.map +1 -0
  345. package/dist/testing/surface_invariants.js +450 -0
  346. package/dist/ui/AccountSessions.svelte +75 -0
  347. package/dist/ui/AccountSessions.svelte.d.ts +19 -0
  348. package/dist/ui/AccountSessions.svelte.d.ts.map +1 -0
  349. package/dist/ui/AdminAccounts.svelte +107 -0
  350. package/dist/ui/AdminAccounts.svelte.d.ts +19 -0
  351. package/dist/ui/AdminAccounts.svelte.d.ts.map +1 -0
  352. package/dist/ui/AdminAuditLog.svelte +144 -0
  353. package/dist/ui/AdminAuditLog.svelte.d.ts +4 -0
  354. package/dist/ui/AdminAuditLog.svelte.d.ts.map +1 -0
  355. package/dist/ui/AdminInvites.svelte +142 -0
  356. package/dist/ui/AdminInvites.svelte.d.ts +4 -0
  357. package/dist/ui/AdminInvites.svelte.d.ts.map +1 -0
  358. package/dist/ui/AdminOverview.svelte +337 -0
  359. package/dist/ui/AdminOverview.svelte.d.ts +4 -0
  360. package/dist/ui/AdminOverview.svelte.d.ts.map +1 -0
  361. package/dist/ui/AdminPermitHistory.svelte +61 -0
  362. package/dist/ui/AdminPermitHistory.svelte.d.ts +19 -0
  363. package/dist/ui/AdminPermitHistory.svelte.d.ts.map +1 -0
  364. package/dist/ui/AdminSessions.svelte +85 -0
  365. package/dist/ui/AdminSessions.svelte.d.ts +19 -0
  366. package/dist/ui/AdminSessions.svelte.d.ts.map +1 -0
  367. package/dist/ui/AdminSettings.svelte +32 -0
  368. package/dist/ui/AdminSettings.svelte.d.ts +19 -0
  369. package/dist/ui/AdminSettings.svelte.d.ts.map +1 -0
  370. package/dist/ui/AdminSurface.svelte +42 -0
  371. package/dist/ui/AdminSurface.svelte.d.ts +4 -0
  372. package/dist/ui/AdminSurface.svelte.d.ts.map +1 -0
  373. package/dist/ui/AppShell.svelte +93 -0
  374. package/dist/ui/AppShell.svelte.d.ts +20 -0
  375. package/dist/ui/AppShell.svelte.d.ts.map +1 -0
  376. package/dist/ui/BootstrapForm.svelte +105 -0
  377. package/dist/ui/BootstrapForm.svelte.d.ts +4 -0
  378. package/dist/ui/BootstrapForm.svelte.d.ts.map +1 -0
  379. package/dist/ui/ColumnLayout.svelte +46 -0
  380. package/dist/ui/ColumnLayout.svelte.d.ts +11 -0
  381. package/dist/ui/ColumnLayout.svelte.d.ts.map +1 -0
  382. package/dist/ui/ConfirmButton.svelte +125 -0
  383. package/dist/ui/ConfirmButton.svelte.d.ts +54 -0
  384. package/dist/ui/ConfirmButton.svelte.d.ts.map +1 -0
  385. package/dist/ui/Datatable.svelte +185 -0
  386. package/dist/ui/Datatable.svelte.d.ts +35 -0
  387. package/dist/ui/Datatable.svelte.d.ts.map +1 -0
  388. package/dist/ui/LoginForm.svelte +82 -0
  389. package/dist/ui/LoginForm.svelte.d.ts +8 -0
  390. package/dist/ui/LoginForm.svelte.d.ts.map +1 -0
  391. package/dist/ui/LogoutButton.svelte +36 -0
  392. package/dist/ui/LogoutButton.svelte.d.ts +10 -0
  393. package/dist/ui/LogoutButton.svelte.d.ts.map +1 -0
  394. package/dist/ui/MenuLink.svelte +35 -0
  395. package/dist/ui/MenuLink.svelte.d.ts +12 -0
  396. package/dist/ui/MenuLink.svelte.d.ts.map +1 -0
  397. package/dist/ui/OpenSignupToggle.svelte +36 -0
  398. package/dist/ui/OpenSignupToggle.svelte.d.ts +19 -0
  399. package/dist/ui/OpenSignupToggle.svelte.d.ts.map +1 -0
  400. package/dist/ui/PopoverButton.svelte +136 -0
  401. package/dist/ui/PopoverButton.svelte.d.ts +63 -0
  402. package/dist/ui/PopoverButton.svelte.d.ts.map +1 -0
  403. package/dist/ui/SignupForm.svelte +117 -0
  404. package/dist/ui/SignupForm.svelte.d.ts +7 -0
  405. package/dist/ui/SignupForm.svelte.d.ts.map +1 -0
  406. package/dist/ui/SurfaceExplorer.svelte +287 -0
  407. package/dist/ui/SurfaceExplorer.svelte.d.ts +8 -0
  408. package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -0
  409. package/dist/ui/account_sessions_state.svelte.d.ts +15 -0
  410. package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -0
  411. package/dist/ui/account_sessions_state.svelte.js +45 -0
  412. package/dist/ui/admin_accounts_state.svelte.d.ts +19 -0
  413. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -0
  414. package/dist/ui/admin_accounts_state.svelte.js +65 -0
  415. package/dist/ui/admin_invites_state.svelte.d.ts +19 -0
  416. package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -0
  417. package/dist/ui/admin_invites_state.svelte.js +71 -0
  418. package/dist/ui/admin_sessions_state.svelte.d.ts +18 -0
  419. package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -0
  420. package/dist/ui/admin_sessions_state.svelte.js +62 -0
  421. package/dist/ui/app_settings_state.svelte.d.ts +14 -0
  422. package/dist/ui/app_settings_state.svelte.d.ts.map +1 -0
  423. package/dist/ui/app_settings_state.svelte.js +44 -0
  424. package/dist/ui/audit_log_state.svelte.d.ts +40 -0
  425. package/dist/ui/audit_log_state.svelte.d.ts.map +1 -0
  426. package/dist/ui/audit_log_state.svelte.js +153 -0
  427. package/dist/ui/auth_state.svelte.d.ts +85 -0
  428. package/dist/ui/auth_state.svelte.d.ts.map +1 -0
  429. package/dist/ui/auth_state.svelte.js +238 -0
  430. package/dist/ui/datatable.d.ts +25 -0
  431. package/dist/ui/datatable.d.ts.map +1 -0
  432. package/dist/ui/datatable.js +9 -0
  433. package/dist/ui/enter_advance.d.ts +13 -0
  434. package/dist/ui/enter_advance.d.ts.map +1 -0
  435. package/dist/ui/enter_advance.js +30 -0
  436. package/dist/ui/loadable.svelte.d.ts +55 -0
  437. package/dist/ui/loadable.svelte.d.ts.map +1 -0
  438. package/dist/ui/loadable.svelte.js +75 -0
  439. package/dist/ui/popover.svelte.d.ts +137 -0
  440. package/dist/ui/popover.svelte.d.ts.map +1 -0
  441. package/dist/ui/popover.svelte.js +288 -0
  442. package/dist/ui/position_helpers.d.ts +27 -0
  443. package/dist/ui/position_helpers.d.ts.map +1 -0
  444. package/dist/ui/position_helpers.js +81 -0
  445. package/dist/ui/sidebar_state.svelte.d.ts +30 -0
  446. package/dist/ui/sidebar_state.svelte.d.ts.map +1 -0
  447. package/dist/ui/sidebar_state.svelte.js +39 -0
  448. package/dist/ui/table_state.svelte.d.ts +63 -0
  449. package/dist/ui/table_state.svelte.d.ts.map +1 -0
  450. package/dist/ui/table_state.svelte.js +117 -0
  451. package/dist/ui/ui_fetch.d.ts +29 -0
  452. package/dist/ui/ui_fetch.d.ts.map +1 -0
  453. package/dist/ui/ui_fetch.js +37 -0
  454. package/dist/ui/ui_format.d.ts +63 -0
  455. package/dist/ui/ui_format.d.ts.map +1 -0
  456. package/dist/ui/ui_format.js +196 -0
  457. package/package.json +121 -0
@@ -0,0 +1,15 @@
1
+ import './assert_dev_env.js';
2
+ import type { AdversarialTestOptions } from './attack_surface.js';
3
+ /**
4
+ * Generate adversarial 404 response validation tests.
5
+ *
6
+ * For each route with `params` + 404 in `error_schemas`:
7
+ * 1. Creates a stub handler returning 404 with the declared error code
8
+ * 2. Fires a request with valid-format params (nil UUIDs for UUID params)
9
+ * 3. Validates response status is 404
10
+ * 4. Validates response body matches the declared 404 Zod schema
11
+ *
12
+ * @param options - the test configuration
13
+ */
14
+ export declare const describe_adversarial_404: (options: AdversarialTestOptions) => void;
15
+ //# sourceMappingURL=adversarial_404.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial_404.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/adversarial_404.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAoB7B,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAyBhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,sBAAsB,KAAG,IA2E1E,CAAC"}
@@ -0,0 +1,118 @@
1
+ import './assert_dev_env.js';
2
+ /**
3
+ * Adversarial 404 testing for routes with params and declared 404 error schemas.
4
+ *
5
+ * Creates stub handlers that return 404 with the declared error code,
6
+ * fires requests with valid-format-but-nonexistent params (nil UUIDs),
7
+ * and validates response bodies against the declared 404 Zod schemas.
8
+ *
9
+ * No DB needed — tests schema conformance of 404 responses, not real handlers.
10
+ *
11
+ * @module
12
+ */
13
+ import { test, assert, describe } from 'vitest';
14
+ import { z } from 'zod';
15
+ import { is_null_schema } from '../http/schema_helpers.js';
16
+ import { create_auth_test_apps, select_auth_app } from './auth_apps.js';
17
+ import { resolve_valid_path, generate_valid_body } from './schema_generators.js';
18
+ /**
19
+ * Extract the error code from a 404 Zod schema for use in the stub handler.
20
+ *
21
+ * Supports `z.literal()` (`{const: '...'}`) and `z.enum()` (`{enum: [...]}`, uses first value).
22
+ */
23
+ const extract_404_error_code = (schema) => {
24
+ try {
25
+ const json = z.toJSONSchema(schema);
26
+ if (json.type !== 'object' || !json.properties || typeof json.properties !== 'object')
27
+ return null;
28
+ const props = json.properties;
29
+ if (!props.error || typeof props.error !== 'object')
30
+ return null;
31
+ const error_schema = props.error;
32
+ if (typeof error_schema.const === 'string')
33
+ return error_schema.const;
34
+ if (Array.isArray(error_schema.enum) && typeof error_schema.enum[0] === 'string')
35
+ return error_schema.enum[0];
36
+ }
37
+ catch {
38
+ // schema can't be converted
39
+ }
40
+ return null;
41
+ };
42
+ /**
43
+ * Generate adversarial 404 response validation tests.
44
+ *
45
+ * For each route with `params` + 404 in `error_schemas`:
46
+ * 1. Creates a stub handler returning 404 with the declared error code
47
+ * 2. Fires a request with valid-format params (nil UUIDs for UUID params)
48
+ * 3. Validates response status is 404
49
+ * 4. Validates response body matches the declared 404 Zod schema
50
+ *
51
+ * @param options - the test configuration
52
+ */
53
+ export const describe_adversarial_404 = (options) => {
54
+ const { build, roles } = options;
55
+ const { surface, route_specs } = build();
56
+ // Build spec lookup for Zod schema access
57
+ const spec_lookup = new Map();
58
+ for (const spec of route_specs) {
59
+ spec_lookup.set(`${spec.method} ${spec.path}`, spec);
60
+ }
61
+ // Find testable routes: params + 404 + extractable error code
62
+ const testable = [];
63
+ for (const route of surface.routes) {
64
+ if (route.params_schema === null)
65
+ continue;
66
+ if (!route.error_schemas || !('404' in route.error_schemas))
67
+ continue;
68
+ const key = `${route.method} ${route.path}`;
69
+ const spec = spec_lookup.get(key);
70
+ if (!spec?.params || !spec.errors?.[404])
71
+ continue;
72
+ const error_code = extract_404_error_code(spec.errors[404]);
73
+ if (!error_code)
74
+ continue;
75
+ testable.push({ key, error_code, spec });
76
+ }
77
+ if (testable.length === 0)
78
+ return;
79
+ describe('adversarial 404 response validation', () => {
80
+ // Create stub specs: replace handlers for testable routes with 404 stubs
81
+ const error_code_by_key = new Map();
82
+ for (const entry of testable) {
83
+ error_code_by_key.set(entry.key, entry.error_code);
84
+ }
85
+ const stub_specs = route_specs.map((spec) => {
86
+ const error_code = error_code_by_key.get(`${spec.method} ${spec.path}`);
87
+ if (!error_code)
88
+ return spec;
89
+ return {
90
+ ...spec,
91
+ handler: (c) => c.json({ error: error_code }, 404),
92
+ };
93
+ });
94
+ const apps = create_auth_test_apps(stub_specs, roles);
95
+ for (const { key, error_code, spec } of testable) {
96
+ test(key, async () => {
97
+ const route = surface.routes.find((r) => `${r.method} ${r.path}` === key);
98
+ const app = select_auth_app(apps, route.auth);
99
+ const url = resolve_valid_path(route.path, spec.params);
100
+ const request_init = { method: route.method };
101
+ // Send valid body for routes with input
102
+ if (!is_null_schema(spec.input)) {
103
+ const body = generate_valid_body(spec.input);
104
+ if (body !== undefined) {
105
+ request_init.headers = { 'Content-Type': 'application/json' };
106
+ request_init.body = JSON.stringify(body);
107
+ }
108
+ }
109
+ const res = await app.request(url, request_init);
110
+ assert.strictEqual(res.status, 404, `Expected 404 for ${key}, got ${res.status}`);
111
+ const body = await res.json();
112
+ assert.strictEqual(body.error, error_code, `Expected error '${error_code}' for ${key}, got: ${body.error}`);
113
+ // Validate against declared 404 Zod schema
114
+ spec.errors[404].parse(body);
115
+ });
116
+ }
117
+ });
118
+ };
@@ -0,0 +1,36 @@
1
+ import './assert_dev_env.js';
2
+ import type { z } from 'zod';
3
+ import { type TestMiddlewareStackOptions } from './middleware.js';
4
+ /** A header-level attack case for middleware stack testing. */
5
+ export interface AdversarialHeaderCase {
6
+ name: string;
7
+ headers: Record<string, string>;
8
+ expected_status: number;
9
+ expected_error?: string;
10
+ /** Zod schema to validate error response body against. Defaults to `ApiError` when `expected_error` is set. */
11
+ expected_error_schema?: z.ZodType;
12
+ /** Whether the request should reach token validation or be short-circuited by earlier middleware. */
13
+ validate_expectation: 'called' | 'not_called';
14
+ }
15
+ /**
16
+ * 7 standard adversarial header cases applicable to any middleware stack.
17
+ *
18
+ * @param allowed_origin - an origin that passes the origin check
19
+ * @returns the standard adversarial header cases
20
+ */
21
+ export declare const create_standard_adversarial_cases: (allowed_origin: string) => Array<AdversarialHeaderCase>;
22
+ /**
23
+ * Create a middleware stack app with standard adversarial header tests.
24
+ *
25
+ * Convenience wrapper combining `create_test_middleware_stack_app`
26
+ * and `create_standard_adversarial_cases`.
27
+ * Asserts body content for both error and success cases, and checks
28
+ * `mock_validate` call status via per-case declarative flags.
29
+ *
30
+ * @param suite_name - the describe block name
31
+ * @param options - middleware stack configuration
32
+ * @param allowed_origin - an origin that passes the origin check (used for standard cases)
33
+ * @param extra_cases - additional cases appended after the 7 standard ones
34
+ */
35
+ export declare const describe_standard_adversarial_headers: (suite_name: string, options: TestMiddlewareStackOptions, allowed_origin: string, extra_cases?: Array<AdversarialHeaderCase>) => void;
36
+ //# sourceMappingURL=adversarial_headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial_headers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/adversarial_headers.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAS3B,OAAO,EAGN,KAAK,0BAA0B,EAC/B,MAAM,iBAAiB,CAAC;AAIzB,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+GAA+G;IAC/G,qBAAqB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IAClC,qGAAqG;IACrG,oBAAoB,EAAE,QAAQ,GAAG,YAAY,CAAC;CAC9C;AAID;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,GAC7C,gBAAgB,MAAM,KACpB,KAAK,CAAC,qBAAqB,CAkE7B,CAAC;AAIF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qCAAqC,GACjD,YAAY,MAAM,EAClB,SAAS,0BAA0B,EACnC,gBAAgB,MAAM,EACtB,cAAc,KAAK,CAAC,qBAAqB,CAAC,KACxC,IAkCF,CAAC"}
@@ -0,0 +1,128 @@
1
+ import './assert_dev_env.js';
2
+ /**
3
+ * Adversarial header attack test suite.
4
+ *
5
+ * Provides standard header injection test cases and a convenience wrapper
6
+ * for exercising middleware stacks with adversarial headers.
7
+ *
8
+ * @module
9
+ */
10
+ import { test, assert, describe } from 'vitest';
11
+ import { ApiError, ERROR_FORBIDDEN_ORIGIN, ERROR_FORBIDDEN_REFERER, ERROR_BEARER_REJECTED_BROWSER, ERROR_INVALID_TOKEN, } from '../http/error_schemas.js';
12
+ import { create_test_middleware_stack_app, TEST_MIDDLEWARE_PATH, } from './middleware.js';
13
+ // --- Standard adversarial header cases ---
14
+ /**
15
+ * 7 standard adversarial header cases applicable to any middleware stack.
16
+ *
17
+ * @param allowed_origin - an origin that passes the origin check
18
+ * @returns the standard adversarial header cases
19
+ */
20
+ export const create_standard_adversarial_cases = (allowed_origin) => [
21
+ {
22
+ name: 'bearer token with Origin header is rejected before token validation',
23
+ headers: {
24
+ Authorization: 'Bearer secret_fuz_token_test',
25
+ Origin: 'https://attacker.com',
26
+ },
27
+ expected_status: 403,
28
+ expected_error: ERROR_FORBIDDEN_ORIGIN,
29
+ validate_expectation: 'not_called',
30
+ },
31
+ {
32
+ name: 'bearer token with allowed Origin is rejected as browser context',
33
+ headers: {
34
+ Authorization: 'Bearer secret_fuz_token_test',
35
+ Origin: allowed_origin,
36
+ },
37
+ expected_status: 403,
38
+ expected_error: ERROR_BEARER_REJECTED_BROWSER,
39
+ validate_expectation: 'not_called',
40
+ },
41
+ {
42
+ name: 'request with no auth headers passes through all middleware',
43
+ headers: {},
44
+ expected_status: 200,
45
+ validate_expectation: 'not_called',
46
+ },
47
+ {
48
+ name: 'empty Origin header is rejected by origin middleware before bearer auth (defense-in-depth)',
49
+ headers: {
50
+ Authorization: 'Bearer secret_fuz_token_test',
51
+ Origin: '',
52
+ },
53
+ expected_status: 403,
54
+ expected_error: ERROR_FORBIDDEN_ORIGIN,
55
+ validate_expectation: 'not_called',
56
+ },
57
+ {
58
+ name: 'lowercase bearer scheme is recognized (case-insensitive per RFC 7235)',
59
+ headers: {
60
+ Authorization: 'bearer secret_fuz_token_test',
61
+ },
62
+ expected_status: 401,
63
+ expected_error: ERROR_INVALID_TOKEN,
64
+ validate_expectation: 'called',
65
+ },
66
+ {
67
+ name: 'bearer token with Referer from untrusted source is rejected',
68
+ headers: {
69
+ Authorization: 'Bearer secret_fuz_token_test',
70
+ Referer: 'https://attacker.com/page',
71
+ },
72
+ expected_status: 403,
73
+ expected_error: ERROR_FORBIDDEN_REFERER,
74
+ validate_expectation: 'not_called',
75
+ },
76
+ {
77
+ name: 'bearer token with Referer from allowed origin is rejected as browser context (defense-in-depth)',
78
+ headers: {
79
+ Authorization: 'Bearer secret_fuz_token_test',
80
+ Referer: `${allowed_origin}/page`,
81
+ },
82
+ expected_status: 403,
83
+ expected_error: ERROR_BEARER_REJECTED_BROWSER,
84
+ validate_expectation: 'not_called',
85
+ },
86
+ ];
87
+ // --- Convenience wrapper ---
88
+ /**
89
+ * Create a middleware stack app with standard adversarial header tests.
90
+ *
91
+ * Convenience wrapper combining `create_test_middleware_stack_app`
92
+ * and `create_standard_adversarial_cases`.
93
+ * Asserts body content for both error and success cases, and checks
94
+ * `mock_validate` call status via per-case declarative flags.
95
+ *
96
+ * @param suite_name - the describe block name
97
+ * @param options - middleware stack configuration
98
+ * @param allowed_origin - an origin that passes the origin check (used for standard cases)
99
+ * @param extra_cases - additional cases appended after the 7 standard ones
100
+ */
101
+ export const describe_standard_adversarial_headers = (suite_name, options, allowed_origin, extra_cases) => {
102
+ const cases = [...create_standard_adversarial_cases(allowed_origin), ...(extra_cases ?? [])];
103
+ describe(suite_name, () => {
104
+ for (const tc of cases) {
105
+ test(tc.name, async () => {
106
+ const { app, mock_validate } = create_test_middleware_stack_app(options);
107
+ const res = await app.request(TEST_MIDDLEWARE_PATH, { headers: tc.headers });
108
+ assert.strictEqual(res.status, tc.expected_status);
109
+ const body = await res.json();
110
+ if (tc.expected_error) {
111
+ assert.strictEqual(body.error, tc.expected_error);
112
+ const error_schema = tc.expected_error_schema ?? ApiError;
113
+ error_schema.parse(body);
114
+ }
115
+ if (tc.expected_status === 200) {
116
+ assert.strictEqual(body.ok, true, 'expected ok to be true for 200 response');
117
+ assert.strictEqual(body.has_context, false, 'expected has_context to be false (no auth)');
118
+ }
119
+ if (tc.validate_expectation === 'not_called') {
120
+ assert.strictEqual(mock_validate.mock.calls.length, 0, 'validate should not have been called — middleware should short-circuit');
121
+ }
122
+ else {
123
+ assert.ok(mock_validate.mock.calls.length > 0, 'validate should have been called — request reached token validation');
124
+ }
125
+ });
126
+ }
127
+ });
128
+ };
@@ -0,0 +1,56 @@
1
+ import './assert_dev_env.js';
2
+ import { z } from 'zod';
3
+ import { ERROR_INVALID_REQUEST_BODY, ERROR_INVALID_JSON_BODY } from '../http/error_schemas.js';
4
+ import type { AdversarialTestOptions } from './attack_surface.js';
5
+ interface InputTestCase {
6
+ label: string;
7
+ body: unknown;
8
+ expected_error: typeof ERROR_INVALID_REQUEST_BODY | typeof ERROR_INVALID_JSON_BODY;
9
+ }
10
+ interface ParamsTestCase {
11
+ label: string;
12
+ params: Record<string, string>;
13
+ }
14
+ interface QueryTestCase {
15
+ label: string;
16
+ query: Record<string, string>;
17
+ }
18
+ /**
19
+ * Generate adversarial test cases for a route's input schema.
20
+ *
21
+ * Produces focused, non-redundant cases:
22
+ * - Whole-body: send array instead of object, extra unknown key
23
+ * - Missing required fields (without defaults)
24
+ * - One wrong-type value per field
25
+ * - Null for required non-nullable fields
26
+ * - One format violation per constrained field
27
+ */
28
+ export declare const generate_input_test_cases: (input_schema: z.ZodType) => Array<InputTestCase>;
29
+ /**
30
+ * Generate adversarial test cases for a route's params schema.
31
+ *
32
+ * Params are always strings from URL segments. Only generates cases for
33
+ * format-constrained fields (uuid, pattern) since unconstrained string
34
+ * params accept any string value.
35
+ */
36
+ export declare const generate_params_test_cases: (params_schema: z.ZodObject) => Array<ParamsTestCase>;
37
+ /**
38
+ * Generate adversarial test cases for a route's query schema.
39
+ *
40
+ * Query params are always strings from the URL. Generates cases for:
41
+ * - Missing required fields
42
+ * - Format violations on constrained fields (uuid, pattern)
43
+ */
44
+ export declare const generate_query_test_cases: (query_schema: z.ZodObject) => Array<QueryTestCase>;
45
+ /**
46
+ * Generate adversarial input validation test suites.
47
+ *
48
+ * Tests input body validation and params validation for all routes.
49
+ * Uses correct auth credentials so auth guards pass and validation
50
+ * middleware is actually exercised.
51
+ *
52
+ * @param options - the test configuration
53
+ */
54
+ export declare const describe_adversarial_input: (options: AdversarialTestOptions) => void;
55
+ export {};
56
+ //# sourceMappingURL=adversarial_input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial_input.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/adversarial_input.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAiB7B,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAUtB,OAAO,EAEN,0BAA0B,EAC1B,uBAAuB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AA8ChE,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,OAAO,0BAA0B,GAAG,OAAO,uBAAuB,CAAC;CACnF;AAED,UAAU,cAAc;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,UAAU,aAAa;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,cAAc,CAAC,CAAC,OAAO,KAAG,KAAK,CAAC,aAAa,CAyLtF,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GAAI,eAAe,CAAC,CAAC,SAAS,KAAG,KAAK,CAAC,cAAc,CA+B3F,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,cAAc,CAAC,CAAC,SAAS,KAAG,KAAK,CAAC,aAAa,CA4CxF,CAAC;AAqBF;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,sBAAsB,KAAG,IA6L5E,CAAC"}