@milaboratories/pframes-rs-node 1.0.28 → 1.0.29

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.
@@ -23,7 +23,7 @@ export interface NodeTableSymbol extends Symbol {}
23
23
 
24
24
  interface NodeFrame {
25
25
  pFrameCreate: (
26
- tempDir: string,
26
+ spillPath: string,
27
27
  logger?: PFrameInternal.Logger
28
28
  ) => NodeFrameSymbol;
29
29
  pFrameAddColumnSpec: (
package/export/export.ts CHANGED
@@ -3,7 +3,7 @@ import { PFrame as PFrameImpl } from './wrapper';
3
3
 
4
4
  export type PFrame = {
5
5
  new (
6
- tempDir: string,
6
+ spillPath: string,
7
7
  logger?: PFrameInternal.Logger
8
8
  ): PFrameInternal.PFrameV4;
9
9
  };
package/export/wrapper.ts CHANGED
@@ -24,7 +24,7 @@ export class PFrame implements PFrameInternal.PFrameV4 {
24
24
  private readonly frame: NodeFrameSymbol;
25
25
 
26
26
  constructor(
27
- tempDir: string,
27
+ spillPath: string,
28
28
  public readonly logger?: PFrameInternal.Logger
29
29
  ) {
30
30
  dump(
@@ -37,7 +37,7 @@ export class PFrame implements PFrameInternal.PFrameV4 {
37
37
  );
38
38
 
39
39
  try {
40
- this.frame = AddonSymbol.pFrameCreate(tempDir, logger);
40
+ this.frame = AddonSymbol.pFrameCreate(spillPath, logger);
41
41
  } catch (err: unknown) {
42
42
  throw new Error(
43
43
  `PFrame creation failed, ` +
@@ -6,7 +6,7 @@ export interface NodeFrameSymbol extends Symbol {
6
6
  export interface NodeTableSymbol extends Symbol {
7
7
  }
8
8
  interface NodeFrame {
9
- pFrameCreate: (tempDir: string, logger?: PFrameInternal.Logger) => NodeFrameSymbol;
9
+ pFrameCreate: (spillPath: string, logger?: PFrameInternal.Logger) => NodeFrameSymbol;
10
10
  pFrameAddColumnSpec: (pFrame: NodeFrameSymbol, columnId: PObjectId, columnSpec: PColumnSpec) => void;
11
11
  pFrameSetDataSource: (pFrame: NodeFrameSymbol, dataSource: PFrameInternal.PFrameDataSource) => void;
12
12
  pFrameSetColumnData: (pFrame: NodeFrameSymbol, columnId: PObjectId, dataInfo: DataInfo<PFrameInternal.PFrameBlobId>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
2
  export type PFrame = {
3
- new (tempDir: string, logger?: PFrameInternal.Logger): PFrameInternal.PFrameV4;
3
+ new (spillPath: string, logger?: PFrameInternal.Logger): PFrameInternal.PFrameV4;
4
4
  };
5
5
  export declare const PFrame: PFrame;
6
6
  //# sourceMappingURL=export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,MAAM,MAAM,MAAM,GAAG;IACnB,KACE,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,cAAc,CAAC,QAAQ,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAmB,CAAC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,MAAM,MAAM,MAAM,GAAG;IACnB,KACE,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,cAAc,CAAC,QAAQ,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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 fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\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 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);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { 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 { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV4 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n constructor(\n tempDir: 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(tempDir, logger);\n } catch (err: unknown) {\n throw new Error(\n `PFrame 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,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 addColumnSpec request 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 preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\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 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 setDataSource request 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,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 setColumnData request 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 } catch (err: unknown) {\n throw new Error(\n `PFrame dispose request 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 findColumns request 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 findColumns request took ${Math.round(t1 - t0)}ms`\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 deleteColumn request 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 deleteColumn request took ${Math.round(t1 - t0)}ms`\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\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 getColumnSpec request 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 getColumnSpec request took ${Math.round(t1 - t0)}ms`\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 listColumns request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame listColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV2,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: 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 const t0 = performance.now();\n try {\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 createTable request 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 createTable request took ${Math.round(t1 - t0)}ms`\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: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\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 getUniqueValues request 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 getUniqueValues request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV3 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\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 getShape request 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 getSpec request 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\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 getColumnIndices request 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\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 const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable getData request 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 getData request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\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 const t0 = performance.now();\n try {\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 filter request 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 filter request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\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 const t0 = performance.now();\n try {\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 sort request 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 sort request took ${Math.round(t1 - t0)}ms`\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 } catch (err: unknown) {\n throw new Error(\n `PTable dispose request 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 tempDir: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV4;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","_documentCurrentScript","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","tempDir","__publicField","ulid","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","_a","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","columnIds","columnIndices","range","_b","PFrame","PFrameImpl"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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 fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\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 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);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { 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 { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV4 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\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 } catch (err: unknown) {\n throw new Error(\n `PFrame 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,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 addColumnSpec request 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 preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\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 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 setDataSource request 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,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 setColumnData request 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 } catch (err: unknown) {\n throw new Error(\n `PFrame dispose request 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 findColumns request 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 findColumns request took ${Math.round(t1 - t0)}ms`\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 deleteColumn request 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 deleteColumn request took ${Math.round(t1 - t0)}ms`\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\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 getColumnSpec request 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 getColumnSpec request took ${Math.round(t1 - t0)}ms`\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 listColumns request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame listColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV2,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: 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 const t0 = performance.now();\n try {\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 createTable request 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 createTable request took ${Math.round(t1 - t0)}ms`\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: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\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 getUniqueValues request 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 getUniqueValues request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV3 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\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 getShape request 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 getSpec request 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\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 getColumnIndices request 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\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 const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable getData request 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 getData request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\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 const t0 = performance.now();\n try {\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 filter request 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 filter request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\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 const t0 = performance.now();\n try {\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 sort request 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 sort request took ${Math.round(t1 - t0)}ms`\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 } catch (err: unknown) {\n throw new Error(\n `PTable dispose request 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.PFrameV4;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","_documentCurrentScript","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","_a","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","columnIds","columnIndices","range","_b","PFrame","PFrameImpl"],"mappings":"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"}
@@ -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 fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\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 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);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { 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 { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV4 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n constructor(\n tempDir: 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(tempDir, logger);\n } catch (err: unknown) {\n throw new Error(\n `PFrame 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,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 addColumnSpec request 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 preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\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 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 setDataSource request 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,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 setColumnData request 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 } catch (err: unknown) {\n throw new Error(\n `PFrame dispose request 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 findColumns request 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 findColumns request took ${Math.round(t1 - t0)}ms`\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 deleteColumn request 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 deleteColumn request took ${Math.round(t1 - t0)}ms`\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\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 getColumnSpec request 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 getColumnSpec request took ${Math.round(t1 - t0)}ms`\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 listColumns request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame listColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV2,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: 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 const t0 = performance.now();\n try {\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 createTable request 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 createTable request took ${Math.round(t1 - t0)}ms`\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: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\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 getUniqueValues request 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 getUniqueValues request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV3 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\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 getShape request 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 getSpec request 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\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 getColumnIndices request 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\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 const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable getData request 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 getData request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\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 const t0 = performance.now();\n try {\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 filter request 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 filter request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\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 const t0 = performance.now();\n try {\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 sort request 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 sort request took ${Math.round(t1 - t0)}ms`\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 } catch (err: unknown) {\n throw new Error(\n `PTable dispose request 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 tempDir: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV4;\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","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","tempDir","__publicField","ulid","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","_a","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","columnIds","columnIndices","range","_b","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 fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\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 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);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { 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 { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV4 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\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 } catch (err: unknown) {\n throw new Error(\n `PFrame 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,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 addColumnSpec request 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 preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\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 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 setDataSource request 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,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${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 setColumnData request 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 } catch (err: unknown) {\n throw new Error(\n `PFrame dispose request 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 findColumns request 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 findColumns request took ${Math.round(t1 - t0)}ms`\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 deleteColumn request 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 deleteColumn request took ${Math.round(t1 - t0)}ms`\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\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 getColumnSpec request 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 getColumnSpec request took ${Math.round(t1 - t0)}ms`\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 listColumns request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame listColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV2,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: 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 const t0 = performance.now();\n try {\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 createTable request 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 createTable request took ${Math.round(t1 - t0)}ms`\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: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\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 getUniqueValues request 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 getUniqueValues request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV3 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\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 getShape request 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 getSpec request 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\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 getColumnIndices request 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\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 const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable getData request 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 getData request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\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 const t0 = performance.now();\n try {\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 filter request 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 filter request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV3> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\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 const t0 = performance.now();\n try {\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 sort request 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 sort request took ${Math.round(t1 - t0)}ms`\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 } catch (err: unknown) {\n throw new Error(\n `PTable dispose request 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.PFrameV4;\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","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","_a","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","columnIds","columnIndices","range","_b","PFrame","PFrameImpl"],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare class PFrame implements PFrameInternal.PFrameV4 {
4
4
  readonly logger?: PFrameInternal.Logger | undefined;
5
5
  readonly id: string;
6
6
  private readonly frame;
7
- constructor(tempDir: string, logger?: PFrameInternal.Logger | undefined);
7
+ constructor(spillPath: string, logger?: PFrameInternal.Logger | undefined);
8
8
  addColumnSpec(columnId: PObjectId, columnSpec: PColumnSpec): void;
9
9
  setDataSource(dataSource: PFrameInternal.PFrameDataSource): void;
10
10
  setColumnData(columnId: PObjectId, dataInfo: DataInfo<PFrameInternal.PFrameBlobId>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../export/wrapper.ts"],"names":[],"mappings":"AACA,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;AAK5E,qBAAa,MAAO,YAAW,cAAc,CAAC,QAAQ;aAMlC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IALhD,SAAgB,EAAE,EAAE,MAAM,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAGtC,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,YAAA;IAuBhD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAoCjE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,gBAAgB,GAAG,IAAI;IA0EhE,aAAa,CACX,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,GAC9C,IAAI;IAoCP,OAAO,IAAI,IAAI;IAsBf,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;IA6BrC,WAAW,CACf,OAAO,EAAE,cAAc,CAAC,oBAAoB,EAC5C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;IAuC7B,eAAe,CACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC;CAmCjC"}
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../export/wrapper.ts"],"names":[],"mappings":"AACA,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;AAK5E,qBAAa,MAAO,YAAW,cAAc,CAAC,QAAQ;aAMlC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IALhD,SAAgB,EAAE,EAAE,MAAM,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAGtC,SAAS,EAAE,MAAM,EACD,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,YAAA;IAuBhD,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI;IAoCjE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,gBAAgB,GAAG,IAAI;IA0EhE,aAAa,CACX,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,GAC9C,IAAI;IAoCP,OAAO,IAAI,IAAI;IAsBf,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;IA6BrC,WAAW,CACf,OAAO,EAAE,cAAc,CAAC,oBAAoB,EAC5C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;IAuC7B,eAAe,CACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC;CAmCjC"}
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.28",
4
+ "version": "1.0.29",
5
5
  "types": "./export_dist/index.d.ts",
6
6
  "main": "./export_dist/index.js",
7
7
  "module": "./export_dist/index.mjs",