@milaboratories/pframes-rs-node 1.0.31 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/export/addon-def.ts +1 -1
- package/export/export.ts +1 -1
- package/export/wrapper.ts +36 -31
- package/export_dist/addon-def.d.ts +1 -1
- package/export_dist/export.d.ts +1 -1
- package/export_dist/index.js +19 -19
- package/export_dist/index.js.map +1 -1
- package/export_dist/index.mjs +186 -182
- package/export_dist/index.mjs.map +1 -1
- package/export_dist/wrapper.d.ts +2 -2
- package/export_dist/wrapper.d.ts.map +1 -1
- package/package.json +5 -5
package/export/addon-def.ts
CHANGED
|
@@ -57,7 +57,7 @@ interface NodeFrame {
|
|
|
57
57
|
pFrameCreateTable: (
|
|
58
58
|
pFrame: NodeFrameSymbol,
|
|
59
59
|
id: TableId,
|
|
60
|
-
request: PFrameInternal.
|
|
60
|
+
request: PFrameInternal.CreateTableRequestV3,
|
|
61
61
|
signal?: AbortSignal
|
|
62
62
|
) => Promise<NodeTableSymbol>;
|
|
63
63
|
pFrameGetUniqueValues: (
|
package/export/export.ts
CHANGED
package/export/wrapper.ts
CHANGED
|
@@ -19,7 +19,7 @@ import type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';
|
|
|
19
19
|
import { AddonSymbol } from './addon';
|
|
20
20
|
import { dump } from './dump';
|
|
21
21
|
|
|
22
|
-
export class PFrame implements PFrameInternal.
|
|
22
|
+
export class PFrame implements PFrameInternal.PFrameV6 {
|
|
23
23
|
public readonly id: string = ulid();
|
|
24
24
|
private readonly frame: NodeFrameSymbol;
|
|
25
25
|
|
|
@@ -38,9 +38,10 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
38
38
|
|
|
39
39
|
try {
|
|
40
40
|
this.frame = AddonSymbol.pFrameCreate(spillPath, logger);
|
|
41
|
+
this.logger?.('info', `PFrame ${this.id} created`);
|
|
41
42
|
} catch (err: unknown) {
|
|
42
43
|
throw new Error(
|
|
43
|
-
`PFrame creation failed, ` +
|
|
44
|
+
`PFrame ${this.id} creation failed, ` +
|
|
44
45
|
`logger: ${logger?.toString()}, ` +
|
|
45
46
|
`error:\n` +
|
|
46
47
|
`${(err as Error).toString()}`
|
|
@@ -75,7 +76,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
75
76
|
return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);
|
|
76
77
|
} catch (err: unknown) {
|
|
77
78
|
throw new Error(
|
|
78
|
-
`PFrame addColumnSpec request failed, ` +
|
|
79
|
+
`PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +
|
|
79
80
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
80
81
|
`columnSpec: ${JSON.stringify(columnSpec)}, ` +
|
|
81
82
|
`error:\n` +
|
|
@@ -119,7 +120,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
119
120
|
const t1 = performance.now();
|
|
120
121
|
this.logger?.(
|
|
121
122
|
'info',
|
|
122
|
-
`PFrame preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`
|
|
123
|
+
`PFrame ${this.id} preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`
|
|
123
124
|
);
|
|
124
125
|
}
|
|
125
126
|
},
|
|
@@ -150,7 +151,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
150
151
|
return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);
|
|
151
152
|
} catch (err: unknown) {
|
|
152
153
|
throw new Error(
|
|
153
|
-
`PFrame setDataSource request failed, ` +
|
|
154
|
+
`PFrame ${this.id} setDataSource request ${requestId} failed, ` +
|
|
154
155
|
`dataSource: ${dataSource.toString()}, ` +
|
|
155
156
|
`error:\n` +
|
|
156
157
|
`${(err as Error).toString()}`
|
|
@@ -188,7 +189,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
188
189
|
return AddonSymbol.pFrameSetColumnData(this.frame, columnId, dataInfo);
|
|
189
190
|
} catch (err: unknown) {
|
|
190
191
|
throw new Error(
|
|
191
|
-
`PFrame setColumnData request failed, ` +
|
|
192
|
+
`PFrame ${this.id} setColumnData request ${requestId} failed, ` +
|
|
192
193
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
193
194
|
`dataInfo: ${JSON.stringify(dataInfo)}, ` +
|
|
194
195
|
`error:\n` +
|
|
@@ -210,9 +211,10 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
210
211
|
|
|
211
212
|
try {
|
|
212
213
|
AddonSymbol.pFrameDispose(this.frame);
|
|
214
|
+
this.logger?.('info', `PFrame ${this.id} disposed`);
|
|
213
215
|
} catch (err: unknown) {
|
|
214
216
|
throw new Error(
|
|
215
|
-
`PFrame dispose request failed, ` +
|
|
217
|
+
`PFrame ${this.id} dispose request ${requestId} failed, ` +
|
|
216
218
|
`error:\n` +
|
|
217
219
|
`${(err as Error).toString()}`
|
|
218
220
|
);
|
|
@@ -242,7 +244,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
242
244
|
return await AddonSymbol.pFrameFindColumns(this.frame, request);
|
|
243
245
|
} catch (err: unknown) {
|
|
244
246
|
throw new Error(
|
|
245
|
-
`PFrame findColumns request failed, ` +
|
|
247
|
+
`PFrame ${this.id} findColumns request ${requestId} failed, ` +
|
|
246
248
|
`request: ${JSON.stringify(request)}, ` +
|
|
247
249
|
`error:\n` +
|
|
248
250
|
`${(err as Error).toString()}`
|
|
@@ -251,7 +253,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
251
253
|
const t1 = performance.now();
|
|
252
254
|
this.logger?.(
|
|
253
255
|
'info',
|
|
254
|
-
`PFrame findColumns request took ${Math.round(t1 - t0)}ms`
|
|
256
|
+
`PFrame ${this.id} findColumns request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
255
257
|
);
|
|
256
258
|
}
|
|
257
259
|
}
|
|
@@ -275,7 +277,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
275
277
|
return await AddonSymbol.pFrameDeleteColumn(this.frame, request);
|
|
276
278
|
} catch (err: unknown) {
|
|
277
279
|
throw new Error(
|
|
278
|
-
`PFrame deleteColumn request failed, ` +
|
|
280
|
+
`PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
|
|
279
281
|
`request: ${JSON.stringify(request)}, ` +
|
|
280
282
|
`error:\n` +
|
|
281
283
|
`${(err as Error).toString()}`
|
|
@@ -284,7 +286,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
284
286
|
const t1 = performance.now();
|
|
285
287
|
this.logger?.(
|
|
286
288
|
'info',
|
|
287
|
-
`PFrame deleteColumn request took ${Math.round(t1 - t0)}ms`
|
|
289
|
+
`PFrame ${this.id} deleteColumn request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
288
290
|
);
|
|
289
291
|
}
|
|
290
292
|
}
|
|
@@ -308,7 +310,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
308
310
|
return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);
|
|
309
311
|
} catch (err: unknown) {
|
|
310
312
|
throw new Error(
|
|
311
|
-
`PFrame getColumnSpec request failed, ` +
|
|
313
|
+
`PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
|
|
312
314
|
`columnId: ${JSON.stringify(columnId)}, ` +
|
|
313
315
|
`error:\n` +
|
|
314
316
|
`${(err as Error).toString()}`
|
|
@@ -317,7 +319,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
317
319
|
const t1 = performance.now();
|
|
318
320
|
this.logger?.(
|
|
319
321
|
'info',
|
|
320
|
-
`PFrame getColumnSpec request took ${Math.round(t1 - t0)}ms`
|
|
322
|
+
`PFrame ${this.id} getColumnSpec request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
321
323
|
);
|
|
322
324
|
}
|
|
323
325
|
}
|
|
@@ -338,7 +340,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
338
340
|
return await AddonSymbol.pFrameListColumns(this.frame);
|
|
339
341
|
} catch (err: unknown) {
|
|
340
342
|
throw new Error(
|
|
341
|
-
`PFrame listColumns request failed, ` +
|
|
343
|
+
`PFrame ${this.id} listColumns request ${requestId} failed, ` +
|
|
342
344
|
`error:\n` +
|
|
343
345
|
`${(err as Error).toString()}`
|
|
344
346
|
);
|
|
@@ -346,13 +348,13 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
346
348
|
const t1 = performance.now();
|
|
347
349
|
this.logger?.(
|
|
348
350
|
'info',
|
|
349
|
-
`PFrame listColumns request took ${Math.round(t1 - t0)}ms`
|
|
351
|
+
`PFrame ${this.id} listColumns request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
350
352
|
);
|
|
351
353
|
}
|
|
352
354
|
}
|
|
353
355
|
|
|
354
356
|
async createTable(
|
|
355
|
-
request: PFrameInternal.
|
|
357
|
+
request: PFrameInternal.CreateTableRequestV3,
|
|
356
358
|
signal?: AbortSignal
|
|
357
359
|
): Promise<PFrameInternal.PTableV4> {
|
|
358
360
|
const requestId = ulid();
|
|
@@ -379,7 +381,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
379
381
|
return new PTable(this, requestId, boxed);
|
|
380
382
|
} catch (err: unknown) {
|
|
381
383
|
throw new Error(
|
|
382
|
-
`PFrame createTable request failed, ` +
|
|
384
|
+
`PFrame ${this.id} createTable request ${requestId} failed, ` +
|
|
383
385
|
`request: ${JSON.stringify(request)}, ` +
|
|
384
386
|
`error:\n` +
|
|
385
387
|
`${(err as Error).toString()}`
|
|
@@ -388,7 +390,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
388
390
|
const t1 = performance.now();
|
|
389
391
|
this.logger?.(
|
|
390
392
|
'info',
|
|
391
|
-
`PFrame createTable request took ${Math.round(t1 - t0)}ms`
|
|
393
|
+
`PFrame ${this.id} createTable request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
392
394
|
);
|
|
393
395
|
}
|
|
394
396
|
}
|
|
@@ -418,7 +420,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
418
420
|
);
|
|
419
421
|
} catch (err: unknown) {
|
|
420
422
|
throw new Error(
|
|
421
|
-
`PFrame getUniqueValues request failed, ` +
|
|
423
|
+
`PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
|
|
422
424
|
`request: ${JSON.stringify(request)}, ` +
|
|
423
425
|
`error:\n` +
|
|
424
426
|
`${(err as Error).toString()}`
|
|
@@ -427,7 +429,7 @@ export class PFrame implements PFrameInternal.PFrameV5 {
|
|
|
427
429
|
const t1 = performance.now();
|
|
428
430
|
this.logger?.(
|
|
429
431
|
'info',
|
|
430
|
-
`PFrame getUniqueValues request took ${Math.round(t1 - t0)}ms`
|
|
432
|
+
`PFrame ${this.id} getUniqueValues request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
431
433
|
);
|
|
432
434
|
}
|
|
433
435
|
}
|
|
@@ -438,7 +440,9 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
438
440
|
private readonly frame: PFrame,
|
|
439
441
|
public readonly id: string,
|
|
440
442
|
private readonly table: NodeTableSymbol
|
|
441
|
-
) {
|
|
443
|
+
) {
|
|
444
|
+
this.frame.logger?.('info', `PTable ${this.id} created`);
|
|
445
|
+
}
|
|
442
446
|
|
|
443
447
|
getShape(): PTableShape {
|
|
444
448
|
const requestId = ulid();
|
|
@@ -455,7 +459,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
455
459
|
return AddonSymbol.pTableGetShape(this.table);
|
|
456
460
|
} catch (err: unknown) {
|
|
457
461
|
throw new Error(
|
|
458
|
-
`PTable getShape request failed, ` +
|
|
462
|
+
`PTable ${this.id} getShape request ${requestId} failed, ` +
|
|
459
463
|
`error:\n` +
|
|
460
464
|
`${(err as Error).toString()}`
|
|
461
465
|
);
|
|
@@ -477,7 +481,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
477
481
|
return AddonSymbol.pTableGetSpec(this.table);
|
|
478
482
|
} catch (err: unknown) {
|
|
479
483
|
throw new Error(
|
|
480
|
-
`PTable getSpec request failed, ` +
|
|
484
|
+
`PTable ${this.id} getSpec request ${requestId} failed, ` +
|
|
481
485
|
`error:\n` +
|
|
482
486
|
`${(err as Error).toString()}`
|
|
483
487
|
);
|
|
@@ -502,7 +506,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
502
506
|
return AddonSymbol.pTableGetColumnIndices(this.table, columnIds);
|
|
503
507
|
} catch (err: unknown) {
|
|
504
508
|
throw new Error(
|
|
505
|
-
`PTable getColumnIndices request failed, ` +
|
|
509
|
+
`PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
|
|
506
510
|
`columnIds: ${JSON.stringify(columnIds)}, ` +
|
|
507
511
|
`error:\n` +
|
|
508
512
|
`${(err as Error).toString()}`
|
|
@@ -540,7 +544,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
540
544
|
);
|
|
541
545
|
} catch (err: unknown) {
|
|
542
546
|
throw new Error(
|
|
543
|
-
`PTable getData request failed, ` +
|
|
547
|
+
`PTable ${this.id} getData request ${requestId} failed, ` +
|
|
544
548
|
`columnIndices: ${JSON.stringify(columnIndices)}, ` +
|
|
545
549
|
`range: ${range ? JSON.stringify(range) : undefined}, ` +
|
|
546
550
|
`error:\n` +
|
|
@@ -550,7 +554,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
550
554
|
const t1 = performance.now();
|
|
551
555
|
this.frame.logger?.(
|
|
552
556
|
'info',
|
|
553
|
-
`PTable getData request took ${Math.round(t1 - t0)}ms`
|
|
557
|
+
`PTable ${this.id} getData request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
554
558
|
);
|
|
555
559
|
}
|
|
556
560
|
}
|
|
@@ -588,7 +592,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
588
592
|
return new PTable(this.frame, requestId, boxed);
|
|
589
593
|
} catch (err: unknown) {
|
|
590
594
|
throw new Error(
|
|
591
|
-
`PTable filter request failed, ` +
|
|
595
|
+
`PTable ${this.id} filter request ${requestId} failed, ` +
|
|
592
596
|
`request: ${JSON.stringify(request)}, ` +
|
|
593
597
|
`error:\n` +
|
|
594
598
|
`${(err as Error).toString()}`
|
|
@@ -597,7 +601,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
597
601
|
const t1 = performance.now();
|
|
598
602
|
this.frame.logger?.(
|
|
599
603
|
'info',
|
|
600
|
-
`PTable filter request took ${Math.round(t1 - t0)}ms`
|
|
604
|
+
`PTable ${this.id} filter request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
601
605
|
);
|
|
602
606
|
}
|
|
603
607
|
}
|
|
@@ -635,7 +639,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
635
639
|
return new PTable(this.frame, requestId, boxed);
|
|
636
640
|
} catch (err: unknown) {
|
|
637
641
|
throw new Error(
|
|
638
|
-
`PTable sort request failed, ` +
|
|
642
|
+
`PTable ${this.id} sort request ${requestId} failed, ` +
|
|
639
643
|
`request: ${JSON.stringify(request)}, ` +
|
|
640
644
|
`error:\n` +
|
|
641
645
|
`${(err as Error).toString()}`
|
|
@@ -644,7 +648,7 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
644
648
|
const t1 = performance.now();
|
|
645
649
|
this.frame.logger?.(
|
|
646
650
|
'info',
|
|
647
|
-
`PTable sort request took ${Math.round(t1 - t0)}ms`
|
|
651
|
+
`PTable ${this.id} sort request ${requestId} took ${Math.round(t1 - t0)}ms`
|
|
648
652
|
);
|
|
649
653
|
}
|
|
650
654
|
}
|
|
@@ -662,9 +666,10 @@ class PTable implements PFrameInternal.PTableV4 {
|
|
|
662
666
|
|
|
663
667
|
try {
|
|
664
668
|
AddonSymbol.pTableDispose(this.table);
|
|
669
|
+
this.frame.logger?.('info', `PTable ${this.id} disposed`);
|
|
665
670
|
} catch (err: unknown) {
|
|
666
671
|
throw new Error(
|
|
667
|
-
`PTable dispose request failed, ` +
|
|
672
|
+
`PTable ${this.id} dispose request ${requestId} failed, ` +
|
|
668
673
|
`error:\n` +
|
|
669
674
|
`${(err as Error).toString()}`
|
|
670
675
|
);
|
|
@@ -15,7 +15,7 @@ interface NodeFrame {
|
|
|
15
15
|
pFrameDeleteColumn: (pFrame: NodeFrameSymbol, request: PFrameInternal.DeleteColumnFromColumnsRequest) => Promise<PFrameInternal.DeleteColumnFromColumnsResponse>;
|
|
16
16
|
pFrameGetColumnSpec: (pFrame: NodeFrameSymbol, columnId: PObjectId) => Promise<PColumnSpec>;
|
|
17
17
|
pFrameListColumns: (pFrame: NodeFrameSymbol) => Promise<PColumnInfo[]>;
|
|
18
|
-
pFrameCreateTable: (pFrame: NodeFrameSymbol, id: TableId, request: PFrameInternal.
|
|
18
|
+
pFrameCreateTable: (pFrame: NodeFrameSymbol, id: TableId, request: PFrameInternal.CreateTableRequestV3, signal?: AbortSignal) => Promise<NodeTableSymbol>;
|
|
19
19
|
pFrameGetUniqueValues: (pFrame: NodeFrameSymbol, id: TableId, request: UniqueValuesRequest, signal?: AbortSignal) => Promise<UniqueValuesResponse>;
|
|
20
20
|
}
|
|
21
21
|
interface NodeTable {
|
package/export_dist/export.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
|
|
2
2
|
export type PFrame = {
|
|
3
|
-
new (spillPath: string, logger?: PFrameInternal.Logger): PFrameInternal.
|
|
3
|
+
new (spillPath: string, logger?: PFrameInternal.Logger): PFrameInternal.PFrameV6;
|
|
4
4
|
};
|
|
5
5
|
export declare const PFrame: PFrame;
|
|
6
6
|
//# sourceMappingURL=export.d.ts.map
|
package/export_dist/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var q=(
|
|
2
|
-
${
|
|
3
|
-
${
|
|
4
|
-
${
|
|
5
|
-
${
|
|
6
|
-
${
|
|
7
|
-
${s.toString()}`)}finally{const s=performance.now();(
|
|
8
|
-
${s.toString()}`)}finally{const s=performance.now();(
|
|
9
|
-
${s.toString()}`)}finally{const s=performance.now();(
|
|
10
|
-
${
|
|
11
|
-
${
|
|
12
|
-
${
|
|
13
|
-
${t.toString()}`)}}getSpec(){const e=n.ulid();
|
|
14
|
-
${t.toString()}`)}}getColumnIndices(e){const t=n.ulid();
|
|
15
|
-
${r.toString()}`)}}async getData(e,t,r){var
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
${
|
|
19
|
-
${
|
|
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 f=(m,e,t)=>q(m,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("ulid"),D=require("node:module"),h=require("node:path"),b=require("node:url"),T=require("@mapbox/node-pre-gyp"),c=require("node:fs"),p=require("node:stream");var g=typeof document<"u"?document.currentScript:null;const w=typeof document>"u"?require("url").pathToFileURL(__filename).href:g&&g.tagName.toUpperCase()==="SCRIPT"&&g.src||new URL("index.js",document.baseURI).href,P=h.dirname(b.fileURLToPath(w)),F=D.createRequire(w),{find:C}=T,u=F(C(h.resolve(P,"../package.json")));async function S(m){try{return await c.promises.access(m),!0}catch{return!1}}async function j(m){await S(m)||await c.promises.mkdir(m,{recursive:!0})}async function E(m,e){const t=`${m}.tmp`;await S(t)&&await c.promises.rm(t,{recursive:!0});const r=typeof e=="string"?Buffer.from(e,"utf8"):e,i=p.Readable.from(r),s=c.createWriteStream(t,{flags:"wx"});await p.Readable.toWeb(i).pipeTo(p.Writable.toWeb(s)),await c.promises.rename(t,m)}async function o(m,e,t){if(process.env.MI_DUMP_PFRAMES_RS)try{const r=m.map(l=>encodeURIComponent(l)),i=h.join(process.env.MI_DUMP_PFRAMES_RS,...r.slice(0,-1));await j(i);const s=h.join(process.env.MI_DUMP_PFRAMES_RS,...r),a=ArrayBuffer.isView(e)?e:JSON.stringify(e);await E(s,a)}catch(r){t==null||t("warn",`error while dumping PFrames data: ${r}`)}}let M=class{constructor(e,t){f(this,"id",n.ulid());f(this,"frame");var r;this.logger=t,o([`${this.id}`,`${this.id}.json`],{timeStamp:Date.now(),requestType:"create"},this.logger);try{this.frame=u.pFrameCreate(e,t),(r=this.logger)==null||r.call(this,"info",`PFrame ${this.id} created`)}catch(i){throw new Error(`PFrame ${this.id} creation failed, logger: ${t==null?void 0:t.toString()}, error:
|
|
2
|
+
${i.toString()}`)}}addColumnSpec(e,t){const r=n.ulid();o([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:e,columnSpec:t}},this.logger),o([`${this.id}`,"data",`${e}.spec`],{...t},this.logger);try{return u.pFrameAddColumnSpec(this.frame,e,t)}catch(i){throw new Error(`PFrame ${this.id} addColumnSpec request ${r} failed, columnId: ${JSON.stringify(e)}, columnSpec: ${JSON.stringify(t)}, error:
|
|
3
|
+
${i.toString()}`)}}setDataSource(e){const t=n.ulid();o([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"setDataSource"},this.logger);let r={preloadBlob:async i=>{var l;const s=n.ulid();o([`${this.id}`,`${s}.json`],{timeStamp:Date.now(),requestType:"preloadBlob",requestData:{blobIds:i}},this.logger);const a=performance.now();try{return e.preloadBlob(i)}finally{const d=performance.now();(l=this.logger)==null||l.call(this,"info",`PFrame ${this.id} preloaded ${i.length} blobs, took ${Math.round(d-a)}ms`)}},resolveBlobContent:async i=>{const s=n.ulid();o([`${this.id}`,`${s}.json`],{timeStamp:Date.now(),requestType:"resolveBlobContent",requestData:{blobId:i}},this.logger);const a=await e.resolveBlobContent(i);return o([`${this.id}`,"data",`${i}`],a,this.logger),a}};try{return u.pFrameSetDataSource(this.frame,r)}catch(i){throw new Error(`PFrame ${this.id} setDataSource request ${t} failed, dataSource: ${e.toString()}, error:
|
|
4
|
+
${i.toString()}`)}}setColumnData(e,t){const r=n.ulid();o([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"setColumnData",requestData:{columnId:e,dataInfo:t}},this.logger),o([`${this.id}`,"data",`${e}.datainfo`],{...t},this.logger);try{return u.pFrameSetColumnData(this.frame,e,t)}catch(i){throw new Error(`PFrame ${this.id} setColumnData request ${r} failed, columnId: ${JSON.stringify(e)}, dataInfo: ${JSON.stringify(t)}, error:
|
|
5
|
+
${i.toString()}`)}}dispose(){var t;const e=n.ulid();o([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.logger);try{u.pFrameDispose(this.frame),(t=this.logger)==null||t.call(this,"info",`PFrame ${this.id} disposed`)}catch(r){throw new Error(`PFrame ${this.id} dispose request ${e} failed, error:
|
|
6
|
+
${r.toString()}`)}}[Symbol.dispose](){this.dispose()}async findColumns(e){var i;const t=n.ulid();o([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"findColumns",requestData:e},this.logger);const r=performance.now();try{return await u.pFrameFindColumns(this.frame,e)}catch(s){throw new Error(`PFrame ${this.id} findColumns request ${t} failed, request: ${JSON.stringify(e)}, error:
|
|
7
|
+
${s.toString()}`)}finally{const s=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} findColumns request ${t} took ${Math.round(s-r)}ms`)}}async deleteColumn(e){var i;const t=n.ulid();o([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"deleteColumn",requestData:e},this.logger);const r=performance.now();try{return await u.pFrameDeleteColumn(this.frame,e)}catch(s){throw new Error(`PFrame ${this.id} deleteColumn request ${t} failed, request: ${JSON.stringify(e)}, error:
|
|
8
|
+
${s.toString()}`)}finally{const s=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} deleteColumn request ${t} took ${Math.round(s-r)}ms`)}}async getColumnSpec(e){var i;const t=n.ulid();o([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getColumnSpec",requestData:{columnId:e}},this.logger);const r=performance.now();try{return await u.pFrameGetColumnSpec(this.frame,e)}catch(s){throw new Error(`PFrame ${this.id} getColumnSpec request ${t} failed, columnId: ${JSON.stringify(e)}, error:
|
|
9
|
+
${s.toString()}`)}finally{const s=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} getColumnSpec request ${t} took ${Math.round(s-r)}ms`)}}async listColumns(){var r;const e=n.ulid();o([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"listColumns"},this.logger);const t=performance.now();try{return await u.pFrameListColumns(this.frame)}catch(i){throw new Error(`PFrame ${this.id} listColumns request ${e} failed, error:
|
|
10
|
+
${i.toString()}`)}finally{const i=performance.now();(r=this.logger)==null||r.call(this,"info",`PFrame ${this.id} listColumns request ${e} took ${Math.round(i-t)}ms`)}}async createTable(e,t){var a;const r=n.ulid(),i={timeStamp:Date.now(),requestType:"createTable",requestData:e};o([`${this.id}`,`${r}.json`],i,this.logger),o([`${this.id}`,`${r}`,`${r}.json`],i,this.logger);const s=performance.now();try{const l=await u.pFrameCreateTable(this.frame,r,e,t);return new $(this,r,l)}catch(l){throw new Error(`PFrame ${this.id} createTable request ${r} failed, request: ${JSON.stringify(e)}, error:
|
|
11
|
+
${l.toString()}`)}finally{const l=performance.now();(a=this.logger)==null||a.call(this,"info",`PFrame ${this.id} createTable request ${r} took ${Math.round(l-s)}ms`)}}async getUniqueValues(e,t){var s;const r=n.ulid();o([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:e},this.logger);const i=performance.now();try{return await u.pFrameGetUniqueValues(this.frame,r,e,t)}catch(a){throw new Error(`PFrame ${this.id} getUniqueValues request ${r} failed, request: ${JSON.stringify(e)}, error:
|
|
12
|
+
${a.toString()}`)}finally{const a=performance.now();(s=this.logger)==null||s.call(this,"info",`PFrame ${this.id} getUniqueValues request ${r} took ${Math.round(a-i)}ms`)}}};class ${constructor(e,t,r){var i,s;this.frame=e,this.id=t,this.table=r,(s=(i=this.frame).logger)==null||s.call(i,"info",`PTable ${this.id} created`)}getShape(){const e=n.ulid();o([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getShape"},this.frame.logger);try{return u.pTableGetShape(this.table)}catch(t){throw new Error(`PTable ${this.id} getShape request ${e} failed, error:
|
|
13
|
+
${t.toString()}`)}}getSpec(){const e=n.ulid();o([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getSpec"},this.frame.logger);try{return u.pTableGetSpec(this.table)}catch(t){throw new Error(`PTable ${this.id} getSpec request ${e} failed, error:
|
|
14
|
+
${t.toString()}`)}}getColumnIndices(e){const t=n.ulid();o([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getColumnIndices",requestData:{columnIds:e}},this.frame.logger);try{return u.pTableGetColumnIndices(this.table,e)}catch(r){throw new Error(`PTable ${this.id} getColumnIndices request ${t} failed, columnIds: ${JSON.stringify(e)}, error:
|
|
15
|
+
${r.toString()}`)}}async getData(e,t,r){var a,l;const i=n.ulid();o([`${this.frame.id}`,`${this.id}`,`${i}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:e,range:t??null}},this.frame.logger);const s=performance.now();try{return await u.pTableGetData(this.table,i,e,t,r)}catch(d){throw new Error(`PTable ${this.id} getData request ${i} failed, columnIndices: ${JSON.stringify(e)}, range: ${t?JSON.stringify(t):void 0}, error:
|
|
16
|
+
${d.toString()}`)}finally{const d=performance.now();(l=(a=this.frame).logger)==null||l.call(a,"info",`PTable ${this.id} getData request ${i} took ${Math.round(d-s)}ms`)}}async filter(e,t){var a,l;const r=n.ulid(),i={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:e};o([`${this.frame.id}`,`${r}.json`],i,this.frame.logger),o([`${this.frame.id}`,`${r}`,`${r}.json`],i,this.frame.logger);const s=performance.now();try{const d=await u.pTableFilter(this.table,r,e,t);return new $(this.frame,r,d)}catch(d){throw new Error(`PTable ${this.id} filter request ${r} failed, request: ${JSON.stringify(e)}, error:
|
|
17
|
+
${d.toString()}`)}finally{const d=performance.now();(l=(a=this.frame).logger)==null||l.call(a,"info",`PTable ${this.id} filter request ${r} took ${Math.round(d-s)}ms`)}}async sort(e,t){var a,l;const r=n.ulid(),i={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:e};o([`${this.frame.id}`,`${r}.json`],i,this.frame.logger),o([`${this.frame.id}`,`${r}`,`${r}.json`],i,this.frame.logger);const s=performance.now();try{const d=await u.pTableSort(this.table,r,e,t);return new $(this.frame,r,d)}catch(d){throw new Error(`PTable ${this.id} sort request ${r} failed, request: ${JSON.stringify(e)}, error:
|
|
18
|
+
${d.toString()}`)}finally{const d=performance.now();(l=(a=this.frame).logger)==null||l.call(a,"info",`PTable ${this.id} sort request ${r} took ${Math.round(d-s)}ms`)}}dispose(){var t,r;const e=n.ulid();o([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.frame.logger);try{u.pTableDispose(this.table),(r=(t=this.frame).logger)==null||r.call(t,"info",`PTable ${this.id} disposed`)}catch(i){throw new Error(`PTable ${this.id} dispose request ${e} failed, error:
|
|
19
|
+
${i.toString()}`)}}[Symbol.dispose](){this.dispose()}}const I=M;exports.PFrame=I;
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/export_dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../export/addon.ts","../export/dump.ts","../export/wrapper.ts","../export/export.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.promises.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.promises.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = fs.createWriteStream(tempPath, { flags: 'wx' });\n await Readable.toWeb(source).pipeTo(Writable.toWeb(destination));\n\n await fs.promises.rename(tempPath, filePath);\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { ulid } from 'ulid';\nimport {\n DataInfo,\n PColumnInfo,\n PColumnSpec,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableShape,\n PTableSorting,\n PTableVector,\n TableRange,\n UniqueValuesRequest,\n UniqueValuesResponse\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';\nimport { AddonSymbol } from './addon';\nimport { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV5 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n constructor(\n spillPath: string,\n public readonly logger?: PFrameInternal.Logger\n ) {\n dump(\n [`${this.id}`, `${this.id}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'create'\n },\n this.logger\n );\n\n try {\n this.frame = AddonSymbol.pFrameCreate(spillPath, logger);\n } catch (err: unknown) {\n throw new Error(\n `PFrame creation failed, ` +\n `logger: ${logger?.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n addColumnSpec(columnId: PObjectId, columnSpec: PColumnSpec): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'addColumnSpec',\n requestData: {\n columnId,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${columnId}.spec`],\n {\n ...columnSpec\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);\n } catch (err: unknown) {\n throw new Error(\n `PFrame addColumnSpec request failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSource): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setDataSource'\n },\n this.logger\n );\n\n let wrappedDataSource = {\n preloadBlob: async (\n blobIds: PFrameInternal.PFrameBlobId[]\n ): Promise<void> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'preloadBlob',\n requestData: {\n blobIds\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return dataSource.preloadBlob(blobIds);\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);\n\n return blob;\n }\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);\n } catch (err: unknown) {\n throw new Error(\n `PFrame setDataSource request failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: DataInfo<PFrameInternal.PFrameBlobId>\n ): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${columnId}.datainfo`],\n {\n ...dataInfo\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameSetColumnData(this.frame, columnId, dataInfo);\n } catch (err: unknown) {\n throw new Error(\n `PFrame setColumnData request failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n dispose(): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.logger\n );\n\n try {\n AddonSymbol.pFrameDispose(this.frame);\n } catch (err: unknown) {\n throw new Error(\n `PFrame dispose request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose](): void {\n this.dispose();\n }\n\n async findColumns(\n request: PFrameInternal.FindColumnsRequest\n ): Promise<PFrameInternal.FindColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'findColumns',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameFindColumns(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame findColumns request failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame findColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async deleteColumn(\n request: PFrameInternal.DeleteColumnFromColumnsRequest\n ): Promise<PFrameInternal.DeleteColumnFromColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'deleteColumn',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame deleteColumn request failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame deleteColumn request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async getColumnSpec(columnId: PObjectId): Promise<PColumnSpec> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnSpec',\n requestData: {\n columnId\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);\n } catch (err: unknown) {\n throw new Error(\n `PFrame getColumnSpec request failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame getColumnSpec request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async listColumns(): Promise<PColumnInfo[]> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'listColumns'\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameListColumns(this.frame);\n } catch (err: unknown) {\n throw new Error(\n `PFrame listColumns request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame listColumns request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV2,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: request\n };\n dump([`${this.id}`, `${requestId}.json`], dumpData, this.logger);\n dump(\n [`${this.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pFrameCreateTable(\n this.frame,\n requestId,\n request,\n signal\n );\n return new PTable(this, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PFrame 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.PTableV4 {\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 | undefined,\n signal?: AbortSignal\n ): Promise<PTableVector[]> {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: range ?? null\n }\n },\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range,\n signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable 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.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pTableFilter(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable 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.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pTableSort(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable sort request failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable sort request took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n dispose() {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.frame.logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable dispose request failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n","import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame as PFrameImpl } from './wrapper';\n\nexport type PFrame = {\n new (\n spillPath: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV5;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","_documentCurrentScript","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","_a","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","columnIds","columnIndices","range","_b","PFrame","PFrameImpl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../export/addon.ts","../export/dump.ts","../export/wrapper.ts","../export/export.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable, Writable } from 'node:stream';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await fs.promises.access(path);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.promises.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.promises.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = fs.createWriteStream(tempPath, { flags: 'wx' });\n await Readable.toWeb(source).pipeTo(Writable.toWeb(destination));\n\n await fs.promises.rename(tempPath, filePath);\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n","import { ulid } from 'ulid';\nimport {\n DataInfo,\n PColumnInfo,\n PColumnSpec,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableShape,\n PTableSorting,\n PTableVector,\n TableRange,\n UniqueValuesRequest,\n UniqueValuesResponse\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';\nimport { AddonSymbol } from './addon';\nimport { dump } from './dump';\n\nexport class PFrame implements PFrameInternal.PFrameV6 {\n public readonly id: string = ulid();\n private readonly frame: NodeFrameSymbol;\n\n constructor(\n spillPath: string,\n public readonly logger?: PFrameInternal.Logger\n ) {\n dump(\n [`${this.id}`, `${this.id}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'create'\n },\n this.logger\n );\n\n try {\n this.frame = AddonSymbol.pFrameCreate(spillPath, logger);\n this.logger?.('info', `PFrame ${this.id} created`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} creation failed, ` +\n `logger: ${logger?.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n addColumnSpec(columnId: PObjectId, columnSpec: PColumnSpec): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'addColumnSpec',\n requestData: {\n columnId,\n columnSpec\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${columnId}.spec`],\n {\n ...columnSpec\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSource): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setDataSource'\n },\n this.logger\n );\n\n let wrappedDataSource = {\n preloadBlob: async (\n blobIds: PFrameInternal.PFrameBlobId[]\n ): Promise<void> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'preloadBlob',\n requestData: {\n blobIds\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return dataSource.preloadBlob(blobIds);\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} preloaded ${blobIds.length} blobs, took ${Math.round(t1 - t0)}ms`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);\n\n return blob;\n }\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setDataSource request ${requestId} failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: DataInfo<PFrameInternal.PFrameBlobId>\n ): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId,\n dataInfo\n }\n },\n this.logger\n );\n\n dump(\n [`${this.id}`, `data`, `${columnId}.datainfo`],\n {\n ...dataInfo\n },\n this.logger\n );\n\n try {\n return AddonSymbol.pFrameSetColumnData(this.frame, columnId, dataInfo);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} setColumnData request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n dispose(): void {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.logger\n );\n\n try {\n AddonSymbol.pFrameDispose(this.frame);\n this.logger?.('info', `PFrame ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose](): void {\n this.dispose();\n }\n\n async findColumns(\n request: PFrameInternal.FindColumnsRequest\n ): Promise<PFrameInternal.FindColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'findColumns',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameFindColumns(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} findColumns request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} findColumns request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async deleteColumn(\n request: PFrameInternal.DeleteColumnFromColumnsRequest\n ): Promise<PFrameInternal.DeleteColumnFromColumnsResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'deleteColumn',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.frame, request);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} deleteColumn request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async getColumnSpec(columnId: PObjectId): Promise<PColumnSpec> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnSpec',\n requestData: {\n columnId\n }\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getColumnSpec request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async listColumns(): Promise<PColumnInfo[]> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'listColumns'\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameListColumns(this.frame);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} listColumns request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} listColumns request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async createTable(\n request: PFrameInternal.CreateTableRequestV3,\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: request\n };\n dump([`${this.id}`, `${requestId}.json`], dumpData, this.logger);\n dump(\n [`${this.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pFrameCreateTable(\n this.frame,\n requestId,\n request,\n signal\n );\n return new PTable(this, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} createTable request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async getUniqueValues(\n request: UniqueValuesRequest,\n signal?: AbortSignal\n ): Promise<UniqueValuesResponse> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getUniqueValues',\n requestData: request\n },\n this.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pFrameGetUniqueValues(\n this.frame,\n requestId,\n request,\n signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.logger?.(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV4 {\n constructor(\n private readonly frame: PFrame,\n public readonly id: string,\n private readonly table: NodeTableSymbol\n ) {\n this.frame.logger?.('info', `PTable ${this.id} created`);\n }\n\n getShape(): PTableShape {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getShape'\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetShape(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getShape request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n getSpec(): PTableColumnSpec[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getSpec'\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetSpec(this.table);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getSpec request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n getColumnIndices(columnIds: PTableColumnId[]): number[] {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnIndices',\n requestData: {\n columnIds\n }\n },\n this.frame.logger\n );\n\n try {\n return AddonSymbol.pTableGetColumnIndices(this.table, columnIds);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +\n `columnIds: ${JSON.stringify(columnIds)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n async getData(\n columnIndices: number[],\n range: TableRange | undefined,\n signal?: AbortSignal\n ): Promise<PTableVector[]> {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: range ?? null\n }\n },\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n return await AddonSymbol.pTableGetData(\n this.table,\n requestId,\n columnIndices,\n range,\n signal\n );\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} getData request ${requestId} failed, ` +\n `columnIndices: ${JSON.stringify(columnIndices)}, ` +\n `range: ${range ? JSON.stringify(range) : undefined}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} getData request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async filter(\n request: PTableRecordFilter[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: request\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pTableFilter(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} filter request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} filter request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n async sort(\n request: PTableSorting[],\n signal?: AbortSignal\n ): Promise<PFrameInternal.PTableV4> {\n const requestId = ulid();\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request\n };\n dump(\n [`${this.frame.id}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n dump(\n [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.frame.logger\n );\n\n const t0 = performance.now();\n try {\n const boxed = await AddonSymbol.pTableSort(\n this.table,\n requestId,\n request,\n signal\n );\n return new PTable(this.frame, requestId, boxed);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} sort request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n } finally {\n const t1 = performance.now();\n this.frame.logger?.(\n 'info',\n `PTable ${this.id} sort request ${requestId} took ${Math.round(t1 - t0)}ms`\n );\n }\n }\n\n dispose() {\n const requestId = ulid();\n dump(\n [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'dispose'\n },\n this.frame.logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.table);\n this.frame.logger?.('info', `PTable ${this.id} disposed`);\n } catch (err: unknown) {\n throw new Error(\n `PTable ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${(err as Error).toString()}`\n );\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n","import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame as PFrameImpl } from './wrapper';\n\nexport type PFrame = {\n new (\n spillPath: string,\n logger?: PFrameInternal.Logger\n ): PFrameInternal.PFrameV6;\n};\n\nexport const PFrame: PFrame = PFrameImpl;\n"],"names":["nodeFileUrl","_documentCurrentScript","nodeDirname","dirname","fileURLToPath","nodeRequire","createRequire","findAddon","gyp","AddonSymbol","resolve","fileExists","path","fs","ensureDirExists","fileOrDir","writeFile","filePath","data","tempPath","buffer","source","Readable","destination","Writable","dump","relativePath","logger","relativeUri","part","fileDir","fileData","error","PFrame$1","spillPath","__publicField","ulid","_a","err","columnId","columnSpec","requestId","dataSource","wrappedDataSource","blobIds","t0","t1","blobId","blob","dataInfo","request","signal","dumpData","boxed","PTable","frame","id","table","_b","columnIds","columnIndices","range","PFrame","PFrameImpl"],"mappings":"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"}
|