@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,113 @@
1
+ /**
2
+ * Shared dependency interfaces for runtime operations.
3
+ *
4
+ * Small composable interfaces that functions accept for only the capabilities
5
+ * they need. Both Deno and Node implementations satisfy all these interfaces
6
+ * via `RuntimeDeps`.
7
+ *
8
+ * @module
9
+ */
10
+ /**
11
+ * Result of a stat operation.
12
+ */
13
+ export interface StatResult {
14
+ is_file: boolean;
15
+ is_directory: boolean;
16
+ }
17
+ /**
18
+ * Result of executing a command.
19
+ */
20
+ export interface CommandResult {
21
+ success: boolean;
22
+ code: number;
23
+ stdout: string;
24
+ stderr: string;
25
+ }
26
+ /**
27
+ * Environment variable access.
28
+ */
29
+ export interface EnvDeps {
30
+ /** Get an environment variable value. */
31
+ env_get: (name: string) => string | undefined;
32
+ /** Set an environment variable. */
33
+ env_set: (name: string, value: string) => void;
34
+ }
35
+ /**
36
+ * File system read operations.
37
+ */
38
+ export interface FsReadDeps {
39
+ /** Get file/directory stats, or null if path doesn't exist. */
40
+ stat: (path: string) => Promise<StatResult | null>;
41
+ /** Read a file as text. */
42
+ read_file: (path: string) => Promise<string>;
43
+ }
44
+ /**
45
+ * File system write operations.
46
+ */
47
+ export interface FsWriteDeps {
48
+ /** Create a directory. */
49
+ mkdir: (path: string, options?: {
50
+ recursive?: boolean;
51
+ }) => Promise<void>;
52
+ /** Write text to a file. */
53
+ write_file: (path: string, content: string) => Promise<void>;
54
+ /** Rename (move) a file. */
55
+ rename: (old_path: string, new_path: string) => Promise<void>;
56
+ }
57
+ /**
58
+ * File system remove operations.
59
+ */
60
+ export interface FsRemoveDeps {
61
+ /** Remove a file or directory. */
62
+ remove: (path: string, options?: {
63
+ recursive?: boolean;
64
+ }) => Promise<void>;
65
+ }
66
+ /**
67
+ * Command execution.
68
+ */
69
+ export interface CommandDeps {
70
+ /** Run a command and return the result. */
71
+ run_command: (cmd: string, args: Array<string>) => Promise<CommandResult>;
72
+ }
73
+ /**
74
+ * Warning/diagnostic output.
75
+ */
76
+ export interface LogDeps {
77
+ /** Log a warning message. */
78
+ warn: (...args: Array<unknown>) => void;
79
+ }
80
+ /**
81
+ * Terminal I/O operations.
82
+ */
83
+ export interface TerminalDeps {
84
+ /** Write bytes to stdout. */
85
+ stdout_write: (data: Uint8Array) => Promise<number>;
86
+ /** Read bytes from stdin, or null on EOF. */
87
+ stdin_read: (buffer: Uint8Array) => Promise<number | null>;
88
+ }
89
+ /**
90
+ * Process lifecycle.
91
+ */
92
+ export interface ProcessDeps {
93
+ /** Exit the process with a code. */
94
+ exit: (code: number) => never;
95
+ }
96
+ /**
97
+ * Full runtime capabilities returned by `create_deno_runtime` or `create_node_runtime`.
98
+ *
99
+ * Extends all `*Deps` interfaces with additional app-level capabilities.
100
+ * Functions should accept narrow `*Deps` interfaces, not this full type —
101
+ * this type is for the wiring layer that creates and passes the runtime.
102
+ */
103
+ export interface RuntimeDeps extends EnvDeps, FsReadDeps, FsWriteDeps, FsRemoveDeps, CommandDeps, TerminalDeps, ProcessDeps, LogDeps {
104
+ /** Get all environment variables. */
105
+ env_all: () => Record<string, string>;
106
+ /** CLI arguments passed to the program. */
107
+ readonly args: ReadonlyArray<string>;
108
+ /** Get current working directory. */
109
+ cwd: () => string;
110
+ /** Run a command with inherited stdout/stderr (output goes directly to terminal). */
111
+ run_command_inherit: (cmd: string, args: Array<string>) => Promise<number>;
112
+ }
113
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/runtime/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared dependency interfaces for runtime operations.
3
+ *
4
+ * Small composable interfaces that functions accept for only the capabilities
5
+ * they need. Both Deno and Node implementations satisfy all these interfaces
6
+ * via `RuntimeDeps`.
7
+ *
8
+ * @module
9
+ */
10
+ export {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * File system utilities.
3
+ *
4
+ * @module
5
+ */
6
+ import type { FsWriteDeps } from './deps.js';
7
+ /**
8
+ * Write a file atomically via temp file + rename.
9
+ *
10
+ * @param deps - deps with file write capabilities
11
+ * @param path - destination file path
12
+ * @param content - file contents to write
13
+ */
14
+ export declare const write_file_atomic: (deps: Pick<FsWriteDeps, "write_file" | "rename">, path: string, content: string) => Promise<void>;
15
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/runtime/fs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC7B,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAC,EAChD,MAAM,MAAM,EACZ,SAAS,MAAM,KACb,OAAO,CAAC,IAAI,CAId,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * File system utilities.
3
+ *
4
+ * @module
5
+ */
6
+ /**
7
+ * Write a file atomically via temp file + rename.
8
+ *
9
+ * @param deps - deps with file write capabilities
10
+ * @param path - destination file path
11
+ * @param content - file contents to write
12
+ */
13
+ export const write_file_atomic = async (deps, path, content) => {
14
+ const temp_path = path + '.tmp';
15
+ await deps.write_file(temp_path, content);
16
+ await deps.rename(temp_path, path);
17
+ };
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Mock `RuntimeDeps` for testing.
3
+ *
4
+ * Provides a fully controllable runtime implementation for unit tests.
5
+ * Consumer projects can extend `MockRuntime` with project-specific helpers
6
+ * (e.g. `setup_mock_tx_config`) that stay local.
7
+ *
8
+ * @module
9
+ */
10
+ import type { RuntimeDeps, CommandResult } from './deps.js';
11
+ /**
12
+ * Mock `RuntimeDeps` with observable state for assertions.
13
+ */
14
+ export interface MockRuntime extends RuntimeDeps {
15
+ /** Mock environment variables. */
16
+ mock_env: Map<string, string>;
17
+ /** Mock file system (path -> content). */
18
+ mock_fs: Map<string, string>;
19
+ /** Mock directories that exist. */
20
+ mock_dirs: Set<string>;
21
+ /** Exit calls recorded (exit codes). */
22
+ exit_calls: Array<number>;
23
+ /** Commands executed. */
24
+ command_calls: Array<{
25
+ cmd: string;
26
+ args: Array<string>;
27
+ }>;
28
+ /** Commands executed with inherit. */
29
+ command_inherit_calls: Array<{
30
+ cmd: string;
31
+ args: Array<string>;
32
+ }>;
33
+ /** Stdout writes recorded. */
34
+ stdout_writes: Array<string>;
35
+ /** Mock command results (cmd -> result). */
36
+ mock_command_results: Map<string, CommandResult>;
37
+ /** Stdin buffer for input simulation. */
38
+ stdin_buffer: Uint8Array | null;
39
+ }
40
+ /**
41
+ * Create a mock `RuntimeDeps` for testing.
42
+ *
43
+ * @param args - CLI arguments
44
+ * @returns `MockRuntime` with controllable state
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const runtime = create_mock_runtime(['apply', 'tx.ts']);
49
+ * runtime.mock_env.set('HOME', '/home/test');
50
+ * runtime.mock_fs.set('/home/test/.app/config.json', '{}');
51
+ *
52
+ * await some_function(runtime);
53
+ *
54
+ * assert.strictEqual(runtime.command_calls.length, 1);
55
+ * assert.deepStrictEqual(runtime.exit_calls, [0]);
56
+ * ```
57
+ */
58
+ export declare const create_mock_runtime: (args?: Array<string>) => MockRuntime;
59
+ /**
60
+ * Reset a mock runtime to initial state.
61
+ *
62
+ * @param runtime - `MockRuntime` to reset
63
+ */
64
+ export declare const reset_mock_runtime: (runtime: MockRuntime) => void;
65
+ /**
66
+ * Set stdin buffer for simulating user input.
67
+ *
68
+ * @param runtime - `MockRuntime` to configure
69
+ * @param input - string to provide as stdin input
70
+ */
71
+ export declare const set_mock_stdin: (runtime: MockRuntime, input: string) => void;
72
+ /**
73
+ * Error thrown when mock `runtime.exit()` is called.
74
+ *
75
+ * Tests can catch this to verify exit behavior.
76
+ */
77
+ export declare class MockExitError extends Error {
78
+ readonly code: number;
79
+ constructor(code: number);
80
+ }
81
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/runtime/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAc,aAAa,EAAC,MAAM,WAAW,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,kCAAkC;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,0CAA0C;IAC1C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,mCAAmC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,yBAAyB;IACzB,aAAa,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC,CAAC;IACzD,sCAAsC;IACtC,qBAAqB,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAC,CAAC,CAAC;IACjE,8BAA8B;IAC9B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACjD,yCAAyC;IACzC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAM,KAAK,CAAC,MAAM,CAAM,KAAG,WAyI9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,IAUzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,WAAW,EAAE,OAAO,MAAM,KAAG,IAEpE,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM;CAKxB"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Mock `RuntimeDeps` for testing.
3
+ *
4
+ * Provides a fully controllable runtime implementation for unit tests.
5
+ * Consumer projects can extend `MockRuntime` with project-specific helpers
6
+ * (e.g. `setup_mock_tx_config`) that stay local.
7
+ *
8
+ * @module
9
+ */
10
+ /**
11
+ * Create a mock `RuntimeDeps` for testing.
12
+ *
13
+ * @param args - CLI arguments
14
+ * @returns `MockRuntime` with controllable state
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const runtime = create_mock_runtime(['apply', 'tx.ts']);
19
+ * runtime.mock_env.set('HOME', '/home/test');
20
+ * runtime.mock_fs.set('/home/test/.app/config.json', '{}');
21
+ *
22
+ * await some_function(runtime);
23
+ *
24
+ * assert.strictEqual(runtime.command_calls.length, 1);
25
+ * assert.deepStrictEqual(runtime.exit_calls, [0]);
26
+ * ```
27
+ */
28
+ export const create_mock_runtime = (args = []) => {
29
+ const mock_env = new Map();
30
+ const mock_fs = new Map();
31
+ const mock_dirs = new Set();
32
+ const exit_calls = [];
33
+ const command_calls = [];
34
+ const command_inherit_calls = [];
35
+ const stdout_writes = [];
36
+ const mock_command_results = new Map();
37
+ let stdin_buffer = null;
38
+ const runtime = {
39
+ args,
40
+ mock_env,
41
+ mock_fs,
42
+ mock_dirs,
43
+ exit_calls,
44
+ command_calls,
45
+ command_inherit_calls,
46
+ stdout_writes,
47
+ mock_command_results,
48
+ get stdin_buffer() {
49
+ return stdin_buffer;
50
+ },
51
+ set stdin_buffer(value) {
52
+ stdin_buffer = value;
53
+ },
54
+ // === Environment ===
55
+ env_get: (name) => mock_env.get(name),
56
+ env_set: (name, value) => {
57
+ mock_env.set(name, value);
58
+ },
59
+ env_all: () => Object.fromEntries(mock_env),
60
+ // === Process ===
61
+ cwd: () => '/mock/cwd',
62
+ exit: (code) => {
63
+ exit_calls.push(code);
64
+ throw new MockExitError(code);
65
+ },
66
+ // === Local File System ===
67
+ stat: async (path) => {
68
+ if (mock_fs.has(path)) {
69
+ return { is_file: true, is_directory: false };
70
+ }
71
+ if (mock_dirs.has(path)) {
72
+ return { is_file: false, is_directory: true };
73
+ }
74
+ return null;
75
+ },
76
+ mkdir: async (path, options) => {
77
+ if (options?.recursive) {
78
+ const parts = path.split('/').filter(Boolean);
79
+ let current = '';
80
+ for (const part of parts) {
81
+ current += '/' + part;
82
+ mock_dirs.add(current);
83
+ }
84
+ }
85
+ else {
86
+ mock_dirs.add(path);
87
+ }
88
+ },
89
+ read_file: async (path) => {
90
+ const content = mock_fs.get(path);
91
+ if (content === undefined) {
92
+ const error = new Error(`ENOENT: no such file or directory: ${path}`);
93
+ error.code = 'ENOENT';
94
+ throw error;
95
+ }
96
+ return content;
97
+ },
98
+ write_file: async (path, content) => {
99
+ mock_fs.set(path, content);
100
+ },
101
+ rename: async (old_path, new_path) => {
102
+ const content = mock_fs.get(old_path);
103
+ if (content !== undefined) {
104
+ mock_fs.set(new_path, content);
105
+ mock_fs.delete(old_path);
106
+ }
107
+ },
108
+ remove: async (path, options) => {
109
+ mock_fs.delete(path);
110
+ mock_dirs.delete(path);
111
+ if (options?.recursive) {
112
+ const prefix = path.endsWith('/') ? path : path + '/';
113
+ for (const key of mock_fs.keys()) {
114
+ if (key.startsWith(prefix))
115
+ mock_fs.delete(key);
116
+ }
117
+ for (const key of mock_dirs) {
118
+ if (key.startsWith(prefix))
119
+ mock_dirs.delete(key);
120
+ }
121
+ }
122
+ },
123
+ // === Local Commands ===
124
+ run_command: async (cmd, args) => {
125
+ command_calls.push({ cmd, args });
126
+ const key = `${cmd} ${args.join(' ')}`;
127
+ const mocked = mock_command_results.get(key);
128
+ if (mocked)
129
+ return mocked;
130
+ return { success: true, code: 0, stdout: '', stderr: '' };
131
+ },
132
+ run_command_inherit: async (cmd, args) => {
133
+ command_inherit_calls.push({ cmd, args });
134
+ const key = `${cmd} ${args.join(' ')}`;
135
+ const mocked = mock_command_results.get(key);
136
+ if (mocked)
137
+ return mocked.code;
138
+ return 0;
139
+ },
140
+ // === Terminal I/O ===
141
+ stdout_write: async (data) => {
142
+ stdout_writes.push(new TextDecoder().decode(data));
143
+ return data.length;
144
+ },
145
+ stdin_read: async (buffer) => {
146
+ if (stdin_buffer === null)
147
+ return null;
148
+ const len = Math.min(buffer.length, stdin_buffer.length);
149
+ buffer.set(stdin_buffer.subarray(0, len));
150
+ stdin_buffer = null;
151
+ return len;
152
+ },
153
+ // === Logging ===
154
+ warn: (..._args) => { }, // eslint-disable-line @typescript-eslint/no-empty-function
155
+ };
156
+ return runtime;
157
+ };
158
+ /**
159
+ * Reset a mock runtime to initial state.
160
+ *
161
+ * @param runtime - `MockRuntime` to reset
162
+ */
163
+ export const reset_mock_runtime = (runtime) => {
164
+ runtime.mock_env.clear();
165
+ runtime.mock_fs.clear();
166
+ runtime.mock_dirs.clear();
167
+ runtime.exit_calls.length = 0;
168
+ runtime.command_calls.length = 0;
169
+ runtime.command_inherit_calls.length = 0;
170
+ runtime.stdout_writes.length = 0;
171
+ runtime.mock_command_results.clear();
172
+ runtime.stdin_buffer = null;
173
+ };
174
+ /**
175
+ * Set stdin buffer for simulating user input.
176
+ *
177
+ * @param runtime - `MockRuntime` to configure
178
+ * @param input - string to provide as stdin input
179
+ */
180
+ export const set_mock_stdin = (runtime, input) => {
181
+ runtime.stdin_buffer = new TextEncoder().encode(input);
182
+ };
183
+ /**
184
+ * Error thrown when mock `runtime.exit()` is called.
185
+ *
186
+ * Tests can catch this to verify exit behavior.
187
+ */
188
+ export class MockExitError extends Error {
189
+ code;
190
+ constructor(code) {
191
+ super(`exit(${code})`);
192
+ this.name = 'MockExitError';
193
+ this.code = code;
194
+ }
195
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Node.js implementation of `RuntimeDeps`.
3
+ *
4
+ * Provides the same interface as `deno.ts` but backed by Node.js APIs.
5
+ * Used for running servers in Node.js and for tests (vitest runs in Node).
6
+ *
7
+ * @module
8
+ */
9
+ import type { RuntimeDeps } from './deps.js';
10
+ /**
11
+ * Create a `RuntimeDeps` backed by Node.js APIs.
12
+ *
13
+ * @param args - CLI arguments (typically `process.argv.slice(2)`)
14
+ * @returns `RuntimeDeps` implementation using Node.js runtime
15
+ */
16
+ export declare const create_node_runtime: (args?: ReadonlyArray<string>) => RuntimeDeps;
17
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/runtime/node.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAC,WAAW,EAA4B,MAAM,WAAW,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC/B,OAAM,aAAa,CAAC,MAAM,CAAyB,KACjD,WA6GD,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Node.js implementation of `RuntimeDeps`.
3
+ *
4
+ * Provides the same interface as `deno.ts` but backed by Node.js APIs.
5
+ * Used for running servers in Node.js and for tests (vitest runs in Node).
6
+ *
7
+ * @module
8
+ */
9
+ import { Buffer } from 'node:buffer';
10
+ import { spawn } from 'node:child_process';
11
+ import { stat, mkdir, readFile, writeFile, rename, rm } from 'node:fs/promises';
12
+ import process from 'node:process';
13
+ /**
14
+ * Create a `RuntimeDeps` backed by Node.js APIs.
15
+ *
16
+ * @param args - CLI arguments (typically `process.argv.slice(2)`)
17
+ * @returns `RuntimeDeps` implementation using Node.js runtime
18
+ */
19
+ export const create_node_runtime = (args = process.argv.slice(2)) => ({
20
+ // === Environment ===
21
+ env_get: (name) => process.env[name],
22
+ env_set: (name, value) => {
23
+ process.env[name] = value;
24
+ },
25
+ env_all: () => ({ ...process.env }),
26
+ // === Process ===
27
+ args,
28
+ cwd: () => process.cwd(),
29
+ exit: (code) => process.exit(code),
30
+ // === Local File System ===
31
+ stat: async (path) => {
32
+ try {
33
+ const s = await stat(path);
34
+ return { is_file: s.isFile(), is_directory: s.isDirectory() };
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ },
40
+ mkdir: async (path, options) => {
41
+ await mkdir(path, options);
42
+ },
43
+ read_file: (path) => readFile(path, 'utf-8'),
44
+ write_file: (path, content) => writeFile(path, content, 'utf-8'),
45
+ rename: (old_path, new_path) => rename(old_path, new_path),
46
+ remove: (path, options) => rm(path, options),
47
+ // === Local Commands ===
48
+ run_command: (cmd, args) => {
49
+ return new Promise((resolve) => {
50
+ const proc = spawn(cmd, args, {
51
+ stdio: ['ignore', 'pipe', 'pipe'],
52
+ });
53
+ const stdout_chunks = [];
54
+ const stderr_chunks = [];
55
+ proc.stdout.on('data', (chunk) => stdout_chunks.push(chunk));
56
+ proc.stderr.on('data', (chunk) => stderr_chunks.push(chunk));
57
+ proc.on('error', (error) => {
58
+ resolve({
59
+ success: false,
60
+ code: 1,
61
+ stdout: '',
62
+ stderr: `Failed to execute command: ${error.message}`,
63
+ });
64
+ });
65
+ proc.on('close', (code) => {
66
+ resolve({
67
+ success: code === 0,
68
+ code: code ?? 1,
69
+ stdout: Buffer.concat(stdout_chunks).toString('utf-8').trim(),
70
+ stderr: Buffer.concat(stderr_chunks).toString('utf-8').trim(),
71
+ });
72
+ });
73
+ });
74
+ },
75
+ run_command_inherit: (cmd, args) => {
76
+ return new Promise((resolve) => {
77
+ const proc = spawn(cmd, args, {
78
+ stdio: 'inherit',
79
+ });
80
+ proc.on('error', () => resolve(1));
81
+ proc.on('close', (code) => resolve(code ?? 1));
82
+ });
83
+ },
84
+ // === Terminal I/O ===
85
+ stdout_write: async (data) => {
86
+ return new Promise((resolve, reject) => {
87
+ process.stdout.write(data, (err) => {
88
+ if (err)
89
+ reject(err);
90
+ else
91
+ resolve(data.length);
92
+ });
93
+ });
94
+ },
95
+ // === Logging ===
96
+ warn: (...args) => console.warn(...args),
97
+ stdin_read: async (buffer) => {
98
+ // TODO: Implement proper stdin reading for interactive prompts in Node
99
+ return new Promise((resolve) => {
100
+ const onData = (chunk) => {
101
+ const bytes = Math.min(chunk.length, buffer.length);
102
+ chunk.copy(buffer, 0, 0, bytes);
103
+ process.stdin.off('data', onData);
104
+ process.stdin.pause();
105
+ resolve(bytes);
106
+ };
107
+ const onEnd = () => {
108
+ process.stdin.off('data', onData);
109
+ process.stdin.off('end', onEnd);
110
+ resolve(null);
111
+ };
112
+ process.stdin.resume();
113
+ process.stdin.once('data', onData);
114
+ process.stdin.once('end', onEnd);
115
+ });
116
+ },
117
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared Zod `.meta()` conventions for fuz_app schemas.
3
+ *
4
+ * Cross-cutting metadata shape used by env schemas, auth input schemas,
5
+ * surface generation, and test helpers.
6
+ *
7
+ * @module
8
+ */
9
+ import type { Sensitivity } from './sensitivity.js';
10
+ /** Zod `.meta()` shape for fuz_app schema metadata conventions. */
11
+ export interface SchemaFieldMeta {
12
+ description?: string;
13
+ /** Sensitivity level for masking/redaction. `'secret'` masks the value. */
14
+ sensitivity?: Sensitivity;
15
+ }
16
+ //# sourceMappingURL=schema_meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema_meta.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/schema_meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAElD,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared Zod `.meta()` conventions for fuz_app schemas.
3
+ *
4
+ * Cross-cutting metadata shape used by env schemas, auth input schemas,
5
+ * surface generation, and test helpers.
6
+ *
7
+ * @module
8
+ */
9
+ export {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Sensitivity levels for schema metadata.
3
+ *
4
+ * Used by env schemas and auth input schemas to control masking/redaction
5
+ * in startup logs, surface explorers, and test output.
6
+ *
7
+ * @module
8
+ */
9
+ /**
10
+ * Sensitivity level for a schema field.
11
+ *
12
+ * - `'secret'` — value is masked in logs and UI (e.g. passwords, API keys, signing keys)
13
+ */
14
+ export type Sensitivity = 'secret';
15
+ //# sourceMappingURL=sensitivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitivity.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sensitivity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Sensitivity levels for schema metadata.
3
+ *
4
+ * Used by env schemas and auth input schemas to control masking/redaction
5
+ * in startup logs, surface explorers, and test output.
6
+ *
7
+ * @module
8
+ */
9
+ export {};