http/surface_query.ts

Pure query functions over AppSurface data.

Usable in tests, the adversarial auth runner, and future surface explorer UI. Replaces duplicated inline .filter() patterns.

TODO @surface-explorer Used by test utilities (test_auth_surface, adversarial_input, surface_invariants) and SurfaceExplorer.svelte (surface_auth_summary, format_route_key). Several query functions (filter_authenticated_routes, filter_keeper_routes, routes_by_auth_type, filter_routes_by_prefix) are pre-built for richer surface explorer features and consumer test suites — leverage more as the surface UI matures.

Declarations
#

15 declarations

view source

filter_authenticated_routes
#

http/surface_query.ts view source

(surface: AppSurface): (AppSurfaceRoute & { auth: { type: "authenticated"; }; })[]

Filter routes that require basic authentication (no specific role).

surface

returns

(AppSurfaceRoute & { auth: { type: "authenticated"; }; })[]

filter_keeper_routes
#

http/surface_query.ts view source

(surface: AppSurface): (AppSurfaceRoute & { auth: { type: "keeper"; }; })[]

Filter routes that require keeper credentials.

surface

returns

(AppSurfaceRoute & { auth: { type: "keeper"; }; })[]

filter_mutation_routes
#

filter_protected_routes
#

filter_public_routes
#

filter_rate_limited_routes
#

filter_role_routes
#

http/surface_query.ts view source

(surface: AppSurface): (AppSurfaceRoute & { auth: { type: "role"; role: string; }; })[]

Filter all role-guarded routes (any role).

surface

returns

(AppSurfaceRoute & { auth: { type: "role"; role: string; }; })[]

filter_routes_by_prefix
#

filter_routes_for_role
#

http/surface_query.ts view source

(surface: AppSurface, role: string): (AppSurfaceRoute & { auth: { type: "role"; role: string; }; })[]

Filter routes that require a specific named role.

surface

role

type string

returns

(AppSurfaceRoute & { auth: { type: "role"; role: string; }; })[]

filter_routes_with_input
#

filter_routes_with_params
#

filter_routes_with_query
#

format_route_key
#

routes_by_auth_type
#

http/surface_query.ts view source

(surface: AppSurface): Map<string, AppSurfaceRoute[]>

Group routes by auth type.

surface

returns

Map<string, AppSurfaceRoute[]>

a map from auth type string to route arrays, with role routes keyed as 'role:name'

surface_auth_summary
#

http/surface_query.ts view source

(surface: AppSurface): { none: number; authenticated: number; role: Map<string, number>; keeper: number; }

Summarize route auth distribution across the surface.

surface

returns

{ none: number; authenticated: number; role: Map<string, number>; keeper: number; }

counts by auth type, with role counts broken out by role name

Imported by
#