@fuzdev/fuz_app 0.52.0 → 0.53.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 (247) hide show
  1. package/dist/actions/CLAUDE.md +29 -9
  2. package/dist/actions/action_codegen.d.ts +10 -35
  3. package/dist/actions/action_codegen.d.ts.map +1 -1
  4. package/dist/actions/action_codegen.js +13 -42
  5. package/dist/actions/action_peer.d.ts.map +1 -1
  6. package/dist/actions/action_peer.js +0 -9
  7. package/dist/actions/action_registry.d.ts +0 -4
  8. package/dist/actions/action_registry.d.ts.map +1 -1
  9. package/dist/actions/action_registry.js +4 -10
  10. package/dist/actions/action_rpc.d.ts +16 -0
  11. package/dist/actions/action_rpc.d.ts.map +1 -1
  12. package/dist/actions/action_rpc.js +41 -20
  13. package/dist/actions/action_spec.d.ts +54 -5
  14. package/dist/actions/action_spec.d.ts.map +1 -1
  15. package/dist/actions/action_spec.js +21 -5
  16. package/dist/actions/frontend_rpc_client.d.ts +1 -9
  17. package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
  18. package/dist/actions/frontend_rpc_client.js +1 -9
  19. package/dist/actions/register_action_ws.d.ts +16 -0
  20. package/dist/actions/register_action_ws.d.ts.map +1 -1
  21. package/dist/actions/register_action_ws.js +41 -1
  22. package/dist/actions/request_tracker.svelte.d.ts +10 -15
  23. package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
  24. package/dist/actions/request_tracker.svelte.js +10 -15
  25. package/dist/actions/rpc_client.d.ts +0 -1
  26. package/dist/actions/rpc_client.d.ts.map +1 -1
  27. package/dist/actions/rpc_client.js +3 -17
  28. package/dist/actions/socket.svelte.d.ts +0 -1
  29. package/dist/actions/socket.svelte.d.ts.map +1 -1
  30. package/dist/actions/socket.svelte.js +0 -1
  31. package/dist/actions/transports.d.ts +4 -3
  32. package/dist/actions/transports.d.ts.map +1 -1
  33. package/dist/actions/transports.js +4 -13
  34. package/dist/actions/transports_ws_auth_guard.d.ts +0 -2
  35. package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
  36. package/dist/actions/transports_ws_auth_guard.js +0 -2
  37. package/dist/actions/transports_ws_backend.d.ts.map +1 -1
  38. package/dist/actions/transports_ws_backend.js +0 -9
  39. package/dist/auth/CLAUDE.md +24 -14
  40. package/dist/auth/account_queries.d.ts +0 -3
  41. package/dist/auth/account_queries.d.ts.map +1 -1
  42. package/dist/auth/account_queries.js +0 -3
  43. package/dist/auth/admin_action_specs.d.ts +5 -0
  44. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  45. package/dist/auth/admin_action_specs.js +5 -0
  46. package/dist/auth/api_token_queries.d.ts +0 -1
  47. package/dist/auth/api_token_queries.d.ts.map +1 -1
  48. package/dist/auth/api_token_queries.js +0 -1
  49. package/dist/auth/audit_log_queries.d.ts +0 -1
  50. package/dist/auth/audit_log_queries.d.ts.map +1 -1
  51. package/dist/auth/audit_log_queries.js +0 -1
  52. package/dist/auth/audit_log_routes.d.ts +2 -2
  53. package/dist/auth/audit_log_routes.js +2 -2
  54. package/dist/auth/invite_queries.d.ts +0 -1
  55. package/dist/auth/invite_queries.d.ts.map +1 -1
  56. package/dist/auth/invite_queries.js +0 -1
  57. package/dist/auth/permit_offer_action_specs.d.ts +1 -0
  58. package/dist/auth/permit_offer_action_specs.d.ts.map +1 -1
  59. package/dist/auth/permit_offer_action_specs.js +1 -0
  60. package/dist/auth/permit_offer_queries.d.ts +0 -1
  61. package/dist/auth/permit_offer_queries.d.ts.map +1 -1
  62. package/dist/auth/permit_offer_queries.js +0 -1
  63. package/dist/auth/permit_queries.d.ts +0 -1
  64. package/dist/auth/permit_queries.d.ts.map +1 -1
  65. package/dist/auth/permit_queries.js +0 -1
  66. package/dist/auth/session_lifecycle.d.ts +0 -1
  67. package/dist/auth/session_lifecycle.d.ts.map +1 -1
  68. package/dist/auth/session_lifecycle.js +0 -1
  69. package/dist/auth/session_middleware.d.ts +0 -4
  70. package/dist/auth/session_middleware.d.ts.map +1 -1
  71. package/dist/auth/session_middleware.js +0 -4
  72. package/dist/cli/config.d.ts +0 -3
  73. package/dist/cli/config.d.ts.map +1 -1
  74. package/dist/cli/config.js +0 -3
  75. package/dist/cli/daemon.d.ts +1 -1
  76. package/dist/cli/daemon.js +1 -1
  77. package/dist/db/create_db.d.ts +0 -1
  78. package/dist/db/create_db.d.ts.map +1 -1
  79. package/dist/db/create_db.js +0 -1
  80. package/dist/db/db.d.ts +0 -4
  81. package/dist/db/db.d.ts.map +1 -1
  82. package/dist/db/db.js +0 -4
  83. package/dist/db/db_pg.d.ts +2 -2
  84. package/dist/db/db_pg.js +2 -2
  85. package/dist/db/db_pglite.d.ts +1 -2
  86. package/dist/db/db_pglite.d.ts.map +1 -1
  87. package/dist/db/db_pglite.js +1 -2
  88. package/dist/db/migrate.d.ts +0 -1
  89. package/dist/db/migrate.d.ts.map +1 -1
  90. package/dist/db/migrate.js +0 -1
  91. package/dist/dev/setup.d.ts +0 -3
  92. package/dist/dev/setup.d.ts.map +1 -1
  93. package/dist/dev/setup.js +0 -3
  94. package/dist/env/load.d.ts +0 -2
  95. package/dist/env/load.d.ts.map +1 -1
  96. package/dist/env/load.js +0 -2
  97. package/dist/hono_context.d.ts +2 -5
  98. package/dist/hono_context.d.ts.map +1 -1
  99. package/dist/hono_context.js +2 -5
  100. package/dist/http/common_routes.d.ts +0 -8
  101. package/dist/http/common_routes.d.ts.map +1 -1
  102. package/dist/http/common_routes.js +0 -8
  103. package/dist/http/db_routes.d.ts +0 -3
  104. package/dist/http/db_routes.d.ts.map +1 -1
  105. package/dist/http/db_routes.js +0 -3
  106. package/dist/http/error_schemas.d.ts +12 -11
  107. package/dist/http/error_schemas.d.ts.map +1 -1
  108. package/dist/http/error_schemas.js +11 -7
  109. package/dist/http/jsonrpc_errors.d.ts +0 -6
  110. package/dist/http/jsonrpc_errors.d.ts.map +1 -1
  111. package/dist/http/jsonrpc_errors.js +0 -6
  112. package/dist/http/origin.d.ts +6 -13
  113. package/dist/http/origin.d.ts.map +1 -1
  114. package/dist/http/origin.js +7 -14
  115. package/dist/http/proxy.d.ts +1 -7
  116. package/dist/http/proxy.d.ts.map +1 -1
  117. package/dist/http/proxy.js +1 -7
  118. package/dist/http/route_spec.d.ts +13 -35
  119. package/dist/http/route_spec.d.ts.map +1 -1
  120. package/dist/http/route_spec.js +10 -22
  121. package/dist/http/schema_helpers.d.ts +0 -4
  122. package/dist/http/schema_helpers.d.ts.map +1 -1
  123. package/dist/http/schema_helpers.js +0 -4
  124. package/dist/http/surface.d.ts +2 -12
  125. package/dist/http/surface.d.ts.map +1 -1
  126. package/dist/http/surface.js +1 -12
  127. package/dist/rate_limiter.d.ts +16 -0
  128. package/dist/rate_limiter.d.ts.map +1 -1
  129. package/dist/rate_limiter.js +26 -0
  130. package/dist/realtime/sse.d.ts +0 -1
  131. package/dist/realtime/sse.d.ts.map +1 -1
  132. package/dist/realtime/sse.js +0 -1
  133. package/dist/realtime/subscriber_registry.d.ts +0 -3
  134. package/dist/realtime/subscriber_registry.d.ts.map +1 -1
  135. package/dist/realtime/subscriber_registry.js +0 -3
  136. package/dist/runtime/fs.d.ts +1 -4
  137. package/dist/runtime/fs.d.ts.map +1 -1
  138. package/dist/runtime/fs.js +1 -4
  139. package/dist/runtime/mock.d.ts +0 -3
  140. package/dist/runtime/mock.d.ts.map +1 -1
  141. package/dist/runtime/mock.js +0 -3
  142. package/dist/server/app_server.d.ts +27 -5
  143. package/dist/server/app_server.d.ts.map +1 -1
  144. package/dist/server/app_server.js +19 -7
  145. package/dist/server/startup.d.ts +0 -2
  146. package/dist/server/startup.d.ts.map +1 -1
  147. package/dist/server/startup.js +0 -2
  148. package/dist/server/static.d.ts +0 -1
  149. package/dist/server/static.d.ts.map +1 -1
  150. package/dist/server/static.js +0 -1
  151. package/dist/server/validate_nginx.d.ts +0 -3
  152. package/dist/server/validate_nginx.d.ts.map +1 -1
  153. package/dist/server/validate_nginx.js +0 -3
  154. package/dist/testing/CLAUDE.md +1 -1
  155. package/dist/testing/admin_integration.d.ts +0 -1
  156. package/dist/testing/admin_integration.d.ts.map +1 -1
  157. package/dist/testing/admin_integration.js +3 -6
  158. package/dist/testing/adversarial_404.d.ts +0 -2
  159. package/dist/testing/adversarial_404.d.ts.map +1 -1
  160. package/dist/testing/adversarial_404.js +0 -2
  161. package/dist/testing/adversarial_headers.d.ts +0 -1
  162. package/dist/testing/adversarial_headers.d.ts.map +1 -1
  163. package/dist/testing/adversarial_headers.js +0 -1
  164. package/dist/testing/adversarial_input.d.ts +0 -2
  165. package/dist/testing/adversarial_input.d.ts.map +1 -1
  166. package/dist/testing/adversarial_input.js +0 -2
  167. package/dist/testing/app_server.d.ts +22 -0
  168. package/dist/testing/app_server.d.ts.map +1 -1
  169. package/dist/testing/app_server.js +2 -4
  170. package/dist/testing/assertions.d.ts +0 -4
  171. package/dist/testing/assertions.d.ts.map +1 -1
  172. package/dist/testing/assertions.js +0 -4
  173. package/dist/testing/attack_surface.d.ts +0 -4
  174. package/dist/testing/attack_surface.d.ts.map +1 -1
  175. package/dist/testing/attack_surface.js +0 -4
  176. package/dist/testing/audit_completeness.d.ts +0 -1
  177. package/dist/testing/audit_completeness.d.ts.map +1 -1
  178. package/dist/testing/audit_completeness.js +0 -1
  179. package/dist/testing/auth_apps.d.ts +2 -10
  180. package/dist/testing/auth_apps.d.ts.map +1 -1
  181. package/dist/testing/auth_apps.js +2 -10
  182. package/dist/testing/data_exposure.d.ts +0 -11
  183. package/dist/testing/data_exposure.d.ts.map +1 -1
  184. package/dist/testing/data_exposure.js +0 -11
  185. package/dist/testing/db.d.ts +0 -6
  186. package/dist/testing/db.d.ts.map +1 -1
  187. package/dist/testing/db.js +0 -6
  188. package/dist/testing/error_coverage.d.ts +0 -14
  189. package/dist/testing/error_coverage.d.ts.map +1 -1
  190. package/dist/testing/error_coverage.js +0 -14
  191. package/dist/testing/integration.d.ts +0 -1
  192. package/dist/testing/integration.d.ts.map +1 -1
  193. package/dist/testing/integration.js +0 -1
  194. package/dist/testing/integration_helpers.d.ts +1 -36
  195. package/dist/testing/integration_helpers.d.ts.map +1 -1
  196. package/dist/testing/integration_helpers.js +1 -43
  197. package/dist/testing/middleware.d.ts +0 -10
  198. package/dist/testing/middleware.d.ts.map +1 -1
  199. package/dist/testing/middleware.js +0 -10
  200. package/dist/testing/mock_fs.d.ts +0 -2
  201. package/dist/testing/mock_fs.d.ts.map +1 -1
  202. package/dist/testing/mock_fs.js +0 -2
  203. package/dist/testing/rate_limiting.d.ts +0 -1
  204. package/dist/testing/rate_limiting.d.ts.map +1 -1
  205. package/dist/testing/rate_limiting.js +0 -1
  206. package/dist/testing/round_trip.d.ts +0 -2
  207. package/dist/testing/round_trip.d.ts.map +1 -1
  208. package/dist/testing/round_trip.js +0 -2
  209. package/dist/testing/rpc_attack_surface.d.ts +0 -2
  210. package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
  211. package/dist/testing/rpc_attack_surface.js +0 -2
  212. package/dist/testing/rpc_helpers.d.ts +0 -6
  213. package/dist/testing/rpc_helpers.d.ts.map +1 -1
  214. package/dist/testing/rpc_helpers.js +0 -6
  215. package/dist/testing/rpc_round_trip.d.ts +0 -2
  216. package/dist/testing/rpc_round_trip.d.ts.map +1 -1
  217. package/dist/testing/rpc_round_trip.js +0 -2
  218. package/dist/testing/schema_generators.d.ts +0 -3
  219. package/dist/testing/schema_generators.d.ts.map +1 -1
  220. package/dist/testing/schema_generators.js +17 -3
  221. package/dist/testing/sse_round_trip.d.ts +0 -1
  222. package/dist/testing/sse_round_trip.d.ts.map +1 -1
  223. package/dist/testing/sse_round_trip.js +0 -1
  224. package/dist/testing/standard.d.ts +0 -2
  225. package/dist/testing/standard.d.ts.map +1 -1
  226. package/dist/testing/standard.js +0 -2
  227. package/dist/testing/stubs.d.ts +3 -5
  228. package/dist/testing/stubs.d.ts.map +1 -1
  229. package/dist/testing/stubs.js +5 -5
  230. package/dist/testing/surface_invariants.d.ts +0 -3
  231. package/dist/testing/surface_invariants.d.ts.map +1 -1
  232. package/dist/testing/surface_invariants.js +0 -3
  233. package/dist/ui/CLAUDE.md +1 -1
  234. package/dist/ui/audit_log_state.svelte.js +1 -1
  235. package/dist/ui/position_helpers.d.ts +0 -3
  236. package/dist/ui/position_helpers.d.ts.map +1 -1
  237. package/dist/ui/position_helpers.js +0 -3
  238. package/dist/ui/sidebar_state.svelte.d.ts +1 -2
  239. package/dist/ui/sidebar_state.svelte.d.ts.map +1 -1
  240. package/dist/ui/sidebar_state.svelte.js +1 -2
  241. package/dist/ui/ui_fetch.d.ts +1 -7
  242. package/dist/ui/ui_fetch.d.ts.map +1 -1
  243. package/dist/ui/ui_fetch.js +1 -7
  244. package/dist/ui/ui_format.d.ts +2 -14
  245. package/dist/ui/ui_format.d.ts.map +1 -1
  246. package/dist/ui/ui_format.js +2 -14
  247. package/package.json +2 -2
@@ -85,7 +85,6 @@ export interface ErrorSchemaAuditEntry {
85
85
  * (`z.string()`) vs specific `z.literal()` or `z.enum()` error codes.
86
86
  * Use the output to prioritize progressive tightening of error schemas.
87
87
  *
88
- * @param surface - the app surface to audit
89
88
  * @returns audit entries for every route x status combination
90
89
  */
91
90
  export declare const audit_error_schema_tightness: (surface: AppSurface) => Array<ErrorSchemaAuditEntry>;
@@ -199,8 +198,6 @@ export declare const DEFAULT_ERROR_SCHEMA_TIGHTNESS: ErrorSchemaTightnessOptions
199
198
  * the configured threshold. Use `allowlist` and `ignore_statuses` to exclude
200
199
  * known exceptions during progressive tightening.
201
200
  *
202
- * @param surface - the app surface to check
203
- * @param options - threshold and exclusion configuration
204
201
  * @throws AssertionError listing every route × status combination whose error
205
202
  * schema specificity is below `min_specificity` (default `'enum'`) and is
206
203
  * not in `allowlist` or `ignore_statuses`.
@@ -1 +1 @@
1
- {"version":3,"file":"surface_invariants.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/surface_invariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surface_invariants.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/surface_invariants.ts"],"names":[],"mappings":"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"}
@@ -278,7 +278,6 @@ const extract_error_codes = (schema) => {
278
278
  * (`z.string()`) vs specific `z.literal()` or `z.enum()` error codes.
279
279
  * Use the output to prioritize progressive tightening of error schemas.
280
280
  *
281
- * @param surface - the app surface to audit
282
281
  * @returns audit entries for every route x status combination
283
282
  */
284
283
  export const audit_error_schema_tightness = (surface) => {
@@ -423,8 +422,6 @@ export const DEFAULT_ERROR_SCHEMA_TIGHTNESS = {
423
422
  * the configured threshold. Use `allowlist` and `ignore_statuses` to exclude
424
423
  * known exceptions during progressive tightening.
425
424
  *
426
- * @param surface - the app surface to check
427
- * @param options - threshold and exclusion configuration
428
425
  * @throws AssertionError listing every route × status combination whose error
429
426
  * schema specificity is below `min_specificity` (default `'enum'`) and is
430
427
  * not in `allowlist` or `ignore_statuses`.
package/dist/ui/CLAUDE.md CHANGED
@@ -238,7 +238,7 @@ destructive actions.
238
238
  `connected`. Internal `#last_seq` for SSE gap fill on reconnect.
239
239
  Methods: `fetch(options?)` (RPC), `fetch_permit_history`,
240
240
  `subscribe()` (opens `EventSource` at `#stream_url`, default
241
- `/api/admin/audit-log/stream`; prepends new events; refills gap
241
+ `/api/admin/audit/stream`; prepends new events; refills gap
242
242
  via `since_seq`), `disconnect()`. SSE stays on `EventSource` —
243
243
  streaming is not an RPC concern.
244
244
  - `admin_accounts_state.svelte.ts` — `AdminAccountsState` extends
@@ -32,7 +32,7 @@ export class AuditLogState extends Loadable {
32
32
  constructor(options) {
33
33
  super();
34
34
  this.#get_rpc = options?.get_rpc ?? (() => null);
35
- this.#stream_url = options?.stream_url ?? '/api/admin/audit-log/stream';
35
+ this.#stream_url = options?.stream_url ?? '/api/admin/audit/stream';
36
36
  }
37
37
  /** True when an RPC adapter is wired. `fetch`/`fetch_permit_history` no-op without it. */
38
38
  get has_rpc() {
@@ -18,10 +18,7 @@ export type Alignment = 'start' | 'center' | 'end';
18
18
  /**
19
19
  * Generates CSS positioning styles for UI elements.
20
20
  *
21
- * @param position - where to position the element ('left', 'right', etc.)
22
- * @param align - alignment along the position edge ('start', 'center', 'end')
23
21
  * @param offset - distance from the position (CSS value)
24
- * @returns CSS styles as a Record
25
22
  * @throws UnreachableError if `position` is not a known `Position` value
26
23
  */
27
24
  export declare const generate_position_styles: (position?: Position, align?: Alignment, offset?: string) => Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"position_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/position_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACpC,WAAU,QAAmB,EAC7B,QAAO,SAAoB,EAC3B,eAAY,KACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAiEvB,CAAC"}
1
+ {"version":3,"file":"position_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/position_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACpC,WAAU,QAAmB,EAC7B,QAAO,SAAoB,EAC3B,eAAY,KACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAiEvB,CAAC"}
@@ -7,10 +7,7 @@ import { UnreachableError } from '@fuzdev/fuz_util/error.js';
7
7
  /**
8
8
  * Generates CSS positioning styles for UI elements.
9
9
  *
10
- * @param position - where to position the element ('left', 'right', etc.)
11
- * @param align - alignment along the position edge ('start', 'center', 'end')
12
10
  * @param offset - distance from the position (CSS value)
13
- * @returns CSS styles as a Record
14
11
  * @throws UnreachableError if `position` is not a known `Position` value
15
12
  */
16
13
  export const generate_position_styles = (position = 'center', align = 'center', offset = '0') => {
@@ -35,8 +35,7 @@ export declare class SidebarState {
35
35
  * Show the sidebar and enable the toggle. The returned disposer hides
36
36
  * and disables on cleanup — pair with `$effect` for scoped activation.
37
37
  *
38
- * @returns cleanup function that deactivates and hides the sidebar
39
- * @mutates `this`
38
+ * @mutates `this` - sets `enabled` and `show_sidebar`; disposer clears both
40
39
  */
41
40
  activate(): () => void;
42
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/sidebar_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,YAAY;4BAAZ,YAAY;uBAAZ,YAAY,WAAZ,YAAY;CAAG,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;;IAKxB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAG1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;gBAEW,OAAO,CAAC,EAAE,mBAAmB;IAIzC,cAAc,CAAC,KAAK,GAAE,OAA4B,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,IAAI;CAQtB"}
1
+ {"version":3,"file":"sidebar_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/sidebar_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,YAAY;4BAAZ,YAAY;uBAAZ,YAAY,WAAZ,YAAY;CAAG,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;;IAKxB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAG1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;gBAEW,OAAO,CAAC,EAAE,mBAAmB;IAIzC,cAAc,CAAC,KAAK,GAAE,OAA4B,GAAG,IAAI;IAIzD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,IAAI;CAQtB"}
@@ -40,8 +40,7 @@ export class SidebarState {
40
40
  * Show the sidebar and enable the toggle. The returned disposer hides
41
41
  * and disables on cleanup — pair with `$effect` for scoped activation.
42
42
  *
43
- * @returns cleanup function that deactivates and hides the sidebar
44
- * @mutates `this`
43
+ * @mutates `this` - sets `enabled` and `show_sidebar`; disposer clears both
45
44
  */
46
45
  activate() {
47
46
  this.enabled = true;
@@ -9,10 +9,6 @@
9
9
  */
10
10
  /**
11
11
  * Fetch with credentials included (sends cookies).
12
- *
13
- * @param input - the request URL or Request object
14
- * @param init - optional fetch init options
15
- * @returns fetch response promise
16
12
  */
17
13
  export declare const ui_fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
18
14
  /**
@@ -21,9 +17,7 @@ export declare const ui_fetch: (input: RequestInfo | URL, init?: RequestInit) =>
21
17
  * Handles responses with non-JSON bodies (e.g. HTML 404 pages)
22
18
  * that would throw on `response.json()`.
23
19
  *
24
- * @param response - the non-ok response
25
- * @param fallback - fallback message when no `.error` field is found
26
- * @returns error message string
20
+ * @param fallback - message when no `.error` field is found
27
21
  */
28
22
  export declare const parse_response_error: (response: Response, fallback?: string) => Promise<string>;
29
23
  //# sourceMappingURL=ui_fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui_fetch.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,WAAW,GAAG,GAAG,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,QAAQ,CACxC,CAAC;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAChC,UAAU,QAAQ,EAClB,WAAW,MAAM,KACf,OAAO,CAAC,MAAM,CAQhB,CAAC"}
1
+ {"version":3,"file":"ui_fetch.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,WAAW,GAAG,GAAG,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,QAAQ,CACxC,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAChC,UAAU,QAAQ,EAClB,WAAW,MAAM,KACf,OAAO,CAAC,MAAM,CAQhB,CAAC"}
@@ -9,10 +9,6 @@
9
9
  */
10
10
  /**
11
11
  * Fetch with credentials included (sends cookies).
12
- *
13
- * @param input - the request URL or Request object
14
- * @param init - optional fetch init options
15
- * @returns fetch response promise
16
12
  */
17
13
  export const ui_fetch = (input, init) => fetch(input, { ...init, credentials: 'include' });
18
14
  /**
@@ -21,9 +17,7 @@ export const ui_fetch = (input, init) => fetch(input, { ...init, credentials: 'i
21
17
  * Handles responses with non-JSON bodies (e.g. HTML 404 pages)
22
18
  * that would throw on `response.json()`.
23
19
  *
24
- * @param response - the non-ok response
25
- * @param fallback - fallback message when no `.error` field is found
26
- * @returns error message string
20
+ * @param fallback - message when no `.error` field is found
27
21
  */
28
22
  export const parse_response_error = async (response, fallback) => {
29
23
  const default_message = fallback ?? `Error: ${response.status}`;
@@ -9,54 +9,42 @@
9
9
  /**
10
10
  * Format a timestamp as a relative time string.
11
11
  *
12
- * @param timestamp - a date value (`string`, `number`, or `Date`)
13
- * @param now - reference time in ms since epoch, defaults to `Date.now()`
14
12
  * @returns human-friendly relative time (e.g. "2m ago", "3h ago", "5d ago", "2mo ago", "1y ago")
15
13
  */
16
14
  export declare const format_relative_time: (timestamp: string | number | Date, now?: number) => string;
17
15
  /**
18
16
  * Format milliseconds as a human-friendly uptime string.
19
17
  *
20
- * @param ms - duration in milliseconds
21
18
  * @returns human-friendly duration (e.g. "45s", "12m", "3h 15m", "2d 5h")
22
19
  */
23
20
  export declare const format_uptime: (ms: number) => string;
24
21
  /**
25
22
  * Truncate a string by keeping the start and end, with a separator in the middle.
26
23
  *
27
- * @param str - the string to truncate
28
- * @param max_length - maximum total length including separator
29
- * @param separator - the middle separator
24
+ * @param max_length - total length including separator
30
25
  * @returns the truncated string, or the original if it fits
31
26
  */
32
27
  export declare const truncate_middle: (str: string, max_length: number, separator?: string) => string;
33
28
  /**
34
29
  * Truncate a UUID for display, keeping start and end visible.
35
30
  *
36
- * @param uuid - the UUID string to truncate
37
31
  * @returns a 12-character truncated UUID like `a1b2c…7890`
38
32
  */
39
33
  export declare const truncate_uuid: (uuid: string) => string;
40
34
  /**
41
35
  * Format an arbitrary value for table cell display.
42
- *
43
- * @param value - the value to format
44
- * @returns string representation suitable for UI display
45
36
  */
46
37
  export declare const format_value: (value: unknown) => string;
47
38
  /**
48
39
  * Format a timestamp as an absolute datetime string for title attributes.
49
40
  *
50
- * @param timestamp - a date value
51
41
  * @returns readable absolute datetime like `"2026-03-21 14:30:00 UTC"`
52
42
  */
53
43
  export declare const format_datetime_local: (timestamp: string | number | Date) => string;
54
44
  /**
55
45
  * Format audit event metadata for display based on event type.
56
46
  *
57
- * @param event_type - the audit event type (builtin or consumer-registered)
58
- * @param metadata - the metadata object (may be null)
59
- * @returns human-readable summary string
47
+ * @param event_type - builtin or consumer-registered audit event type
60
48
  */
61
49
  export declare const format_audit_metadata: (event_type: string, metadata: Record<string, unknown> | null) => string;
62
50
  //# sourceMappingURL=ui_format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui_format.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAChC,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,EACjC,MAAK,MAAmB,KACtB,MA2BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAY1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,YAAY,MAAM,EAAE,kBAAe,KAAG,MAOlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAS7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,KAAG,MAOzE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KACtC,MAuDF,CAAC"}
1
+ {"version":3,"file":"ui_format.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAChC,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,EACjC,MAAK,MAAmB,KACtB,MA2BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAY1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,YAAY,MAAM,EAAE,kBAAe,KAAG,MAOlF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAS7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,KAAG,MAOzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KACtC,MAuDF,CAAC"}
@@ -9,8 +9,6 @@
9
9
  /**
10
10
  * Format a timestamp as a relative time string.
11
11
  *
12
- * @param timestamp - a date value (`string`, `number`, or `Date`)
13
- * @param now - reference time in ms since epoch, defaults to `Date.now()`
14
12
  * @returns human-friendly relative time (e.g. "2m ago", "3h ago", "5d ago", "2mo ago", "1y ago")
15
13
  */
16
14
  export const format_relative_time = (timestamp, now = Date.now()) => {
@@ -49,7 +47,6 @@ export const format_relative_time = (timestamp, now = Date.now()) => {
49
47
  /**
50
48
  * Format milliseconds as a human-friendly uptime string.
51
49
  *
52
- * @param ms - duration in milliseconds
53
50
  * @returns human-friendly duration (e.g. "45s", "12m", "3h 15m", "2d 5h")
54
51
  */
55
52
  export const format_uptime = (ms) => {
@@ -72,9 +69,7 @@ export const format_uptime = (ms) => {
72
69
  /**
73
70
  * Truncate a string by keeping the start and end, with a separator in the middle.
74
71
  *
75
- * @param str - the string to truncate
76
- * @param max_length - maximum total length including separator
77
- * @param separator - the middle separator
72
+ * @param max_length - total length including separator
78
73
  * @returns the truncated string, or the original if it fits
79
74
  */
80
75
  export const truncate_middle = (str, max_length, separator = '…') => {
@@ -90,15 +85,11 @@ export const truncate_middle = (str, max_length, separator = '…') => {
90
85
  /**
91
86
  * Truncate a UUID for display, keeping start and end visible.
92
87
  *
93
- * @param uuid - the UUID string to truncate
94
88
  * @returns a 12-character truncated UUID like `a1b2c…7890`
95
89
  */
96
90
  export const truncate_uuid = (uuid) => truncate_middle(uuid, 12);
97
91
  /**
98
92
  * Format an arbitrary value for table cell display.
99
- *
100
- * @param value - the value to format
101
- * @returns string representation suitable for UI display
102
93
  */
103
94
  export const format_value = (value) => {
104
95
  if (value === null)
@@ -118,7 +109,6 @@ export const format_value = (value) => {
118
109
  /**
119
110
  * Format a timestamp as an absolute datetime string for title attributes.
120
111
  *
121
- * @param timestamp - a date value
122
112
  * @returns readable absolute datetime like `"2026-03-21 14:30:00 UTC"`
123
113
  */
124
114
  export const format_datetime_local = (timestamp) => {
@@ -133,9 +123,7 @@ export const format_datetime_local = (timestamp) => {
133
123
  /**
134
124
  * Format audit event metadata for display based on event type.
135
125
  *
136
- * @param event_type - the audit event type (builtin or consumer-registered)
137
- * @param metadata - the metadata object (may be null)
138
- * @returns human-readable summary string
126
+ * @param event_type - builtin or consumer-registered audit event type
139
127
  */
140
128
  export const format_audit_metadata = (event_type, metadata) => {
141
129
  if (!metadata)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_app",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "description": "fullstack app library",
5
5
  "glyph": "🗝",
6
6
  "logo": "logo.svg",
@@ -45,7 +45,7 @@
45
45
  "@fuzdev/blake3_wasm": "^0.1.0",
46
46
  "@fuzdev/fuz_code": "^0.45.1",
47
47
  "@fuzdev/fuz_css": "^0.59.0",
48
- "@fuzdev/fuz_ui": "^0.191.4",
48
+ "@fuzdev/fuz_ui": "^0.192.0",
49
49
  "@fuzdev/fuz_util": "^0.59.0",
50
50
  "@fuzdev/gro": "^0.199.0",
51
51
  "@jridgewell/trace-mapping": "^0.3.31",