@fuzdev/fuz_app 0.68.0 → 0.69.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 (95) hide show
  1. package/dist/actions/perform_action.d.ts.map +1 -1
  2. package/dist/actions/perform_action.js +10 -3
  3. package/dist/auth/admin_action_specs.d.ts +2 -3
  4. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  5. package/dist/auth/admin_action_specs.js +2 -3
  6. package/dist/auth/admin_actions.d.ts +4 -14
  7. package/dist/auth/admin_actions.d.ts.map +1 -1
  8. package/dist/auth/admin_actions.js +28 -36
  9. package/dist/auth/signup_routes.d.ts +0 -3
  10. package/dist/auth/signup_routes.d.ts.map +1 -1
  11. package/dist/auth/signup_routes.js +9 -3
  12. package/dist/auth/standard_rpc_actions.d.ts +5 -5
  13. package/dist/auth/standard_rpc_actions.js +4 -4
  14. package/dist/server/app_server.d.ts +1 -7
  15. package/dist/server/app_server.d.ts.map +1 -1
  16. package/dist/server/app_server.js +1 -5
  17. package/dist/testing/CLAUDE.md +85 -2
  18. package/dist/testing/app_server.d.ts +34 -0
  19. package/dist/testing/app_server.d.ts.map +1 -1
  20. package/dist/testing/app_server.js +31 -6
  21. package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
  22. package/dist/testing/cross_backend/account_lifecycle.js +69 -1
  23. package/dist/testing/cross_backend/actor_lookup.d.ts +10 -0
  24. package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -0
  25. package/dist/testing/cross_backend/actor_lookup.js +83 -0
  26. package/dist/testing/cross_backend/actor_search.d.ts +6 -0
  27. package/dist/testing/cross_backend/actor_search.d.ts.map +1 -0
  28. package/dist/testing/cross_backend/actor_search.js +92 -0
  29. package/dist/testing/cross_backend/app_settings.d.ts +6 -0
  30. package/dist/testing/cross_backend/app_settings.d.ts.map +1 -0
  31. package/dist/testing/cross_backend/app_settings.js +95 -0
  32. package/dist/testing/cross_backend/backend_config.d.ts +1 -1
  33. package/dist/testing/cross_backend/capabilities.d.ts +0 -9
  34. package/dist/testing/cross_backend/capabilities.d.ts.map +1 -1
  35. package/dist/testing/cross_backend/capabilities.js +0 -1
  36. package/dist/testing/cross_backend/cell_grant_role.d.ts +8 -0
  37. package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -0
  38. package/dist/testing/cross_backend/cell_grant_role.js +102 -0
  39. package/dist/testing/cross_backend/conformance_case.d.ts +144 -0
  40. package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -0
  41. package/dist/testing/cross_backend/conformance_case.js +132 -0
  42. package/dist/testing/cross_backend/conformance_table.d.ts +46 -0
  43. package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -0
  44. package/dist/testing/cross_backend/conformance_table.js +199 -0
  45. package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
  46. package/dist/testing/cross_backend/default_backend_configs.js +0 -2
  47. package/dist/testing/cross_backend/default_spine_surface.d.ts +17 -9
  48. package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
  49. package/dist/testing/cross_backend/default_spine_surface.js +20 -12
  50. package/dist/testing/cross_backend/origin.d.ts +10 -0
  51. package/dist/testing/cross_backend/origin.d.ts.map +1 -0
  52. package/dist/testing/cross_backend/origin.js +73 -0
  53. package/dist/testing/cross_backend/setup.d.ts +22 -40
  54. package/dist/testing/cross_backend/setup.d.ts.map +1 -1
  55. package/dist/testing/cross_backend/setup.js +34 -5
  56. package/dist/testing/cross_backend/testing_reset_actions.d.ts +90 -2
  57. package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
  58. package/dist/testing/cross_backend/testing_reset_actions.js +91 -3
  59. package/dist/testing/cross_backend/xfail.d.ts +15 -0
  60. package/dist/testing/cross_backend/xfail.d.ts.map +1 -0
  61. package/dist/testing/cross_backend/xfail.js +37 -0
  62. package/dist/testing/integration.d.ts +2 -3
  63. package/dist/testing/integration.d.ts.map +1 -1
  64. package/dist/testing/integration.js +20 -85
  65. package/dist/testing/rate_limiting.d.ts +1 -1
  66. package/dist/testing/rpc_helpers.d.ts +3 -3
  67. package/dist/testing/sse_round_trip.d.ts +1 -1
  68. package/dist/testing/stubs.d.ts.map +1 -1
  69. package/dist/testing/stubs.js +0 -1
  70. package/dist/ui/AdminAccounts.svelte +74 -83
  71. package/dist/ui/AdminAccounts.svelte.d.ts.map +1 -1
  72. package/dist/ui/AdminSessions.svelte +21 -23
  73. package/dist/ui/AdminSessions.svelte.d.ts.map +1 -1
  74. package/dist/ui/CLAUDE.md +17 -26
  75. package/dist/ui/OpenSignupToggle.svelte +2 -5
  76. package/dist/ui/OpenSignupToggle.svelte.d.ts.map +1 -1
  77. package/dist/ui/account_sessions_state.svelte.d.ts +9 -10
  78. package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
  79. package/dist/ui/account_sessions_state.svelte.js +7 -17
  80. package/dist/ui/admin_accounts_state.svelte.d.ts +12 -19
  81. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
  82. package/dist/ui/admin_accounts_state.svelte.js +10 -24
  83. package/dist/ui/admin_invites_state.svelte.d.ts +8 -11
  84. package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
  85. package/dist/ui/admin_invites_state.svelte.js +7 -16
  86. package/dist/ui/admin_sessions_state.svelte.d.ts +6 -10
  87. package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
  88. package/dist/ui/admin_sessions_state.svelte.js +4 -14
  89. package/dist/ui/app_settings_state.svelte.d.ts +8 -12
  90. package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
  91. package/dist/ui/app_settings_state.svelte.js +6 -16
  92. package/dist/ui/audit_log_state.svelte.d.ts +9 -8
  93. package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
  94. package/dist/ui/audit_log_state.svelte.js +8 -20
  95. package/package.json +1 -1
@@ -17,9 +17,10 @@ import { create_context } from '@fuzdev/fuz_ui/context_helpers.js';
17
17
  import { AsyncSlot } from './async_slot.svelte.js';
18
18
  /**
19
19
  * Svelte context carrying the reactive `AuditLogRpc` accessor. Mirrors
20
- * `admin_accounts_rpc_context`. Unset context falls back to `() => null`.
20
+ * `admin_accounts_rpc_context`. `get()` throws when no provisioner ran above
21
+ * the component — the adapter is required.
21
22
  */
22
- export const audit_log_rpc_context = create_context(() => () => null);
23
+ export const audit_log_rpc_context = create_context();
23
24
  export class AuditLogState {
24
25
  #get_rpc;
25
26
  list = new AsyncSlot();
@@ -36,29 +37,19 @@ export class AuditLogState {
36
37
  /** Path to the SSE stream endpoint. */
37
38
  #stream_url;
38
39
  constructor(options) {
39
- this.#get_rpc = options?.get_rpc ?? (() => null);
40
- this.#stream_url = options?.stream_url ?? '/api/admin/audit/stream';
41
- }
42
- /** True when an RPC adapter is wired. `fetch`/`fetch_role_grant_history` no-op without it. */
43
- get has_rpc() {
44
- return this.#get_rpc() !== null;
45
- }
46
- #require_rpc() {
47
- const rpc = this.#get_rpc();
48
- if (!rpc)
49
- throw new Error('rpc adapter not wired');
50
- return rpc;
40
+ this.#get_rpc = options.get_rpc;
41
+ this.#stream_url = options.stream_url ?? '/api/admin/audit/stream';
51
42
  }
52
43
  async fetch(options) {
53
44
  await this.list.run(async () => {
54
- const { events } = await this.#require_rpc().list(options);
45
+ const { events } = await this.#get_rpc().list(options);
55
46
  this.events = events;
56
47
  this.#update_last_seq(events);
57
48
  });
58
49
  }
59
50
  async fetch_role_grant_history(limit, offset) {
60
51
  await this.role_grant_history.run(async () => {
61
- const { events } = await this.#require_rpc().role_grant_history({ limit, offset });
52
+ const { events } = await this.#get_rpc().role_grant_history({ limit, offset });
62
53
  this.role_grant_history_events = events;
63
54
  });
64
55
  }
@@ -125,11 +116,8 @@ export class AuditLogState {
125
116
  }
126
117
  /** Fetch events missed during disconnection, keyed by `since_seq`. */
127
118
  async #fill_gap(since_seq) {
128
- const rpc = this.#get_rpc();
129
- if (!rpc)
130
- return;
131
119
  try {
132
- const { events: gap_events } = await rpc.list({ since_seq, limit: 200 });
120
+ const { events: gap_events } = await this.#get_rpc().list({ since_seq, limit: 200 });
133
121
  if (gap_events.length === 0)
134
122
  return;
135
123
  // merge — deduplicate by id, keep newest-first order
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_app",
3
- "version": "0.68.0",
3
+ "version": "0.69.0",
4
4
  "description": "fullstack app library",
5
5
  "glyph": "🗝",
6
6
  "logo": "logo.svg",