@squidcloud/client 1.0.159 → 1.0.160

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.
Files changed (101) hide show
  1. package/dist/cjs/index.js +90 -31
  2. package/dist/internal-common/src/public-types/ai-assistant.public-types.d.ts +25 -0
  3. package/dist/internal-common/src/public-types/ai-chatbot.public-types.d.ts +29 -0
  4. package/dist/internal-common/src/public-types/api-call.context.d.ts +13 -0
  5. package/dist/internal-common/src/public-types/api.types.d.ts +4 -0
  6. package/dist/internal-common/src/public-types/application.types.d.ts +149 -0
  7. package/dist/internal-common/src/public-types/backend-run.types.d.ts +2 -0
  8. package/dist/internal-common/src/public-types/base-query-builder.d.ts +147 -0
  9. package/dist/internal-common/src/public-types/bundle-api.types.d.ts +49 -0
  10. package/dist/internal-common/src/public-types/bundle-data.types.d.ts +11 -0
  11. package/dist/internal-common/src/public-types/communication.types.d.ts +10 -0
  12. package/dist/internal-common/src/public-types/context.types.d.ts +40 -0
  13. package/dist/internal-common/src/public-types/distributed-lock.context.d.ts +4 -0
  14. package/dist/internal-common/src/public-types/document.types.d.ts +22 -0
  15. package/dist/internal-common/src/public-types/graphql.context.d.ts +7 -0
  16. package/dist/internal-common/src/public-types/graphql.types.d.ts +9 -0
  17. package/dist/internal-common/src/public-types/heartbeat.types.d.ts +1 -0
  18. package/dist/internal-common/src/public-types/http-status.enum.d.ts +50 -0
  19. package/dist/internal-common/src/public-types/integration-types.d.ts +62 -0
  20. package/dist/internal-common/src/public-types/integrations/ai_chatbot.types.d.ts +32 -0
  21. package/dist/internal-common/src/public-types/integrations/api.types.d.ts +81 -0
  22. package/dist/internal-common/src/public-types/integrations/auth.types.d.ts +54 -0
  23. package/dist/internal-common/src/public-types/integrations/database.types.d.ts +275 -0
  24. package/dist/internal-common/src/public-types/integrations/observability.types.d.ts +24 -0
  25. package/dist/internal-common/src/public-types/integrations/queue-types.d.ts +40 -0
  26. package/dist/internal-common/src/public-types/integrations/schemas.d.ts +79 -0
  27. package/dist/internal-common/src/public-types/logger.types.d.ts +21 -0
  28. package/dist/internal-common/src/public-types/metrics.types.d.ts +1 -0
  29. package/dist/internal-common/src/public-types/mutation.context.d.ts +14 -0
  30. package/dist/internal-common/src/public-types/mutation.types.d.ts +53 -0
  31. package/dist/internal-common/src/public-types/native-query.context.d.ts +7 -0
  32. package/dist/internal-common/src/public-types/native-query.types.d.ts +16 -0
  33. package/dist/internal-common/src/public-types/openapi.types.d.ts +1 -0
  34. package/dist/internal-common/src/public-types/pagination.d.ts +62 -0
  35. package/dist/internal-common/src/public-types/query-context.d.ts +137 -0
  36. package/dist/internal-common/src/public-types/query.types.d.ts +64 -0
  37. package/dist/internal-common/src/public-types/regions.d.ts +1 -0
  38. package/dist/internal-common/src/public-types/secret.types.d.ts +22 -0
  39. package/dist/internal-common/src/public-types/serialized-query.types.d.ts +24 -0
  40. package/dist/internal-common/src/public-types/socket.types.d.ts +12 -0
  41. package/dist/internal-common/src/public-types/topic.context.d.ts +1 -0
  42. package/dist/internal-common/src/public-types/types.d.ts +14 -0
  43. package/dist/internal-common/src/public-utils/id-utils.d.ts +6 -0
  44. package/dist/internal-common/src/schema/schema.types.d.ts +54 -0
  45. package/dist/internal-common/src/types/ai-assistant.types.d.ts +1 -0
  46. package/dist/internal-common/src/types/ai-chatbot.context.d.ts +12 -0
  47. package/dist/internal-common/src/types/ai-chatbot.types.d.ts +1 -0
  48. package/dist/internal-common/src/types/backend-function.types.d.ts +1 -0
  49. package/dist/internal-common/src/utils/array.d.ts +1 -0
  50. package/dist/internal-common/src/utils/assert.d.ts +1 -0
  51. package/dist/internal-common/src/utils/global.utils.d.ts +1 -0
  52. package/dist/internal-common/src/utils/http.d.ts +2 -0
  53. package/dist/internal-common/src/utils/lock.manager.d.ts +14 -0
  54. package/dist/internal-common/src/utils/object.d.ts +5 -0
  55. package/dist/internal-common/src/utils/serialization.d.ts +5 -0
  56. package/dist/internal-common/src/utils/validation.d.ts +27 -0
  57. package/dist/internal-common/src/websocket.impl.d.ts +21 -0
  58. package/dist/node_modules/json-schema-typed/draft-2020-12.d.ts +1239 -0
  59. package/dist/typescript-client/src/ai-assistant-client.d.ts +73 -0
  60. package/dist/typescript-client/src/ai-chatbot-client.d.ts +174 -0
  61. package/dist/typescript-client/src/ai-chatbot-client.factory.d.ts +8 -0
  62. package/dist/typescript-client/src/ai.types.d.ts +63 -0
  63. package/dist/typescript-client/src/api.manager.d.ts +11 -0
  64. package/dist/typescript-client/src/auth.manager.d.ts +27 -0
  65. package/dist/typescript-client/src/backend-function.manager.d.ts +9 -0
  66. package/dist/typescript-client/src/backend-transforms.d.ts +0 -0
  67. package/dist/typescript-client/src/client-id.service.d.ts +27 -0
  68. package/dist/typescript-client/src/collection-reference.d.ts +80 -0
  69. package/dist/typescript-client/src/collection-reference.factory.d.ts +13 -0
  70. package/dist/typescript-client/src/connection-details.d.ts +23 -0
  71. package/dist/typescript-client/src/data.manager.d.ts +175 -0
  72. package/dist/typescript-client/src/destruct.manager.d.ts +13 -0
  73. package/dist/typescript-client/src/distributed-lock.manager.d.ts +16 -0
  74. package/dist/typescript-client/src/document-identity.service.d.ts +12 -0
  75. package/dist/typescript-client/src/document-reference.d.ts +148 -0
  76. package/dist/typescript-client/src/document-reference.factory.d.ts +13 -0
  77. package/dist/typescript-client/src/document-store.d.ts +14 -0
  78. package/dist/typescript-client/src/graphql-client.d.ts +14 -0
  79. package/dist/typescript-client/src/graphql-client.factory.d.ts +11 -0
  80. package/dist/typescript-client/src/index.d.ts +11 -0
  81. package/dist/typescript-client/src/mutation/mutation-sender.d.ts +11 -0
  82. package/dist/typescript-client/src/native-query-manager.d.ts +7 -0
  83. package/dist/typescript-client/src/public-types.d.ts +41 -0
  84. package/dist/typescript-client/src/public-utils.d.ts +1 -0
  85. package/dist/typescript-client/src/query/deserializer.d.ts +3 -0
  86. package/dist/typescript-client/src/query/join-query-builder.factory.d.ts +161 -0
  87. package/dist/typescript-client/src/query/local-query-manager.d.ts +9 -0
  88. package/dist/typescript-client/src/query/query-builder.factory.d.ts +77 -0
  89. package/dist/typescript-client/src/query/query-sender.d.ts +33 -0
  90. package/dist/typescript-client/src/query/query-subscription.manager.d.ts +131 -0
  91. package/dist/typescript-client/src/query/query.types.d.ts +49 -0
  92. package/dist/typescript-client/src/queue.manager.d.ts +7 -0
  93. package/dist/typescript-client/src/rate-limiter.d.ts +32 -0
  94. package/dist/typescript-client/src/rpc.manager.d.ts +30 -0
  95. package/dist/typescript-client/src/secret.client.d.ts +22 -0
  96. package/dist/typescript-client/src/socket.manager.d.ts +43 -0
  97. package/dist/typescript-client/src/squid.d.ts +245 -0
  98. package/dist/typescript-client/src/state/state.service.spec.d.ts +1 -0
  99. package/dist/typescript-client/src/testing/setup-tests.d.ts +1 -0
  100. package/dist/typescript-client/src/types.d.ts +2 -0
  101. package/package.json +1 -1
@@ -0,0 +1,275 @@
1
+ import { BaseIntegrationConfig, BaseIntegrationSchema, DatabaseIntegrationType } from './schemas';
2
+ import { CollectionSchema } from '../../schema/schema.types';
3
+ import { CollectionName } from '../document.types';
4
+ import { IntegrationSchemaType, IntegrationType } from '../integration-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 BigQueryConnectionSecretOptions {
28
+ privateKey: string;
29
+ }
30
+ export interface OracleConnectionSecretOptions {
31
+ password: string;
32
+ }
33
+ export interface PinotConnectionSecretOptions {
34
+ password?: string;
35
+ }
36
+ export interface MssqlConnectionSecretOptions {
37
+ password: string;
38
+ }
39
+ export interface PostgresConnectionSecretOptions {
40
+ password: string;
41
+ sslCertificate?: string;
42
+ }
43
+ export interface MySqlConnectionOptions {
44
+ secrets: MySqlConnectionSecretOptions;
45
+ host: string;
46
+ user: string;
47
+ database: string;
48
+ connectionLimit?: number;
49
+ sslEnabled?: boolean;
50
+ }
51
+ export interface BigQueryConnectionOptions {
52
+ secrets: BigQueryConnectionSecretOptions;
53
+ projectId: string;
54
+ datasetId: string;
55
+ email: string;
56
+ }
57
+ export interface OracleConnectionOptions {
58
+ secrets: OracleConnectionSecretOptions;
59
+ host: string;
60
+ user: string;
61
+ database: string;
62
+ connectionLimit?: number;
63
+ }
64
+ export interface PinotConnectionOptions {
65
+ secrets: PinotConnectionSecretOptions;
66
+ brokerUrl: string;
67
+ controllerUrl: string;
68
+ user?: string;
69
+ connectionLimit?: number;
70
+ }
71
+ export interface MssqlConnectionOptions {
72
+ secrets: MssqlConnectionSecretOptions;
73
+ host: string;
74
+ user: string;
75
+ schemas: string;
76
+ database: string;
77
+ connectionLimit?: number;
78
+ sslEnabled?: boolean;
79
+ }
80
+ export interface PostgresConnectionOptions {
81
+ host: string;
82
+ user: string;
83
+ database: string;
84
+ schema?: string;
85
+ sslEnabled?: boolean;
86
+ secrets: PostgresConnectionSecretOptions;
87
+ }
88
+ export interface SnowflakeConnectionSecretOptions {
89
+ password: string;
90
+ }
91
+ export interface SnowflakeConnectionOptions {
92
+ secrets: SnowflakeConnectionSecretOptions;
93
+ account: string;
94
+ username: string;
95
+ database: string;
96
+ schema: string;
97
+ warehouse: string;
98
+ role: string;
99
+ }
100
+ type TableName = string;
101
+ export interface IntegrationDataSchema extends BaseIntegrationSchema {
102
+ type: IntegrationSchemaType.data;
103
+ collections: Record<TableName, CollectionSchema>;
104
+ }
105
+ export interface BaseDatabaseIntegrationConfig extends BaseIntegrationConfig {
106
+ type: DatabaseIntegrationType;
107
+ supportsExternalChanges: boolean;
108
+ }
109
+ export interface MySqlIntegrationConfiguration {
110
+ connectionOptions: MySqlConnectionOptions;
111
+ }
112
+ export interface BigQueryIntegrationConfiguration {
113
+ connectionOptions: BigQueryConnectionOptions;
114
+ }
115
+ export interface OracleIntegrationConfiguration {
116
+ connectionOptions: OracleConnectionOptions;
117
+ }
118
+ export interface PinotIntegrationConfiguration {
119
+ connectionOptions: PinotConnectionOptions;
120
+ }
121
+ export interface MssqlIntegrationConfiguration {
122
+ connectionOptions: MssqlConnectionOptions;
123
+ }
124
+ export interface PostgresIntegrationConfiguration {
125
+ connectionOptions: PostgresConnectionOptions;
126
+ }
127
+ export interface MongoIntegrationConfiguration {
128
+ connectionOptions: MongoConnectionOptions;
129
+ }
130
+ export interface SnowflakeIntegrationConfiguration {
131
+ connectionOptions: SnowflakeConnectionOptions;
132
+ }
133
+ export interface MySqlIntegrationConfig extends BaseDatabaseIntegrationConfig {
134
+ type: IntegrationType.mysql;
135
+ configuration: MySqlIntegrationConfiguration;
136
+ }
137
+ export interface BigQueryIntegrationConfig extends BaseDatabaseIntegrationConfig {
138
+ type: IntegrationType.bigquery;
139
+ configuration: BigQueryIntegrationConfiguration;
140
+ }
141
+ export interface OracleIntegrationConfig extends BaseDatabaseIntegrationConfig {
142
+ type: IntegrationType.oracledb;
143
+ configuration: OracleIntegrationConfiguration;
144
+ }
145
+ export interface PinotIntegrationConfig extends BaseDatabaseIntegrationConfig {
146
+ type: IntegrationType.pinot;
147
+ configuration: PinotIntegrationConfiguration;
148
+ }
149
+ export interface MssqlIntegrationConfig extends BaseDatabaseIntegrationConfig {
150
+ type: IntegrationType.mssql;
151
+ configuration: MssqlIntegrationConfiguration;
152
+ }
153
+ export interface BasePostgresIntegration extends BaseDatabaseIntegrationConfig {
154
+ type: IntegrationType.postgres | IntegrationType.cockroach;
155
+ configuration: PostgresIntegrationConfiguration;
156
+ }
157
+ export interface PostgresIntegrationConfig extends BasePostgresIntegration {
158
+ type: IntegrationType.postgres;
159
+ }
160
+ export interface CockroachIntegrationConfig extends BasePostgresIntegration {
161
+ type: IntegrationType.cockroach;
162
+ supportsExternalChanges: false;
163
+ }
164
+ export interface InternalIntegrationConfig extends BaseDatabaseIntegrationConfig {
165
+ type: IntegrationType.built_in_db;
166
+ }
167
+ export interface MongoIntegrationConfig extends BaseDatabaseIntegrationConfig {
168
+ type: IntegrationType.mongo;
169
+ configuration: MongoIntegrationConfiguration;
170
+ }
171
+ export interface SnowflakeIntegrationConfig extends BaseDatabaseIntegrationConfig {
172
+ type: IntegrationType.snowflake;
173
+ configuration: SnowflakeIntegrationConfiguration;
174
+ supportsExternalChanges: false;
175
+ }
176
+ interface TestMongoDataConnectionRequest {
177
+ type: IntegrationType.mongo;
178
+ configuration: {
179
+ connectionOptions: MongoConnectionOptions;
180
+ };
181
+ }
182
+ interface TestMysqlDataConnectionRequest {
183
+ type: IntegrationType.mysql;
184
+ configuration: {
185
+ connectionOptions: MySqlConnectionOptions;
186
+ };
187
+ }
188
+ interface TestBigQueryDataConnectionRequest {
189
+ type: IntegrationType.bigquery;
190
+ configuration: {
191
+ connectionOptions: BigQueryConnectionOptions;
192
+ };
193
+ }
194
+ interface TestOracleDataConnectionRequest {
195
+ type: IntegrationType.oracledb;
196
+ configuration: {
197
+ connectionOptions: OracleConnectionOptions;
198
+ };
199
+ }
200
+ interface TestMssqlDataConnectionRequest {
201
+ type: IntegrationType.mssql;
202
+ configuration: {
203
+ connectionOptions: MssqlConnectionOptions;
204
+ };
205
+ }
206
+ interface TestPostgresDataConnectionRequest {
207
+ type: IntegrationType.postgres;
208
+ configuration: {
209
+ connectionOptions: PostgresConnectionOptions;
210
+ };
211
+ }
212
+ interface TestSnowflakeDataConnectionRequest {
213
+ type: IntegrationType.snowflake;
214
+ configuration: {
215
+ connectionOptions: SnowflakeConnectionOptions;
216
+ };
217
+ }
218
+ interface TestCockroachDataConnectionRequest {
219
+ type: IntegrationType.cockroach;
220
+ configuration: {
221
+ connectionOptions: PostgresConnectionOptions;
222
+ };
223
+ }
224
+ export type TestDataConnectionRequest = TestMongoDataConnectionRequest | TestMysqlDataConnectionRequest | TestBigQueryDataConnectionRequest | TestOracleDataConnectionRequest | TestMssqlDataConnectionRequest | TestCockroachDataConnectionRequest | TestPostgresDataConnectionRequest | TestSnowflakeDataConnectionRequest;
225
+ export interface CollectionReadiness {
226
+ hasPermissions: boolean;
227
+ grantPermissionsCommands: string[];
228
+ replicationEnabled: boolean;
229
+ enableReplicationCommands: string[];
230
+ }
231
+ export interface DiscoverDataConnectionSchemaResponse {
232
+ schema: IntegrationDataSchema;
233
+ collectionReadiness: Record<CollectionName, CollectionReadiness>;
234
+ }
235
+ interface DiscoverMongoDataConnectionSchemaRequest {
236
+ integrationType: IntegrationType.mongo;
237
+ connectionOptions: MongoConnectionOptions;
238
+ }
239
+ interface DiscoverInternalDataConnectionSchemaRequest {
240
+ integrationType: IntegrationType.built_in_db;
241
+ }
242
+ interface DiscoverMysqlDataConnectionSchemaRequest {
243
+ integrationType: IntegrationType.mysql;
244
+ connectionOptions: MySqlConnectionOptions;
245
+ }
246
+ interface DiscoverBigQueryDataConnectionSchemaRequest {
247
+ integrationType: IntegrationType.bigquery;
248
+ connectionOptions: BigQueryConnectionOptions;
249
+ }
250
+ interface DiscoverOracleDataConnectionSchemaRequest {
251
+ integrationType: IntegrationType.oracledb;
252
+ connectionOptions: OracleConnectionOptions;
253
+ }
254
+ interface DiscoverMssqlDataConnectionSchemaRequest {
255
+ integrationType: IntegrationType.mssql;
256
+ connectionOptions: MssqlConnectionOptions;
257
+ }
258
+ interface DiscoverPostgresDataConnectionSchemaRequest {
259
+ integrationType: IntegrationType.postgres;
260
+ connectionOptions: PostgresConnectionOptions;
261
+ }
262
+ interface DiscoverSnowflakeDataConnectionSchemaRequest {
263
+ integrationType: IntegrationType.snowflake;
264
+ connectionOptions: SnowflakeConnectionOptions;
265
+ }
266
+ interface DiscoverCockroachDataConnectionSchemaRequest {
267
+ integrationType: IntegrationType.cockroach;
268
+ connectionOptions: PostgresConnectionOptions;
269
+ }
270
+ export interface TestDataConnectionResponse {
271
+ success: boolean;
272
+ errorMessage?: string;
273
+ }
274
+ export type DiscoverDataConnectionSchemaRequest = DiscoverMongoDataConnectionSchemaRequest | DiscoverInternalDataConnectionSchemaRequest | DiscoverMysqlDataConnectionSchemaRequest | DiscoverBigQueryDataConnectionSchemaRequest | DiscoverOracleDataConnectionSchemaRequest | DiscoverMssqlDataConnectionSchemaRequest | DiscoverCockroachDataConnectionSchemaRequest | DiscoverPostgresDataConnectionSchemaRequest | DiscoverSnowflakeDataConnectionSchemaRequest;
275
+ export {};
@@ -0,0 +1,24 @@
1
+ import { BaseIntegrationConfig } from './schemas';
2
+ import { IntegrationType } from '../integration-types';
3
+ export interface DatadogIntegrationConfig extends BaseIntegrationConfig {
4
+ type: IntegrationType.datadog;
5
+ configuration: DatadogIntegrationConfiguration;
6
+ }
7
+ export interface DatadogIntegrationConfiguration {
8
+ apiKey: string;
9
+ appKey: string;
10
+ datadogRegion: DatadogRegion;
11
+ }
12
+ export type DatadogRegion = 'us1' | 'us3' | 'us5' | 'eu1' | 'us1-fed' | 'ap1';
13
+ export interface NewRelicIntegrationConfig extends BaseIntegrationConfig {
14
+ type: IntegrationType.newrelic;
15
+ configuration: NewRelicIntegrationConfiguration;
16
+ }
17
+ export declare const datadogRegionMap: Record<DatadogRegion, string>;
18
+ export declare const datadogLogsUrlMap: Record<DatadogRegion, string>;
19
+ export type NewRelicRegion = 'worldwide' | 'eu';
20
+ export interface NewRelicIntegrationConfiguration {
21
+ apiKey: string;
22
+ newRelicRegion: NewRelicRegion;
23
+ }
24
+ export declare const newRelicRegionMap: Record<NewRelicRegion, string>;
@@ -0,0 +1,40 @@
1
+ import { IntegrationType } from '../integration-types';
2
+ import { BaseIntegrationConfig, QueueIntegrationTypes } from './schemas';
3
+ export type QueueIntegrationType = (typeof QueueIntegrationTypes)[number];
4
+ export interface BaseQueueIntegrationConfig extends BaseIntegrationConfig {
5
+ type: QueueIntegrationType;
6
+ }
7
+ export interface KafkaConnectionSecretOptions {
8
+ password?: string;
9
+ }
10
+ export interface KafkaConnectionOptions {
11
+ secrets?: KafkaConnectionSecretOptions;
12
+ username?: string;
13
+ bootstrapServers: string;
14
+ }
15
+ export interface KafkaIntegrationConfiguration {
16
+ connectionOptions: KafkaConnectionOptions;
17
+ }
18
+ export interface KafkaIntegrationConfig extends BaseQueueIntegrationConfig {
19
+ type: IntegrationType.kafka;
20
+ configuration: KafkaIntegrationConfiguration;
21
+ }
22
+ export interface ConfluentIntegrationConfig extends BaseQueueIntegrationConfig {
23
+ type: IntegrationType.confluent;
24
+ configuration: KafkaIntegrationConfiguration;
25
+ }
26
+ export interface BuiltInQueueIntegrationConfig extends BaseQueueIntegrationConfig {
27
+ type: IntegrationType.built_in_queue;
28
+ }
29
+ export interface TestKafkaConnectionRequest {
30
+ type: IntegrationType.kafka;
31
+ configuration: {
32
+ connectionOptions: KafkaConnectionOptions;
33
+ };
34
+ }
35
+ export interface TestConfluentConnectionRequest {
36
+ type: IntegrationType.confluent;
37
+ configuration: {
38
+ connectionOptions: KafkaConnectionOptions;
39
+ };
40
+ }
@@ -0,0 +1,79 @@
1
+ import { AiChatbotIntegrationConfig } from './ai_chatbot.types';
2
+ import { GraphQLIntegrationConfig, HttpApiIntegrationConfig, IntegrationApiSchema, IntegrationGraphQLSchema, TestGraphQLDataConnectionRequest } from './api.types';
3
+ import { Auth0IntegrationConfig, CognitoIntegrationConfig, DescopeIntegrationConfig, JwtHmacIntegrationConfig, JwtRsaIntegrationConfig, OktaIntegrationConfig } from './auth.types';
4
+ import { BaseDatabaseIntegrationConfig, BigQueryIntegrationConfig, CockroachIntegrationConfig, IntegrationDataSchema, InternalIntegrationConfig, MongoIntegrationConfig, MssqlIntegrationConfig, MySqlIntegrationConfig, OracleIntegrationConfig, PinotIntegrationConfig, PostgresIntegrationConfig, SnowflakeIntegrationConfig, TestDataConnectionRequest } from './database.types';
5
+ import { DatadogIntegrationConfig, NewRelicIntegrationConfig } from './observability.types';
6
+ import { IntegrationId } from '../communication.types';
7
+ import { IntegrationSchemaType, IntegrationType } from '../integration-types';
8
+ import { BuiltInQueueIntegrationConfig, ConfluentIntegrationConfig, KafkaIntegrationConfig, TestConfluentConnectionRequest, TestKafkaConnectionRequest } from './queue-types';
9
+ export interface IntegrationConfigTypes {
10
+ [IntegrationType.built_in_db]: InternalIntegrationConfig;
11
+ [IntegrationType.mongo]: MongoIntegrationConfig;
12
+ [IntegrationType.mysql]: MySqlIntegrationConfig;
13
+ [IntegrationType.bigquery]: BigQueryIntegrationConfig;
14
+ [IntegrationType.oracledb]: OracleIntegrationConfig;
15
+ [IntegrationType.pinot]: PinotIntegrationConfig;
16
+ [IntegrationType.mssql]: MssqlIntegrationConfig;
17
+ [IntegrationType.postgres]: PostgresIntegrationConfig;
18
+ [IntegrationType.cockroach]: CockroachIntegrationConfig;
19
+ [IntegrationType.snowflake]: SnowflakeIntegrationConfig;
20
+ [IntegrationType.api]: HttpApiIntegrationConfig;
21
+ [IntegrationType.graphql]: GraphQLIntegrationConfig;
22
+ [IntegrationType.datadog]: DatadogIntegrationConfig;
23
+ [IntegrationType.newrelic]: NewRelicIntegrationConfig;
24
+ [IntegrationType.auth0]: Auth0IntegrationConfig;
25
+ [IntegrationType.jwt_rsa]: JwtRsaIntegrationConfig;
26
+ [IntegrationType.jwt_hmac]: JwtHmacIntegrationConfig;
27
+ [IntegrationType.ai_chatbot]: AiChatbotIntegrationConfig;
28
+ [IntegrationType.cognito]: CognitoIntegrationConfig;
29
+ [IntegrationType.okta]: OktaIntegrationConfig;
30
+ [IntegrationType.kafka]: KafkaIntegrationConfig;
31
+ [IntegrationType.confluent]: ConfluentIntegrationConfig;
32
+ [IntegrationType.built_in_queue]: BuiltInQueueIntegrationConfig;
33
+ [IntegrationType.descope]: DescopeIntegrationConfig;
34
+ }
35
+ export interface IntegrationSchemaTypes {
36
+ [IntegrationType.built_in_db]: IntegrationDataSchema;
37
+ [IntegrationType.mongo]: IntegrationDataSchema;
38
+ [IntegrationType.mysql]: IntegrationDataSchema;
39
+ [IntegrationType.oracledb]: IntegrationDataSchema;
40
+ [IntegrationType.bigquery]: IntegrationDataSchema;
41
+ [IntegrationType.pinot]: IntegrationDataSchema;
42
+ [IntegrationType.mssql]: IntegrationDataSchema;
43
+ [IntegrationType.postgres]: IntegrationDataSchema;
44
+ [IntegrationType.cockroach]: IntegrationDataSchema;
45
+ [IntegrationType.snowflake]: IntegrationDataSchema;
46
+ [IntegrationType.api]: IntegrationApiSchema;
47
+ [IntegrationType.graphql]: IntegrationGraphQLSchema;
48
+ }
49
+ export type IntegrationTypeWithConfig = keyof IntegrationConfigTypes;
50
+ export type IntegrationSchemaKeys = keyof IntegrationSchemaTypes;
51
+ export type IntegrationConfig = IntegrationConfigTypes[IntegrationTypeWithConfig];
52
+ export type IntegrationSchema = IntegrationSchemaTypes[IntegrationSchemaKeys];
53
+ export declare const DatabaseIntegrationTypes: readonly [IntegrationType.built_in_db, IntegrationType.mongo, IntegrationType.mysql, IntegrationType.bigquery, IntegrationType.mssql, IntegrationType.postgres, IntegrationType.cockroach, IntegrationType.snowflake, IntegrationType.oracledb, IntegrationType.pinot];
54
+ export type DatabaseIntegrationType = (typeof DatabaseIntegrationTypes)[number];
55
+ export type DatabaseIntegrationConfig = IntegrationConfigTypes[DatabaseIntegrationType];
56
+ export declare const ApiIntegrationTypes: readonly [IntegrationType.api, IntegrationType.graphql];
57
+ export declare const ObservabilityIntegrationTypes: readonly [IntegrationType.datadog, IntegrationType.newrelic];
58
+ export declare const AuthIntegrationTypes: readonly [IntegrationType.auth0, IntegrationType.jwt_rsa, IntegrationType.jwt_hmac, IntegrationType.cognito, IntegrationType.okta, IntegrationType.descope];
59
+ export declare const QueueIntegrationTypes: readonly [IntegrationType.built_in_queue, IntegrationType.kafka, IntegrationType.confluent];
60
+ export type ApiIntegrationType = (typeof ApiIntegrationTypes)[number];
61
+ export type ApiIntegrationConfig = IntegrationConfigTypes[ApiIntegrationType];
62
+ export type ObservabilityIntegrationType = (typeof ObservabilityIntegrationTypes)[number];
63
+ export type ObservabilityIntegrationConfig = IntegrationConfigTypes[ObservabilityIntegrationType];
64
+ export type AuthIntegrationType = (typeof AuthIntegrationTypes)[number];
65
+ export type AuthIntegrationConfig = IntegrationConfigTypes[AuthIntegrationType];
66
+ export declare function isDataIntegrationType(type: unknown): type is DatabaseIntegrationType;
67
+ export declare function isDataIntegration(integration: any): integration is BaseDatabaseIntegrationConfig;
68
+ export declare function isAuthIntegrationType(type: IntegrationType): type is AuthIntegrationType;
69
+ export declare function isAuthIntegration(integration: any): integration is AuthIntegrationConfig;
70
+ export interface BaseIntegrationConfig {
71
+ id: IntegrationId;
72
+ type: IntegrationTypeWithConfig;
73
+ creationDate: Date;
74
+ updateDate: Date;
75
+ }
76
+ export interface BaseIntegrationSchema {
77
+ type: IntegrationSchemaType;
78
+ }
79
+ export type TestConnectionRequest = TestDataConnectionRequest | TestGraphQLDataConnectionRequest | TestKafkaConnectionRequest | TestConfluentConnectionRequest;
@@ -0,0 +1,21 @@
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
+ log(record: LogRecord): void;
9
+ }
10
+ export declare enum LogLevel {
11
+ TRACE = "trace",
12
+ DEBUG = "debug",
13
+ INFO = "info",
14
+ WARN = "warn",
15
+ ERROR = "error"
16
+ }
17
+ export interface LogRecord {
18
+ level?: LogLevel;
19
+ message?: string;
20
+ [key: string]: any;
21
+ }
@@ -0,0 +1 @@
1
+ export type MetricType = 'count' | 'gauge';
@@ -0,0 +1,14 @@
1
+ import { Mutation, MutationType } from './mutation.types';
2
+ import { BeforeAndAfterDocs } from './document.types';
3
+ import { Paths } from './types';
4
+ /** The mutation context that will be provided to the security function. */
5
+ export declare class MutationContext<T = any> {
6
+ readonly mutation: Mutation<T>;
7
+ readonly beforeAndAfterDocs: BeforeAndAfterDocs<T>;
8
+ readonly serverTimeStamp: Date;
9
+ getMutationType(): MutationType;
10
+ get before(): T | undefined;
11
+ get after(): T | undefined;
12
+ /** Returns true if the mutation affects the provided path. */
13
+ affectsPath(path: Paths<T>): boolean;
14
+ }
@@ -0,0 +1,53 @@
1
+ import { SquidDocIdObj } from './document.types';
2
+ /** A mutation on a document. */
3
+ export type Mutation<T = any> = UpdateMutation<T> | InsertMutation<T> | DeleteMutation;
4
+ /** The mutation type. */
5
+ export type MutationType = 'insert' | 'update' | 'delete';
6
+ interface BaseMutation {
7
+ type: MutationType;
8
+ squidDocIdObj: SquidDocIdObj;
9
+ }
10
+ export interface DeleteMutation extends BaseMutation {
11
+ type: 'delete';
12
+ }
13
+ export interface UpdateMutation<T = any> extends BaseMutation {
14
+ type: 'update';
15
+ /** The updated properties */
16
+ properties: {
17
+ [key in keyof T & string]?: Array<PropertyMutation<T[key]>>;
18
+ };
19
+ }
20
+ export interface InsertMutation<T = any> extends BaseMutation {
21
+ type: 'insert';
22
+ /** The inserted document */
23
+ properties: T;
24
+ }
25
+ /** A representation of a single property update */
26
+ export type PropertyMutation<Value = any> = ApplyNumericFnPropertyMutation | ApplyStringFnPropertyMutation | ValueUpdatePropertyMutation<Value> | RemovePropertyMutation;
27
+ /** A value update property mutation */
28
+ export interface ValueUpdatePropertyMutation<Value = any> {
29
+ type: 'update';
30
+ value: Value;
31
+ }
32
+ /** Applying a numeric function to a property */
33
+ export interface ApplyNumericFnPropertyMutation {
34
+ type: 'applyNumericFn';
35
+ fn: 'increment';
36
+ value: number;
37
+ }
38
+ /** A property update that removes a property from a document */
39
+ export interface RemovePropertyMutation {
40
+ type: 'removeProperty';
41
+ }
42
+ interface ApplyExtendString {
43
+ type: 'applyStringFn';
44
+ fn: 'extendString';
45
+ value: string;
46
+ }
47
+ interface ApplyTrimString {
48
+ type: 'applyStringFn';
49
+ fn: 'trim';
50
+ }
51
+ /** A property mutation that modifies a string */
52
+ export type ApplyStringFnPropertyMutation = ApplyExtendString | ApplyTrimString;
53
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ClientId } from './communication.types';
2
+ /** The context provided to the secure native query function. */
3
+ export declare class NativeQueryContext {
4
+ readonly query: string;
5
+ readonly params: Record<string, any>;
6
+ readonly clientId: ClientId;
7
+ }
@@ -0,0 +1,16 @@
1
+ export type NativeQueryRequestType = 'relational' | 'mongo';
2
+ interface BaseNativeQueryRequest {
3
+ type: NativeQueryRequestType;
4
+ }
5
+ export interface RelationalNativeQueryRequest extends BaseNativeQueryRequest {
6
+ type: 'relational';
7
+ query: string;
8
+ params: Record<string, any>;
9
+ }
10
+ export interface MongoNativeQueryRequest extends BaseNativeQueryRequest {
11
+ type: 'mongo';
12
+ collectionName: string;
13
+ aggregationPipeline: Array<any | undefined>;
14
+ }
15
+ export type NativeQueryRequest = RelationalNativeQueryRequest | MongoNativeQueryRequest;
16
+ export {};
@@ -0,0 +1,62 @@
1
+ import { Observable } from 'rxjs';
2
+ /** The state of a pagination. */
3
+ export interface PaginationState<ReturnType> {
4
+ /** The page data. */
5
+ data: Array<ReturnType>;
6
+ /** Whether there is a next page. */
7
+ hasNext: boolean;
8
+ /** Whether there is a previous page. */
9
+ hasPrev: boolean;
10
+ }
11
+ /** Pagination options */
12
+ export interface PaginationOptions {
13
+ /** Whether to show real-time updates. Defaults to true. */
14
+ subscribe: boolean;
15
+ /** The number of items in a page. Defaults to 100. */
16
+ pageSize: number;
17
+ }
18
+ interface InternalState<ReturnType> {
19
+ data: ReturnType[];
20
+ extractedData: any[];
21
+ numBefore: number;
22
+ numAfter: number;
23
+ }
24
+ export declare class Pagination<ReturnType> {
25
+ private readonly options;
26
+ private internalStateObserver;
27
+ private firstElement;
28
+ private readonly isDestroyed;
29
+ private templateSnapshotEmitter;
30
+ private snapshotSubject;
31
+ private onFirstPage;
32
+ private navigatingToLastPage;
33
+ private lastElement;
34
+ private goToFirstPage;
35
+ private static compareValues;
36
+ private compare;
37
+ private dataReceived;
38
+ private doNewQuery;
39
+ private waitForInternalState;
40
+ private internalStateToState;
41
+ /** Unsubscribes from the pagination. */
42
+ unsubscribe(): void;
43
+ prevInternal(internalState: InternalState<ReturnType>): void;
44
+ /** Returns a promise that resolves when the previous page of data is available. */
45
+ prev(): Promise<PaginationState<ReturnType>>;
46
+ /** Returns a promise that resolves when the next page of data is available. */
47
+ next(): Promise<PaginationState<ReturnType>>;
48
+ /** Returns a promise that resolves when the page data is available. */
49
+ waitForData(): Promise<PaginationState<ReturnType>>;
50
+ /** Returns an observable that emits the current state of the pagination. */
51
+ observeState(): Observable<PaginationState<ReturnType>>;
52
+ /** Jumps to the first page of the pagination. */
53
+ first(): Promise<PaginationState<ReturnType>>;
54
+ /** Refreshes the current page of the pagination. */
55
+ refreshPage(): Promise<PaginationState<ReturnType>>;
56
+ /**
57
+ * Jumps to the last page of the pagination. This page will always have the last <pageSize> elements of the
58
+ * underlying query, regardless of whether the total document count is evenly divisible by the page size.
59
+ */
60
+ last(): Promise<PaginationState<ReturnType>>;
61
+ }
62
+ export {};