UNPKG

@adventurelabs/scout-core

Version:

Core utilities and helpers for Adventure Labs Scout applications

884 lines (883 loc) 31.8 kB
import { Database } from "../types/supabase"; export declare function newServerClient(): Promise<import("@supabase/supabase-js").SupabaseClient<Database, "public", { Tables: { actions: { Row: { id: number; inserted_at: string; opcode: number; trigger: string[]; zone_id: number; }; Insert: { id?: number; inserted_at?: string; opcode: number; trigger: string[]; zone_id: number; }; Update: { id?: number; inserted_at?: string; opcode?: number; trigger?: string[]; zone_id?: number; }; Relationships: [{ foreignKeyName: "actions_zone_id_fkey"; columns: ["zone_id"]; isOneToOne: false; referencedRelation: "zones"; referencedColumns: ["id"]; }, { foreignKeyName: "actions_zone_id_fkey"; columns: ["zone_id"]; isOneToOne: false; referencedRelation: "zones_and_actions"; referencedColumns: ["id"]; }]; }; connectivity: { Row: { altitude: number; h11_index: string; h12_index: string; h13_index: string; h14_index: string; heading: number; id: number; inserted_at: string; location: unknown; noise: number; session_id: number; signal: number; timestamp_start: string; }; Insert: { altitude: number; h11_index: string; h12_index: string; h13_index: string; h14_index: string; heading: number; id?: number; inserted_at?: string; location: unknown; noise: number; session_id: number; signal: number; timestamp_start: string; }; Update: { altitude?: number; h11_index?: string; h12_index?: string; h13_index?: string; h14_index?: string; heading?: number; id?: number; inserted_at?: string; location?: unknown; noise?: number; session_id?: number; signal?: number; timestamp_start?: string; }; Relationships: [{ foreignKeyName: "connectivity_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; devices: { Row: { altitude: number | null; created_by: string; description: string; device_type: Database["public"]["Enums"]["device_type"]; domain_name: string | null; heading: number | null; herd_id: number; id: number; inserted_at: string; location: unknown | null; name: string; video_publisher_token: string | null; video_subscriber_token: string | null; }; Insert: { altitude?: number | null; created_by: string; description: string; device_type?: Database["public"]["Enums"]["device_type"]; domain_name?: string | null; heading?: number | null; herd_id: number; id?: number; inserted_at?: string; location?: unknown | null; name: string; video_publisher_token?: string | null; video_subscriber_token?: string | null; }; Update: { altitude?: number | null; created_by?: string; description?: string; device_type?: Database["public"]["Enums"]["device_type"]; domain_name?: string | null; heading?: number | null; herd_id?: number; id?: number; inserted_at?: string; location?: unknown | null; name?: string; video_publisher_token?: string | null; video_subscriber_token?: string | null; }; Relationships: [{ foreignKeyName: "devices_created_by_fkey"; columns: ["created_by"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }, { foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; events: { Row: { altitude: number; device_id: number; earthranger_url: string | null; file_path: string | null; heading: number; id: number; inserted_at: string; is_public: boolean; location: unknown | null; media_type: Database["public"]["Enums"]["media_type"]; media_url: string | null; message: string | null; session_id: number | null; timestamp_observation: string; }; Insert: { altitude?: number; device_id: number; earthranger_url?: string | null; file_path?: string | null; heading?: number; id?: number; inserted_at?: string; is_public?: boolean; location?: unknown | null; media_type?: Database["public"]["Enums"]["media_type"]; media_url?: string | null; message?: string | null; session_id?: number | null; timestamp_observation?: string; }; Update: { altitude?: number; device_id?: number; earthranger_url?: string | null; file_path?: string | null; heading?: number; id?: number; inserted_at?: string; is_public?: boolean; location?: unknown | null; media_type?: Database["public"]["Enums"]["media_type"]; media_url?: string | null; message?: string | null; session_id?: number | null; timestamp_observation?: string; }; Relationships: [{ foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; herds: { Row: { created_by: string; description: string; earthranger_domain: string | null; earthranger_token: string | null; id: number; inserted_at: string; is_public: boolean; slug: string; video_publisher_token: string | null; video_server_url: string | null; video_subscriber_token: string | null; }; Insert: { created_by: string; description: string; earthranger_domain?: string | null; earthranger_token?: string | null; id?: number; inserted_at?: string; is_public?: boolean; slug: string; video_publisher_token?: string | null; video_server_url?: string | null; video_subscriber_token?: string | null; }; Update: { created_by?: string; description?: string; earthranger_domain?: string | null; earthranger_token?: string | null; id?: number; inserted_at?: string; is_public?: boolean; slug?: string; video_publisher_token?: string | null; video_server_url?: string | null; video_subscriber_token?: string | null; }; Relationships: [{ foreignKeyName: "herds_created_by_fkey"; columns: ["created_by"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; layers: { Row: { created_at: string; features: import("../types/supabase").Json; herd_id: number; id: number; }; Insert: { created_at?: string; features: import("../types/supabase").Json; herd_id: number; id?: number; }; Update: { created_at?: string; features?: import("../types/supabase").Json; herd_id?: number; id?: number; }; Relationships: [{ foreignKeyName: "layers_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; plans: { Row: { herd_id: number; id: number; inserted_at: string; instructions: string; name: string; plan_type: Database["public"]["Enums"]["plan_type"]; }; Insert: { herd_id: number; id?: number; inserted_at?: string; instructions: string; name: string; plan_type?: Database["public"]["Enums"]["plan_type"]; }; Update: { herd_id?: number; id?: number; inserted_at?: string; instructions?: string; name?: string; plan_type?: Database["public"]["Enums"]["plan_type"]; }; Relationships: [{ foreignKeyName: "plans_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; sessions: { Row: { altitude_average: number; altitude_max: number; altitude_min: number; device_id: number; distance_max_from_start: number; distance_total: number; earthranger_url: string | null; file_paths: string[] | null; id: number; inserted_at: string; locations: unknown; software_version: string; timestamp_end: string; timestamp_start: string; velocity_average: number; velocity_max: number; velocity_min: number; }; Insert: { altitude_average: number; altitude_max: number; altitude_min: number; device_id: number; distance_max_from_start: number; distance_total: number; earthranger_url?: string | null; file_paths?: string[] | null; id?: number; inserted_at?: string; locations: unknown; software_version: string; timestamp_end: string; timestamp_start: string; velocity_average: number; velocity_max: number; velocity_min: number; }; Update: { altitude_average?: number; altitude_max?: number; altitude_min?: number; device_id?: number; distance_max_from_start?: number; distance_total?: number; earthranger_url?: string | null; file_paths?: string[] | null; id?: number; inserted_at?: string; locations?: unknown; software_version?: string; timestamp_end?: string; timestamp_start?: string; velocity_average?: number; velocity_max?: number; velocity_min?: number; }; Relationships: [{ foreignKeyName: "sessions_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }]; }; tags: { Row: { class_name: string; conf: number; event_id: number; height: number; id: number; inserted_at: string; observation_type: Database["public"]["Enums"]["tag_observation_type"]; width: number; x: number; y: number; }; Insert: { class_name: string; conf: number; event_id: number; height?: number; id?: number; inserted_at?: string; observation_type: Database["public"]["Enums"]["tag_observation_type"]; width: number; x: number; y: number; }; Update: { class_name?: string; conf?: number; event_id?: number; height?: number; id?: number; inserted_at?: string; observation_type?: Database["public"]["Enums"]["tag_observation_type"]; width?: number; x?: number; y?: number; }; Relationships: [{ foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events"; referencedColumns: ["id"]; }, { foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events_with_tags"; referencedColumns: ["id"]; }, { foreignKeyName: "tags_event_id_fkey"; columns: ["event_id"]; isOneToOne: false; referencedRelation: "events_with_tags_by_session"; referencedColumns: ["id"]; }]; }; users: { Row: { id: string; username: string | null; }; Insert: { id: string; username?: string | null; }; Update: { id?: string; username?: string | null; }; Relationships: []; }; users_roles_per_herd: { Row: { herd_id: number; id: number; inserted_at: string; role: Database["public"]["Enums"]["role"]; user_id: string; }; Insert: { herd_id: number; id?: number; inserted_at?: string; role: Database["public"]["Enums"]["role"]; user_id: string; }; Update: { herd_id?: number; id?: number; inserted_at?: string; role?: Database["public"]["Enums"]["role"]; user_id?: string; }; Relationships: [{ foreignKeyName: "users_roles_per_herd_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "users_roles_per_herd_user_id_fkey"; columns: ["user_id"]; isOneToOne: false; referencedRelation: "users"; referencedColumns: ["id"]; }]; }; zones: { Row: { herd_id: number; id: number; inserted_at: string; region: unknown; }; Insert: { herd_id: number; id?: number; inserted_at?: string; region: unknown; }; Update: { herd_id?: number; id?: number; inserted_at?: string; region?: unknown; }; Relationships: [{ foreignKeyName: "zones_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; }; Views: { events_with_tags: { Row: { altitude: number | null; device_id: number | null; earthranger_url: string | null; file_path: string | null; heading: number | null; herd_id: number | null; id: number | null; inserted_at: string | null; is_public: boolean | null; location: unknown | null; media_type: Database["public"]["Enums"]["media_type"] | null; media_url: string | null; message: string | null; session_id: number | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; timestamp_observation: string | null; }; Relationships: [{ foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; events_with_tags_by_session: { Row: { altitude: number | null; device_id: number | null; earthranger_url: string | null; file_path: string | null; heading: number | null; herd_id: number | null; id: number | null; inserted_at: string | null; is_public: boolean | null; location: unknown | null; media_type: Database["public"]["Enums"]["media_type"] | null; media_url: string | null; message: string | null; session_id: number | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; timestamp_observation: string | null; }; Relationships: [{ foreignKeyName: "devices_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }, { foreignKeyName: "events_device_id_fkey"; columns: ["device_id"]; isOneToOne: false; referencedRelation: "devices"; referencedColumns: ["id"]; }, { foreignKeyName: "events_session_id_fkey"; columns: ["session_id"]; isOneToOne: false; referencedRelation: "sessions"; referencedColumns: ["id"]; }]; }; zones_and_actions: { Row: { actions: Database["public"]["Tables"]["actions"]["Row"][] | null; herd_id: number | null; id: number | null; inserted_at: string | null; region: unknown | null; }; Relationships: [{ foreignKeyName: "zones_herd_id_fkey"; columns: ["herd_id"]; isOneToOne: false; referencedRelation: "herds"; referencedColumns: ["id"]; }]; }; }; Functions: { get_connectivity_with_coordinates: { Args: { session_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["connectivity_with_coordinates"][]; }; get_device_by_api_key: { Args: { device_api_key: string; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"]; }; get_device_by_id: { Args: { device_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"]; }; get_device_id_from_key: { Args: { device_api_key: string; }; Returns: number; }; get_devices_for_herd: { Args: { herd_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["device_pretty_location"][]; }; get_events_and_tags_for_device: { Args: { device_id_caller: number; limit_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; }; get_events_and_tags_for_devices_batch: { Args: { device_ids: number[]; limit_per_device?: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; }; get_events_and_tags_for_herd: { Args: { herd_id_caller: number; limit_caller: number; offset_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; }; get_events_and_tags_for_session: { Args: { session_id_caller: number; limit_caller: number; offset_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][]; }; get_events_with_tags_for_herd: { Args: { herd_id_caller: number; offset_caller: number; limit_caller: number; }; Returns: Database["public"]["CompositeTypes"]["event_with_tags"][]; }; get_sessions_with_coordinates: { Args: { herd_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][]; }; get_sessions_with_coordinates_by_device: { Args: { device_id_caller: number; }; Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][]; }; get_total_events_for_session: { Args: { session_id_caller: number; }; Returns: number; }; get_total_events_for_herd_with_session_filter: { Args: { herd_id_caller: number; exclude_session_events: boolean; }; Returns: number; }; get_zones_and_actions_for_herd: { Args: { herd_id_caller: number; limit_caller: number; offset_caller: number; }; Returns: Database["public"]["CompositeTypes"]["zones_and_actions_pretty_location"][]; }; load_api_keys: { Args: { id_of_device: number; }; Returns: string[]; }; load_api_keys_batch: { Args: { device_ids: number[]; }; Returns: { device_id: number; api_key_id: string; api_key_key: string; }[]; }; load_api_keys_old: { Args: { id_of_device: string; }; Returns: string[]; }; remove_rls_broadcast_triggers: { Args: Record<PropertyKey, never>; Returns: undefined; }; }; Enums: { app_permission: "herds.delete" | "events.delete"; device_type: "trail_camera" | "drone_fixed_wing" | "drone_quad" | "gps_tracker" | "sentry_tower" | "smart_buoy" | "radio_mesh_base_station" | "radio_mesh_repeater" | "unknown"; media_type: "image" | "video" | "audio" | "text"; plan_type: "mission" | "fence" | "rally" | "markov"; role: "admin" | "viewer" | "editor"; tag_observation_type: "manual" | "auto"; user_status: "ONLINE" | "OFFLINE"; }; CompositeTypes: { connectivity_with_coordinates: { id: number | null; session_id: number | null; inserted_at: string | null; timestamp_start: string | null; signal: number | null; noise: number | null; altitude: number | null; heading: number | null; latitude: number | null; longitude: number | null; h14_index: string | null; h13_index: string | null; h12_index: string | null; h11_index: string | null; }; device_pretty_location: { id: number | null; inserted_at: string | null; created_by: string | null; herd_id: number | null; device_type: Database["public"]["Enums"]["device_type"] | null; domain_name: string | null; location: string | null; altitude: number | null; heading: number | null; name: string | null; description: string | null; latitude: number | null; longitude: number | null; }; event_and_tags: { id: number | null; inserted_at: string | null; message: string | null; media_url: string | null; latitude: number | null; longitude: number | null; altitude: number | null; heading: number | null; media_type: Database["public"]["Enums"]["media_type"] | null; device_id: number | null; timestamp_observation: string | null; is_public: boolean | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; herd_id: number | null; }; event_and_tags_pretty_location: { id: number | null; inserted_at: string | null; message: string | null; media_url: string | null; file_path: string | null; latitude: number | null; longitude: number | null; earthranger_url: string | null; altitude: number | null; heading: number | null; media_type: Database["public"]["Enums"]["media_type"] | null; device_id: number | null; timestamp_observation: string | null; is_public: boolean | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; herd_id: number | null; }; event_plus_tags: { id: number | null; inserted_at: string | null; message: string | null; media_url: string | null; location: unknown | null; earthranger_url: string | null; altitude: number | null; heading: number | null; media_type: Database["public"]["Enums"]["media_type"] | null; device_id: number | null; timestamp_observation: string | null; is_public: boolean | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; herd_id: number | null; }; event_with_tags: { id: number | null; inserted_at: string | null; message: string | null; media_url: string | null; latitude: number | null; longitude: number | null; altitude: number | null; heading: number | null; media_type: Database["public"]["Enums"]["media_type"] | null; device_id: number | null; timestamp_observation: string | null; is_public: boolean | null; tags: Database["public"]["Tables"]["tags"]["Row"][] | null; }; session_with_coordinates: { id: number | null; device_id: number | null; timestamp_start: string | null; timestamp_end: string | null; inserted_at: string | null; software_version: string | null; locations_geojson: import("../types/supabase").Json | null; altitude_max: number | null; altitude_min: number | null; altitude_average: number | null; velocity_max: number | null; velocity_min: number | null; velocity_average: number | null; distance_total: number | null; distance_max_from_start: number | null; }; zones_and_actions_pretty_location: { id: number | null; inserted_at: string | null; region: string | null; herd_id: number | null; actions: Database["public"]["Tables"]["actions"]["Row"][] | null; }; }; }>>;