ai-database 2.1.3 → 2.3.0
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/CHANGELOG.md +35 -1
- package/README.md +880 -669
- package/dist/actions.d.ts +2 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/ai-promise-db.d.ts +49 -23
- package/dist/ai-promise-db.d.ts.map +1 -1
- package/dist/ai-promise-db.js +91 -63
- package/dist/ai-promise-db.js.map +1 -1
- package/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +38 -30
- package/dist/authorization.js.map +1 -1
- package/dist/cascade-orchestrator.d.ts +404 -0
- package/dist/cascade-orchestrator.d.ts.map +1 -0
- package/dist/cascade-orchestrator.js +828 -0
- package/dist/cascade-orchestrator.js.map +1 -0
- package/dist/cascade-write-strategy.d.ts +584 -0
- package/dist/cascade-write-strategy.d.ts.map +1 -0
- package/dist/cascade-write-strategy.js +590 -0
- package/dist/cascade-write-strategy.js.map +1 -0
- package/dist/ch-adapter.d.ts +358 -0
- package/dist/ch-adapter.d.ts.map +1 -0
- package/dist/ch-adapter.js +929 -0
- package/dist/ch-adapter.js.map +1 -0
- package/dist/client/index.d.ts +42 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +43 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client.d.ts +266 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +81 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +64 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -2
- package/dist/constants.js.map +1 -1
- package/dist/dataloader.d.ts +99 -0
- package/dist/dataloader.d.ts.map +1 -0
- package/dist/dataloader.js +225 -0
- package/dist/dataloader.js.map +1 -0
- package/dist/db-provider-port.d.ts +501 -0
- package/dist/db-provider-port.d.ts.map +1 -0
- package/dist/db-provider-port.js +113 -0
- package/dist/db-provider-port.js.map +1 -0
- package/dist/digital-objects-provider.d.ts +49 -0
- package/dist/digital-objects-provider.d.ts.map +1 -0
- package/dist/digital-objects-provider.js +55 -0
- package/dist/digital-objects-provider.js.map +1 -0
- package/dist/do-sqlite-adapter.d.ts +402 -0
- package/dist/do-sqlite-adapter.d.ts.map +1 -0
- package/dist/do-sqlite-adapter.js +745 -0
- package/dist/do-sqlite-adapter.js.map +1 -0
- package/dist/docs-rels/custom-types.d.ts +134 -0
- package/dist/docs-rels/custom-types.d.ts.map +1 -0
- package/dist/docs-rels/custom-types.js +70 -0
- package/dist/docs-rels/custom-types.js.map +1 -0
- package/dist/docs-rels/index.d.ts +16 -0
- package/dist/docs-rels/index.d.ts.map +1 -0
- package/dist/docs-rels/index.js +16 -0
- package/dist/docs-rels/index.js.map +1 -0
- package/dist/docs-rels/migrations/index.d.ts +30 -0
- package/dist/docs-rels/migrations/index.d.ts.map +1 -0
- package/dist/docs-rels/migrations/index.js +128 -0
- package/dist/docs-rels/migrations/index.js.map +1 -0
- package/dist/docs-rels/schema.d.ts +2961 -0
- package/dist/docs-rels/schema.d.ts.map +1 -0
- package/dist/docs-rels/schema.js +244 -0
- package/dist/docs-rels/schema.js.map +1 -0
- package/dist/durable-clickhouse.d.ts.map +1 -1
- package/dist/durable-clickhouse.js +16 -13
- package/dist/durable-clickhouse.js.map +1 -1
- package/dist/durable-promise.d.ts.map +1 -1
- package/dist/durable-promise.js +34 -15
- package/dist/durable-promise.js.map +1 -1
- package/dist/errors.d.ts +127 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +210 -0
- package/dist/errors.js.map +1 -0
- package/dist/eventbridge.d.ts +117 -0
- package/dist/eventbridge.d.ts.map +1 -0
- package/dist/eventbridge.js +238 -0
- package/dist/eventbridge.js.map +1 -0
- package/dist/events.d.ts +2 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/execution-queue.d.ts.map +1 -1
- package/dist/execution-queue.js +4 -5
- package/dist/execution-queue.js.map +1 -1
- package/dist/index.d.ts +35 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +106 -6
- package/dist/index.js.map +1 -1
- package/dist/linguistic.d.ts +3 -108
- package/dist/linguistic.d.ts.map +1 -1
- package/dist/linguistic.js +3 -372
- package/dist/linguistic.js.map +1 -1
- package/dist/logger.d.ts +132 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +137 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory-provider.d.ts +128 -0
- package/dist/memory-provider.d.ts.map +1 -1
- package/dist/memory-provider.js +592 -257
- package/dist/memory-provider.js.map +1 -1
- package/dist/pg-adapter.d.ts +424 -0
- package/dist/pg-adapter.d.ts.map +1 -0
- package/dist/pg-adapter.js +921 -0
- package/dist/pg-adapter.js.map +1 -0
- package/dist/pipelines-iceberg-emitter.d.ts +327 -0
- package/dist/pipelines-iceberg-emitter.d.ts.map +1 -0
- package/dist/pipelines-iceberg-emitter.js +351 -0
- package/dist/pipelines-iceberg-emitter.js.map +1 -0
- package/dist/provider-capabilities.d.ts +146 -0
- package/dist/provider-capabilities.d.ts.map +1 -0
- package/dist/provider-capabilities.js +214 -0
- package/dist/provider-capabilities.js.map +1 -0
- package/dist/rdb-provider-adapter.d.ts +195 -0
- package/dist/rdb-provider-adapter.d.ts.map +1 -0
- package/dist/rdb-provider-adapter.js +291 -0
- package/dist/rdb-provider-adapter.js.map +1 -0
- package/dist/schema/cascade.d.ts +48 -17
- package/dist/schema/cascade.d.ts.map +1 -1
- package/dist/schema/cascade.js +477 -278
- package/dist/schema/cascade.js.map +1 -1
- package/dist/schema/definition-caches.d.ts +24 -0
- package/dist/schema/definition-caches.d.ts.map +1 -0
- package/dist/schema/definition-caches.js +26 -0
- package/dist/schema/definition-caches.js.map +1 -0
- package/dist/schema/dependency-graph.d.ts +21 -109
- package/dist/schema/dependency-graph.d.ts.map +1 -1
- package/dist/schema/dependency-graph.js +25 -333
- package/dist/schema/dependency-graph.js.map +1 -1
- package/dist/schema/diff.d.ts +103 -0
- package/dist/schema/diff.d.ts.map +1 -0
- package/dist/schema/diff.js +329 -0
- package/dist/schema/diff.js.map +1 -0
- package/dist/schema/entity-operations.d.ts +99 -0
- package/dist/schema/entity-operations.d.ts.map +1 -0
- package/dist/schema/entity-operations.js +818 -0
- package/dist/schema/entity-operations.js.map +1 -0
- package/dist/schema/index.d.ts +28 -34
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +454 -521
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/migration.d.ts +205 -0
- package/dist/schema/migration.d.ts.map +1 -0
- package/dist/schema/migration.js +327 -0
- package/dist/schema/migration.js.map +1 -0
- package/dist/schema/nl-query-generator.d.ts +68 -0
- package/dist/schema/nl-query-generator.d.ts.map +1 -0
- package/dist/schema/nl-query-generator.js +362 -0
- package/dist/schema/nl-query-generator.js.map +1 -0
- package/dist/schema/nl-query.d.ts +65 -0
- package/dist/schema/nl-query.d.ts.map +1 -0
- package/dist/schema/nl-query.js +178 -0
- package/dist/schema/nl-query.js.map +1 -0
- package/dist/schema/parse.d.ts.map +1 -1
- package/dist/schema/parse.js +144 -89
- package/dist/schema/parse.js.map +1 -1
- package/dist/schema/provider.d.ts +37 -0
- package/dist/schema/provider.d.ts.map +1 -1
- package/dist/schema/provider.js +15 -7
- package/dist/schema/provider.js.map +1 -1
- package/dist/schema/resolve.d.ts +46 -5
- package/dist/schema/resolve.d.ts.map +1 -1
- package/dist/schema/resolve.js +237 -95
- package/dist/schema/resolve.js.map +1 -1
- package/dist/schema/search-utils.d.ts +76 -0
- package/dist/schema/search-utils.d.ts.map +1 -0
- package/dist/schema/search-utils.js +86 -0
- package/dist/schema/search-utils.js.map +1 -0
- package/dist/schema/seed.d.ts +53 -0
- package/dist/schema/seed.d.ts.map +1 -0
- package/dist/schema/seed.js +94 -0
- package/dist/schema/seed.js.map +1 -0
- package/dist/schema/semantic.d.ts +10 -0
- package/dist/schema/semantic.d.ts.map +1 -1
- package/dist/schema/semantic.js +192 -86
- package/dist/schema/semantic.js.map +1 -1
- package/dist/schema/sub-apis.d.ts +52 -0
- package/dist/schema/sub-apis.d.ts.map +1 -0
- package/dist/schema/sub-apis.js +216 -0
- package/dist/schema/sub-apis.js.map +1 -0
- package/dist/schema/system-entities.d.ts +42 -0
- package/dist/schema/system-entities.d.ts.map +1 -0
- package/dist/schema/system-entities.js +101 -0
- package/dist/schema/system-entities.js.map +1 -0
- package/dist/schema/types.d.ts +91 -9
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/union-fallback.d.ts.map +1 -1
- package/dist/schema/union-fallback.js +21 -15
- package/dist/schema/union-fallback.js.map +1 -1
- package/dist/schema/value-generators/ai.d.ts +54 -0
- package/dist/schema/value-generators/ai.d.ts.map +1 -0
- package/dist/schema/value-generators/ai.js +136 -0
- package/dist/schema/value-generators/ai.js.map +1 -0
- package/dist/schema/value-generators/index.d.ts +126 -0
- package/dist/schema/value-generators/index.d.ts.map +1 -0
- package/dist/schema/value-generators/index.js +219 -0
- package/dist/schema/value-generators/index.js.map +1 -0
- package/dist/schema/value-generators/placeholder.d.ts +52 -0
- package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
- package/dist/schema/value-generators/placeholder.js +328 -0
- package/dist/schema/value-generators/placeholder.js.map +1 -0
- package/dist/schema/value-generators/types.d.ts +116 -0
- package/dist/schema/value-generators/types.d.ts.map +1 -0
- package/dist/schema/value-generators/types.js +11 -0
- package/dist/schema/value-generators/types.js.map +1 -0
- package/dist/schema/version.d.ts +111 -0
- package/dist/schema/version.d.ts.map +1 -0
- package/dist/schema/version.js +190 -0
- package/dist/schema/version.js.map +1 -0
- package/dist/schema.d.ts +1095 -24
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2852 -40
- package/dist/schema.js.map +1 -1
- package/dist/semantic-vectors.d.ts +39 -0
- package/dist/semantic-vectors.d.ts.map +1 -0
- package/dist/semantic-vectors.js +334 -0
- package/dist/semantic-vectors.js.map +1 -0
- package/dist/semantic.d.ts +29 -1
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +26 -16
- package/dist/semantic.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +305 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tests.d.ts.map +1 -1
- package/dist/tests.js +30 -22
- package/dist/tests.js.map +1 -1
- package/dist/type-guards.d.ts +50 -5
- package/dist/type-guards.d.ts.map +1 -1
- package/dist/type-guards.js +87 -16
- package/dist/type-guards.js.map +1 -1
- package/dist/types.d.ts +33 -245
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +62 -72
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +2 -5
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +65 -93
- package/dist/validation.js.map +1 -1
- package/dist/worker/db-provider.d.ts +168 -0
- package/dist/worker/db-provider.d.ts.map +1 -0
- package/dist/worker/db-provider.js +277 -0
- package/dist/worker/db-provider.js.map +1 -0
- package/dist/worker/index.d.ts +35 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +37 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker.d.ts +779 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +2786 -0
- package/dist/worker.js.map +1 -0
- package/package.json +46 -16
- package/src/docs-rels/migrations/0001-init.sql +125 -0
- package/LICENSE +0 -21
package/dist/validation.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
|
+
import { ValidationError } from './errors.js';
|
|
13
14
|
// =============================================================================
|
|
14
15
|
// Validation Constants
|
|
15
16
|
// =============================================================================
|
|
@@ -41,27 +42,11 @@ const ALLOWED_DIGITS = new Set('0123456789');
|
|
|
41
42
|
/** Allowed letters (a-z, A-Z) */
|
|
42
43
|
const ALLOWED_LETTERS = new Set([...ALLOWED_UPPERCASE, ...ALLOWED_LOWERCASE]);
|
|
43
44
|
/** Allowed identifier characters (letters, digits, underscore) */
|
|
44
|
-
const ALLOWED_IDENTIFIER_CHARS = new Set([
|
|
45
|
-
...ALLOWED_LETTERS,
|
|
46
|
-
...ALLOWED_DIGITS,
|
|
47
|
-
'_',
|
|
48
|
-
]);
|
|
45
|
+
const ALLOWED_IDENTIFIER_CHARS = new Set([...ALLOWED_LETTERS, ...ALLOWED_DIGITS, '_']);
|
|
49
46
|
/** Allowed ID characters (letters, digits, underscore, hyphen, dot, forward slash for path-like IDs) */
|
|
50
|
-
const ALLOWED_ID_CHARS = new Set([
|
|
51
|
-
...ALLOWED_LETTERS,
|
|
52
|
-
...ALLOWED_DIGITS,
|
|
53
|
-
'_',
|
|
54
|
-
'-',
|
|
55
|
-
'.',
|
|
56
|
-
'/',
|
|
57
|
-
]);
|
|
47
|
+
const ALLOWED_ID_CHARS = new Set([...ALLOWED_LETTERS, ...ALLOWED_DIGITS, '_', '-', '.', '/']);
|
|
58
48
|
/** Allowed action type characters (letters, digits, underscore, hyphen) */
|
|
59
|
-
const ALLOWED_ACTION_CHARS = new Set([
|
|
60
|
-
...ALLOWED_LETTERS,
|
|
61
|
-
...ALLOWED_DIGITS,
|
|
62
|
-
'_',
|
|
63
|
-
'-',
|
|
64
|
-
]);
|
|
49
|
+
const ALLOWED_ACTION_CHARS = new Set([...ALLOWED_LETTERS, ...ALLOWED_DIGITS, '_', '-']);
|
|
65
50
|
/**
|
|
66
51
|
* Check if a character is in the allowlist
|
|
67
52
|
* Uses code point to ensure we only accept ASCII characters
|
|
@@ -227,24 +212,11 @@ const CONTROL_CHARACTERS = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/;
|
|
|
227
212
|
/**
|
|
228
213
|
* Prototype pollution property names to reject
|
|
229
214
|
*/
|
|
230
|
-
const DANGEROUS_PROPERTIES = new Set([
|
|
231
|
-
'__proto__',
|
|
232
|
-
'constructor',
|
|
233
|
-
'prototype',
|
|
234
|
-
]);
|
|
215
|
+
const DANGEROUS_PROPERTIES = new Set(['__proto__', 'constructor', 'prototype']);
|
|
235
216
|
// =============================================================================
|
|
236
|
-
//
|
|
217
|
+
// Re-export ValidationError from errors.ts for backwards compatibility
|
|
237
218
|
// =============================================================================
|
|
238
|
-
export
|
|
239
|
-
field;
|
|
240
|
-
value;
|
|
241
|
-
constructor(message, field, value) {
|
|
242
|
-
super(message);
|
|
243
|
-
this.field = field;
|
|
244
|
-
this.value = value;
|
|
245
|
-
this.name = 'ValidationError';
|
|
246
|
-
}
|
|
247
|
-
}
|
|
219
|
+
export { ValidationError };
|
|
248
220
|
// =============================================================================
|
|
249
221
|
// Validation Functions
|
|
250
222
|
// =============================================================================
|
|
@@ -288,27 +260,27 @@ function containsControlCharacters(value) {
|
|
|
288
260
|
export function validateTypeName(type) {
|
|
289
261
|
// Check string type
|
|
290
262
|
if (typeof type !== 'string') {
|
|
291
|
-
throw new ValidationError(`Invalid type: must be a string, got ${type === null ? 'null' : typeof type}`, 'type', type);
|
|
263
|
+
throw new ValidationError(`Invalid type: must be a string, got ${type === null ? 'null' : typeof type}`, 'Input', 'type', type);
|
|
292
264
|
}
|
|
293
265
|
// Check empty
|
|
294
266
|
if (type.length === 0) {
|
|
295
|
-
throw new ValidationError('Invalid type: must not be empty', 'type', type);
|
|
267
|
+
throw new ValidationError('Invalid type: must not be empty', 'Input', 'type', type);
|
|
296
268
|
}
|
|
297
269
|
// Check length
|
|
298
270
|
if (type.length > MAX_TYPE_LENGTH) {
|
|
299
|
-
throw new ValidationError(`Invalid type: exceeds maximum length of ${MAX_TYPE_LENGTH}`, 'type', type);
|
|
271
|
+
throw new ValidationError(`Invalid type: exceeds maximum length of ${MAX_TYPE_LENGTH}`, 'Input', 'type', type);
|
|
300
272
|
}
|
|
301
273
|
// Check control characters
|
|
302
274
|
if (containsControlCharacters(type)) {
|
|
303
|
-
throw new ValidationError('Invalid type: contains special characters that are not allowed', 'type', type);
|
|
275
|
+
throw new ValidationError('Invalid type: contains special characters that are not allowed', 'Input', 'type', type);
|
|
304
276
|
}
|
|
305
277
|
// Check SQL injection
|
|
306
278
|
if (containsSqlInjection(type)) {
|
|
307
|
-
throw new ValidationError('Invalid type: contains injection patterns that are not allowed', 'type', type);
|
|
279
|
+
throw new ValidationError('Invalid type: contains injection patterns that are not allowed', 'Input', 'type', type);
|
|
308
280
|
}
|
|
309
281
|
// Check pattern (alphanumeric + underscore) using allowlist
|
|
310
282
|
if (!isValidTypeNameFormat(type)) {
|
|
311
|
-
throw new ValidationError('Invalid type: must be alphanumeric with underscores, starting with a letter', 'type', type);
|
|
283
|
+
throw new ValidationError('Invalid type: must be alphanumeric with underscores, starting with a letter', 'Input', 'type', type);
|
|
312
284
|
}
|
|
313
285
|
}
|
|
314
286
|
/**
|
|
@@ -328,31 +300,31 @@ export function validateTypeName(type) {
|
|
|
328
300
|
export function validateEntityId(id) {
|
|
329
301
|
// Check string type
|
|
330
302
|
if (typeof id !== 'string') {
|
|
331
|
-
throw new ValidationError(`Invalid id: must be a string, got ${id === null ? 'null' : typeof id}`, 'id', id);
|
|
303
|
+
throw new ValidationError(`Invalid id: must be a string, got ${id === null ? 'null' : typeof id}`, 'Input', 'id', id);
|
|
332
304
|
}
|
|
333
305
|
// Check empty
|
|
334
306
|
if (id.length === 0) {
|
|
335
|
-
throw new ValidationError('Invalid id: must not be empty', 'id', id);
|
|
307
|
+
throw new ValidationError('Invalid id: must not be empty', 'Input', 'id', id);
|
|
336
308
|
}
|
|
337
309
|
// Check length
|
|
338
310
|
if (id.length > MAX_ID_LENGTH) {
|
|
339
|
-
throw new ValidationError(`Invalid id: exceeds maximum length of ${MAX_ID_LENGTH}`, 'id', id);
|
|
311
|
+
throw new ValidationError(`Invalid id: exceeds maximum length of ${MAX_ID_LENGTH}`, 'Input', 'id', id);
|
|
340
312
|
}
|
|
341
313
|
// Check control characters
|
|
342
314
|
if (containsControlCharacters(id)) {
|
|
343
|
-
throw new ValidationError('Invalid id: contains special characters that are not allowed', 'id', id);
|
|
315
|
+
throw new ValidationError('Invalid id: contains special characters that are not allowed', 'Input', 'id', id);
|
|
344
316
|
}
|
|
345
317
|
// Check SQL injection
|
|
346
318
|
if (containsSqlInjection(id)) {
|
|
347
|
-
throw new ValidationError('Invalid id: contains injection patterns that are not allowed', 'id', id);
|
|
319
|
+
throw new ValidationError('Invalid id: contains injection patterns that are not allowed', 'Input', 'id', id);
|
|
348
320
|
}
|
|
349
321
|
// Check path traversal
|
|
350
322
|
if (containsPathTraversal(id)) {
|
|
351
|
-
throw new ValidationError('Invalid id: contains path traversal patterns that are not allowed', 'id', id);
|
|
323
|
+
throw new ValidationError('Invalid id: contains path traversal patterns that are not allowed', 'Input', 'id', id);
|
|
352
324
|
}
|
|
353
325
|
// Check pattern (alphanumeric + underscore + hyphen) using allowlist
|
|
354
326
|
if (!isValidEntityIdFormat(id)) {
|
|
355
|
-
throw new ValidationError('Invalid id: must contain only alphanumeric characters, underscores, and hyphens', 'id', id);
|
|
327
|
+
throw new ValidationError('Invalid id: must contain only alphanumeric characters, underscores, and hyphens', 'Input', 'id', id);
|
|
356
328
|
}
|
|
357
329
|
}
|
|
358
330
|
/**
|
|
@@ -369,10 +341,10 @@ export function validateEntityId(id) {
|
|
|
369
341
|
*/
|
|
370
342
|
export function validateSearchQuery(query) {
|
|
371
343
|
if (typeof query !== 'string') {
|
|
372
|
-
throw new ValidationError(`Invalid query: must be a string, got ${query === null ? 'null' : typeof query}`, 'query', query);
|
|
344
|
+
throw new ValidationError(`Invalid query: must be a string, got ${query === null ? 'null' : typeof query}`, 'Input', 'query', query);
|
|
373
345
|
}
|
|
374
346
|
if (query.length > MAX_QUERY_LENGTH) {
|
|
375
|
-
throw new ValidationError(`Invalid query: exceeds maximum length of ${MAX_QUERY_LENGTH}`, 'query', query);
|
|
347
|
+
throw new ValidationError(`Invalid query: exceeds maximum length of ${MAX_QUERY_LENGTH}`, 'Input', 'query', query);
|
|
376
348
|
}
|
|
377
349
|
}
|
|
378
350
|
/**
|
|
@@ -434,18 +406,18 @@ function containsPrototypePollution(obj) {
|
|
|
434
406
|
*/
|
|
435
407
|
export function validateEntityData(data) {
|
|
436
408
|
if (data === null || typeof data !== 'object' || Array.isArray(data)) {
|
|
437
|
-
throw new ValidationError('Invalid data: must be an object', 'data', data);
|
|
409
|
+
throw new ValidationError('Invalid data: must be an object', 'Input', 'data', data);
|
|
438
410
|
}
|
|
439
411
|
// Check depth
|
|
440
412
|
const depth = calculateObjectDepth(data);
|
|
441
413
|
if (depth > MAX_OBJECT_DEPTH) {
|
|
442
|
-
throw new ValidationError(`Invalid data: nested too deep, maximum depth is ${MAX_OBJECT_DEPTH}`, 'data');
|
|
414
|
+
throw new ValidationError(`Invalid data: nested too deep, maximum depth is ${MAX_OBJECT_DEPTH}`, 'Input', 'data');
|
|
443
415
|
}
|
|
444
416
|
// Check for prototype pollution - but only reject 'constructor' at top level
|
|
445
417
|
// __proto__ is harmless in JSON.parse'd objects
|
|
446
418
|
const record = data;
|
|
447
419
|
if ('constructor' in record && typeof record['constructor'] === 'object') {
|
|
448
|
-
throw new ValidationError('Invalid data: constructor property not allowed', 'data');
|
|
420
|
+
throw new ValidationError('Invalid data: constructor property not allowed', 'Input', 'data');
|
|
449
421
|
}
|
|
450
422
|
}
|
|
451
423
|
/**
|
|
@@ -462,20 +434,20 @@ export function validateEntityData(data) {
|
|
|
462
434
|
*/
|
|
463
435
|
export function validateRelationName(relation) {
|
|
464
436
|
if (typeof relation !== 'string') {
|
|
465
|
-
throw new ValidationError(`Invalid relation: must be a string, got ${relation === null ? 'null' : typeof relation}`, 'relation', relation);
|
|
437
|
+
throw new ValidationError(`Invalid relation: must be a string, got ${relation === null ? 'null' : typeof relation}`, 'Input', 'relation', relation);
|
|
466
438
|
}
|
|
467
439
|
if (relation.length === 0) {
|
|
468
|
-
throw new ValidationError('Invalid relation: must not be empty', 'relation', relation);
|
|
440
|
+
throw new ValidationError('Invalid relation: must not be empty', 'Input', 'relation', relation);
|
|
469
441
|
}
|
|
470
442
|
if (relation.length > MAX_RELATION_LENGTH) {
|
|
471
|
-
throw new ValidationError(`Invalid relation: exceeds maximum length of ${MAX_RELATION_LENGTH}`, 'relation', relation);
|
|
443
|
+
throw new ValidationError(`Invalid relation: exceeds maximum length of ${MAX_RELATION_LENGTH}`, 'Input', 'relation', relation);
|
|
472
444
|
}
|
|
473
445
|
if (containsSqlInjection(relation)) {
|
|
474
|
-
throw new ValidationError('Invalid relation: contains injection patterns that are not allowed', 'relation', relation);
|
|
446
|
+
throw new ValidationError('Invalid relation: contains injection patterns that are not allowed', 'Input', 'relation', relation);
|
|
475
447
|
}
|
|
476
448
|
// Check pattern using allowlist
|
|
477
449
|
if (!isValidRelationNameFormat(relation)) {
|
|
478
|
-
throw new ValidationError('Invalid relation: must be alphanumeric with underscores, starting with a letter', 'relation', relation);
|
|
450
|
+
throw new ValidationError('Invalid relation: must be alphanumeric with underscores, starting with a letter', 'Input', 'relation', relation);
|
|
479
451
|
}
|
|
480
452
|
}
|
|
481
453
|
/**
|
|
@@ -490,13 +462,13 @@ export function validateRelationName(relation) {
|
|
|
490
462
|
*/
|
|
491
463
|
export function validateEventPattern(pattern) {
|
|
492
464
|
if (typeof pattern !== 'string') {
|
|
493
|
-
throw new ValidationError(`Invalid pattern: must be a string, got ${pattern === null ? 'null' : typeof pattern}`, 'pattern', pattern);
|
|
465
|
+
throw new ValidationError(`Invalid pattern: must be a string, got ${pattern === null ? 'null' : typeof pattern}`, 'Input', 'pattern', pattern);
|
|
494
466
|
}
|
|
495
467
|
if (containsSqlInjection(pattern)) {
|
|
496
|
-
throw new ValidationError('Invalid pattern: contains injection patterns that are not allowed', 'pattern', pattern);
|
|
468
|
+
throw new ValidationError('Invalid pattern: contains injection patterns that are not allowed', 'Input', 'pattern', pattern);
|
|
497
469
|
}
|
|
498
470
|
if (!EVENT_PATTERN_REGEX.test(pattern)) {
|
|
499
|
-
throw new ValidationError('Invalid pattern: must be a valid event pattern (Type.action, *.action, Type.*, or *)', 'pattern', pattern);
|
|
471
|
+
throw new ValidationError('Invalid pattern: must be a valid event pattern (Type.action, *.action, Type.*, or *)', 'Input', 'pattern', pattern);
|
|
500
472
|
}
|
|
501
473
|
}
|
|
502
474
|
/**
|
|
@@ -511,14 +483,14 @@ export function validateEventPattern(pattern) {
|
|
|
511
483
|
*/
|
|
512
484
|
export function validateActionType(actionType) {
|
|
513
485
|
if (typeof actionType !== 'string') {
|
|
514
|
-
throw new ValidationError(`Invalid type: must be a string, got ${actionType === null ? 'null' : typeof actionType}`, 'type', actionType);
|
|
486
|
+
throw new ValidationError(`Invalid type: must be a string, got ${actionType === null ? 'null' : typeof actionType}`, 'Input', 'type', actionType);
|
|
515
487
|
}
|
|
516
488
|
if (containsSqlInjection(actionType)) {
|
|
517
|
-
throw new ValidationError('Invalid type: contains injection patterns that are not allowed', 'type', actionType);
|
|
489
|
+
throw new ValidationError('Invalid type: contains injection patterns that are not allowed', 'Input', 'type', actionType);
|
|
518
490
|
}
|
|
519
491
|
// Check pattern using allowlist
|
|
520
492
|
if (!isValidActionTypeFormat(actionType)) {
|
|
521
|
-
throw new ValidationError('Invalid type: must be alphanumeric with underscores, starting with a letter', 'type', actionType);
|
|
493
|
+
throw new ValidationError('Invalid type: must be alphanumeric with underscores, starting with a letter', 'Input', 'type', actionType);
|
|
522
494
|
}
|
|
523
495
|
}
|
|
524
496
|
/**
|
|
@@ -533,13 +505,13 @@ export function validateActionType(actionType) {
|
|
|
533
505
|
*/
|
|
534
506
|
export function validateArtifactUrl(url) {
|
|
535
507
|
if (typeof url !== 'string') {
|
|
536
|
-
throw new ValidationError(`Invalid url: must be a string, got ${url === null ? 'null' : typeof url}`, 'url', url);
|
|
508
|
+
throw new ValidationError(`Invalid url: must be a string, got ${url === null ? 'null' : typeof url}`, 'Input', 'url', url);
|
|
537
509
|
}
|
|
538
510
|
if (containsPathTraversal(url)) {
|
|
539
|
-
throw new ValidationError('Invalid url: path traversal not allowed', 'url', url);
|
|
511
|
+
throw new ValidationError('Invalid url: path traversal not allowed', 'Input', 'url', url);
|
|
540
512
|
}
|
|
541
513
|
if (containsProtocolInjection(url)) {
|
|
542
|
-
throw new ValidationError('Invalid url: protocol not allowed', 'url', url);
|
|
514
|
+
throw new ValidationError('Invalid url: protocol not allowed', 'Input', 'url', url);
|
|
543
515
|
}
|
|
544
516
|
}
|
|
545
517
|
/**
|
|
@@ -555,21 +527,21 @@ export function validateArtifactUrl(url) {
|
|
|
555
527
|
*/
|
|
556
528
|
export function validateFieldName(field) {
|
|
557
529
|
if (typeof field !== 'string') {
|
|
558
|
-
throw new ValidationError(`Invalid field: must be a string, got ${field === null ? 'null' : typeof field}`, 'field', field);
|
|
530
|
+
throw new ValidationError(`Invalid field: must be a string, got ${field === null ? 'null' : typeof field}`, 'Input', 'field', field);
|
|
559
531
|
}
|
|
560
532
|
// $all is a special valid field name
|
|
561
533
|
if (field === '$all') {
|
|
562
534
|
return;
|
|
563
535
|
}
|
|
564
536
|
if (containsSqlInjection(field)) {
|
|
565
|
-
throw new ValidationError('Invalid field: contains injection patterns that are not allowed', 'field', field);
|
|
537
|
+
throw new ValidationError('Invalid field: contains injection patterns that are not allowed', 'Input', 'field', field);
|
|
566
538
|
}
|
|
567
539
|
if (field.length > MAX_FIELD_LENGTH) {
|
|
568
|
-
throw new ValidationError(`Invalid field: exceeds maximum length of ${MAX_FIELD_LENGTH}`, 'field', field);
|
|
540
|
+
throw new ValidationError(`Invalid field: exceeds maximum length of ${MAX_FIELD_LENGTH}`, 'Input', 'field', field);
|
|
569
541
|
}
|
|
570
542
|
// Check pattern using allowlist
|
|
571
543
|
if (!isValidFieldNameFormat(field)) {
|
|
572
|
-
throw new ValidationError('Invalid field: must be alphanumeric with underscores', 'field', field);
|
|
544
|
+
throw new ValidationError('Invalid field: must be alphanumeric with underscores', 'Input', 'field', field);
|
|
573
545
|
}
|
|
574
546
|
}
|
|
575
547
|
/**
|
|
@@ -593,38 +565,38 @@ export function validateListOptions(options) {
|
|
|
593
565
|
return;
|
|
594
566
|
}
|
|
595
567
|
if (typeof options !== 'object') {
|
|
596
|
-
throw new ValidationError('Invalid options: must be an object', 'options', options);
|
|
568
|
+
throw new ValidationError('Invalid options: must be an object', 'Input', 'options', options);
|
|
597
569
|
}
|
|
598
570
|
const opts = options;
|
|
599
571
|
// Validate limit
|
|
600
|
-
if (opts
|
|
601
|
-
if (typeof opts
|
|
602
|
-
throw new ValidationError(`Invalid limit: must be a number, got ${typeof opts
|
|
572
|
+
if (opts['limit'] !== undefined) {
|
|
573
|
+
if (typeof opts['limit'] !== 'number') {
|
|
574
|
+
throw new ValidationError(`Invalid limit: must be a number, got ${typeof opts['limit']}`, 'Input', 'limit', opts['limit']);
|
|
603
575
|
}
|
|
604
|
-
if (opts
|
|
605
|
-
throw new ValidationError('Invalid limit: must be positive or zero', 'limit', opts
|
|
576
|
+
if (opts['limit'] < 0) {
|
|
577
|
+
throw new ValidationError('Invalid limit: must be positive or zero', 'Input', 'limit', opts['limit']);
|
|
606
578
|
}
|
|
607
579
|
}
|
|
608
580
|
// Validate offset
|
|
609
|
-
if (opts
|
|
610
|
-
if (typeof opts
|
|
611
|
-
throw new ValidationError(`Invalid offset: must be a number, got ${typeof opts
|
|
581
|
+
if (opts['offset'] !== undefined) {
|
|
582
|
+
if (typeof opts['offset'] !== 'number') {
|
|
583
|
+
throw new ValidationError(`Invalid offset: must be a number, got ${typeof opts['offset']}`, 'Input', 'offset', opts['offset']);
|
|
612
584
|
}
|
|
613
|
-
if (opts
|
|
614
|
-
throw new ValidationError('Invalid offset: must be positive or zero', 'offset', opts
|
|
585
|
+
if (opts['offset'] < 0) {
|
|
586
|
+
throw new ValidationError('Invalid offset: must be positive or zero', 'Input', 'offset', opts['offset']);
|
|
615
587
|
}
|
|
616
588
|
}
|
|
617
589
|
// Validate orderBy
|
|
618
|
-
if (opts
|
|
619
|
-
if (typeof opts
|
|
620
|
-
throw new ValidationError(`Invalid orderBy: must be a string, got ${typeof opts
|
|
590
|
+
if (opts['orderBy'] !== undefined) {
|
|
591
|
+
if (typeof opts['orderBy'] !== 'string') {
|
|
592
|
+
throw new ValidationError(`Invalid orderBy: must be a string, got ${typeof opts['orderBy']}`, 'Input', 'orderBy', opts['orderBy']);
|
|
621
593
|
}
|
|
622
|
-
if (containsSqlInjection(opts
|
|
623
|
-
throw new ValidationError('Invalid orderBy: contains injection patterns that are not allowed', 'orderBy', opts
|
|
594
|
+
if (containsSqlInjection(opts['orderBy'])) {
|
|
595
|
+
throw new ValidationError('Invalid orderBy: contains injection patterns that are not allowed', 'Input', 'orderBy', opts['orderBy']);
|
|
624
596
|
}
|
|
625
597
|
// Check pattern using allowlist
|
|
626
|
-
if (!isValidFieldNameFormat(opts
|
|
627
|
-
throw new ValidationError('Invalid orderBy field: must be alphanumeric with underscores', 'orderBy', opts
|
|
598
|
+
if (!isValidFieldNameFormat(opts['orderBy'])) {
|
|
599
|
+
throw new ValidationError('Invalid orderBy field: must be alphanumeric with underscores', 'Input', 'orderBy', opts['orderBy']);
|
|
628
600
|
}
|
|
629
601
|
}
|
|
630
602
|
}
|
|
@@ -641,11 +613,11 @@ export function validateSearchOptions(options) {
|
|
|
641
613
|
validateListOptions(options);
|
|
642
614
|
const opts = options;
|
|
643
615
|
// Validate fields array
|
|
644
|
-
if (opts
|
|
645
|
-
if (!Array.isArray(opts
|
|
646
|
-
throw new ValidationError('Invalid fields: must be an array', 'fields', opts
|
|
616
|
+
if (opts['fields'] !== undefined) {
|
|
617
|
+
if (!Array.isArray(opts['fields'])) {
|
|
618
|
+
throw new ValidationError('Invalid fields: must be an array', 'Input', 'fields', opts['fields']);
|
|
647
619
|
}
|
|
648
|
-
for (const field of opts
|
|
620
|
+
for (const field of opts['fields']) {
|
|
649
621
|
// Skip dangerous field names silently - they will be filtered out by the search method
|
|
650
622
|
// This allows the search to return empty results rather than throwing
|
|
651
623
|
if (typeof field === 'string' && DANGEROUS_PROPERTIES.has(field)) {
|
package/dist/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DBProvider Adapter for Worker Services
|
|
3
|
+
*
|
|
4
|
+
* Bridges ai-database DBProvider/DBProviderExtended interface with the
|
|
5
|
+
* DatabaseServiceCore WorkerEntrypoint RPC methods.
|
|
6
|
+
*
|
|
7
|
+
* This allows using a remote ai-database worker service as a local DBProvider,
|
|
8
|
+
* enabling seamless integration with ai-workflows and other packages.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // In a Cloudflare Worker with service binding
|
|
13
|
+
* import { createWorkerProvider } from 'ai-database/worker'
|
|
14
|
+
*
|
|
15
|
+
* export default {
|
|
16
|
+
* async fetch(request: Request, env: Env) {
|
|
17
|
+
* const provider = createWorkerProvider(env.AI_DATABASE.connect('my-ns'))
|
|
18
|
+
* const posts = await provider.list('Post')
|
|
19
|
+
* return Response.json(posts)
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Use with DB() factory for type-safe schema access
|
|
27
|
+
* import { DB } from 'ai-database'
|
|
28
|
+
* import { createWorkerProvider } from 'ai-database/worker'
|
|
29
|
+
*
|
|
30
|
+
* const provider = createWorkerProvider(env.AI_DATABASE.connect('my-ns'))
|
|
31
|
+
* const { Post } = DB(schema, { provider })
|
|
32
|
+
*
|
|
33
|
+
* const posts = await Post.list()
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @packageDocumentation
|
|
37
|
+
*/
|
|
38
|
+
import type { DBProvider, DBProviderExtended, SemanticSearchResult, HybridSearchResult } from '../schema/provider.js';
|
|
39
|
+
import type { ListOptions, SearchOptions, SemanticSearchOptions, HybridSearchOptions, EmbeddingsConfig } from '../schema/types.js';
|
|
40
|
+
/**
|
|
41
|
+
* Interface for the DatabaseServiceCore methods exposed via RPC.
|
|
42
|
+
*
|
|
43
|
+
* This matches the methods available on DatabaseServiceCore from ../worker.ts.
|
|
44
|
+
* When using Cloudflare Workers service bindings, the worker.connect() method
|
|
45
|
+
* returns an object with these RPC methods.
|
|
46
|
+
*/
|
|
47
|
+
export interface DatabaseWorkerService {
|
|
48
|
+
setEmbeddingsConfig(config: EmbeddingsConfig): void;
|
|
49
|
+
get(type: string, id: string): Promise<Record<string, unknown> | null>;
|
|
50
|
+
list(type: string, options?: ListOptions): Promise<Record<string, unknown>[]>;
|
|
51
|
+
create(type: string, data: Record<string, unknown>, id?: string): Promise<Record<string, unknown>>;
|
|
52
|
+
update(type: string, id: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
53
|
+
delete(type: string, id: string): Promise<boolean>;
|
|
54
|
+
search(type: string, query: string, options?: SearchOptions): Promise<Record<string, unknown>[]>;
|
|
55
|
+
semanticSearch(type: string, query: string, options?: SemanticSearchOptions): Promise<SemanticSearchResult[]>;
|
|
56
|
+
hybridSearch(type: string, query: string, options?: HybridSearchOptions): Promise<HybridSearchResult[]>;
|
|
57
|
+
related(type: string, id: string, relation: string): Promise<Record<string, unknown>[]>;
|
|
58
|
+
relate(fromType: string, fromId: string, relation: string, toType: string, toId: string, metadata?: {
|
|
59
|
+
matchMode?: 'exact' | 'fuzzy';
|
|
60
|
+
similarity?: number;
|
|
61
|
+
matchedType?: string;
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
unrelate(fromType: string, fromId: string, relation: string, toType: string, toId: string): Promise<void>;
|
|
64
|
+
on(pattern: string, handler: (event: unknown) => void): string;
|
|
65
|
+
unsubscribe(handlerId: string): void;
|
|
66
|
+
emit(eventOrOptions: string | {
|
|
67
|
+
event: string;
|
|
68
|
+
actor: string;
|
|
69
|
+
object?: string;
|
|
70
|
+
data?: unknown;
|
|
71
|
+
}, data?: unknown): Promise<unknown>;
|
|
72
|
+
listEvents(options?: {
|
|
73
|
+
event?: string;
|
|
74
|
+
actor?: string;
|
|
75
|
+
object?: string;
|
|
76
|
+
since?: Date;
|
|
77
|
+
until?: Date;
|
|
78
|
+
limit?: number;
|
|
79
|
+
}): Promise<unknown[]>;
|
|
80
|
+
createAction(options: {
|
|
81
|
+
action: string;
|
|
82
|
+
actor: string;
|
|
83
|
+
object?: string;
|
|
84
|
+
data?: unknown;
|
|
85
|
+
total?: number;
|
|
86
|
+
}): Promise<unknown>;
|
|
87
|
+
getAction(id: string): Promise<unknown>;
|
|
88
|
+
updateAction(id: string, updates: {
|
|
89
|
+
status?: string;
|
|
90
|
+
progress?: number;
|
|
91
|
+
result?: unknown;
|
|
92
|
+
error?: string;
|
|
93
|
+
}): Promise<unknown>;
|
|
94
|
+
listActions(options?: {
|
|
95
|
+
status?: string;
|
|
96
|
+
action?: string;
|
|
97
|
+
actor?: string;
|
|
98
|
+
object?: string;
|
|
99
|
+
since?: Date;
|
|
100
|
+
until?: Date;
|
|
101
|
+
limit?: number;
|
|
102
|
+
}): Promise<unknown[]>;
|
|
103
|
+
getArtifact(url: string, type: string): Promise<unknown>;
|
|
104
|
+
setArtifact(url: string, type: string, data: {
|
|
105
|
+
content: unknown;
|
|
106
|
+
sourceHash: string;
|
|
107
|
+
metadata?: Record<string, unknown>;
|
|
108
|
+
}): Promise<void>;
|
|
109
|
+
deleteArtifact(url: string, type?: string): Promise<void>;
|
|
110
|
+
listArtifacts(url: string): Promise<unknown[]>;
|
|
111
|
+
clear(): void;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Options for creating a worker provider
|
|
115
|
+
*/
|
|
116
|
+
export interface WorkerProviderOptions {
|
|
117
|
+
/**
|
|
118
|
+
* Namespace for scoping database operations.
|
|
119
|
+
* When provided, operations are scoped to this namespace.
|
|
120
|
+
*/
|
|
121
|
+
namespace?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a DBProviderExtended from a DatabaseServiceCore worker binding.
|
|
125
|
+
*
|
|
126
|
+
* This adapter bridges the gap between the Cloudflare Worker RPC interface
|
|
127
|
+
* and the DBProvider interface used by ai-database's DB() factory.
|
|
128
|
+
*
|
|
129
|
+
* @param worker - The worker service binding (from env.AI_DATABASE.connect())
|
|
130
|
+
* @param options - Optional configuration
|
|
131
|
+
* @returns A DBProviderExtended that delegates to the worker service
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* // In your Cloudflare Worker
|
|
136
|
+
* export default {
|
|
137
|
+
* async fetch(request: Request, env: Env) {
|
|
138
|
+
* // Connect to the ai-database worker service
|
|
139
|
+
* const service = env.AI_DATABASE.connect('my-namespace')
|
|
140
|
+
*
|
|
141
|
+
* // Create a provider from the service
|
|
142
|
+
* const provider = createWorkerProvider(service)
|
|
143
|
+
*
|
|
144
|
+
* // Use the provider directly
|
|
145
|
+
* const users = await provider.list('User', { limit: 10 })
|
|
146
|
+
*
|
|
147
|
+
* // Or use with DB() for type-safe access
|
|
148
|
+
* const { User, Post } = DB(schema, { provider })
|
|
149
|
+
* const posts = await Post.list({ where: { published: true } })
|
|
150
|
+
*
|
|
151
|
+
* return Response.json({ users, posts })
|
|
152
|
+
* }
|
|
153
|
+
* }
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare function createWorkerProvider(worker: DatabaseWorkerService, options?: WorkerProviderOptions): DBProviderExtended;
|
|
157
|
+
/**
|
|
158
|
+
* Create a basic DBProvider (without extended features) from a worker service.
|
|
159
|
+
*
|
|
160
|
+
* Use this when you only need the core CRUD operations and don't need
|
|
161
|
+
* semantic search, events, actions, or artifacts.
|
|
162
|
+
*
|
|
163
|
+
* @param worker - The worker service binding
|
|
164
|
+
* @param options - Optional configuration
|
|
165
|
+
* @returns A basic DBProvider
|
|
166
|
+
*/
|
|
167
|
+
export declare function createBasicWorkerProvider(worker: DatabaseWorkerService, options?: WorkerProviderOptions): DBProvider;
|
|
168
|
+
//# sourceMappingURL=db-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-provider.d.ts","sourceRoot":"","sources":["../../src/worker/db-provider.ts"],"names":[],"mappings":"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"}
|