@squidcloud/client 1.0.46 → 1.0.48
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/common/src/api.types.d.ts +2 -1
- package/dist/common/src/backend-run.types.d.ts +1 -1
- package/dist/common/src/bundle-api.types.d.ts +2 -0
- package/dist/common/src/bundle-data.types.d.ts +6 -0
- package/dist/common/src/distributed-lock.context.d.ts +5 -0
- package/dist/common/src/document.types.d.ts +1 -1
- package/dist/common/src/graphql.types.d.ts +0 -5
- package/dist/common/src/index.d.ts +3 -1
- package/dist/common/src/integration.types.d.ts +17 -4
- package/dist/common/src/socket.types.d.ts +34 -4
- package/dist/common/src/utils/url.d.ts +1 -0
- package/dist/index.js +6 -6
- package/dist/typescript-client/src/distributed-lock.manager.d.ts +19 -0
- package/dist/typescript-client/src/document-reference.d.ts +35 -1
- package/dist/typescript-client/src/socket.manager.d.ts +2 -2
- package/dist/typescript-client/src/squid.d.ts +12 -0
- package/package.json +1 -1
- package/dist/typescript-client/src/mutation/mutation.spec.d.ts +0 -1
- package/dist/typescript-client/src/query/query-subscription.manager.spec.d.ts +0 -1
- package/dist/typescript-client/src/query/query.spec.d.ts +0 -1
- package/dist/typescript-client/src/testing/fake-rpc.manager.d.ts +0 -20
- package/dist/typescript-client/src/testing/fake-socket.manager.d.ts +0 -9
- package/dist/typescript-client/src/testing/squid-env-setup.d.ts +0 -79
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ClientId, ClientRequestId, IntegrationId } from './communication.types';
|
|
2
2
|
import { ApiEndpointId, HttpMethod } from './integration.types';
|
|
3
3
|
export type ApiHeaders = Record<string, string | number | boolean>;
|
|
4
|
+
export type ApiQueryParams = Record<string, string | number | boolean>;
|
|
4
5
|
export interface CallApiRequest {
|
|
5
6
|
integrationId: IntegrationId;
|
|
6
7
|
clientId: ClientId;
|
|
@@ -11,7 +12,7 @@ export interface CallApiRequest {
|
|
|
11
12
|
}
|
|
12
13
|
export interface ExtractedApiParams {
|
|
13
14
|
headers: ApiHeaders;
|
|
14
|
-
queryParams:
|
|
15
|
+
queryParams: ApiQueryParams;
|
|
15
16
|
body: Record<string, any>;
|
|
16
17
|
pathParams: Record<string, string>;
|
|
17
18
|
}
|
|
@@ -22,7 +22,7 @@ export interface LoadJsPayload {
|
|
|
22
22
|
codeUrl: string;
|
|
23
23
|
}
|
|
24
24
|
export declare const executeFunctionSecureAnnotationType: Array<ExecuteFunctionAnnotationType>;
|
|
25
|
-
export type ExecuteFunctionSecureAnnotationType = 'secureQuery' | 'secureMutation' | 'secureNamedQuery' | 'secureGraphQL' | 'secureApi';
|
|
25
|
+
export type ExecuteFunctionSecureAnnotationType = 'secureDistributedLock' | 'secureQuery' | 'secureMutation' | 'secureNamedQuery' | 'secureGraphQL' | 'secureApi';
|
|
26
26
|
export type ExecuteFunctionAnnotationType = 'executable' | 'webhook' | 'scheduler' | 'trigger' | 'transformRead' | 'transformWrite' | 'metadata' | ExecuteFunctionSecureAnnotationType;
|
|
27
27
|
export interface ExecuteFunctionPayload {
|
|
28
28
|
functionName: string;
|
|
@@ -9,6 +9,7 @@ import { SecretKey } from './secret.types';
|
|
|
9
9
|
import { ApiCallContext } from './api-call.context';
|
|
10
10
|
import { NamedQueryContext } from './named-query.context';
|
|
11
11
|
import { GraphqlContext } from './graphql.context';
|
|
12
|
+
import { DistributedLockContext } from './distributed-lock.context';
|
|
12
13
|
export type DocHash = string;
|
|
13
14
|
export type SecurityResponse = {
|
|
14
15
|
docsToHash: Record<SquidDocId, DocHash | undefined>;
|
|
@@ -27,6 +28,7 @@ export interface ServiceConfig {
|
|
|
27
28
|
export type SecureDatabaseAction<T extends ActionType> = T extends 'all' ? () => boolean | Promise<boolean> : T extends 'read' ? (context?: QueryContext) => boolean | Promise<boolean> : (context?: MutationContext) => boolean | Promise<boolean>;
|
|
28
29
|
export type SecureApiAction = (context?: ApiCallContext) => boolean | Promise<boolean>;
|
|
29
30
|
export type SecureNamedQueryAction = (context?: NamedQueryContext) => boolean | Promise<boolean>;
|
|
31
|
+
export type SecureDistributedLockAction = (context?: DistributedLockContext) => boolean | Promise<boolean>;
|
|
30
32
|
export type SecureGraphQLAction = (context?: GraphqlContext) => boolean | Promise<boolean>;
|
|
31
33
|
export type TransformDatabaseAction<T extends ActionType> = T extends 'read' ? (request?: TransformDatabaseReadRequest) => TransformDatabaseReadResponse | Promise<TransformDatabaseReadResponse> : (request?: TransformDatabaseWriteRequest) => TransformDatabaseWriteResponse | Promise<TransformDatabaseWriteResponse>;
|
|
32
34
|
export interface TransformDatabaseReadRequest {
|
|
@@ -17,6 +17,12 @@ export interface ApplicationBundleData {
|
|
|
17
17
|
schedulers: Record<SchedulerId, SchedulerConfig>;
|
|
18
18
|
webhooks: Record<WebhookId, WebhookConfig>;
|
|
19
19
|
namedQueries: Record<IntegrationId, Record<QueryName, NamedQueryMetadata>>;
|
|
20
|
+
distributedLocks: {
|
|
21
|
+
security?: Array<ServiceFunctionName>;
|
|
22
|
+
mutexes?: Record<string, {
|
|
23
|
+
security?: Array<ServiceFunctionName>;
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
20
26
|
}
|
|
21
27
|
export interface DatabaseMetadata {
|
|
22
28
|
collections: Record<CollectionName, CollectionMetadata>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IntegrationId } from './communication.types';
|
|
2
2
|
export type FieldName<T = any> = string & keyof T;
|
|
3
|
-
export type PrimitiveFieldType = string | number | boolean | null;
|
|
3
|
+
export type PrimitiveFieldType = string | number | boolean | null | Date;
|
|
4
4
|
export type FieldType = PrimitiveFieldType | Array<FieldType> | {
|
|
5
5
|
[key: string]: FieldType;
|
|
6
6
|
};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { IntrospectionQuery } from 'graphql';
|
|
2
|
-
import { ApiHeaders } from './api.types';
|
|
3
2
|
export { ExecutionResult, IntrospectionQuery } from 'graphql';
|
|
4
|
-
export interface ExtractedGraphQLParams {
|
|
5
|
-
headers: ApiHeaders;
|
|
6
|
-
}
|
|
7
3
|
export interface GraphQLRequest {
|
|
8
4
|
operationName?: string;
|
|
9
5
|
query?: string;
|
|
@@ -11,6 +7,5 @@ export interface GraphQLRequest {
|
|
|
11
7
|
}
|
|
12
8
|
export interface SecureGraphQLRequest extends GraphQLRequest {
|
|
13
9
|
isGraphiQL: boolean;
|
|
14
|
-
headers: ApiHeaders;
|
|
15
10
|
}
|
|
16
11
|
export declare const EmptyIntrospection: IntrospectionQuery;
|
|
@@ -9,6 +9,7 @@ export * from './bundle-api.types';
|
|
|
9
9
|
export * from './bundle-data.types';
|
|
10
10
|
export * from './communication.types';
|
|
11
11
|
export * from './context.types';
|
|
12
|
+
export * from './distributed-lock.context';
|
|
12
13
|
export * from './document.types';
|
|
13
14
|
export * from './graphql.context';
|
|
14
15
|
export * from './graphql.types';
|
|
@@ -38,12 +39,13 @@ export * from './types';
|
|
|
38
39
|
export * from './utils/array';
|
|
39
40
|
export * from './utils/assert';
|
|
40
41
|
export * from './utils/error';
|
|
42
|
+
export * from './utils/http';
|
|
41
43
|
export * from './utils/id';
|
|
42
44
|
export * from './utils/lock.manager';
|
|
43
45
|
export * from './utils/nullish';
|
|
44
46
|
export * from './utils/object';
|
|
45
47
|
export * from './utils/serialization';
|
|
46
48
|
export * from './utils/transforms';
|
|
47
|
-
export * from './utils/
|
|
49
|
+
export * from './utils/url';
|
|
48
50
|
export * from './utils/validation';
|
|
49
51
|
export * from './webhook-response';
|
|
@@ -58,7 +58,9 @@ export interface PostgresConnectionOptions {
|
|
|
58
58
|
}
|
|
59
59
|
export interface GraphQLConnectionOptions {
|
|
60
60
|
baseUrl: string;
|
|
61
|
+
injectionSchema?: ApiInjectionSchema;
|
|
61
62
|
}
|
|
63
|
+
export type ApiInjectionSchema = Record<FieldName, ApiInjectionField>;
|
|
62
64
|
export interface OpenApiDiscoveryOptions {
|
|
63
65
|
openApiSpecUrl: string;
|
|
64
66
|
}
|
|
@@ -74,6 +76,11 @@ export interface SnowflakeConnectionOptions {
|
|
|
74
76
|
warehouse: string;
|
|
75
77
|
role: string;
|
|
76
78
|
}
|
|
79
|
+
export declare enum IntegrationCategory {
|
|
80
|
+
'database' = "database",
|
|
81
|
+
'api' = "api",
|
|
82
|
+
'observability' = "observability"
|
|
83
|
+
}
|
|
77
84
|
export declare enum IntegrationType {
|
|
78
85
|
'built_in_db' = "built_in_db",
|
|
79
86
|
'mongo' = "mongo",
|
|
@@ -96,12 +103,11 @@ export interface IntegrationDataSchema {
|
|
|
96
103
|
}
|
|
97
104
|
export interface IntegrationGraphQLSchema {
|
|
98
105
|
introspection: IntrospectionQuery;
|
|
99
|
-
injectionSchema?: Record<FieldName, ApiInjectionField>;
|
|
100
106
|
}
|
|
101
107
|
export interface IntegrationApiSchema {
|
|
102
108
|
baseUrl: string;
|
|
103
109
|
endpoints: IntegrationApiEndpoints;
|
|
104
|
-
injectionSchema?:
|
|
110
|
+
injectionSchema?: ApiInjectionSchema;
|
|
105
111
|
}
|
|
106
112
|
export type IntegrationApiEndpoints = Record<ApiEndpointId, ApiEndpoint>;
|
|
107
113
|
export type IntegrationSchema = IntegrationDataSchema | IntegrationGraphQLSchema;
|
|
@@ -143,7 +149,7 @@ export type HttpMethod = 'post' | 'get' | 'delete' | 'patch' | 'put';
|
|
|
143
149
|
export type ApiEndpointId = string;
|
|
144
150
|
export type ApiParameterLocation = 'query' | 'body' | 'header' | 'path';
|
|
145
151
|
export type ApiResponseParameterLocation = 'header' | 'body';
|
|
146
|
-
export type ApiInjectionParameterLocation = 'header';
|
|
152
|
+
export type ApiInjectionParameterLocation = 'header' | 'query';
|
|
147
153
|
export type FieldPath = string;
|
|
148
154
|
export interface ApiRequestField {
|
|
149
155
|
location: ApiParameterLocation;
|
|
@@ -163,7 +169,7 @@ export interface ApiEndpoint {
|
|
|
163
169
|
method: HttpMethod;
|
|
164
170
|
requestSchema?: Record<FieldName, ApiRequestField>;
|
|
165
171
|
responseSchema?: Record<FieldPath, ApiResponseField>;
|
|
166
|
-
injectionSchema?:
|
|
172
|
+
injectionSchema?: ApiInjectionSchema;
|
|
167
173
|
}
|
|
168
174
|
export interface ApiIntegrationConfig extends BaseIntegrationConfig {
|
|
169
175
|
type: IntegrationType.api;
|
|
@@ -269,7 +275,14 @@ interface TestCockroachDataConnectionRequest {
|
|
|
269
275
|
connectionOptions: PostgresConnectionOptions;
|
|
270
276
|
};
|
|
271
277
|
}
|
|
278
|
+
export interface TestGraphQLDataConnectionRequest {
|
|
279
|
+
type: IntegrationType.graphql;
|
|
280
|
+
configuration: {
|
|
281
|
+
connectionOptions: GraphQLConnectionOptions;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
272
284
|
export type TestDataConnectionRequest = TestMongoDataConnectionRequest | TestMysqlDataConnectionRequest | TestMssqlDataConnectionRequest | TestCockroachDataConnectionRequest | TestPostgresDataConnectionRequest | TestSnowflakeDataConnectionRequest;
|
|
285
|
+
export type TestConnectionRequest = TestDataConnectionRequest | TestGraphQLDataConnectionRequest;
|
|
273
286
|
export interface DiscoverDataConnectionSchemaResponse {
|
|
274
287
|
schema: IntegrationDataSchema;
|
|
275
288
|
}
|
|
@@ -2,7 +2,7 @@ import { ClientId, ClientRequestId, IntegrationId } from './communication.types'
|
|
|
2
2
|
import { CollectionName, DocTimestamp, SquidDocId, SquidDocument } from './document.types';
|
|
3
3
|
import { MutationType } from './mutation.types';
|
|
4
4
|
export type MessageId = string;
|
|
5
|
-
export type MessageFromClientType = 'acknowledge' | 'catchup' | 'kill';
|
|
5
|
+
export type MessageFromClientType = 'acknowledge' | 'catchup' | 'kill' | 'acquireLock' | 'releaseLock';
|
|
6
6
|
interface BaseMessageFromClient {
|
|
7
7
|
type: MessageFromClientType;
|
|
8
8
|
payload?: unknown;
|
|
@@ -17,8 +17,23 @@ export interface CatchupMessage extends BaseMessageFromClient {
|
|
|
17
17
|
export interface KillMessage extends BaseMessageFromClient {
|
|
18
18
|
type: 'kill';
|
|
19
19
|
}
|
|
20
|
-
export
|
|
21
|
-
|
|
20
|
+
export interface AcquireLockMessage extends BaseMessageFromClient {
|
|
21
|
+
type: 'acquireLock';
|
|
22
|
+
payload: {
|
|
23
|
+
mutex: string;
|
|
24
|
+
exclusive: boolean;
|
|
25
|
+
clientRequestId: ClientRequestId;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface ReleaseLockMessage extends BaseMessageFromClient {
|
|
29
|
+
type: 'releaseLock';
|
|
30
|
+
payload: {
|
|
31
|
+
lockId: string;
|
|
32
|
+
clientRequestId: ClientRequestId;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export type MessageFromClient = AcknowledgeMessage | CatchupMessage | KillMessage | AcquireLockMessage | ReleaseLockMessage;
|
|
36
|
+
export type MessageToClientType = 'mutations' | 'query' | 'backendFunction' | 'api' | 'namedQuery' | 'lockAcquired' | 'lockReleased';
|
|
22
37
|
interface BaseMessageToClient {
|
|
23
38
|
type: MessageToClientType;
|
|
24
39
|
messageId: MessageId;
|
|
@@ -41,7 +56,22 @@ export interface ApiResponseMessageToClient extends BaseMessageToClient {
|
|
|
41
56
|
httpStatus: number;
|
|
42
57
|
payload: string;
|
|
43
58
|
}
|
|
44
|
-
export
|
|
59
|
+
export interface LockAcquiredResponseMessageToClient extends BaseMessageToClient {
|
|
60
|
+
type: 'lockAcquired';
|
|
61
|
+
payload: {
|
|
62
|
+
clientRequestId: ClientRequestId;
|
|
63
|
+
lockId: string | undefined;
|
|
64
|
+
error?: string;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface LockReleasedResponseMessageToClient extends BaseMessageToClient {
|
|
68
|
+
type: 'lockReleased';
|
|
69
|
+
payload: {
|
|
70
|
+
clientRequestId: ClientRequestId;
|
|
71
|
+
lockId: string;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export type MessageToClient = MutationsMessageToClient | QueryResultMessageToClient | BackendFunctionMessageToClient | NamedQueryMessageToClient | ApiResponseMessageToClient | LockAcquiredResponseMessageToClient | LockReleasedResponseMessageToClient;
|
|
45
75
|
export interface MutationsMessageToClient extends BaseMessageToClient {
|
|
46
76
|
type: 'mutations';
|
|
47
77
|
payload: Array<MutationResultData>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function appendQueryParams(url: string, queryParams: Record<string, any>): string;
|