@workglow/storage 0.2.30 → 0.2.31

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/bun.js CHANGED
@@ -1444,34 +1444,41 @@ import {
1444
1444
  registerInputResolver
1445
1445
  } from "@workglow/util";
1446
1446
  var TABULAR_REPOSITORIES = createServiceToken5("storage.tabular.repositories");
1447
- globalServiceRegistry.registerIfAbsent(TABULAR_REPOSITORIES, () => new Map, true);
1448
- function getGlobalTabularRepositories() {
1449
- return globalServiceRegistry.get(TABULAR_REPOSITORIES);
1447
+ function getGlobalTabularRepositories(registry = globalServiceRegistry) {
1448
+ if (!registry.has(TABULAR_REPOSITORIES)) {
1449
+ registerTabularStorageDefaults(registry);
1450
+ }
1451
+ return registry.get(TABULAR_REPOSITORIES);
1450
1452
  }
1451
- function registerTabularRepository(id, repository) {
1452
- const repos = getGlobalTabularRepositories();
1453
+ function registerTabularRepository(id, repository, registry = globalServiceRegistry) {
1454
+ const repos = getGlobalTabularRepositories(registry);
1453
1455
  repos.set(id, repository);
1454
1456
  }
1455
- function getTabularRepository(id) {
1456
- return getGlobalTabularRepositories().get(id);
1457
+ function getTabularRepository(id, registry = globalServiceRegistry) {
1458
+ return getGlobalTabularRepositories(registry).get(id);
1457
1459
  }
1458
- function resolveRepositoryFromRegistry(id, format, registry) {
1459
- const repos = registry.has(TABULAR_REPOSITORIES) ? registry.get(TABULAR_REPOSITORIES) : getGlobalTabularRepositories();
1460
+ function resolveRepositoryFromRegistry(id, _format, registry) {
1461
+ const repos = getGlobalTabularRepositories(registry);
1460
1462
  const repo = repos.get(id);
1461
1463
  if (!repo) {
1462
1464
  throw new Error(`Tabular storage "${id}" not found in registry`);
1463
1465
  }
1464
1466
  return repo;
1465
1467
  }
1466
- registerInputResolver("storage:tabular", resolveRepositoryFromRegistry);
1467
- registerInputCompactor("storage:tabular", (value, _format, registry) => {
1468
- const repos = registry.has(TABULAR_REPOSITORIES) ? registry.get(TABULAR_REPOSITORIES) : getGlobalTabularRepositories();
1468
+ function compactTabularRepository(value, _format, registry) {
1469
+ const repos = getGlobalTabularRepositories(registry);
1469
1470
  for (const [id, repo] of repos) {
1470
1471
  if (repo === value)
1471
1472
  return id;
1472
1473
  }
1473
1474
  return;
1474
- });
1475
+ }
1476
+ function registerTabularStorageDefaults(registry = globalServiceRegistry) {
1477
+ registry.registerIfAbsent(TABULAR_REPOSITORIES, () => new Map, true);
1478
+ registerInputResolver("storage:tabular", resolveRepositoryFromRegistry, registry);
1479
+ registerInputCompactor("storage:tabular", compactTabularRepository, registry);
1480
+ }
1481
+ registerTabularStorageDefaults();
1475
1482
  // src/tabular/TelemetryTabularStorage.ts
1476
1483
  import { traced } from "@workglow/util";
1477
1484
 
@@ -2786,6 +2793,7 @@ class SharedInMemoryTabularStorage extends BaseTabularStorage {
2786
2793
  }
2787
2794
  }
2788
2795
  export {
2796
+ registerTabularStorageDefaults,
2789
2797
  registerTabularRepository,
2790
2798
  pickCoveringIndex,
2791
2799
  isSearchCondition,
@@ -2835,4 +2843,4 @@ export {
2835
2843
  BaseSqlTabularStorage
2836
2844
  };
2837
2845
 
2838
- //# debugId=C90CE55156F0F23964756E2164756E21
2846
+ //# debugId=A2157FD3C05FBDFD64756E2164756E21
package/dist/bun.js.map CHANGED
@@ -11,7 +11,7 @@
11
11
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DataPortSchemaObject, FromSchema, TypedArraySchemaOptions } from \"@workglow/util/schema\";\nimport { createServiceToken, makeFingerprint, uuid4 } from \"@workglow/util\";\nimport {\n BaseTabularStorage,\n ClientProvidedKeysOption,\n KeyGenerationStrategy,\n} from \"./BaseTabularStorage\";\nimport {\n AnyTabularStorage,\n AutoGeneratedKeys,\n CoveringIndexQueryOptions,\n DeleteSearchCriteria,\n InsertEntity,\n isSearchCondition,\n QueryOptions,\n SearchCriteria,\n SimplifyPrimaryKey,\n TabularChangePayload,\n TabularSubscribeOptions,\n} from \"./ITabularStorage\";\nimport { pickCoveringIndex } from \"./coveringIndexPicker\";\n\nexport const MEMORY_TABULAR_REPOSITORY = createServiceToken<AnyTabularStorage>(\n \"storage.tabularRepository.inMemory\"\n);\n\n/**\n * A generic in-memory key-value repository implementation.\n * Provides a simple, non-persistent storage solution suitable for testing and caching scenarios.\n *\n * @template Schema - The schema definition for the entity using JSON Schema\n * @template PrimaryKeyNames - Array of property names that form the primary key\n */\nexport class InMemoryTabularStorage<\n Schema extends DataPortSchemaObject,\n PrimaryKeyNames extends ReadonlyArray<keyof Schema[\"properties\"]>,\n // computed types\n Entity = FromSchema<Schema, TypedArraySchemaOptions>,\n PrimaryKey = SimplifyPrimaryKey<Entity, PrimaryKeyNames>,\n Value = Omit<Entity, PrimaryKeyNames[number] & keyof Entity>,\n InsertType extends InsertEntity<Entity, AutoGeneratedKeys<Schema>> = InsertEntity<\n Entity,\n AutoGeneratedKeys<Schema>\n >,\n> extends BaseTabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey, Value, InsertType> {\n /** Internal storage using a Map with fingerprint strings as keys */\n values = new Map<string, Entity>();\n /** Counter for auto-incrementing integer keys */\n private autoIncrementCounter = 0;\n /** Tracks whether the last put was an insert (new key) or update (existing key) */\n private _lastPutWasInsert = false;\n\n /**\n * Creates a new InMemoryTabularStorage instance\n * @param schema - Schema defining the structure of the entity\n * @param primaryKeyNames - Array of property names that form the primary key\n * @param indexes - Array of columns or column arrays to make searchable. Each string or single column creates a single-column index,\n * while each array creates a compound index with columns in the specified order.\n * @param clientProvidedKeys - How to handle client-provided values for auto-generated keys\n */\n constructor(\n schema: Schema,\n primaryKeyNames: PrimaryKeyNames,\n indexes: readonly (keyof NoInfer<Entity> | readonly (keyof NoInfer<Entity>)[])[] = [],\n clientProvidedKeys: ClientProvidedKeysOption = \"if-missing\"\n ) {\n super(schema, primaryKeyNames, indexes, clientProvidedKeys);\n }\n\n /**\n * Sets up the database for the repository (no-op for in-memory)\n */\n override async setupDatabase(): Promise<void> {\n // No setup needed for in-memory storage\n }\n\n /**\n * Generates a key value for auto-generated keys\n * @param columnName - Name of the column to generate a key for\n * @param strategy - The generation strategy to use\n * @returns The generated key value\n */\n protected override generateKeyValue(\n columnName: string,\n strategy: KeyGenerationStrategy\n ): string | number {\n if (strategy === \"autoincrement\") {\n return ++this.autoIncrementCounter;\n } else {\n return uuid4();\n }\n }\n\n /**\n * Stores a key-value pair in the repository\n * @param value - The combined object to store (may be missing auto-generated keys)\n * @returns The stored entity with all keys filled in\n * @emits 'put' event with the stored entity when successful\n */\n async put(value: InsertType): Promise<Entity> {\n let entityToStore = value as unknown as Entity;\n const savedCounter = this.autoIncrementCounter;\n\n try {\n // Handle auto-generated keys\n if (this.hasAutoGeneratedKey() && this.autoGeneratedKeyName) {\n const keyName = this.autoGeneratedKeyName as string;\n const clientProvidedValue = (value as Record<string, unknown>)[keyName];\n const hasClientValue = clientProvidedValue !== undefined && clientProvidedValue !== null;\n\n let shouldGenerate = false;\n if (this.clientProvidedKeys === \"never\") {\n shouldGenerate = true;\n } else if (this.clientProvidedKeys === \"always\") {\n if (!hasClientValue) {\n throw new Error(\n `Auto-generated key \"${keyName}\" is required when clientProvidedKeys is \"always\"`\n );\n }\n shouldGenerate = false;\n } else {\n shouldGenerate = !hasClientValue;\n }\n\n if (shouldGenerate) {\n const generatedValue = this.generateKeyValue(keyName, this.autoGeneratedKeyStrategy!);\n entityToStore = { ...value, [keyName]: generatedValue } as Entity;\n }\n }\n\n const { key } = this.separateKeyValueFromCombined(entityToStore);\n const id = await makeFingerprint(key);\n this._lastPutWasInsert = !this.values.has(id);\n this.values.set(id, entityToStore);\n } catch (e) {\n this.autoIncrementCounter = savedCounter;\n throw e;\n }\n\n this.events.emit(\"put\", entityToStore);\n return entityToStore;\n }\n\n /**\n * Stores multiple key-value pairs in the repository in a bulk operation\n * @param values - Array of combined objects to store (may be missing auto-generated keys)\n * @returns Array of stored entities with all keys filled in\n * @emits 'put' event for each value stored\n */\n async putBulk(values: InsertType[]): Promise<Entity[]> {\n return await Promise.all(values.map(async (value) => this.put(value)));\n }\n\n /**\n * Retrieves a value by its key\n * @param key - The primary key object to look up\n * @returns The value object if found, undefined otherwise\n * @emits 'get' event with the fingerprint ID and value when found\n */\n async get(key: PrimaryKey): Promise<Entity | undefined> {\n const id = await makeFingerprint(key);\n const out = this.values.get(id);\n this.events.emit(\"get\", key, out);\n return out;\n }\n\n /**\n * Deletes an entry by its key\n * @param key - The primary key object of the entry to delete\n * @emits 'delete' event with the fingerprint ID when successful\n */\n async delete(value: PrimaryKey | Entity): Promise<void> {\n const { key } = this.separateKeyValueFromCombined(value as Entity);\n const id = await makeFingerprint(key);\n this.values.delete(id);\n this.events.emit(\"delete\", key as keyof Entity);\n }\n\n /**\n * Removes all entries from the repository\n * @emits 'clearall' event when successful\n */\n async deleteAll(): Promise<void> {\n this.values.clear();\n this.events.emit(\"clearall\");\n }\n\n /**\n * Returns an array of all entries in the repository, with optional ordering, offset, and limit.\n * @param options - Optional ordering, limit, and offset options\n * @returns Array of all entries in the repository\n */\n async getAll(options?: QueryOptions<Entity>): Promise<Entity[] | undefined> {\n this.validateGetAllOptions(options);\n let all = Array.from(this.values.values());\n\n if (options?.orderBy && options.orderBy.length > 0) {\n all.sort((a, b) => {\n for (const { column, direction } of options.orderBy!) {\n const aVal = a[column] as string | number | null | undefined;\n const bVal = b[column] as string | number | null | undefined;\n if (aVal == null && bVal == null) continue;\n if (aVal == null) return direction === \"ASC\" ? -1 : 1;\n if (bVal == null) return direction === \"ASC\" ? 1 : -1;\n if (aVal < bVal) return direction === \"ASC\" ? -1 : 1;\n if (aVal > bVal) return direction === \"ASC\" ? 1 : -1;\n }\n return 0;\n });\n }\n\n if (options?.offset !== undefined) {\n all = all.slice(options.offset);\n }\n\n if (options?.limit !== undefined) {\n all = all.slice(0, options.limit);\n }\n\n return all.length > 0 ? all : undefined;\n }\n\n /**\n * Returns the number of entries in the repository\n * @returns The total count of stored entries\n */\n async size(): Promise<number> {\n return this.values.size;\n }\n\n /**\n * Fetches a page of records from the repository.\n * @param offset - Number of records to skip\n * @param limit - Maximum number of records to return\n * @returns Array of entities or undefined if no records found\n */\n async getBulk(offset: number, limit: number): Promise<Entity[] | undefined> {\n const all = Array.from(this.values.values());\n\n // Ensure deterministic ordering by sorting by primary key(s) before pagination\n all.sort((a, b) => {\n for (const key of this.primaryKeyNames) {\n const aVal = (a as Record<string, string | number>)[key as string];\n const bVal = (b as Record<string, string | number>)[key as string];\n if (aVal < bVal) return -1;\n if (aVal > bVal) return 1;\n }\n return 0;\n });\n\n const page = all.slice(offset, offset + limit);\n return page.length > 0 ? page : undefined;\n }\n\n /**\n * Deletes all entries matching the specified search criteria.\n * Supports multiple columns with optional comparison operators.\n *\n * @param criteria - Object with column names as keys and values or SearchConditions\n */\n async deleteSearch(criteria: DeleteSearchCriteria<Entity>): Promise<void> {\n const criteriaKeys = Object.keys(criteria) as Array<keyof Entity>;\n if (criteriaKeys.length === 0) {\n return;\n }\n\n // Convert to array first to avoid iterator issues when modifying the Map\n const entries = Array.from(this.values.entries());\n\n const entriesToDelete = entries.filter(([_, entity]) => {\n // All criteria must match (AND logic)\n for (const column of criteriaKeys) {\n const criterion = criteria[column];\n const columnValue = entity[column];\n\n if (isSearchCondition(criterion)) {\n const { value, operator } = criterion;\n // Cast needed for generic comparison operators across Entity value types\n const v = value as string | number;\n const cv = columnValue as string | number | null | undefined;\n switch (operator) {\n case \"=\":\n if (cv !== v) return false;\n break;\n case \"<\":\n if (cv === null || cv === undefined || !(cv < v)) return false;\n break;\n case \"<=\":\n if (cv === null || cv === undefined || !(cv <= v)) return false;\n break;\n case \">\":\n if (cv === null || cv === undefined || !(cv > v)) return false;\n break;\n case \">=\":\n if (cv === null || cv === undefined || !(cv >= v)) return false;\n break;\n default:\n return false;\n }\n } else {\n // Direct value means equality\n if (columnValue !== criterion) return false;\n }\n }\n return true;\n });\n\n // Delete the filtered entries and emit events for each\n for (const [id, entity] of entriesToDelete) {\n this.values.delete(id);\n const { key } = this.separateKeyValueFromCombined(entity);\n this.events.emit(\"delete\", key as keyof Entity);\n }\n }\n\n /**\n * Queries entries matching the specified search criteria with optional ordering, limit, and offset.\n *\n * @param criteria - Object with column names as keys and values or SearchConditions\n * @param options - Optional ordering, limit, and offset options\n * @returns Array of matching entities or undefined if no matches found\n */\n async query(\n criteria: SearchCriteria<Entity>,\n options?: QueryOptions<Entity>\n ): Promise<Entity[] | undefined> {\n this.validateQueryParams(criteria, options);\n\n const criteriaKeys = Object.keys(criteria) as Array<keyof Entity>;\n\n let results: Entity[] = Array.from(this.values.values()).filter((entity) => {\n for (const column of criteriaKeys) {\n const criterion = criteria[column];\n const columnValue = entity[column];\n\n if (isSearchCondition(criterion)) {\n const { value, operator } = criterion;\n const v = value as string | number;\n const cv = columnValue as string | number | null | undefined;\n switch (operator) {\n case \"=\":\n if (cv !== v) return false;\n break;\n case \"<\":\n if (cv === null || cv === undefined || !(cv < v)) return false;\n break;\n case \"<=\":\n if (cv === null || cv === undefined || !(cv <= v)) return false;\n break;\n case \">\":\n if (cv === null || cv === undefined || !(cv > v)) return false;\n break;\n case \">=\":\n if (cv === null || cv === undefined || !(cv >= v)) return false;\n break;\n default:\n return false;\n }\n } else {\n if (columnValue !== criterion) return false;\n }\n }\n return true;\n });\n\n if (options?.orderBy && options.orderBy.length > 0) {\n results.sort((a, b) => {\n for (const { column, direction } of options.orderBy!) {\n const aVal = a[column] as string | number | null | undefined;\n const bVal = b[column] as string | number | null | undefined;\n if (aVal == null && bVal == null) continue;\n if (aVal == null) return direction === \"ASC\" ? -1 : 1;\n if (bVal == null) return direction === \"ASC\" ? 1 : -1;\n if (aVal < bVal) return direction === \"ASC\" ? -1 : 1;\n if (aVal > bVal) return direction === \"ASC\" ? 1 : -1;\n }\n return 0;\n });\n }\n\n if (options?.offset !== undefined) {\n results = results.slice(options.offset);\n }\n\n if (options?.limit !== undefined) {\n results = results.slice(0, options.limit);\n }\n\n const result = results.length > 0 ? results : undefined;\n this.events.emit(\"query\", criteria as Partial<Entity>, result);\n return result;\n }\n\n /**\n * Strict, projected query served entirely by a covering compound index.\n * Throws CoveringIndexMissingError when no registered index can serve the request.\n * Returns Pick<Entity, K>[] — never undefined, empty array on no matches.\n */\n override async queryIndex<K extends keyof Entity & string>(\n criteria: SearchCriteria<Entity>,\n options: CoveringIndexQueryOptions<Entity, K>\n ): Promise<Pick<Entity, K>[]> {\n this.validateSelect(options);\n this.validateQueryParams(criteria, options);\n\n const registered = this.indexes.map((cols, i) => ({\n name: `idx_${i}`,\n keyPath: cols as string[],\n }));\n\n pickCoveringIndex({\n table: \"InMemoryTabularStorage\",\n indexes: registered,\n criteriaColumns: Object.keys(criteria),\n orderByColumns: (options.orderBy ?? []).map((o) => ({\n column: String(o.column),\n direction: o.direction,\n })),\n selectColumns: options.select.map(String),\n primaryKeyColumns: this.primaryKeyNames.map(String),\n });\n\n // Validation passed — reuse query() then project\n const full = await this.query(criteria, {\n orderBy: options.orderBy,\n limit: options.limit,\n offset: options.offset,\n });\n if (!full) return [];\n return full.map((row) => {\n const out = {} as Pick<Entity, K>;\n for (const k of options.select) out[k] = row[k];\n return out;\n });\n }\n\n /**\n * Subscribes to changes in the repository.\n * Since InMemory is both client and server, changes are detected via local events.\n *\n * @param callback - Function called when a change occurs\n * @param options - Optional subscription options (not used for in-memory)\n * @returns Unsubscribe function\n */\n public override subscribeToChanges(\n callback: (change: TabularChangePayload<Entity>) => void,\n options?: TabularSubscribeOptions\n ): () => void {\n const handlePut = (entity: Entity) => {\n callback({ type: this._lastPutWasInsert ? \"INSERT\" : \"UPDATE\", new: entity });\n };\n\n const handleDelete = (_key: keyof Entity) => {\n callback({ type: \"DELETE\" });\n };\n\n const handleClearAll = () => {\n callback({ type: \"DELETE\" });\n };\n\n this.events.on(\"put\", handlePut);\n this.events.on(\"delete\", handleDelete);\n this.events.on(\"clearall\", handleClearAll);\n\n return () => {\n this.events.off(\"put\", handlePut);\n this.events.off(\"delete\", handleDelete);\n this.events.off(\"clearall\", handleClearAll);\n };\n }\n\n /**\n * Destroys the repository and frees up resources.\n */\n public override destroy(): void {\n this.values.clear();\n }\n}\n",
12
12
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CoveringIndexMissingError } from \"./CoveringIndexMissingError\";\n\nexport interface RegisteredIndex {\n readonly name: string;\n readonly keyPath: readonly string[];\n}\n\nexport interface PickCoveringIndexInput {\n readonly table: string;\n readonly indexes: readonly RegisteredIndex[];\n readonly criteriaColumns: readonly string[];\n readonly orderByColumns: ReadonlyArray<{\n readonly column: string;\n readonly direction: \"ASC\" | \"DESC\";\n }>;\n readonly selectColumns: readonly string[];\n readonly primaryKeyColumns: readonly string[];\n}\n\nexport interface PickedIndex {\n readonly name: string;\n readonly keyPath: readonly string[];\n /** true if the keypath order is reverse of orderBy direction (caller uses \"prev\" cursor) */\n readonly reverseDirection: boolean;\n}\n\n/**\n * Pick the first registered index whose keypath:\n * 1. starts with all `criteriaColumns` (as a prefix, in any order),\n * 2. then has the `orderByColumns` immediately after, in matching direction or reversed,\n * 3. and contains every `selectColumns` value somewhere in the keypath\n * (primary-key columns are considered covered for free, e.g. via cursor.primaryKey).\n *\n * Throws {@link CoveringIndexMissingError} on no match.\n */\nexport function pickCoveringIndex(input: PickCoveringIndexInput): PickedIndex {\n const { table, indexes, criteriaColumns, orderByColumns, selectColumns, primaryKeyColumns } =\n input;\n const required = uniqueColumns([\n ...criteriaColumns,\n ...orderByColumns.map((o) => o.column),\n ...selectColumns,\n ]);\n const pkSet = new Set(primaryKeyColumns);\n\n for (const idx of indexes) {\n const fit = tryFitIndex(idx, criteriaColumns, orderByColumns, selectColumns, pkSet);\n if (fit !== undefined) {\n return { name: idx.name, keyPath: idx.keyPath, reverseDirection: fit.reverseDirection };\n }\n }\n\n throw new CoveringIndexMissingError(\n table,\n required,\n indexes.map((i) => i.keyPath)\n );\n}\n\nfunction tryFitIndex(\n index: RegisteredIndex,\n criteria: readonly string[],\n orderBy: ReadonlyArray<{ column: string; direction: \"ASC\" | \"DESC\" }>,\n select: readonly string[],\n pkSet: ReadonlySet<string>\n): { reverseDirection: boolean } | undefined {\n const keyPath = index.keyPath;\n const criteriaSet = new Set(criteria);\n\n if (criteria.length > keyPath.length) return undefined;\n for (let i = 0; i < criteria.length; i++) {\n if (!criteriaSet.has(keyPath[i])) return undefined;\n }\n\n let reverseDirection = false;\n if (orderBy.length > 0) {\n const start = criteria.length;\n if (start + orderBy.length > keyPath.length) return undefined;\n for (let i = 0; i < orderBy.length; i++) {\n if (keyPath[start + i] !== orderBy[i].column) return undefined;\n }\n const allDesc = orderBy.every((o) => o.direction === \"DESC\");\n const allAsc = orderBy.every((o) => o.direction === \"ASC\");\n if (allDesc) reverseDirection = true;\n else if (!allAsc) return undefined;\n }\n\n const keyPathSet = new Set(keyPath);\n for (const col of select) {\n if (!keyPathSet.has(col) && !pkSet.has(col)) return undefined;\n }\n\n return { reverseDirection };\n}\n\nfunction uniqueColumns(cols: readonly string[]): string[] {\n return Array.from(new Set(cols));\n}\n",
13
13
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createServiceToken } from \"@workglow/util\";\nimport { DataPortSchemaObject, FromSchema, TypedArraySchemaOptions } from \"@workglow/util/schema\";\nimport { BaseTabularStorage } from \"./BaseTabularStorage\";\nimport {\n AnyTabularStorage,\n AutoGeneratedKeys,\n DeleteSearchCriteria,\n InsertEntity,\n isSearchCondition,\n QueryOptions,\n SearchCriteria,\n SimplifyPrimaryKey,\n TabularChangePayload,\n TabularSubscribeOptions,\n} from \"./ITabularStorage\";\nimport { StorageUnsupportedError } from \"./StorageError\";\n\nexport const HF_TABULAR_REPOSITORY = createServiceToken<AnyTabularStorage>(\n \"storage.tabularRepository.huggingface\"\n);\n\n/**\n * HuggingFace Dataset Viewer API response types\n */\ninterface HfFirstRowsResponse {\n features: Array<{ feature_idx: number; name: string; type: any }>;\n rows: Array<{ row_idx: number; row: Record<string, any>; truncated_cells: any[] }>;\n}\n\ninterface HfRowsResponse {\n features: Array<{ feature_idx: number; name: string; type: any }>;\n rows: Array<{ row_idx: number; row: Record<string, any>; truncated_cells: any[] }>;\n num_rows_total: number;\n num_rows_per_page: number;\n partial: boolean;\n}\n\ninterface HfFilterResponse {\n features: Array<{ feature_idx: number; name: string; type: any }>;\n rows: Array<{ row_idx: number; row: Record<string, any>; truncated_cells: any[] }>;\n num_rows_total: number;\n num_rows_per_page: number;\n partial: boolean;\n}\n\ninterface HfSizeResponse {\n size: {\n dataset: string;\n config: string;\n split: string;\n num_bytes_original_files: number;\n num_bytes_parquet_files: number;\n num_bytes_memory: number;\n num_rows: number;\n num_columns: number;\n };\n partial: boolean;\n}\n\n/**\n * Options for HuggingFaceTabularStorage\n */\nexport interface HuggingFaceTabularStorageOptions {\n /** HuggingFace API token for private datasets */\n token?: string;\n /** Base URL for the HuggingFace Dataset Viewer API */\n baseUrl?: string;\n /** Indexes for optimizing search operations */\n indexes?: readonly (keyof any | readonly (keyof any)[])[];\n}\n\n/**\n * Read-only tabular storage backed by HuggingFace Dataset Viewer API.\n * Supports both user-provided schemas and auto-detection from HF features.\n *\n * @template Schema - The schema definition for the entity using JSON Schema\n * @template PrimaryKeyNames - Array of property names that form the primary key\n */\nexport class HuggingFaceTabularStorage<\n Schema extends DataPortSchemaObject,\n PrimaryKeyNames extends ReadonlyArray<keyof Schema[\"properties\"]>,\n // computed types\n Entity = FromSchema<Schema, TypedArraySchemaOptions>,\n PrimaryKey = SimplifyPrimaryKey<Entity, PrimaryKeyNames>,\n Value = Omit<Entity, PrimaryKeyNames[number] & keyof Entity>,\n InsertType extends InsertEntity<Entity, AutoGeneratedKeys<Schema>> = InsertEntity<\n Entity,\n AutoGeneratedKeys<Schema>\n >,\n> extends BaseTabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey, Value, InsertType> {\n private readonly dataset: string;\n private readonly config: string;\n private readonly split: string;\n private readonly token?: string;\n private readonly baseUrl: string;\n\n /**\n * Creates a new HuggingFaceTabularStorage instance\n * @param dataset - HuggingFace dataset name (e.g., \"cornell-movie-review-data/rotten_tomatoes\")\n * @param config - Dataset configuration (e.g., \"default\")\n * @param split - Dataset split (e.g., \"train\", \"test\", \"validation\")\n * @param schema - Schema defining the structure of the entity\n * @param primaryKeyNames - Array of property names that form the primary key\n * @param options - Optional configuration including token, baseUrl, and indexes\n */\n constructor(\n dataset: string,\n config: string,\n split: string,\n schema: Schema,\n primaryKeyNames: PrimaryKeyNames,\n options?: HuggingFaceTabularStorageOptions\n ) {\n super(\n schema,\n primaryKeyNames,\n (options?.indexes ?? []) as readonly (\n | keyof NoInfer<Entity>\n | readonly (keyof NoInfer<Entity>)[]\n )[],\n \"never\" // HF datasets don't support client-provided keys\n );\n this.dataset = dataset;\n this.config = config;\n this.split = split;\n this.token = options?.token;\n this.baseUrl = options?.baseUrl ?? \"https://datasets-server.huggingface.co\";\n }\n\n /**\n * Factory method to create a HuggingFaceTabularStorage instance with auto-detected schema.\n * Fetches the dataset features and converts them to a JSON Schema.\n *\n * @param dataset - HuggingFace dataset name\n * @param config - Dataset configuration\n * @param split - Dataset split\n * @param options - Optional configuration\n * @returns A new HuggingFaceTabularStorage instance with auto-detected schema\n */\n static async fromDataset<Entity = any>(\n dataset: string,\n config: string,\n split: string,\n options?: HuggingFaceTabularStorageOptions\n ): Promise<\n HuggingFaceTabularStorage<DataPortSchemaObject, readonly [\"row_idx\"], Entity, number, any, any>\n > {\n const baseUrl = options?.baseUrl ?? \"https://datasets-server.huggingface.co\";\n const token = options?.token;\n\n // Fetch first rows to get features\n const url = new URL(`${baseUrl}/first-rows`);\n url.searchParams.set(\"dataset\", dataset);\n url.searchParams.set(\"config\", config);\n url.searchParams.set(\"split\", split);\n\n const headers: Record<string, string> = {};\n if (token) {\n headers[\"Authorization\"] = `Bearer ${token}`;\n }\n\n const response = await fetch(url.toString(), { headers });\n if (!response.ok) {\n throw new Error(\n `Failed to fetch dataset features: ${response.status} ${response.statusText}`\n );\n }\n\n const data: HfFirstRowsResponse = await response.json();\n\n // Convert HF features to JSON Schema\n const properties: Record<string, any> = {};\n const required: string[] = [];\n\n // Add row_idx as primary key (auto-generated by HF)\n properties[\"row_idx\"] = { type: \"integer\", \"x-auto-generated\": true };\n required.push(\"row_idx\");\n\n for (const feature of data.features) {\n const jsonSchema = hfFeatureToJsonSchema(feature.type);\n properties[feature.name] = jsonSchema;\n // HF datasets typically don't have null values unless specified\n required.push(feature.name);\n }\n\n const schema: DataPortSchemaObject = {\n type: \"object\",\n properties,\n required,\n additionalProperties: false,\n };\n\n return new HuggingFaceTabularStorage(\n dataset,\n config,\n split,\n schema,\n [\"row_idx\"] as const,\n options\n ) as any;\n }\n\n /**\n * Sets up the database by validating the dataset exists and schema matches\n */\n override async setupDatabase(): Promise<void> {\n // Fetch first rows to validate dataset exists\n const data = await this.fetchApi<HfFirstRowsResponse>(\"/first-rows\", {});\n\n // Validate that schema columns match HF features (if schema was user-provided)\n const schemaColumns = Object.keys(this.schema.properties);\n const hfColumns = data.features.map((f) => f.name);\n\n // Check if row_idx is in schema (indicates auto-detected schema)\n const hasRowIdx = schemaColumns.includes(\"row_idx\");\n\n if (!hasRowIdx) {\n // User-provided schema - validate columns match\n for (const column of schemaColumns) {\n if (!hfColumns.includes(column) && !this.primaryKeyNames.includes(column as any)) {\n throw new Error(`Schema column \"${column}\" not found in HuggingFace dataset features`);\n }\n }\n }\n }\n\n /**\n * Retrieves a value by its key using the /filter endpoint\n */\n async get(key: PrimaryKey): Promise<Entity | undefined> {\n const keyObj = this.separateKeyValueFromCombined({ ...key } as any).key;\n const whereConditions: string[] = [];\n\n for (const [k, v] of Object.entries(keyObj as Record<string, any>)) {\n if (typeof v === \"string\") {\n // Escape backslashes first, then single quotes\n const escaped = v.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\");\n whereConditions.push(`${k}='${escaped}'`);\n } else {\n whereConditions.push(`${k}=${v}`);\n }\n }\n\n const where = whereConditions.join(\" AND \");\n const data = await this.fetchApi<HfFilterResponse>(\"/filter\", { where, limit: \"1\" });\n\n if (data.rows.length > 0) {\n const entity = this.rowToEntity(data.rows[0]);\n this.events.emit(\"get\", key, entity);\n return entity;\n }\n\n this.events.emit(\"get\", key, undefined);\n return undefined;\n }\n\n /**\n * Retrieves all entities by paginating through the /rows endpoint\n */\n async getAll(options?: QueryOptions<Entity>): Promise<Entity[] | undefined> {\n this.validateGetAllOptions(options);\n\n const allEntities: Entity[] = [];\n let offset = 0;\n const pageSize = 100; // HF max per request\n\n while (true) {\n const page = await this.getBulk(offset, pageSize);\n\n if (!page || page.length === 0) {\n break;\n }\n\n allEntities.push(...page);\n offset += page.length;\n\n // If we got fewer records than requested, we've reached the end\n if (page.length < pageSize) {\n break;\n }\n }\n\n if (allEntities.length === 0) return undefined;\n\n let results = allEntities;\n\n // Apply JS-side orderBy\n if (options?.orderBy && options.orderBy.length > 0) {\n results = [...results];\n results.sort((a, b) => {\n for (const { column, direction } of options.orderBy!) {\n const aVal = a[column] as string | number | null | undefined;\n const bVal = b[column] as string | number | null | undefined;\n if (aVal == null && bVal == null) continue;\n if (aVal == null) return direction === \"ASC\" ? -1 : 1;\n if (bVal == null) return direction === \"ASC\" ? 1 : -1;\n if (aVal < bVal) return direction === \"ASC\" ? -1 : 1;\n if (aVal > bVal) return direction === \"ASC\" ? 1 : -1;\n }\n return 0;\n });\n }\n\n // Apply offset\n if (options?.offset !== undefined) {\n results = results.slice(options.offset);\n }\n\n // Apply limit\n if (options?.limit !== undefined) {\n results = results.slice(0, options.limit);\n }\n\n return results.length > 0 ? results : undefined;\n }\n\n /**\n * Fetches a page of records from the repository.\n * @param offset - Number of records to skip\n * @param limit - Maximum number of records to return\n * @returns Array of entities or undefined if no records found\n */\n async getBulk(offset: number, limit: number): Promise<Entity[] | undefined> {\n const data = await this.fetchApi<HfRowsResponse>(\"/rows\", {\n offset: offset.toString(),\n length: Math.min(limit, 100).toString(), // HF max is 100 per request\n });\n\n if (data.rows.length === 0) {\n return undefined;\n }\n\n const entities: Entity[] = [];\n for (const row of data.rows) {\n entities.push(this.rowToEntity(row));\n }\n\n return entities;\n }\n\n /**\n * Returns the number of rows in the dataset using the /size endpoint\n */\n async size(): Promise<number> {\n const data = await this.fetchApi<HfSizeResponse>(\"/size\", {});\n return data.size.num_rows;\n }\n\n /**\n * Write operations are not supported - throws readonly error\n */\n async put(_value: InsertType): Promise<Entity> {\n throw new Error(\"HuggingFaceTabularStorage is readonly\");\n }\n\n /**\n * Write operations are not supported - throws readonly error\n */\n async putBulk(_values: InsertType[]): Promise<Entity[]> {\n throw new Error(\"HuggingFaceTabularStorage is readonly\");\n }\n\n /**\n * Delete operations are not supported - throws readonly error\n */\n async delete(_value: PrimaryKey | Entity): Promise<void> {\n throw new Error(\"HuggingFaceTabularStorage is readonly\");\n }\n\n /**\n * Delete operations are not supported - throws readonly error\n */\n async deleteAll(): Promise<void> {\n throw new Error(\"HuggingFaceTabularStorage is readonly\");\n }\n\n /**\n * Queries entities using the /filter endpoint for equality criteria.\n * Non-equality operators are not supported by the HuggingFace API.\n *\n * @param criteria - Object with column names as keys and values or SearchConditions\n * @param options - Optional ordering, limit, and offset options\n * @returns Array of matching entities or undefined if no matches found\n */\n async query(\n criteria: SearchCriteria<Entity>,\n options?: QueryOptions<Entity>\n ): Promise<Entity[] | undefined> {\n this.validateQueryParams(criteria, options);\n\n // Build WHERE clause — only equality is supported by HF API\n const whereConditions: string[] = [];\n for (const [k, v] of Object.entries(criteria)) {\n if (v === undefined || v === null) continue;\n if (isSearchCondition(v)) {\n if (v.operator !== \"=\") {\n throw new StorageUnsupportedError(\n `Operator \"${v.operator}\" in query`,\n \"HuggingFaceTabularStorage\"\n );\n }\n const val = v.value;\n if (typeof val === \"string\") {\n const escaped = val.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\");\n whereConditions.push(`${k}='${escaped}'`);\n } else {\n whereConditions.push(`${k}=${val}`);\n }\n } else {\n if (typeof v === \"string\") {\n const escaped = v.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\");\n whereConditions.push(`${k}='${escaped}'`);\n } else {\n whereConditions.push(`${k}=${v}`);\n }\n }\n }\n\n if (whereConditions.length === 0) {\n return undefined;\n }\n\n const where = whereConditions.join(\" AND \");\n const allEntities: Entity[] = [];\n let fetchOffset = 0;\n const fetchLimit = 100;\n\n while (true) {\n const data = await this.fetchApi<HfFilterResponse>(\"/filter\", {\n where,\n offset: fetchOffset.toString(),\n limit: fetchLimit.toString(),\n });\n\n for (const row of data.rows) {\n allEntities.push(this.rowToEntity(row));\n }\n\n fetchOffset += data.rows.length;\n\n if (fetchOffset >= data.num_rows_total || data.rows.length < fetchLimit) {\n break;\n }\n }\n\n let results = allEntities;\n\n // Apply JS-side orderBy\n if (options?.orderBy && options.orderBy.length > 0) {\n results.sort((a, b) => {\n for (const { column, direction } of options.orderBy!) {\n const aVal = a[column] as string | number | null | undefined;\n const bVal = b[column] as string | number | null | undefined;\n if (aVal == null && bVal == null) continue;\n if (aVal == null) return direction === \"ASC\" ? -1 : 1;\n if (bVal == null) return direction === \"ASC\" ? 1 : -1;\n if (aVal < bVal) return direction === \"ASC\" ? -1 : 1;\n if (aVal > bVal) return direction === \"ASC\" ? 1 : -1;\n }\n return 0;\n });\n }\n\n // Apply offset\n if (options?.offset !== undefined) {\n results = results.slice(options.offset);\n }\n\n // Apply limit\n if (options?.limit !== undefined) {\n results = results.slice(0, options.limit);\n }\n\n if (results.length > 0) {\n this.events.emit(\"query\", criteria as Partial<Entity>, results);\n return results;\n } else {\n this.events.emit(\"query\", criteria as Partial<Entity>, undefined);\n return undefined;\n }\n }\n\n /**\n * Delete operations are not supported - throws readonly error\n */\n async deleteSearch(_criteria: DeleteSearchCriteria<Entity>): Promise<void> {\n throw new Error(\"HuggingFaceTabularStorage is readonly\");\n }\n\n /**\n * Subscriptions are not supported - HF datasets are static\n */\n override subscribeToChanges(\n _callback: (change: TabularChangePayload<Entity>) => void,\n _options?: TabularSubscribeOptions\n ): () => void {\n throw new Error(\"HuggingFaceTabularStorage does not support subscriptions\");\n }\n\n /**\n * No resources to clean up\n */\n override destroy(): void {\n // No-op - no resources to clean up\n }\n\n /**\n * Helper method to fetch from the HuggingFace Dataset Viewer API\n */\n private async fetchApi<T>(endpoint: string, params: Record<string, string>): Promise<T> {\n const url = new URL(`${this.baseUrl}${endpoint}`);\n url.searchParams.set(\"dataset\", this.dataset);\n url.searchParams.set(\"config\", this.config);\n url.searchParams.set(\"split\", this.split);\n\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n\n const headers: Record<string, string> = {};\n if (this.token) {\n headers[\"Authorization\"] = `Bearer ${this.token}`;\n }\n\n const response = await fetch(url.toString(), { headers });\n if (!response.ok) {\n throw new Error(`HuggingFace API error: ${response.status} ${response.statusText}`);\n }\n\n return await response.json();\n }\n\n /**\n * Converts a HF row to an Entity\n */\n private rowToEntity(row: { row_idx: number; row: Record<string, any> }): Entity {\n return { row_idx: row.row_idx, ...row.row } as Entity;\n }\n}\n\n/**\n * Converts a HuggingFace feature type to a JSON Schema type definition\n */\nfunction hfFeatureToJsonSchema(feature: any): any {\n // Handle Value types\n if (feature._type === \"Value\") {\n switch (feature.dtype) {\n case \"string\":\n return { type: \"string\" };\n case \"int64\":\n case \"int32\":\n case \"int16\":\n case \"int8\":\n case \"uint64\":\n case \"uint32\":\n case \"uint16\":\n case \"uint8\":\n return { type: \"integer\" };\n case \"float64\":\n case \"float32\":\n case \"float16\":\n return { type: \"number\" };\n case \"bool\":\n return { type: \"boolean\" };\n default:\n return {}; // any type\n }\n }\n\n // Handle ClassLabel types\n if (feature._type === \"ClassLabel\") {\n return { type: \"integer\" };\n }\n\n // Handle Sequence types\n if (feature._type === \"Sequence\") {\n return {\n type: \"array\",\n items: hfFeatureToJsonSchema(feature.feature),\n };\n }\n\n // Handle other types as any\n return {};\n}\n",
14
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n createServiceToken,\n globalServiceRegistry,\n registerInputCompactor,\n registerInputResolver,\n ServiceRegistry,\n} from \"@workglow/util\";\nimport { AnyTabularStorage } from \"./ITabularStorage\";\n\n/**\n * Service token for the tabular repository registry\n * Maps repository IDs to ITabularStorage instances\n */\nexport const TABULAR_REPOSITORIES = createServiceToken<Map<string, AnyTabularStorage>>(\n \"storage.tabular.repositories\"\n);\n\n// Register default factory if not already registered\nglobalServiceRegistry.registerIfAbsent(\n TABULAR_REPOSITORIES,\n (): Map<string, AnyTabularStorage> => new Map(),\n true\n);\n\n/**\n * Gets the global tabular repository registry\n * @returns Map of tabular repository ID to instance\n */\nexport function getGlobalTabularRepositories(): Map<string, AnyTabularStorage> {\n return globalServiceRegistry.get(TABULAR_REPOSITORIES);\n}\n\n/**\n * Registers a tabular repository globally by ID\n * @param id The unique identifier for this repository\n * @param repository The repository instance to register\n */\nexport function registerTabularRepository(id: string, repository: AnyTabularStorage): void {\n const repos = getGlobalTabularRepositories();\n repos.set(id, repository);\n}\n\n/**\n * Gets a tabular repository by ID from the global registry\n * @param id The repository identifier\n * @returns The repository instance or undefined if not found\n */\nexport function getTabularRepository(id: string): AnyTabularStorage | undefined {\n return getGlobalTabularRepositories().get(id);\n}\n\n/**\n * Resolves a repository ID to an instance from the registry.\n * Used by the input resolver system.\n */\nfunction resolveRepositoryFromRegistry(\n id: string,\n format: string,\n registry: ServiceRegistry\n): AnyTabularStorage {\n const repos = registry.has(TABULAR_REPOSITORIES)\n ? registry.get(TABULAR_REPOSITORIES)\n : getGlobalTabularRepositories();\n const repo = repos.get(id);\n if (!repo) {\n throw new Error(`Tabular storage \"${id}\" not found in registry`);\n }\n return repo;\n}\n\n// Register the repository resolver for format: \"storage:tabular\"\nregisterInputResolver(\"storage:tabular\", resolveRepositoryFromRegistry);\n\n// Register the compactor reverse map lookup by identity\nregisterInputCompactor(\"storage:tabular\", (value, _format, registry) => {\n const repos = registry.has(TABULAR_REPOSITORIES)\n ? registry.get(TABULAR_REPOSITORIES)\n : getGlobalTabularRepositories();\n\n for (const [id, repo] of repos) {\n if (repo === value) return id;\n }\n return undefined;\n});\n",
14
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n createServiceToken,\n globalServiceRegistry,\n registerInputCompactor,\n registerInputResolver,\n ServiceRegistry,\n} from \"@workglow/util\";\nimport { AnyTabularStorage } from \"./ITabularStorage\";\n\n/**\n * Service token for the tabular repository registry\n * Maps repository IDs to ITabularStorage instances\n */\nexport const TABULAR_REPOSITORIES = createServiceToken<Map<string, AnyTabularStorage>>(\n \"storage.tabular.repositories\"\n);\n\n/**\n * Gets the tabular repository map from the given registry (defaults to global).\n * Lazy-registers an empty map if absent keeps scoped registries isolated.\n */\nexport function getGlobalTabularRepositories(\n registry: ServiceRegistry = globalServiceRegistry\n): Map<string, AnyTabularStorage> {\n if (!registry.has(TABULAR_REPOSITORIES)) {\n registerTabularStorageDefaults(registry);\n }\n return registry.get(TABULAR_REPOSITORIES);\n}\n\n/**\n * Registers a tabular repository on the given registry by ID (defaults to global).\n */\nexport function registerTabularRepository(\n id: string,\n repository: AnyTabularStorage,\n registry: ServiceRegistry = globalServiceRegistry\n): void {\n const repos = getGlobalTabularRepositories(registry);\n repos.set(id, repository);\n}\n\n/**\n * Gets a tabular repository by ID from the given registry (defaults to global).\n * @returns The repository instance or undefined if not found\n */\nexport function getTabularRepository(\n id: string,\n registry: ServiceRegistry = globalServiceRegistry\n): AnyTabularStorage | undefined {\n return getGlobalTabularRepositories(registry).get(id);\n}\n\n/**\n * Resolves a repository ID to an instance from the registry.\n * Used by the input resolver system. Always reads from the supplied registry —\n * no fallback to global state, so scoped registries stay isolated.\n */\nfunction resolveRepositoryFromRegistry(\n id: string,\n _format: string,\n registry: ServiceRegistry\n): AnyTabularStorage {\n const repos = getGlobalTabularRepositories(registry);\n const repo = repos.get(id);\n if (!repo) {\n throw new Error(`Tabular storage \"${id}\" not found in registry`);\n }\n return repo;\n}\n\nfunction compactTabularRepository(\n value: unknown,\n _format: string,\n registry: ServiceRegistry\n): string | undefined {\n const repos = getGlobalTabularRepositories(registry);\n for (const [id, repo] of repos) {\n if (repo === value) return id;\n }\n return undefined;\n}\n\n/**\n * Registers the tabular storage default factory and the \"storage:tabular\" input resolver/compactor\n * on the given registry. Called by `bootstrapWorkglow` and `createOrchestrationContext`.\n */\nexport function registerTabularStorageDefaults(\n registry: ServiceRegistry = globalServiceRegistry\n): void {\n registry.registerIfAbsent(\n TABULAR_REPOSITORIES,\n (): Map<string, AnyTabularStorage> => new Map(),\n true\n );\n registerInputResolver(\"storage:tabular\", resolveRepositoryFromRegistry, registry);\n registerInputCompactor(\"storage:tabular\", compactTabularRepository, registry);\n}\n\n// Self-register on the global registry. Idempotent.\nregisterTabularStorageDefaults();\n",
15
15
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n DataPortSchemaObject,\n FromSchema,\n TypedArraySchemaOptions,\n} from \"@workglow/util/schema\";\nimport { traced } from \"@workglow/util\";\nimport type {\n AutoGeneratedKeys,\n CoveringIndexQueryOptions,\n DeleteSearchCriteria,\n InsertEntity,\n ITabularStorage,\n QueryOptions,\n SearchCriteria,\n SimplifyPrimaryKey,\n TabularChangePayload,\n TabularEventListener,\n TabularEventName,\n TabularEventParameters,\n TabularSubscribeOptions,\n} from \"./ITabularStorage\";\n\n/**\n * Telemetry wrapper for any ITabularStorage implementation.\n * Creates spans for all storage operations.\n */\nexport class TelemetryTabularStorage<\n Schema extends DataPortSchemaObject,\n PrimaryKeyNames extends ReadonlyArray<keyof Schema[\"properties\"]>,\n Entity = FromSchema<Schema, TypedArraySchemaOptions>,\n PrimaryKey = SimplifyPrimaryKey<Entity, PrimaryKeyNames>,\n InsertType = InsertEntity<Entity, AutoGeneratedKeys<Schema>>,\n> implements ITabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey, InsertType> {\n constructor(\n protected readonly storageName: string,\n protected readonly inner: ITabularStorage<\n Schema,\n PrimaryKeyNames,\n Entity,\n PrimaryKey,\n InsertType\n >\n ) {}\n\n put(value: InsertType): Promise<Entity> {\n return traced(\"workglow.storage.tabular.put\", this.storageName, () => this.inner.put(value));\n }\n\n putBulk(values: InsertType[]): Promise<Entity[]> {\n return traced(\"workglow.storage.tabular.putBulk\", this.storageName, () =>\n this.inner.putBulk(values)\n );\n }\n\n get(key: PrimaryKey): Promise<Entity | undefined> {\n return traced(\"workglow.storage.tabular.get\", this.storageName, () => this.inner.get(key));\n }\n\n delete(key: PrimaryKey | Entity): Promise<void> {\n return traced(\"workglow.storage.tabular.delete\", this.storageName, () =>\n this.inner.delete(key)\n );\n }\n\n getAll(options?: QueryOptions<Entity>): Promise<Entity[] | undefined> {\n return traced(\"workglow.storage.tabular.getAll\", this.storageName, () =>\n this.inner.getAll(options)\n );\n }\n\n deleteAll(): Promise<void> {\n return traced(\"workglow.storage.tabular.deleteAll\", this.storageName, () =>\n this.inner.deleteAll()\n );\n }\n\n size(): Promise<number> {\n return traced(\"workglow.storage.tabular.size\", this.storageName, () => this.inner.size());\n }\n\n count(criteria?: SearchCriteria<Entity>): Promise<number> {\n return traced(\"workglow.storage.tabular.count\", this.storageName, () =>\n this.inner.count(criteria)\n );\n }\n\n deleteSearch(criteria: DeleteSearchCriteria<Entity>): Promise<void> {\n return traced(\"workglow.storage.tabular.deleteSearch\", this.storageName, () =>\n this.inner.deleteSearch(criteria)\n );\n }\n\n getBulk(offset: number, limit: number): Promise<Entity[] | undefined> {\n return traced(\"workglow.storage.tabular.getBulk\", this.storageName, () =>\n this.inner.getBulk(offset, limit)\n );\n }\n\n query(\n criteria: SearchCriteria<Entity>,\n options?: QueryOptions<Entity>\n ): Promise<Entity[] | undefined> {\n return traced(\"workglow.storage.tabular.query\", this.storageName, () =>\n this.inner.query(criteria, options)\n );\n }\n\n queryIndex<K extends keyof Entity & string>(\n criteria: SearchCriteria<Entity>,\n options: CoveringIndexQueryOptions<Entity, K>\n ): Promise<Pick<Entity, K>[]> {\n return traced(\"workglow.storage.tabular.queryIndex\", this.storageName, () =>\n this.inner.queryIndex(criteria, options)\n );\n }\n\n // Forwarded directly (async generators, not worth tracing)\n records(pageSize?: number): AsyncGenerator<Entity, void, undefined> {\n return this.inner.records(pageSize);\n }\n\n pages(pageSize?: number): AsyncGenerator<Entity[], void, undefined> {\n return this.inner.pages(pageSize);\n }\n\n subscribeToChanges(\n callback: (change: TabularChangePayload<Entity>) => void,\n options?: TabularSubscribeOptions\n ): () => void {\n return this.inner.subscribeToChanges(callback, options);\n }\n\n setupDatabase(): Promise<void> {\n return this.inner.setupDatabase();\n }\n\n destroy(): void {\n return this.inner.destroy();\n }\n\n [Symbol.dispose](): void {\n return this.inner[Symbol.dispose]();\n }\n\n [Symbol.asyncDispose](): Promise<void> {\n return this.inner[Symbol.asyncDispose]();\n }\n\n // Event delegation — no telemetry needed\n on<Event extends TabularEventName>(\n name: Event,\n fn: TabularEventListener<Event, PrimaryKey, Entity>\n ): void {\n this.inner.on(name, fn);\n }\n\n off<Event extends TabularEventName>(\n name: Event,\n fn: TabularEventListener<Event, PrimaryKey, Entity>\n ): void {\n this.inner.off(name, fn);\n }\n\n emit<Event extends TabularEventName>(\n name: Event,\n ...args: TabularEventParameters<Event, PrimaryKey, Entity>\n ): void {\n this.inner.emit(name, ...args);\n }\n\n once<Event extends TabularEventName>(\n name: Event,\n fn: TabularEventListener<Event, PrimaryKey, Entity>\n ): void {\n this.inner.once(name, fn);\n }\n\n waitOn<Event extends TabularEventName>(\n name: Event\n ): Promise<TabularEventParameters<Event, PrimaryKey, Entity>> {\n return this.inner.waitOn(name);\n }\n}\n",
16
16
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DataPortSchemaObject } from \"@workglow/util/schema\";\nimport { EventParameters } from \"@workglow/util\";\nimport { JSONValue } from \"../tabular/ITabularStorage\";\n\n/**\n * Default schema types for simple string row data\n */\nexport const DefaultKeyValueSchema = {\n type: \"object\",\n properties: {\n key: { type: \"string\" },\n value: {},\n },\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\nexport const DefaultKeyValueKey = [\"key\"] as const;\n\n/**\n * Type definitions for kv repository events\n */\nexport type KvEventListeners<Key, Value, Combined> = {\n put: (key: Key, value: Value) => void;\n get: (key: Key, value: Value | undefined) => void;\n getAll: (results: Combined[] | undefined) => void;\n delete: (key: unknown) => void;\n deleteall: () => void;\n};\n\nexport type KvEventName = keyof KvEventListeners<any, any, any>;\nexport type KvEventListener<Event extends KvEventName, Key, Value, Combined> = KvEventListeners<\n Key,\n Value,\n Combined\n>[Event];\n\nexport type KvEventParameters<Event extends KvEventName, Key, Value, Combined> = EventParameters<\n KvEventListeners<Key, Value, Combined>,\n Event\n>;\n\n/**\n * Interface defining the contract for kv storage repositories.\n * Provides a flexible interface for storing and retrieving data with typed\n * primary keys and values, and supports compound keys and partial key lookup.\n *\n * @typeParam Key - Type for the primary key\n * @typeParam Value - Type for the value struct re\n * @typeParam Combined - Combined type of Key & Value\n */\nexport interface IKvStorage<\n Key extends string | number = string,\n Value extends any = any,\n Combined = { key: Key; value: Value },\n> {\n // Core methods\n put(key: Key, value: Value): Promise<void>;\n putBulk(items: Array<{ key: Key; value: Value }>): Promise<void>;\n get(key: Key): Promise<Value | undefined>;\n delete(key: Key): Promise<void>;\n getAll(): Promise<Combined[] | undefined>;\n deleteAll(): Promise<void>;\n size(): Promise<number>;\n\n getObjectAsIdString(object: JSONValue): Promise<string>;\n\n // Event handling methods\n on<Event extends KvEventName>(\n name: Event,\n fn: KvEventListener<Event, Key, Value, Combined>\n ): void;\n off<Event extends KvEventName>(\n name: Event,\n fn: KvEventListener<Event, Key, Value, Combined>\n ): void;\n emit<Event extends KvEventName>(\n name: Event,\n ...args: KvEventParameters<Event, Key, Value, Combined>\n ): void;\n once<Event extends KvEventName>(\n name: Event,\n fn: KvEventListener<Event, Key, Value, Combined>\n ): void;\n waitOn<Event extends KvEventName>(\n name: Event\n ): Promise<KvEventParameters<Event, Key, Value, Combined>>;\n}\n",
17
17
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { JsonSchema } from \"@workglow/util/schema\";\nimport { createServiceToken } from \"@workglow/util\";\nimport { InMemoryTabularStorage } from \"../tabular/InMemoryTabularStorage\";\nimport { DefaultKeyValueKey, DefaultKeyValueSchema, IKvStorage } from \"./IKvStorage\";\nimport { KvViaTabularStorage } from \"./KvViaTabularStorage\";\n\nexport const MEMORY_KV_REPOSITORY = createServiceToken<IKvStorage<string, any, any>>(\n \"storage.kvRepository.inMemory\"\n);\n\n/**\n * An in-memory key-value repository implementation for fast, ephemeral storage.\n * Uses a tabular repository abstraction for in-memory persistence.\n *\n * @template Key - The type of the primary key\n * @template Value - The type of the value being stored\n * @template Combined - Combined type of Key & Value\n */\nexport class InMemoryKvStorage extends KvViaTabularStorage {\n public tabularRepository: InMemoryTabularStorage<\n typeof DefaultKeyValueSchema,\n typeof DefaultKeyValueKey\n >;\n\n /**\n * Creates a new KvStorage instance\n */\n constructor(keySchema: JsonSchema = { type: \"string\" }, valueSchema: JsonSchema = {}) {\n super(keySchema, valueSchema);\n this.tabularRepository = new InMemoryTabularStorage(DefaultKeyValueSchema, DefaultKeyValueKey);\n }\n}\n",
@@ -30,7 +30,7 @@
30
30
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { JsonSchema } from \"@workglow/util/schema\";\nimport { createServiceToken } from \"@workglow/util\";\nimport { mkdir, readFile, rm, unlink, writeFile } from \"fs/promises\";\nimport path from \"path\";\nimport { IKvStorage } from \"./IKvStorage\";\nimport { KvStorage } from \"./KvStorage\";\n\nexport const FS_FOLDER_KV_REPOSITORY = createServiceToken<IKvStorage<string, any, any>>(\n \"storage.kvRepository.fsFolder\"\n);\n\n/**\n * A key-value repository implementation that stores each value as a file in a specified folder.\n * Uses the file system for persistence, with each key mapped to a file path.\n *\n * @template Key - The type of the primary key\n * @template Value - The type of the value being stored\n * @template Combined - Combined type of Key & Value\n */\nexport class FsFolderKvStorage<\n Key extends string = string,\n Value extends any = any,\n Combined = { key: Key; value: Value },\n> extends KvStorage<Key, Value, Combined> {\n /**\n * Creates a new KvStorage instance\n */\n constructor(\n public folderPath: string,\n public pathWriter: (key: Key) => string,\n keySchema: JsonSchema = { type: \"string\" },\n valueSchema: JsonSchema = { contentEncoding: \"blob\" }\n ) {\n super(keySchema, valueSchema);\n }\n\n /**\n * Sets up the directory for the repository (creates directory)\n */\n private async setupDirectory(): Promise<void> {\n try {\n await mkdir(this.folderPath, { recursive: true });\n } catch (error) {\n // CI system sometimes has issues temporarily\n await new Promise((resolve) => setTimeout(resolve, 0));\n try {\n await mkdir(this.folderPath, { recursive: true });\n } catch {\n // Ignore error if directory already exists\n }\n }\n }\n\n /**\n * Stores a row in the repository.\n * @param key - The primary key\n * @param value - The value to store\n */\n public async put(key: Key, value: Value): Promise<void> {\n const localPath = path.join(this.folderPath, this.pathWriter(key).replaceAll(\"..\", \"_\"));\n\n let content: string;\n const schemaType =\n typeof this.valueSchema === \"object\" &&\n this.valueSchema !== null &&\n \"type\" in this.valueSchema\n ? this.valueSchema.type\n : undefined;\n if (value === null) {\n content = \"\";\n } else if (schemaType === \"object\") {\n content = JSON.stringify(value);\n } else if (typeof value === \"object\") {\n // Handle 'json' type schema from tests\n content = JSON.stringify(value);\n } else {\n content = String(value);\n }\n\n await mkdir(path.dirname(localPath), { recursive: true });\n await writeFile(localPath, content);\n }\n\n /**\n * Stores multiple rows in the repository in a bulk operation.\n * @param items - Array of key-value pairs to store\n */\n public async putBulk(items: Array<{ key: Key; value: Value }>): Promise<void> {\n await this.setupDirectory();\n await Promise.all(items.map(async ({ key, value }) => this.put(key, value)));\n }\n\n /**\n * Retrieves a value by its key.\n * This is a convenience method that automatically converts simple types to structured format if using default schema.\n *\n * @param key - Primary key to look up (basic key like default schema)\n * @returns The stored value or undefined if not found\n */\n public async get(key: Key): Promise<Value | undefined> {\n const localPath = path.join(this.folderPath, this.pathWriter(key).replaceAll(\"..\", \"_\"));\n const typeDef = this.valueSchema;\n try {\n const encoding =\n typeof typeDef === \"object\" &&\n typeDef !== null &&\n \"contentEncoding\" in typeDef &&\n typeDef.contentEncoding === \"blob\"\n ? \"binary\"\n : \"utf-8\";\n const content = (await readFile(localPath, { encoding })).toString().trim();\n\n if (encoding === \"utf-8\") {\n const schemaType =\n typeof typeDef === \"object\" && typeDef !== null && \"type\" in typeDef\n ? typeDef.type\n : undefined;\n if (\n schemaType === \"object\" ||\n (content.startsWith(\"{\") && content.endsWith(\"}\")) ||\n (content.startsWith(\"[\") && content.endsWith(\"]\"))\n ) {\n try {\n return JSON.parse(content) as Value;\n } catch (e) {\n // If JSON parsing fails, return as string\n return content as unknown as Value;\n }\n }\n }\n\n return content as unknown as Value;\n } catch (error) {\n return undefined;\n }\n }\n\n /**\n * Deletes a row from the repository.\n * @param key - The primary key of the row to delete\n */\n public async delete(key: Key): Promise<void> {\n const localPath = path.join(this.folderPath, this.pathWriter(key).replaceAll(\"..\", \"_\"));\n await unlink(localPath);\n }\n\n /**\n * Retrieves all rows from the repository.\n * @returns An array of all rows in the repository or undefined if empty\n */\n public async getAll(): Promise<Combined[] | undefined> {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Deletes all rows from the repository.\n */\n public async deleteAll(): Promise<void> {\n const localPath = path.join(this.folderPath);\n await rm(localPath, { recursive: true });\n }\n\n /**\n * Retrieves the number of rows in the repository.\n * @returns The number of rows in the repository\n */\n public async size(): Promise<number> {\n throw new Error(\"Not implemented\");\n }\n}\n",
31
31
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DataPortSchemaObject, FromSchema, TypedArraySchemaOptions } from \"@workglow/util/schema\";\nimport { createServiceToken } from \"@workglow/util\";\nimport { BaseTabularStorage, ClientProvidedKeysOption } from \"./BaseTabularStorage\";\nimport {\n AnyTabularStorage,\n AutoGeneratedKeys,\n CoveringIndexQueryOptions,\n DeleteSearchCriteria,\n InsertEntity,\n QueryOptions,\n SearchCriteria,\n SimplifyPrimaryKey,\n TabularSubscribeOptions,\n} from \"./ITabularStorage\";\nimport { InMemoryTabularStorage } from \"./InMemoryTabularStorage\";\n\nexport const SHARED_IN_MEMORY_TABULAR_REPOSITORY = createServiceToken<AnyTabularStorage>(\n \"storage.tabularRepository.sharedInMemory\"\n);\n\nconst SYNC_TIMEOUT = 1000;\nconst MAX_PENDING_MESSAGES = 1000;\n\n/**\n * Message types for BroadcastChannel communication\n */\ntype BroadcastMessage =\n | { type: \"SYNC_REQUEST\" }\n | { type: \"SYNC_RESPONSE\"; data: any[] }\n | { type: \"PUT\"; entity: any }\n | { type: \"PUT_BULK\"; entities: any[] }\n | { type: \"DELETE\"; key: any }\n | { type: \"DELETE_ALL\" }\n | { type: \"DELETE_SEARCH\"; criteria: DeleteSearchCriteria<any> };\n\n/**\n * A tabular repository implementation that shares data across browser tabs/windows\n * using BroadcastChannel API. Uses InMemoryTabularStorage internally and\n * synchronizes changes across all instances.\n *\n * @template Schema - The schema definition for the entity using JSON Schema\n * @template PrimaryKeyNames - Array of property names that form the primary key\n */\nexport class SharedInMemoryTabularStorage<\n Schema extends DataPortSchemaObject,\n PrimaryKeyNames extends ReadonlyArray<keyof Schema[\"properties\"]>,\n // computed types\n Entity = FromSchema<Schema, TypedArraySchemaOptions>,\n PrimaryKey = SimplifyPrimaryKey<Entity, PrimaryKeyNames>,\n Value = Omit<Entity, PrimaryKeyNames[number] & keyof Entity>,\n InsertType extends InsertEntity<Entity, AutoGeneratedKeys<Schema>> = InsertEntity<\n Entity,\n AutoGeneratedKeys<Schema>\n >,\n> extends BaseTabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey, Value, InsertType> {\n private channel: BroadcastChannel | null = null;\n private channelName: string;\n private inMemoryRepo: InMemoryTabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey>;\n private isInitialized = false;\n private syncInProgress = false;\n private pendingMessages: BroadcastMessage[] = [];\n\n /**\n * Creates a new SharedInMemoryTabularStorage instance\n * @param channelName - Unique name for the BroadcastChannel (defaults to \"tabular_store\")\n * @param schema - Schema defining the structure of the entity\n * @param primaryKeyNames - Array of property names that form the primary key\n * @param indexes - Array of columns or column arrays to make searchable. Each string or single column creates a single-column index,\n * while each array creates a compound index with columns in the specified order.\n * @param clientProvidedKeys - How to handle client-provided values for auto-generated keys\n */\n constructor(\n channelName: string = \"tabular_store\",\n schema: Schema,\n primaryKeyNames: PrimaryKeyNames,\n indexes: readonly (keyof NoInfer<Entity> | readonly (keyof NoInfer<Entity>)[])[] = [],\n clientProvidedKeys: ClientProvidedKeysOption = \"if-missing\"\n ) {\n super(schema, primaryKeyNames, indexes, clientProvidedKeys);\n this.channelName = channelName;\n this.inMemoryRepo = new InMemoryTabularStorage<Schema, PrimaryKeyNames, Entity, PrimaryKey>(\n schema,\n primaryKeyNames,\n indexes,\n clientProvidedKeys\n );\n\n this.setupEventForwarding();\n\n this.initializeBroadcastChannel();\n }\n\n /**\n * Checks if BroadcastChannel is available in the current environment\n */\n private isBroadcastChannelAvailable(): boolean {\n return typeof BroadcastChannel !== \"undefined\";\n }\n\n /**\n * Initializes the BroadcastChannel and sets up message handlers\n */\n private initializeBroadcastChannel(): void {\n if (!this.isBroadcastChannelAvailable()) {\n console.warn(\"BroadcastChannel is not available. Tab synchronization will not work.\");\n return;\n }\n\n try {\n this.channel = new BroadcastChannel(this.channelName);\n this.channel.onmessage = (event: MessageEvent<BroadcastMessage>) => {\n this.handleBroadcastMessage(event.data);\n };\n\n // Request sync from other tabs on initialization\n this.syncFromOtherTabs();\n } catch (error) {\n console.error(\"Failed to initialize BroadcastChannel:\", error);\n }\n }\n\n /**\n * Sets up event forwarding from the internal InMemoryTabularStorage\n */\n private setupEventForwarding(): void {\n this.inMemoryRepo.on(\"put\", (entity) => {\n this.events.emit(\"put\", entity);\n });\n this.inMemoryRepo.on(\"get\", (key, entity) => {\n this.events.emit(\"get\", key, entity);\n });\n this.inMemoryRepo.on(\"query\", (key, entities) => {\n this.events.emit(\"query\", key, entities);\n });\n this.inMemoryRepo.on(\"delete\", (key) => {\n this.events.emit(\"delete\", key);\n });\n this.inMemoryRepo.on(\"clearall\", () => {\n this.events.emit(\"clearall\");\n });\n }\n\n /**\n * Handles incoming BroadcastChannel messages\n */\n private async handleBroadcastMessage(message: BroadcastMessage): Promise<void> {\n if (this.syncInProgress && message.type !== \"SYNC_RESPONSE\") {\n // Queue messages during sync to replay after sync completes\n if (this.pendingMessages.length < MAX_PENDING_MESSAGES) {\n this.pendingMessages.push(message);\n }\n return;\n }\n\n switch (message.type) {\n case \"SYNC_REQUEST\":\n // Respond to sync request with current data\n const all = await this.inMemoryRepo.getAll();\n if (this.channel && all) {\n this.channel.postMessage({\n type: \"SYNC_RESPONSE\",\n data: all,\n } as BroadcastMessage);\n }\n break;\n\n case \"SYNC_RESPONSE\":\n // Copy data from the responding tab\n if (message.data && Array.isArray(message.data)) {\n await this.copyDataFromArray(message.data);\n }\n this.syncInProgress = false;\n await this.drainPendingMessages();\n break;\n\n case \"PUT\":\n // Apply put from another tab\n await this.inMemoryRepo.put(message.entity);\n break;\n\n case \"PUT_BULK\":\n // Apply bulk put from another tab\n await this.inMemoryRepo.putBulk(message.entities);\n break;\n\n case \"DELETE\":\n // Apply delete from another tab\n await this.inMemoryRepo.delete(message.key);\n break;\n\n case \"DELETE_ALL\":\n // Apply deleteAll from another tab\n await this.inMemoryRepo.deleteAll();\n break;\n\n case \"DELETE_SEARCH\":\n // Apply deleteSearch from another tab\n await this.inMemoryRepo.deleteSearch(message.criteria as DeleteSearchCriteria<Entity>);\n break;\n }\n }\n\n /**\n * Drains pending messages that were queued during sync.\n * Uses a while loop to handle messages that may be re-queued during draining\n * (e.g., if a replayed message triggers a new sync cycle).\n */\n private async drainPendingMessages(): Promise<void> {\n while (!this.syncInProgress && this.pendingMessages.length > 0) {\n const messages = this.pendingMessages;\n this.pendingMessages = [];\n for (const message of messages) {\n await this.handleBroadcastMessage(message);\n if (this.syncInProgress) {\n break;\n }\n }\n }\n }\n\n /**\n * Requests synchronization from other tabs\n */\n private syncFromOtherTabs(): void {\n if (!this.channel) return;\n\n this.syncInProgress = true;\n this.channel.postMessage({ type: \"SYNC_REQUEST\" } as BroadcastMessage);\n\n // Set a timeout to stop waiting for sync response\n setTimeout(() => {\n if (this.syncInProgress) {\n this.syncInProgress = false;\n void this.drainPendingMessages().catch((error) => {\n console.error(\"Failed to drain pending messages after sync timeout\", error);\n });\n }\n }, SYNC_TIMEOUT);\n }\n\n /**\n * Copies data from an array of entities into the repository\n */\n private async copyDataFromArray(entities: Entity[]): Promise<void> {\n if (entities.length === 0) return;\n\n // Clear existing data\n await this.inMemoryRepo.deleteAll();\n\n // Bulk insert the new data\n await this.inMemoryRepo.putBulk(entities);\n }\n\n /**\n * Broadcasts a message to other tabs\n */\n private broadcast(message: BroadcastMessage): void {\n if (this.channel) {\n this.channel.postMessage(message);\n }\n }\n\n /**\n * Sets up the database for the repository (syncs from other tabs)\n */\n public override async setupDatabase(): Promise<void> {\n if (this.isInitialized) return;\n this.isInitialized = true;\n await this.syncFromOtherTabs();\n }\n\n /**\n * Stores a key-value pair in the repository\n * @param value - The combined object to store\n * @returns The stored entity\n * @emits 'put' event with the stored entity when successful\n */\n public async put(value: InsertType): Promise<Entity> {\n const result = await this.inMemoryRepo.put(value);\n this.broadcast({ type: \"PUT\", entity: result });\n return result;\n }\n\n /**\n * Stores multiple key-value pairs in the repository in a bulk operation\n * @param values - Array of combined objects to store\n * @returns Array of stored entities\n * @emits 'put' event for each value stored\n */\n public async putBulk(values: InsertType[]): Promise<Entity[]> {\n const result = await this.inMemoryRepo.putBulk(values);\n this.broadcast({ type: \"PUT_BULK\", entities: result });\n return result;\n }\n\n /**\n * Retrieves a value by its key\n * @param key - The primary key object to look up\n * @returns The value object if found, undefined otherwise\n * @emits 'get' event with the fingerprint ID and value when found\n */\n async get(key: PrimaryKey): Promise<Entity | undefined> {\n return await this.inMemoryRepo.get(key);\n }\n\n /**\n * Deletes an entry by its key\n * @param value - The primary key object or entity of the entry to delete\n * @emits 'delete' event with the fingerprint ID when successful\n */\n async delete(value: PrimaryKey | Entity): Promise<void> {\n await this.inMemoryRepo.delete(value);\n const { key } = this.separateKeyValueFromCombined(value as Entity);\n this.broadcast({ type: \"DELETE\", key });\n }\n\n /**\n * Removes all entries from the repository\n * @emits 'clearall' event when successful\n */\n async deleteAll(): Promise<void> {\n await this.inMemoryRepo.deleteAll();\n this.broadcast({ type: \"DELETE_ALL\" });\n }\n\n /**\n * Returns an array of all entries in the repository, with optional ordering, offset, and limit.\n * @param options - Optional ordering, limit, and offset options\n * @returns Array of all entries in the repository\n */\n async getAll(options?: QueryOptions<Entity>): Promise<Entity[] | undefined> {\n return await this.inMemoryRepo.getAll(options);\n }\n\n /**\n * Returns the number of entries in the repository\n * @returns The total count of stored entries\n */\n async size(): Promise<number> {\n return await this.inMemoryRepo.size();\n }\n\n /**\n * Fetches a page of records from the repository.\n * @param offset - Number of records to skip\n * @param limit - Maximum number of records to return\n * @returns Array of entities or undefined if no records found\n */\n async getBulk(offset: number, limit: number): Promise<Entity[] | undefined> {\n return await this.inMemoryRepo.getBulk(offset, limit);\n }\n\n /**\n * Queries entries matching the specified search criteria with optional ordering and limit.\n *\n * @param criteria - Object with column names as keys and values or SearchConditions\n * @param options - Optional ordering and limit options\n * @returns Array of matching entities or undefined if no matches found\n */\n async query(\n criteria: SearchCriteria<Entity>,\n options?: QueryOptions<Entity>\n ): Promise<Entity[] | undefined> {\n return await this.inMemoryRepo.query(criteria, options);\n }\n\n override async queryIndex<K extends keyof Entity & string>(\n criteria: SearchCriteria<Entity>,\n options: CoveringIndexQueryOptions<Entity, K>\n ): Promise<Pick<Entity, K>[]> {\n return await this.inMemoryRepo.queryIndex(criteria, options);\n }\n\n /**\n * Deletes all entries matching the specified search criteria.\n * Supports multiple columns with optional comparison operators.\n *\n * @param criteria - Object with column names as keys and values or SearchConditions\n */\n async deleteSearch(criteria: DeleteSearchCriteria<Entity>): Promise<void> {\n await this.inMemoryRepo.deleteSearch(criteria);\n this.broadcast({\n type: \"DELETE_SEARCH\",\n criteria,\n });\n }\n\n /**\n * Subscribes to changes in the repository.\n * Delegates to the internal InMemoryTabularStorage which monitors local changes.\n * Changes from other tabs/windows are already propagated via BroadcastChannel.\n *\n * @param callback - Function called when a change occurs\n * @param options - Optional subscription options (not used for in-memory)\n * @returns Unsubscribe function\n */\n public override subscribeToChanges(\n callback: (change: any) => void,\n options?: TabularSubscribeOptions\n ): () => void {\n return this.inMemoryRepo.subscribeToChanges(callback, options);\n }\n\n /**\n * Cleanup method to close the BroadcastChannel\n */\n public override destroy(): void {\n if (this.channel) {\n this.channel.close();\n this.channel = null;\n }\n this.inMemoryRepo.destroy();\n }\n}\n"
32
32
  ],
33
- "mappings": "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",
34
- "debugId": "C90CE55156F0F23964756E2164756E21",
33
+ "mappings": "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",
34
+ "debugId": "A2157FD3C05FBDFD64756E2164756E21",
35
35
  "names": []
36
36
  }