You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@livequery/types

Package Overview
Dependencies
Maintainers
0
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@livequery/types - npm Package Compare versions

Comparing version
1.0.82
to
2.0.0
+34
-18
build/src/LivequeryRequest.d.ts
import { LivequeryBaseEntity } from "./LivequeryBaseEntity.js";
export type FlatObjectKeys<T, MatchType, K extends keyof T = keyof T> = (K extends string ? (T[K] extends MatchType ? K : (T[K] extends {
[key: string]: any;
} ? (`${K}.${FlatObjectKeys<T[K], MatchType>}`) : never)) : never);
export type ChainObjectKeys<T, MatchType, Delimiter extends string = ','> = (T extends {
[key: string]: any;
} ? (FlatObjectKeys<T, MatchType> | `${FlatObjectKeys<T, MatchType>}${Delimiter}${FlatObjectKeys<T, MatchType>}` | `${FlatObjectKeys<T, MatchType>}${Delimiter}${FlatObjectKeys<T, MatchType>}${Delimiter}${FlatObjectKeys<T, MatchType>}`) : never);
export type RequestMethod = 'put' | 'patch' | 'delete' | 'post';
type ConditionTypeBuilder<T, FieldType, MapWith extends string, ResultType = any> = {
[Key in keyof T as (T[Key] extends FieldType ? `${string & Key}:${MapWith}` : '')]: ResultType;
export type ConditionTypeBuilder<T, FieldType, MapWith extends string, ResultType = any> = {
[K in keyof T as `${FlatObjectKeys<T, FieldType>}:${MapWith}`]: ResultType;
};
export type Eq<T> = {
[key in keyof T]?: T[key];
export type Eq<T> = ConditionTypeBuilder<T, string | number | boolean, 'eq'> & {
[Key in keyof T as (T[Key] extends string | number | boolean ? Key : never)]: T[Key];
};
export type Neq<T> = ConditionTypeBuilder<T, any, 'ne'>;
export type Neq<T> = ConditionTypeBuilder<T, string | number | boolean, 'ne'>;
export type NumberNotEqual<T> = ConditionTypeBuilder<T, number, 'nne'>;
export type Lt<T> = ConditionTypeBuilder<T, number, 'lt', number>;

@@ -14,15 +21,26 @@ export type Lte<T> = ConditionTypeBuilder<T, number, 'lte', number>;

export type Gte<T> = ConditionTypeBuilder<T, number, 'gte', number>;
export type Visible<T> = ConditionTypeBuilder<T, any, 'select', 0 | 1>;
export type InArray<T> = ConditionTypeBuilder<T, number | string, 'in', Array<number | string>>;
export type NotInArray<T> = ConditionTypeBuilder<T, number | string, 'nin', Array<number | string>>;
export type Like<T> = ConditionTypeBuilder<T, string, 'like', string>;
export type Between<T> = ConditionTypeBuilder<T, number, 'between', [number, number]>;
export type FilterCondition<T> = Partial<Eq<T> & Neq<T> & Lt<T> & Lte<T> & Gt<T> & Gte<T> & InArray<T> & Like<T> & Between<T>>;
export type BasicQueryOption<T extends LivequeryBaseEntity = LivequeryBaseEntity> = {
_limit: number;
_cursor: any;
_order_by: keyof T;
_sort: 'asc' | 'desc';
_select: Array<keyof T>;
_search: string;
export type OrderBy<T> = ConditionTypeBuilder<T, number, 'order', 'asc' | 'desc'>;
export type FilterConditions<T> = Partial<(Eq<T> & NumberNotEqual<T> & Neq<T> & Lt<T> & Lte<T> & Gt<T> & Gte<T> & Visible<T> & InArray<T> & NotInArray<T> & Like<T> & OrderBy<T> & {
':and': FilterConditions<T>;
':or': FilterConditions<T>;
':not': FilterConditions<T>;
})>;
export type SummaryOperator<T> = 'count()' | `${'sum' | 'avg' | 'max' | 'min'}(${string})`;
export type GroupByOperator<T> = '' | `|${FlatObjectKeys<T, string | number>}`;
export type SummaryQuery<T> = {
[key: `::${string}`]: `${SummaryOperator<T>}${GroupByOperator<T>}${GroupByOperator<T>}`;
};
export type QueryOption<T extends LivequeryBaseEntity = LivequeryBaseEntity> = BasicQueryOption<T> & FilterCondition<T>;
export type BasicOptions = Partial<{
':limit': number;
':before': string;
':after': string;
':search': string;
':page': number;
':around': string;
}>;
export type QueryOption<T extends LivequeryBaseEntity = LivequeryBaseEntity> = (BasicOptions & SummaryQuery<T> & FilterConditions<T>);
export type LivequeryRequest<T extends LivequeryBaseEntity = LivequeryBaseEntity> = {

@@ -37,7 +55,5 @@ ref: string;

};
filters: Array<[string, string, any]>;
options: BasicQueryOption<T>;
options: QueryOption<T>;
method?: string;
body?: any;
};
export {};

@@ -10,16 +10,28 @@ import { LivequeryBaseEntity } from "./LivequeryBaseEntity.js";

};
export type ErrorInfo = {
export type Response<T> = {
data?: T;
error?: boolean;
code?: string;
message?: string;
helper_url?: string;
ms?: number;
};
export type Response<T> = {
data?: T;
error?: ErrorInfo;
};
export type Paging = {
n?: number;
has_more?: boolean;
next_cursor?: any;
has: {
next: boolean;
prev: boolean;
};
cursor: {
last?: string;
first?: string;
};
page: {
current: number;
total: number;
};
count: {
prev: number;
next: number;
current: number;
total: number;
};
};

@@ -30,11 +42,13 @@ export declare type QueryStream<T extends LivequeryBaseEntity = LivequeryBaseEntity> = Response<{

}>;
export type CollectionResponse<T> = Response<{
export type CollectionResponse<T, R extends {} = {}> = Response<Paging & {
summary: {
[key in keyof R]: number;
};
items: T[];
paging: Paging;
realtime_token?: string;
subscription_token?: string;
}>;
export type DocumentResponse<T> = Response<{
item: T;
realtime_token?: string;
subscription_token?: string;
}>;
export declare type QueryData<T extends LivequeryBaseEntity = LivequeryBaseEntity> = CollectionResponse<T> | DocumentResponse<T>;
import { LivequeryBaseEntity } from "./LivequeryBaseEntity.js";
import { QueryOption } from "./LivequeryRequest.js";
import { QueryStream } from "./LivequeryResponse.js";
import { DocumentResponse, QueryStream, Response } from "./LivequeryResponse.js";
import { Observable } from 'rxjs';

@@ -9,7 +9,7 @@ export type Transporter = {

};
get: <T>(ref: string, query?: any) => Promise<T>;
add: <T extends LivequeryBaseEntity, K = void>(ref: string, data: Partial<T>) => Promise<K>;
update: <T extends LivequeryBaseEntity, K = void>(ref: string, data: Partial<T>) => Promise<K>;
remove: (ref: string) => Promise<void | void>;
trigger: <Query, Payload, Response>(ref: string, name: string, query: Query, payload: Payload) => Promise<Response>;
get: <T extends LivequeryBaseEntity>(ref: string, query?: Partial<QueryOption<T>>) => Promise<T>;
add: <T extends {}>(ref: string, data: Partial<T>) => Promise<DocumentResponse<T & LivequeryBaseEntity>>;
update: <T extends {}>(ref: string, data: Partial<T>) => Promise<DocumentResponse<T & LivequeryBaseEntity>>;
remove: <T extends {}>(ref: string) => Promise<DocumentResponse<T & LivequeryBaseEntity>>;
trigger: <T extends {}>(ref: string, name: string, payload?: any, query?: any) => Promise<Response<T>>;
};

@@ -6,3 +6,3 @@ {

},
"version": "1.0.82",
"version": "2.0.0",
"description": "",

@@ -9,0 +9,0 @@ "type": "module",