diff --git a/node_modules/@triplit/db/.bun-tag-16a302de81445385 b/.bun-tag-16a302de81445385 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/node_modules/@triplit/db/.bun-tag-38646fa5cb007988 b/.bun-tag-38646fa5cb007988 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/node_modules/@triplit/db/.bun-tag-c381351c2a0f3c94 b/.bun-tag-c381351c2a0f3c94 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dist/db.js b/dist/db.js index 09fcba1b0df49971de59b5d9f11171e5ea88aee7..0ce27b58838db11fd51fcf873a182d528d5823fb 100644 --- a/dist/db.js +++ b/dist/db.js @@ -17,7 +17,6 @@ import { Type } from './schema/data-types/index.js'; import { getCollectionPermissions } from './permissions.js'; import { QueryBuilder } from './query/query-builder.js'; import { validateSchema } from './schema/validation.js'; -import { tryPreloadingOptionalDeps } from './utils/optional-dep.js'; export class DB { entityStore; clock; @@ -44,7 +43,7 @@ export class DB { }); this.ivm = options.ivm ?? - new IVM( + new IVM( // @ts-expect-error - TODO: handle more generalized internal typings this); if (options.schema) { @@ -73,9 +72,9 @@ export class DB { getSchema() { return this.schema; } - subscribe(query, onResults, onError, - // TODO: will we need this? - options = {}) { + subscribe(query, onResults, onError, + // TODO: will we need this? + options = {}) { const preparedQuery = prepareQuery(query, this.schema?.collections, this.systemVars, this.session, { applyPermission: options.skipRules ? undefined : 'read', }); @@ -136,11 +135,11 @@ export class DB { } const timestamp = await this.entityStore.metadataStore.getTimestampForEntity(this.kv, collection, entityId); if ( - // TODO: determine if timestamp can ever be undefined - // I think the only case could be if the entity was optimistically inserted - // on the client but never synced to the server - // assuming that we don't delete metadata when we delete entities - timestamp && + // TODO: determine if timestamp can ever be undefined + // I think the only case could be if the entity was optimistically inserted + // on the client but never synced to the server + // assuming that we don't delete metadata when we delete entities + timestamp && HybridLogicalClock.compare(timestamp, options.queryState.timestamp) < 0) { if (!entitiesThatHaveNotChanged[collection]) { entitiesThatHaveNotChanged[collection] = new Set(); @@ -192,9 +191,9 @@ export class DB { onResults(relevantChanges, options.queryKey); isInitialResponse = false; }; - return this.ivm.subscribe(preparedQuery, - // @ts-expect-error - Ignoring because method is deprecated - callback, options.errorCallback); + return this.ivm.subscribe(preparedQuery, + // @ts-expect-error - Ignoring because method is deprecated + callback, options.errorCallback); } async fetch(query, options) { const preparedQuery = prepareQuery(query, this.schema?.collections, this.systemVars, this.session, { @@ -307,9 +306,7 @@ export class DB { // TODO call the listeners in the entity store // Trigger subscription updates await this.ivm.bufferChanges(changes); - for (const listener of this.onCommitListeners) { - listener(changes); - } + await Promise.all([...this.onCommitListeners].map((listener) => listener(changes))); return output; } async applyChanges(changes, options) { @@ -609,7 +606,6 @@ export async function createDB(options) { if (options.kv) { savedSchema = await DB.getSchemaFromStorage(options.kv); } - await tryPreloadingOptionalDeps(); db = new DB({ ...options, schema: savedSchema }); let schemaChange = undefined; // A schema is provided, attempt to apply it diff --git a/dist/schema/data-types/type.js b/dist/schema/data-types/type.js index 2e1281c5577b48ffe609a08da933b5f342a485fa..e88487852f6c49185144a9057ffb11d93a3b6cc8 100644 --- a/dist/schema/data-types/type.js +++ b/dist/schema/data-types/type.js @@ -3,7 +3,6 @@ import { DBDeserializationError, DBSerializationError, JSONDeserializationError, import { prefixOperations, SET_OP_PREFIX, SUPPORTED_OPERATIONS, } from './operations.js'; import { DEFAULTABLE_TYPE_KEYS_SET, PRIMITIVE_TYPE_KEYS_SET } from './index.js'; import { hasNoValue, isDefaultFunction } from '../../utils/value.js'; -import { getOptionalDep } from '../../utils/optional-dep.js'; /** * Returns an empty object for the given type * If the type is not a record, it returns undefined @@ -151,8 +150,8 @@ export function encode(type, input) { throw new DBSerializationError(`set<${type.items.type}>`, input); } throw new UnrecognizedAttributeTypeError( - // @ts-expect-error If this has an error, it means we are missing a case above - type.type, 'Failed to encode value'); + // @ts-expect-error If this has an error, it means we are missing a case above + type.type, 'Failed to encode value'); } export function validateEncoded(type, encoded, options) { switch (type.type) { @@ -219,8 +218,8 @@ export function validateEncoded(type, encoded, options) { }; } throw new UnrecognizedAttributeTypeError( - // @ts-expect-error If this has an error, it means we are missing a case above - type.type, 'Failed to validate value'); + // @ts-expect-error If this has an error, it means we are missing a case above + type.type, 'Failed to validate value'); } export function decode(type, encoded) { switch (type.type) { @@ -274,8 +273,8 @@ export function decode(type, encoded) { throw new DBDeserializationError(`set<${type.items.type}>`, encoded); } throw new UnrecognizedAttributeTypeError( - // @ts-expect-error If this has an error, it means we are missing a case above - type.type, 'Failed to decode value'); + // @ts-expect-error If this has an error, it means we are missing a case above + type.type, 'Failed to decode value'); } // FOR SET KEYS // Must encode to string @@ -407,8 +406,8 @@ export function supportedOperations(type) { if (type.type === 'string') return SUPPORTED_OPERATIONS.string; throw new UnrecognizedAttributeTypeError( - // @ts-expect-error If this has an error, it means we are missing a case above - type.type, 'Failed to get supported operations'); + // @ts-expect-error If this has an error, it means we are missing a case above + type.type, 'Failed to get supported operations'); } /** * Checks if the type has a default value that can be configured @@ -440,9 +439,6 @@ function calcDefaultValue(config) { else if (func === 'uuidv4') { return crypto.randomUUID(); } - else if (func === 'uuidv7') { - return getOptionalDep('uuidv7').uuidv7(); - } else if (func === 'now') { return new Date().toISOString(); } diff --git a/dist/utils/optional-dep.d.ts b/home/zoeissleeping/.cache/.bun/install/cache/@triplit/db@1.1.10@@@1/dist/utils/optional-dep.d.ts deleted file mode 100644 index aa726389af2582fdb764fe313691423ffde89c4c..0000000000000000000000000000000000000000 diff --git a/dist/utils/optional-dep.js b/home/zoeissleeping/.cache/.bun/install/cache/@triplit/db@1.1.10@@@1/dist/utils/optional-dep.js deleted file mode 100644 index 850317d787608b58f4083aa91e282c3598e32fa3..0000000000000000000000000000000000000000 diff --git a/dist/utils/optional-dep.js.map b/home/zoeissleeping/.cache/.bun/install/cache/@triplit/db@1.1.10@@@1/dist/utils/optional-dep.js.map deleted file mode 100644 index d39488cfa8b65ac4d7e8b9909c82b7af8cc838e1..0000000000000000000000000000000000000000