@squidcloud/backend 1.0.7 → 1.0.9
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/dist/index.js +6 -10
- package/package.json +2 -2
- package/dist/backend/src/actions.d.ts +0 -13
- package/dist/backend/src/index.d.ts +0 -3
- package/dist/backend/src/metadata.d.ts +0 -234
- package/dist/backend/src/project.d.ts +0 -4
- package/dist/backend/src/service.d.ts +0 -18
- package/dist/common/src/api-call.context.d.ts +0 -17
- package/dist/common/src/api.types.d.ts +0 -10
- package/dist/common/src/application.schemas.d.ts +0 -608
- package/dist/common/src/application.types.d.ts +0 -197
- package/dist/common/src/backend-function.schemas.d.ts +0 -3
- package/dist/common/src/backend-function.types.d.ts +0 -7
- package/dist/common/src/backend-run.types.d.ts +0 -60
- package/dist/common/src/bundle-api.types.d.ts +0 -66
- package/dist/common/src/bundle-data.types.d.ts +0 -47
- package/dist/common/src/communication.types.d.ts +0 -4
- package/dist/common/src/context.types.d.ts +0 -21
- package/dist/common/src/document.types.d.ts +0 -35
- package/dist/common/src/executable.context.d.ts +0 -4
- package/dist/common/src/graphql.context.d.ts +0 -14
- package/dist/common/src/graphql.types.d.ts +0 -8
- package/dist/common/src/http-status.enum.d.ts +0 -50
- package/dist/common/src/index.d.ts +0 -50
- package/dist/common/src/integration.types.d.ts +0 -249
- package/dist/common/src/logger.types.d.ts +0 -22
- package/dist/common/src/metrics.schemas.d.ts +0 -3
- package/dist/common/src/metrics.types.d.ts +0 -65
- package/dist/common/src/mutation.context.d.ts +0 -11
- package/dist/common/src/mutation.schemas.d.ts +0 -5
- package/dist/common/src/mutation.types.d.ts +0 -72
- package/dist/common/src/named-query.context.d.ts +0 -4
- package/dist/common/src/named-query.schemas.d.ts +0 -3
- package/dist/common/src/named-query.types.d.ts +0 -9
- package/dist/common/src/query/index.d.ts +0 -2
- package/dist/common/src/query/query-context.d.ts +0 -38
- package/dist/common/src/query/simple-query-builder.d.ts +0 -14
- package/dist/common/src/query.schemas.d.ts +0 -5
- package/dist/common/src/query.types.d.ts +0 -118
- package/dist/common/src/regions.d.ts +0 -17
- package/dist/common/src/schema/schema.types.d.ts +0 -54
- package/dist/common/src/secret.schemas.d.ts +0 -6
- package/dist/common/src/secret.types.d.ts +0 -38
- package/dist/common/src/socket.schemas.d.ts +0 -3
- package/dist/common/src/socket.types.d.ts +0 -68
- package/dist/common/src/time-units.d.ts +0 -5
- package/dist/common/src/trigger.types.d.ts +0 -15
- package/dist/common/src/types.d.ts +0 -15
- package/dist/common/src/utils/array.d.ts +0 -8
- package/dist/common/src/utils/assert.d.ts +0 -8
- package/dist/common/src/utils/error.d.ts +0 -4
- package/dist/common/src/utils/id.d.ts +0 -1
- package/dist/common/src/utils/lock.manager.d.ts +0 -14
- package/dist/common/src/utils/nullish.d.ts +0 -1
- package/dist/common/src/utils/object.d.ts +0 -6
- package/dist/common/src/utils/serialization.d.ts +0 -6
- package/dist/common/src/utils/transforms.d.ts +0 -18
- package/dist/common/src/utils/url.d.ts +0 -1
- package/dist/common/src/utils/validation.d.ts +0 -30
- package/dist/common/src/webhook-response.d.ts +0 -7
- package/dist/index.js.LICENSE.txt +0 -38
- package/dist/node_modules/json-schema-typed/draft-2020-12.d.ts +0 -1239
- package/dist/typescript-client/src/api.manager.d.ts +0 -14
- package/dist/typescript-client/src/backend-function.manager.d.ts +0 -13
- package/dist/typescript-client/src/collection-reference.d.ts +0 -19
- package/dist/typescript-client/src/collection-reference.factory.d.ts +0 -16
- package/dist/typescript-client/src/data.manager.d.ts +0 -164
- package/dist/typescript-client/src/destruct.manager.d.ts +0 -9
- package/dist/typescript-client/src/document-identity.service.d.ts +0 -12
- package/dist/typescript-client/src/document-reference.d.ts +0 -23
- package/dist/typescript-client/src/document-reference.factory.d.ts +0 -9
- package/dist/typescript-client/src/document-store.d.ts +0 -11
- package/dist/typescript-client/src/graphql-client.d.ts +0 -9
- package/dist/typescript-client/src/graphql-client.factory.d.ts +0 -9
- package/dist/typescript-client/src/index.d.ts +0 -7
- package/dist/typescript-client/src/mutation/mutation-sender.d.ts +0 -11
- package/dist/typescript-client/src/named-query.manager.d.ts +0 -13
- package/dist/typescript-client/src/query/join-query-builder.factory.d.ts +0 -35
- package/dist/typescript-client/src/query/query-builder.factory.d.ts +0 -37
- package/dist/typescript-client/src/query/query-subscription.manager.d.ts +0 -59
- package/dist/typescript-client/src/query/query.types.d.ts +0 -7
- package/dist/typescript-client/src/rpc.manager.d.ts +0 -24
- package/dist/typescript-client/src/socket.manager.d.ts +0 -27
- package/dist/typescript-client/src/squid.d.ts +0 -51
- package/dist/typescript-client/src/state/action.applier.d.ts +0 -7
- package/dist/typescript-client/src/state/actions.d.ts +0 -29
- package/dist/typescript-client/src/state/path_trie.d.ts +0 -27
- package/dist/typescript-client/src/state/state.service.d.ts +0 -22
- package/dist/typescript-client/src/types.d.ts +0 -2
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
import { IntegrationId } from './communication.types';
|
|
2
|
-
import { FieldName } from './document.types';
|
|
3
|
-
import { IntrospectionQuery } from './graphql.types';
|
|
4
|
-
import { CollectionSchema } from './schema/schema.types';
|
|
5
|
-
export interface MongoConnectionSecretOptions {
|
|
6
|
-
password?: string;
|
|
7
|
-
}
|
|
8
|
-
export interface MongoConnectionOptions {
|
|
9
|
-
secrets: MongoConnectionSecretOptions;
|
|
10
|
-
connectionString: string;
|
|
11
|
-
user?: string;
|
|
12
|
-
replicaSet?: string;
|
|
13
|
-
ssl?: {
|
|
14
|
-
certificateFile: string;
|
|
15
|
-
validate: boolean;
|
|
16
|
-
};
|
|
17
|
-
maxPoolSize?: number;
|
|
18
|
-
minPoolSize?: number;
|
|
19
|
-
socketTimeoutMS?: number;
|
|
20
|
-
serverSelectionTimeoutMS?: number;
|
|
21
|
-
keepAlive?: boolean;
|
|
22
|
-
directConnection?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface MySqlConnectionSecretOptions {
|
|
25
|
-
password: string;
|
|
26
|
-
}
|
|
27
|
-
export interface MssqlConnectionSecretOptions {
|
|
28
|
-
password: string;
|
|
29
|
-
}
|
|
30
|
-
export interface PostgresConnectionSecretOptions {
|
|
31
|
-
password: string;
|
|
32
|
-
sslCertificate?: string;
|
|
33
|
-
}
|
|
34
|
-
export interface MySqlConnectionOptions {
|
|
35
|
-
secrets: MySqlConnectionSecretOptions;
|
|
36
|
-
host: string;
|
|
37
|
-
user: string;
|
|
38
|
-
database: string;
|
|
39
|
-
connectionLimit?: number;
|
|
40
|
-
}
|
|
41
|
-
export interface MssqlConnectionOptions {
|
|
42
|
-
secrets: MssqlConnectionSecretOptions;
|
|
43
|
-
host: string;
|
|
44
|
-
user: string;
|
|
45
|
-
schema: string;
|
|
46
|
-
database: string;
|
|
47
|
-
connectionLimit?: number;
|
|
48
|
-
sslEnabled?: boolean;
|
|
49
|
-
}
|
|
50
|
-
export interface PostgresConnectionOptions {
|
|
51
|
-
host: string;
|
|
52
|
-
user: string;
|
|
53
|
-
database: string;
|
|
54
|
-
schema?: string;
|
|
55
|
-
sslEnabled?: boolean;
|
|
56
|
-
secrets: PostgresConnectionSecretOptions;
|
|
57
|
-
}
|
|
58
|
-
export interface GraphQLConnectionOptions {
|
|
59
|
-
baseUrl: string;
|
|
60
|
-
}
|
|
61
|
-
export declare enum IntegrationType {
|
|
62
|
-
'internal' = "internal",
|
|
63
|
-
'mongo' = "mongo",
|
|
64
|
-
'mysql' = "mysql",
|
|
65
|
-
'mssql' = "mssql",
|
|
66
|
-
'postgres' = "postgres",
|
|
67
|
-
'cockroach' = "cockroach",
|
|
68
|
-
'api' = "api",
|
|
69
|
-
'graphql' = "graphql"
|
|
70
|
-
}
|
|
71
|
-
export type DataIntegration = MySqlIntegration | MssqlIntegration | MongoIntegration | InternalIntegration | PostgresIntegration | CockroachIntegration;
|
|
72
|
-
export type Integration = DataIntegration | ApiIntegration | GraphQLIntegration;
|
|
73
|
-
type TableName = string;
|
|
74
|
-
export interface IntegrationDataSchema {
|
|
75
|
-
collections: Record<TableName, CollectionSchema>;
|
|
76
|
-
}
|
|
77
|
-
export interface IntegrationGraphQLSchema {
|
|
78
|
-
introspection: IntrospectionQuery;
|
|
79
|
-
}
|
|
80
|
-
export type IntegrationApiEndpoints = Record<ApiEndpointId, ApiEndpoint>;
|
|
81
|
-
export type IntegrationSchema = IntegrationDataSchema | IntegrationGraphQLSchema;
|
|
82
|
-
interface BaseIntegration {
|
|
83
|
-
id: IntegrationId;
|
|
84
|
-
type: IntegrationType;
|
|
85
|
-
creationDate: Date;
|
|
86
|
-
updateDate: Date;
|
|
87
|
-
secured: boolean;
|
|
88
|
-
}
|
|
89
|
-
export interface BaseDataIntegration extends BaseIntegration {
|
|
90
|
-
schema?: IntegrationDataSchema;
|
|
91
|
-
supportsExternalChanges: boolean;
|
|
92
|
-
}
|
|
93
|
-
export declare function isDataIntegration(integration: any): integration is BaseDataIntegration;
|
|
94
|
-
export declare function isDataIntegrationType(type: IntegrationType): boolean;
|
|
95
|
-
export type HttpMethod = 'post' | 'get' | 'delete' | 'patch' | 'put';
|
|
96
|
-
export type ApiEndpointId = string;
|
|
97
|
-
export type ApiParameterLocation = 'query' | 'body' | 'header' | 'path';
|
|
98
|
-
export type FieldPath = string;
|
|
99
|
-
export interface ApiRequestField {
|
|
100
|
-
paramLocation?: ApiParameterLocation;
|
|
101
|
-
fieldNameInRequest?: FieldName;
|
|
102
|
-
}
|
|
103
|
-
export interface ApiResponseField {
|
|
104
|
-
paramLocation: 'body' | 'header';
|
|
105
|
-
fieldPathInResponse?: FieldPath;
|
|
106
|
-
}
|
|
107
|
-
export interface ApiEndpoint {
|
|
108
|
-
relativePath: string;
|
|
109
|
-
method: HttpMethod;
|
|
110
|
-
requestSchema?: Record<FieldName, ApiRequestField>;
|
|
111
|
-
responseSchema?: Record<FieldPath, ApiResponseField>;
|
|
112
|
-
}
|
|
113
|
-
export interface ApiIntegration extends BaseIntegration {
|
|
114
|
-
type: IntegrationType.api;
|
|
115
|
-
baseUrl: string;
|
|
116
|
-
endpoints: IntegrationApiEndpoints;
|
|
117
|
-
}
|
|
118
|
-
export interface GraphQLIntegration extends BaseIntegration {
|
|
119
|
-
type: IntegrationType.graphql;
|
|
120
|
-
schema?: IntegrationGraphQLSchema;
|
|
121
|
-
configuration: {
|
|
122
|
-
connectionOptions: GraphQLConnectionOptions;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
export interface MySqlIntegrationConfiguration {
|
|
126
|
-
connectionOptions: MySqlConnectionOptions;
|
|
127
|
-
}
|
|
128
|
-
export interface MssqlIntegrationConfiguration {
|
|
129
|
-
connectionOptions: MssqlConnectionOptions;
|
|
130
|
-
}
|
|
131
|
-
export interface PostgresIntegrationConfiguration {
|
|
132
|
-
connectionOptions: PostgresConnectionOptions;
|
|
133
|
-
}
|
|
134
|
-
export interface MongoIntegrationConfiguration {
|
|
135
|
-
connectionOptions: MongoConnectionOptions;
|
|
136
|
-
}
|
|
137
|
-
export interface MySqlIntegration extends BaseDataIntegration {
|
|
138
|
-
type: IntegrationType.mysql;
|
|
139
|
-
configuration: MySqlIntegrationConfiguration;
|
|
140
|
-
schema: IntegrationDataSchema;
|
|
141
|
-
supportsExternalChanges: true;
|
|
142
|
-
}
|
|
143
|
-
export interface MssqlIntegration extends BaseDataIntegration {
|
|
144
|
-
type: IntegrationType.mssql;
|
|
145
|
-
configuration: MssqlIntegrationConfiguration;
|
|
146
|
-
schema: IntegrationDataSchema;
|
|
147
|
-
supportsExternalChanges: true;
|
|
148
|
-
}
|
|
149
|
-
export interface BasePostgresIntegration extends BaseDataIntegration {
|
|
150
|
-
type: IntegrationType.postgres | IntegrationType.cockroach;
|
|
151
|
-
configuration: PostgresIntegrationConfiguration;
|
|
152
|
-
schema: IntegrationDataSchema;
|
|
153
|
-
}
|
|
154
|
-
export interface PostgresIntegration extends BasePostgresIntegration {
|
|
155
|
-
type: IntegrationType.postgres;
|
|
156
|
-
supportsExternalChanges: true;
|
|
157
|
-
}
|
|
158
|
-
export interface CockroachIntegration extends BasePostgresIntegration {
|
|
159
|
-
type: IntegrationType.cockroach;
|
|
160
|
-
supportsExternalChanges: false;
|
|
161
|
-
}
|
|
162
|
-
export interface InternalIntegration extends BaseDataIntegration {
|
|
163
|
-
type: IntegrationType.internal;
|
|
164
|
-
}
|
|
165
|
-
export interface MongoIntegration extends BaseDataIntegration {
|
|
166
|
-
type: IntegrationType.mongo;
|
|
167
|
-
configuration: MongoIntegrationConfiguration;
|
|
168
|
-
supportsExternalChanges: true;
|
|
169
|
-
}
|
|
170
|
-
export interface InternalIntegration extends BaseDataIntegration {
|
|
171
|
-
type: IntegrationType.internal;
|
|
172
|
-
}
|
|
173
|
-
export interface TestDataConnectionResponse {
|
|
174
|
-
success: boolean;
|
|
175
|
-
errorMessage?: string;
|
|
176
|
-
}
|
|
177
|
-
interface TestMongoDataConnectionRequest {
|
|
178
|
-
type: IntegrationType.mongo;
|
|
179
|
-
configuration: {
|
|
180
|
-
connectionOptions: MongoConnectionOptions;
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
interface TestMysqlDataConnectionRequest {
|
|
184
|
-
type: IntegrationType.mysql;
|
|
185
|
-
configuration: {
|
|
186
|
-
connectionOptions: MySqlConnectionOptions;
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
interface TestMssqlDataConnectionRequest {
|
|
190
|
-
type: IntegrationType.mssql;
|
|
191
|
-
configuration: {
|
|
192
|
-
connectionOptions: MssqlConnectionOptions;
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
interface TestPostgresDataConnectionRequest {
|
|
196
|
-
type: IntegrationType.postgres;
|
|
197
|
-
configuration: {
|
|
198
|
-
connectionOptions: PostgresConnectionOptions;
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
interface TestCockroachDataConnectionRequest {
|
|
202
|
-
type: IntegrationType.cockroach;
|
|
203
|
-
configuration: {
|
|
204
|
-
connectionOptions: PostgresConnectionOptions;
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
export type TestDataConnectionRequest = TestMongoDataConnectionRequest | TestMysqlDataConnectionRequest | TestMssqlDataConnectionRequest | TestCockroachDataConnectionRequest | TestPostgresDataConnectionRequest;
|
|
208
|
-
export interface DiscoverDataConnectionSchemaResponse {
|
|
209
|
-
schema: IntegrationDataSchema;
|
|
210
|
-
}
|
|
211
|
-
export interface DiscoverGraphQLConnectionSchemaResponse {
|
|
212
|
-
schema: IntegrationGraphQLSchema;
|
|
213
|
-
}
|
|
214
|
-
interface DiscoverMongoDataConnectionSchemaRequest {
|
|
215
|
-
integrationType: IntegrationType.mongo;
|
|
216
|
-
connectionOptions: MongoConnectionOptions;
|
|
217
|
-
}
|
|
218
|
-
interface DiscoverInternalDataConnectionSchemaRequest {
|
|
219
|
-
integrationType: IntegrationType.internal;
|
|
220
|
-
}
|
|
221
|
-
interface DiscoverMysqlDataConnectionSchemaRequest {
|
|
222
|
-
integrationType: IntegrationType.mysql;
|
|
223
|
-
connectionOptions: MySqlConnectionOptions;
|
|
224
|
-
}
|
|
225
|
-
interface DiscoverMssqlDataConnectionSchemaRequest {
|
|
226
|
-
integrationType: IntegrationType.mssql;
|
|
227
|
-
connectionOptions: MssqlConnectionOptions;
|
|
228
|
-
}
|
|
229
|
-
export interface DiscoverGraphQLConnectionSchemaRequest {
|
|
230
|
-
integrationType: IntegrationType.graphql;
|
|
231
|
-
connectionOptions: GraphQLConnectionOptions;
|
|
232
|
-
}
|
|
233
|
-
interface DiscoverPostgresDataConnectionSchemaRequest {
|
|
234
|
-
integrationType: IntegrationType.postgres;
|
|
235
|
-
connectionOptions: PostgresConnectionOptions;
|
|
236
|
-
}
|
|
237
|
-
interface DiscoverCockroachDataConnectionSchemaRequest {
|
|
238
|
-
integrationType: IntegrationType.cockroach;
|
|
239
|
-
connectionOptions: PostgresConnectionOptions;
|
|
240
|
-
}
|
|
241
|
-
export type DiscoverDataConnectionSchemaRequest = DiscoverMongoDataConnectionSchemaRequest | DiscoverInternalDataConnectionSchemaRequest | DiscoverMysqlDataConnectionSchemaRequest | DiscoverMssqlDataConnectionSchemaRequest | DiscoverCockroachDataConnectionSchemaRequest | DiscoverPostgresDataConnectionSchemaRequest;
|
|
242
|
-
export interface DiscoverOpenApiEndpointsRequest {
|
|
243
|
-
openApiSpecUrl: string;
|
|
244
|
-
}
|
|
245
|
-
export interface DiscoverOpenApiEndpointsResponse {
|
|
246
|
-
baseUrl: string;
|
|
247
|
-
endpoints: Record<ApiEndpointId, ApiEndpoint>;
|
|
248
|
-
}
|
|
249
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export type LoggerContext = Record<string, any>;
|
|
2
|
-
export interface Logger {
|
|
3
|
-
trace(message: string, context?: LoggerContext): void;
|
|
4
|
-
debug(message: string, context?: LoggerContext): void;
|
|
5
|
-
info(message: string, context?: LoggerContext): void;
|
|
6
|
-
warn(message: string, context?: LoggerContext): void;
|
|
7
|
-
error(message: string, context?: LoggerContext): void;
|
|
8
|
-
child(context: LoggerContext): Logger;
|
|
9
|
-
log(record: LogRecord): void;
|
|
10
|
-
}
|
|
11
|
-
export declare enum LogLevel {
|
|
12
|
-
TRACE = "trace",
|
|
13
|
-
DEBUG = "debug",
|
|
14
|
-
INFO = "info",
|
|
15
|
-
WARN = "warn",
|
|
16
|
-
ERROR = "error"
|
|
17
|
-
}
|
|
18
|
-
export interface LogRecord {
|
|
19
|
-
level?: LogLevel;
|
|
20
|
-
message?: string;
|
|
21
|
-
[key: string]: any;
|
|
22
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export type MetricRate = string;
|
|
2
|
-
export type MetricResolution = string;
|
|
3
|
-
export type MetricTimeWindow = {
|
|
4
|
-
startTimeMs: number;
|
|
5
|
-
endTimeMs: number;
|
|
6
|
-
};
|
|
7
|
-
export type MetricType = 'latency' | 'successful' | 'failure' | 'total';
|
|
8
|
-
export type MetricUnit = 'millisecond' | 'count';
|
|
9
|
-
export type MetricGroupName = 'backendBootstrap' | 'backendFunctionCall' | 'integrationConnectAttempt' | 'integrationReadOperation' | 'integrationWriteOperation';
|
|
10
|
-
/**
|
|
11
|
-
* Filter key descriptions:
|
|
12
|
-
* - `functionName` - Only supported by 'backendFunctionCall' metric. The name of the function.
|
|
13
|
-
* - `integrationId` - Only supported by `integration*` metrics. The id of the integration.
|
|
14
|
-
* - `resultType` - Only supported by all metrics. The result of the operation being either 'success' or 'failure'.
|
|
15
|
-
*/
|
|
16
|
-
export type MetricFilterKey = 'functionName' | 'integrationId' | 'resultType';
|
|
17
|
-
/**
|
|
18
|
-
* Internal filters are automatically assigned and are not configurable through the open API.
|
|
19
|
-
*/
|
|
20
|
-
export type MetricInternalFilterKey = MetricFilterKey | 'appId' | 'operationType';
|
|
21
|
-
export type MetricFilterValue = string | number | boolean;
|
|
22
|
-
export type MetricFilterOperationType = 'read' | 'write';
|
|
23
|
-
export type MetricFilterResultType = 'success' | 'failure';
|
|
24
|
-
export type MetricInternalFilters = MetricFilters<MetricInternalFilterKey> & {
|
|
25
|
-
operationType?: MetricFilterOperationType;
|
|
26
|
-
};
|
|
27
|
-
export type MetricFilters<T extends string> = {
|
|
28
|
-
[key in T]?: MetricFilterValue;
|
|
29
|
-
} & {
|
|
30
|
-
resultType?: MetricFilterResultType;
|
|
31
|
-
};
|
|
32
|
-
export interface MetricRequest {
|
|
33
|
-
summary?: boolean;
|
|
34
|
-
histogram?: {
|
|
35
|
-
rate: MetricRate;
|
|
36
|
-
resolution: MetricResolution;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export interface GetMetricDataRequest {
|
|
40
|
-
requests: Array<{
|
|
41
|
-
filters: MetricFilters<MetricFilterKey>;
|
|
42
|
-
metricGroup: MetricGroupName;
|
|
43
|
-
metrics: {
|
|
44
|
-
[key in MetricType]?: MetricRequest;
|
|
45
|
-
};
|
|
46
|
-
}>;
|
|
47
|
-
timeWindow: MetricTimeWindow;
|
|
48
|
-
}
|
|
49
|
-
export type MetricHistogram = Array<{
|
|
50
|
-
timestamp: Date;
|
|
51
|
-
value: number;
|
|
52
|
-
}>;
|
|
53
|
-
export type MetricResponse = {
|
|
54
|
-
unit: MetricUnit;
|
|
55
|
-
summary?: number;
|
|
56
|
-
histogram?: MetricHistogram;
|
|
57
|
-
};
|
|
58
|
-
export type GetMetricDataResponse = {
|
|
59
|
-
results: Array<{
|
|
60
|
-
metricGroup: MetricGroupName;
|
|
61
|
-
metrics: {
|
|
62
|
-
[key in MetricType]?: MetricResponse;
|
|
63
|
-
};
|
|
64
|
-
}>;
|
|
65
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Mutation, MutationType } from './mutation.types';
|
|
2
|
-
import { BeforeAndAfterDocs } from './document.types';
|
|
3
|
-
import { Paths } from './types';
|
|
4
|
-
export declare class MutationContext<T = any> {
|
|
5
|
-
readonly mutation: Mutation<T>;
|
|
6
|
-
readonly beforeAndAfterDocs: BeforeAndAfterDocs<T>;
|
|
7
|
-
readonly serverTimeStamp: Date;
|
|
8
|
-
constructor(mutation: Mutation<T>, beforeAndAfterDocs: BeforeAndAfterDocs<T>, serverTimeStamp: Date);
|
|
9
|
-
getMutationType(): MutationType;
|
|
10
|
-
affectsPath(path: Paths<T>): boolean;
|
|
11
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ClientId, IntegrationId } from './communication.types';
|
|
2
|
-
import { DocTimestamp, FieldName, SquidDocId, SquidDocIdObj, SquidDocument } from './document.types';
|
|
3
|
-
export interface MutateRequest<T = any> {
|
|
4
|
-
clientId: ClientId;
|
|
5
|
-
integrationId: IntegrationId;
|
|
6
|
-
mutations: Array<Mutation<T>>;
|
|
7
|
-
}
|
|
8
|
-
export interface ExecuteMutationsResponse {
|
|
9
|
-
timestamp: DocTimestamp;
|
|
10
|
-
idResolutionMap?: IdResolutionMap;
|
|
11
|
-
afterDocs: Record<SquidDocId, SquidDocument>;
|
|
12
|
-
}
|
|
13
|
-
export interface MutateResponse extends Omit<ExecuteMutationsResponse, 'afterDocs'> {
|
|
14
|
-
refreshList: Array<SquidDocId>;
|
|
15
|
-
}
|
|
16
|
-
export type IdResolutionMap = Record<SquidDocId, SquidDocId>;
|
|
17
|
-
export type Mutation<T = any> = UpdateMutation<T> | InsertMutation<T> | DeleteMutation;
|
|
18
|
-
export type MutationType = 'insert' | 'update' | 'delete';
|
|
19
|
-
interface BaseMutation {
|
|
20
|
-
type: MutationType;
|
|
21
|
-
squidDocIdObj: SquidDocIdObj;
|
|
22
|
-
}
|
|
23
|
-
export interface DeleteMutation extends BaseMutation {
|
|
24
|
-
type: 'delete';
|
|
25
|
-
}
|
|
26
|
-
export interface UpdateMutation<T = any> extends BaseMutation {
|
|
27
|
-
type: 'update';
|
|
28
|
-
properties: {
|
|
29
|
-
[key in keyof T & string]?: Array<PropertyMutation<T[key]>>;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export interface InsertMutation<T = any> extends BaseMutation {
|
|
33
|
-
type: 'insert';
|
|
34
|
-
properties: T;
|
|
35
|
-
}
|
|
36
|
-
export type PropertyMutation<Value = any> = ApplyNumericFnPropertyMutation | ApplyStringFnPropertyMutation | ValueUpdatePropertyMutation<Value> | RemovePropertyMutation;
|
|
37
|
-
export interface ValueUpdatePropertyMutation<Value = any> {
|
|
38
|
-
type: 'update';
|
|
39
|
-
value: Value;
|
|
40
|
-
}
|
|
41
|
-
export interface ApplyNumericFnPropertyMutation {
|
|
42
|
-
type: 'applyNumericFn';
|
|
43
|
-
fn: 'increment';
|
|
44
|
-
value: number;
|
|
45
|
-
}
|
|
46
|
-
export interface RemovePropertyMutation {
|
|
47
|
-
type: 'removeProperty';
|
|
48
|
-
}
|
|
49
|
-
interface ApplyExtendString {
|
|
50
|
-
type: 'applyStringFn';
|
|
51
|
-
fn: 'extendString';
|
|
52
|
-
value: string;
|
|
53
|
-
}
|
|
54
|
-
interface ApplyTrimString {
|
|
55
|
-
type: 'applyStringFn';
|
|
56
|
-
fn: 'trim';
|
|
57
|
-
}
|
|
58
|
-
export type ApplyStringFnPropertyMutation = ApplyExtendString | ApplyTrimString;
|
|
59
|
-
/**
|
|
60
|
-
* Sorts the update mutation properties in the order the properties should be applied. If the update mutation has
|
|
61
|
-
* updates for both 'a' and 'a.b', the update should be applied first to 'a' and then to 'a.b'.
|
|
62
|
-
*/
|
|
63
|
-
export declare function sortUpdateMutationProperties(updateMutation: UpdateMutation): Array<[FieldName, Array<PropertyMutation>]>;
|
|
64
|
-
export declare function mergeMutations(mutationA: Mutation, mutationB: Mutation): Mutation;
|
|
65
|
-
export declare function applyUpdateMutation<T extends SquidDocument>(doc: T, updateMutation: UpdateMutation<T>): T | undefined;
|
|
66
|
-
export declare function convertInsertToUpdate(insertMutation: InsertMutation): UpdateMutation;
|
|
67
|
-
/**
|
|
68
|
-
* Reduces the list of mutations such that each document will have a single mutation. If for example there are multiple
|
|
69
|
-
* updates to the same document, those will be merged and a single update will be returned.
|
|
70
|
-
*/
|
|
71
|
-
export declare function reduceMutations(mutations: Array<Mutation<unknown>>): Array<Mutation<unknown>>;
|
|
72
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ClientId, ClientRequestId, IntegrationId } from './communication.types';
|
|
2
|
-
import { QueryName } from './application.types';
|
|
3
|
-
export interface ExecuteNamedQueryRequest {
|
|
4
|
-
integrationId: IntegrationId;
|
|
5
|
-
queryName: QueryName;
|
|
6
|
-
paramsRecordStr: string;
|
|
7
|
-
clientRequestId: ClientRequestId;
|
|
8
|
-
clientId: ClientId;
|
|
9
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { IntegrationId } from '../communication.types';
|
|
2
|
-
import { CollectionName, FieldName } from '../document.types';
|
|
3
|
-
import { AllOperators, ContextCondition, ContextConditions, FieldSort, GeneralCondition, GeneralConditions, GenericValue, Query } from '../query.types';
|
|
4
|
-
import { PartialBy, Paths } from '../types';
|
|
5
|
-
export declare class QueryContext<T = any> {
|
|
6
|
-
readonly query: Query<T>;
|
|
7
|
-
private readonly parsedConditions;
|
|
8
|
-
constructor(query: Query<T>);
|
|
9
|
-
get integrationId(): IntegrationId;
|
|
10
|
-
get collectionName(): CollectionName;
|
|
11
|
-
get limit(): number;
|
|
12
|
-
sortedBy(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
13
|
-
sortedByExact(sorts: Array<PartialBy<FieldSort<T>, 'asc'>>): boolean;
|
|
14
|
-
includes<F extends FieldName<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O>): boolean;
|
|
15
|
-
includesCondition(condition: ContextCondition<T>): boolean;
|
|
16
|
-
includesConditions(conditions: GeneralConditions<T>): boolean;
|
|
17
|
-
matchesConditions(conditions: GeneralConditions<T>): boolean;
|
|
18
|
-
matchesQuery(query: Query<T>): boolean;
|
|
19
|
-
isSubsetOf<F extends FieldName<T>, O extends AllOperators>(fieldName: F, operator: O, value: GenericValue<T, F, O> | null): boolean;
|
|
20
|
-
isSubsetOfCondition(condition: GeneralCondition<T>): boolean;
|
|
21
|
-
isSubsetOfConditions(conditions: GeneralConditions<T>): boolean;
|
|
22
|
-
isSubsetOfQuery(query: Query<T>): boolean;
|
|
23
|
-
getConditionsFor<K extends FieldName<T>>(...fieldNames: K[]): ContextConditions<T, K>;
|
|
24
|
-
getConditionsForField<K extends Paths<T>>(fieldName: K): ContextConditions<T>;
|
|
25
|
-
/**
|
|
26
|
-
* Compares a condition against a given operator and value to determine if the
|
|
27
|
-
* provided condition is a subset of the operator and value. A condition is
|
|
28
|
-
* considered a subset if all values that satisfy (return true for) the
|
|
29
|
-
* condition also satisfy the operator and value.
|
|
30
|
-
*
|
|
31
|
-
* This is done using the underlying CompareTable, which provides a comparison
|
|
32
|
-
* function for each operator pair, or undefined if the comparison would
|
|
33
|
-
* always be false, regardless of the values.
|
|
34
|
-
*/
|
|
35
|
-
private evaluateSubset;
|
|
36
|
-
private evaluateIncludes;
|
|
37
|
-
private parseConditions;
|
|
38
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { IntegrationId } from '../communication.types';
|
|
2
|
-
import { CollectionName, DocumentData, FieldName, PrimitiveFieldType } from '../document.types';
|
|
3
|
-
import { Operator, Query } from '../query.types';
|
|
4
|
-
export declare class SimpleQueryBuilder<MyDocType extends DocumentData> {
|
|
5
|
-
protected readonly collectionName: CollectionName;
|
|
6
|
-
protected readonly integrationId: IntegrationId;
|
|
7
|
-
protected readonly query: Query<MyDocType>;
|
|
8
|
-
constructor(collectionName: CollectionName, integrationId: IntegrationId);
|
|
9
|
-
where(fieldName: (keyof MyDocType & FieldName) | string, operator: Operator | 'in' | 'not in', value: PrimitiveFieldType | Array<PrimitiveFieldType>): this;
|
|
10
|
-
limit(limit: number): this;
|
|
11
|
-
sortBy(fieldName: keyof MyDocType & FieldName, asc?: boolean): this;
|
|
12
|
-
build(): Query;
|
|
13
|
-
private mergeConditions;
|
|
14
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { JSONSchemaType } from 'ajv';
|
|
2
|
-
import { Query, QueryRequest, QueryUnsubscribeRequest } from './query.types';
|
|
3
|
-
export declare const QuerySchema: JSONSchemaType<Query>;
|
|
4
|
-
export declare const QueryRequestSchema: JSONSchemaType<QueryRequest>;
|
|
5
|
-
export declare const QueryUnsubscribeRequestSchema: JSONSchemaType<QueryUnsubscribeRequest>;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { TriggerId } from './application.types';
|
|
2
|
-
import { AppId, ClientId, ClientRequestId, IntegrationId } from './communication.types';
|
|
3
|
-
import { CollectionName, FieldName, PrimitiveFieldType, SquidDocument } from './document.types';
|
|
4
|
-
export type Conditions<Doc = any, F extends FieldName<Doc> = any> = Array<Condition<Doc, F>>;
|
|
5
|
-
export interface Condition<Doc = any, F extends FieldName<Doc> = any> {
|
|
6
|
-
fieldName: F;
|
|
7
|
-
operator: Operator;
|
|
8
|
-
value: Doc[F] | null;
|
|
9
|
-
}
|
|
10
|
-
export type Operator = '==' | '>=' | '<=' | '>' | '<' | '!=';
|
|
11
|
-
export type ContextConditions<Doc = any, F extends FieldName<Doc> = any> = Array<ContextCondition<Doc, F>>;
|
|
12
|
-
export type GenericValue<Doc = any, F extends FieldName<Doc> = any, O extends AllOperators = any> = O extends 'in' ? Array<Doc[F]> | null : O extends 'not in' ? Array<Doc[F]> | null : Doc[F] | null;
|
|
13
|
-
export type ContextCondition<Doc = any, F extends FieldName<Doc> = any> = InContextCondition<Doc, F> | NotInContextCondition<Doc, F> | OtherContextCondition<Doc, F>;
|
|
14
|
-
interface InContextCondition<Doc = any, F extends FieldName<Doc> = any> extends Omit<Condition<Doc, F>, 'operator' | 'value'> {
|
|
15
|
-
operator: 'in';
|
|
16
|
-
value: Array<Doc[F]>;
|
|
17
|
-
}
|
|
18
|
-
interface NotInContextCondition<Doc = any, F extends FieldName<Doc> = any> extends Omit<Condition<Doc, F>, 'operator' | 'value'> {
|
|
19
|
-
operator: 'not in';
|
|
20
|
-
value: Array<Doc[F]>;
|
|
21
|
-
}
|
|
22
|
-
interface OtherContextCondition<Doc = any, F extends FieldName<Doc> = any> extends Omit<Condition<Doc, F>, 'operator'> {
|
|
23
|
-
operator: Exclude<ContextOperator, 'in' | 'not in'>;
|
|
24
|
-
}
|
|
25
|
-
export interface GeneralCondition<Doc = any, F extends FieldName<Doc> = any> extends Omit<Condition<Doc, F>, 'operator' | 'value'> {
|
|
26
|
-
operator: AllOperators;
|
|
27
|
-
value: any;
|
|
28
|
-
}
|
|
29
|
-
export type GeneralConditions<Doc = any, F extends FieldName<Doc> = any> = Array<GeneralCondition<Doc, F>>;
|
|
30
|
-
export type ContextOperator = Exclude<Operator, '==' | '!='> | 'in' | 'not in';
|
|
31
|
-
export type AllOperators = Operator | 'in' | 'not in';
|
|
32
|
-
export interface FieldSort<Doc> {
|
|
33
|
-
fieldName: FieldName<Doc>;
|
|
34
|
-
asc: boolean;
|
|
35
|
-
}
|
|
36
|
-
interface RegularQueryKey {
|
|
37
|
-
queryType: 'query';
|
|
38
|
-
clientId: string;
|
|
39
|
-
clientRequestId: string;
|
|
40
|
-
}
|
|
41
|
-
interface TriggerKey {
|
|
42
|
-
queryType: 'trigger';
|
|
43
|
-
triggerId: TriggerId;
|
|
44
|
-
}
|
|
45
|
-
export type QueryKey = RegularQueryKey | TriggerKey;
|
|
46
|
-
export interface Query<Doc = any> {
|
|
47
|
-
collectionName: CollectionName;
|
|
48
|
-
integrationId: string;
|
|
49
|
-
conditions: Conditions<Doc>;
|
|
50
|
-
sortOrder: Array<FieldSort<Doc>>;
|
|
51
|
-
limit: number;
|
|
52
|
-
}
|
|
53
|
-
export type QuerySubscriptionId = `${ClientId}_${ClientRequestId}`;
|
|
54
|
-
export interface QueryRequest {
|
|
55
|
-
clientId: ClientId;
|
|
56
|
-
clientRequestId: ClientRequestId;
|
|
57
|
-
query: Query;
|
|
58
|
-
subscribe: boolean;
|
|
59
|
-
}
|
|
60
|
-
export interface QueryUnsubscribeRequest {
|
|
61
|
-
clientId: ClientId;
|
|
62
|
-
clientRequestId: ClientRequestId;
|
|
63
|
-
}
|
|
64
|
-
interface QueryMetadata {
|
|
65
|
-
condCount: number;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Example query mapping:
|
|
69
|
-
* {
|
|
70
|
-
* unconditional: ['cid_123'],
|
|
71
|
-
* conditional: {
|
|
72
|
-
* age: {
|
|
73
|
-
* '==': {
|
|
74
|
-
* 10: ['cid2_321'],
|
|
75
|
-
* 11: ['cid2_321'],
|
|
76
|
-
* 12: ['cid2_321'],
|
|
77
|
-
* },
|
|
78
|
-
* '>': {
|
|
79
|
-
* 20: ['cid_456']
|
|
80
|
-
* }
|
|
81
|
-
* }
|
|
82
|
-
* },
|
|
83
|
-
* queriesMetadata: {
|
|
84
|
-
* 'cid_123': {
|
|
85
|
-
* condCount: 0
|
|
86
|
-
* },
|
|
87
|
-
* 'cid2_321': {
|
|
88
|
-
* condCount: 1
|
|
89
|
-
* },
|
|
90
|
-
* 'cid2_456': {
|
|
91
|
-
* condCount: 1
|
|
92
|
-
* }
|
|
93
|
-
* }
|
|
94
|
-
* }
|
|
95
|
-
*/
|
|
96
|
-
export type QueryMapping<T extends string> = {
|
|
97
|
-
unconditional: Array<T>;
|
|
98
|
-
conditional: Record<FieldName, Record<Operator, Record<PrimitiveFieldType & string, Array<T>>>>;
|
|
99
|
-
queriesMetadata: Record<T, QueryMetadata>;
|
|
100
|
-
};
|
|
101
|
-
export declare abstract class QueryMappingManager<T> {
|
|
102
|
-
abstract addQuery(appId: AppId, query: Query, key: T): Promise<void>;
|
|
103
|
-
abstract removeQuery(appId: AppId, key: T): Promise<Query | undefined>;
|
|
104
|
-
abstract findQueriesForDocument(appId: AppId, doc: SquidDocument, collectionName: CollectionName, integrationId: IntegrationId): Promise<Array<T> | undefined>;
|
|
105
|
-
}
|
|
106
|
-
export declare abstract class SimpleQueryMappingManager<T extends string> extends QueryMappingManager<T> {
|
|
107
|
-
abstract getMapping(appId: AppId, collectionName: CollectionName, integrationId: IntegrationId): Promise<QueryMapping<T> | undefined> | (QueryMapping<T> | undefined);
|
|
108
|
-
findQueriesForDocument(appId: AppId, doc: SquidDocument, collectionName: CollectionName, integrationId: IntegrationId): Promise<Array<T>>;
|
|
109
|
-
}
|
|
110
|
-
export declare function findQueriesForDocumentSync<T extends string>(mapping: QueryMapping<T>, doc: SquidDocument): Array<T>;
|
|
111
|
-
export declare function compareOperator(conditionValue: PrimitiveFieldType, valueInDocument: PrimitiveFieldType, operator: Operator): boolean;
|
|
112
|
-
/** Returns a unique identifier for the query which includes both the client id and the client request id. */
|
|
113
|
-
export declare function getQuerySubscriptionId(clientId: string, clientRequestId: string): QuerySubscriptionId;
|
|
114
|
-
export declare function parseQuerySubscriptionId(querySubscriptionId: QuerySubscriptionId): {
|
|
115
|
-
clientId: string;
|
|
116
|
-
clientRequestId: string;
|
|
117
|
-
};
|
|
118
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export type SquidCloudId = 'aws' | 'gcp' | 'azure';
|
|
2
|
-
export type SupportedSquidRegion = 'us-east-1.aws' | 'local';
|
|
3
|
-
export declare const supportedSquidRegions: Array<SupportedSquidRegion>;
|
|
4
|
-
export interface SquidCloudRegion {
|
|
5
|
-
id: string;
|
|
6
|
-
name: string;
|
|
7
|
-
}
|
|
8
|
-
export interface SquidSupportedCloud {
|
|
9
|
-
id: SquidCloudId;
|
|
10
|
-
name: string;
|
|
11
|
-
icon: string;
|
|
12
|
-
regions: Array<SquidCloudRegion>;
|
|
13
|
-
tooltip?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare const squidSupportedCloudMap: Record<SquidCloudId, SquidSupportedCloud>;
|
|
16
|
-
export declare function convertToSquidRegion(cloudId: SquidCloudId, region: string, isDev?: boolean): SupportedSquidRegion;
|
|
17
|
-
export declare const squidSupportedClouds: Array<SquidSupportedCloud>;
|