New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@orbitalhq/orbital-client

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@orbitalhq/orbital-client - npm Package Compare versions

Comparing version 0.1.0-alpha.2 to 0.1.1

LICENSE

22

bin/orbital-generate.js

@@ -5,2 +5,4 @@ #! /usr/bin/env node

const prettier = require('prettier');
const filePath = path.join(process.cwd(), 'orbital.config.json');

@@ -10,5 +12,5 @@

return new Promise((resolve, reject) => {
console.log(`Reading the taxonomy from the configured schema server in ${config.schemaServerUrl}.`);
const client = require(config.schemaServerUrl.includes('https') ? 'https' : 'http');
client.get(`${config.schemaServerUrl}api/taxonomy/typescript`, (res) => {
console.log(`Reading the taxonomy from the configured Orbital server in ${config.orbitalServerUrl}.`);
const client = require(config.orbitalServerUrl.includes('https') ? 'https' : 'http');
client.get(`${config.orbitalServerUrl}api/taxonomy/typescript`, (res) => {
if (res.statusCode !== 200) {

@@ -48,4 +50,14 @@ res.resume();

).then(taxonomy => {
return new Promise((resolve, reject) => {
fs.writeFile('taxonomy.ts', taxonomy, err => {
// eslint-disable-next-line no-async-promise-executor
return new Promise(async (resolve, reject) => {
const prettifiedTaxonomy = await prettier.format(taxonomy, {
parser: "typescript",
singleQuote: true,
trailingComma: "es5",
semi: true,
tabWidth: 2,
printWidth: 100
});
await fs.writeFile('taxonomy.ts', prettifiedTaxonomy, err => {
if (err) {

@@ -52,0 +64,0 @@ reject(err);

export * from './lib/client';
export * from './lib/logger';
export * from './lib/query-client';

@@ -0,0 +0,0 @@ "use strict";

@@ -1,7 +0,7 @@

import 'reflect-metadata';
import { Observable } from 'rxjs';
import { Observable, Subscription } from 'rxjs';
export { Subscription };
import { ComposingCriteriaBuilder, CriteriaElement } from './criteria';
import { Logger } from './logger';
import { QueryClient } from './query-client';
export declare type DatatypeName = string;
import { EventSourceResponse, QueryClient } from './query-client';
export type DatatypeName = string;
export declare function asArray<Value>(input: DatatypeContainer<Value>): [DatatypeContainer<Value>];

@@ -12,7 +12,7 @@ export interface DatatypeContainer<Value> {

}
export declare type AnyDatatypeContainer = DatatypeContainer<any>;
declare type DatatypeMapping = {
export type AnyDatatypeContainer = DatatypeContainer<any>;
export type DatatypeMapping = {
[key: string]: DatatypeContainer<any>;
};
export declare type TaxonomyType<Mapping extends DatatypeMapping> = {
export type TaxonomyType<Mapping extends DatatypeMapping> = {
[key in keyof Mapping]: DatatypeContainer<Mapping[key]['value']>;

@@ -23,58 +23,157 @@ };

}
declare type FindParam<T, M extends DatatypeContainer<T>> = M | [M];
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options: ClientOptions): {
type FindParam<T, M extends DatatypeContainer<T>> = M | [M];
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options?: ClientOptions): {
given: <K, T extends DatatypeContainer<K>>(type: T, criteria: T["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T>) => CriteriaElement)) => {
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
and: <K_1, T_2 extends DatatypeContainer<K_1>>(type: T_2, criteria: T_2["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_2>) => CriteriaElement)) => {
and: <K_1, T_1 extends DatatypeContainer<K_1>>(type: T_1, criteria: T_1["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_1>) => CriteriaElement)) => {
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
and: any;
and: /*elided*/ any;
};
};
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
taxiQl: <R>(taxiQl: string) => {
execute: () => Observable<R | {
error: any;
}>;
executeAsPromise: () => Promise<R | {
error: any;
}>;
executeAsEventStream: () => Observable<R>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<R>;
};
};
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildClient = exports.asArray = void 0;
require("reflect-metadata"); // TODO Does this belong here or to the consumer code?
exports.Subscription = void 0;
exports.asArray = asArray;
exports.buildClient = buildClient;
const nanoid_1 = require("nanoid");
const rxjs_1 = require("rxjs");
Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return rxjs_1.Subscription; } });
const criteria_1 = require("./criteria");

@@ -14,3 +17,2 @@ const logger_1 = require("./logger");

}
exports.asArray = asArray;
function generateRandomId() {

@@ -22,3 +24,3 @@ return (0, nanoid_1.nanoid)();

};
function buildClient(taxonomy, queryClient, options) {
function buildClient(taxonomy, queryClient, options = {}) {
const actualOptions = Object.assign(Object.assign({}, defaultOptions), options);

@@ -36,5 +38,3 @@ function getDatatype(key) {

const givenBlock = Object.entries(criteriaParams)
/* eslint-disable @typescript-eslint/no-non-null-assertion */
.map(([key, value]) => [getDatatype(key), value.value])
/* eslint-enable @typescript-eslint/no-non-null-assertion */
.map(([key, value]) => {

@@ -62,3 +62,3 @@ if (typeof value !== 'function') {

}
function generateQuery(method, givenParams, findParameter, asParameters) {
function generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters) {
const given = generateGiven(givenParams);

@@ -69,36 +69,25 @@ const asBlock = generateAs(asParameters);

: findParameter.name;
const arrayNotifier = isArray(findParameter) ? `[]` : '';
const arrayNotifier = isArray(findParameter) || taxiQueryMethod === 'stream' ? `[]` : '';
const asString = asParameters !== null ? `\n${asBlock}${arrayNotifier}` : '';
return `${given}${method === 'query' ? 'find' : 'stream'} { ${findBlock} }${asString}`;
return `${given}${taxiQueryMethod} { ${findBlock} }${asString}`;
}
function executeQuery(method, givenParams, findParameter, asParameters) {
const query = generateQuery(method, givenParams, findParameter, asParameters);
actualOptions.logger.info(query);
return queryClient[method](query, generateRandomId());
function generateAndExecuteQuery(taxiQueryMethod, transportMethod, givenParams, findParameter, asParameters) {
const query = generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters);
return executeQuery(query, transportMethod);
}
function buildAs(method, givenParams, findParameter) {
function executeQuery(taxiQl, transportMethod) {
actualOptions.logger.info(taxiQl);
return queryClient[transportMethod](taxiQl, generateRandomId());
}
function buildAs(taxiQueryMethod, givenParams, findParameter) {
return function as(asParams) {
const asParameters = Object.entries(asParams).map(([key, value]) => [key, getDatatype(value.name)]);
return {
execute: function execute() {
return executeQuery(method, givenParams, findParameter, asParameters);
},
toTaxiQl: function toTaxiQl() {
return generateQuery(method, givenParams, findParameter, asParameters);
},
};
const methods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters);
return methods;
};
}
function buildFind(method, givenParams) {
function buildFind(taxiQueryMethod, givenParams) {
return function find(findParameter) {
return {
as: buildAs(method, givenParams, findParameter),
// TODO The return type here should be Param extends [Container] ? Type[] : Type but that yields an unknown type
execute: function execute() {
return executeQuery(method, givenParams, findParameter, null);
},
toTaxiQl: function toTaxiQl() {
return generateQuery(method, givenParams, findParameter, null);
},
};
const executionMethods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter);
return Object.assign({ as: buildAs(taxiQueryMethod, givenParams, findParameter) }, executionMethods);
};

@@ -109,3 +98,3 @@ }

return {
find: buildFind('query', criteriaParams),
find: buildFind('find', criteriaParams),
stream: buildFind('stream', criteriaParams),

@@ -128,9 +117,45 @@ };

}
function buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters = null) {
return {
execute: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'query', givenParams, findParameter, asParameters);
},
executeAsPromise: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryAsPromise', givenParams, findParameter, asParameters);
},
executeAsEventStream: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStream', givenParams, findParameter, asParameters); // TODO: does this need the error prop?
},
executeAsPromiseBasedEventStream: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStreamAsPromise', givenParams, findParameter, asParameters);
},
toTaxiQl: () => {
return generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters);
},
};
}
function taxiQl(taxiQl) {
const executionMethods = {
execute: () => {
return executeQuery(taxiQl, 'query');
},
executeAsPromise: () => {
return executeQuery(taxiQl, 'queryAsPromise');
},
executeAsEventStream: () => {
return executeQuery(taxiQl, 'queryEventStream'); // TODO: does this need the error prop?
},
executeAsPromiseBasedEventStream: () => {
return executeQuery(taxiQl, 'queryEventStreamAsPromise');
},
};
return Object.assign({}, executionMethods);
}
return {
given,
find: buildFind('query', null),
find: buildFind('find', null),
stream: buildFind('stream', null),
taxiQl,
};
}
exports.buildClient = buildClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCLENBQUMsc0RBQXNEO0FBQ2pGLG1DQUFnQztBQUdoQyx5Q0FLb0I7QUFDcEIscUNBQThDO0FBRzlDLFNBQVMsT0FBTyxDQUFDLEtBQVU7SUFDekIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFJRCxTQUFnQixPQUFPLENBQ3JCLEtBQStCO0lBRS9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBSkQsMEJBSUM7QUFlRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLElBQUEsZUFBTSxHQUFFLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sY0FBYyxHQUE0QjtJQUM5QyxNQUFNLEVBQUUsbUJBQVU7Q0FDbkIsQ0FBQztBQU1GLFNBQWdCLFdBQVcsQ0FHekIsUUFBa0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3BFLE1BQU0sYUFBYSxtQ0FBUSxjQUFjLEdBQUssT0FBTyxDQUFFLENBQUM7SUE0QnhELFNBQVMsV0FBVyxDQUFDLEdBQVc7UUFDOUIsTUFBTSxTQUFTLEdBQUcsR0FBRzthQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUNMLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBUSxFQUNqQyxRQUFRLENBQzRCLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxjQUFxQztRQUMxRCxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDBCQUlDO0FBZ0NELGtDQXVVQztBQWhZRCxtQ0FBZ0M7QUFDaEMsK0JBQWdEO0FBR3ZDLDZGQUhZLG1CQUFZLE9BR1o7QUFFckIseUNBS29CO0FBQ3BCLHFDQUE4QztBQUc5QyxTQUFTLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBSUQsU0FBZ0IsT0FBTyxDQUNyQixLQUErQjtJQUUvQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQWVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sSUFBQSxlQUFNLEdBQUUsQ0FBQztBQUNsQixDQUFDO0FBTUQsTUFBTSxjQUFjLEdBQTRCO0lBQzlDLE1BQU0sRUFBRSxtQkFBVTtDQUNuQixDQUFDO0FBT0YsU0FBZ0IsV0FBVyxDQUd6QixRQUFrQixFQUFFLFdBQXdCLEVBQUUsVUFBeUIsRUFBRTtJQUN6RSxNQUFNLGFBQWEsbUNBQVEsY0FBYyxHQUFLLE9BQU8sQ0FBRSxDQUFDO0lBc0R4RCxTQUFTLFdBQVcsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sU0FBUyxHQUFHLEdBQUc7YUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVEsRUFDakMsUUFBUSxDQUM0QixDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsY0FBcUM7UUFDMUQsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxV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
import { DatatypeContainer } from './client';
declare type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like';
type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like';
export interface SingleValueCriteriaPredicate {

@@ -11,4 +11,4 @@ operator: CriteriaPredicateOperator;

}
declare type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate;
export declare type CriteriaElement = CriteriaPredicate | CriteriaComposition;
type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate;
export type CriteriaElement = CriteriaPredicate | CriteriaComposition;
export interface CriteriaComposition {

@@ -31,5 +31,5 @@ and: CriteriaElement[];

}
export declare type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>;
export type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>;
export declare function generateCriteriaString(datatype: string, criteriaElement: CriteriaElement): string;
export declare function createCriteriaBuilder(): ComposingCriteriaBuilder<any>;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCriteriaBuilder = exports.generateCriteriaString = void 0;
exports.generateCriteriaString = generateCriteriaString;
exports.createCriteriaBuilder = createCriteriaBuilder;
function isSingleValueCriteriaPredicate(input) {

@@ -12,3 +13,6 @@ return input.operator && input.value;

if (isSingleValueCriteriaPredicate(criteriaElement)) {
return `${datatype} ${criteriaElement.operator} "${criteriaElement.value}"`;
const criteriaValue = typeof criteriaElement.value === 'number'
? criteriaElement.value
: `"${criteriaElement.value}"`;
return `${datatype} ${criteriaElement.operator} ${criteriaValue}`;
}

@@ -33,3 +37,2 @@ else if (isMultiValueCriteriaPredicate(criteriaElement)) {

}
exports.generateCriteriaString = generateCriteriaString;
function createCriteriaBuilder() {

@@ -50,3 +53,2 @@ return {

}
exports.createCriteriaBuilder = createCriteriaBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELFNBQWdCLHNCQUFzQixDQUNwQyxRQUFnQixFQUNoQixlQUFnQztJQUVoQyxJQUFJLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ25ELE9BQU8sR0FBRyxRQUFRLElBQUksZUFBZSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsS0FBSyxHQUFHLENBQUM7S0FDN0U7U0FBTSxJQUFJLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3pELE9BQU8sR0FBRyxRQUFRLElBQ2hCLGVBQWUsQ0FBQyxRQUNsQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDL0M7U0FBTTtRQUNMLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHO2lCQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztTQUM5QjthQUFNO1lBQ0wsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEVBQUU7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEIsT0FBTyxJQUFJLGNBQWMsR0FBRyxDQUFDO1NBQzlCO0tBQ0Y7QUFDSCxDQUFDO0FBdkJELHdEQXVCQztBQUVELFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPO1FBQ0wsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzdDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM1QyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25ELElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDOUQsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDOUQsQ0FBQztBQUNKLENBQUM7QUFkRCxzREFjQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUVBLHdEQTJCQztBQUVELHNEQWNDO0FBbkZELFNBQVMsOEJBQThCLENBQ3JDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FDcEMsS0FBVTtJQUVWLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3hDLENBQUM7QUE4QkQsU0FBZ0Isc0JBQXNCLENBQ3BDLFFBQWdCLEVBQ2hCLGVBQWdDO0lBRWhDLElBQUksOEJBQThCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLGFBQWEsR0FDakIsT0FBTyxlQUFlLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFDdkMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUNuQyxPQUFPLEdBQUcsUUFBUSxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksYUFBYSxFQUFFLENBQUM7SUFDcEUsQ0FBQztTQUFNLElBQUksNkJBQTZCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEdBQUcsUUFBUSxJQUNoQixlQUFlLENBQUMsUUFDbEIsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hELENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRztpQkFDdkMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsRUFBRTtpQkFDdEMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkQsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM5RCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9

@@ -0,0 +0,0 @@ export interface Logger {

@@ -0,0 +0,0 @@ "use strict";

import { Observable } from 'rxjs';
export interface QueryClient {
query<T>(query: string, clientQueryId: string): Observable<T>;
stream<T>(query: string, clientQueryId: string): Observable<T>;
query<T>(query: string, clientQueryId?: string): Observable<T>;
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>;
queryEventStream<T>(query: string, clientQueryId: string): Observable<T>;
queryEventStreamAsPromise<T>(query: string, clientQueryId: string): Promise<{
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>;
close: () => void;
}>;
}

@@ -9,6 +14,12 @@ export declare class HttpQueryClient implements QueryClient {

constructor(host: string);
query<T>(query: string, clientQueryId?: string): Observable<T>;
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>;
queryEventStream<T>(query: string, clientQueryId?: string): Observable<T>;
query<T>(query: string, clientQueryId?: string): Observable<T>;
stream<T>(query: string, clientQueryId?: string): Observable<T>;
private getEventStream;
queryEventStreamAsPromise<T>(query: string, clientQueryId?: string): EventSourceResponse<T>;
private getEventStreamAsPromise;
}
export type EventSourceResponse<T> = Promise<{
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>;
close: () => void;
}>;
"use strict";
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -14,10 +27,5 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

}
queryEventStream(query, clientQueryId) {
const clientId = clientQueryId || (0, nanoid_1.nanoid)();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStream(url);
}
query(query, clientQueryId) {
const clientId = clientQueryId || (0, nanoid_1.nanoid)();
return (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
const request = axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
headers: {

@@ -27,6 +35,7 @@ 'Content-Type': 'text/plain',

},
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => {
});
return (0, rxjs_1.from)(request).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => {
return error.response
? (0, rxjs_1.of)({
error: error.response.data,
error: error.response.data ? error.response.data : error.response,
query,

@@ -37,6 +46,5 @@ })

}
// TODO Implement properly
stream(query, clientQueryId) {
queryAsPromise(query, clientQueryId) {
const clientId = clientQueryId || (0, nanoid_1.nanoid)();
const obs1 = (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
const request = axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
headers: {

@@ -46,25 +54,20 @@ 'Content-Type': 'text/plain',

},
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => {
return error.response
? (0, rxjs_1.of)({
error: error.response.data,
});
return request
.then((response) => response.data)
.catch((error) => {
if (error.response) {
return Promise.resolve({
error: error.response.data ? error.response.data : error.response,
query,
})
: (0, rxjs_1.of)({ error: 'UNKNOWN_ERROR' });
}));
const obs2 = (0, rxjs_1.from)(axios_1.default.post(`${this.host}/api/taxiql?clientQueryId=${clientQueryId}`, query, {
headers: {
'Content-Type': 'text/plain',
Accept: 'application/json',
},
})).pipe((0, rxjs_1.map)((response) => response.data), (0, rxjs_1.catchError)((error) => {
return error.response
? (0, rxjs_1.of)({
error: error.response.data,
query,
})
: (0, rxjs_1.of)({ error: 'UNKNOWN_ERROR' });
}));
return (0, rxjs_1.zip)(obs1, obs2);
});
}
return Promise.resolve({ error: 'UNKNOWN_ERROR' });
});
}
queryEventStream(query, clientQueryId) {
const clientId = clientQueryId || (0, nanoid_1.nanoid)();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStream(url);
}
getEventStream(url) {

@@ -74,2 +77,6 @@ return new rxjs_1.Observable((observer) => {

const eventSource = new EventSource(url);
let isOpen = false;
eventSource.onopen = () => {
isOpen = true;
};
eventSource.onmessage = (event) => {

@@ -81,7 +88,13 @@ // Check for errors:

eventSource.onerror = () => {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
// if (messageReceived && errorAfterMessageIndicatesClosed) {
console.log('Received error event - treating this as a close signal');
observer.complete();
// TODO: how do we actually handle error handling here (other than a connection error, which is already a hack)??
if (!isOpen) {
observer.error('A connection error occurred');
}
else {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
console.log('Received error event - treating this as a close signal');
observer.complete();
}
// } else {

@@ -98,4 +111,83 @@ // console.log('Received error event' + JSON.stringify(error));

}
queryEventStreamAsPromise(query, clientQueryId) {
const clientId = clientQueryId || (0, nanoid_1.nanoid)();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStreamAsPromise(url);
}
getEventStreamAsPromise(url) {
let isClosed = null;
let isErrored = false;
const eventQueue = [];
let resolveEventAvailable;
let rejectEventError;
let eventAvailableSignal = new Promise((res, rej) => {
resolveEventAvailable = res;
rejectEventError = rej;
});
const eventSource = new EventSource(url);
eventSource.onopen = () => {
isClosed = false;
};
eventSource.onmessage = (event) => {
if (isClosed || isErrored)
return;
try {
const parsedData = JSON.parse(event.data);
eventQueue.push(parsedData);
resolveEventAvailable(parsedData);
eventAvailableSignal = new Promise((res, rej) => {
resolveEventAvailable = res;
rejectEventError = rej;
});
}
catch (error) {
console.error('Failed to parse message', error);
rejectEventError(error);
}
};
eventSource.onerror = (event) => {
isErrored = true;
if (isClosed === null) {
console.error('EventSource encountered an error:', event);
rejectEventError(new Error('A connection error occurred'));
}
else {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
console.log('Received error event - treating this as a close signal');
}
close(); // Clean up resources on error.
};
const close = () => {
if (!isClosed || isErrored) {
isClosed = true;
eventSource.close();
resolveEventAvailable(null); // Signal completion to pending consumers.
}
};
const asyncIterator = function () {
return __asyncGenerator(this, arguments, function* () {
while (!isClosed && !isErrored) {
while (eventQueue.length > 0) {
yield yield __await(eventQueue.shift());
}
try {
const nextValue = yield __await(eventAvailableSignal);
if (nextValue === null)
break;
}
catch (error) {
console.error('Error during event iteration:', error);
throw error;
}
}
});
};
return Promise.resolve({
[Symbol.asyncIterator]: asyncIterator,
close,
});
}
}
exports.HttpQueryClient = HttpQueryClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLG1DQUFnQztBQUNoQywrQkFBa0U7QUFRbEUsTUFBYSxlQUFlO0lBQzFCLFlBQTZCLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztJQUU3QyxnQkFBZ0IsQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDdkQsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLElBQUEsZUFBTSxHQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FDVixJQUFJLENBQUMsSUFDUCw2QkFBNkIsUUFBUSxVQUFVLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUksS0FBYSxFQUFFLGFBQXNCO1FBQzVDLE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxJQUFBLGVBQU0sR0FBRSxDQUFDO1FBRTNDLE9BQU8sSUFBQSxXQUFJLEVBQ1QsZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLDZCQUE2QixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDckUsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxZQUFZO2dCQUM1QixNQUFNLEVBQUUsa0JBQWtCO2FBQzNCO1NBQ0YsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLElBQUEsVUFBRyxFQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2hDLElBQUEsaUJBQVUsRUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLFFBQVE7Z0JBQ25CLENBQUMsQ0FBQyxJQUFBLFNBQUUs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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQixtQ0FBZ0M7QUFDaEMsK0JBQTZEO0FBa0I3RCxNQUFhLGVBQWU7SUFDMUIsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLEtBQUssQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDNUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLElBQUEsZUFBTSxHQUFFLENBQUM7UUFFM0MsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FDeEIsR0FBRyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsUUFBUSxFQUFFLEVBQ25ELEtBQUssRUFDTDtZQUNFLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsWUFBWTtnQkFDNUIsTUFBTSxFQUFFLGtCQUFrQjthQUMzQjtTQUNGLENBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBQSxXQUFJLEVBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2QixJQUFBLFVBQUcsRUFBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUNoQyxJQUFBLGlCQUFVLEVBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixDQUFDLENBQUMsSUFBQSxTQUFFLEVBQUM7b0JBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQ2pFLEtBQUs7aUJBQ04sQ0FBQztnQkFDSixDQUFDLENBQUMsSUFBQSxTQUFFLEVBQUMsRUFBRSxLQUFLLEVBQUUs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
export * from './lib/client';
export * from './lib/logger';
export * from './lib/query-client';

@@ -0,0 +0,0 @@ export * from './lib/client';

@@ -1,7 +0,7 @@

import 'reflect-metadata';
import { Observable } from 'rxjs';
import { Observable, Subscription } from 'rxjs';
export { Subscription };
import { ComposingCriteriaBuilder, CriteriaElement } from './criteria';
import { Logger } from './logger';
import { QueryClient } from './query-client';
export declare type DatatypeName = string;
import { EventSourceResponse, QueryClient } from './query-client';
export type DatatypeName = string;
export declare function asArray<Value>(input: DatatypeContainer<Value>): [DatatypeContainer<Value>];

@@ -12,7 +12,7 @@ export interface DatatypeContainer<Value> {

}
export declare type AnyDatatypeContainer = DatatypeContainer<any>;
declare type DatatypeMapping = {
export type AnyDatatypeContainer = DatatypeContainer<any>;
export type DatatypeMapping = {
[key: string]: DatatypeContainer<any>;
};
export declare type TaxonomyType<Mapping extends DatatypeMapping> = {
export type TaxonomyType<Mapping extends DatatypeMapping> = {
[key in keyof Mapping]: DatatypeContainer<Mapping[key]['value']>;

@@ -23,58 +23,157 @@ };

}
declare type FindParam<T, M extends DatatypeContainer<T>> = M | [M];
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options: ClientOptions): {
type FindParam<T, M extends DatatypeContainer<T>> = M | [M];
export declare function buildClient<TaxonomyMapping extends DatatypeMapping, Taxonomy extends TaxonomyType<TaxonomyMapping>>(taxonomy: Taxonomy, queryClient: QueryClient, options?: ClientOptions): {
given: <K, T extends DatatypeContainer<K>>(type: T, criteria: T["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T>) => CriteriaElement)) => {
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
and: <K_1, T_2 extends DatatypeContainer<K_1>>(type: T_2, criteria: T_2["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_2>) => CriteriaElement)) => {
and: <K_1, T_1 extends DatatypeContainer<K_1>>(type: T_1, criteria: T_1["value"] | ((criteriaBuilder: ComposingCriteriaBuilder<T_1>) => CriteriaElement)) => {
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
and: any;
and: /*elided*/ any;
};
};
find: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
} & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): {
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => Pick<{
execute: () => Observable<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsPromise: () => Promise<{
error: any;
} | (Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any)>;
executeAsEventStream: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
stream: <Type, Container extends DatatypeContainer<Type>, Param extends FindParam<Type, Container>>(findParameter: Param) => {
as: <Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }) => {
execute: () => Observable<{ [key in keyof Mapping]: Mapping[key]; } extends infer T_1 ? { [field in keyof T_1]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; } : never>;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl"> & {
as<Mapping extends DatatypeMapping>(asParams: { [key in keyof Mapping]: Mapping[key]; }): Pick<{
execute: () => Observable<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromise: () => Promise<{
error: any;
} | { [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsEventStream: () => Observable<{ [field in keyof { [key in keyof Mapping]: Mapping[key]; }]: { [key in keyof Mapping]: Mapping[key]; }[field]["value"]; }>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<any>;
toTaxiQl: () => string;
};
execute: () => Observable<Param extends [Container] ? Param[0]["value"][] : Param extends Container ? Param["value"] : any>;
toTaxiQl: () => string;
}, "executeAsEventStream" | "executeAsPromiseBasedEventStream" | "toTaxiQl">;
};
taxiQl: <R>(taxiQl: string) => {
execute: () => Observable<R | {
error: any;
}>;
executeAsPromise: () => Promise<R | {
error: any;
}>;
executeAsEventStream: () => Observable<R>;
executeAsPromiseBasedEventStream: () => EventSourceResponse<R>;
};
};
export {};

@@ -1,3 +0,5 @@

import 'reflect-metadata'; // TODO Does this belong here or to the consumer code?
import { nanoid } from 'nanoid';
import { Subscription } from 'rxjs';
// export for consumers of this library
export { Subscription };
import { createCriteriaBuilder, generateCriteriaString, } from './criteria';

@@ -17,3 +19,3 @@ import { noopLogger } from './logger';

};
export function buildClient(taxonomy, queryClient, options) {
export function buildClient(taxonomy, queryClient, options = {}) {
const actualOptions = { ...defaultOptions, ...options };

@@ -31,5 +33,3 @@ function getDatatype(key) {

const givenBlock = Object.entries(criteriaParams)
/* eslint-disable @typescript-eslint/no-non-null-assertion */
.map(([key, value]) => [getDatatype(key), value.value])
/* eslint-enable @typescript-eslint/no-non-null-assertion */
.map(([key, value]) => {

@@ -57,3 +57,3 @@ if (typeof value !== 'function') {

}
function generateQuery(method, givenParams, findParameter, asParameters) {
function generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters) {
const given = generateGiven(givenParams);

@@ -64,35 +64,27 @@ const asBlock = generateAs(asParameters);

: findParameter.name;
const arrayNotifier = isArray(findParameter) ? `[]` : '';
const arrayNotifier = isArray(findParameter) || taxiQueryMethod === 'stream' ? `[]` : '';
const asString = asParameters !== null ? `\n${asBlock}${arrayNotifier}` : '';
return `${given}${method === 'query' ? 'find' : 'stream'} { ${findBlock} }${asString}`;
return `${given}${taxiQueryMethod} { ${findBlock} }${asString}`;
}
function executeQuery(method, givenParams, findParameter, asParameters) {
const query = generateQuery(method, givenParams, findParameter, asParameters);
actualOptions.logger.info(query);
return queryClient[method](query, generateRandomId());
function generateAndExecuteQuery(taxiQueryMethod, transportMethod, givenParams, findParameter, asParameters) {
const query = generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters);
return executeQuery(query, transportMethod);
}
function buildAs(method, givenParams, findParameter) {
function executeQuery(taxiQl, transportMethod) {
actualOptions.logger.info(taxiQl);
return queryClient[transportMethod](taxiQl, generateRandomId());
}
function buildAs(taxiQueryMethod, givenParams, findParameter) {
return function as(asParams) {
const asParameters = Object.entries(asParams).map(([key, value]) => [key, getDatatype(value.name)]);
return {
execute: function execute() {
return executeQuery(method, givenParams, findParameter, asParameters);
},
toTaxiQl: function toTaxiQl() {
return generateQuery(method, givenParams, findParameter, asParameters);
},
};
const methods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters);
return methods;
};
}
function buildFind(method, givenParams) {
function buildFind(taxiQueryMethod, givenParams) {
return function find(findParameter) {
const executionMethods = buildExecutionMethods(taxiQueryMethod, givenParams, findParameter);
return {
as: buildAs(method, givenParams, findParameter),
// TODO The return type here should be Param extends [Container] ? Type[] : Type but that yields an unknown type
execute: function execute() {
return executeQuery(method, givenParams, findParameter, null);
},
toTaxiQl: function toTaxiQl() {
return generateQuery(method, givenParams, findParameter, null);
},
as: buildAs(taxiQueryMethod, givenParams, findParameter),
...executionMethods,
};

@@ -104,3 +96,3 @@ };

return {
find: buildFind('query', criteriaParams),
find: buildFind('find', criteriaParams),
stream: buildFind('stream', criteriaParams),

@@ -132,8 +124,47 @@ };

}
function buildExecutionMethods(taxiQueryMethod, givenParams, findParameter, asParameters = null) {
return {
execute: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'query', givenParams, findParameter, asParameters);
},
executeAsPromise: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryAsPromise', givenParams, findParameter, asParameters);
},
executeAsEventStream: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStream', givenParams, findParameter, asParameters); // TODO: does this need the error prop?
},
executeAsPromiseBasedEventStream: () => {
return generateAndExecuteQuery(taxiQueryMethod, 'queryEventStreamAsPromise', givenParams, findParameter, asParameters);
},
toTaxiQl: () => {
return generateQuery(taxiQueryMethod, givenParams, findParameter, asParameters);
},
};
}
function taxiQl(taxiQl) {
const executionMethods = {
execute: () => {
return executeQuery(taxiQl, 'query');
},
executeAsPromise: () => {
return executeQuery(taxiQl, 'queryAsPromise');
},
executeAsEventStream: () => {
return executeQuery(taxiQl, 'queryEventStream'); // TODO: does this need the error prop?
},
executeAsPromiseBasedEventStream: () => {
return executeQuery(taxiQl, 'queryEventStreamAsPromise');
},
};
return {
...executionMethods,
};
}
return {
given,
find: buildFind('query', null),
find: buildFind('find', null),
stream: buildFind('stream', null),
taxiQl,
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLHNEQUFzRDtBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDLE9BQU8sRUFFTCxxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHOUMsU0FBUyxPQUFPLENBQUMsS0FBVTtJQUN6QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUlELE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQStCO0lBRS9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBZUQsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNsQixDQUFDO0FBTUQsTUFBTSxjQUFjLEdBQTRCO0lBQzlDLE1BQU0sRUFBRSxVQUFVO0NBQ25CLENBQUM7QUFNRixNQUFNLFVBQVUsV0FBVyxDQUd6QixRQUFrQixFQUFFLFdBQXdCLEVBQUUsT0FBc0I7SUFDcEUsTUFBTSxhQUFhLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBNEJ4RCxTQUFTLFdBQVcsQ0FBQyxHQUFXO1FBQzlCLE1BQU0sU0FBUyxHQUFHLEdBQUc7YUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVEsRUFDakMsUUFBUSxDQUM0QixDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsY0FB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFFeEIsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUc5QyxTQUFTLE9BQU8sQ0FBQyxLQUFVO0lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBSUQsTUFBTSxVQUFVLE9BQU8sQ0FDckIsS0FBK0I7SUFFL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFlRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLE1BQU0sRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFNRCxNQUFNLGNBQWMsR0FBNEI7SUFDOUMsTUFBTSxFQUFFLFVBQVU7Q0FDbkIsQ0FBQztBQU9GLE1BQU0sVUFBVSxXQUFXLENBR3pCLFFBQWtCLEVBQUUsV0FBd0IsRUFBRSxVQUF5QixFQUFFO0lBQ3pFLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQXNEeEQsU0FBUyxXQUFXLENBQUMsR0FBVztRQUM5QixNQUFNLFNBQVMsR0FBRyxHQUFHO2FBQ2xCLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFRLEVBQ2pDLFFBQVEsQ0FDNEIsQ0FBQztRQUN6QyxPQUFP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
import { DatatypeContainer } from './client';
declare type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like';
type CriteriaPredicateOperator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'in' | 'not in' | 'like';
export interface SingleValueCriteriaPredicate {

@@ -11,4 +11,4 @@ operator: CriteriaPredicateOperator;

}
declare type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate;
export declare type CriteriaElement = CriteriaPredicate | CriteriaComposition;
type CriteriaPredicate = SingleValueCriteriaPredicate | MultiValueCriteriaPredicate;
export type CriteriaElement = CriteriaPredicate | CriteriaComposition;
export interface CriteriaComposition {

@@ -31,5 +31,5 @@ and: CriteriaElement[];

}
export declare type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>;
export type SimpleCriteriaBuilder<T extends DatatypeContainer<unknown>> = Omit<ComposingCriteriaBuilder<T>, 'and' | 'or'>;
export declare function generateCriteriaString(datatype: string, criteriaElement: CriteriaElement): string;
export declare function createCriteriaBuilder(): ComposingCriteriaBuilder<any>;
export {};

@@ -9,3 +9,6 @@ function isSingleValueCriteriaPredicate(input) {

if (isSingleValueCriteriaPredicate(criteriaElement)) {
return `${datatype} ${criteriaElement.operator} "${criteriaElement.value}"`;
const criteriaValue = typeof criteriaElement.value === 'number'
? criteriaElement.value
: `"${criteriaElement.value}"`;
return `${datatype} ${criteriaElement.operator} ${criteriaValue}`;
}

@@ -45,2 +48,2 @@ else if (isMultiValueCriteriaPredicate(criteriaElement)) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsUUFBZ0IsRUFDaEIsZUFBZ0M7SUFFaEMsSUFBSSw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNuRCxPQUFPLEdBQUcsUUFBUSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDO0tBQzdFO1NBQU0sSUFBSSw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN6RCxPQUFPLEdBQUcsUUFBUSxJQUNoQixlQUFlLENBQUMsUUFDbEIsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQy9DO1NBQU07UUFDTCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRztpQkFDdkMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksY0FBYyxHQUFHLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxFQUFFO2lCQUN0QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztTQUM5QjtLQUNGO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM3QyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNuRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzlELEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQzlELENBQUM7QUFDSixDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxTQUFTLDhCQUE4QixDQUNyQyxLQUFVO0lBRVYsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsNkJBQTZCLENBQ3BDLEtBQVU7SUFFVixPQUFPLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN4QyxDQUFDO0FBOEJELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsUUFBZ0IsRUFDaEIsZUFBZ0M7SUFFaEMsSUFBSSw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUNqQixPQUFPLGVBQWUsQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUN2QyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDdkIsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxRQUFRLElBQUksZUFBZSxDQUFDLFFBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNwRSxDQUFDO1NBQU0sSUFBSSw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sR0FBRyxRQUFRLElBQ2hCLGVBQWUsQ0FBQyxRQUNsQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHO2lCQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxFQUFFO2lCQUN0QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxjQUFjLEdBQUcsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0MsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkQsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM5RCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9

@@ -0,0 +0,0 @@ export interface Logger {

@@ -0,0 +0,0 @@ /* eslint @typescript-eslint/no-empty-function: "off" */

import { Observable } from 'rxjs';
export interface QueryClient {
query<T>(query: string, clientQueryId: string): Observable<T>;
stream<T>(query: string, clientQueryId: string): Observable<T>;
query<T>(query: string, clientQueryId?: string): Observable<T>;
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>;
queryEventStream<T>(query: string, clientQueryId: string): Observable<T>;
queryEventStreamAsPromise<T>(query: string, clientQueryId: string): Promise<{
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>;
close: () => void;
}>;
}

@@ -9,6 +14,12 @@ export declare class HttpQueryClient implements QueryClient {

constructor(host: string);
query<T>(query: string, clientQueryId?: string): Observable<T>;
queryAsPromise<T>(query: string, clientQueryId?: string): Promise<T>;
queryEventStream<T>(query: string, clientQueryId?: string): Observable<T>;
query<T>(query: string, clientQueryId?: string): Observable<T>;
stream<T>(query: string, clientQueryId?: string): Observable<T>;
private getEventStream;
queryEventStreamAsPromise<T>(query: string, clientQueryId?: string): EventSourceResponse<T>;
private getEventStreamAsPromise;
}
export type EventSourceResponse<T> = Promise<{
[Symbol.asyncIterator](): AsyncGenerator<Awaited<T>, void, unknown>;
close: () => void;
}>;
import axios from 'axios';
import { nanoid } from 'nanoid';
import { catchError, from, map, Observable, of, zip } from 'rxjs';
import { catchError, from, map, Observable, of } from 'rxjs';
export class HttpQueryClient {

@@ -9,10 +9,5 @@ host;

}
queryEventStream(query, clientQueryId) {
const clientId = clientQueryId || nanoid();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStream(url);
}
query(query, clientQueryId) {
const clientId = clientQueryId || nanoid();
return from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
const request = axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
headers: {

@@ -22,6 +17,7 @@ 'Content-Type': 'text/plain',

},
})).pipe(map((response) => response.data), catchError((error) => {
});
return from(request).pipe(map((response) => response.data), catchError((error) => {
return error.response
? of({
error: error.response.data,
error: error.response.data ? error.response.data : error.response,
query,

@@ -32,6 +28,5 @@ })

}
// TODO Implement properly
stream(query, clientQueryId) {
queryAsPromise(query, clientQueryId) {
const clientId = clientQueryId || nanoid();
const obs1 = from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
const request = axios.post(`${this.host}/api/taxiql?clientQueryId=${clientId}`, query, {
headers: {

@@ -41,25 +36,20 @@ 'Content-Type': 'text/plain',

},
})).pipe(map((response) => response.data), catchError((error) => {
return error.response
? of({
error: error.response.data,
});
return request
.then((response) => response.data)
.catch((error) => {
if (error.response) {
return Promise.resolve({
error: error.response.data ? error.response.data : error.response,
query,
})
: of({ error: 'UNKNOWN_ERROR' });
}));
const obs2 = from(axios.post(`${this.host}/api/taxiql?clientQueryId=${clientQueryId}`, query, {
headers: {
'Content-Type': 'text/plain',
Accept: 'application/json',
},
})).pipe(map((response) => response.data), catchError((error) => {
return error.response
? of({
error: error.response.data,
query,
})
: of({ error: 'UNKNOWN_ERROR' });
}));
return zip(obs1, obs2);
});
}
return Promise.resolve({ error: 'UNKNOWN_ERROR' });
});
}
queryEventStream(query, clientQueryId) {
const clientId = clientQueryId || nanoid();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStream(url);
}
getEventStream(url) {

@@ -69,2 +59,6 @@ return new Observable((observer) => {

const eventSource = new EventSource(url);
let isOpen = false;
eventSource.onopen = () => {
isOpen = true;
};
eventSource.onmessage = (event) => {

@@ -76,7 +70,13 @@ // Check for errors:

eventSource.onerror = () => {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
// if (messageReceived && errorAfterMessageIndicatesClosed) {
console.log('Received error event - treating this as a close signal');
observer.complete();
// TODO: how do we actually handle error handling here (other than a connection error, which is already a hack)??
if (!isOpen) {
observer.error('A connection error occurred');
}
else {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
console.log('Received error event - treating this as a close signal');
observer.complete();
}
// } else {

@@ -93,3 +93,80 @@ // console.log('Received error event' + JSON.stringify(error));

}
queryEventStreamAsPromise(query, clientQueryId) {
const clientId = clientQueryId || nanoid();
const url = `${this.host}/api/taxiql?clientQueryId=${clientId}&query=${encodeURIComponent(query)}`;
return this.getEventStreamAsPromise(url);
}
getEventStreamAsPromise(url) {
let isClosed = null;
let isErrored = false;
const eventQueue = [];
let resolveEventAvailable;
let rejectEventError;
let eventAvailableSignal = new Promise((res, rej) => {
resolveEventAvailable = res;
rejectEventError = rej;
});
const eventSource = new EventSource(url);
eventSource.onopen = () => {
isClosed = false;
};
eventSource.onmessage = (event) => {
if (isClosed || isErrored)
return;
try {
const parsedData = JSON.parse(event.data);
eventQueue.push(parsedData);
resolveEventAvailable(parsedData);
eventAvailableSignal = new Promise((res, rej) => {
resolveEventAvailable = res;
rejectEventError = rej;
});
}
catch (error) {
console.error('Failed to parse message', error);
rejectEventError(error);
}
};
eventSource.onerror = (event) => {
isErrored = true;
if (isClosed === null) {
console.error('EventSource encountered an error:', event);
rejectEventError(new Error('A connection error occurred'));
}
else {
// Note: We're now sending errors down as an error message, so
// assume that all onerror signals are just completion.
console.log('Received error event - treating this as a close signal');
}
close(); // Clean up resources on error.
};
const close = () => {
if (!isClosed || isErrored) {
isClosed = true;
eventSource.close();
resolveEventAvailable(null); // Signal completion to pending consumers.
}
};
const asyncIterator = async function* () {
while (!isClosed && !isErrored) {
while (eventQueue.length > 0) {
yield eventQueue.shift();
}
try {
const nextValue = await eventAvailableSignal;
if (nextValue === null)
break;
}
catch (error) {
console.error('Error during event iteration:', error);
throw error;
}
}
};
return Promise.resolve({
[Symbol.asyncIterator]: asyncIterator,
close,
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUWxFLE1BQU0sT0FBTyxlQUFlO0lBQ0c7SUFBN0IsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLGdCQUFnQixDQUFJLEtBQWEsRUFBRSxhQUFzQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxhQUFhLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FDVixJQUFJLENBQUMsSUFDUCw2QkFBNkIsUUFBUSxVQUFVLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUksS0FBYSxFQUFFLGFBQXNCO1FBQzVDLE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FDVCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksNkJBQTZCLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRTtZQUNyRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7U0FDRixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFrQjdELE1BQU0sT0FBTyxlQUFlO0lBQ0c7SUFBN0IsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDO0lBRTdDLEtBQUssQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDNUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRTNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ3hCLEdBQUcsSUFBSSxDQUFDLElBQUksNkJBQTZCLFFBQVEsRUFBRSxFQUNuRCxLQUFLLEVBQ0w7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7U0FDRixDQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUNoQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxRQUFRO2dCQUNuQixDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNELEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRO29CQUNqRSxLQUFLO2lCQUNOLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNjLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWMsQ0FBSSxLQUFhLEVBQUUsYUFBc0I7UUFDckQsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRTNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ3hCLEdBQUcsSUFBSSxDQUFDLElBQUksNkJBQTZCLFFBQVEsRUFBRSxFQUNuRCxLQUFLLEVBQ0w7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLE1BQU0sRUFBRSxrQkFBa0I7YUFDM0I7U0FDRixDQUNGLENBQUM7UUFFRixPQUFPLE9BQU87YUFDWCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFTLENBQUM7YUFDdEMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUTtvQkFDakUsS0FBSztpQkFDTixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBUyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQUksS0FBYSxFQUFFLGFBQXNCO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLGFBQWEsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUNWLElBQUksQ0FBQyxJQUNQLDZCQUE2QixRQUFRLFVBQVUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBSSxHQUFXO1FBQ25DLE9BQU8sSUFBSSxVQUFVLENBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNuQixXQUFXLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDeEIsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUM7WUFDRixXQUFXLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO2dCQUM5QyxvQkFBb0I7Z0JBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBTSxDQUFDO2dCQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQztZQUNGLFdBQVcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUN6Qiw2REFBNkQ7Z0JBQzdELGlIQUFpSDtnQkFDakgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNaLFFBQVEsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLDhEQUE4RDtvQkFDOUQsdURBQXVEO29CQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULHlEQUF5RCxDQUMxRCxDQUFDO29CQUNGLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxXQUFXO2dCQUNYLGlFQUFpRTtnQkFDakUseUJBQXlCO2dCQUN6QixJQUFJO1lBQ04sQ0FBQyxDQUFDO1lBRUYsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUN2QixLQUFhLEVBQ2IsYUFBc0I7UUFFdEIsTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLEdBQ1YsSUFBSSxDQUFDLElBQ1AsNkJBQTZCLFFBQVEsVUFBVSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyx1QkFBdUIsQ0FBSSxHQUFXO1FBQzVDLElBQUksUUFBUSxHQUFtQixJQUFJLENBQUM7UUFDcEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLHFCQUFnRCxDQUFDO1FBQ3JELElBQUksZ0JBQXdDLENBQUM7UUFDN0MsSUFBSSxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sQ0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1RCxxQkFBcUIsR0FBRyxHQUFHLENBQUM7WUFDNUIsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDeEIsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFRixXQUFXLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQzlDLElBQUksUUFBUSxJQUFJLFNBQVM7Z0JBQUUsT0FBTztZQUNsQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7Z0JBQy9DLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzVCLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sQ0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDeEQscUJBQXFCLEdBQUcsR0FBRyxDQUFDO29CQUM1QixnQkFBZ0IsR0FBRyxHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNyQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMxRCxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDhEQUE4RDtnQkFDOUQsdURBQXVEO2dCQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLENBQUMsK0JBQStCO1FBQzFDLENBQUMsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNoQixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMENBQTBDO1lBQ3pFLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxLQUFLLFNBQVMsQ0FBQztZQUNuQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsTUFBTSxVQUFVLENBQUMsS0FBSyxFQUFHLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDO29CQUNILE1BQU0sU0FBUyxHQUFHLE1BQU0sb0JBQW9CLENBQUM7b0JBQzdDLElBQUksU0FBUyxLQUFLLElBQUk7d0JBQUUsTUFBTTtnQkFDaEMsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3RELE1BQU0sS0FBSyxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3JCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWE7WUFDckMsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9

@@ -5,2 +5,18 @@ # Changelog

### [0.1.1](https://github.com/orbitalapi/typescript-client/compare/v0.1.0...v0.1.1) (2025-01-14)
## 0.1.0 (2025-01-14)
### Features
* Add EventStream and Promise based transport methods ([47c2d3e](https://github.com/orbitalapi/typescript-client/commit/47c2d3e43f6193cac0852256a1dbc82fee4a7eed))
* Add taxiQl string based query execution ([f818867](https://github.com/orbitalapi/typescript-client/commit/f81886716cba8480bc4822ac668e8fbc8d54c41f))
* React SDK example ([61fc53a](https://github.com/orbitalapi/typescript-client/commit/61fc53abd8cc3cba29871cb70345a2dfa203ce06))
### Bug Fixes
* **client:** ensure streams with projections are returned as arrays ([1e6a8b8](https://github.com/orbitalapi/typescript-client/commit/1e6a8b880545818c3ef0445b6a8cbf76671107ef))
## 0.1.0 (2023-03-15)
{
"name": "@orbitalhq/orbital-client",
"version": "0.1.0-alpha.2",
"version": "0.1.1",
"description": "A library to execute TaxiQL queries against an Orbital query server",

@@ -8,3 +8,4 @@ "main": "build/main/index.js",

"module": "build/module/index.js",
"repository": "https://github.com/orbital-api/typescript-client",
"homepage": "https://orbitalhq.com",
"repository": "https://github.com/orbitalapi/typescript-client",
"license": "MIT",

@@ -16,3 +17,3 @@ "keywords": [

"build": "run-p build:*",
"build:main": "mkdir -p build && cp -r bin/ build/bin && tsc -p tsconfig.json",
"build:main": "shx mkdir -p build/bin && shx cp -r bin/ build/bin && tsc -p tsconfig.json",
"build:module": "tsc -p tsconfig.module.json",

@@ -23,4 +24,4 @@ "fix": "run-s fix:*",

"test": "run-s build test:*",
"test:lint": "eslint src --ext .ts",
"test:prettier": "prettier \"src/**/*.ts\" --list-different",
"test:lint": "eslint",
"test:prettier": "prettier \"src/**/*.ts\" --write",
"check-cli": "run-s test diff-integration-tests check-integration-tests",

@@ -42,32 +43,34 @@ "check-integration-tests": "run-s check-integration-test:*",

},
"dependencies": {},
"peerDependencies": {
"axios": "^0.27.2",
"nanoid": "^3.3.4",
"rxjs": "^7.x",
"reflect-metadata": "^0.1.13"
"axios": "^1.7.9",
"nanoid": "^5.0.9",
"rxjs": "^7.x"
},
"devDependencies": {
"reflect-metadata": "^0.1.13",
"@ava/typescript": "^3.0.1",
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@typescript-eslint/eslint-plugin": "^5.21.0",
"@typescript-eslint/parser": "^5.21.0",
"ava": "^4.2.0",
"codecov": "^3.5.0",
"@ava/typescript": "^5.0.0",
"@eslint/compat": "^1.2.5",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.18.0",
"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@typescript-eslint/eslint-plugin": "^8.18.0",
"@typescript-eslint/parser": "^8.18.0",
"ava": "^6.2.0",
"codecov": "^3.8.3",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^8.14.0",
"eslint-config-prettier": "^8.5.0",
"eslint": "^9.16.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-functional": "^4.2.1",
"eslint-plugin-import": "^2.22.0",
"gh-pages": "^3.1.0",
"eslint-plugin-functional": "^7.1.0",
"eslint-plugin-import": "^2.31.0",
"gh-pages": "^6.2.0",
"globals": "^15.14.0",
"npm-run-all": "^4.1.5",
"nyc": "^15.1.0",
"open-cli": "^7.0.1",
"prettier": "^2.1.1",
"standard-version": "^9.0.0",
"ts-node": "^10.7.0",
"typedoc": "^0.22.15",
"typescript": "^4.6.3"
"nyc": "^17.1.0",
"open-cli": "^8.0.0",
"prettier": "^3.4.2",
"shx": "^0.3.4",
"standard-version": "^9.5.0",
"ts-node": "^10.9.2",
"typedoc": "^0.27.4",
"typescript": "^5.7.2"
},

@@ -74,0 +77,0 @@ "files": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc