faros-js-client 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -1
- package/lib/axios.d.ts +13 -0
- package/lib/axios.js +62 -0
- package/lib/client.d.ts +24 -0
- package/lib/client.js +212 -0
- package/lib/errors.d.ts +2 -0
- package/lib/errors.js +60 -0
- package/lib/graphql/hasura-schema-loader.d.ts +35 -0
- package/lib/graphql/hasura-schema-loader.js +180 -0
- package/lib/graphql/schema.d.ts +7 -0
- package/lib/graphql/schema.js +43 -0
- package/lib/graphql/types.d.ts +43 -0
- package/lib/graphql/types.js +2 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +19 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +53 -0
- package/lib/types.js +2 -0
- package/lib/utils.d.ts +3 -0
- package/lib/utils.js +9 -0
- package/package.json +7 -1
package/README.md
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
[](https://github.com/faros-ai/faros-js-client/actions/workflows/ci.yml)
|
|
2
|
+
|
|
1
3
|
# Faros API client for JavaScript/TypeScript
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
## Installation
|
|
6
|
+
```bash
|
|
7
|
+
$ npm i --save faros-js-client
|
|
8
|
+
```
|
|
9
|
+
## Documentation
|
|
10
|
+
|
|
11
|
+
Usage example:
|
|
12
|
+
```typescript
|
|
13
|
+
import {FarosClient} from 'faros-js-client';
|
|
14
|
+
|
|
15
|
+
const faros = new FarosClient({
|
|
16
|
+
url: 'https://prod.api.faros.ai',
|
|
17
|
+
apiKey: '<your_faros_api_key>',
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const query = `{
|
|
21
|
+
tms {
|
|
22
|
+
tasks(first: 10) {
|
|
23
|
+
nodes {
|
|
24
|
+
uid
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}`;
|
|
29
|
+
|
|
30
|
+
const data = await client.gql('default', query);
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Please read the [Faros documentation][farosdocs] to learn more.
|
|
34
|
+
|
|
35
|
+
[farosdocs]: https://docs.faros.ai
|
package/lib/axios.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { IAxiosRetryConfig } from 'axios-retry';
|
|
3
|
+
import { Logger } from 'pino';
|
|
4
|
+
export declare const DEFAULT_RETRIES = 3;
|
|
5
|
+
export declare const DEFAULT_RETRY_DELAY = 1000;
|
|
6
|
+
/**
|
|
7
|
+
* A handy function to create an Axios instance
|
|
8
|
+
*/
|
|
9
|
+
export declare function makeAxiosInstance(config?: AxiosRequestConfig, retryConfig?: IAxiosRetryConfig): AxiosInstance;
|
|
10
|
+
/**
|
|
11
|
+
* A handy function to create an Axios instance with a retry
|
|
12
|
+
*/
|
|
13
|
+
export declare function makeAxiosInstanceWithRetry(config?: AxiosRequestConfig, logger?: Logger, retries?: number, delay?: number): AxiosInstance;
|
package/lib/axios.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.makeAxiosInstanceWithRetry = exports.makeAxiosInstance = exports.DEFAULT_RETRY_DELAY = exports.DEFAULT_RETRIES = void 0;
|
|
30
|
+
const axios_1 = __importDefault(require("axios"));
|
|
31
|
+
const axios_retry_1 = __importStar(require("axios-retry"));
|
|
32
|
+
const errors_1 = require("./errors");
|
|
33
|
+
exports.DEFAULT_RETRIES = 3;
|
|
34
|
+
exports.DEFAULT_RETRY_DELAY = 1000;
|
|
35
|
+
/**
|
|
36
|
+
* A handy function to create an Axios instance
|
|
37
|
+
*/
|
|
38
|
+
function makeAxiosInstance(config, retryConfig) {
|
|
39
|
+
const client = axios_1.default.create(config);
|
|
40
|
+
if (!retryConfig || !(client === null || client === void 0 ? void 0 : client.interceptors)) {
|
|
41
|
+
return client;
|
|
42
|
+
}
|
|
43
|
+
(0, axios_retry_1.default)(client, retryConfig);
|
|
44
|
+
return client;
|
|
45
|
+
}
|
|
46
|
+
exports.makeAxiosInstance = makeAxiosInstance;
|
|
47
|
+
/**
|
|
48
|
+
* A handy function to create an Axios instance with a retry
|
|
49
|
+
*/
|
|
50
|
+
function makeAxiosInstanceWithRetry(config, logger, retries = exports.DEFAULT_RETRIES, delay = exports.DEFAULT_RETRY_DELAY) {
|
|
51
|
+
return makeAxiosInstance(config, {
|
|
52
|
+
retries,
|
|
53
|
+
retryCondition: axios_retry_1.isRetryableError,
|
|
54
|
+
retryDelay: (retryNumber, error) => {
|
|
55
|
+
if (logger) {
|
|
56
|
+
logger.warn((0, errors_1.wrapApiError)(error, `Retry attempt ${retryNumber} of ${retries}`));
|
|
57
|
+
}
|
|
58
|
+
return retryNumber * delay;
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
exports.makeAxiosInstanceWithRetry = makeAxiosInstanceWithRetry;
|
package/lib/client.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import * as gql from 'graphql';
|
|
3
|
+
import { Logger } from 'pino';
|
|
4
|
+
import { Schema } from './graphql/types';
|
|
5
|
+
import { Account, FarosClientConfig, NamedQuery, SecretName, UpdateAccount } from './types';
|
|
6
|
+
export declare const DEFAULT_AXIOS_CONFIG: AxiosRequestConfig;
|
|
7
|
+
export declare const GRAPH_VERSION_HEADER = "x-faros-graph-version";
|
|
8
|
+
/** Faros API client **/
|
|
9
|
+
export declare class FarosClient {
|
|
10
|
+
private readonly api;
|
|
11
|
+
constructor(cfg: FarosClientConfig, logger?: Logger, axiosConfig?: AxiosRequestConfig);
|
|
12
|
+
tenant(): Promise<string>;
|
|
13
|
+
secret(name: string, group?: string): Promise<string | undefined>;
|
|
14
|
+
secrets(group?: string): Promise<ReadonlyArray<SecretName>>;
|
|
15
|
+
graphExists(graph: string): Promise<boolean>;
|
|
16
|
+
namedQuery(name: string): Promise<NamedQuery | undefined>;
|
|
17
|
+
gql(graph: string, query: string, variables?: any): Promise<any>;
|
|
18
|
+
rawGql(graph: string, query: string, variables?: any): Promise<any>;
|
|
19
|
+
gqlSchema(graph?: string): Promise<Schema>;
|
|
20
|
+
introspect(graph: string): Promise<gql.GraphQLSchema>;
|
|
21
|
+
geocode(...locations: string[]): Promise<ReadonlyArray<Location>>;
|
|
22
|
+
accounts(graph?: string): Promise<ReadonlyArray<Account>>;
|
|
23
|
+
updateAccount(update: UpdateAccount): Promise<void>;
|
|
24
|
+
}
|
package/lib/client.js
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.FarosClient = exports.GRAPH_VERSION_HEADER = exports.DEFAULT_AXIOS_CONFIG = void 0;
|
|
30
|
+
const gql = __importStar(require("graphql"));
|
|
31
|
+
const pino_1 = __importDefault(require("pino"));
|
|
32
|
+
const axios_1 = require("./axios");
|
|
33
|
+
const errors_1 = require("./errors");
|
|
34
|
+
const utils_1 = require("./utils");
|
|
35
|
+
exports.DEFAULT_AXIOS_CONFIG = { timeout: 60000 };
|
|
36
|
+
exports.GRAPH_VERSION_HEADER = 'x-faros-graph-version';
|
|
37
|
+
/** Faros API client **/
|
|
38
|
+
class FarosClient {
|
|
39
|
+
constructor(cfg, logger = (0, pino_1.default)({ name: 'faros-client' }), axiosConfig = exports.DEFAULT_AXIOS_CONFIG) {
|
|
40
|
+
const url = utils_1.Utils.urlWithoutTrailingSlashes(cfg.url);
|
|
41
|
+
this.api = (0, axios_1.makeAxiosInstanceWithRetry)({
|
|
42
|
+
...axiosConfig,
|
|
43
|
+
baseURL: url,
|
|
44
|
+
headers: {
|
|
45
|
+
...axiosConfig === null || axiosConfig === void 0 ? void 0 : axiosConfig.headers,
|
|
46
|
+
authorization: cfg.apiKey,
|
|
47
|
+
...(cfg.useGraphQLV2 && { [exports.GRAPH_VERSION_HEADER]: 'v2' }),
|
|
48
|
+
},
|
|
49
|
+
}, logger);
|
|
50
|
+
}
|
|
51
|
+
async tenant() {
|
|
52
|
+
try {
|
|
53
|
+
const { data } = await this.api.get('/users/me');
|
|
54
|
+
return data.tenantId;
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
throw (0, errors_1.wrapApiError)(err, 'unable to get tenant');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async secret(name, group) {
|
|
61
|
+
var _a;
|
|
62
|
+
try {
|
|
63
|
+
const params = group ? { group } : undefined;
|
|
64
|
+
const { data } = await this.api.get(`/secrets/${name}`, { params });
|
|
65
|
+
return data.value;
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
throw (0, errors_1.wrapApiError)(err, `unable to get secret: ${name}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async secrets(group) {
|
|
75
|
+
try {
|
|
76
|
+
const params = group ? { group } : undefined;
|
|
77
|
+
const { data } = await this.api.get('/secrets', { params });
|
|
78
|
+
return data.secrets;
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
throw (0, errors_1.wrapApiError)(err, 'unable to list secrets');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async graphExists(graph) {
|
|
85
|
+
var _a;
|
|
86
|
+
try {
|
|
87
|
+
await this.api.get(`/graphs/${graph}/statistics`);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
throw (0, errors_1.wrapApiError)(err, `unable to check graph exists: ${graph}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async namedQuery(name) {
|
|
98
|
+
var _a;
|
|
99
|
+
try {
|
|
100
|
+
const { data } = await this.api.get(`/queries/${name}`);
|
|
101
|
+
return data.query;
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
throw (0, errors_1.wrapApiError)(err, `unable to get query: ${name}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/* returns only the data object of a standard qgl response */
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
112
|
+
async gql(graph, query, variables) {
|
|
113
|
+
try {
|
|
114
|
+
const req = variables ? { query, variables } : { query };
|
|
115
|
+
const { data } = await this.api.post(`/graphs/${graph}/graphql`, req);
|
|
116
|
+
return data.data;
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
throw (0, errors_1.wrapApiError)(err, `unable to query graph: ${graph}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/* returns both data (as res.data) and errors (as res.errors) */
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
124
|
+
async rawGql(graph, query, variables) {
|
|
125
|
+
try {
|
|
126
|
+
const req = variables ? { query, variables } : { query };
|
|
127
|
+
const { data } = await this.api.post(`/graphs/${graph}/graphql`, req);
|
|
128
|
+
return data;
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
throw (0, errors_1.wrapApiError)(err, `unable to query graph: ${graph}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async gqlSchema(graph = 'default') {
|
|
135
|
+
try {
|
|
136
|
+
const { data } = await this.api.get(`/graphs/${graph}/graphql/schema`);
|
|
137
|
+
return data;
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
throw (0, errors_1.wrapApiError)(err, 'unable to load schema');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async introspect(graph) {
|
|
144
|
+
try {
|
|
145
|
+
const data = await this.gql(graph, gql.getIntrospectionQuery());
|
|
146
|
+
return gql.buildClientSchema(data);
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
throw (0, errors_1.wrapApiError)(err, `unable to introspect graph: ${graph}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async geocode(...locations) {
|
|
153
|
+
try {
|
|
154
|
+
const req = { locations };
|
|
155
|
+
const { data } = await this.api.post('/geocoding/lookup', req);
|
|
156
|
+
return data.locations;
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
throw (0, errors_1.wrapApiError)(err, 'unable to geocode locations');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async accounts(graph) {
|
|
163
|
+
try {
|
|
164
|
+
const { data: { accounts }, } = await this.api.get('/accounts');
|
|
165
|
+
if (Array.isArray(accounts)) {
|
|
166
|
+
return accounts
|
|
167
|
+
.filter((a) => { var _a; return (graph ? ((_a = a.params) === null || _a === void 0 ? void 0 : _a.graphName) === graph : true); })
|
|
168
|
+
.map((a) => {
|
|
169
|
+
let secretName;
|
|
170
|
+
if (a.secretsName.includes('/')) {
|
|
171
|
+
const [group, name] = a.secretsName.split('/');
|
|
172
|
+
secretName = { group, name };
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
secretName = { name: a.secretsName };
|
|
176
|
+
}
|
|
177
|
+
delete a.secretsName;
|
|
178
|
+
return {
|
|
179
|
+
...a,
|
|
180
|
+
secretName,
|
|
181
|
+
lastModified: new Date(a.lastModified),
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
throw (0, errors_1.wrapApiError)(err, 'unable to list accounts');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async updateAccount(update) {
|
|
192
|
+
try {
|
|
193
|
+
await this.api.put(`/accounts/${update.accountId}`, {
|
|
194
|
+
tenantId: update.tenantId,
|
|
195
|
+
farosApiKeyId: update.farosApiKeyId,
|
|
196
|
+
type: update.type,
|
|
197
|
+
mode: update.mode,
|
|
198
|
+
params: update.params,
|
|
199
|
+
secretName: update.secretName,
|
|
200
|
+
scheduleExpression: update.scheduleExpression,
|
|
201
|
+
executionTimeoutInSecs: update.executionTimeoutInSecs,
|
|
202
|
+
runtimeVersion: update.runtimeVersion,
|
|
203
|
+
memorySizeInMbs: update.memorySizeInMbs,
|
|
204
|
+
version: update.version,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
throw (0, errors_1.wrapApiError)(err, `unable to update account: ${update.accountId}`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
exports.FarosClient = FarosClient;
|
package/lib/errors.d.ts
ADDED
package/lib/errors.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.wrapApiError = void 0;
|
|
7
|
+
const stream_1 = __importDefault(require("stream"));
|
|
8
|
+
const verror_1 = require("verror");
|
|
9
|
+
function formatMessageData(data) {
|
|
10
|
+
return data instanceof stream_1.default.Readable ? '[Stream]' : data;
|
|
11
|
+
}
|
|
12
|
+
function formatRequest(req) {
|
|
13
|
+
return {
|
|
14
|
+
baseUrl: req === null || req === void 0 ? void 0 : req.baseURL,
|
|
15
|
+
url: req === null || req === void 0 ? void 0 : req.url,
|
|
16
|
+
method: req === null || req === void 0 ? void 0 : req.method,
|
|
17
|
+
params: req === null || req === void 0 ? void 0 : req.params,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function formatResponse(res) {
|
|
21
|
+
return {
|
|
22
|
+
status: res.status,
|
|
23
|
+
headers: res.headers,
|
|
24
|
+
data: formatMessageData(res.data),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function isAxiosError(error) {
|
|
28
|
+
return error.isAxiosError;
|
|
29
|
+
}
|
|
30
|
+
/** Strips verbose properties that libraries like Axios attach to errors */
|
|
31
|
+
function wrapApiError(error, message) {
|
|
32
|
+
var _a;
|
|
33
|
+
if (!isAxiosError(error)) {
|
|
34
|
+
const cause = verror_1.VError.cause(error);
|
|
35
|
+
if (cause) {
|
|
36
|
+
// Wrap the cause recursively since it could contain an Axios error
|
|
37
|
+
error = new verror_1.WError(wrapApiError(cause), error.message);
|
|
38
|
+
}
|
|
39
|
+
return message ? new verror_1.WError(error, message) : error;
|
|
40
|
+
}
|
|
41
|
+
const prefix = message ? `${message}: ` : '';
|
|
42
|
+
const res = error.response;
|
|
43
|
+
const info = {
|
|
44
|
+
req: error.request
|
|
45
|
+
? formatRequest({ ...error.config, ...error.request })
|
|
46
|
+
: formatRequest(error.config),
|
|
47
|
+
res: res ? formatResponse(res) : undefined,
|
|
48
|
+
};
|
|
49
|
+
if (!res) {
|
|
50
|
+
return new verror_1.VError({ info }, '%sAPI request failed: %s', prefix, error.message);
|
|
51
|
+
}
|
|
52
|
+
const { data, status } = res;
|
|
53
|
+
let msg = `${prefix}API responded with status ${status}`;
|
|
54
|
+
const causeMsg = typeof data == 'string' ? data : (_a = data === null || data === void 0 ? void 0 : data.error) === null || _a === void 0 ? void 0 : _a.message;
|
|
55
|
+
if (causeMsg) {
|
|
56
|
+
msg += `: ${causeMsg}`;
|
|
57
|
+
}
|
|
58
|
+
return new verror_1.VError({ info }, msg);
|
|
59
|
+
}
|
|
60
|
+
exports.wrapApiError = wrapApiError;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Dictionary } from 'ts-essentials';
|
|
2
|
+
import { SchemaLoader } from './schema';
|
|
3
|
+
import { ArrayRelationship, ObjectRelationship, Schema, Table } from './types';
|
|
4
|
+
export declare class HasuraSchemaLoader implements SchemaLoader {
|
|
5
|
+
private readonly api;
|
|
6
|
+
private readonly camelCaseFieldNames;
|
|
7
|
+
constructor(url: string, adminSecret?: string, camelCaseFieldNames?: boolean);
|
|
8
|
+
private fetchDbSource;
|
|
9
|
+
private fetchPrimaryKeys;
|
|
10
|
+
/**
|
|
11
|
+
* Builds map from sourceTable to map of targetTable by fk column.
|
|
12
|
+
*
|
|
13
|
+
* That is, given:
|
|
14
|
+
* sourceTable (e.g. cicd_Build)
|
|
15
|
+
* fk column (e.g. pipeline_id in cicd_Build)
|
|
16
|
+
* targetTable (e.g. cicd_Pipeline): table.table.name
|
|
17
|
+
*
|
|
18
|
+
* The output, res, can be used as:
|
|
19
|
+
* res['cicd_Build']['pipeline_id'] => 'cicd_Pipeline
|
|
20
|
+
*/
|
|
21
|
+
static indexFkTargetModels(source: Source): Dictionary<Dictionary<string>>;
|
|
22
|
+
loadSchema(): Promise<Schema>;
|
|
23
|
+
}
|
|
24
|
+
interface TableWithRelationships {
|
|
25
|
+
table: Table;
|
|
26
|
+
object_relationships: ReadonlyArray<ObjectRelationship>;
|
|
27
|
+
array_relationships: ReadonlyArray<ArrayRelationship>;
|
|
28
|
+
}
|
|
29
|
+
interface Source {
|
|
30
|
+
name: string;
|
|
31
|
+
kind: string;
|
|
32
|
+
tables: ReadonlyArray<TableWithRelationships>;
|
|
33
|
+
configuration: any;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HasuraSchemaLoader = void 0;
|
|
7
|
+
const assert_1 = require("assert");
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
+
const lodash_1 = require("lodash");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const toposort_1 = __importDefault(require("toposort"));
|
|
13
|
+
const verror_1 = require("verror");
|
|
14
|
+
const schema_1 = require("./schema");
|
|
15
|
+
// Loads schema from a Hasura api
|
|
16
|
+
class HasuraSchemaLoader {
|
|
17
|
+
constructor(url, adminSecret, camelCaseFieldNames = false) {
|
|
18
|
+
this.api = axios_1.default.create({
|
|
19
|
+
baseURL: url,
|
|
20
|
+
headers: {
|
|
21
|
+
'X-Hasura-Role': 'admin',
|
|
22
|
+
...(adminSecret && { 'X-Hasura-Admin-Secret': adminSecret }),
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
this.camelCaseFieldNames = camelCaseFieldNames;
|
|
26
|
+
}
|
|
27
|
+
async fetchDbSource() {
|
|
28
|
+
const response = await this.api.post('/v1/metadata', {
|
|
29
|
+
type: 'export_metadata',
|
|
30
|
+
version: 2,
|
|
31
|
+
args: {},
|
|
32
|
+
});
|
|
33
|
+
const sources = response.data.metadata.sources;
|
|
34
|
+
const defaultSource = (0, lodash_1.find)(sources, (source) => source.name === 'default');
|
|
35
|
+
if (!defaultSource) {
|
|
36
|
+
throw new verror_1.VError('Faros database not connected to Hasura');
|
|
37
|
+
}
|
|
38
|
+
return defaultSource;
|
|
39
|
+
}
|
|
40
|
+
async fetchPrimaryKeys() {
|
|
41
|
+
const response = await this.api.post('/v2/query', {
|
|
42
|
+
type: 'run_sql',
|
|
43
|
+
args: {
|
|
44
|
+
source: 'default',
|
|
45
|
+
sql: await fs_extra_1.default.readFile(path_1.default.join(__dirname, '../../resources/fetch-primary-keys.sql'), 'utf8'),
|
|
46
|
+
cascade: false,
|
|
47
|
+
read_only: true,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
const result = response.data.result;
|
|
51
|
+
if (!result) {
|
|
52
|
+
throw new verror_1.VError('Failed to load primary keys');
|
|
53
|
+
}
|
|
54
|
+
const primaryKeys = {};
|
|
55
|
+
result
|
|
56
|
+
.filter((row) => row[0] !== 'table_name')
|
|
57
|
+
.forEach(([table, exp]) => {
|
|
58
|
+
// TODO: better way to do this?
|
|
59
|
+
primaryKeys[table] = exp
|
|
60
|
+
.replace('pkey(VARIADIC ARRAY[', '')
|
|
61
|
+
.replace('])', '')
|
|
62
|
+
.split(', ')
|
|
63
|
+
.map((col) => col.replace(/"/g, ''))
|
|
64
|
+
.map((col) => (this.camelCaseFieldNames ? (0, lodash_1.camelCase)(col) : col));
|
|
65
|
+
});
|
|
66
|
+
return primaryKeys;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Builds map from sourceTable to map of targetTable by fk column.
|
|
70
|
+
*
|
|
71
|
+
* That is, given:
|
|
72
|
+
* sourceTable (e.g. cicd_Build)
|
|
73
|
+
* fk column (e.g. pipeline_id in cicd_Build)
|
|
74
|
+
* targetTable (e.g. cicd_Pipeline): table.table.name
|
|
75
|
+
*
|
|
76
|
+
* The output, res, can be used as:
|
|
77
|
+
* res['cicd_Build']['pipeline_id'] => 'cicd_Pipeline
|
|
78
|
+
*/
|
|
79
|
+
static indexFkTargetModels(source) {
|
|
80
|
+
const res = {};
|
|
81
|
+
for (const table of source.tables) {
|
|
82
|
+
const targetTable = table.table.name;
|
|
83
|
+
if (table.array_relationships) {
|
|
84
|
+
for (const arrRel of table.array_relationships) {
|
|
85
|
+
const fkCol = (0, schema_1.foreignKeyForArray)(arrRel);
|
|
86
|
+
const sourceTable = remoteTableForArray(arrRel);
|
|
87
|
+
(0, assert_1.ok)(sourceTable, `missing source table on ${JSON.stringify(arrRel)}`);
|
|
88
|
+
if (!res[sourceTable]) {
|
|
89
|
+
res[sourceTable] = {};
|
|
90
|
+
}
|
|
91
|
+
res[sourceTable][fkCol] = targetTable;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return res;
|
|
96
|
+
}
|
|
97
|
+
async loadSchema() {
|
|
98
|
+
var _a, _b, _c, _d;
|
|
99
|
+
const primaryKeys = await this.fetchPrimaryKeys();
|
|
100
|
+
const source = await this.fetchDbSource();
|
|
101
|
+
const targetTableByFk = HasuraSchemaLoader.indexFkTargetModels(source);
|
|
102
|
+
const query = await fs_extra_1.default.readFile(path_1.default.join(__dirname, '../../resources/introspection-query.gql'), 'utf8');
|
|
103
|
+
const response = await this.api.post('/v1/graphql', { query });
|
|
104
|
+
const schema = response.data.data.__schema;
|
|
105
|
+
const tableNames = [];
|
|
106
|
+
const scalars = {};
|
|
107
|
+
const references = {};
|
|
108
|
+
const backReferences = {};
|
|
109
|
+
for (const table of source.tables) {
|
|
110
|
+
const tableName = table.table.name;
|
|
111
|
+
tableNames.push(tableName);
|
|
112
|
+
const type = (0, lodash_1.find)(schema.types, (t) => t.name === tableName && t.kind === 'OBJECT');
|
|
113
|
+
if (!type || !type.fields) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const scalarTypes = type.fields.filter((t) => (t.type.kind === 'SCALAR' ||
|
|
117
|
+
(t.type.kind === 'NON_NULL' && t.type.ofType.kind === 'SCALAR')) &&
|
|
118
|
+
t.description !== 'generated');
|
|
119
|
+
const tableScalars = {};
|
|
120
|
+
for (const scalar of scalarTypes) {
|
|
121
|
+
tableScalars[scalar.name] =
|
|
122
|
+
(_b = (_a = scalar.type.ofType) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : scalar.type.name;
|
|
123
|
+
}
|
|
124
|
+
scalars[tableName] = tableScalars;
|
|
125
|
+
const tableReferences = {};
|
|
126
|
+
for (const rel of (_c = table.object_relationships) !== null && _c !== void 0 ? _c : []) {
|
|
127
|
+
const fk = (0, schema_1.foreignKeyForObj)(rel);
|
|
128
|
+
const relFldName = this.camelCaseFieldNames ? (0, lodash_1.camelCase)(fk) : fk;
|
|
129
|
+
const relMetadata = {
|
|
130
|
+
field: rel.name,
|
|
131
|
+
model: targetTableByFk[table.table.name][fk],
|
|
132
|
+
};
|
|
133
|
+
// index relation metadata using both FK column and rel.name
|
|
134
|
+
// this is needed for cross-compatibility with CE and SaaS
|
|
135
|
+
// GraphQLClient iterates over fields of records checking this
|
|
136
|
+
// data structure for matches on nested objects.
|
|
137
|
+
// the record contains SDL relationship names like owner or repository
|
|
138
|
+
// in CE, the FK column matches this relationship name
|
|
139
|
+
// in SaaS, the column is irrelevant we need to index by Hasura rel.name
|
|
140
|
+
tableReferences[relFldName] = relMetadata;
|
|
141
|
+
tableReferences[rel.name] = relMetadata;
|
|
142
|
+
}
|
|
143
|
+
references[tableName] = tableReferences;
|
|
144
|
+
backReferences[tableName] = ((_d = table.array_relationships) !== null && _d !== void 0 ? _d : []).map((rel) => {
|
|
145
|
+
return {
|
|
146
|
+
field: rel.name,
|
|
147
|
+
model: remoteTableForArray(rel),
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const modelDeps = [];
|
|
152
|
+
for (const model of Object.keys(references)) {
|
|
153
|
+
for (const ref of Object.values(references[model])) {
|
|
154
|
+
if (model !== ref.model) {
|
|
155
|
+
modelDeps.push([model, ref.model]);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const sortedModelDependencies = (0, toposort_1.default)(modelDeps);
|
|
160
|
+
return {
|
|
161
|
+
primaryKeys,
|
|
162
|
+
scalars,
|
|
163
|
+
references,
|
|
164
|
+
backReferences,
|
|
165
|
+
sortedModelDependencies,
|
|
166
|
+
tableNames,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.HasuraSchemaLoader = HasuraSchemaLoader;
|
|
171
|
+
function remoteTableForArray(rel) {
|
|
172
|
+
var _a, _b;
|
|
173
|
+
if ((0, schema_1.isManualConfiguration)(rel.using)) {
|
|
174
|
+
return rel.using.manual_configuration.remote_table.name;
|
|
175
|
+
}
|
|
176
|
+
const arrFK = rel.using;
|
|
177
|
+
const table = (_b = (_a = arrFK.foreign_key_constraint_on) === null || _a === void 0 ? void 0 : _a.table) === null || _b === void 0 ? void 0 : _b.name;
|
|
178
|
+
(0, assert_1.ok)(table, `expected remote table on ${JSON.stringify(arrFK)}`);
|
|
179
|
+
return table;
|
|
180
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ArrayRelationship, ManualConfiguration, ObjectRelationship, Schema } from './types';
|
|
2
|
+
export declare function foreignKeyForObj(rel: ObjectRelationship): string;
|
|
3
|
+
export declare function foreignKeyForArray(rel: ArrayRelationship): string;
|
|
4
|
+
export declare function isManualConfiguration(using: ManualConfiguration | any): using is ManualConfiguration;
|
|
5
|
+
export interface SchemaLoader {
|
|
6
|
+
loadSchema(): Promise<Schema>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isManualConfiguration = exports.foreignKeyForArray = exports.foreignKeyForObj = void 0;
|
|
7
|
+
const assert_1 = require("assert");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
function foreignKeyForObj(rel) {
|
|
10
|
+
if (isManualConfiguration(rel.using)) {
|
|
11
|
+
// for object rel, column_mapping contains one entry
|
|
12
|
+
// mapping FK on host table to PK of target table
|
|
13
|
+
const fkToPkMap = rel.using.manual_configuration.column_mapping;
|
|
14
|
+
const fks = Object.keys(fkToPkMap);
|
|
15
|
+
(0, assert_1.ok)(fks.length === 1, `expected one foreign key in ${JSON.stringify(fkToPkMap)}`);
|
|
16
|
+
return fks[0];
|
|
17
|
+
}
|
|
18
|
+
const arrFK = rel.using;
|
|
19
|
+
const fk = arrFK.foreign_key_constraint_on;
|
|
20
|
+
(0, assert_1.ok)(typeof fk === 'string', `expected object fk on ${JSON.stringify(arrFK)}`);
|
|
21
|
+
return fk;
|
|
22
|
+
}
|
|
23
|
+
exports.foreignKeyForObj = foreignKeyForObj;
|
|
24
|
+
function foreignKeyForArray(rel) {
|
|
25
|
+
var _a;
|
|
26
|
+
if (isManualConfiguration(rel.using)) {
|
|
27
|
+
// for array rel, column_mapping contains one entry
|
|
28
|
+
// mapping PK of target table to FK on host table
|
|
29
|
+
const pkToFkMap = rel.using.manual_configuration.column_mapping;
|
|
30
|
+
const pks = Object.keys(pkToFkMap);
|
|
31
|
+
(0, assert_1.ok)(pks.length === 1, `expected one foreign key in ${JSON.stringify(pkToFkMap)}`);
|
|
32
|
+
return lodash_1.default.get(pkToFkMap, pks[0]);
|
|
33
|
+
}
|
|
34
|
+
const arrFK = rel.using;
|
|
35
|
+
const fk = (_a = arrFK.foreign_key_constraint_on) === null || _a === void 0 ? void 0 : _a.column;
|
|
36
|
+
(0, assert_1.ok)(fk, `expected array fk on ${JSON.stringify(arrFK)}`);
|
|
37
|
+
return fk;
|
|
38
|
+
}
|
|
39
|
+
exports.foreignKeyForArray = foreignKeyForArray;
|
|
40
|
+
function isManualConfiguration(using) {
|
|
41
|
+
return using.manual_configuration !== undefined;
|
|
42
|
+
}
|
|
43
|
+
exports.isManualConfiguration = isManualConfiguration;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Dictionary } from 'ts-essentials';
|
|
2
|
+
export interface Table {
|
|
3
|
+
schema: string;
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ManualConfiguration {
|
|
7
|
+
manual_configuration: {
|
|
8
|
+
column_mapping: Dictionary<string>;
|
|
9
|
+
remote_table: {
|
|
10
|
+
name: string;
|
|
11
|
+
schema?: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface ObjectForeignKey {
|
|
16
|
+
foreign_key_constraint_on: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ArrayForeignKey {
|
|
19
|
+
foreign_key_constraint_on: {
|
|
20
|
+
column: string;
|
|
21
|
+
table: Table;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface ObjectRelationship {
|
|
25
|
+
name: string;
|
|
26
|
+
using: ObjectForeignKey | ManualConfiguration;
|
|
27
|
+
}
|
|
28
|
+
export interface ArrayRelationship {
|
|
29
|
+
name: string;
|
|
30
|
+
using: ArrayForeignKey | ManualConfiguration;
|
|
31
|
+
}
|
|
32
|
+
export interface Reference {
|
|
33
|
+
field: string;
|
|
34
|
+
model: string;
|
|
35
|
+
}
|
|
36
|
+
export interface Schema {
|
|
37
|
+
primaryKeys: Dictionary<string[]>;
|
|
38
|
+
scalars: Dictionary<Dictionary<string>>;
|
|
39
|
+
references: Dictionary<Dictionary<Reference>>;
|
|
40
|
+
backReferences: Dictionary<Reference[]>;
|
|
41
|
+
sortedModelDependencies: ReadonlyArray<string>;
|
|
42
|
+
tableNames: ReadonlyArray<string>;
|
|
43
|
+
}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { DEFAULT_RETRY_DELAY, DEFAULT_RETRIES, makeAxiosInstance, makeAxiosInstanceWithRetry, } from './axios';
|
|
2
|
+
export { wrapApiError } from './errors';
|
|
3
|
+
export { FarosClient } from './client';
|
|
4
|
+
export { Account, Address, Coordinates, FarosClientConfig, Location, NamedQuery, SecretName, UpdateAccount, } from './types';
|
|
5
|
+
export { foreignKeyForArray, foreignKeyForObj, SchemaLoader, } from './graphql/schema';
|
|
6
|
+
export { ArrayForeignKey, ArrayRelationship, ManualConfiguration, ObjectForeignKey, ObjectRelationship, Reference, Schema, } from './graphql/types';
|
|
7
|
+
export { HasuraSchemaLoader } from './graphql/hasura-schema-loader';
|
|
8
|
+
export { Utils } from './utils';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Utils = exports.HasuraSchemaLoader = exports.foreignKeyForObj = exports.foreignKeyForArray = exports.FarosClient = exports.wrapApiError = exports.makeAxiosInstanceWithRetry = exports.makeAxiosInstance = exports.DEFAULT_RETRIES = exports.DEFAULT_RETRY_DELAY = void 0;
|
|
4
|
+
var axios_1 = require("./axios");
|
|
5
|
+
Object.defineProperty(exports, "DEFAULT_RETRY_DELAY", { enumerable: true, get: function () { return axios_1.DEFAULT_RETRY_DELAY; } });
|
|
6
|
+
Object.defineProperty(exports, "DEFAULT_RETRIES", { enumerable: true, get: function () { return axios_1.DEFAULT_RETRIES; } });
|
|
7
|
+
Object.defineProperty(exports, "makeAxiosInstance", { enumerable: true, get: function () { return axios_1.makeAxiosInstance; } });
|
|
8
|
+
Object.defineProperty(exports, "makeAxiosInstanceWithRetry", { enumerable: true, get: function () { return axios_1.makeAxiosInstanceWithRetry; } });
|
|
9
|
+
var errors_1 = require("./errors");
|
|
10
|
+
Object.defineProperty(exports, "wrapApiError", { enumerable: true, get: function () { return errors_1.wrapApiError; } });
|
|
11
|
+
var client_1 = require("./client");
|
|
12
|
+
Object.defineProperty(exports, "FarosClient", { enumerable: true, get: function () { return client_1.FarosClient; } });
|
|
13
|
+
var schema_1 = require("./graphql/schema");
|
|
14
|
+
Object.defineProperty(exports, "foreignKeyForArray", { enumerable: true, get: function () { return schema_1.foreignKeyForArray; } });
|
|
15
|
+
Object.defineProperty(exports, "foreignKeyForObj", { enumerable: true, get: function () { return schema_1.foreignKeyForObj; } });
|
|
16
|
+
var hasura_schema_loader_1 = require("./graphql/hasura-schema-loader");
|
|
17
|
+
Object.defineProperty(exports, "HasuraSchemaLoader", { enumerable: true, get: function () { return hasura_schema_loader_1.HasuraSchemaLoader; } });
|
|
18
|
+
var utils_1 = require("./utils");
|
|
19
|
+
Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return utils_1.Utils; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.es2019.full.d.ts","../node_modules/axios/index.d.ts","../node_modules/axios-retry/index.d.ts","../node_modules/@types/node/ts4.8/assert.d.ts","../node_modules/@types/node/ts4.8/assert/strict.d.ts","../node_modules/@types/node/ts4.8/globals.d.ts","../node_modules/@types/node/ts4.8/async_hooks.d.ts","../node_modules/@types/node/ts4.8/buffer.d.ts","../node_modules/@types/node/ts4.8/child_process.d.ts","../node_modules/@types/node/ts4.8/cluster.d.ts","../node_modules/@types/node/ts4.8/console.d.ts","../node_modules/@types/node/ts4.8/constants.d.ts","../node_modules/@types/node/ts4.8/crypto.d.ts","../node_modules/@types/node/ts4.8/dgram.d.ts","../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../node_modules/@types/node/ts4.8/dns.d.ts","../node_modules/@types/node/ts4.8/dns/promises.d.ts","../node_modules/@types/node/ts4.8/domain.d.ts","../node_modules/@types/node/ts4.8/events.d.ts","../node_modules/@types/node/ts4.8/fs.d.ts","../node_modules/@types/node/ts4.8/fs/promises.d.ts","../node_modules/@types/node/ts4.8/http.d.ts","../node_modules/@types/node/ts4.8/http2.d.ts","../node_modules/@types/node/ts4.8/https.d.ts","../node_modules/@types/node/ts4.8/inspector.d.ts","../node_modules/@types/node/ts4.8/module.d.ts","../node_modules/@types/node/ts4.8/net.d.ts","../node_modules/@types/node/ts4.8/os.d.ts","../node_modules/@types/node/ts4.8/path.d.ts","../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../node_modules/@types/node/ts4.8/process.d.ts","../node_modules/@types/node/ts4.8/punycode.d.ts","../node_modules/@types/node/ts4.8/querystring.d.ts","../node_modules/@types/node/ts4.8/readline.d.ts","../node_modules/@types/node/ts4.8/repl.d.ts","../node_modules/@types/node/ts4.8/stream.d.ts","../node_modules/@types/node/ts4.8/stream/promises.d.ts","../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../node_modules/@types/node/ts4.8/stream/web.d.ts","../node_modules/@types/node/ts4.8/string_decoder.d.ts","../node_modules/@types/node/ts4.8/test.d.ts","../node_modules/@types/node/ts4.8/timers.d.ts","../node_modules/@types/node/ts4.8/timers/promises.d.ts","../node_modules/@types/node/ts4.8/tls.d.ts","../node_modules/@types/node/ts4.8/trace_events.d.ts","../node_modules/@types/node/ts4.8/tty.d.ts","../node_modules/@types/node/ts4.8/url.d.ts","../node_modules/@types/node/ts4.8/util.d.ts","../node_modules/@types/node/ts4.8/v8.d.ts","../node_modules/@types/node/ts4.8/vm.d.ts","../node_modules/@types/node/ts4.8/wasi.d.ts","../node_modules/@types/node/ts4.8/worker_threads.d.ts","../node_modules/@types/node/ts4.8/zlib.d.ts","../node_modules/@types/node/ts4.8/globals.global.d.ts","../node_modules/@types/node/ts4.8/index.d.ts","../node_modules/pino-std-serializers/index.d.ts","../node_modules/pino/node_modules/sonic-boom/types/index.d.ts","../node_modules/pino/pino.d.ts","../node_modules/@types/verror/index.d.ts","../src/errors.ts","../src/axios.ts","../node_modules/graphql/version.d.ts","../node_modules/graphql/jsutils/Maybe.d.ts","../node_modules/graphql/language/source.d.ts","../node_modules/graphql/jsutils/ObjMap.d.ts","../node_modules/graphql/jsutils/Path.d.ts","../node_modules/graphql/jsutils/PromiseOrValue.d.ts","../node_modules/graphql/language/kinds.d.ts","../node_modules/graphql/language/tokenKind.d.ts","../node_modules/graphql/language/ast.d.ts","../node_modules/graphql/language/location.d.ts","../node_modules/graphql/error/GraphQLError.d.ts","../node_modules/graphql/language/directiveLocation.d.ts","../node_modules/graphql/type/directives.d.ts","../node_modules/graphql/type/schema.d.ts","../node_modules/graphql/type/definition.d.ts","../node_modules/graphql/execution/execute.d.ts","../node_modules/graphql/graphql.d.ts","../node_modules/graphql/type/scalars.d.ts","../node_modules/graphql/type/introspection.d.ts","../node_modules/graphql/type/validate.d.ts","../node_modules/graphql/type/assertName.d.ts","../node_modules/graphql/type/index.d.ts","../node_modules/graphql/language/printLocation.d.ts","../node_modules/graphql/language/lexer.d.ts","../node_modules/graphql/language/parser.d.ts","../node_modules/graphql/language/printer.d.ts","../node_modules/graphql/language/visitor.d.ts","../node_modules/graphql/language/predicates.d.ts","../node_modules/graphql/language/index.d.ts","../node_modules/graphql/execution/subscribe.d.ts","../node_modules/graphql/execution/values.d.ts","../node_modules/graphql/execution/index.d.ts","../node_modules/graphql/subscription/index.d.ts","../node_modules/graphql/utilities/TypeInfo.d.ts","../node_modules/graphql/validation/ValidationContext.d.ts","../node_modules/graphql/validation/validate.d.ts","../node_modules/graphql/validation/specifiedRules.d.ts","../node_modules/graphql/validation/rules/ExecutableDefinitionsRule.d.ts","../node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.d.ts","../node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.d.ts","../node_modules/graphql/validation/rules/KnownArgumentNamesRule.d.ts","../node_modules/graphql/validation/rules/KnownDirectivesRule.d.ts","../node_modules/graphql/validation/rules/KnownFragmentNamesRule.d.ts","../node_modules/graphql/validation/rules/KnownTypeNamesRule.d.ts","../node_modules/graphql/validation/rules/LoneAnonymousOperationRule.d.ts","../node_modules/graphql/validation/rules/NoFragmentCyclesRule.d.ts","../node_modules/graphql/validation/rules/NoUndefinedVariablesRule.d.ts","../node_modules/graphql/validation/rules/NoUnusedFragmentsRule.d.ts","../node_modules/graphql/validation/rules/NoUnusedVariablesRule.d.ts","../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts","../node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.d.ts","../node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.d.ts","../node_modules/graphql/validation/rules/ScalarLeafsRule.d.ts","../node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.d.ts","../node_modules/graphql/validation/rules/UniqueArgumentNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.d.ts","../node_modules/graphql/validation/rules/UniqueFragmentNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueOperationNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueVariableNamesRule.d.ts","../node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.d.ts","../node_modules/graphql/validation/rules/VariablesAreInputTypesRule.d.ts","../node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.d.ts","../node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.d.ts","../node_modules/graphql/validation/rules/UniqueOperationTypesRule.d.ts","../node_modules/graphql/validation/rules/UniqueTypeNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts","../node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.d.ts","../node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.d.ts","../node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.d.ts","../node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts","../node_modules/graphql/validation/index.d.ts","../node_modules/graphql/error/syntaxError.d.ts","../node_modules/graphql/error/locatedError.d.ts","../node_modules/graphql/error/index.d.ts","../node_modules/graphql/utilities/getIntrospectionQuery.d.ts","../node_modules/graphql/utilities/getOperationAST.d.ts","../node_modules/graphql/utilities/getOperationRootType.d.ts","../node_modules/graphql/utilities/introspectionFromSchema.d.ts","../node_modules/graphql/utilities/buildClientSchema.d.ts","../node_modules/graphql/utilities/buildASTSchema.d.ts","../node_modules/graphql/utilities/extendSchema.d.ts","../node_modules/graphql/utilities/lexicographicSortSchema.d.ts","../node_modules/graphql/utilities/printSchema.d.ts","../node_modules/graphql/utilities/typeFromAST.d.ts","../node_modules/graphql/utilities/valueFromAST.d.ts","../node_modules/graphql/utilities/valueFromASTUntyped.d.ts","../node_modules/graphql/utilities/astFromValue.d.ts","../node_modules/graphql/utilities/coerceInputValue.d.ts","../node_modules/graphql/utilities/concatAST.d.ts","../node_modules/graphql/utilities/separateOperations.d.ts","../node_modules/graphql/utilities/stripIgnoredCharacters.d.ts","../node_modules/graphql/utilities/typeComparators.d.ts","../node_modules/graphql/utilities/assertValidName.d.ts","../node_modules/graphql/utilities/findBreakingChanges.d.ts","../node_modules/graphql/utilities/typedQueryDocumentNode.d.ts","../node_modules/graphql/utilities/index.d.ts","../node_modules/graphql/index.d.ts","../node_modules/ts-essentials/dist/types.d.ts","../node_modules/ts-essentials/dist/functions.d.ts","../node_modules/ts-essentials/dist/index.d.ts","../src/graphql/types.ts","../src/types.ts","../src/utils.ts","../src/client.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../src/graphql/schema.ts","../node_modules/@types/fs-extra/index.d.ts","../node_modules/@types/toposort/index.d.ts","../src/graphql/hasura-schema-loader.ts","../src/index.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/jest-diff/build/cleanupSemantic.d.ts","../node_modules/pretty-format/build/types.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/types.d.ts","../node_modules/jest-diff/build/diffLines.d.ts","../node_modules/jest-diff/build/printDiffs.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/sonic-boom/types/index.d.ts","../node_modules/pino-abstract-transport/index.d.ts","../node_modules/pino-pretty/index.d.ts","../node_modules/@types/pino/index.d.ts","../node_modules/@types/pino-pretty/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/tmp/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","3154a026075044aa102298fe9e6a7a14aaa26a06270680c7478a1765af8ffb09","e112c923b00f99b5c274bef936b2ff3e684113406202570e824a5d6f7d1f3744","4911d4c3a7f7c11bad0e2cec329a19a385d10ea83b0b69c76e032359e388f624","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"4ffef5c4698e94e49dcf150e3270bad2b24a2aeab48b24acbe7c1366edff377d","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","67a12e6c992d3f770078bacc562f767cf6142ae4453759a482f8f5ed30a99027","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1805e0e4d1ed00f6361db25dff6887c7fa9b5b39f32599a34e8551da7daaa9c2","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","f142151303f0792b81eff90b554081d2b78b146a83a4bc573228338e70afa420","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a","043e933c8127f2215f940035bfac94354b82a49f419bb77af0045f0c57e6a05e","9d9f4da63084ac107eddda8b4ea92d7ee443e0c86601e8c844943b82fd3ef6f8","bf6a6c97153fdaaa33105ad573d1d0069ebcdf075f9d66459a6c1ed4073feb3d","4b5e3faff10d6bbeac24f4ceec4b5fc6212159aef9cbd650e480b09513430cbd",{"version":"f930d2f54bd389841b5aa4da0717868dbbca53205ecc43541fa0025797d774c0","signature":"0005fbc0ce949c770dbf96ab77129e41cf20a13fc187c0558da2ae0c9ab11f40"},{"version":"dd47f621169979b98bafd3c0718b3f06f51099db6ebd3db2b35909b9f12f9bda","signature":"c654ce27bf476fdedbb93c5a1da876f4e3f9d1c4adab6b3599d34604fdce9107"},"78647004e18e4c16b8a2e8345fca9267573d1c5a29e11ddfee71858fd077ef6e","0804044cd0488cb7212ddbc1d0f8e1a5bd32970335dbfc613052304a1b0318f9","b725acb041d2a18fde8f46c48a1408418489c4aa222f559b1ef47bf267cb4be0","85084ae98c1d319e38ef99b1216d3372a9afd7a368022c01c3351b339d52cb58","898ec2410fae172e0a9416448b0838bed286322a5c0c8959e8e39400cd4c5697","692345a43bac37c507fa7065c554258435ab821bbe4fb44b513a70063e932b45","cddd50d7bd9d7fddda91a576db9f61655d1a55e2d870f154485812f6e39d4c15","0539583b089247b73a21eb4a5f7e43208a129df6300d6b829dc1039b79b6c8c4","7aba43bc7764fcd02232382c780c3e99ef8dbfdac3c58605a0b3781fab3d8044","522edc786ed48304671b935cf7d3ed63acc6636ab9888c6e130b97a6aea92b46","1e1ed5600d80406a10428e349af8b6f09949cd5054043ea8588903e8f9e8d705","de21641eb8edcbc08dd0db4ee70eea907cd07fe72267340b5571c92647f10a77","a53039ba614075aeb702271701981babbd0d4f4dcbf319ddee4c08fb8196cc7a","6758f7b72fa4d38f4f4b865516d3d031795c947a45cc24f2cfba43c91446d678","da679a5bb46df3c6d84f637f09e6689d6c2d07e907ea16adc161e4529a4954d6","dc1a664c33f6ddd2791569999db2b3a476e52c5eeb5474768ffa542b136d78c0","bdf7abbd7df4f29b3e0728684c790e80590b69d92ed8d3bf8e66d4bd713941fe","8decb32fc5d44b403b46c3bb4741188df4fbc3c66d6c65669000c5c9cd506523","4beaf337ee755b8c6115ff8a17e22ceab986b588722a52c776b8834af64e0f38","c26dd198f2793bbdcc55103823a2767d6223a7fdb92486c18b86deaf63208354","93551b302a808f226f0846ad8012354f2d53d6dedc33b540d6ca69836781a574","f0ff1c010d5046af3874d3b4df746c6f3921e4b3fbdec61dee0792fc0cb36ccd","778b684ebc6b006fcffeab77d25b34bf6e400100e0ec0c76056e165c6399ab05","463851fa993af55fb0296e0d6afa27407ef91bf6917098dd665aba1200d250c7","67c6de7a9c490bda48eb401bea93904b6bbfc60e47427e887e6a3da6195540be","be8f369f8d7e887eab87a3e4e41f1afcf61bf06056801383152aa83bda1f6a72","352bfb5f3a9d8a9c2464ad2dc0b2dc56a8212650a541fb550739c286dd341de1","a5aae636d9afdacb22d98e4242487436d8296e5a345348325ccc68481fe1b690","d007c769e33e72e51286b816d82cd7c3a280cba714e7f958691155068bd7150a","764150c107451d2fd5b6de305cff0a9dcecf799e08e6f14b5a6748724db46d8a","b04cf223c338c09285010f5308b980ee6d8bfa203824ed2537516f15e92e8c43","4b387f208d1e468193a45a51005b1ed5b666010fc22a15dc1baf4234078b636e","70441eda704feffd132be0c1541f2c7f6bbaafce25cb9b54b181e26af3068e79","d1addb12403afea87a1603121396261a45190886c486c88e1a5d456be17c2049","15d43873064dc8787ca1e4c39149be59183c404d48a8cd5a0ea019bb5fdf8d58","ea4b5d319625203a5a96897b057fddf6017d0f9a902c16060466fe69cc007243","3d06897c536b4aad2b2b015d529270439f2cadd89ca2ff7bd8898ee84898dd88","ab01d8fcb89fae8eda22075153053fefac69f7d9571a389632099e7a53f1922d","bac0ec1f4c61abc7c54ccebb0f739acb0cdbc22b1b19c91854dc142019492961","566b0806f9016fa067b7fecf3951fcc295c30127e5141223393bde16ad04aa4a","8e801abfeda45b1b93e599750a0a8d25074d30d4cc01e3563e56c0ff70edeb68","902997f91b09620835afd88e292eb217fbd55d01706b82b9a014ff408f357559","a3727a926e697919fb59407938bd8573964b3bf543413b685996a47df5645863","83f36c0792d352f641a213ee547d21ea02084a148355aa26b6ef82c4f61c1280","dce7d69c17a438554c11bbf930dec2bee5b62184c0494d74da336daee088ab69","1e8f2cda9735002728017933c54ccea7ebee94b9c68a59a4aac1c9a58aa7da7d","e327a2b222cf9e5c93d7c1ed6468ece2e7b9d738e5da04897f1a99f49d42cca1","65165246b59654ec4e1501dd87927a0ef95d57359709e00e95d1154ad8443bc7","f1bacba19e2fa2eb26c499e36b5ab93d6764f2dba44be3816f12d2bc9ac9a35b","bce38da5fd851520d0cb4d1e6c3c04968cec2faa674ed321c118e97e59872edc","3398f46037f21fb6c33560ceca257259bd6d2ea03737179b61ea9e17cbe07455","6e14fc6c27cb2cb203fe1727bb3a923588f0be8c2604673ad9f879182548daca","12b9bcf8395d33837f301a8e6d545a24dfff80db9e32f8e8e6cf4b11671bb442","04295cc38689e32a4ea194c954ea6604e6afb6f1c102104f74737cb8cf744422","7418f434c136734b23f634e711cf44613ca4c74e63a5ae7429acaee46c7024c8","27d40290b7caba1c04468f2b53cf7112f247f8acdd7c20589cd7decf9f762ad0","2608b8b83639baf3f07316df29202eead703102f1a7e32f74a1b18cf1eee54b5","c93657567a39bd589effe89e863aaadbc339675fca6805ae4d97eafbcce0a05d","909d5db5b3b19f03dfb4a8f1d00cf41d2f679857c28775faf1f10794cbbe9db9","e4504bffce13574bab83ab900b843590d85a0fd38faab7eff83d84ec55de4aff","8ab707f3c833fc1e8a51106b8746c8bc0ce125083ea6200ad881625ae35ce11e","730ddc2386276ac66312edbcc60853fedbb1608a99cb0b1ff82ebf26911dba1f","c1b3fa201aa037110c43c05ea97800eb66fea3f2ecc5f07c6fd47f2b6b5b21d2","636b44188dc6eb326fd566085e6c1c6035b71f839d62c343c299a35888c6f0a9","3b2105bf9823b53c269cabb38011c5a71360c8daabc618fec03102c9514d230c","f96e63eb56e736304c3aef6c745b9fe93db235ddd1fec10b45319c479de1a432","acb4f3cee79f38ceba975e7ee3114eb5cd96ccc02742b0a4c7478b4619f87cd6","cfc85d17c1493b6217bad9052a8edc332d1fde81a919228edab33c14aa762939","eebda441c4486c26de7a8a7343ebbc361d2b0109abff34c2471e45e34a93020a","727b4b8eb62dd98fa4e3a0937172c1a0041eb715b9071c3de96dad597deddcab","708e2a347a1b9868ccdb48f3e43647c6eccec47b8591b220afcafc9e7eeb3784","6bb598e2d45a170f302f113a5b68e518c8d7661ae3b59baf076be9120afa4813","c28e058db8fed2c81d324546f53d2a7aaefff380cbe70f924276dbad89acd7d1","ebe8f07bb402102c5a764b0f8e34bd92d6f50bd7ac61a2452e76b80e02f9bb4b","826a98cb79deab45ccc4e5a8b90fa64510b2169781a7cbb83c4a0a8867f4cc58","618189f94a473b7fdc5cb5ba8b94d146a0d58834cd77cd24d56995f41643ccd5","5baadaca408128671536b3cb77fea44330e169ada70ce50b902c8d992fe64cf1","a4cc469f3561ea3edc57e091f4c9dcaf7485a70d3836be23a6945db46f0acd0b","91b0965538a5eaafa8c09cf9f62b46d6125aa1b3c0e0629dce871f5f41413f90","2978e33a00b4b5fb98337c5e473ab7337030b2f69d1480eccef0290814af0d51","ba71e9777cb5460e3278f0934fd6354041cb25853feca542312807ce1f18e611","608dbaf8c8bb64f4024013e73d7107c16dba4664999a8c6e58f3e71545e48f66","61937cefd7f4d6fa76013d33d5a3c5f9b0fc382e90da34790764a0d17d6277fb","af7db74826f455bfef6a55a188eb6659fd85fdc16f720a89a515c48724ee4c42","d6ce98a960f1b99a72de771fb0ba773cb202c656b8483f22d47d01d68f59ea86","2a47dc4a362214f31689870f809c7d62024afb4297a37b22cb86f679c4d04088","42d907ac511459d7c4828ee4f3f81cc331a08dc98d7b3cb98e3ff5797c095d2e","63d010bff70619e0cdf7900e954a7e188d3175461182f887b869c312a77ecfbd","1452816d619e636de512ca98546aafb9a48382d570af1473f0432a9178c4b1ff","9e3e3932fe16b9288ec8c948048aef4edf1295b09a5412630d63f4a42265370e","8bdba132259883bac06056f7bacd29a4dcf07e3f14ce89edb022fe9b78dcf9b3","5a5406107d9949d83e1225273bcee1f559bb5588942907d923165d83251a0e37","ca0ca4ca5ad4772161ee2a99741d616fea780d777549ba9f05f4a24493ab44e1","e7ee7be996db0d7cce41a85e4cae3a5fc86cf26501ad94e0a20f8b6c1c55b2d4","72263ae386d6a49392a03bde2f88660625da1eca5df8d95120d8ccf507483d20","b498375d015f01585269588b6221008aae6f0c0dc53ead8796ace64bdfcf62ea","c37aa3657fa4d1e7d22565ae609b1370c6b92bafb8c92b914403d45f0e610ddc","34534c0ead52cc753bdfdd486430ef67f615ace54a4c0e5a3652b4116af84d6d","a1079b54643537f75fa4f4bb963d787a302bddbe3a6001c4b0a524b746e6a9de","7fc9b18b6aafa8a1fc1441670c6c9da63e3d7942c7f451300c48bafd988545e9","1ab6ca7264748a8974210e75d43b181ff9fc5a8a1d600f44f2ec70537871e544","d939831bbcbbcb25d93d49c4a2106e743f268f4fdf358b784542fc5473c3dc17","117d53e8b22b4b1bd0d8d0a83f0444baa285f1187b7430de0a3861b6e3a41515",{"version":"8b1f9c1347241c29ebcc5c6317cc47444c735d7ecdc0fde36ed28466dae8d8ff","signature":"855a005f233848dad15d896cc2f32503a286e3167ecc38a46dd6a010aa930bc7"},{"version":"6052eeaa5654b59fea5913bce516d2eb84a608ec284c7321248978ca475276f0","signature":"a717d4109d289d04d81d8596c1fa818c85a1c157703a2545f1a39ba4978e388e"},{"version":"d23f6bdb5bb9c0a06686d804a3ff3bf6aa61891c2524429a30cfc9125783aa2f","signature":"a094aae163af6bda2ec7fd4ef7c37bcdcca42e2b0158dc8cebccaee7d690d950"},{"version":"fc6bdd6083dbae39beeb55b342df66d5abf60dd60bf4d5ad89781534d1f235ec","signature":"bf71d3e57bbca42f2170fcce6b654e9f8b2552db7d550309d0743e05448eaa73"},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","9c41e412e6d07b29d8772641d4016dec5984225f7ecc2008bd8173ff14465047","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},{"version":"0169d0ed56cfbe74b7eedb69037fd50e61f347ee9e19064d19b353c908d8df25","signature":"84629288d96819379ce2984392a2808ee435acb8c0ddec2428c3da2481f1e8b4"},"ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","1d84555c17c5f9130c232f700e0776f2c5ade64f84baf35fc67b2968b49f5a1a",{"version":"048ecf71adb0e6ccebf986faf207b07e481d9fc64a4788d98977930e8623e48a","signature":"449b8990dba0a0d75011f1ed69208c60bd0b02b3526b896fc166085cb1b1af13"},{"version":"6323a1384f4c094dd7f1a6b22bb9008fb9450a89b7b27a78477d58356387f6f2","signature":"d18d3ee9efec4f131c7228392d5876aaa08ac9455ab18a9e51cd1b7ae195e8c5"},"497d9c40ac3fbb712314a26d91994a3c0770b0e742918f4f58c722c5514263be","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73",{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","172f31b538f6e3f70c2d001d665d5a46c4b043f707ba822b4d906d59bd9c229d","0d47fc0aed3e69968b3e168c4f2afba7f02fe81b7d40f34c5fbe4c8ed14222ac","955081e7442259cc2cbf0f7f122bc2fa10387c3c5298a8bd4cd402dbcefce4cf","685fbeeffdff5e703820a6328ef0c7b693d398bf8d061e1050e20344f8ddf47a","9fb516ebe85470350609bb6bd3c38181bef2e64970aa2233391d5cb2bb096270","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","6061aa83817c30d3a590f037b3cba22cdd809fbe697926d6511b45147928a342","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","6ba73232c9d3267ca36ddb83e335d474d2c0e167481e3dec416c782894e11438"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","rootDir":"../src","strict":true,"target":6},"fileIdsList":[[92,231],[92],[92,231,232,233,234,235],[92,231,233],[64,92,99],[92,238],[92,239],[92,244,249],[92,213,215,216,217,218,219,220,221,222,223,224,225],[92,213,214,216,217,218,219,220,221,222,223,224,225],[92,214,215,216,217,218,219,220,221,222,223,224,225],[92,213,214,215,217,218,219,220,221,222,223,224,225],[92,213,214,215,216,218,219,220,221,222,223,224,225],[92,213,214,215,216,217,219,220,221,222,223,224,225],[92,213,214,215,216,217,218,220,221,222,223,224,225],[92,213,214,215,216,217,218,219,221,222,223,224,225],[92,213,214,215,216,217,218,219,220,222,223,224,225],[92,213,214,215,216,217,218,219,220,221,223,224,225],[92,213,214,215,216,217,218,219,220,221,222,224,225],[92,213,214,215,216,217,218,219,220,221,222,223,225],[92,213,214,215,216,217,218,219,220,221,222,223,224],[48,92],[51,92],[52,57,83,92],[53,63,64,71,80,91,92],[53,54,63,71,92],[55,92],[56,57,64,72,92],[57,80,88,92],[58,60,63,71,92],[59,92],[60,61,92],[62,63,92],[63,92],[63,64,65,80,91,92],[63,64,65,80,92],[66,71,80,91,92],[63,64,66,67,71,80,88,91,92],[66,68,80,88,91,92],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[63,69,92],[70,91,92],[60,63,71,80,92],[72,92],[73,92],[51,74,92],[75,90,92,96],[76,92],[77,92],[63,78,92],[78,79,92,94],[52,63,80,81,82,92],[52,80,82,92],[80,81,92],[83,92],[84,92],[63,86,87,92],[86,87,92],[57,71,88,92],[89,92],[71,90,92],[52,66,77,91,92],[57,92],[80,92,93],[92,94],[92,95],[52,57,63,65,74,80,91,92,94,96],[80,92,97],[92,99,102],[63,66,80,92,99,100,252,254],[92,260],[46,47,92],[92,107,108,114,115],[92,116,180,181],[92,107,114,116],[92,108,116],[92,107,109,110,111,114,116,119,120],[92,110,121,135,136],[92,107,114,119,120,121],[92,107,109,114,116,118,119,120],[92,107,108,119,120,121],[92,106,122,127,134,137,138,179,182,204],[92,107],[92,108,112,113],[92,108,112,113,114,115,117,128,129,130,131,132,133],[92,108,113,114],[92,108],[92,107,108,113,114,116,129],[92,114],[92,108,114,115],[92,112,114],[92,121,135],[92,107,109,110,111,114,119],[92,107,114,117,120],[92,110,118,119,120,123,124,125,126],[92,120],[92,107,109,114,116,118,120],[92,116,119],[92,107,114,118,119,120,132],[92,116],[92,107,114,120],[92,108,114,119,130],[92,119,183],[92,116,120],[92,114,119],[92,119],[92,107,117],[92,107,114],[92,114,119,120],[92,139,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[92,119,120],[92,109,114],[92,107,109,114,120],[92,107,109,114],[92,107,114,116,118,119,120,132,139],[92,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],[92,132,140],[92,140],[92,107,114,116,119,139,140],[92,242,245],[92,242,245,246,247],[92,244],[92,241,248],[80,92,99],[80,92,99,102,253],[66,92,99],[63,92,99],[63,92,96,100,101],[92,243],[92,206,207],[46,47,92,102,104],[46,47,92,102,104,105,205,209,210,211],[46,47,80,92,103],[46,47,48,73,92,103,208,209,225,226,227,228],[48,92,209,225],[92,208],[92,104,105,209,210,211,212,226,229],[46,47,102],[46,47,102,205,209,210],[208,209,226],[209],[208],[104,105,209,210,211,212,226,229]],"referencedMap":[[233,1],[231,2],[236,3],[232,1],[234,4],[235,1],[227,5],[237,5],[238,2],[239,6],[240,7],[250,8],[251,2],[214,9],[215,10],[213,11],[216,12],[217,13],[218,14],[219,15],[220,16],[221,17],[222,18],[223,19],[224,20],[225,21],[48,22],[49,22],[51,23],[52,24],[53,25],[54,26],[55,27],[56,28],[57,29],[58,30],[59,31],[60,32],[61,32],[62,33],[63,34],[64,35],[65,36],[50,2],[98,2],[66,37],[67,38],[68,39],[99,40],[69,41],[70,42],[71,43],[72,44],[73,45],[74,46],[75,47],[76,48],[77,49],[78,50],[79,51],[80,52],[82,53],[81,54],[83,55],[84,56],[85,2],[86,57],[87,58],[88,59],[89,60],[90,61],[91,62],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[256,69],[255,70],[257,2],[258,2],[259,2],[228,2],[103,2],[260,2],[261,71],[47,72],[46,2],[241,2],[116,73],[182,74],[181,75],[180,76],[121,77],[137,78],[135,79],[136,80],[122,81],[205,82],[107,2],[109,2],[110,83],[111,2],[114,84],[117,2],[134,85],[112,2],[129,86],[115,87],[130,88],[133,89],[128,90],[131,89],[108,2],[113,2],[132,91],[138,92],[126,2],[120,93],[118,94],[127,95],[124,96],[123,96],[119,97],[125,98],[139,99],[201,100],[195,101],[188,102],[187,103],[196,104],[197,89],[189,105],[202,106],[183,107],[184,108],[185,109],[204,110],[186,103],[190,106],[191,111],[198,112],[199,87],[200,111],[192,109],[203,89],[193,113],[194,114],[140,115],[179,116],[143,117],[144,117],[145,117],[146,117],[147,117],[148,117],[149,117],[150,117],[169,117],[151,117],[152,117],[153,117],[154,117],[155,117],[156,117],[176,117],[157,117],[158,117],[159,117],[174,117],[160,117],[175,117],[161,117],[172,117],[173,117],[162,117],[163,117],[164,117],[170,117],[171,117],[165,117],[166,117],[167,117],[168,117],[177,117],[178,117],[142,118],[141,119],[106,2],[242,2],[246,120],[248,121],[247,120],[245,122],[249,123],[253,124],[254,125],[100,126],[101,127],[102,128],[244,129],[243,2],[252,127],[207,2],[208,130],[206,2],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[105,131],[212,132],[104,133],[229,134],[226,135],[209,136],[230,137],[210,2],[211,2]],"exportedModulesMap":[[233,1],[231,2],[236,3],[232,1],[234,4],[235,1],[227,5],[237,5],[238,2],[239,6],[240,7],[250,8],[251,2],[214,9],[215,10],[213,11],[216,12],[217,13],[218,14],[219,15],[220,16],[221,17],[222,18],[223,19],[224,20],[225,21],[48,22],[49,22],[51,23],[52,24],[53,25],[54,26],[55,27],[56,28],[57,29],[58,30],[59,31],[60,32],[61,32],[62,33],[63,34],[64,35],[65,36],[50,2],[98,2],[66,37],[67,38],[68,39],[99,40],[69,41],[70,42],[71,43],[72,44],[73,45],[74,46],[75,47],[76,48],[77,49],[78,50],[79,51],[80,52],[82,53],[81,54],[83,55],[84,56],[85,2],[86,57],[87,58],[88,59],[89,60],[90,61],[91,62],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[256,69],[255,70],[257,2],[258,2],[259,2],[228,2],[103,2],[260,2],[261,71],[47,72],[46,2],[241,2],[116,73],[182,74],[181,75],[180,76],[121,77],[137,78],[135,79],[136,80],[122,81],[205,82],[107,2],[109,2],[110,83],[111,2],[114,84],[117,2],[134,85],[112,2],[129,86],[115,87],[130,88],[133,89],[128,90],[131,89],[108,2],[113,2],[132,91],[138,92],[126,2],[120,93],[118,94],[127,95],[124,96],[123,96],[119,97],[125,98],[139,99],[201,100],[195,101],[188,102],[187,103],[196,104],[197,89],[189,105],[202,106],[183,107],[184,108],[185,109],[204,110],[186,103],[190,106],[191,111],[198,112],[199,87],[200,111],[192,109],[203,89],[193,113],[194,114],[140,115],[179,116],[143,117],[144,117],[145,117],[146,117],[147,117],[148,117],[149,117],[150,117],[169,117],[151,117],[152,117],[153,117],[154,117],[155,117],[156,117],[176,117],[157,117],[158,117],[159,117],[174,117],[160,117],[175,117],[161,117],[172,117],[173,117],[162,117],[163,117],[164,117],[170,117],[171,117],[165,117],[166,117],[167,117],[168,117],[177,117],[178,117],[142,118],[141,119],[106,2],[242,2],[246,120],[248,121],[247,120],[245,122],[249,123],[253,124],[254,125],[100,126],[101,127],[102,128],[244,129],[243,2],[252,127],[207,2],[208,130],[206,2],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[105,138],[212,139],[229,140],[226,141],[209,142],[230,143]],"semanticDiagnosticsPerFile":[233,231,236,232,234,235,227,237,238,239,240,250,251,214,215,213,216,217,218,219,220,221,222,223,224,225,48,49,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,50,98,66,67,68,99,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,256,255,257,258,259,228,103,260,261,47,46,241,116,182,181,180,121,137,135,136,122,205,107,109,110,111,114,117,134,112,129,115,130,133,128,131,108,113,132,138,126,120,118,127,124,123,119,125,139,201,195,188,187,196,197,189,202,183,184,185,204,186,190,191,198,199,200,192,203,193,194,140,179,143,144,145,146,147,148,149,150,169,151,152,153,154,155,156,176,157,158,159,174,160,175,161,172,173,162,163,164,170,171,165,166,167,168,177,178,142,141,106,242,246,248,247,245,249,253,254,100,101,102,244,243,252,207,208,206,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,105,212,104,229,226,209,230,210,211],"latestChangedDtsFile":"./index.d.ts"},"version":"4.8.4"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface FarosClientConfig {
|
|
2
|
+
readonly url: string;
|
|
3
|
+
readonly apiKey: string;
|
|
4
|
+
readonly useGraphQLV2?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface NamedQuery {
|
|
7
|
+
readonly dataPath: string;
|
|
8
|
+
readonly query: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SecretName {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly group?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface Account {
|
|
15
|
+
readonly accountId: string;
|
|
16
|
+
readonly tenantId: string;
|
|
17
|
+
readonly farosApiKeyId: string;
|
|
18
|
+
readonly type: string;
|
|
19
|
+
readonly mode?: string | null;
|
|
20
|
+
readonly params: Record<string, any>;
|
|
21
|
+
readonly secretName: SecretName;
|
|
22
|
+
readonly scheduleExpression?: string | null;
|
|
23
|
+
readonly executionTimeoutInSecs: number;
|
|
24
|
+
readonly runtimeVersion?: string | null;
|
|
25
|
+
readonly memorySizeInMbs: number;
|
|
26
|
+
readonly version?: string | null;
|
|
27
|
+
readonly lastModified: Date;
|
|
28
|
+
}
|
|
29
|
+
export declare type UpdateAccount = Omit<Account, 'lastModified'>;
|
|
30
|
+
export interface Location {
|
|
31
|
+
readonly uid: string;
|
|
32
|
+
readonly raw: string;
|
|
33
|
+
readonly address?: Address;
|
|
34
|
+
readonly coordinates?: Coordinates;
|
|
35
|
+
readonly room?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface Address {
|
|
38
|
+
readonly uid: string;
|
|
39
|
+
readonly fullAddress?: string;
|
|
40
|
+
readonly street?: string;
|
|
41
|
+
readonly houseNumber?: string;
|
|
42
|
+
readonly unit?: string;
|
|
43
|
+
readonly postalCode?: string;
|
|
44
|
+
readonly city?: string;
|
|
45
|
+
readonly state?: string;
|
|
46
|
+
readonly stateCode?: string;
|
|
47
|
+
readonly country?: string;
|
|
48
|
+
readonly countryCode?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface Coordinates {
|
|
51
|
+
lat: number;
|
|
52
|
+
lon: number;
|
|
53
|
+
}
|
package/lib/types.js
ADDED
package/lib/utils.d.ts
ADDED
package/lib/utils.js
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "faros-js-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Faros API client for JavaScript/TypeScript",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"api-client",
|
|
7
|
+
"javascript",
|
|
8
|
+
"typescript",
|
|
9
|
+
"faros"
|
|
10
|
+
],
|
|
5
11
|
"author": "Faros AI, Inc.",
|
|
6
12
|
"homepage": "https://www.faros.ai",
|
|
7
13
|
"license": "Apache-2.0",
|