@fuzdev/fuz_app 0.104.0 → 0.105.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 (597) hide show
  1. package/dist/actions/CLAUDE.md +2 -2
  2. package/dist/actions/action_bridge.d.ts.map +1 -1
  3. package/dist/actions/action_bridge.js +2 -2
  4. package/dist/actions/action_codegen.d.ts.map +1 -1
  5. package/dist/actions/action_codegen.js +3 -3
  6. package/dist/actions/action_dispatcher.d.ts.map +1 -1
  7. package/dist/actions/action_dispatcher.js +3 -3
  8. package/dist/actions/action_event.d.ts.map +1 -1
  9. package/dist/actions/action_event.js +11 -11
  10. package/dist/actions/action_event_data.d.ts.map +1 -1
  11. package/dist/actions/action_event_data.js +2 -2
  12. package/dist/actions/action_event_helpers.d.ts.map +1 -1
  13. package/dist/actions/action_event_helpers.js +2 -2
  14. package/dist/actions/action_event_types.d.ts.map +1 -1
  15. package/dist/actions/action_event_types.js +4 -4
  16. package/dist/actions/action_rpc.d.ts.map +1 -1
  17. package/dist/actions/action_rpc.js +13 -13
  18. package/dist/actions/action_spec.d.ts.map +1 -1
  19. package/dist/actions/action_spec.js +6 -6
  20. package/dist/actions/action_types.d.ts.map +1 -1
  21. package/dist/actions/broadcast_api.d.ts.map +1 -1
  22. package/dist/actions/broadcast_api.js +1 -1
  23. package/dist/actions/cancel.d.ts.map +1 -1
  24. package/dist/actions/cancel.js +3 -3
  25. package/dist/actions/compile_action_registry.d.ts.map +1 -1
  26. package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
  27. package/dist/actions/frontend_rpc_client.js +3 -3
  28. package/dist/actions/heartbeat.d.ts.map +1 -1
  29. package/dist/actions/heartbeat.js +2 -2
  30. package/dist/actions/peer_ping.d.ts.map +1 -1
  31. package/dist/actions/peer_ping.js +6 -6
  32. package/dist/actions/peer_request.d.ts.map +1 -1
  33. package/dist/actions/perform_action.d.ts.map +1 -1
  34. package/dist/actions/perform_action.js +13 -13
  35. package/dist/actions/protocol.d.ts.map +1 -1
  36. package/dist/actions/protocol.js +1 -1
  37. package/dist/actions/register_action_ws.d.ts.map +1 -1
  38. package/dist/actions/register_action_ws.js +14 -11
  39. package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
  40. package/dist/actions/register_ws_endpoint.js +3 -3
  41. package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
  42. package/dist/actions/request_tracker.svelte.js +2 -2
  43. package/dist/actions/rpc_client.d.ts.map +1 -1
  44. package/dist/actions/rpc_client.js +7 -7
  45. package/dist/actions/socket.svelte.d.ts.map +1 -1
  46. package/dist/actions/socket.svelte.js +4 -3
  47. package/dist/actions/transports.d.ts.map +1 -1
  48. package/dist/actions/transports_http.d.ts.map +1 -1
  49. package/dist/actions/transports_http.js +7 -7
  50. package/dist/actions/transports_ws.d.ts.map +1 -1
  51. package/dist/actions/transports_ws.js +3 -3
  52. package/dist/actions/transports_ws_auth_guard.d.ts +4 -4
  53. package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
  54. package/dist/actions/transports_ws_auth_guard.js +5 -5
  55. package/dist/actions/transports_ws_backend.d.ts.map +1 -1
  56. package/dist/actions/transports_ws_backend.js +2 -2
  57. package/dist/actions/ws_endpoint_spec.d.ts +2 -2
  58. package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
  59. package/dist/auth/CLAUDE.md +11 -7
  60. package/dist/auth/account_action_specs.d.ts +4 -4
  61. package/dist/auth/account_action_specs.d.ts.map +1 -1
  62. package/dist/auth/account_action_specs.js +18 -19
  63. package/dist/auth/account_actions.d.ts +3 -3
  64. package/dist/auth/account_actions.d.ts.map +1 -1
  65. package/dist/auth/account_actions.js +10 -10
  66. package/dist/auth/account_queries.d.ts.map +1 -1
  67. package/dist/auth/account_queries.js +6 -6
  68. package/dist/auth/account_route_schema.d.ts.map +1 -1
  69. package/dist/auth/account_route_schema.js +19 -19
  70. package/dist/auth/account_routes.d.ts +2 -2
  71. package/dist/auth/account_routes.d.ts.map +1 -1
  72. package/dist/auth/account_routes.js +27 -27
  73. package/dist/auth/account_schema.d.ts +13 -2
  74. package/dist/auth/account_schema.d.ts.map +1 -1
  75. package/dist/auth/account_schema.js +22 -11
  76. package/dist/auth/actor_lookup_action_specs.d.ts.map +1 -1
  77. package/dist/auth/actor_lookup_action_specs.js +5 -5
  78. package/dist/auth/actor_lookup_actions.d.ts +4 -2
  79. package/dist/auth/actor_lookup_actions.d.ts.map +1 -1
  80. package/dist/auth/actor_lookup_actions.js +3 -3
  81. package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
  82. package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
  83. package/dist/auth/actor_search_action_specs.js +6 -6
  84. package/dist/auth/actor_search_actions.d.ts +4 -2
  85. package/dist/auth/actor_search_actions.d.ts.map +1 -1
  86. package/dist/auth/actor_search_actions.js +5 -5
  87. package/dist/auth/actor_search_queries.d.ts.map +1 -1
  88. package/dist/auth/admin_action_specs.d.ts +2 -2
  89. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  90. package/dist/auth/admin_action_specs.js +55 -55
  91. package/dist/auth/admin_actions.d.ts +5 -5
  92. package/dist/auth/admin_actions.d.ts.map +1 -1
  93. package/dist/auth/admin_actions.js +45 -44
  94. package/dist/auth/all_action_spec_registries.d.ts.map +1 -1
  95. package/dist/auth/all_action_spec_registries.js +1 -1
  96. package/dist/auth/all_cell_actions.d.ts.map +1 -1
  97. package/dist/auth/all_cell_actions.js +1 -1
  98. package/dist/auth/api_token.d.ts.map +1 -1
  99. package/dist/auth/api_token_queries.d.ts +7 -2
  100. package/dist/auth/api_token_queries.d.ts.map +1 -1
  101. package/dist/auth/api_token_queries.js +8 -3
  102. package/dist/auth/app_settings_queries.d.ts.map +1 -1
  103. package/dist/auth/app_settings_schema.d.ts.map +1 -1
  104. package/dist/auth/app_settings_schema.js +3 -3
  105. package/dist/auth/audit_emitter.d.ts +28 -20
  106. package/dist/auth/audit_emitter.d.ts.map +1 -1
  107. package/dist/auth/audit_emitter.js +37 -19
  108. package/dist/auth/audit_log_ddl.js +1 -1
  109. package/dist/auth/audit_log_queries.d.ts.map +1 -1
  110. package/dist/auth/audit_log_queries.js +2 -2
  111. package/dist/auth/audit_log_route_schema.d.ts.map +1 -1
  112. package/dist/auth/audit_log_route_schema.js +1 -1
  113. package/dist/auth/audit_log_routes.d.ts.map +1 -1
  114. package/dist/auth/audit_log_routes.js +3 -3
  115. package/dist/auth/audit_log_schema.d.ts +2 -2
  116. package/dist/auth/audit_log_schema.d.ts.map +1 -1
  117. package/dist/auth/audit_log_schema.js +69 -68
  118. package/dist/auth/auth_ddl.js +3 -3
  119. package/dist/auth/auth_guard_resolver.d.ts.map +1 -1
  120. package/dist/auth/bearer_auth.d.ts.map +1 -1
  121. package/dist/auth/bootstrap_account.d.ts.map +1 -1
  122. package/dist/auth/bootstrap_account.js +5 -5
  123. package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
  124. package/dist/auth/bootstrap_route_schema.js +6 -6
  125. package/dist/auth/bootstrap_routes.d.ts.map +1 -1
  126. package/dist/auth/bootstrap_routes.js +7 -7
  127. package/dist/auth/cell_action_specs.d.ts +1 -1
  128. package/dist/auth/cell_action_specs.d.ts.map +1 -1
  129. package/dist/auth/cell_action_specs.js +47 -47
  130. package/dist/auth/cell_actions.d.ts +2 -2
  131. package/dist/auth/cell_actions.d.ts.map +1 -1
  132. package/dist/auth/cell_actions.js +37 -37
  133. package/dist/auth/cell_audit_action_specs.d.ts.map +1 -1
  134. package/dist/auth/cell_audit_action_specs.js +4 -4
  135. package/dist/auth/cell_audit_actions.d.ts.map +1 -1
  136. package/dist/auth/cell_audit_actions.js +3 -3
  137. package/dist/auth/cell_audit_events.d.ts.map +1 -1
  138. package/dist/auth/cell_audit_events.js +5 -5
  139. package/dist/auth/cell_audit_metadata.d.ts.map +1 -1
  140. package/dist/auth/cell_audit_metadata.js +3 -3
  141. package/dist/auth/cell_authorize.d.ts.map +1 -1
  142. package/dist/auth/cell_data_schema.d.ts.map +1 -1
  143. package/dist/auth/cell_data_schema.js +1 -1
  144. package/dist/auth/cell_field_action_specs.d.ts.map +1 -1
  145. package/dist/auth/cell_field_action_specs.js +16 -16
  146. package/dist/auth/cell_field_actions.d.ts +2 -2
  147. package/dist/auth/cell_field_actions.d.ts.map +1 -1
  148. package/dist/auth/cell_field_actions.js +11 -11
  149. package/dist/auth/cell_field_audit_metadata.d.ts.map +1 -1
  150. package/dist/auth/cell_field_audit_metadata.js +2 -2
  151. package/dist/auth/cell_grant_action_specs.d.ts.map +1 -1
  152. package/dist/auth/cell_grant_action_specs.js +15 -15
  153. package/dist/auth/cell_grant_actions.d.ts +2 -2
  154. package/dist/auth/cell_grant_actions.d.ts.map +1 -1
  155. package/dist/auth/cell_grant_actions.js +12 -12
  156. package/dist/auth/cell_grant_audit_metadata.d.ts.map +1 -1
  157. package/dist/auth/cell_grant_audit_metadata.js +3 -3
  158. package/dist/auth/cell_item_action_specs.d.ts +6 -2
  159. package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
  160. package/dist/auth/cell_item_action_specs.js +25 -21
  161. package/dist/auth/cell_item_actions.d.ts +2 -2
  162. package/dist/auth/cell_item_actions.d.ts.map +1 -1
  163. package/dist/auth/cell_item_actions.js +14 -14
  164. package/dist/auth/cell_item_audit_metadata.d.ts.map +1 -1
  165. package/dist/auth/cell_item_audit_metadata.js +3 -3
  166. package/dist/auth/cell_relation_visibility.d.ts.map +1 -1
  167. package/dist/auth/cleanup.d.ts.map +1 -1
  168. package/dist/auth/cleanup.js +2 -2
  169. package/dist/auth/credential_type_schema.d.ts.map +1 -1
  170. package/dist/auth/credential_type_schema.js +5 -5
  171. package/dist/auth/daemon_token.d.ts.map +1 -1
  172. package/dist/auth/daemon_token_middleware.d.ts.map +1 -1
  173. package/dist/auth/daemon_token_middleware.js +2 -2
  174. package/dist/auth/deps.d.ts +20 -5
  175. package/dist/auth/deps.d.ts.map +1 -1
  176. package/dist/auth/grant_path_schema.d.ts.map +1 -1
  177. package/dist/auth/grant_path_schema.js +8 -8
  178. package/dist/auth/invite_queries.d.ts.map +1 -1
  179. package/dist/auth/invite_schema.d.ts.map +1 -1
  180. package/dist/auth/invite_schema.js +2 -2
  181. package/dist/auth/keyring.d.ts.map +1 -1
  182. package/dist/auth/keyring.js +1 -1
  183. package/dist/auth/middleware.d.ts.map +1 -1
  184. package/dist/auth/middleware.js +7 -7
  185. package/dist/auth/migrations.d.ts.map +1 -1
  186. package/dist/auth/migrations.js +22 -20
  187. package/dist/auth/password.d.ts.map +1 -1
  188. package/dist/auth/password_argon2.d.ts.map +1 -1
  189. package/dist/auth/password_argon2.js +2 -2
  190. package/dist/auth/request_context.d.ts.map +1 -1
  191. package/dist/auth/request_context.js +7 -7
  192. package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
  193. package/dist/auth/role_grant_offer_action_specs.js +35 -35
  194. package/dist/auth/role_grant_offer_actions.d.ts +7 -4
  195. package/dist/auth/role_grant_offer_actions.d.ts.map +1 -1
  196. package/dist/auth/role_grant_offer_actions.js +43 -43
  197. package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
  198. package/dist/auth/role_grant_offer_notifications.js +13 -13
  199. package/dist/auth/role_grant_offer_queries.d.ts +1 -1
  200. package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
  201. package/dist/auth/role_grant_offer_queries.js +11 -11
  202. package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
  203. package/dist/auth/role_grant_offer_schema.js +7 -7
  204. package/dist/auth/role_grant_queries.d.ts.map +1 -1
  205. package/dist/auth/role_grant_queries.js +3 -3
  206. package/dist/auth/role_schema.d.ts.map +1 -1
  207. package/dist/auth/role_schema.js +7 -7
  208. package/dist/auth/scope_kind_schema.d.ts.map +1 -1
  209. package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
  210. package/dist/auth/self_service_role_action_specs.js +5 -5
  211. package/dist/auth/self_service_role_actions.d.ts +3 -3
  212. package/dist/auth/self_service_role_actions.d.ts.map +1 -1
  213. package/dist/auth/self_service_role_actions.js +9 -9
  214. package/dist/auth/session_cookie.d.ts.map +1 -1
  215. package/dist/auth/session_cookie.js +3 -3
  216. package/dist/auth/session_middleware.d.ts.map +1 -1
  217. package/dist/auth/session_middleware.js +4 -4
  218. package/dist/auth/session_queries.d.ts +14 -4
  219. package/dist/auth/session_queries.d.ts.map +1 -1
  220. package/dist/auth/session_queries.js +13 -3
  221. package/dist/auth/signup_route_schema.d.ts.map +1 -1
  222. package/dist/auth/signup_route_schema.js +6 -6
  223. package/dist/auth/signup_routes.d.ts.map +1 -1
  224. package/dist/auth/signup_routes.js +11 -11
  225. package/dist/auth/standard_action_specs.d.ts.map +1 -1
  226. package/dist/auth/standard_action_specs.js +1 -1
  227. package/dist/auth/standard_rpc_actions.d.ts +4 -4
  228. package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
  229. package/dist/auth/standard_rpc_actions.js +3 -3
  230. package/dist/cli/args.d.ts.map +1 -1
  231. package/dist/cli/config.d.ts.map +1 -1
  232. package/dist/cli/daemon.d.ts.map +1 -1
  233. package/dist/cli/daemon.js +3 -3
  234. package/dist/cli/help.d.ts.map +1 -1
  235. package/dist/cli/help.js +1 -1
  236. package/dist/cli/logger.d.ts.map +1 -1
  237. package/dist/cli/logger.js +1 -1
  238. package/dist/cli/util.d.ts.map +1 -1
  239. package/dist/cli/util.js +1 -1
  240. package/dist/db/cell_audit_queries.d.ts.map +1 -1
  241. package/dist/db/cell_audit_queries.js +1 -1
  242. package/dist/db/cell_ddl.d.ts.map +1 -1
  243. package/dist/db/cell_ddl.js +7 -7
  244. package/dist/db/cell_field_queries.d.ts.map +1 -1
  245. package/dist/db/cell_grant_queries.d.ts.map +1 -1
  246. package/dist/db/cell_grant_queries.js +1 -1
  247. package/dist/db/cell_history_ddl.d.ts.map +1 -1
  248. package/dist/db/cell_history_ddl.js +4 -4
  249. package/dist/db/cell_item_queries.d.ts.map +1 -1
  250. package/dist/db/cell_queries.d.ts +1 -1
  251. package/dist/db/cell_queries.d.ts.map +1 -1
  252. package/dist/db/cell_queries.js +3 -3
  253. package/dist/db/create_db.d.ts.map +1 -1
  254. package/dist/db/create_db.js +1 -1
  255. package/dist/db/db.d.ts.map +1 -1
  256. package/dist/db/db_pg.d.ts.map +1 -1
  257. package/dist/db/db_pg.js +1 -1
  258. package/dist/db/db_pglite.d.ts.map +1 -1
  259. package/dist/db/db_pglite.js +1 -1
  260. package/dist/db/fact_ddl.d.ts.map +1 -1
  261. package/dist/db/fact_ddl.js +3 -3
  262. package/dist/db/fact_disk_storage.d.ts +1 -1
  263. package/dist/db/fact_disk_storage.d.ts.map +1 -1
  264. package/dist/db/fact_disk_storage.js +6 -6
  265. package/dist/db/fact_queries.d.ts +1 -1
  266. package/dist/db/fact_queries.d.ts.map +1 -1
  267. package/dist/db/fact_queries.js +2 -2
  268. package/dist/db/fact_store.d.ts +1 -1
  269. package/dist/db/fact_store.d.ts.map +1 -1
  270. package/dist/db/fact_store.js +9 -9
  271. package/dist/db/fact_store_errors.d.ts.map +1 -1
  272. package/dist/db/file_fact_url.d.ts +1 -1
  273. package/dist/db/file_fact_url.d.ts.map +1 -1
  274. package/dist/db/file_fact_url.js +1 -1
  275. package/dist/db/migrate.d.ts.map +1 -1
  276. package/dist/db/pg_error.d.ts.map +1 -1
  277. package/dist/db/query_deps.d.ts.map +1 -1
  278. package/dist/db/schema_ready.d.ts.map +1 -1
  279. package/dist/db/schema_ready.js +2 -2
  280. package/dist/db/status.d.ts.map +1 -1
  281. package/dist/db/status.js +6 -6
  282. package/dist/dev/setup.d.ts.map +1 -1
  283. package/dist/dev/setup.js +6 -6
  284. package/dist/env/dotenv.d.ts.map +1 -1
  285. package/dist/env/load.d.ts.map +1 -1
  286. package/dist/env/resolve.d.ts.map +1 -1
  287. package/dist/hono_context.d.ts.map +1 -1
  288. package/dist/hono_context.js +2 -2
  289. package/dist/http/auth_shape.d.ts.map +1 -1
  290. package/dist/http/auth_shape.js +6 -6
  291. package/dist/http/client_ip.d.ts.map +1 -1
  292. package/dist/http/common_routes.d.ts.map +1 -1
  293. package/dist/http/common_routes.js +8 -8
  294. package/dist/http/db_routes.d.ts.map +1 -1
  295. package/dist/http/db_routes.js +27 -23
  296. package/dist/http/error_schemas.d.ts +1 -1
  297. package/dist/http/error_schemas.d.ts.map +1 -1
  298. package/dist/http/error_schemas.js +13 -13
  299. package/dist/http/jsonrpc.d.ts.map +1 -1
  300. package/dist/http/jsonrpc.js +9 -9
  301. package/dist/http/jsonrpc_errors.d.ts.map +1 -1
  302. package/dist/http/jsonrpc_errors.js +21 -21
  303. package/dist/http/jsonrpc_helpers.d.ts.map +1 -1
  304. package/dist/http/jsonrpc_helpers.js +7 -7
  305. package/dist/http/middleware_spec.d.ts.map +1 -1
  306. package/dist/http/origin.d.ts.map +1 -1
  307. package/dist/http/pending_effects.d.ts.map +1 -1
  308. package/dist/http/proxy.d.ts.map +1 -1
  309. package/dist/http/proxy.js +1 -1
  310. package/dist/http/route_spec.d.ts.map +1 -1
  311. package/dist/http/route_spec.js +6 -6
  312. package/dist/http/schema_helpers.d.ts.map +1 -1
  313. package/dist/http/schema_helpers.js +1 -1
  314. package/dist/http/surface.d.ts.map +1 -1
  315. package/dist/http/surface.js +11 -11
  316. package/dist/http/surface_query.d.ts.map +1 -1
  317. package/dist/http/surface_query.js +1 -1
  318. package/dist/primitive_schemas.d.ts.map +1 -1
  319. package/dist/primitive_schemas.js +1 -1
  320. package/dist/rate_limiter.d.ts.map +1 -1
  321. package/dist/rate_limiter.js +4 -4
  322. package/dist/realtime/sse.d.ts.map +1 -1
  323. package/dist/realtime/sse.js +2 -2
  324. package/dist/realtime/sse_auth_guard.d.ts +4 -4
  325. package/dist/realtime/sse_auth_guard.d.ts.map +1 -1
  326. package/dist/realtime/sse_auth_guard.js +8 -8
  327. package/dist/realtime/subscriber_registry.d.ts.map +1 -1
  328. package/dist/runtime/deno.d.ts.map +1 -1
  329. package/dist/runtime/deno.js +7 -7
  330. package/dist/runtime/deps.d.ts.map +1 -1
  331. package/dist/runtime/fs.d.ts.map +1 -1
  332. package/dist/runtime/mock.d.ts.map +1 -1
  333. package/dist/runtime/mock.js +3 -3
  334. package/dist/runtime/node.d.ts.map +1 -1
  335. package/dist/runtime/node.js +7 -7
  336. package/dist/schema_meta.d.ts.map +1 -1
  337. package/dist/server/app_backend.d.ts +3 -3
  338. package/dist/server/app_backend.d.ts.map +1 -1
  339. package/dist/server/app_backend.js +3 -3
  340. package/dist/server/app_server.d.ts +6 -6
  341. package/dist/server/app_server.d.ts.map +1 -1
  342. package/dist/server/app_server.js +32 -32
  343. package/dist/server/app_server_context.d.ts.map +1 -1
  344. package/dist/server/env.d.ts.map +1 -1
  345. package/dist/server/env.js +9 -9
  346. package/dist/server/fact_write.d.ts +1 -1
  347. package/dist/server/fact_write.d.ts.map +1 -1
  348. package/dist/server/fact_write.js +2 -1
  349. package/dist/server/file_fact_fetcher.d.ts.map +1 -1
  350. package/dist/server/file_fact_fetcher.js +1 -1
  351. package/dist/server/serve_fact_route.d.ts.map +1 -1
  352. package/dist/server/serve_fact_route.js +15 -13
  353. package/dist/server/startup.d.ts.map +1 -1
  354. package/dist/server/static.d.ts.map +1 -1
  355. package/dist/server/validate_nginx.js +1 -1
  356. package/dist/server/x_accel.d.ts.map +1 -1
  357. package/dist/server/x_accel.js +1 -1
  358. package/dist/testing/CLAUDE.md +2 -2
  359. package/dist/testing/admin_integration.d.ts.map +1 -1
  360. package/dist/testing/admin_integration.js +62 -62
  361. package/dist/testing/adversarial_404.d.ts.map +1 -1
  362. package/dist/testing/adversarial_404.js +1 -1
  363. package/dist/testing/adversarial_headers.d.ts.map +1 -1
  364. package/dist/testing/adversarial_headers.js +15 -15
  365. package/dist/testing/adversarial_input.d.ts.map +1 -1
  366. package/dist/testing/adversarial_input.js +22 -22
  367. package/dist/testing/app_server.d.ts.map +1 -1
  368. package/dist/testing/app_server.js +32 -32
  369. package/dist/testing/assertions.d.ts.map +1 -1
  370. package/dist/testing/attack_surface.d.ts.map +1 -1
  371. package/dist/testing/attack_surface.js +12 -12
  372. package/dist/testing/audit_completeness.d.ts.map +1 -1
  373. package/dist/testing/audit_completeness.js +41 -41
  374. package/dist/testing/audit_drift_guard.d.ts +3 -1
  375. package/dist/testing/audit_drift_guard.d.ts.map +1 -1
  376. package/dist/testing/audit_drift_guard.js +12 -6
  377. package/dist/testing/auth_apps.d.ts.map +1 -1
  378. package/dist/testing/auth_apps.js +4 -4
  379. package/dist/testing/bootstrap_success.d.ts.map +1 -1
  380. package/dist/testing/bootstrap_success.js +11 -11
  381. package/dist/testing/connection_closer_helpers.d.ts.map +1 -1
  382. package/dist/testing/connection_closer_helpers.js +1 -1
  383. package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
  384. package/dist/testing/cross_backend/account_lifecycle.js +1 -1
  385. package/dist/testing/cross_backend/action_manifest.d.ts.map +1 -1
  386. package/dist/testing/cross_backend/action_manifest.js +4 -4
  387. package/dist/testing/cross_backend/action_manifest_parity.d.ts.map +1 -1
  388. package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
  389. package/dist/testing/cross_backend/actor_lookup.js +3 -3
  390. package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
  391. package/dist/testing/cross_backend/actor_search.js +5 -5
  392. package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
  393. package/dist/testing/cross_backend/app_settings.js +6 -6
  394. package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
  395. package/dist/testing/cross_backend/bench/bench_report.d.ts.map +1 -1
  396. package/dist/testing/cross_backend/bench/bench_report.js +5 -5
  397. package/dist/testing/cross_backend/bench/run_cross_impl_bench.d.ts.map +1 -1
  398. package/dist/testing/cross_backend/bench/run_cross_impl_bench.js +2 -2
  399. package/dist/testing/cross_backend/bench/scenario.d.ts.map +1 -1
  400. package/dist/testing/cross_backend/bench/scenario.js +1 -1
  401. package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
  402. package/dist/testing/cross_backend/body_size.js +1 -1
  403. package/dist/testing/cross_backend/bootstrap_backend.d.ts.map +1 -1
  404. package/dist/testing/cross_backend/bootstrap_backend.js +2 -2
  405. package/dist/testing/cross_backend/build_test_backend_paths.js +1 -1
  406. package/dist/testing/cross_backend/capabilities.js +2 -2
  407. package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
  408. package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
  409. package/dist/testing/cross_backend/cell_crud.js +5 -2
  410. package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
  411. package/dist/testing/cross_backend/cell_gated_create.js +8 -7
  412. package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
  413. package/dist/testing/cross_backend/cell_grant_role.js +2 -2
  414. package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
  415. package/dist/testing/cross_backend/cell_relations.js +13 -13
  416. package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
  417. package/dist/testing/cross_backend/conformance_case.js +11 -11
  418. package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
  419. package/dist/testing/cross_backend/conformance_table.js +11 -11
  420. package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
  421. package/dist/testing/cross_backend/cookie_attributes.js +4 -4
  422. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +1 -1
  423. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
  424. package/dist/testing/cross_backend/create_cross_backend_global_setup.js +1 -1
  425. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +1 -1
  426. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
  427. package/dist/testing/cross_backend/create_dual_spawn_global_setup.js +1 -1
  428. package/dist/testing/cross_backend/credential_header_robustness.js +1 -1
  429. package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
  430. package/dist/testing/cross_backend/default_backend_configs.js +12 -12
  431. package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
  432. package/dist/testing/cross_backend/default_spine_surface.js +9 -9
  433. package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
  434. package/dist/testing/cross_backend/fact_serving.js +2 -2
  435. package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
  436. package/dist/testing/cross_backend/full_spine_mount.js +4 -4
  437. package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
  438. package/dist/testing/cross_backend/identity_parity.js +28 -24
  439. package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
  440. package/dist/testing/cross_backend/in_process_setup.js +9 -9
  441. package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
  442. package/dist/testing/cross_backend/login_security.js +2 -2
  443. package/dist/testing/cross_backend/make_cross_backend_project.d.ts +1 -1
  444. package/dist/testing/cross_backend/make_cross_backend_project.d.ts.map +1 -1
  445. package/dist/testing/cross_backend/make_cross_backend_project.js +3 -3
  446. package/dist/testing/cross_backend/method_coverage.d.ts.map +1 -1
  447. package/dist/testing/cross_backend/origin.d.ts.map +1 -1
  448. package/dist/testing/cross_backend/origin.js +4 -4
  449. package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
  450. package/dist/testing/cross_backend/peer_ping_ws.js +6 -6
  451. package/dist/testing/cross_backend/ready.d.ts.map +1 -1
  452. package/dist/testing/cross_backend/role_grant_offer_enumeration.d.ts.map +1 -1
  453. package/dist/testing/cross_backend/role_grant_offer_enumeration.js +1 -1
  454. package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
  455. package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +1 -1
  456. package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
  457. package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
  458. package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +5 -5
  459. package/dist/testing/cross_backend/setup.d.ts.map +1 -1
  460. package/dist/testing/cross_backend/setup.js +36 -36
  461. package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
  462. package/dist/testing/cross_backend/spawn_backend.js +1 -1
  463. package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
  464. package/dist/testing/cross_backend/sse_round_trip.js +10 -7
  465. package/dist/testing/cross_backend/standard.d.ts.map +1 -1
  466. package/dist/testing/cross_backend/standard.js +5 -5
  467. package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
  468. package/dist/testing/cross_backend/testing_backdoor.js +7 -7
  469. package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
  470. package/dist/testing/cross_backend/testing_reset_actions.js +24 -23
  471. package/dist/testing/cross_backend/testing_server_bun.d.ts.map +1 -1
  472. package/dist/testing/cross_backend/testing_server_bun.js +3 -3
  473. package/dist/testing/cross_backend/testing_server_core.d.ts.map +1 -1
  474. package/dist/testing/cross_backend/testing_server_core.js +1 -1
  475. package/dist/testing/cross_backend/testing_server_deno.d.ts.map +1 -1
  476. package/dist/testing/cross_backend/testing_server_deno.js +1 -1
  477. package/dist/testing/cross_backend/testing_server_node.d.ts.map +1 -1
  478. package/dist/testing/cross_backend/testing_server_node.js +3 -3
  479. package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
  480. package/dist/testing/cross_backend/ts_spine_backend_config.js +13 -13
  481. package/dist/testing/cross_backend/ws_round_trip.d.ts.map +1 -1
  482. package/dist/testing/cross_backend/ws_round_trip.js +2 -2
  483. package/dist/testing/data_exposure.d.ts.map +1 -1
  484. package/dist/testing/data_exposure.js +8 -8
  485. package/dist/testing/db.d.ts.map +1 -1
  486. package/dist/testing/db.js +3 -3
  487. package/dist/testing/db_entities.d.ts.map +1 -1
  488. package/dist/testing/db_entities.js +1 -1
  489. package/dist/testing/entities.d.ts.map +1 -1
  490. package/dist/testing/entities.js +5 -5
  491. package/dist/testing/error_coverage.d.ts.map +1 -1
  492. package/dist/testing/integration.d.ts.map +1 -1
  493. package/dist/testing/integration.js +106 -106
  494. package/dist/testing/integration_helpers.d.ts.map +1 -1
  495. package/dist/testing/integration_helpers.js +3 -3
  496. package/dist/testing/middleware.d.ts.map +1 -1
  497. package/dist/testing/middleware.js +11 -11
  498. package/dist/testing/mock_fs.js +1 -1
  499. package/dist/testing/rate_limiting.d.ts.map +1 -1
  500. package/dist/testing/rate_limiting.js +23 -23
  501. package/dist/testing/role_grant_helpers.d.ts.map +1 -1
  502. package/dist/testing/role_grant_helpers.js +3 -3
  503. package/dist/testing/round_trip.d.ts.map +1 -1
  504. package/dist/testing/round_trip.js +6 -6
  505. package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
  506. package/dist/testing/rpc_attack_surface.js +12 -12
  507. package/dist/testing/rpc_helpers.d.ts.map +1 -1
  508. package/dist/testing/rpc_helpers.js +11 -11
  509. package/dist/testing/rpc_round_trip.d.ts.map +1 -1
  510. package/dist/testing/rpc_round_trip.js +3 -3
  511. package/dist/testing/schema_generators.d.ts.map +1 -1
  512. package/dist/testing/schema_generators.js +3 -3
  513. package/dist/testing/schema_introspect.d.ts.map +1 -1
  514. package/dist/testing/schema_introspect.js +12 -12
  515. package/dist/testing/schema_parity.d.ts.map +1 -1
  516. package/dist/testing/schema_parity.js +7 -7
  517. package/dist/testing/schema_ready_fixture.d.ts.map +1 -1
  518. package/dist/testing/sse_round_trip.d.ts.map +1 -1
  519. package/dist/testing/sse_round_trip.js +8 -8
  520. package/dist/testing/standard.d.ts.map +1 -1
  521. package/dist/testing/standard.js +8 -8
  522. package/dist/testing/stubs.d.ts +6 -6
  523. package/dist/testing/stubs.d.ts.map +1 -1
  524. package/dist/testing/stubs.js +26 -23
  525. package/dist/testing/surface_invariants.d.ts.map +1 -1
  526. package/dist/testing/surface_invariants.js +5 -5
  527. package/dist/testing/testing_rate_limiter.d.ts.map +1 -1
  528. package/dist/testing/transports/bootstrap.d.ts.map +1 -1
  529. package/dist/testing/transports/bootstrap.js +4 -4
  530. package/dist/testing/transports/fetch_transport.d.ts.map +1 -1
  531. package/dist/testing/transports/sse_frame_reader.d.ts.map +1 -1
  532. package/dist/testing/transports/sse_transport.js +1 -1
  533. package/dist/testing/transports/ws_client.d.ts.map +1 -1
  534. package/dist/testing/transports/ws_client.js +1 -1
  535. package/dist/testing/transports/ws_transport.js +4 -4
  536. package/dist/testing/ws_round_trip.d.ts.map +1 -1
  537. package/dist/testing/ws_round_trip.js +21 -21
  538. package/dist/ui/AccountSessions.svelte +11 -11
  539. package/dist/ui/AdminAccounts.svelte +10 -10
  540. package/dist/ui/AdminAuditLog.svelte +14 -14
  541. package/dist/ui/AdminInvites.svelte +13 -13
  542. package/dist/ui/AdminOverview.svelte +22 -22
  543. package/dist/ui/AdminRoleGrantHistory.svelte +11 -11
  544. package/dist/ui/AdminSessions.svelte +12 -12
  545. package/dist/ui/AdminSettings.svelte +1 -1
  546. package/dist/ui/AdminSurface.svelte +3 -3
  547. package/dist/ui/AppShell.svelte +8 -8
  548. package/dist/ui/AppShell.svelte.d.ts.map +1 -1
  549. package/dist/ui/BootstrapForm.svelte +9 -9
  550. package/dist/ui/CLAUDE.md +1 -1
  551. package/dist/ui/ColumnLayout.svelte +2 -2
  552. package/dist/ui/ColumnLayout.svelte.d.ts.map +1 -1
  553. package/dist/ui/ConfirmButton.svelte +8 -8
  554. package/dist/ui/ConfirmButton.svelte.d.ts.map +1 -1
  555. package/dist/ui/Datatable.svelte +6 -6
  556. package/dist/ui/Datatable.svelte.d.ts.map +1 -1
  557. package/dist/ui/LoginForm.svelte +6 -6
  558. package/dist/ui/LogoutButton.svelte +2 -2
  559. package/dist/ui/LogoutButton.svelte.d.ts.map +1 -1
  560. package/dist/ui/MenuLink.svelte +5 -5
  561. package/dist/ui/MenuLink.svelte.d.ts.map +1 -1
  562. package/dist/ui/OpenSignupToggle.svelte +2 -2
  563. package/dist/ui/PopoverButton.svelte +10 -10
  564. package/dist/ui/PopoverButton.svelte.d.ts.map +1 -1
  565. package/dist/ui/RoleGrantOfferForm.svelte +8 -11
  566. package/dist/ui/RoleGrantOfferForm.svelte.d.ts.map +1 -1
  567. package/dist/ui/RoleGrantOfferHistory.svelte +11 -11
  568. package/dist/ui/RoleGrantOfferHistory.svelte.d.ts.map +1 -1
  569. package/dist/ui/RoleGrantOfferInbox.svelte +6 -6
  570. package/dist/ui/RoleGrantOfferInbox.svelte.d.ts.map +1 -1
  571. package/dist/ui/SignupForm.svelte +9 -9
  572. package/dist/ui/SurfaceExplorer.svelte +11 -11
  573. package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -1
  574. package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
  575. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
  576. package/dist/ui/admin_accounts_state.svelte.js +2 -2
  577. package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
  578. package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
  579. package/dist/ui/admin_rpc_adapters.js +5 -5
  580. package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
  581. package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
  582. package/dist/ui/async_slot.svelte.d.ts.map +1 -1
  583. package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
  584. package/dist/ui/audit_log_state.svelte.js +1 -1
  585. package/dist/ui/auth_state.svelte.js +4 -4
  586. package/dist/ui/form_state.svelte.d.ts.map +1 -1
  587. package/dist/ui/format_scope.d.ts.map +1 -1
  588. package/dist/ui/keyed_async_slot.svelte.d.ts.map +1 -1
  589. package/dist/ui/popover.svelte.d.ts.map +1 -1
  590. package/dist/ui/popover.svelte.js +1 -1
  591. package/dist/ui/position_helpers.js +1 -1
  592. package/dist/ui/role_grant_offers_state.svelte.d.ts.map +1 -1
  593. package/dist/ui/role_grant_offers_state.svelte.js +1 -1
  594. package/dist/ui/table_state.svelte.d.ts.map +1 -1
  595. package/dist/ui/ui_fetch.d.ts.map +1 -1
  596. package/dist/ui/ui_format.js +2 -2
  597. package/package.json +13 -12
@@ -26,8 +26,8 @@ import '../assert_dev_env.js';
26
26
  */
27
27
  import { assert, describe, test } from 'vitest';
28
28
  import { DAEMON_TOKEN_HEADER } from '../../auth/daemon_token.js';
29
- import { find_auth_route, rest_auth_route_suffixes, } from '../integration_helpers.js';
30
- import { find_rpc_action, headers_to_record, rpc_call, resolve_rpc_endpoints_for_setup, } from '../rpc_helpers.js';
29
+ import { find_auth_route, rest_auth_route_suffixes } from '../integration_helpers.js';
30
+ import { find_rpc_action, headers_to_record, rpc_call, resolve_rpc_endpoints_for_setup } from '../rpc_helpers.js';
31
31
  import {} from './conformance_case.js';
32
32
  import { xfail_until } from './xfail.js';
33
33
  /**
@@ -60,7 +60,7 @@ const resolve_principal = async (fixture, as, principals) => {
60
60
  return {
61
61
  transport: fixture.fresh_transport({ origin: null }),
62
62
  headers: fixture.create_daemon_token_headers(),
63
- suppress_default_origin: true,
63
+ suppress_default_origin: true
64
64
  };
65
65
  case 'invalid_daemon':
66
66
  // A malformed `X-Daemon-Token` carried ALONGSIDE the keeper's session
@@ -76,9 +76,9 @@ const resolve_principal = async (fixture, as, principals) => {
76
76
  return {
77
77
  transport: fixture.fresh_transport({ origin: null }),
78
78
  headers: fixture.create_session_headers({
79
- [DAEMON_TOKEN_HEADER]: INVALID_DAEMON_TOKEN_VALUE,
79
+ [DAEMON_TOKEN_HEADER]: INVALID_DAEMON_TOKEN_VALUE
80
80
  }),
81
- suppress_default_origin: true,
81
+ suppress_default_origin: true
82
82
  };
83
83
  case 'daemon_browser':
84
84
  // A VALID `X-Daemon-Token` carried in a browser context (default Origin
@@ -93,14 +93,14 @@ const resolve_principal = async (fixture, as, principals) => {
93
93
  // guard), the 403 here proves the valid token was discarded, not honored.
94
94
  return {
95
95
  transport: fixture.transport,
96
- headers: fixture.create_session_headers(fixture.create_daemon_token_headers()),
96
+ headers: fixture.create_session_headers(fixture.create_daemon_token_headers())
97
97
  };
98
98
  case 'token':
99
99
  // Bearer is discarded in a browser context — empty jar + no Origin.
100
100
  return {
101
101
  transport: fixture.fresh_transport({ origin: null }),
102
102
  headers: fixture.create_bearer_headers(),
103
- suppress_default_origin: true,
103
+ suppress_default_origin: true
104
104
  };
105
105
  case 'bearer_browser':
106
106
  // A VALID bearer api-token in a browser context (default Origin
@@ -114,7 +114,7 @@ const resolve_principal = async (fixture, as, principals) => {
114
114
  // honored (a non-discarding leg would authenticate → 200).
115
115
  return {
116
116
  transport: fixture.fresh_transport(),
117
- headers: fixture.create_bearer_headers(),
117
+ headers: fixture.create_bearer_headers()
118
118
  };
119
119
  case 'anonymous':
120
120
  // Fresh jar so the keeper cookie (cross-process) can't leak in.
@@ -189,7 +189,7 @@ const assert_absent_fields = (body, absent, label) => {
189
189
  export const FINGERPRINT_HEADERS = [
190
190
  'server',
191
191
  'x-powered-by',
192
- 'www-authenticate',
192
+ 'www-authenticate'
193
193
  ];
194
194
  /**
195
195
  * Assert a response carries none of the `FINGERPRINT_HEADERS`. Run on every
@@ -263,7 +263,7 @@ const run_rpc_case = async (c, transport, headers, suppress_default_origin, reso
263
263
  params: c.request.params,
264
264
  headers,
265
265
  ...(c.request.verb && { verb: c.request.verb }),
266
- ...(suppress_default_origin && { suppress_default_origin: true }),
266
+ ...(suppress_default_origin && { suppress_default_origin: true })
267
267
  });
268
268
  assert_response_headers(res.headers, c);
269
269
  if (is_success_status(c.expect.status)) {
@@ -308,7 +308,7 @@ const run_rest_case = async (c, options, transport, headers) => {
308
308
  method: verb,
309
309
  headers: { 'Content-Type': 'application/json', ...headers },
310
310
  ...(verb !== 'GET' &&
311
- c.request.params !== undefined && { body: JSON.stringify(c.request.params) }),
311
+ c.request.params !== undefined && { body: JSON.stringify(c.request.params) })
312
312
  };
313
313
  const response = await transport(route.path, init);
314
314
  assert_response_headers(headers_to_record(response.headers), c);
@@ -1 +1 @@
1
- {"version":3,"file":"cookie_attributes.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cookie_attributes.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAE1C,6DAA6D;AAC7D,MAAM,WAAW,gCAAgC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAoED,eAAO,MAAM,sCAAsC,GAClD,SAAS,gCAAgC,KACvC,IAmFF,CAAC"}
1
+ {"version":3,"file":"cookie_attributes.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cookie_attributes.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,6DAA6D;AAC7D,MAAM,WAAW,gCAAgC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAoED,eAAO,MAAM,sCAAsC,GAClD,SAAS,gCAAgC,KACvC,IAmFF,CAAC"}
@@ -110,7 +110,7 @@ export const describe_cookie_attributes_cross_tests = (options) => {
110
110
  const res = await fixture.fresh_transport()(login_path, {
111
111
  method: 'POST',
112
112
  headers: { 'content-type': 'application/json' },
113
- body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD }),
113
+ body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
114
114
  });
115
115
  assert.strictEqual(res.status, 200, 'valid credentials must log in');
116
116
  const cookie = find_session_cookie(res, cookie_name);
@@ -126,7 +126,7 @@ export const describe_cookie_attributes_cross_tests = (options) => {
126
126
  const res = await fixture.fresh_transport()(login_path, {
127
127
  method: 'POST',
128
128
  headers: { 'content-type': 'application/json' },
129
- body: JSON.stringify({ username, password: `wrong-${DEFAULT_TEST_PASSWORD}` }),
129
+ body: JSON.stringify({ username, password: `wrong-${DEFAULT_TEST_PASSWORD}` })
130
130
  });
131
131
  assert.strictEqual(res.status, 401, 'wrong password must be rejected');
132
132
  assert.strictEqual(find_session_cookie(res, cookie_name), undefined, 'a failed login must not Set-Cookie a session — no credential is minted on denial');
@@ -140,13 +140,13 @@ export const describe_cookie_attributes_cross_tests = (options) => {
140
140
  const login_res = await transport(login_path, {
141
141
  method: 'POST',
142
142
  headers: { 'content-type': 'application/json' },
143
- body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD }),
143
+ body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
144
144
  });
145
145
  assert.strictEqual(login_res.status, 200, 'precondition: login must succeed');
146
146
  const res = await transport(logout_path, {
147
147
  method: 'POST',
148
148
  headers: { 'content-type': 'application/json' },
149
- body: JSON.stringify({}),
149
+ body: JSON.stringify({})
150
150
  });
151
151
  assert.strictEqual(res.status, 200, 'logout must succeed for an authenticated session');
152
152
  const cookie = find_session_cookie(res, cookie_name);
@@ -53,5 +53,5 @@ export interface CrossBackendGlobalSetupOptions {
53
53
  * Build a vitest `globalSetup` default export. Returns the
54
54
  * `(project) => teardown` function vitest 4 expects.
55
55
  */
56
- export declare const create_cross_backend_global_setup: ({ configs, derive_name, provide_key, }: CrossBackendGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
56
+ export declare const create_cross_backend_global_setup: ({ configs, derive_name, provide_key }: CrossBackendGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
57
57
  //# sourceMappingURL=create_cross_backend_global_setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create_cross_backend_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_cross_backend_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAYvD,MAAM,WAAW,8BAA8B;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;IAChE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,GAAI,wCAI/C,8BAA8B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAqB1F,CAAC"}
1
+ {"version":3,"file":"create_cross_backend_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_cross_backend_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,MAAM,WAAW,8BAA8B;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;IAChE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,GAAI,uCAI/C,8BAA8B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAqB1F,CAAC"}
@@ -12,7 +12,7 @@ const DEFAULT_PROJECT_NAME_PREFIX = /^cross_backend_(?:ts_)?/;
12
12
  * Build a vitest `globalSetup` default export. Returns the
13
13
  * `(project) => teardown` function vitest 4 expects.
14
14
  */
15
- export const create_cross_backend_global_setup = ({ configs, derive_name = (project_name) => project_name.replace(DEFAULT_PROJECT_NAME_PREFIX, ''), provide_key = 'backend_handle', }) => {
15
+ export const create_cross_backend_global_setup = ({ configs, derive_name = (project_name) => project_name.replace(DEFAULT_PROJECT_NAME_PREFIX, ''), provide_key = 'backend_handle' }) => {
16
16
  return async (project) => {
17
17
  const name = derive_name(project.name);
18
18
  const factory = configs[name];
@@ -60,5 +60,5 @@ export interface DualSpawnGlobalSetupOptions {
60
60
  /**
61
61
  * Build a vitest `globalSetup` default export that spawns both backends.
62
62
  */
63
- export declare const create_dual_spawn_global_setup: ({ configs, provide_keys, }: DualSpawnGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
63
+ export declare const create_dual_spawn_global_setup: ({ configs, provide_keys }: DualSpawnGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
64
64
  //# sourceMappingURL=create_dual_spawn_global_setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create_dual_spawn_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_dual_spawn_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAIvD,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAA;KAAC,CAAC;IACrF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACjE;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,4BAG5C,2BAA2B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAmBvF,CAAC"}
1
+ {"version":3,"file":"create_dual_spawn_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_dual_spawn_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAA;KAAE,CAAC;IACvF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,2BAG5C,2BAA2B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAmBvF,CAAC"}
@@ -4,7 +4,7 @@ import { serialize_bootstrapped_handle } from './setup.js';
4
4
  /**
5
5
  * Build a vitest `globalSetup` default export that spawns both backends.
6
6
  */
7
- export const create_dual_spawn_global_setup = ({ configs, provide_keys = { a: 'parity_handle_a', b: 'parity_handle_b' }, }) => {
7
+ export const create_dual_spawn_global_setup = ({ configs, provide_keys = { a: 'parity_handle_a', b: 'parity_handle_b' } }) => {
8
8
  return async (project) => {
9
9
  const a = await bootstrap_backend(configs.a());
10
10
  // Tear `a` down if `b` fails to spawn — no orphaned child process.
@@ -152,7 +152,7 @@ export const describe_credential_header_robustness_cross_tests = (options) => {
152
152
  // parser may close without a readable response — that's also "no smuggle".
153
153
  const malformed = [
154
154
  { label: 'CRLF header-split', value: `${GARBAGE_TOKEN}\r\nX-Injected: 1` },
155
- { label: 'bare CR', value: `${GARBAGE_TOKEN}\rX-Injected: 1` },
155
+ { label: 'bare CR', value: `${GARBAGE_TOKEN}\rX-Injected: 1` }
156
156
  ];
157
157
  for (const { label, value } of malformed) {
158
158
  const req = rpc_post(host, rpc_path, [`${DAEMON_TOKEN_HEADER}: ${value}`], purge_body('ctrl-char'));
@@ -1 +1 @@
1
- {"version":3,"file":"default_backend_configs.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_backend_configs.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAC,sBAAsB,EAAE,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAA2B,KAAK,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAQ9F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBA2BpC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,mBAsBtC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAInC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAIrC,CAAC;AAeH,MAAM,WAAW,iCAAiC;IACjD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,iCAAiC,KACrC,aAoCF,CAAC;AAEF,MAAM,WAAW,mCAAmC;IACnD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,mCAAmC,KACvC,aA4CF,CAAC"}
1
+ {"version":3,"file":"default_backend_configs.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_backend_configs.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQhG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBA2BpC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,mBAsBtC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAInC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAIrC,CAAC;AAeH,MAAM,WAAW,iCAAiC;IACjD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,iCAAiC,KACrC,aAoCF,CAAC;AAEF,MAAM,WAAW,mCAAmC;IACnD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,mCAAmC,KACvC,aA4CF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import '../assert_dev_env.js';
2
2
  import { build_test_backend_paths } from './build_test_backend_paths.js';
3
- import { default_test_bootstrap_token, default_test_cookie_keys, default_test_keeper_password, default_test_keeper_username, } from './default_secrets.js';
3
+ import { default_test_bootstrap_token, default_test_cookie_keys, default_test_keeper_password, default_test_keeper_username } from './default_secrets.js';
4
4
  /**
5
5
  * Env var both spine binaries read to enable their login rate limiters
6
6
  * (`'true'` on / unset off). The cross-language contract for the login-security
@@ -44,7 +44,7 @@ export const ts_default_capabilities = Object.freeze({
44
44
  // Off by default — the `cell_gated_create` test policy is a fuz_app test
45
45
  // fixture, mounted only on the spine binaries (`ts_spine_*`), not generic
46
46
  // consumers.
47
- cell_gated_create: false,
47
+ cell_gated_create: false
48
48
  });
49
49
  /**
50
50
  * Capabilities for the Rust family. The non-gating wiring facts live in
@@ -72,7 +72,7 @@ export const rust_default_capabilities = Object.freeze({
72
72
  peer_request: true,
73
73
  // Off by default — the `testing_spine_stub` preset opts in (it mounts the
74
74
  // `TestCellGatedCreateAuthorize` policy); a generic Rust consumer doesn't.
75
- cell_gated_create: false,
75
+ cell_gated_create: false
76
76
  });
77
77
  /**
78
78
  * Shape notes for TS-family backends — wiring facts, not gating flags.
@@ -84,7 +84,7 @@ export const rust_default_capabilities = Object.freeze({
84
84
  export const ts_default_shape_notes = Object.freeze({
85
85
  bearer_auth: true,
86
86
  trusted_proxy: false,
87
- login_rate_limit: false,
87
+ login_rate_limit: false
88
88
  });
89
89
  /**
90
90
  * Shape notes for Rust-family backends — wiring facts, not gating flags. Adds
@@ -96,7 +96,7 @@ export const ts_default_shape_notes = Object.freeze({
96
96
  export const rust_default_shape_notes = Object.freeze({
97
97
  bearer_auth: true,
98
98
  trusted_proxy: true,
99
- login_rate_limit: true,
99
+ login_rate_limit: true
100
100
  });
101
101
  /** Bootstrap block built from the default secrets + supplied paths. */
102
102
  const build_default_bootstrap = (paths, overrides) => ({
@@ -105,7 +105,7 @@ const build_default_bootstrap = (paths, overrides) => ({
105
105
  username: default_test_keeper_username,
106
106
  password: default_test_keeper_password,
107
107
  daemon_token_path: paths.daemon_token_path,
108
- ...overrides,
108
+ ...overrides
109
109
  });
110
110
  /**
111
111
  * Shared builder for TS-family backends (Deno + Node). Owns the common
@@ -114,7 +114,7 @@ const build_default_bootstrap = (paths, overrides) => ({
114
114
  * genuinely differs.
115
115
  */
116
116
  export const make_default_ts_backend_config = (opts) => {
117
- const { name, port, start_command, database_url = 'memory://', extra_env, capabilities = ts_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', cookie_name = 'fuz_session', } = opts;
117
+ const { name, port, start_command, database_url = 'memory://', extra_env, capabilities = ts_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', cookie_name = 'fuz_session' } = opts;
118
118
  return {
119
119
  name,
120
120
  start_command,
@@ -133,10 +133,10 @@ export const make_default_ts_backend_config = (opts) => {
133
133
  SECRET_FUZ_COOKIE_KEYS: default_test_cookie_keys,
134
134
  FUZ_ALLOWED_ORIGINS: 'http://localhost:*',
135
135
  FUZ_BOOTSTRAP_TOKEN_PATH: paths.bootstrap_token_path,
136
- ...extra_env,
136
+ ...extra_env
137
137
  },
138
138
  bootstrap: build_default_bootstrap(paths, bootstrap_overrides),
139
- capabilities,
139
+ capabilities
140
140
  };
141
141
  };
142
142
  /**
@@ -146,7 +146,7 @@ export const make_default_ts_backend_config = (opts) => {
146
146
  * the 120s startup window for cargo's first-run build cost.
147
147
  */
148
148
  export const make_default_rust_backend_config = (opts) => {
149
- const { name, port, start_command, database_url, extra_env, capabilities = rust_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', rust_log = 'info', cookie_name = 'fuz_session', } = opts;
149
+ const { name, port, start_command, database_url, extra_env, capabilities = rust_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', rust_log = 'info', cookie_name = 'fuz_session' } = opts;
150
150
  return {
151
151
  name,
152
152
  start_command,
@@ -172,9 +172,9 @@ export const make_default_rust_backend_config = (opts) => {
172
172
  // `fuz_db::run_migrations`. The `_testing_reset` RPC action
173
173
  // (per-test reset) is orthogonal.
174
174
  FUZ_TESTING_RESET_DB_ON_STARTUP: 'true',
175
- ...extra_env,
175
+ ...extra_env
176
176
  },
177
177
  bootstrap: build_default_bootstrap(paths, bootstrap_overrides),
178
- capabilities,
178
+ capabilities
179
179
  };
180
180
  };
@@ -1 +1 @@
1
- {"version":3,"file":"default_spine_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_spine_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAIpD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAqB,KAAK,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAwB,KAAK,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAIxF,OAAO,EAAqB,KAAK,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AAezE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAAM,CAAwC,CAAC;AAElG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,gBAGxB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAC/B,KAAK,gBAAgB,EACrB,UAAU,wBAAwB,KAChC,KAAK,CAAC,eAAe,CAQvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,gBAAgB,KAAG,KAAK,CAAC,SAAS,CA+B/E,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,SAC6B,CAAC;AAE3F;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAAO,cAM1C,CAAC"}
1
+ {"version":3,"file":"default_spine_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_spine_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI1F,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAe3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAAM,CAAwC,CAAC;AAElG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,gBAGxB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAC/B,KAAK,gBAAgB,EACrB,UAAU,wBAAwB,KAChC,KAAK,CAAC,eAAe,CAQvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,gBAAgB,KAAG,KAAK,CAAC,SAAS,CA+B/E,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,SAC+B,CAAC;AAE7F;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAAO,cAM1C,CAAC"}
@@ -14,7 +14,7 @@ import { create_test_app_surface_spec } from '../stubs.js';
14
14
  // without dragging this module's eager in-process route handlers
15
15
  // (→ `session_middleware` → `hono/cookie`). Import only the constants this
16
16
  // module uses internally; callers that need a bare constant reach for the leaf.
17
- import { SPINE_CELL_EDITOR_ROLE, SPINE_EXPECTED_SCHEMA_URL, SPINE_PARTICIPANT_ROLE, SPINE_RPC_PATH, } from './spine_surface_constants.js';
17
+ import { SPINE_CELL_EDITOR_ROLE, SPINE_EXPECTED_SCHEMA_URL, SPINE_PARTICIPANT_ROLE, SPINE_RPC_PATH } from './spine_surface_constants.js';
18
18
  /**
19
19
  * Session config — cookie name matches the binary's issued session cookie
20
20
  * (`fuz_session`) so cookie-attribute assertions + jar extraction line up.
@@ -33,7 +33,7 @@ export const spine_session_options = create_session_config('fuz_session');
33
33
  */
34
34
  export const spine_roles = create_role_schema([
35
35
  { name: SPINE_CELL_EDITOR_ROLE, grant_paths: [] },
36
- { name: SPINE_PARTICIPANT_ROLE, grant_paths: [GRANT_PATH_ADMIN] },
36
+ { name: SPINE_PARTICIPANT_ROLE, grant_paths: [GRANT_PATH_ADMIN] }
37
37
  ]);
38
38
  /**
39
39
  * Factory-form RPC endpoints over the per-test `ctx.deps`. `create_app_server`
@@ -53,8 +53,8 @@ export const spine_roles = create_role_schema([
53
53
  export const spine_rpc_endpoints = (ctx, options) => [
54
54
  {
55
55
  path: SPINE_RPC_PATH,
56
- actions: create_standard_rpc_actions({ ...ctx.deps, notification_sender: options?.notification_sender ?? null }, { roles: spine_roles }),
57
- },
56
+ actions: create_standard_rpc_actions({ ...ctx.deps, notification_sender: options?.notification_sender ?? null }, { roles: spine_roles })
57
+ }
58
58
  ];
59
59
  /**
60
60
  * Account REST + signup route specs under `/api/account` (bootstrap
@@ -81,7 +81,7 @@ export const create_spine_route_specs = (ctx) => [
81
81
  ip_rate_limiter: ctx.ip_rate_limiter,
82
82
  login_account_rate_limiter: ctx.login_account_rate_limiter,
83
83
  login_fail_floor_ms: 0,
84
- bootstrap_status: ctx.bootstrap_status,
84
+ bootstrap_status: ctx.bootstrap_status
85
85
  }),
86
86
  ...create_signup_route_specs(ctx.deps, {
87
87
  session_options: spine_session_options,
@@ -92,12 +92,12 @@ export const create_spine_route_specs = (ctx) => [
92
92
  // don't each pay the 250ms timing floor. Mirrors `login_fail_floor_ms: 0`
93
93
  // above — the floor is a production timing-oracle defense, not
94
94
  // behavior any cross test asserts.
95
- signup_fail_floor_ms: 0,
96
- }),
95
+ signup_fail_floor_ms: 0
96
+ })
97
97
  ]),
98
98
  ...(ctx.audit_sse
99
99
  ? prefix_route_specs('/api/admin', create_audit_log_route_specs({ stream: ctx.audit_sse }))
100
- : []),
100
+ : [])
101
101
  ];
102
102
  /**
103
103
  * The spine's `/ready` route spec — the column-presence schema-drift deploy
@@ -123,5 +123,5 @@ export const create_spine_surface_spec = () => create_test_app_surface_spec({
123
123
  session_options: spine_session_options,
124
124
  create_route_specs: create_spine_route_specs,
125
125
  rpc_endpoints: spine_rpc_endpoints,
126
- bootstrap: { mode: 'surface_only' },
126
+ bootstrap: { mode: 'surface_only' }
127
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,EAAC,wBAAwB,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC5E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;CAC5C;AA8BD,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IAiOxF,CAAC"}
1
+ {"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC5E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;CAC5C;AA8BD,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IAiOxF,CAAC"}
@@ -38,7 +38,7 @@ import '../assert_dev_env.js';
38
38
  */
39
39
  import { describe, assert } from 'vitest';
40
40
  import { z } from 'zod';
41
- import { FactHashSchema } from '@fuzdev/fuz_util/fact_hash.ts';
41
+ import { FactHashSchema } from '@fuzdev/fuz_util/hash_schemas.ts';
42
42
  import { CellCreateOutput } from '../../auth/cell_action_specs.js';
43
43
  import { test_if } from './capabilities.js';
44
44
  import { cross_rpc_call, expect_output } from './cell_cross_helpers.js';
@@ -61,7 +61,7 @@ const fact_get = async (transport, path, headers) => {
61
61
  return {
62
62
  status: res.status,
63
63
  content_type: res.headers.get('content-type'),
64
- text: await res.text(),
64
+ text: await res.text()
65
65
  };
66
66
  };
67
67
  export const describe_fact_serving_cross_tests = (options) => {
@@ -1 +1 @@
1
- {"version":3,"file":"full_spine_mount.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/full_spine_mount.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8CAA8C,CAAC;AAKrF,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AASzE,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,OAAO,EACb,SAAS,qBAAqB,KAC5B,KAAK,CAAC,SAAS,CAoCjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACpC,KAAK,gBAAgB,EACrB,SAAS,qBAAqB,KAC5B,KAAK,CAAC,eAAe,CAEvB,CAAC"}
1
+ {"version":3,"file":"full_spine_mount.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/full_spine_mount.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAKvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAS3E,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,OAAO,EACb,SAAS,qBAAqB,KAC5B,KAAK,CAAC,SAAS,CAoCjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACpC,KAAK,gBAAgB,EACrB,SAAS,qBAAqB,KAC5B,KAAK,CAAC,eAAe,CAEvB,CAAC"}
@@ -4,7 +4,7 @@ import { create_standard_rpc_actions } from '../../auth/standard_rpc_actions.js'
4
4
  import { create_all_cell_actions } from '../../auth/all_cell_actions.js';
5
5
  import { create_actor_lookup_actions } from '../../auth/actor_lookup_actions.js';
6
6
  import { create_actor_search_actions } from '../../auth/actor_search_actions.js';
7
- import { create_testing_action_manifest_action, create_testing_actions, } from './testing_reset_actions.js';
7
+ import { create_testing_action_manifest_action, create_testing_actions } from './testing_reset_actions.js';
8
8
  import { test_cell_gated_create_authorize } from './test_cell_gated_create_authorize.js';
9
9
  import { spine_roles, spine_session_options } from './default_spine_surface.js';
10
10
  import { SPINE_RPC_PATH } from './spine_surface_constants.js';
@@ -27,7 +27,7 @@ export const build_full_spine_rpc_actions = (deps, options) => {
27
27
  ...create_standard_rpc_actions({ ...deps, notification_sender: options.notification_sender ?? null }, { roles: spine_roles }),
28
28
  ...create_testing_actions(deps, {
29
29
  session_options: spine_session_options,
30
- daemon_token_state: options.daemon_token_state,
30
+ daemon_token_state: options.daemon_token_state
31
31
  }),
32
32
  // Mount the directory-model `cell_gated_create` test policy (twin of the
33
33
  // Rust stub's `TestCellGatedCreateAuthorize`) so the cross-backend
@@ -44,7 +44,7 @@ export const build_full_spine_rpc_actions = (deps, options) => {
44
44
  // rather than `method_not_found`. It's a protocol action, so it's filtered
45
45
  // out of the action manifest (`create_testing_action_manifest_action`) —
46
46
  // the WS endpoint registers it via the `protocol_actions` spread.
47
- peer_ping_action,
47
+ peer_ping_action
48
48
  ];
49
49
  // Append the `_testing_action_manifest` backdoor last — it closes over the
50
50
  // complete `actions` list (plus its own spec) to dump the live method set
@@ -61,5 +61,5 @@ export const build_full_spine_rpc_actions = (deps, options) => {
61
61
  * standard bundle only.
62
62
  */
63
63
  export const full_spine_rpc_endpoints = (ctx, options) => [
64
- { path: SPINE_RPC_PATH, actions: build_full_spine_rpc_actions(ctx.deps, options) },
64
+ { path: SPINE_RPC_PATH, actions: build_full_spine_rpc_actions(ctx.deps, options) }
65
65
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"identity_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/identity_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqG9B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAkB1C,uDAAuD;AACvD,MAAM,WAAW,8BAA8B;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AA0JD,eAAO,MAAM,oCAAoC,GAChD,SAAS,8BAA8B,KACrC,IA6TF,CAAC"}
1
+ {"version":3,"file":"identity_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/identity_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqG9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkB5C,uDAAuD;AACvD,MAAM,WAAW,8BAA8B;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8JD,eAAO,MAAM,oCAAoC,GAChD,SAAS,8BAA8B,KACrC,IA6TF,CAAC"}
@@ -90,7 +90,7 @@ import '../assert_dev_env.js';
90
90
  * @module
91
91
  */
92
92
  import { describe, test, assert } from 'vitest';
93
- import { ERROR_INVALID_CREDENTIALS, ERROR_INVALID_REQUEST_BODY, ERROR_NO_MATCHING_INVITE, } from '../../http/error_schemas.js';
93
+ import { ERROR_INVALID_CREDENTIALS, ERROR_INVALID_REQUEST_BODY, ERROR_NO_MATCHING_INVITE } from '../../http/error_schemas.js';
94
94
  import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
95
95
  /**
96
96
  * The flat-REST `{error}` reason each terminal login/signup status carries on
@@ -105,7 +105,7 @@ const REASON_BY_STATUS = {
105
105
  200: undefined,
106
106
  400: ERROR_INVALID_REQUEST_BODY,
107
107
  401: ERROR_INVALID_CREDENTIALS,
108
- 403: ERROR_NO_MATCHING_INVITE,
108
+ 403: ERROR_NO_MATCHING_INVITE
109
109
  };
110
110
  /**
111
111
  * U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE. Its Unicode default lowercase
@@ -122,7 +122,7 @@ const TURKISH_DOTTED_I = 'İ';
122
122
  const USERNAME_NON_ASCII_CASES = [
123
123
  { username: 'café_user', label: 'accented Latin mid-string', status: 400 },
124
124
  { username: 'Ωmega_user', label: 'leading Greek', status: 400 },
125
- { username: '日本_user', label: 'leading CJK', status: 400 },
125
+ { username: '日本_user', label: 'leading CJK', status: 400 }
126
126
  ];
127
127
  /**
128
128
  * Status a signup with a **valid** username (but no matching invite, on a
@@ -149,9 +149,9 @@ const USERNAME_LENGTH_CASES = [
149
149
  {
150
150
  username: `a${'b'.repeat(38)}`,
151
151
  label: '39 chars — at max',
152
- status: VALID_USERNAME_NO_INVITE_STATUS,
152
+ status: VALID_USERNAME_NO_INVITE_STATUS
153
153
  },
154
- { username: `a${'b'.repeat(39)}`, label: '40 chars — above max', status: 400 },
154
+ { username: `a${'b'.repeat(39)}`, label: '40 chars — above max', status: 400 }
155
155
  ];
156
156
  /**
157
157
  * Username format edge cases for the creation regex
@@ -175,9 +175,9 @@ const USERNAME_FORMAT_CASES = [
175
175
  {
176
176
  username: 'us_er',
177
177
  label: 'underscore mid-string (valid)',
178
- status: VALID_USERNAME_NO_INVITE_STATUS,
178
+ status: VALID_USERNAME_NO_INVITE_STATUS
179
179
  },
180
- { username: 'us-er', label: 'dash mid-string (valid)', status: VALID_USERNAME_NO_INVITE_STATUS },
180
+ { username: 'us-er', label: 'dash mid-string (valid)', status: VALID_USERNAME_NO_INVITE_STATUS }
181
181
  ];
182
182
  /**
183
183
  * Signup email-format cases for the loose `Email` shape `local@domain.tld`
@@ -206,7 +206,11 @@ const SIGNUP_EMAIL_CASES = [
206
206
  { email: 'a\u0085b@c.d', label: 'NEL U+0085 (Unicode ws JS \\s omits)', status: 400 },
207
207
  { email: 'a\ufeffb@c.d', label: 'BOM/ZWNBSP U+FEFF', status: 400 },
208
208
  // 255 bytes total (243-char local + "@example.com") — one over the 254-byte bound.
209
- { email: `${'a'.repeat(243)}@example.com`, label: 'over the 254-byte bound (ASCII)', status: 400 },
209
+ {
210
+ email: `${'a'.repeat(243)}@example.com`,
211
+ label: 'over the 254-byte bound (ASCII)',
212
+ status: 400
213
+ },
210
214
  // Multibyte: the bound is UTF-8 BYTES, not code units. `\u00fc` (ü) is 2
211
215
  // bytes / 1 code unit, so 121×ü + "@example.com" is 254 bytes (accepted) and
212
216
  // 122×ü is 256 bytes (rejected) — both far under 254 code units, so a
@@ -215,29 +219,29 @@ const SIGNUP_EMAIL_CASES = [
215
219
  {
216
220
  email: `${'\u00fc'.repeat(121)}@example.com`,
217
221
  label: 'multibyte at the 254-byte bound',
218
- status: VALID_USERNAME_NO_INVITE_STATUS,
222
+ status: VALID_USERNAME_NO_INVITE_STATUS
219
223
  },
220
224
  {
221
225
  email: `${'\u00fc'.repeat(122)}@example.com`,
222
226
  label: 'multibyte over the 254-byte bound',
223
- status: 400,
227
+ status: 400
224
228
  },
225
229
  { email: 'user@example.com', label: 'well-formed', status: VALID_USERNAME_NO_INVITE_STATUS },
226
230
  {
227
231
  email: 'a@b.c',
228
232
  label: 'single-char TLD (looser than z.email)',
229
- status: VALID_USERNAME_NO_INVITE_STATUS,
233
+ status: VALID_USERNAME_NO_INVITE_STATUS
230
234
  },
231
235
  {
232
236
  email: 'a..b@c.d',
233
237
  label: 'consecutive dots (looser than z.email)',
234
- status: VALID_USERNAME_NO_INVITE_STATUS,
238
+ status: VALID_USERNAME_NO_INVITE_STATUS
235
239
  },
236
240
  {
237
241
  email: 'user+tag@example.co.uk',
238
242
  label: 'plus-tag + multi-label',
239
- status: VALID_USERNAME_NO_INVITE_STATUS,
240
- },
243
+ status: VALID_USERNAME_NO_INVITE_STATUS
244
+ }
241
245
  ];
242
246
  export const describe_identity_parity_cross_tests = (options) => {
243
247
  const { setup_test } = options;
@@ -252,7 +256,7 @@ export const describe_identity_parity_cross_tests = (options) => {
252
256
  const res = await fixture.fresh_transport()(path, {
253
257
  method: 'POST',
254
258
  headers: { 'content-type': 'application/json' },
255
- body: JSON.stringify(body),
259
+ body: JSON.stringify(body)
256
260
  });
257
261
  const text = await res.text().catch(() => '');
258
262
  let error;
@@ -335,7 +339,7 @@ export const describe_identity_parity_cross_tests = (options) => {
335
339
  const fixture = await setup_test();
336
340
  await fixture.create_account({
337
341
  username: 'email_exact_user',
338
- email: 'email-exact@example.com',
342
+ email: 'email-exact@example.com'
339
343
  });
340
344
  assert_attempt(await login(fixture, 'email-exact@example.com'), 200, 'exact-email login');
341
345
  });
@@ -343,7 +347,7 @@ export const describe_identity_parity_cross_tests = (options) => {
343
347
  const fixture = await setup_test();
344
348
  await fixture.create_account({
345
349
  username: 'email_mixed_user',
346
- email: 'Email.Mixed@Example.COM',
350
+ email: 'Email.Mixed@Example.COM'
347
351
  });
348
352
  assert_attempt(await login(fixture, 'email.mixed@example.com'), 200, 'mixed-case-email login');
349
353
  });
@@ -351,7 +355,7 @@ export const describe_identity_parity_cross_tests = (options) => {
351
355
  const fixture = await setup_test();
352
356
  await fixture.create_account({
353
357
  username: 'email_upper_user',
354
- email: 'email-upper@example.com',
358
+ email: 'email-upper@example.com'
355
359
  });
356
360
  assert_attempt(await login(fixture, 'EMAIL-UPPER@EXAMPLE.COM'), 200, 'uppercase-email login');
357
361
  });
@@ -359,7 +363,7 @@ export const describe_identity_parity_cross_tests = (options) => {
359
363
  const fixture = await setup_test();
360
364
  await fixture.create_account({
361
365
  username: 'email_dual_user',
362
- email: 'email-dual@example.com',
366
+ email: 'email-dual@example.com'
363
367
  });
364
368
  assert_attempt(await login(fixture, 'email_dual_user'), 200, 'username login with email present');
365
369
  });
@@ -367,7 +371,7 @@ export const describe_identity_parity_cross_tests = (options) => {
367
371
  const fixture = await setup_test();
368
372
  await fixture.create_account({
369
373
  username: 'email_present_user',
370
- email: 'email-present@example.com',
374
+ email: 'email-present@example.com'
371
375
  });
372
376
  assert_attempt(await login(fixture, 'email-absent@example.com'), 401, 'non-existent-email login');
373
377
  });
@@ -402,7 +406,7 @@ export const describe_identity_parity_cross_tests = (options) => {
402
406
  assert_attempt(await post_json(fixture, login_path, {
403
407
  username: 'some_user',
404
408
  password: DEFAULT_TEST_PASSWORD,
405
- unexpected_field: 'x',
409
+ unexpected_field: 'x'
406
410
  }), 400, 'unknown body key');
407
411
  });
408
412
  });
@@ -430,7 +434,7 @@ export const describe_identity_parity_cross_tests = (options) => {
430
434
  assert_attempt(await post_json(fixture, signup_path, {
431
435
  username: 'email_fmt_user',
432
436
  password: DEFAULT_TEST_PASSWORD,
433
- email,
437
+ email
434
438
  }), status, `email "${email}" (${label})`);
435
439
  });
436
440
  }
@@ -443,7 +447,7 @@ export const describe_identity_parity_cross_tests = (options) => {
443
447
  assert_attempt(await post_json(fixture, signup_path, {
444
448
  username: 'email_null_user',
445
449
  password: DEFAULT_TEST_PASSWORD,
446
- email: null,
450
+ email: null
447
451
  }), VALID_USERNAME_NO_INVITE_STATUS, 'null email');
448
452
  });
449
453
  });
@@ -458,7 +462,7 @@ export const describe_identity_parity_cross_tests = (options) => {
458
462
  assert_attempt(await post_json(fixture, signup_path, {
459
463
  username: 'strict_signup_user',
460
464
  password: DEFAULT_TEST_PASSWORD,
461
- unexpected_field: 'x',
465
+ unexpected_field: 'x'
462
466
  }), 400, 'signup unknown body key');
463
467
  });
464
468
  });