@milaboratories/pframes-rs-node 1.0.27 → 1.0.28

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/README.md CHANGED
@@ -24,10 +24,10 @@ Debugging is only supported using VSCode with the following extencions installed
24
24
  - [rust-analyzer](vscode:extension/rust-lang.rust-analyzer)
25
25
 
26
26
  ### Launching debug session
27
- 1. Clone and build the latest `platforma-desktop-v2`
28
- 2. Set the correct RELATIVE path to `platforma-desktop-v2` in `.vscode/settings.json` variable `platformaDesktopPath`
29
- 3. Build this package by following the build steps from above
30
- 4. Use VSCode launch configuration for your platform to start debug session
27
+ 1. Clone and build the latest `platforma-desktop-v2` (`git clean -dffx && npm i && npm run build`)
28
+ 2. Set the correct RELATIVE path to `platforma-desktop-v2` in `.vscode/settings.json` variable `platformaDesktopPath` (default is `../platforma-desktop-v2`)
29
+ 3. Build this package by following the build steps from above (for faster build use `npm run dev-build`)
30
+ 4. Use VSCode launch configuration for your platform to start debug session ([VSCode debugging guide](https://code.visualstudio.com/docs/debugtest/debugging))
31
31
 
32
32
  ### Performance profiling
33
33
  1. Clone and build the latest `platforma-desktop-v2`
@@ -15,12 +15,17 @@ import {
15
15
  } from '@milaboratories/pl-model-common';
16
16
  import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
17
17
 
18
+ export type TableId = string;
19
+
18
20
  export interface NodeFrameSymbol extends Symbol {}
19
21
 
20
22
  export interface NodeTableSymbol extends Symbol {}
21
23
 
22
24
  interface NodeFrame {
23
- pFrameCreate: (logger?: PFrameInternal.Logger) => NodeFrameSymbol;
25
+ pFrameCreate: (
26
+ tempDir: string,
27
+ logger?: PFrameInternal.Logger
28
+ ) => NodeFrameSymbol;
24
29
  pFrameAddColumnSpec: (
25
30
  pFrame: NodeFrameSymbol,
26
31
  columnId: PObjectId,
@@ -51,11 +56,13 @@ interface NodeFrame {
51
56
  pFrameListColumns: (pFrame: NodeFrameSymbol) => Promise<PColumnInfo[]>;
52
57
  pFrameCreateTable: (
53
58
  pFrame: NodeFrameSymbol,
59
+ id: TableId,
54
60
  request: PFrameInternal.CreateTableRequestV2,
55
61
  signal?: AbortSignal
56
62
  ) => Promise<NodeTableSymbol>;
57
63
  pFrameGetUniqueValues: (
58
64
  pFrame: NodeFrameSymbol,
65
+ id: TableId,
59
66
  request: UniqueValuesRequest,
60
67
  signal?: AbortSignal
61
68
  ) => Promise<UniqueValuesResponse>;
@@ -70,16 +77,19 @@ interface NodeTable {
70
77
  ) => number[];
71
78
  pTableGetData: (
72
79
  boxed: NodeTableSymbol,
80
+ id: TableId,
73
81
  columnIndices: number[],
74
82
  range?: TableRange
75
83
  ) => Promise<PTableVector[]>;
76
84
  pTableFilter: (
77
85
  boxed: NodeTableSymbol,
86
+ id: TableId,
78
87
  request: PTableRecordFilter[],
79
88
  signal?: AbortSignal
80
89
  ) => Promise<NodeTableSymbol>;
81
90
  pTableSort: (
82
91
  boxed: NodeTableSymbol,
92
+ id: TableId,
83
93
  request: PTableSorting[],
84
94
  signal?: AbortSignal
85
95
  ) => Promise<NodeTableSymbol>;
package/export/export.ts CHANGED
@@ -2,7 +2,10 @@ import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
2
  import { PFrame as PFrameImpl } from './wrapper';
3
3
 
4
4
  export type PFrame = {
5
- new (logger?: PFrameInternal.Logger): PFrameInternal.PFrameV4;
5
+ new (
6
+ tempDir: string,
7
+ logger?: PFrameInternal.Logger
8
+ ): PFrameInternal.PFrameV4;
6
9
  };
7
10
 
8
11
  export const PFrame: PFrame = PFrameImpl;
package/export/wrapper.ts CHANGED
@@ -23,7 +23,10 @@ export class PFrame implements PFrameInternal.PFrameV4 {
23
23
  public readonly id: string = ulid();
24
24
  private readonly frame: NodeFrameSymbol;
25
25
 
26
- constructor(public readonly logger?: PFrameInternal.Logger) {
26
+ constructor(
27
+ tempDir: string,
28
+ public readonly logger?: PFrameInternal.Logger
29
+ ) {
27
30
  dump(
28
31
  [`${this.id}`, `${this.id}.json`],
29
32
  {
@@ -34,7 +37,7 @@ export class PFrame implements PFrameInternal.PFrameV4 {
34
37
  );
35
38
 
36
39
  try {
37
- this.frame = AddonSymbol.pFrameCreate(logger);
40
+ this.frame = AddonSymbol.pFrameCreate(tempDir, logger);
38
41
  } catch (err: unknown) {
39
42
  throw new Error(
40
43
  `PFrame creation failed, ` +
@@ -369,6 +372,7 @@ export class PFrame implements PFrameInternal.PFrameV4 {
369
372
  try {
370
373
  const boxed = await AddonSymbol.pFrameCreateTable(
371
374
  this.frame,
375
+ requestId,
372
376
  request,
373
377
  signal
374
378
  );
@@ -408,6 +412,7 @@ export class PFrame implements PFrameInternal.PFrameV4 {
408
412
  try {
409
413
  return await AddonSymbol.pFrameGetUniqueValues(
410
414
  this.frame,
415
+ requestId,
411
416
  request,
412
417
  signal
413
418
  );
@@ -525,7 +530,12 @@ class PTable implements PFrameInternal.PTableV3 {
525
530
 
526
531
  const t0 = performance.now();
527
532
  try {
528
- return await AddonSymbol.pTableGetData(this.table, columnIndices, range);
533
+ return await AddonSymbol.pTableGetData(
534
+ this.table,
535
+ requestId,
536
+ columnIndices,
537
+ range
538
+ );
529
539
  } catch (err: unknown) {
530
540
  throw new Error(
531
541
  `PTable getData request failed, ` +
@@ -567,7 +577,12 @@ class PTable implements PFrameInternal.PTableV3 {
567
577
 
568
578
  const t0 = performance.now();
569
579
  try {
570
- const boxed = await AddonSymbol.pTableFilter(this.table, request, signal);
580
+ const boxed = await AddonSymbol.pTableFilter(
581
+ this.table,
582
+ requestId,
583
+ request,
584
+ signal
585
+ );
571
586
  return new PTable(this.frame, requestId, boxed);
572
587
  } catch (err: unknown) {
573
588
  throw new Error(
@@ -609,7 +624,12 @@ class PTable implements PFrameInternal.PTableV3 {
609
624
 
610
625
  const t0 = performance.now();
611
626
  try {
612
- const boxed = await AddonSymbol.pTableSort(this.table, request, signal);
627
+ const boxed = await AddonSymbol.pTableSort(
628
+ this.table,
629
+ requestId,
630
+ request,
631
+ signal
632
+ );
613
633
  return new PTable(this.frame, requestId, boxed);
614
634
  } catch (err: unknown) {
615
635
  throw new Error(
@@ -1,11 +1,12 @@
1
1
  import { DataInfo, PColumnInfo, PColumnSpec, PObjectId, PTableColumnId, PTableColumnSpec, PTableRecordFilter, PTableShape, PTableSorting, PTableVector, TableRange, UniqueValuesRequest, UniqueValuesResponse } from '@milaboratories/pl-model-common';
2
2
  import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
3
+ export type TableId = string;
3
4
  export interface NodeFrameSymbol extends Symbol {
4
5
  }
5
6
  export interface NodeTableSymbol extends Symbol {
6
7
  }
7
8
  interface NodeFrame {
8
- pFrameCreate: (logger?: PFrameInternal.Logger) => NodeFrameSymbol;
9
+ pFrameCreate: (tempDir: string, logger?: PFrameInternal.Logger) => NodeFrameSymbol;
9
10
  pFrameAddColumnSpec: (pFrame: NodeFrameSymbol, columnId: PObjectId, columnSpec: PColumnSpec) => void;
10
11
  pFrameSetDataSource: (pFrame: NodeFrameSymbol, dataSource: PFrameInternal.PFrameDataSource) => void;
11
12
  pFrameSetColumnData: (pFrame: NodeFrameSymbol, columnId: PObjectId, dataInfo: DataInfo<PFrameInternal.PFrameBlobId>) => void;
@@ -14,16 +15,16 @@ interface NodeFrame {
14
15
  pFrameDeleteColumn: (pFrame: NodeFrameSymbol, request: PFrameInternal.DeleteColumnFromColumnsRequest) => Promise<PFrameInternal.DeleteColumnFromColumnsResponse>;
15
16
  pFrameGetColumnSpec: (pFrame: NodeFrameSymbol, columnId: PObjectId) => Promise<PColumnSpec>;
16
17
  pFrameListColumns: (pFrame: NodeFrameSymbol) => Promise<PColumnInfo[]>;
17
- pFrameCreateTable: (pFrame: NodeFrameSymbol, request: PFrameInternal.CreateTableRequestV2, signal?: AbortSignal) => Promise<NodeTableSymbol>;
18
- pFrameGetUniqueValues: (pFrame: NodeFrameSymbol, request: UniqueValuesRequest, signal?: AbortSignal) => Promise<UniqueValuesResponse>;
18
+ pFrameCreateTable: (pFrame: NodeFrameSymbol, id: TableId, request: PFrameInternal.CreateTableRequestV2, signal?: AbortSignal) => Promise<NodeTableSymbol>;
19
+ pFrameGetUniqueValues: (pFrame: NodeFrameSymbol, id: TableId, request: UniqueValuesRequest, signal?: AbortSignal) => Promise<UniqueValuesResponse>;
19
20
  }
20
21
  interface NodeTable {
21
22
  pTableGetShape: (boxed: NodeTableSymbol) => PTableShape;
22
23
  pTableGetSpec: (boxed: NodeTableSymbol) => PTableColumnSpec[];
23
24
  pTableGetColumnIndices: (boxed: NodeTableSymbol, columnIds: PTableColumnId[]) => number[];
24
- pTableGetData: (boxed: NodeTableSymbol, columnIndices: number[], range?: TableRange) => Promise<PTableVector[]>;
25
- pTableFilter: (boxed: NodeTableSymbol, request: PTableRecordFilter[], signal?: AbortSignal) => Promise<NodeTableSymbol>;
26
- pTableSort: (boxed: NodeTableSymbol, request: PTableSorting[], signal?: AbortSignal) => Promise<NodeTableSymbol>;
25
+ pTableGetData: (boxed: NodeTableSymbol, id: TableId, columnIndices: number[], range?: TableRange) => Promise<PTableVector[]>;
26
+ pTableFilter: (boxed: NodeTableSymbol, id: TableId, request: PTableRecordFilter[], signal?: AbortSignal) => Promise<NodeTableSymbol>;
27
+ pTableSort: (boxed: NodeTableSymbol, id: TableId, request: PTableSorting[], signal?: AbortSignal) => Promise<NodeTableSymbol>;
27
28
  pTableDispose: (boxed: NodeTableSymbol) => void;
28
29
  }
29
30
  export interface AddonSymbol extends Symbol, NodeFrame, NodeTable {
@@ -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":"AAAA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,eAAgB,SAAQ,MAAM;CAAG;AAElD,MAAM,WAAW,eAAgB,SAAQ,MAAM;CAAG;AAElD,UAAU,SAAS;IACjB,YAAY,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,KAC3B,eAAe,CAAC;IACrB,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW,KACpB,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,cAAc,CAAC,gBAAgB,KACxC,IAAI,CAAC;IACV,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,KAC5C,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,iBAAiB,EAAE,CACjB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,cAAc,CAAC,kBAAkB,KACvC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACjD,kBAAkB,EAAE,CAClB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,cAAc,CAAC,8BAA8B,KACnD,OAAO,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC;IAC7D,mBAAmB,EAAE,CACnB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,SAAS,KAChB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,iBAAiB,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,iBAAiB,EAAE,CACjB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,cAAc,CAAC,oBAAoB,EAC5C,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,qBAAqB,EAAE,CACrB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpC;AAED,UAAU,SAAS;IACjB,cAAc,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,WAAW,CAAC;IACxD,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,gBAAgB,EAAE,CAAC;IAC9D,sBAAsB,EAAE,CACtB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,cAAc,EAAE,KACxB,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,CACb,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,aAAa,EAAE,MAAM,EAAE,EACvB,KAAK,CAAC,EAAE,UAAU,KACf,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7B,YAAY,EAAE,CACZ,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,kBAAkB,EAAE,EAC7B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,UAAU,EAAE,CACV,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,aAAa,EAAE,EACxB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,WAAY,SAAQ,MAAM,EAAE,SAAS,EAAE,SAAS;CAAG"}
@@ -1,6 +1,6 @@
1
1
  import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
2
  export type PFrame = {
3
- new (logger?: PFrameInternal.Logger): PFrameInternal.PFrameV4;
3
+ new (tempDir: 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,KAAK,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;CAC/D,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,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,5 +1,5 @@
1
- "use strict";var y=Object.defineProperty;var q=(m,e,t)=>e in m?y(m,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):m[e]=t;var p=(m,e,t)=>q(m,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("ulid"),D=require("node:module"),h=require("node:path"),b=require("node:url"),T=require("@mapbox/node-pre-gyp"),d=require("node:fs"),g=require("node:stream");var $=typeof document<"u"?document.currentScript:null;const w=typeof document>"u"?require("url").pathToFileURL(__filename).href:$&&$.tagName.toUpperCase()==="SCRIPT"&&$.src||new URL("index.js",document.baseURI).href,F=h.dirname(b.fileURLToPath(w)),P=D.createRequire(w),{find:C}=T,l=P(C(h.resolve(F,"../package.json")));async function S(m){try{return await d.promises.access(m),!0}catch{return!1}}async function j(m){await S(m)||await d.promises.mkdir(m,{recursive:!0})}async function E(m,e){const t=`${m}.tmp`;await S(t)&&await d.promises.rm(t,{recursive:!0});const r=typeof e=="string"?Buffer.from(e,"utf8"):e,o=g.Readable.from(r),s=d.createWriteStream(t,{flags:"wx"});await g.Readable.toWeb(o).pipeTo(g.Writable.toWeb(s)),await d.promises.rename(t,m)}async function a(m,e,t){if(process.env.MI_DUMP_PFRAMES_RS)try{const r=m.map(n=>encodeURIComponent(n)),o=h.join(process.env.MI_DUMP_PFRAMES_RS,...r.slice(0,-1));await j(o);const s=h.join(process.env.MI_DUMP_PFRAMES_RS,...r),i=ArrayBuffer.isView(e)?e:JSON.stringify(e);await E(s,i)}catch(r){t==null||t("warn",`error while dumping PFrames data: ${r}`)}}let M=class{constructor(e){p(this,"id",u.ulid());p(this,"frame");this.logger=e,a([`${this.id}`,`${this.id}.json`],{timeStamp:Date.now(),requestType:"create"},this.logger);try{this.frame=l.pFrameCreate(e)}catch(t){throw new Error(`PFrame creation failed, logger: ${e==null?void 0:e.toString()}, error:
2
- ${t.toString()}`)}}addColumnSpec(e,t){const r=u.ulid();a([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:e,columnSpec:t}},this.logger),a([`${this.id}`,"data",`${e}.spec`],{...t},this.logger);try{return l.pFrameAddColumnSpec(this.frame,e,t)}catch(o){throw new Error(`PFrame addColumnSpec request failed, columnId: ${JSON.stringify(e)}, columnSpec: ${JSON.stringify(t)}, error:
1
+ "use strict";var y=Object.defineProperty;var q=(m,e,t)=>e in m?y(m,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):m[e]=t;var p=(m,e,t)=>q(m,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("ulid"),D=require("node:module"),h=require("node:path"),b=require("node:url"),T=require("@mapbox/node-pre-gyp"),d=require("node:fs"),g=require("node:stream");var $=typeof document<"u"?document.currentScript:null;const w=typeof document>"u"?require("url").pathToFileURL(__filename).href:$&&$.tagName.toUpperCase()==="SCRIPT"&&$.src||new URL("index.js",document.baseURI).href,F=h.dirname(b.fileURLToPath(w)),P=D.createRequire(w),{find:C}=T,l=P(C(h.resolve(F,"../package.json")));async function S(m){try{return await d.promises.access(m),!0}catch{return!1}}async function j(m){await S(m)||await d.promises.mkdir(m,{recursive:!0})}async function E(m,e){const t=`${m}.tmp`;await S(t)&&await d.promises.rm(t,{recursive:!0});const r=typeof e=="string"?Buffer.from(e,"utf8"):e,o=g.Readable.from(r),s=d.createWriteStream(t,{flags:"wx"});await g.Readable.toWeb(o).pipeTo(g.Writable.toWeb(s)),await d.promises.rename(t,m)}async function a(m,e,t){if(process.env.MI_DUMP_PFRAMES_RS)try{const r=m.map(n=>encodeURIComponent(n)),o=h.join(process.env.MI_DUMP_PFRAMES_RS,...r.slice(0,-1));await j(o);const s=h.join(process.env.MI_DUMP_PFRAMES_RS,...r),i=ArrayBuffer.isView(e)?e:JSON.stringify(e);await E(s,i)}catch(r){t==null||t("warn",`error while dumping PFrames data: ${r}`)}}let M=class{constructor(e,t){p(this,"id",u.ulid());p(this,"frame");this.logger=t,a([`${this.id}`,`${this.id}.json`],{timeStamp:Date.now(),requestType:"create"},this.logger);try{this.frame=l.pFrameCreate(e,t)}catch(r){throw new Error(`PFrame creation failed, logger: ${t==null?void 0:t.toString()}, error:
2
+ ${r.toString()}`)}}addColumnSpec(e,t){const r=u.ulid();a([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:e,columnSpec:t}},this.logger),a([`${this.id}`,"data",`${e}.spec`],{...t},this.logger);try{return l.pFrameAddColumnSpec(this.frame,e,t)}catch(o){throw new Error(`PFrame addColumnSpec request failed, columnId: ${JSON.stringify(e)}, columnSpec: ${JSON.stringify(t)}, error:
3
3
  ${o.toString()}`)}}setDataSource(e){const t=u.ulid();a([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"setDataSource"},this.logger);let r={preloadBlob:async o=>{var n;const s=u.ulid();a([`${this.id}`,`${s}.json`],{timeStamp:Date.now(),requestType:"preloadBlob",requestData:{blobIds:o}},this.logger);const i=performance.now();try{return e.preloadBlob(o)}finally{const c=performance.now();(n=this.logger)==null||n.call(this,"info",`PFrame preloaded ${o.length} blobs, took ${Math.round(c-i)}ms`)}},resolveBlobContent:async o=>{const s=u.ulid();a([`${this.id}`,`${s}.json`],{timeStamp:Date.now(),requestType:"resolveBlobContent",requestData:{blobId:o}},this.logger);const i=await e.resolveBlobContent(o);return a([`${this.id}`,"data",`${o}`],i,this.logger),i}};try{return l.pFrameSetDataSource(this.frame,r)}catch(o){throw new Error(`PFrame setDataSource request failed, dataSource: ${e.toString()}, error:
4
4
  ${o.toString()}`)}}setColumnData(e,t){const r=u.ulid();a([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"setColumnData",requestData:{columnId:e,dataInfo:t}},this.logger),a([`${this.id}`,"data",`${e}.datainfo`],{...t},this.logger);try{return l.pFrameSetColumnData(this.frame,e,t)}catch(o){throw new Error(`PFrame setColumnData request failed, columnId: ${JSON.stringify(e)}, dataInfo: ${JSON.stringify(t)}, error:
5
5
  ${o.toString()}`)}}dispose(){const e=u.ulid();a([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.logger);try{l.pFrameDispose(this.frame)}catch(t){throw new Error(`PFrame dispose request failed, error:
@@ -7,14 +7,14 @@ ${t.toString()}`)}}[Symbol.dispose](){this.dispose()}async findColumns(e){var o;
7
7
  ${s.toString()}`)}finally{const s=performance.now();(o=this.logger)==null||o.call(this,"info",`PFrame findColumns request took ${Math.round(s-r)}ms`)}}async deleteColumn(e){var o;const t=u.ulid();a([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"deleteColumn",requestData:e},this.logger);const r=performance.now();try{return await l.pFrameDeleteColumn(this.frame,e)}catch(s){throw new Error(`PFrame deleteColumn request failed, request: ${JSON.stringify(e)}, error:
8
8
  ${s.toString()}`)}finally{const s=performance.now();(o=this.logger)==null||o.call(this,"info",`PFrame deleteColumn request took ${Math.round(s-r)}ms`)}}async getColumnSpec(e){var o;const t=u.ulid();a([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getColumnSpec",requestData:{columnId:e}},this.logger);const r=performance.now();try{return await l.pFrameGetColumnSpec(this.frame,e)}catch(s){throw new Error(`PFrame getColumnSpec request failed, columnId: ${JSON.stringify(e)}, error:
9
9
  ${s.toString()}`)}finally{const s=performance.now();(o=this.logger)==null||o.call(this,"info",`PFrame getColumnSpec request took ${Math.round(s-r)}ms`)}}async listColumns(){var r;const e=u.ulid();a([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"listColumns"},this.logger);const t=performance.now();try{return await l.pFrameListColumns(this.frame)}catch(o){throw new Error(`PFrame listColumns request failed, error:
10
- ${o.toString()}`)}finally{const o=performance.now();(r=this.logger)==null||r.call(this,"info",`PFrame listColumns request took ${Math.round(o-t)}ms`)}}async createTable(e,t){var i;const r=u.ulid(),o={timeStamp:Date.now(),requestType:"createTable",requestData:e};a([`${this.id}`,`${r}.json`],o,this.logger),a([`${this.id}`,`${r}`,`${r}.json`],o,this.logger);const s=performance.now();try{const n=await l.pFrameCreateTable(this.frame,e,t);return new f(this,r,n)}catch(n){throw new Error(`PFrame createTable request failed, request: ${JSON.stringify(e)}, error:
11
- ${n.toString()}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame createTable request took ${Math.round(n-s)}ms`)}}async getUniqueValues(e,t){var s;const r=u.ulid();a([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:e},this.logger);const o=performance.now();try{return await l.pFrameGetUniqueValues(this.frame,e,t)}catch(i){throw new Error(`PFrame getUniqueValues request failed, request: ${JSON.stringify(e)}, error:
10
+ ${o.toString()}`)}finally{const o=performance.now();(r=this.logger)==null||r.call(this,"info",`PFrame listColumns request took ${Math.round(o-t)}ms`)}}async createTable(e,t){var i;const r=u.ulid(),o={timeStamp:Date.now(),requestType:"createTable",requestData:e};a([`${this.id}`,`${r}.json`],o,this.logger),a([`${this.id}`,`${r}`,`${r}.json`],o,this.logger);const s=performance.now();try{const n=await l.pFrameCreateTable(this.frame,r,e,t);return new f(this,r,n)}catch(n){throw new Error(`PFrame createTable request failed, request: ${JSON.stringify(e)}, error:
11
+ ${n.toString()}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame createTable request took ${Math.round(n-s)}ms`)}}async getUniqueValues(e,t){var s;const r=u.ulid();a([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:e},this.logger);const o=performance.now();try{return await l.pFrameGetUniqueValues(this.frame,r,e,t)}catch(i){throw new Error(`PFrame getUniqueValues request failed, request: ${JSON.stringify(e)}, error:
12
12
  ${i.toString()}`)}finally{const i=performance.now();(s=this.logger)==null||s.call(this,"info",`PFrame getUniqueValues request took ${Math.round(i-o)}ms`)}}};class f{constructor(e,t,r){this.frame=e,this.id=t,this.table=r}getShape(){const e=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getShape"},this.frame.logger);try{return l.pTableGetShape(this.table)}catch(t){throw new Error(`PTable getShape request failed, error:
13
13
  ${t.toString()}`)}}getSpec(){const e=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getSpec"},this.frame.logger);try{return l.pTableGetSpec(this.table)}catch(t){throw new Error(`PTable getSpec request failed, error:
14
14
  ${t.toString()}`)}}getColumnIndices(e){const t=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getColumnIndices",requestData:{columnIds:e}},this.frame.logger);try{return l.pTableGetColumnIndices(this.table,e)}catch(r){throw new Error(`PTable getColumnIndices request failed, columnIds: ${JSON.stringify(e)}, error:
15
- ${r.toString()}`)}}async getData(e,t){var s,i;const r=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:e,range:t??null}},this.frame.logger);const o=performance.now();try{return await l.pTableGetData(this.table,e,t)}catch(n){throw new Error(`PTable getData request failed, columnIndices: ${JSON.stringify(e)}, range: ${t?JSON.stringify(t):void 0}, error:
16
- ${n.toString()}`)}finally{const n=performance.now();(i=(s=this.frame).logger)==null||i.call(s,"info",`PTable getData request took ${Math.round(n-o)}ms`)}}async filter(e,t){var i,n;const r=u.ulid(),o={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:e};a([`${this.frame.id}`,`${r}.json`],o,this.frame.logger),a([`${this.frame.id}`,`${r}`,`${r}.json`],o,this.frame.logger);const s=performance.now();try{const c=await l.pTableFilter(this.table,e,t);return new f(this.frame,r,c)}catch(c){throw new Error(`PTable filter request failed, request: ${JSON.stringify(e)}, error:
17
- ${c.toString()}`)}finally{const c=performance.now();(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable filter request took ${Math.round(c-s)}ms`)}}async sort(e,t){var i,n;const r=u.ulid(),o={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:e};a([`${this.frame.id}`,`${r}.json`],o,this.frame.logger),a([`${this.frame.id}`,`${r}`,`${r}.json`],o,this.frame.logger);const s=performance.now();try{const c=await l.pTableSort(this.table,e,t);return new f(this.frame,r,c)}catch(c){throw new Error(`PTable sort request failed, request: ${JSON.stringify(e)}, error:
15
+ ${r.toString()}`)}}async getData(e,t){var s,i;const r=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:e,range:t??null}},this.frame.logger);const o=performance.now();try{return await l.pTableGetData(this.table,r,e,t)}catch(n){throw new Error(`PTable getData request failed, columnIndices: ${JSON.stringify(e)}, range: ${t?JSON.stringify(t):void 0}, error:
16
+ ${n.toString()}`)}finally{const n=performance.now();(i=(s=this.frame).logger)==null||i.call(s,"info",`PTable getData request took ${Math.round(n-o)}ms`)}}async filter(e,t){var i,n;const r=u.ulid(),o={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:e};a([`${this.frame.id}`,`${r}.json`],o,this.frame.logger),a([`${this.frame.id}`,`${r}`,`${r}.json`],o,this.frame.logger);const s=performance.now();try{const c=await l.pTableFilter(this.table,r,e,t);return new f(this.frame,r,c)}catch(c){throw new Error(`PTable filter request failed, request: ${JSON.stringify(e)}, error:
17
+ ${c.toString()}`)}finally{const c=performance.now();(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable filter request took ${Math.round(c-s)}ms`)}}async sort(e,t){var i,n;const r=u.ulid(),o={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:e};a([`${this.frame.id}`,`${r}.json`],o,this.frame.logger),a([`${this.frame.id}`,`${r}`,`${r}.json`],o,this.frame.logger);const s=performance.now();try{const c=await l.pTableSort(this.table,r,e,t);return new f(this.frame,r,c)}catch(c){throw new Error(`PTable sort request failed, request: ${JSON.stringify(e)}, error:
18
18
  ${c.toString()}`)}finally{const c=performance.now();(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable sort request took ${Math.round(c-s)}ms`)}}dispose(){const e=u.ulid();a([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.frame.logger);try{l.pTableDispose(this.table)}catch(t){throw new Error(`PTable dispose request failed, error:
19
19
  ${t.toString()}`)}}[Symbol.dispose](){this.dispose()}}const I=M;exports.PFrame=I;
20
20
  //# sourceMappingURL=index.js.map
@@ -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(public readonly logger?: PFrameInternal.Logger) {\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(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 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 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(this.table, columnIndices, range);\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(this.table, request, signal);\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(this.table, request, signal);\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 (logger?: PFrameInternal.Logger): 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","__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 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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"}
@@ -42,10 +42,10 @@ async function a(c, e, t) {
42
42
  }
43
43
  }
44
44
  let N = class {
45
- constructor(e) {
45
+ constructor(e, t) {
46
46
  p(this, "id", m());
47
47
  p(this, "frame");
48
- this.logger = e, a(
48
+ this.logger = t, a(
49
49
  [`${this.id}`, `${this.id}.json`],
50
50
  {
51
51
  timeStamp: Date.now(),
@@ -54,11 +54,11 @@ let N = class {
54
54
  this.logger
55
55
  );
56
56
  try {
57
- this.frame = l.pFrameCreate(e);
58
- } catch (t) {
57
+ this.frame = l.pFrameCreate(e, t);
58
+ } catch (r) {
59
59
  throw new Error(
60
- `PFrame creation failed, logger: ${e == null ? void 0 : e.toString()}, error:
61
- ${t.toString()}`
60
+ `PFrame creation failed, logger: ${t == null ? void 0 : t.toString()}, error:
61
+ ${r.toString()}`
62
62
  );
63
63
  }
64
64
  }
@@ -338,6 +338,7 @@ ${o.toString()}`
338
338
  try {
339
339
  const n = await l.pFrameCreateTable(
340
340
  this.frame,
341
+ r,
341
342
  e,
342
343
  t
343
344
  );
@@ -372,6 +373,7 @@ ${n.toString()}`
372
373
  try {
373
374
  return await l.pFrameGetUniqueValues(
374
375
  this.frame,
376
+ r,
375
377
  e,
376
378
  t
377
379
  );
@@ -471,7 +473,12 @@ ${r.toString()}`
471
473
  );
472
474
  const o = performance.now();
473
475
  try {
474
- return await l.pTableGetData(this.table, e, t);
476
+ return await l.pTableGetData(
477
+ this.table,
478
+ r,
479
+ e,
480
+ t
481
+ );
475
482
  } catch (n) {
476
483
  throw new Error(
477
484
  `PTable getData request failed, columnIndices: ${JSON.stringify(e)}, range: ${t ? JSON.stringify(t) : void 0}, error:
@@ -505,7 +512,12 @@ ${n.toString()}`
505
512
  );
506
513
  const s = performance.now();
507
514
  try {
508
- const u = await l.pTableFilter(this.table, e, t);
515
+ const u = await l.pTableFilter(
516
+ this.table,
517
+ r,
518
+ e,
519
+ t
520
+ );
509
521
  return new f(this.frame, r, u);
510
522
  } catch (u) {
511
523
  throw new Error(
@@ -540,7 +552,12 @@ ${u.toString()}`
540
552
  );
541
553
  const s = performance.now();
542
554
  try {
543
- const u = await l.pTableSort(this.table, e, t);
555
+ const u = await l.pTableSort(
556
+ this.table,
557
+ r,
558
+ e,
559
+ t
560
+ );
544
561
  return new f(this.frame, r, u);
545
562
  } catch (u) {
546
563
  throw new Error(
@@ -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(public readonly logger?: PFrameInternal.Logger) {\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(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 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 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(this.table, columnIndices, range);\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(this.table, request, signal);\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(this.table, request, signal);\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 (logger?: PFrameInternal.Logger): 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","__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 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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"}
@@ -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(logger?: PFrameInternal.Logger | undefined);
7
+ constructor(tempDir: 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;aAIxB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IAH1D,SAAgB,EAAE,EAAE,MAAM,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAEZ,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,YAAA;IAsB1D,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;IAsC7B,eAAe,CACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC;CAkCjC"}
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"}
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.27",
4
+ "version": "1.0.28",
5
5
  "types": "./export_dist/index.d.ts",
6
6
  "main": "./export_dist/index.js",
7
7
  "module": "./export_dist/index.mjs",
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "dependencies": {
20
20
  "@mapbox/node-pre-gyp": "^2.0.0",
21
- "@milaboratories/pl-model-middle-layer": "1.7.21",
21
+ "@milaboratories/pl-model-middle-layer": "1.7.26",
22
22
  "ulid": "^3.0.0"
23
23
  },
24
24
  "peerDependencies": {
@@ -27,12 +27,12 @@
27
27
  "devDependencies": {
28
28
  "@rollup/plugin-node-resolve": "^16.0.1",
29
29
  "@types/node": "^20.17.30",
30
- "@vitest/coverage-istanbul": "^3.1.1",
30
+ "@vitest/coverage-istanbul": "^3.1.2",
31
31
  "cargo-cp-artifact": "^0.1.9",
32
32
  "rollup-plugin-node-externals": "^8.0.0",
33
33
  "typescript": "^5.8.3",
34
34
  "vite-plugin-dts": "^4.5.3",
35
- "vitest": "^3.1.1"
35
+ "vitest": "^3.1.2"
36
36
  },
37
37
  "binary": {
38
38
  "module_name": "pframes_rs_node",
@@ -52,7 +52,8 @@
52
52
  "pack": "node-pre-gyp package && node-pre-gyp reveal staged_tarball --silent",
53
53
  "pretest": "npm run build",
54
54
  "test": "vitest",
55
- "predev-test": "npm run cargo-build -- --locked && npm run vite-build",
55
+ "dev-build": "npm run cargo-build -- --locked && npm run vite-build",
56
+ "predev-test": "npm run dev-build",
56
57
  "dev-test": "vitest",
57
58
  "precoverage-vscode": "npm run predev-test",
58
59
  "coverage-vscode": "vitest run --coverage",