@milaboratories/pframes-rs-node 1.0.37 → 1.0.39
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/wrapper.ts +7 -1
- package/export_dist/index.js +18 -18
- package/export_dist/index.js.map +1 -1
- package/export_dist/index.mjs +250 -246
- package/export_dist/index.mjs.map +1 -1
- package/export_dist/wrapper.d.ts.map +1 -1
- package/package.json +5 -5
package/export/wrapper.ts
CHANGED
|
@@ -124,7 +124,7 @@ export class PFrame implements PFrameInternal.PFrameV6 {
|
|
|
124
124
|
const t1 = performance.now();
|
|
125
125
|
this.logger?.(
|
|
126
126
|
'info',
|
|
127
|
-
`PFrame ${this.id} preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`
|
|
127
|
+
`PFrame ${this.id} preloaded ${blobIds.length} blobs ${JSON.stringify(blobIds)}, took ${Math.round(t1 - t0)}ms`
|
|
128
128
|
);
|
|
129
129
|
}
|
|
130
130
|
},
|
|
@@ -145,6 +145,7 @@ export class PFrame implements PFrameInternal.PFrameV6 {
|
|
|
145
145
|
);
|
|
146
146
|
|
|
147
147
|
const blob = await dataSource.resolveBlobContent(blobId);
|
|
148
|
+
this.logger?.('info', `PFrame ${this.id} resolved blob ${blobId}`);
|
|
148
149
|
dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);
|
|
149
150
|
|
|
150
151
|
return blob;
|
|
@@ -376,6 +377,7 @@ export class PFrame implements PFrameInternal.PFrameV6 {
|
|
|
376
377
|
|
|
377
378
|
const t0 = performance.now();
|
|
378
379
|
try {
|
|
380
|
+
signal?.throwIfAborted();
|
|
379
381
|
const boxed = await AddonSymbol.pFrameCreateTable(
|
|
380
382
|
this.frame,
|
|
381
383
|
requestId,
|
|
@@ -416,6 +418,7 @@ export class PFrame implements PFrameInternal.PFrameV6 {
|
|
|
416
418
|
|
|
417
419
|
const t0 = performance.now();
|
|
418
420
|
try {
|
|
421
|
+
signal?.throwIfAborted();
|
|
419
422
|
return await AddonSymbol.pFrameGetUniqueValues(
|
|
420
423
|
this.frame,
|
|
421
424
|
requestId,
|
|
@@ -539,6 +542,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
539
542
|
|
|
540
543
|
const t0 = performance.now();
|
|
541
544
|
try {
|
|
545
|
+
signal?.throwIfAborted();
|
|
542
546
|
return await AddonSymbol.pTableGetData(
|
|
543
547
|
this.table,
|
|
544
548
|
requestId,
|
|
@@ -587,6 +591,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
587
591
|
|
|
588
592
|
const t0 = performance.now();
|
|
589
593
|
try {
|
|
594
|
+
signal?.throwIfAborted();
|
|
590
595
|
const boxed = await AddonSymbol.pTableFilter(
|
|
591
596
|
this.table,
|
|
592
597
|
requestId,
|
|
@@ -634,6 +639,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
634
639
|
|
|
635
640
|
const t0 = performance.now();
|
|
636
641
|
try {
|
|
642
|
+
signal?.throwIfAborted();
|
|
637
643
|
const boxed = await AddonSymbol.pTableSort(
|
|
638
644
|
this.table,
|
|
639
645
|
requestId,
|
package/export_dist/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";var S=Object.defineProperty;var q=(
|
|
2
|
-
${i.toString()}`)}}static async pprofDump(){return u.pprofDump()}addColumnSpec(e
|
|
3
|
-
${i.toString()}`)}}setDataSource(
|
|
4
|
-
${i.toString()}`)}}setColumnData(e
|
|
5
|
-
${i.toString()}`)}}dispose(){var
|
|
6
|
-
${r.toString()}`)}}[Symbol.dispose](){this.dispose()}async findColumns(
|
|
7
|
-
${
|
|
8
|
-
${
|
|
9
|
-
${
|
|
10
|
-
${i.toString()}`)}finally{const i=performance.now();(r=this.logger)==null||r.call(this,"info",`PFrame ${this.id} listColumns request ${
|
|
11
|
-
${
|
|
12
|
-
${a.toString()}`)}finally{const a=performance.now();(
|
|
13
|
-
${
|
|
14
|
-
${
|
|
15
|
-
${r.toString()}`)}}async getData(e,
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
${
|
|
1
|
+
"use strict";var S=Object.defineProperty;var q=(h,t,e)=>t in h?S(h,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):h[t]=e;var f=(h,t,e)=>q(h,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("ulid"),D=require("node:module"),l=require("node:path"),b=require("node:url"),T=require("@mapbox/node-pre-gyp"),c=require("node:fs"),p=require("node:stream");var w=typeof document<"u"?document.currentScript:null;const g=typeof document>"u"?require("url").pathToFileURL(__filename).href:w&&w.tagName.toUpperCase()==="SCRIPT"&&w.src||new URL("index.js",document.baseURI).href,P=l.dirname(b.fileURLToPath(g)),F=D.createRequire(g),{find:C}=T,u=F(C(l.resolve(P,"../package.json")));async function y(h){try{return await c.promises.access(h),!0}catch{return!1}}async function j(h){await y(h)||await c.promises.mkdir(h,{recursive:!0})}async function E(h,t){const e=`${h}.tmp`;await y(e)&&await c.promises.rm(e,{recursive:!0});const r=typeof t=="string"?Buffer.from(t,"utf8"):t,i=p.Readable.from(r),o=c.createWriteStream(e,{flags:"wx"});await p.Readable.toWeb(i).pipeTo(p.Writable.toWeb(o)),await c.promises.rename(e,h)}async function s(h,t,e){if(process.env.MI_DUMP_PFRAMES_RS)try{const r=h.map(n=>encodeURIComponent(n)),i=l.join(process.env.MI_DUMP_PFRAMES_RS,...r.slice(0,-1));await j(i);const o=l.join(process.env.MI_DUMP_PFRAMES_RS,...r),a=ArrayBuffer.isView(t)?t:JSON.stringify(t);await E(o,a)}catch(r){e==null||e("warn",`error while dumping PFrames data: ${r}`)}}let M=class{constructor(t,e){f(this,"id",d.ulid());f(this,"frame");var r;this.logger=e,s([`${this.id}`,`${this.id}.json`],{timeStamp:Date.now(),requestType:"create"},this.logger);try{this.frame=u.pFrameCreate(t,e),(r=this.logger)==null||r.call(this,"info",`PFrame ${this.id} created`)}catch(i){throw new Error(`PFrame ${this.id} creation failed, logger: ${e==null?void 0:e.toString()}, error:
|
|
2
|
+
${i.toString()}`)}}static async pprofDump(){return u.pprofDump()}addColumnSpec(t,e){const r=d.ulid();s([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:t,columnSpec:e}},this.logger),s([`${this.id}`,"data",`${t}.spec`],{...e},this.logger);try{return u.pFrameAddColumnSpec(this.frame,t,e)}catch(i){throw new Error(`PFrame ${this.id} addColumnSpec request ${r} failed, columnId: ${JSON.stringify(t)}, columnSpec: ${JSON.stringify(e)}, error:
|
|
3
|
+
${i.toString()}`)}}setDataSource(t){const e=d.ulid();s([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"setDataSource"},this.logger);let r={preloadBlob:async i=>{var n;const o=d.ulid();s([`${this.id}`,`${o}.json`],{timeStamp:Date.now(),requestType:"preloadBlob",requestData:{blobIds:i}},this.logger);const a=performance.now();try{return t.preloadBlob(i)}finally{const m=performance.now();(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} preloaded ${i.length} blobs ${JSON.stringify(i)}, took ${Math.round(m-a)}ms`)}},resolveBlobContent:async i=>{var n;const o=d.ulid();s([`${this.id}`,`${o}.json`],{timeStamp:Date.now(),requestType:"resolveBlobContent",requestData:{blobId:i}},this.logger);const a=await t.resolveBlobContent(i);return(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} resolved blob ${i}`),s([`${this.id}`,"data",`${i}`],a,this.logger),a}};try{return u.pFrameSetDataSource(this.frame,r)}catch(i){throw new Error(`PFrame ${this.id} setDataSource request ${e} failed, dataSource: ${t.toString()}, error:
|
|
4
|
+
${i.toString()}`)}}setColumnData(t,e){const r=d.ulid();s([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"setColumnData",requestData:{columnId:t,dataInfo:e}},this.logger),s([`${this.id}`,"data",`${t}.datainfo`],{...e},this.logger);try{return u.pFrameSetColumnData(this.frame,t,e)}catch(i){throw new Error(`PFrame ${this.id} setColumnData request ${r} failed, columnId: ${JSON.stringify(t)}, dataInfo: ${JSON.stringify(e)}, error:
|
|
5
|
+
${i.toString()}`)}}dispose(){var e;const t=d.ulid();s([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.logger);try{u.pFrameDispose(this.frame),(e=this.logger)==null||e.call(this,"info",`PFrame ${this.id} disposed`)}catch(r){throw new Error(`PFrame ${this.id} dispose request ${t} failed, error:
|
|
6
|
+
${r.toString()}`)}}[Symbol.dispose](){this.dispose()}async findColumns(t){var i;const e=d.ulid();s([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"findColumns",requestData:t},this.logger);const r=performance.now();try{return await u.pFrameFindColumns(this.frame,t)}catch(o){throw new Error(`PFrame ${this.id} findColumns request ${e} failed, request: ${JSON.stringify(t)}, error:
|
|
7
|
+
${o.toString()}`)}finally{const o=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} findColumns request ${e} took ${Math.round(o-r)}ms`)}}async deleteColumn(t){var i;const e=d.ulid();s([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"deleteColumn",requestData:t},this.logger);const r=performance.now();try{return await u.pFrameDeleteColumn(this.frame,t)}catch(o){throw new Error(`PFrame ${this.id} deleteColumn request ${e} failed, request: ${JSON.stringify(t)}, error:
|
|
8
|
+
${o.toString()}`)}finally{const o=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} deleteColumn request ${e} took ${Math.round(o-r)}ms`)}}async getColumnSpec(t){var i;const e=d.ulid();s([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnSpec",requestData:{columnId:t}},this.logger);const r=performance.now();try{return await u.pFrameGetColumnSpec(this.frame,t)}catch(o){throw new Error(`PFrame ${this.id} getColumnSpec request ${e} failed, columnId: ${JSON.stringify(t)}, error:
|
|
9
|
+
${o.toString()}`)}finally{const o=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} getColumnSpec request ${e} took ${Math.round(o-r)}ms`)}}async listColumns(){var r;const t=d.ulid();s([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"listColumns"},this.logger);const e=performance.now();try{return await u.pFrameListColumns(this.frame)}catch(i){throw new Error(`PFrame ${this.id} listColumns request ${t} failed, error:
|
|
10
|
+
${i.toString()}`)}finally{const i=performance.now();(r=this.logger)==null||r.call(this,"info",`PFrame ${this.id} listColumns request ${t} took ${Math.round(i-e)}ms`)}}async createTable(t,e){var a;const r=d.ulid(),i={timeStamp:Date.now(),requestType:"createTable",requestData:t};s([`${this.id}`,`${r}.json`],i,this.logger),s([`${this.id}`,`${r}`,`${r}.json`],i,this.logger);const o=performance.now();try{e==null||e.throwIfAborted();const n=await u.pFrameCreateTable(this.frame,r,t,e);return new $(this,r,n)}catch(n){throw new Error(`PFrame ${this.id} createTable request ${r} failed, request: ${JSON.stringify(t)}, error:
|
|
11
|
+
${n.toString()}`)}finally{const n=performance.now();(a=this.logger)==null||a.call(this,"info",`PFrame ${this.id} createTable request ${r} took ${Math.round(n-o)}ms`)}}async getUniqueValues(t,e){var o;const r=d.ulid();s([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:t},this.logger);const i=performance.now();try{return e==null||e.throwIfAborted(),await u.pFrameGetUniqueValues(this.frame,r,t,e)}catch(a){throw new Error(`PFrame ${this.id} getUniqueValues request ${r} failed, request: ${JSON.stringify(t)}, error:
|
|
12
|
+
${a.toString()}`)}finally{const a=performance.now();(o=this.logger)==null||o.call(this,"info",`PFrame ${this.id} getUniqueValues request ${r} took ${Math.round(a-i)}ms`)}}};class ${constructor(t,e,r){var i,o;this.frame=t,this.id=e,this.table=r,(o=(i=this.frame).logger)==null||o.call(i,"info",`PTable ${this.id} created`)}getShape(){const t=d.ulid();s([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getShape"},this.frame.logger);try{return u.pTableGetShape(this.table)}catch(e){throw new Error(`PTable ${this.id} getShape request ${t} failed, error:
|
|
13
|
+
${e.toString()}`)}}getSpec(){const t=d.ulid();s([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getSpec"},this.frame.logger);try{return u.pTableGetSpec(this.table)}catch(e){throw new Error(`PTable ${this.id} getSpec request ${t} failed, error:
|
|
14
|
+
${e.toString()}`)}}getColumnIndices(t){const e=d.ulid();s([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnIndices",requestData:{columnIds:t}},this.frame.logger);try{return u.pTableGetColumnIndices(this.table,t)}catch(r){throw new Error(`PTable ${this.id} getColumnIndices request ${e} failed, columnIds: ${JSON.stringify(t)}, error:
|
|
15
|
+
${r.toString()}`)}}async getData(t,e,r){var a,n;const i=d.ulid();s([`${this.frame.id}`,`${this.id}`,`${i}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:t,range:e??null}},this.frame.logger);const o=performance.now();try{return r==null||r.throwIfAborted(),await u.pTableGetData(this.table,i,t,e,r)}catch(m){throw new Error(`PTable ${this.id} getData request ${i} failed, columnIndices: ${JSON.stringify(t)}, range: ${e?JSON.stringify(e):void 0}, error:
|
|
16
|
+
${m.toString()}`)}finally{const m=performance.now();(n=(a=this.frame).logger)==null||n.call(a,"info",`PTable ${this.id} getData request ${i} took ${Math.round(m-o)}ms`)}}async filter(t,e){var a,n;const r=d.ulid(),i={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:t};s([`${this.frame.id}`,`${r}.json`],i,this.frame.logger),s([`${this.frame.id}`,`${r}`,`${r}.json`],i,this.frame.logger);const o=performance.now();try{e==null||e.throwIfAborted();const m=await u.pTableFilter(this.table,r,t,e);return new $(this.frame,r,m)}catch(m){throw new Error(`PTable ${this.id} filter request ${r} failed, request: ${JSON.stringify(t)}, error:
|
|
17
|
+
${m.toString()}`)}finally{const m=performance.now();(n=(a=this.frame).logger)==null||n.call(a,"info",`PTable ${this.id} filter request ${r} took ${Math.round(m-o)}ms`)}}async sort(t,e){var a,n;const r=d.ulid(),i={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:t};s([`${this.frame.id}`,`${r}.json`],i,this.frame.logger),s([`${this.frame.id}`,`${r}`,`${r}.json`],i,this.frame.logger);const o=performance.now();try{e==null||e.throwIfAborted();const m=await u.pTableSort(this.table,r,t,e);return new $(this.frame,r,m)}catch(m){throw new Error(`PTable ${this.id} sort request ${r} failed, request: ${JSON.stringify(t)}, error:
|
|
18
|
+
${m.toString()}`)}finally{const m=performance.now();(n=(a=this.frame).logger)==null||n.call(a,"info",`PTable ${this.id} sort request ${r} took ${Math.round(m-o)}ms`)}}dispose(){var e,r;const t=d.ulid();s([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.frame.logger);try{u.pTableDispose(this.table),(r=(e=this.frame).logger)==null||r.call(e,"info",`PTable ${this.id} disposed`)}catch(i){throw new Error(`PTable ${this.id} dispose request ${t} failed, error:
|
|
19
19
|
${i.toString()}`)}}[Symbol.dispose](){this.dispose()}}const I=M;exports.PFrame=I;
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/export_dist/index.js.map
CHANGED
|
@@ -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.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,\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 ${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, 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 ${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,\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 ${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 ${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 ${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 ${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 ${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 ${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 ${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 ${Math.round(t1 - t0)}ms`\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: 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 ${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} 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 ${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} took ${Math.round(t1 - t0)}ms`\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\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 const t0 = performance.now();\n try {\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} took ${Math.round(t1 - t0)}ms`\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: 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 ${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} took ${Math.round(t1 - t0)}ms`\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\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 ${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} 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 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","_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","_a","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","_b","columnIds","columnIndices","range","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.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,\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 ${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 ${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 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,\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 ${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 ${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 ${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 ${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 ${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 ${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 ${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 ${Math.round(t1 - t0)}ms`\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: 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 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} 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 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} took ${Math.round(t1 - t0)}ms`\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\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 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} took ${Math.round(t1 - t0)}ms`\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: 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 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} took ${Math.round(t1 - t0)}ms`\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\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 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} 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 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","_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","_a","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","_b","columnIds","columnIndices","range","PFrame","PFrameImpl"],"mappings":"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"}
|