@deephaven/pouch-storage 0.51.0 → 0.51.1-alpha-theme-fix.1

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.
@@ -2,7 +2,7 @@
2
2
  /// <reference types="pouchdb-core" />
3
3
  /// <reference types="pouchdb-mapreduce" />
4
4
  /// <reference types="pouchdb-replication" />
5
- import { FilterConfig, SortConfig, StorageItem, StorageTable, StorageListenerRemover, StorageTableViewport, StorageItemListener, StorageSnapshot, ViewportData, ViewportUpdateCallback } from '@deephaven/storage';
5
+ import { FilterConfig, SortConfig, StorageItem, StorageTable, StorageListenerRemover, StorageTableViewport, StorageItemListener, StorageSnapshot, ViewportData, ViewportUpdateCallback, IndexRange } from '@deephaven/storage';
6
6
  export interface PouchStorageItem {
7
7
  _id?: string;
8
8
  }
@@ -58,7 +58,7 @@ export declare class PouchStorageTable<T extends StorageItem = StorageItem> impl
58
58
  protected fetchViewportData(viewport: StorageTableViewport, selector: PouchDB.Find.Selector, sort: PouchDBSort): Promise<ViewportData<T>>;
59
59
  private refreshData;
60
60
  refreshItem(id: string): Promise<T | undefined>;
61
- getSnapshot(sortedRanges: [number, number][]): Promise<StorageSnapshot<T>>;
61
+ getSnapshot(sortedRanges: IndexRange[]): Promise<StorageSnapshot<T>>;
62
62
  }
63
63
  export default PouchStorageTable;
64
64
  //# sourceMappingURL=PouchStorageTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PouchStorageTable.d.ts","sourceRoot":"","sources":["../src/PouchStorageTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PouchStorageTable.d.ts","sourceRoot":"","sources":["../src/PouchStorageTable.ts"],"names":[],"mappings":";;;;AAOA,OAAO,EACL,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,CAC7B,MAAM,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;CAAE,CAChD,CAAC;AAiGF,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAChE,YAAW,YAAY,CAAC,CAAC,CAAC;IAE1B,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAErD,OAAO,CAAC,SAAS,CAAmC;IAEpD,OAAO,CAAC,aAAa,CAAoD;IAEzE,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,eAAe,CAAC,CAAuB;IAE/C,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,iBAAiB,CAAC,CAExB;IAEF,OAAO,CAAC,qBAAqB,CAAC,CAAqC;IAEnE,OAAO,CAAC,mBAAmB,CAAC,CAAkB;gBAG5C,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,qBAAqB;IAkBzD;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAMxB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB;IAOrE,YAAY,CACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,sBAAsB;IAsBzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,oBAAoB,GAAG,SAAS,CAE/C;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQpC,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;IAQ7D,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,IAAI;IAQ3C,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI;IAU/C,IAAI,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtC;IAEK,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAS3C,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa9B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,cAAc;IAStB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI;IAYtE;;;OAGG;cACa,SAAS,CACvB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,GAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;YAO7C,WAAW;IAqBzB;;;;;OAKG;cACa,iBAAiB,CAC/B,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAC/B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAeb,WAAW;IA8BnB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAe/C,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CA2B3E;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PouchStorageTable.js","names":["PouchDB","PouchDBFind","Operator","FilterOperator","Type","FilterType","Log","PromiseUtils","log","module","DB_PREFIX","plugin","makePouchFilter","type","value","in","contains","$regex","RegExp","concat","inIgnoreCase","eq","$eq","notEq","$neq","greaterThan","$gt","greaterThanOrEqualTo","$gte","lessThan","$lt","lessThanOrEqualTo","$lte","startsWith","Error","makePouchSelectorFromConfig","config","filterItems","filterOperators","filter","i","length","filterItem","columnName","newFilter","filterOperator","and","$and","or","$or","selectorWithFilters","filters","arguments","undefined","map","name","id","sortWithConfigs","sorts","_sorts$map","reverse","sort","column","direction","PouchStorageTable","constructor","databaseName","dbOptions","_defineProperty","Map","db","_remote","listenForChanges","createIndex","index","fields","refreshInfo","changes","live","since","include_docs","on","dbUpdate","bind","onUpdate","callback","listeners","other","onItemUpdate","listener","itemListeners","has","set","get","refreshItem","close","size","currentSize","viewport","currentViewport","setReversed","reversed","currentReverse","currentViewportData","refreshData","setViewport","setSorts","currentSort","setFilters","currentFilter","data","getViewportData","_this","_asyncToGenerator","_this$viewportUpdateP","viewportUpdatePromise","Promise","resolve","items","offset","put","item","_this2","newItem","_objectSpread","_id","sendUpdate","_this$currentViewport","sendItemUpdate","event","debug","doc","fetchInfo","selector","_this3","find","_this4","_this4$infoUpdateProm","_this4$currentFilter","infoUpdatePromise","cancel","makeCancelable","findResult","docs","e","isCanceled","error","fetchViewportData","_this5","skip","top","limit","bottom","then","_this6","_this6$currentFilter","_this6$viewportUpdate","viewportData","_this7","getSnapshot","sortedRanges","_this8","itemMap","all","_ref2","_ref","_this8$currentFilter","from","to","findSnapshotResult","_x","apply"],"sources":["../src/PouchStorageTable.ts"],"sourcesContent":["import PouchDB from 'pouchdb-browser';\nimport PouchDBFind from 'pouchdb-find';\nimport {\n Operator as FilterOperator,\n Type as FilterType,\n} from '@deephaven/filters';\nimport Log from '@deephaven/log';\nimport {\n FilterConfig,\n FilterValue,\n SortConfig,\n StorageItem,\n StorageTable,\n StorageListenerRemover,\n StorageTableViewport,\n StorageItemListener,\n StorageSnapshot,\n ViewportData,\n ViewportUpdateCallback,\n} from '@deephaven/storage';\nimport { CancelablePromise, OnlyOneProp, PromiseUtils } from '@deephaven/utils';\n\nconst log = Log.module('PouchStorageTable');\n\nconst DB_PREFIX = 'Deephaven.';\n\nPouchDB.plugin(PouchDBFind);\n\nexport interface PouchStorageItem {\n _id?: string;\n}\n\nexport type PouchDBSort = Array<\n string | { [propName: string]: 'asc' | 'desc' }\n>;\n\n// We may want to use `PouchDB.Find.ConditionOperators` instead of this, but\n// there are some mismatches in how we use this with the types.\n// https://github.com/deephaven/web-client-ui/issues/1505 to address this\ntype PouchFilter = OnlyOneProp<{\n $eq: FilterValue | FilterValue[];\n $neq: FilterValue | FilterValue[];\n $gt: FilterValue | FilterValue[];\n $gte: FilterValue | FilterValue[];\n $lt: FilterValue | FilterValue[];\n $lte: FilterValue | FilterValue[];\n $regex: RegExp;\n}>;\n\nfunction makePouchFilter(\n type: string,\n value: FilterValue | FilterValue[]\n): PouchFilter {\n switch (type) {\n case FilterType.in:\n case FilterType.contains:\n return { $regex: new RegExp(`${value}`) };\n case FilterType.inIgnoreCase:\n return { $regex: new RegExp(`${value}`, 'i') };\n case FilterType.eq:\n return { $eq: value };\n case FilterType.notEq:\n // This should be `$ne` https://github.com/deephaven/web-client-ui/issues/1505\n return { $neq: value };\n case FilterType.greaterThan:\n return { $gt: value };\n case FilterType.greaterThanOrEqualTo:\n return { $gte: value };\n case FilterType.lessThan:\n return { $lt: value };\n case FilterType.lessThanOrEqualTo:\n return { $lte: value };\n case FilterType.startsWith:\n return { $regex: new RegExp(`^(?${value}).*`) };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n\nfunction makePouchSelectorFromConfig(\n config: FilterConfig\n): PouchDB.Find.Selector {\n const { filterItems, filterOperators } = config;\n let filter = null;\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { columnName, type, value } = filterItem;\n const newFilter = { [columnName]: makePouchFilter(type, value) };\n if (i === 0) {\n filter = newFilter;\n } else if (filter !== null && i - 1 < filterOperators.length) {\n const filterOperator = filterOperators[i - 1];\n if (filterOperator === FilterOperator.and) {\n filter = { $and: [filter, newFilter] };\n } else if (filterOperator === FilterOperator.or) {\n filter = { $or: [filter, newFilter] };\n } else {\n throw new Error(\n `Unexpected filter operator ${filterOperator}, ${newFilter}`\n );\n }\n }\n }\n if (filter == null) {\n throw new Error(`Invalid filter config ${config}`);\n }\n return filter;\n}\n\nfunction selectorWithFilters(\n filters: FilterConfig[] = []\n): PouchDB.Find.Selector {\n return {\n $and: [\n ...filters.map(filter => makePouchSelectorFromConfig(filter)),\n { name: { $gt: null } },\n { id: { $gt: null } },\n ],\n };\n}\n\nfunction sortWithConfigs(\n sorts: SortConfig[] | null,\n reverse = false\n): PouchDBSort {\n return [\n { id: reverse ? 'desc' : 'asc' },\n ...(sorts?.map(sort => ({ [sort.column]: sort.direction })) ?? []),\n ];\n}\n\nexport class PouchStorageTable<T extends StorageItem = StorageItem>\n implements StorageTable<T>\n{\n protected db: PouchDB.Database<T & PouchStorageItem>;\n\n changes?: PouchDB.Core.Changes<T & PouchStorageItem>;\n\n private listeners: ViewportUpdateCallback<T>[] = [];\n\n private itemListeners: Map<string, StorageItemListener<T>[]> = new Map();\n\n private currentSize = 0;\n\n private currentViewport?: StorageTableViewport;\n\n private currentReverse = false;\n\n private currentFilter: FilterConfig[] | null = null;\n\n private currentSort: SortConfig[] | null = null;\n\n private infoUpdatePromise?: CancelablePromise<\n PouchDB.Find.FindResponse<T & PouchStorageItem>\n >;\n\n private viewportUpdatePromise?: CancelablePromise<ViewportData<T>>;\n\n private currentViewportData?: ViewportData<T>;\n\n constructor(\n databaseName: string,\n dbOptions?: PouchDB.Configuration.DatabaseConfiguration\n ) {\n this.db = new PouchDB<T & PouchStorageItem>(\n `${DB_PREFIX}${databaseName}`,\n dbOptions\n );\n\n // Need to set `_remote` to false to remove deprecation warnings: https://github.com/pouchdb/pouchdb/issues/6106\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, no-underscore-dangle\n (this.db as any)._remote = false;\n\n this.listenForChanges();\n\n this.db.createIndex({ index: { fields: ['id', 'name'] } });\n\n this.refreshInfo();\n }\n\n /**\n * Listen for db changes. This can be cancelled by calling\n * `this.changes?.cancel()`\n */\n listenForChanges(): void {\n this.changes = this.db\n .changes({ live: true, since: 'now', include_docs: true })\n .on('change', this.dbUpdate.bind(this));\n }\n\n onUpdate(callback: ViewportUpdateCallback<T>): StorageListenerRemover {\n this.listeners = [...this.listeners, callback];\n return () => {\n this.listeners = this.listeners.filter(other => other !== callback);\n };\n }\n\n onItemUpdate(\n id: string,\n listener: StorageItemListener<T>\n ): StorageListenerRemover {\n if (!this.itemListeners.has(id)) {\n this.itemListeners.set(id, []);\n }\n\n this.itemListeners.set(id, [\n ...(this.itemListeners.get(id) as StorageItemListener<T>[]),\n listener,\n ]);\n\n this.refreshItem(id);\n\n return () => {\n this.itemListeners.set(\n id,\n (this.itemListeners.get(id) as StorageItemListener<T>[]).filter(\n other => other !== listener\n )\n );\n };\n }\n\n close(): void {\n this.listeners = [];\n }\n\n get size(): number {\n return this.currentSize;\n }\n\n get viewport(): StorageTableViewport | undefined {\n return this.currentViewport;\n }\n\n setReversed(reversed: boolean): void {\n this.currentReverse = reversed;\n\n this.currentViewportData = undefined;\n\n this.refreshData();\n }\n\n setViewport(viewport: StorageTableViewport | undefined): void {\n this.currentViewport = viewport;\n\n this.refreshInfo();\n\n this.refreshData();\n }\n\n setSorts(config: SortConfig[] | null): void {\n this.currentSort = config;\n\n this.currentViewportData = undefined;\n\n this.refreshData();\n }\n\n setFilters(config: FilterConfig[] | null): void {\n this.currentFilter = config;\n\n this.currentViewportData = undefined;\n\n this.refreshInfo();\n\n this.refreshData();\n }\n\n get data(): ViewportData<T> | undefined {\n return this.currentViewportData;\n }\n\n async getViewportData(): Promise<ViewportData<T>> {\n if (!this.viewportUpdatePromise) {\n this.refreshData();\n }\n return (\n this.viewportUpdatePromise ?? Promise.resolve({ items: [], offset: 0 })\n );\n }\n\n async put(item: T): Promise<T> {\n // Put the item ID in both the _id and the id slot\n // PouchDB uses _id everywhere, StorageTable just uses `id` though\n const newItem = {\n ...item,\n _id: item.id,\n } as T;\n\n await this.db.put(newItem);\n\n return newItem;\n }\n\n private sendUpdate(): void {\n // Retain a reference to it in case a listener gets removed while sending an update\n const { listeners } = this;\n const data = this.currentViewportData ?? { items: [], offset: 0 };\n for (let i = 0; i < listeners.length; i += 1) {\n listeners[i](data);\n }\n }\n\n private sendItemUpdate(item: T): void {\n const listeners = this.itemListeners.get(item.id);\n if (listeners !== undefined) {\n for (let i = 0; i < listeners.length; i += 1) {\n listeners[i](item);\n }\n }\n }\n\n protected dbUpdate(event: PouchDB.Core.ChangesResponseChange<T>): void {\n log.debug('Update received', event);\n\n this.refreshInfo();\n\n if (event.doc !== undefined) {\n this.sendItemUpdate(event.doc);\n }\n\n this.refreshData();\n }\n\n /**\n * Fetch infor for a given selector.\n * @param selector\n */\n protected async fetchInfo(\n selector: PouchDB.Find.Selector\n ): Promise<PouchDB.Find.FindResponse<T & PouchStorageItem>> {\n return this.db.find({\n selector,\n fields: [],\n });\n }\n\n private async refreshInfo(): Promise<void> {\n try {\n this.infoUpdatePromise?.cancel();\n\n this.infoUpdatePromise = PromiseUtils.makeCancelable(\n this.fetchInfo(selectorWithFilters(this.currentFilter ?? []))\n );\n\n const findResult = await this.infoUpdatePromise;\n\n this.currentSize = findResult.docs.length;\n\n this.sendUpdate();\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to refreshInfo', e);\n throw e;\n }\n }\n }\n\n /**\n * Fetch data for the given viewport, selector, and sort.\n * @param viewport\n * @param selector\n * @param sort\n */\n protected async fetchViewportData(\n viewport: StorageTableViewport,\n selector: PouchDB.Find.Selector,\n sort: PouchDBSort\n ): Promise<ViewportData<T>> {\n return this.db\n .find({\n selector,\n skip: viewport.top,\n limit: viewport.bottom - viewport.top + 1,\n sort,\n fields: ['id', 'name'],\n })\n .then(findResult => ({\n items: findResult.docs,\n offset: viewport.top,\n }));\n }\n\n private async refreshData(): Promise<ViewportData<T> | undefined> {\n if (!this.currentViewport) {\n return;\n }\n\n try {\n const selector = selectorWithFilters(this.currentFilter ?? []);\n const sort = sortWithConfigs(this.currentSort, this.currentReverse);\n\n this.viewportUpdatePromise?.cancel();\n\n this.viewportUpdatePromise = PromiseUtils.makeCancelable(\n this.fetchViewportData(this.currentViewport, selector, sort)\n );\n\n const viewportData = await this.viewportUpdatePromise;\n\n this.currentViewportData = viewportData;\n\n this.sendUpdate();\n\n return viewportData;\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to refreshData', e);\n throw e;\n }\n }\n }\n\n async refreshItem(id: string): Promise<T | undefined> {\n const findResult = await this.db.find({\n selector: { id },\n limit: 1,\n });\n\n const item = findResult.docs[0];\n\n if (item !== undefined) {\n this.sendItemUpdate(item);\n }\n\n return item;\n }\n\n async getSnapshot(\n sortedRanges: [number, number][]\n ): Promise<StorageSnapshot<T>> {\n const itemMap = new Map();\n\n const sort: PouchDBSort = [{ id: this.currentReverse ? 'desc' : 'asc' }];\n\n await Promise.all(\n sortedRanges.map(async ([from, to]) => {\n const limit = to - from + 1;\n return this.db\n .find({\n selector: selectorWithFilters(this.currentFilter ?? []),\n skip: from,\n limit,\n sort,\n fields: ['id', 'name'],\n })\n .then(findSnapshotResult => {\n for (let i = 0; i < limit; i += 1) {\n const index = from + i;\n itemMap.set(index, findSnapshotResult.docs[i]);\n }\n });\n })\n );\n\n return itemMap;\n }\n}\n\nexport default PouchStorageTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"PouchStorageTable.js","names":["PouchDB","PouchDBFind","Operator","FilterOperator","Type","FilterType","Log","PromiseUtils","log","module","DB_PREFIX","plugin","makePouchFilter","type","value","in","contains","$regex","RegExp","concat","inIgnoreCase","eq","$eq","notEq","$neq","greaterThan","$gt","greaterThanOrEqualTo","$gte","lessThan","$lt","lessThanOrEqualTo","$lte","startsWith","Error","makePouchSelectorFromConfig","config","filterItems","filterOperators","filter","i","length","filterItem","columnName","newFilter","filterOperator","and","$and","or","$or","selectorWithFilters","filters","arguments","undefined","map","name","id","sortWithConfigs","sorts","_sorts$map","reverse","sort","column","direction","PouchStorageTable","constructor","databaseName","dbOptions","_defineProperty","Map","db","_remote","listenForChanges","createIndex","index","fields","refreshInfo","changes","live","since","include_docs","on","dbUpdate","bind","onUpdate","callback","listeners","other","onItemUpdate","listener","itemListeners","has","set","get","refreshItem","close","size","currentSize","viewport","currentViewport","setReversed","reversed","currentReverse","currentViewportData","refreshData","setViewport","setSorts","currentSort","setFilters","currentFilter","data","getViewportData","_this","_asyncToGenerator","_this$viewportUpdateP","viewportUpdatePromise","Promise","resolve","items","offset","put","item","_this2","newItem","_objectSpread","_id","sendUpdate","_this$currentViewport","sendItemUpdate","event","debug","doc","fetchInfo","selector","_this3","find","_this4","_this4$infoUpdateProm","_this4$currentFilter","infoUpdatePromise","cancel","makeCancelable","findResult","docs","e","isCanceled","error","fetchViewportData","_this5","skip","top","limit","bottom","then","_this6","_this6$currentFilter","_this6$viewportUpdate","viewportData","_this7","getSnapshot","sortedRanges","_this8","itemMap","all","_ref2","_ref","_this8$currentFilter","from","to","findSnapshotResult","_x","apply"],"sources":["../src/PouchStorageTable.ts"],"sourcesContent":["import PouchDB from 'pouchdb-browser';\nimport PouchDBFind from 'pouchdb-find';\nimport {\n Operator as FilterOperator,\n Type as FilterType,\n} from '@deephaven/filters';\nimport Log from '@deephaven/log';\nimport {\n FilterConfig,\n FilterValue,\n SortConfig,\n StorageItem,\n StorageTable,\n StorageListenerRemover,\n StorageTableViewport,\n StorageItemListener,\n StorageSnapshot,\n ViewportData,\n ViewportUpdateCallback,\n IndexRange,\n} from '@deephaven/storage';\nimport { CancelablePromise, OnlyOneProp, PromiseUtils } from '@deephaven/utils';\n\nconst log = Log.module('PouchStorageTable');\n\nconst DB_PREFIX = 'Deephaven.';\n\nPouchDB.plugin(PouchDBFind);\n\nexport interface PouchStorageItem {\n _id?: string;\n}\n\nexport type PouchDBSort = Array<\n string | { [propName: string]: 'asc' | 'desc' }\n>;\n\n// We may want to use `PouchDB.Find.ConditionOperators` instead of this, but\n// there are some mismatches in how we use this with the types.\n// https://github.com/deephaven/web-client-ui/issues/1505 to address this\ntype PouchFilter = OnlyOneProp<{\n $eq: FilterValue | FilterValue[];\n $neq: FilterValue | FilterValue[];\n $gt: FilterValue | FilterValue[];\n $gte: FilterValue | FilterValue[];\n $lt: FilterValue | FilterValue[];\n $lte: FilterValue | FilterValue[];\n $regex: RegExp;\n}>;\n\nfunction makePouchFilter(\n type: string,\n value: FilterValue | FilterValue[]\n): PouchFilter {\n switch (type) {\n case FilterType.in:\n case FilterType.contains:\n return { $regex: new RegExp(`${value}`) };\n case FilterType.inIgnoreCase:\n return { $regex: new RegExp(`${value}`, 'i') };\n case FilterType.eq:\n return { $eq: value };\n case FilterType.notEq:\n // This should be `$ne` https://github.com/deephaven/web-client-ui/issues/1505\n return { $neq: value };\n case FilterType.greaterThan:\n return { $gt: value };\n case FilterType.greaterThanOrEqualTo:\n return { $gte: value };\n case FilterType.lessThan:\n return { $lt: value };\n case FilterType.lessThanOrEqualTo:\n return { $lte: value };\n case FilterType.startsWith:\n return { $regex: new RegExp(`^(?${value}).*`) };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n\nfunction makePouchSelectorFromConfig(\n config: FilterConfig\n): PouchDB.Find.Selector {\n const { filterItems, filterOperators } = config;\n let filter = null;\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { columnName, type, value } = filterItem;\n const newFilter = { [columnName]: makePouchFilter(type, value) };\n if (i === 0) {\n filter = newFilter;\n } else if (filter !== null && i - 1 < filterOperators.length) {\n const filterOperator = filterOperators[i - 1];\n if (filterOperator === FilterOperator.and) {\n filter = { $and: [filter, newFilter] };\n } else if (filterOperator === FilterOperator.or) {\n filter = { $or: [filter, newFilter] };\n } else {\n throw new Error(\n `Unexpected filter operator ${filterOperator}, ${newFilter}`\n );\n }\n }\n }\n if (filter == null) {\n throw new Error(`Invalid filter config ${config}`);\n }\n return filter;\n}\n\nfunction selectorWithFilters(\n filters: FilterConfig[] = []\n): PouchDB.Find.Selector {\n return {\n $and: [\n ...filters.map(filter => makePouchSelectorFromConfig(filter)),\n { name: { $gt: null } },\n { id: { $gt: null } },\n ],\n };\n}\n\nfunction sortWithConfigs(\n sorts: SortConfig[] | null,\n reverse = false\n): PouchDBSort {\n return [\n { id: reverse ? 'desc' : 'asc' },\n ...(sorts?.map(sort => ({ [sort.column]: sort.direction })) ?? []),\n ];\n}\n\nexport class PouchStorageTable<T extends StorageItem = StorageItem>\n implements StorageTable<T>\n{\n protected db: PouchDB.Database<T & PouchStorageItem>;\n\n changes?: PouchDB.Core.Changes<T & PouchStorageItem>;\n\n private listeners: ViewportUpdateCallback<T>[] = [];\n\n private itemListeners: Map<string, StorageItemListener<T>[]> = new Map();\n\n private currentSize = 0;\n\n private currentViewport?: StorageTableViewport;\n\n private currentReverse = false;\n\n private currentFilter: FilterConfig[] | null = null;\n\n private currentSort: SortConfig[] | null = null;\n\n private infoUpdatePromise?: CancelablePromise<\n PouchDB.Find.FindResponse<T & PouchStorageItem>\n >;\n\n private viewportUpdatePromise?: CancelablePromise<ViewportData<T>>;\n\n private currentViewportData?: ViewportData<T>;\n\n constructor(\n databaseName: string,\n dbOptions?: PouchDB.Configuration.DatabaseConfiguration\n ) {\n this.db = new PouchDB<T & PouchStorageItem>(\n `${DB_PREFIX}${databaseName}`,\n dbOptions\n );\n\n // Need to set `_remote` to false to remove deprecation warnings: https://github.com/pouchdb/pouchdb/issues/6106\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, no-underscore-dangle\n (this.db as any)._remote = false;\n\n this.listenForChanges();\n\n this.db.createIndex({ index: { fields: ['id', 'name'] } });\n\n this.refreshInfo();\n }\n\n /**\n * Listen for db changes. This can be cancelled by calling\n * `this.changes?.cancel()`\n */\n listenForChanges(): void {\n this.changes = this.db\n .changes({ live: true, since: 'now', include_docs: true })\n .on('change', this.dbUpdate.bind(this));\n }\n\n onUpdate(callback: ViewportUpdateCallback<T>): StorageListenerRemover {\n this.listeners = [...this.listeners, callback];\n return () => {\n this.listeners = this.listeners.filter(other => other !== callback);\n };\n }\n\n onItemUpdate(\n id: string,\n listener: StorageItemListener<T>\n ): StorageListenerRemover {\n if (!this.itemListeners.has(id)) {\n this.itemListeners.set(id, []);\n }\n\n this.itemListeners.set(id, [\n ...(this.itemListeners.get(id) as StorageItemListener<T>[]),\n listener,\n ]);\n\n this.refreshItem(id);\n\n return () => {\n this.itemListeners.set(\n id,\n (this.itemListeners.get(id) as StorageItemListener<T>[]).filter(\n other => other !== listener\n )\n );\n };\n }\n\n close(): void {\n this.listeners = [];\n }\n\n get size(): number {\n return this.currentSize;\n }\n\n get viewport(): StorageTableViewport | undefined {\n return this.currentViewport;\n }\n\n setReversed(reversed: boolean): void {\n this.currentReverse = reversed;\n\n this.currentViewportData = undefined;\n\n this.refreshData();\n }\n\n setViewport(viewport: StorageTableViewport | undefined): void {\n this.currentViewport = viewport;\n\n this.refreshInfo();\n\n this.refreshData();\n }\n\n setSorts(config: SortConfig[] | null): void {\n this.currentSort = config;\n\n this.currentViewportData = undefined;\n\n this.refreshData();\n }\n\n setFilters(config: FilterConfig[] | null): void {\n this.currentFilter = config;\n\n this.currentViewportData = undefined;\n\n this.refreshInfo();\n\n this.refreshData();\n }\n\n get data(): ViewportData<T> | undefined {\n return this.currentViewportData;\n }\n\n async getViewportData(): Promise<ViewportData<T>> {\n if (!this.viewportUpdatePromise) {\n this.refreshData();\n }\n return (\n this.viewportUpdatePromise ?? Promise.resolve({ items: [], offset: 0 })\n );\n }\n\n async put(item: T): Promise<T> {\n // Put the item ID in both the _id and the id slot\n // PouchDB uses _id everywhere, StorageTable just uses `id` though\n const newItem = {\n ...item,\n _id: item.id,\n } as T;\n\n await this.db.put(newItem);\n\n return newItem;\n }\n\n private sendUpdate(): void {\n // Retain a reference to it in case a listener gets removed while sending an update\n const { listeners } = this;\n const data = this.currentViewportData ?? { items: [], offset: 0 };\n for (let i = 0; i < listeners.length; i += 1) {\n listeners[i](data);\n }\n }\n\n private sendItemUpdate(item: T): void {\n const listeners = this.itemListeners.get(item.id);\n if (listeners !== undefined) {\n for (let i = 0; i < listeners.length; i += 1) {\n listeners[i](item);\n }\n }\n }\n\n protected dbUpdate(event: PouchDB.Core.ChangesResponseChange<T>): void {\n log.debug('Update received', event);\n\n this.refreshInfo();\n\n if (event.doc !== undefined) {\n this.sendItemUpdate(event.doc);\n }\n\n this.refreshData();\n }\n\n /**\n * Fetch infor for a given selector.\n * @param selector\n */\n protected async fetchInfo(\n selector: PouchDB.Find.Selector\n ): Promise<PouchDB.Find.FindResponse<T & PouchStorageItem>> {\n return this.db.find({\n selector,\n fields: [],\n });\n }\n\n private async refreshInfo(): Promise<void> {\n try {\n this.infoUpdatePromise?.cancel();\n\n this.infoUpdatePromise = PromiseUtils.makeCancelable(\n this.fetchInfo(selectorWithFilters(this.currentFilter ?? []))\n );\n\n const findResult = await this.infoUpdatePromise;\n\n this.currentSize = findResult.docs.length;\n\n this.sendUpdate();\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to refreshInfo', e);\n throw e;\n }\n }\n }\n\n /**\n * Fetch data for the given viewport, selector, and sort.\n * @param viewport\n * @param selector\n * @param sort\n */\n protected async fetchViewportData(\n viewport: StorageTableViewport,\n selector: PouchDB.Find.Selector,\n sort: PouchDBSort\n ): Promise<ViewportData<T>> {\n return this.db\n .find({\n selector,\n skip: viewport.top,\n limit: viewport.bottom - viewport.top + 1,\n sort,\n fields: ['id', 'name'],\n })\n .then(findResult => ({\n items: findResult.docs,\n offset: viewport.top,\n }));\n }\n\n private async refreshData(): Promise<ViewportData<T> | undefined> {\n if (!this.currentViewport) {\n return;\n }\n\n try {\n const selector = selectorWithFilters(this.currentFilter ?? []);\n const sort = sortWithConfigs(this.currentSort, this.currentReverse);\n\n this.viewportUpdatePromise?.cancel();\n\n this.viewportUpdatePromise = PromiseUtils.makeCancelable(\n this.fetchViewportData(this.currentViewport, selector, sort)\n );\n\n const viewportData = await this.viewportUpdatePromise;\n\n this.currentViewportData = viewportData;\n\n this.sendUpdate();\n\n return viewportData;\n } catch (e) {\n if (!PromiseUtils.isCanceled(e)) {\n log.error('Unable to refreshData', e);\n throw e;\n }\n }\n }\n\n async refreshItem(id: string): Promise<T | undefined> {\n const findResult = await this.db.find({\n selector: { id },\n limit: 1,\n });\n\n const item = findResult.docs[0];\n\n if (item !== undefined) {\n this.sendItemUpdate(item);\n }\n\n return item;\n }\n\n async getSnapshot(sortedRanges: IndexRange[]): Promise<StorageSnapshot<T>> {\n const itemMap = new Map();\n\n const sort: PouchDBSort = [{ id: this.currentReverse ? 'desc' : 'asc' }];\n\n await Promise.all(\n sortedRanges.map(async ([from, to]) => {\n const limit = to - from + 1;\n return this.db\n .find({\n selector: selectorWithFilters(this.currentFilter ?? []),\n skip: from,\n limit,\n sort,\n fields: ['id', 'name'],\n })\n .then(findSnapshotResult => {\n for (let i = 0; i < limit; i += 1) {\n const index = from + i;\n itemMap.set(index, findSnapshotResult.docs[i]);\n }\n });\n })\n );\n\n return itemMap;\n }\n}\n\nexport default PouchStorageTable;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/pouch-storage",
3
- "version": "0.51.0",
3
+ "version": "0.51.1-alpha-theme-fix.1+add15f1b",
4
4
  "description": "Deephaven Storage based on PouchDB",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -21,11 +21,11 @@
21
21
  "build:babel": "babel ./src --out-dir ./dist --extensions \".ts,.tsx,.js,.jsx\" --source-maps --root-mode upward"
22
22
  },
23
23
  "dependencies": {
24
- "@deephaven/console": "^0.51.0",
25
- "@deephaven/filters": "^0.51.0",
26
- "@deephaven/log": "^0.51.0",
27
- "@deephaven/storage": "^0.51.0",
28
- "@deephaven/utils": "^0.51.0",
24
+ "@deephaven/console": "^0.51.1-alpha-theme-fix.1+add15f1b",
25
+ "@deephaven/filters": "^0.51.1-alpha-theme-fix.1+add15f1b",
26
+ "@deephaven/log": "^0.51.1-alpha-theme-fix.1+add15f1b",
27
+ "@deephaven/storage": "^0.51.1-alpha-theme-fix.1+add15f1b",
28
+ "@deephaven/utils": "^0.51.1-alpha-theme-fix.1+add15f1b",
29
29
  "lodash.throttle": "^4.1.1",
30
30
  "pouchdb-browser": "^7.3.0",
31
31
  "pouchdb-find": "^7.3.0"
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "54f7cc5d08a9c1a390b2e89a9fb84fe1018008eb"
43
+ "gitHead": "add15f1b1ce7ad96bf40849a39c80434070b54c0"
44
44
  }