@fuzdev/fuz_app 0.67.1 → 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.
- package/dist/actions/perform_action.d.ts.map +1 -1
- package/dist/actions/perform_action.js +10 -3
- package/dist/auth/CLAUDE.md +99 -5
- package/dist/auth/account_queries.d.ts +87 -4
- package/dist/auth/account_queries.d.ts.map +1 -1
- package/dist/auth/account_queries.js +107 -17
- package/dist/auth/account_schema.d.ts +19 -0
- package/dist/auth/account_schema.d.ts.map +1 -1
- package/dist/auth/account_schema.js +8 -0
- package/dist/auth/admin_action_specs.d.ts +170 -3
- package/dist/auth/admin_action_specs.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.js +148 -4
- package/dist/auth/admin_actions.d.ts +4 -14
- package/dist/auth/admin_actions.d.ts.map +1 -1
- package/dist/auth/admin_actions.js +246 -40
- package/dist/auth/audit_log_ddl.d.ts +10 -1
- package/dist/auth/audit_log_ddl.d.ts.map +1 -1
- package/dist/auth/audit_log_ddl.js +13 -4
- package/dist/auth/audit_log_schema.d.ts +34 -1
- package/dist/auth/audit_log_schema.d.ts.map +1 -1
- package/dist/auth/audit_log_schema.js +73 -0
- package/dist/auth/auth_ddl.d.ts +2 -2
- package/dist/auth/auth_ddl.d.ts.map +1 -1
- package/dist/auth/auth_ddl.js +10 -2
- package/dist/auth/cell_action_specs.d.ts +1295 -0
- package/dist/auth/cell_action_specs.d.ts.map +1 -0
- package/dist/auth/cell_action_specs.js +397 -0
- package/dist/auth/cell_actions.d.ts +63 -0
- package/dist/auth/cell_actions.d.ts.map +1 -0
- package/dist/auth/cell_actions.js +546 -0
- package/dist/auth/cell_audit_action_specs.d.ts +131 -0
- package/dist/auth/cell_audit_action_specs.d.ts.map +1 -0
- package/dist/auth/cell_audit_action_specs.js +70 -0
- package/dist/auth/cell_audit_actions.d.ts +18 -0
- package/dist/auth/cell_audit_actions.d.ts.map +1 -0
- package/dist/auth/cell_audit_actions.js +59 -0
- package/dist/auth/cell_audit_events.d.ts +28 -0
- package/dist/auth/cell_audit_events.d.ts.map +1 -0
- package/dist/auth/cell_audit_events.js +42 -0
- package/dist/auth/cell_audit_metadata.d.ts +48 -0
- package/dist/auth/cell_audit_metadata.d.ts.map +1 -0
- package/dist/auth/cell_audit_metadata.js +46 -0
- package/dist/auth/cell_authorize.d.ts +88 -0
- package/dist/auth/cell_authorize.d.ts.map +1 -0
- package/dist/auth/cell_authorize.js +172 -0
- package/dist/auth/cell_data_schema.d.ts +44 -0
- package/dist/auth/cell_data_schema.d.ts.map +1 -0
- package/dist/auth/cell_data_schema.js +42 -0
- package/dist/auth/cell_field_action_specs.d.ts +244 -0
- package/dist/auth/cell_field_action_specs.d.ts.map +1 -0
- package/dist/auth/cell_field_action_specs.js +136 -0
- package/dist/auth/cell_field_actions.d.ts +34 -0
- package/dist/auth/cell_field_actions.d.ts.map +1 -0
- package/dist/auth/cell_field_actions.js +153 -0
- package/dist/auth/cell_field_audit_metadata.d.ts +30 -0
- package/dist/auth/cell_field_audit_metadata.d.ts.map +1 -0
- package/dist/auth/cell_field_audit_metadata.js +28 -0
- package/dist/auth/cell_grant_action_specs.d.ts +333 -0
- package/dist/auth/cell_grant_action_specs.d.ts.map +1 -0
- package/dist/auth/cell_grant_action_specs.js +148 -0
- package/dist/auth/cell_grant_actions.d.ts +50 -0
- package/dist/auth/cell_grant_actions.d.ts.map +1 -0
- package/dist/auth/cell_grant_actions.js +208 -0
- package/dist/auth/cell_grant_audit_metadata.d.ts +75 -0
- package/dist/auth/cell_grant_audit_metadata.d.ts.map +1 -0
- package/dist/auth/cell_grant_audit_metadata.js +54 -0
- package/dist/auth/cell_item_action_specs.d.ts +331 -0
- package/dist/auth/cell_item_action_specs.d.ts.map +1 -0
- package/dist/auth/cell_item_action_specs.js +182 -0
- package/dist/auth/cell_item_actions.d.ts +37 -0
- package/dist/auth/cell_item_actions.d.ts.map +1 -0
- package/dist/auth/cell_item_actions.js +204 -0
- package/dist/auth/cell_item_audit_metadata.d.ts +35 -0
- package/dist/auth/cell_item_audit_metadata.d.ts.map +1 -0
- package/dist/auth/cell_item_audit_metadata.js +32 -0
- package/dist/auth/cell_relation_visibility.d.ts +32 -0
- package/dist/auth/cell_relation_visibility.d.ts.map +1 -0
- package/dist/auth/cell_relation_visibility.js +57 -0
- package/dist/auth/deps.d.ts +9 -0
- package/dist/auth/deps.d.ts.map +1 -1
- package/dist/auth/role_grant_queries.d.ts +30 -0
- package/dist/auth/role_grant_queries.d.ts.map +1 -1
- package/dist/auth/role_grant_queries.js +54 -0
- package/dist/auth/signup_routes.d.ts +0 -3
- package/dist/auth/signup_routes.d.ts.map +1 -1
- package/dist/auth/signup_routes.js +9 -3
- package/dist/auth/standard_rpc_actions.d.ts +5 -5
- package/dist/auth/standard_rpc_actions.js +4 -4
- package/dist/db/CLAUDE.md +118 -0
- package/dist/db/cell_audit_queries.d.ts +26 -0
- package/dist/db/cell_audit_queries.d.ts.map +1 -0
- package/dist/db/cell_audit_queries.js +53 -0
- package/dist/db/cell_ddl.d.ts +151 -0
- package/dist/db/cell_ddl.d.ts.map +1 -0
- package/dist/db/cell_ddl.js +247 -0
- package/dist/db/cell_field_queries.d.ts +105 -0
- package/dist/db/cell_field_queries.d.ts.map +1 -0
- package/dist/db/cell_field_queries.js +113 -0
- package/dist/db/cell_grant_queries.d.ts +132 -0
- package/dist/db/cell_grant_queries.d.ts.map +1 -0
- package/dist/db/cell_grant_queries.js +145 -0
- package/dist/db/cell_history_ddl.d.ts +38 -0
- package/dist/db/cell_history_ddl.d.ts.map +1 -0
- package/dist/db/cell_history_ddl.js +61 -0
- package/dist/db/cell_item_queries.d.ts +107 -0
- package/dist/db/cell_item_queries.d.ts.map +1 -0
- package/dist/db/cell_item_queries.js +119 -0
- package/dist/db/cell_queries.d.ts +327 -0
- package/dist/db/cell_queries.d.ts.map +1 -0
- package/dist/db/cell_queries.js +431 -0
- package/dist/db/fact_ddl.d.ts +38 -0
- package/dist/db/fact_ddl.d.ts.map +1 -0
- package/dist/db/fact_ddl.js +71 -0
- package/dist/db/fact_queries.d.ts +140 -0
- package/dist/db/fact_queries.d.ts.map +1 -0
- package/dist/db/fact_queries.js +161 -0
- package/dist/db/fact_store.d.ts +112 -0
- package/dist/db/fact_store.d.ts.map +1 -0
- package/dist/db/fact_store.js +225 -0
- package/dist/server/app_server.d.ts +1 -7
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/app_server.js +1 -5
- package/dist/server/env.d.ts +2 -0
- package/dist/server/env.d.ts.map +1 -1
- package/dist/server/env.js +6 -0
- package/dist/server/fact_write.d.ts +32 -0
- package/dist/server/fact_write.d.ts.map +1 -0
- package/dist/server/fact_write.js +56 -0
- package/dist/server/file_fact_fetcher.d.ts +42 -0
- package/dist/server/file_fact_fetcher.d.ts.map +1 -0
- package/dist/server/file_fact_fetcher.js +60 -0
- package/dist/server/file_fact_url.d.ts +53 -0
- package/dist/server/file_fact_url.d.ts.map +1 -0
- package/dist/server/file_fact_url.js +52 -0
- package/dist/server/serve_fact_route.d.ts +78 -0
- package/dist/server/serve_fact_route.d.ts.map +1 -0
- package/dist/server/serve_fact_route.js +205 -0
- package/dist/testing/CLAUDE.md +142 -6
- package/dist/testing/app_server.d.ts +46 -0
- package/dist/testing/app_server.d.ts.map +1 -1
- package/dist/testing/app_server.js +67 -8
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +67 -1
- package/dist/testing/cross_backend/account_lifecycle.d.ts +10 -0
- package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -0
- package/dist/testing/cross_backend/account_lifecycle.js +144 -0
- package/dist/testing/cross_backend/actor_lookup.d.ts +10 -0
- package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -0
- package/dist/testing/cross_backend/actor_lookup.js +83 -0
- package/dist/testing/cross_backend/actor_search.d.ts +6 -0
- package/dist/testing/cross_backend/actor_search.d.ts.map +1 -0
- package/dist/testing/cross_backend/actor_search.js +92 -0
- package/dist/testing/cross_backend/app_settings.d.ts +6 -0
- package/dist/testing/cross_backend/app_settings.d.ts.map +1 -0
- package/dist/testing/cross_backend/app_settings.js +95 -0
- package/dist/testing/cross_backend/backend_config.d.ts +1 -1
- package/dist/testing/cross_backend/capabilities.d.ts +29 -7
- package/dist/testing/cross_backend/capabilities.d.ts.map +1 -1
- package/dist/testing/cross_backend/capabilities.js +3 -1
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts +39 -0
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -0
- package/dist/testing/cross_backend/cell_cross_helpers.js +45 -0
- package/dist/testing/cross_backend/cell_crud.d.ts +4 -0
- package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -0
- package/dist/testing/cross_backend/cell_crud.js +168 -0
- package/dist/testing/cross_backend/cell_grant_role.d.ts +8 -0
- package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -0
- package/dist/testing/cross_backend/cell_grant_role.js +102 -0
- package/dist/testing/cross_backend/cell_relations.d.ts +4 -0
- package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -0
- package/dist/testing/cross_backend/cell_relations.js +229 -0
- package/dist/testing/cross_backend/conformance_case.d.ts +144 -0
- package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -0
- package/dist/testing/cross_backend/conformance_case.js +132 -0
- package/dist/testing/cross_backend/conformance_table.d.ts +46 -0
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -0
- package/dist/testing/cross_backend/conformance_table.js +199 -0
- package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_backend_configs.js +6 -2
- package/dist/testing/cross_backend/default_spine_surface.d.ts +17 -9
- package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_spine_surface.js +20 -12
- package/dist/testing/cross_backend/origin.d.ts +10 -0
- package/dist/testing/cross_backend/origin.d.ts.map +1 -0
- package/dist/testing/cross_backend/origin.js +73 -0
- package/dist/testing/cross_backend/setup.d.ts +22 -40
- package/dist/testing/cross_backend/setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.js +39 -5
- package/dist/testing/cross_backend/testing_reset_actions.d.ts +90 -2
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +91 -3
- package/dist/testing/cross_backend/xfail.d.ts +15 -0
- package/dist/testing/cross_backend/xfail.d.ts.map +1 -0
- package/dist/testing/cross_backend/xfail.js +37 -0
- package/dist/testing/entities.d.ts.map +1 -1
- package/dist/testing/entities.js +4 -0
- package/dist/testing/integration.d.ts +2 -3
- package/dist/testing/integration.d.ts.map +1 -1
- package/dist/testing/integration.js +20 -85
- package/dist/testing/rate_limiting.d.ts +1 -1
- package/dist/testing/rpc_helpers.d.ts +3 -3
- package/dist/testing/sse_round_trip.d.ts +1 -1
- package/dist/testing/stubs.d.ts.map +1 -1
- package/dist/testing/stubs.js +0 -1
- package/dist/testing/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/ws_round_trip.js +4 -0
- package/dist/ui/AdminAccounts.svelte +84 -35
- package/dist/ui/AdminAccounts.svelte.d.ts.map +1 -1
- package/dist/ui/AdminSessions.svelte +21 -23
- package/dist/ui/AdminSessions.svelte.d.ts.map +1 -1
- package/dist/ui/CLAUDE.md +17 -26
- package/dist/ui/OpenSignupToggle.svelte +2 -5
- package/dist/ui/OpenSignupToggle.svelte.d.ts.map +1 -1
- package/dist/ui/account_sessions_state.svelte.d.ts +9 -10
- package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/account_sessions_state.svelte.js +7 -17
- package/dist/ui/admin_accounts_state.svelte.d.ts +41 -20
- package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_accounts_state.svelte.js +52 -22
- package/dist/ui/admin_invites_state.svelte.d.ts +8 -11
- package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_invites_state.svelte.js +7 -16
- package/dist/ui/admin_rpc_adapters.d.ts +6 -2
- package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
- package/dist/ui/admin_rpc_adapters.js +5 -1
- package/dist/ui/admin_sessions_state.svelte.d.ts +6 -10
- package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_sessions_state.svelte.js +4 -14
- package/dist/ui/app_settings_state.svelte.d.ts +8 -12
- package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
- package/dist/ui/app_settings_state.svelte.js +6 -16
- package/dist/ui/audit_log_state.svelte.d.ts +9 -8
- package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
- package/dist/ui/audit_log_state.svelte.js +8 -20
- package/package.json +2 -2
|
@@ -25,28 +25,24 @@ export interface AppSettingsRpc {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Svelte context carrying the reactive `AppSettingsRpc` accessor. Mirrors
|
|
28
|
-
* `admin_accounts_rpc_context`.
|
|
29
|
-
*
|
|
28
|
+
* `admin_accounts_rpc_context`. `get()` throws when no provisioner ran above
|
|
29
|
+
* the component — the adapter is required.
|
|
30
30
|
*/
|
|
31
31
|
export declare const app_settings_rpc_context: {
|
|
32
|
-
get: () => () => AppSettingsRpc
|
|
33
|
-
|
|
32
|
+
get: (error_message?: string) => () => AppSettingsRpc;
|
|
33
|
+
get_maybe: () => (() => AppSettingsRpc) | undefined;
|
|
34
|
+
set: (value: () => AppSettingsRpc) => () => AppSettingsRpc;
|
|
34
35
|
};
|
|
35
36
|
export interface AppSettingsStateOptions {
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
* (the state reports a descriptive error when fetch/update fires).
|
|
39
|
-
*/
|
|
40
|
-
get_rpc?: () => AppSettingsRpc | null;
|
|
37
|
+
/** Reactive accessor for the RPC adapter. */
|
|
38
|
+
get_rpc: () => AppSettingsRpc;
|
|
41
39
|
}
|
|
42
40
|
export declare class AppSettingsState {
|
|
43
41
|
#private;
|
|
44
42
|
readonly list: AsyncSlot<void, string>;
|
|
45
43
|
readonly update: AsyncSlot<void, string>;
|
|
46
44
|
settings: AppSettingsWithUsernameJson | null;
|
|
47
|
-
constructor(options
|
|
48
|
-
/** True when an RPC adapter is wired. All ops require it. */
|
|
49
|
-
get has_rpc(): boolean;
|
|
45
|
+
constructor(options: AppSettingsStateOptions);
|
|
50
46
|
fetch(): Promise<void>;
|
|
51
47
|
update_open_signup(value: boolean): Promise<void>;
|
|
52
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_settings_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/app_settings_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7E;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;
|
|
1
|
+
{"version":3,"file":"app_settings_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/app_settings_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC7E;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;2CAAwB,cAAc;4BAAd,cAAc;uBAAd,cAAc,WAAd,cAAc;CAAG,CAAC;AAE/E,MAAM,WAAW,uBAAuB;IACvC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,cAAc,CAAC;CAC9B;AAED,qBAAa,gBAAgB;;IAG5B,QAAQ,CAAC,IAAI,0BAAyB;IACtC,QAAQ,CAAC,MAAM,0BAAyB;IAExC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAoB;gBAEpD,OAAO,EAAE,uBAAuB;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAMvD"}
|
|
@@ -15,37 +15,27 @@ import { create_context } from '@fuzdev/fuz_ui/context_helpers.js';
|
|
|
15
15
|
import { AsyncSlot } from './async_slot.svelte.js';
|
|
16
16
|
/**
|
|
17
17
|
* Svelte context carrying the reactive `AppSettingsRpc` accessor. Mirrors
|
|
18
|
-
* `admin_accounts_rpc_context`.
|
|
19
|
-
*
|
|
18
|
+
* `admin_accounts_rpc_context`. `get()` throws when no provisioner ran above
|
|
19
|
+
* the component — the adapter is required.
|
|
20
20
|
*/
|
|
21
|
-
export const app_settings_rpc_context = create_context(
|
|
21
|
+
export const app_settings_rpc_context = create_context();
|
|
22
22
|
export class AppSettingsState {
|
|
23
23
|
#get_rpc;
|
|
24
24
|
list = new AsyncSlot();
|
|
25
25
|
update = new AsyncSlot();
|
|
26
26
|
settings = $state.raw(null);
|
|
27
27
|
constructor(options) {
|
|
28
|
-
this.#get_rpc = options
|
|
29
|
-
}
|
|
30
|
-
/** True when an RPC adapter is wired. All ops require it. */
|
|
31
|
-
get has_rpc() {
|
|
32
|
-
return this.#get_rpc() !== null;
|
|
33
|
-
}
|
|
34
|
-
#require_rpc() {
|
|
35
|
-
const rpc = this.#get_rpc();
|
|
36
|
-
if (!rpc)
|
|
37
|
-
throw new Error('rpc adapter not wired');
|
|
38
|
-
return rpc;
|
|
28
|
+
this.#get_rpc = options.get_rpc;
|
|
39
29
|
}
|
|
40
30
|
async fetch() {
|
|
41
31
|
await this.list.run(async () => {
|
|
42
|
-
const { settings } = await this.#
|
|
32
|
+
const { settings } = await this.#get_rpc().get();
|
|
43
33
|
this.settings = settings;
|
|
44
34
|
});
|
|
45
35
|
}
|
|
46
36
|
async update_open_signup(value) {
|
|
47
37
|
await this.update.run(async () => {
|
|
48
|
-
const { settings } = await this.#
|
|
38
|
+
const { settings } = await this.#get_rpc().update({ open_signup: value });
|
|
49
39
|
this.settings = settings;
|
|
50
40
|
});
|
|
51
41
|
}
|
|
@@ -27,18 +27,21 @@ export interface AuditLogRpc {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Svelte context carrying the reactive `AuditLogRpc` accessor. Mirrors
|
|
30
|
-
* `admin_accounts_rpc_context`.
|
|
30
|
+
* `admin_accounts_rpc_context`. `get()` throws when no provisioner ran above
|
|
31
|
+
* the component — the adapter is required.
|
|
31
32
|
*/
|
|
32
33
|
export declare const audit_log_rpc_context: {
|
|
33
|
-
get: () => () => AuditLogRpc
|
|
34
|
-
|
|
34
|
+
get: (error_message?: string) => () => AuditLogRpc;
|
|
35
|
+
get_maybe: () => (() => AuditLogRpc) | undefined;
|
|
36
|
+
set: (value: () => AuditLogRpc) => () => AuditLogRpc;
|
|
35
37
|
};
|
|
36
38
|
export interface AuditLogStateOptions {
|
|
37
39
|
/**
|
|
38
40
|
* Reactive accessor for the RPC adapter. Matches the `get_rpc` pattern on
|
|
39
|
-
* `AdminAccountsState
|
|
41
|
+
* `AdminAccountsState`. The SSE stream uses `EventSource` directly and is
|
|
42
|
+
* independent of this adapter.
|
|
40
43
|
*/
|
|
41
|
-
get_rpc
|
|
44
|
+
get_rpc: () => AuditLogRpc;
|
|
42
45
|
/** SSE stream URL. Defaults to the shipped admin audit-log stream route. */
|
|
43
46
|
stream_url?: string;
|
|
44
47
|
}
|
|
@@ -51,9 +54,7 @@ export declare class AuditLogState {
|
|
|
51
54
|
readonly count: number;
|
|
52
55
|
/** Whether the SSE stream is currently connected. */
|
|
53
56
|
connected: boolean;
|
|
54
|
-
constructor(options
|
|
55
|
-
/** True when an RPC adapter is wired. `fetch`/`fetch_role_grant_history` no-op without it. */
|
|
56
|
-
get has_rpc(): boolean;
|
|
57
|
+
constructor(options: AuditLogStateOptions);
|
|
57
58
|
fetch(options?: AuditLogListInput): Promise<void>;
|
|
58
59
|
fetch_role_grant_history(limit?: number, offset?: number): Promise<void>;
|
|
59
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit_log_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/audit_log_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAEX,8BAA8B,EAC9B,yBAAyB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,+BAA+B,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjE,kBAAkB,EAAE,CACnB,KAAK,CAAC,EAAE,6BAA6B,KACjC,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC7C;AAED
|
|
1
|
+
{"version":3,"file":"audit_log_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/audit_log_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,EAEX,8BAA8B,EAC9B,yBAAyB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,+BAA+B,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjE,kBAAkB,EAAE,CACnB,KAAK,CAAC,EAAE,6BAA6B,KACjC,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,WAAW;4BAAX,WAAW;uBAAX,WAAW,WAAX,WAAW;CAAG,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACpC;;;;OAIG;IACH,OAAO,EAAE,MAAM,WAAW,CAAC;IAC3B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;;IAGzB,QAAQ,CAAC,IAAI,0BAAyB;IACtC,QAAQ,CAAC,kBAAkB,0BAAyB;IAEpD,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAkB;IAC/D,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAkB;IAE7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAgC;IAEtD,qDAAqD;IACrD,SAAS,UAAqB;gBAWlB,OAAO,EAAE,oBAAoB;IAKnC,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9E;;;;;;;;OAQG;IACH,SAAS,IAAI,MAAM,IAAI;IA0CvB;;;;OAIG;IACH,UAAU,IAAI,IAAI;CA+BlB"}
|
|
@@ -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`.
|
|
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(
|
|
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
|
|
40
|
-
this.#stream_url = options
|
|
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.#
|
|
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.#
|
|
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
|
|
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.
|
|
3
|
+
"version": "0.69.0",
|
|
4
4
|
"description": "fullstack app library",
|
|
5
5
|
"glyph": "🗝",
|
|
6
6
|
"logo": "logo.svg",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@fuzdev/fuz_code": "^0.45.1",
|
|
62
62
|
"@fuzdev/fuz_css": "^0.59.0",
|
|
63
63
|
"@fuzdev/fuz_ui": "^0.192.0",
|
|
64
|
-
"@fuzdev/fuz_util": "^0.61.
|
|
64
|
+
"@fuzdev/fuz_util": "^0.61.1",
|
|
65
65
|
"@fuzdev/gro": "^0.199.1",
|
|
66
66
|
"@hono/node-server": "^1.19.14",
|
|
67
67
|
"@hono/node-ws": "^1.3.1",
|