@milaboratories/pframes-rs-node 1.0.43 → 1.0.44
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/export/addon-def.ts +13 -13
- package/export/export.ts +1 -1
- package/export/wrapper.ts +46 -60
- package/export_dist/addon-def.d.ts +7 -7
- package/export_dist/addon-def.d.ts.map +1 -1
- package/export_dist/export.d.ts +1 -1
- package/export_dist/index.js +19 -19
- package/export_dist/index.js.map +1 -1
- package/export_dist/index.mjs +300 -311
- package/export_dist/index.mjs.map +1 -1
- package/export_dist/wrapper.d.ts +5 -3
- package/export_dist/wrapper.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../export/addon.ts","../export/dump.ts","../export/wrapper.ts","../export/export.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n","import { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.promises.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.promises.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = fs.createWriteStream(tempPath, { flags: 'wx' });\n await Readable.toWeb(source).pipeTo(Writable.toWeb(destination));\n\n await fs.promises.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import humanizeDuration from 'humanize-duration';\nimport { ulid } from 'ulid';\nimport {\n DataInfo,\n PColumnInfo,\n PColumnSpec,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableShape,\n PTableSorting,\n PTableVector,\n TableRange,\n UniqueValuesRequest,\n UniqueValuesResponse\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';\nimport { AddonSymbol } from './addon';\nimport {\n hashColumnId,\n dump,\n hashTableColumnId,\n hashFilterColumnId,\n hashUniqueValuesRequestColumnId,\n hashSortingColumnId,\n hashCreateTableRequestColumnId\n} from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV6 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n static async pprofDump(): Promise<Uint8Array> {\n return AddonSymbol.pprofDump();\n }\n\n constructor(\n spillPath: string,\n public readonly logger?: PFrameInternal.Logger\n ) {\n dump(\n [`${this.id}`, `${this.id}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'create'\n },\n this.logger\n );\n\n try {\n this.frame = AddonSymbol.pFrameCreate(spillPath, logger);\n this.logger?.('info', `PFrame ${this.id} created`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} creation failed, ` +\n `logger: ${logger?.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n addColumnSpec(columnId: PObjectId, columnSpec: PColumnSpec): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'addColumnSpec',\n requestData: {\n columnId: hashColumnId(columnId),\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.spec`],\n {\n ...columnSpec\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSource): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setDataSource'\n },\n this.logger\n );\n\n let wrappedDataSource = {\n preloadBlob: async (\n blobIds: PFrameInternal.PFrameBlobId[]\n ): Promise<void> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'preloadBlob',\n requestData: {\n blobIds\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return dataSource.preloadBlob(blobIds);\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} preloaded ${blobIds.length} blobs ${JSON.stringify(blobIds)}, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n this.logger?.('info', `PFrame ${this.id} resolved blob ${blobId}`);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);\n\n return blob;\n }\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setDataSource request ${requestId} failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: DataInfo<PFrameInternal.PFrameBlobId>\n ): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId: hashColumnId(columnId),\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.datainfo`],\n {\n ...dataInfo\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameSetColumnData(this.frame, columnId, dataInfo);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setColumnData request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n dispose(): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.logger\n );\n\n try {\n AddonSymbol.pFrameDispose(this.frame);\n this.logger?.('info', `PFrame ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose](): void {\n this.dispose();\n }\n\n async findColumns(\n request: PFrameInternal.FindColumnsRequest\n ): Promise<PFrameInternal.FindColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'findColumns',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameFindColumns(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} findColumns request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} findColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async deleteColumn(\n request: PFrameInternal.DeleteColumnFromColumnsRequest\n ): Promise<PFrameInternal.DeleteColumnFromColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'deleteColumn',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} deleteColumn request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async getColumnSpec(columnId: PObjectId): Promise<PColumnSpec> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnSpec',\n requestData: {\n columnId: hashColumnId(columnId)\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getColumnSpec request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async listColumns(): Promise<PColumnInfo[]> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'listColumns'\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameListColumns(this.frame);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} listColumns request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} listColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV3,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: hashCreateTableRequestColumnId(request)\n };\n dump([`${this.id}`, `${requestId}.json`], dumpData, this.logger);\n dump(\n [`${this.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.logger\n );\n\n this.logger?.(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n signal?.throwIfAborted();\n const boxed = await AddonSymbol.pFrameCreateTable(\n this.frame,\n requestId,\n request,\n signal\n );\n return new PTable(this, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} createTable request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async getUniqueValues(\n request: UniqueValuesRequest,\n signal?: AbortSignal\n ): Promise<UniqueValuesResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getUniqueValues',\n requestData: hashUniqueValuesRequestColumnId(request)\n },\n this.logger\n );\n\n this.logger?.(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n signal?.throwIfAborted();\n return await AddonSymbol.pFrameGetUniqueValues(\n this.frame,\n requestId,\n request,\n signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV4 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\n ) {\n this.frame.logger?.('info', `PTable ${this.id} created`);\n }\n\n getShape(): PTableShape {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getShape'\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetShape(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getShape request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n getSpec(): PTableColumnSpec[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getSpec'\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetSpec(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getSpec request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n getColumnIndices(columnIds: PTableColumnId[]): number[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnIndices',\n requestData: {\n columnIds: columnIds.map(hashTableColumnId)\n }\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetColumnIndices(this.table, columnIds);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +\n `columnIds: ${JSON.stringify(columnIds)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n async getData(\n columnIndices: number[],\n range: TableRange | undefined,\n signal?: AbortSignal\n ): Promise<PTableVector[]> {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: range ?? null\n }\n },\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} getData request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n signal?.throwIfAborted();\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range,\n signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getData request ${requestId} failed, ` +\n `columnIndices: ${JSON.stringify(columnIndices)}, ` +\n `range: ${range ? JSON.stringify(range) : undefined}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} getData request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: {\n filters: request.map(hashFilterColumnId)\n }\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} filter request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n signal?.throwIfAborted();\n const boxed = await AddonSymbol.pTableFilter(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} filter request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} filter request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request.map(hashSortingColumnId)\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} sort request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n signal?.throwIfAborted();\n const boxed = await AddonSymbol.pTableSort(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} sort request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} sort request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n dispose() {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.frame.logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.table);\n this.frame.logger?.('info', `PTable ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n","import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame as PFrameImpl } from './wrapper';\n\nexport type PFrame = {\n new (\n spillPath: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV6;\n\n pprofDump: () => Promise<Uint8Array>;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","hashColumnId","columnId","createHash","hashTableColumnId","tableId","hashFilterColumnId","filter","hashUniqueValuesRequestColumnId","request","hashSortingColumnId","sorting","hashJoinEntryColumnId","entry","type","hashCreateTableRequestColumnId","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","_a","err","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","humanizeDuration","blobId","blob","dataInfo","signal","dumpData","boxed","PTable","_b","frame","id","table","columnIds","columnIndices","range","_d","_c","PFrame","PFrameImpl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../export/addon.ts","../export/dump.ts","../export/wrapper.ts","../export/export.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n","import { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.promises.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.promises.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = fs.createWriteStream(tempPath, { flags: 'wx' });\n await Readable.toWeb(source).pipeTo(Writable.toWeb(destination));\n\n await fs.promises.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import humanizeDuration from 'humanize-duration';\nimport { ulid } from 'ulid';\nimport {\n DataInfo,\n PColumnInfo,\n PColumnSpec,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableShape,\n PTableSorting,\n PTableVector,\n TableRange,\n UniqueValuesRequest,\n UniqueValuesResponse\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';\nimport { AddonSymbol } from './addon';\nimport {\n hashColumnId,\n dump,\n hashTableColumnId,\n hashFilterColumnId,\n hashUniqueValuesRequestColumnId,\n hashSortingColumnId,\n hashCreateTableRequestColumnId\n} from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV7 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n static async pprofDump(): Promise<Uint8Array> {\n return AddonSymbol.pprofDump();\n }\n\n constructor(\n spillPath: string,\n public readonly logger?: PFrameInternal.Logger\n ) {\n dump(\n [`${this.id}`, `${this.id}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'create'\n },\n this.logger\n );\n\n try {\n this.frame = AddonSymbol.pFrameCreate(spillPath, logger);\n this.logger?.('info', `PFrame ${this.id} created`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} creation failed, ` +\n `logger: ${logger?.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n addColumnSpec(columnId: PObjectId, columnSpec: PColumnSpec): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'addColumnSpec',\n requestData: {\n columnId: hashColumnId(columnId),\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.spec`],\n {\n ...columnSpec\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSource): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setDataSource'\n },\n this.logger\n );\n\n let wrappedDataSource = {\n preloadBlob: async (\n blobIds: PFrameInternal.PFrameBlobId[]\n ): Promise<void> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'preloadBlob',\n requestData: {\n blobIds\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return dataSource.preloadBlob(blobIds);\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} preloaded ${blobIds.length} blobs ${JSON.stringify(blobIds)}, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n this.logger?.('info', `PFrame ${this.id} resolved blob ${blobId}`);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);\n\n return blob;\n }\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setDataSource request ${requestId} failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: DataInfo<PFrameInternal.PFrameBlobId>\n ): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId: hashColumnId(columnId),\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.datainfo`],\n {\n ...dataInfo\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameSetColumnData(this.frame, columnId, dataInfo);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setColumnData request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n dispose(): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.logger\n );\n\n try {\n AddonSymbol.pFrameDispose(this.frame);\n this.logger?.('info', `PFrame ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose](): void {\n this.dispose();\n }\n\n async findColumns(\n request: PFrameInternal.FindColumnsRequest\n ): Promise<PFrameInternal.FindColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'findColumns',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameFindColumns(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} findColumns request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} findColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async deleteColumn(\n request: PFrameInternal.DeleteColumnFromColumnsRequest\n ): Promise<PFrameInternal.DeleteColumnFromColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'deleteColumn',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} deleteColumn request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async getColumnSpec(columnId: PObjectId): Promise<PColumnSpec> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnSpec',\n requestData: {\n columnId: hashColumnId(columnId)\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getColumnSpec request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async listColumns(): Promise<PColumnInfo[]> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'listColumns'\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameListColumns(this.frame);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} listColumns request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} listColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n createTable(\n request: PFrameInternal.CreateTableRequestV3\n ): PFrameInternal.PTableV5 {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: hashCreateTableRequestColumnId(request)\n };\n dump([`${this.id}`, `${requestId}.json`], dumpData, this.logger);\n dump(\n [`${this.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.logger\n );\n\n this.logger?.(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n const boxed = AddonSymbol.pFrameCreateTable(\n this.frame,\n requestId,\n request\n );\n return new PTable(this, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} createTable request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n async getUniqueValues(\n request: UniqueValuesRequest,\n ops?: {\n signal?: AbortSignal;\n }\n ): Promise<UniqueValuesResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getUniqueValues',\n requestData: hashUniqueValuesRequestColumnId(request)\n },\n this.logger\n );\n\n this.logger?.(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pFrameGetUniqueValues(\n this.frame,\n requestId,\n request,\n ops?.signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV5 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\n ) {\n this.frame.logger?.('info', `PTable ${this.id} created`);\n }\n\n getSpec(): PTableColumnSpec[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getSpec'\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetSpec(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getSpec request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n getColumnIndices(columnIds: PTableColumnId[]): number[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnIndices',\n requestData: {\n columnIds: columnIds.map(hashTableColumnId)\n }\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetColumnIndices(this.table, columnIds);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +\n `columnIds: ${JSON.stringify(columnIds)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n async getShape(ops?: { signal?: AbortSignal }): Promise<PTableShape> {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getShape'\n },\n this.frame.logger\n );\n\n try {\n return await AddonSymbol.pTableGetShape(this.table, ops?.signal);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getShape request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n async getData(\n columnIndices: number[],\n ops?: {\n range?: TableRange | undefined;\n signal?: AbortSignal | undefined;\n }\n ): Promise<PTableVector[]> {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: ops?.range ?? null\n }\n },\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} getData request ${requestId} started`\n );\n let rowCount = 0;\n const t0 = performance.now();\n try {\n ops?.signal?.throwIfAborted();\n const result = await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n ops?.range,\n ops?.signal\n );\n rowCount = result[0].data.length;\n return result;\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getData request ${requestId} failed, ` +\n `columnIndices: ${JSON.stringify(columnIndices)}, ` +\n `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} getData request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))} (${rowCount} rows)`\n );\n }\n }\n\n filter(request: PTableRecordFilter[]): PFrameInternal.PTableV5 {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: {\n filters: request.map(hashFilterColumnId)\n }\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} filter request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n const boxed = AddonSymbol.pTableFilter(this.table, requestId, request);\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} filter request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} filter request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n sort(request: PTableSorting[]): PFrameInternal.PTableV5 {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request.map(hashSortingColumnId)\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} sort request ${requestId} started`\n );\n const t0 = performance.now();\n try {\n const boxed = AddonSymbol.pTableSort(this.table, requestId, request);\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} sort request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} sort request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`\n );\n }\n }\n\n dispose() {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.frame.logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.table);\n this.frame.logger?.('info', `PTable ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n","import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame as PFrameImpl } from './wrapper';\n\nexport type PFrame = {\n new (\n spillPath: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV7;\n\n pprofDump: () => Promise<Uint8Array>;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","hashColumnId","columnId","createHash","hashTableColumnId","tableId","hashFilterColumnId","filter","hashUniqueValuesRequestColumnId","request","hashSortingColumnId","sorting","hashJoinEntryColumnId","entry","type","hashCreateTableRequestColumnId","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","_a","err","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","humanizeDuration","blobId","blob","dataInfo","dumpData","boxed","PTable","_b","ops","_c","frame","id","table","columnIds","columnIndices","rowCount","result","_e","_d","PFrame","PFrameImpl"],"mappings":"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"}
|
package/export_dist/wrapper.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataInfo, PColumnInfo, PColumnSpec, PObjectId, UniqueValuesRequest, UniqueValuesResponse } from '@milaboratories/pl-model-common';
|
|
2
2
|
import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
3
|
-
export declare class PFrame implements PFrameInternal.
|
|
3
|
+
export declare class PFrame implements PFrameInternal.PFrameV7 {
|
|
4
4
|
readonly logger?: PFrameInternal.Logger | undefined;
|
|
5
5
|
readonly id: string;
|
|
6
6
|
private readonly frame;
|
|
@@ -15,7 +15,9 @@ export declare class PFrame implements PFrameInternal.PFrameV6 {
|
|
|
15
15
|
deleteColumn(request: PFrameInternal.DeleteColumnFromColumnsRequest): Promise<PFrameInternal.DeleteColumnFromColumnsResponse>;
|
|
16
16
|
getColumnSpec(columnId: PObjectId): Promise<PColumnSpec>;
|
|
17
17
|
listColumns(): Promise<PColumnInfo[]>;
|
|
18
|
-
createTable(request: PFrameInternal.CreateTableRequestV3
|
|
19
|
-
getUniqueValues(request: UniqueValuesRequest,
|
|
18
|
+
createTable(request: PFrameInternal.CreateTableRequestV3): PFrameInternal.PTableV5;
|
|
19
|
+
getUniqueValues(request: UniqueValuesRequest, ops?: {
|
|
20
|
+
signal?: AbortSignal;
|
|
21
|
+
}): Promise<UniqueValuesResponse>;
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../export/wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EAQT,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAa5E,qBAAa,MAAO,YAAW,cAAc,CAAC,QAAQ;aAUlC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IAThD,SAAgB,EAAE,EAAE,MAAM,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;WAE3B,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;gBAK3C,SAAS,EAAE,MAAM,EACD,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,YAAA;IAwBhD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAoCjE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,gBAAgB,GAAG,IAAI;IA2EhE,aAAa,CACX,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,GAC9C,IAAI;IAoCP,OAAO,IAAI,IAAI;IAuBf,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIlB,WAAW,CACf,OAAO,EAAE,cAAc,CAAC,kBAAkB,GACzC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC;IA+BxC,YAAY,CAChB,OAAO,EAAE,cAAc,CAAC,8BAA8B,GACrD,OAAO,CAAC,cAAc,CAAC,+BAA+B,CAAC;IA+BpD,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCxD,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../export/wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EAQT,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAa5E,qBAAa,MAAO,YAAW,cAAc,CAAC,QAAQ;aAUlC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IAThD,SAAgB,EAAE,EAAE,MAAM,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;WAE3B,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;gBAK3C,SAAS,EAAE,MAAM,EACD,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,YAAA;IAwBhD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAoCjE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,gBAAgB,GAAG,IAAI;IA2EhE,aAAa,CACX,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,GAC9C,IAAI;IAoCP,OAAO,IAAI,IAAI;IAuBf,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIlB,WAAW,CACf,OAAO,EAAE,cAAc,CAAC,kBAAkB,GACzC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC;IA+BxC,YAAY,CAChB,OAAO,EAAE,cAAc,CAAC,8BAA8B,GACrD,OAAO,CAAC,cAAc,CAAC,+BAA+B,CAAC;IA+BpD,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCxD,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA6B3C,WAAW,CACT,OAAO,EAAE,cAAc,CAAC,oBAAoB,GAC3C,cAAc,CAAC,QAAQ;IA0CpB,eAAe,CACnB,OAAO,EAAE,mBAAmB,EAC5B,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,oBAAoB,CAAC;CAwCjC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pframes-rs-node",
|
|
3
3
|
"description": "PFrames - Node.js Native Addon",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.44",
|
|
5
5
|
"types": "./export_dist/index.d.ts",
|
|
6
6
|
"main": "./export_dist/index.js",
|
|
7
7
|
"module": "./export_dist/index.mjs",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@mapbox/node-pre-gyp": "^2.0.0",
|
|
21
|
-
"@milaboratories/pl-model-middle-layer": "1.7.
|
|
21
|
+
"@milaboratories/pl-model-middle-layer": "1.7.38",
|
|
22
22
|
"@types/humanize-duration": "^3.27.4",
|
|
23
23
|
"humanize-duration": "^3.33.0",
|
|
24
24
|
"ulid": "^3.0.1"
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
31
31
|
"@types/node": "^20.19.1",
|
|
32
|
-
"@vitest/coverage-istanbul": "^3.2.
|
|
32
|
+
"@vitest/coverage-istanbul": "^3.2.4",
|
|
33
33
|
"cargo-cp-artifact": "^0.1.9",
|
|
34
|
-
"rollup-plugin-node-externals": "^8.0.
|
|
34
|
+
"rollup-plugin-node-externals": "^8.0.1",
|
|
35
35
|
"typescript": "^5.8.3",
|
|
36
36
|
"vite-plugin-dts": "^4.5.4",
|
|
37
|
-
"vitest": "^3.2.
|
|
37
|
+
"vitest": "^3.2.4"
|
|
38
38
|
},
|
|
39
39
|
"binary": {
|
|
40
40
|
"module_name": "pframes_rs_node",
|