@milaboratories/pframes-rs-node 1.0.57 → 1.0.61

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.
Files changed (40) hide show
  1. package/README.md +17 -5
  2. package/export/addon-def.ts +0 -1
  3. package/export/dump.ts +13 -14
  4. package/export/export.ts +10 -10
  5. package/export/index.ts +2 -1
  6. package/export/wrapper.ts +143 -132
  7. package/export_dist/addon-def.d.ts +1 -1
  8. package/export_dist/addon-def.d.ts.map +1 -1
  9. package/export_dist/addon.cjs +24 -0
  10. package/export_dist/addon.cjs.map +1 -0
  11. package/export_dist/addon.d.ts +1 -1
  12. package/export_dist/addon.js +21 -0
  13. package/export_dist/addon.js.map +1 -0
  14. package/export_dist/dump.cjs +133 -0
  15. package/export_dist/dump.cjs.map +1 -0
  16. package/export_dist/dump.d.ts +1 -1
  17. package/export_dist/dump.d.ts.map +1 -1
  18. package/export_dist/dump.js +125 -0
  19. package/export_dist/dump.js.map +1 -0
  20. package/export_dist/export.cjs +15 -0
  21. package/export_dist/export.cjs.map +1 -0
  22. package/export_dist/export.d.ts +2 -6
  23. package/export_dist/export.d.ts.map +1 -1
  24. package/export_dist/export.js +13 -0
  25. package/export_dist/export.js.map +1 -0
  26. package/export_dist/index.cjs +13 -0
  27. package/export_dist/index.cjs.map +1 -0
  28. package/export_dist/index.d.ts +2 -1
  29. package/export_dist/index.d.ts.map +1 -1
  30. package/export_dist/index.js +2 -21
  31. package/export_dist/index.js.map +1 -1
  32. package/export_dist/wrapper.cjs +511 -0
  33. package/export_dist/wrapper.cjs.map +1 -0
  34. package/export_dist/wrapper.d.ts +32 -10
  35. package/export_dist/wrapper.d.ts.map +1 -1
  36. package/export_dist/wrapper.js +508 -0
  37. package/export_dist/wrapper.js.map +1 -0
  38. package/package.json +34 -33
  39. package/export_dist/index.mjs +0 -765
  40. package/export_dist/index.mjs.map +0 -1
package/export/wrapper.ts CHANGED
@@ -2,7 +2,6 @@ import humanizeDuration from 'humanize-duration';
2
2
  import { ulid } from 'ulid';
3
3
  import {
4
4
  AbortError,
5
- DataInfo,
6
5
  PColumnInfo,
7
6
  PColumnSpec,
8
7
  PFrameError,
@@ -37,42 +36,48 @@ import {
37
36
  hashCreateTableRequestColumnId
38
37
  } from './dump';
39
38
 
40
- export class PFrame implements PFrameInternal.PFrameV9 {
41
- public readonly id: FrameId = ulid() as FrameId;
42
- private readonly frame: NodeFrameSymbol;
39
+ export async function pprofDump(): Promise<Uint8Array> {
40
+ try {
41
+ return await AddonSymbol.pprofDump();
42
+ } catch (err: unknown) {
43
+ throw new PFrameError(
44
+ `PFrame pprofDump failed, ` + `error:\n` + `${ensureError(err)}`
45
+ );
46
+ }
47
+ }
43
48
 
44
- static async pprofDump(): Promise<Uint8Array> {
45
- try {
46
- return await AddonSymbol.pprofDump();
47
- } catch (err: unknown) {
48
- throw new PFrameError(
49
- `PFrame pprofDump failed, ` + `error:\n` + `${ensureError(err).message}`
50
- );
51
- }
49
+ export class PFrame implements PFrameInternal.PFrameV10 {
50
+ readonly #frame: NodeFrameSymbol;
51
+
52
+ readonly #id: FrameId = ulid() as FrameId;
53
+
54
+ get id(): FrameId {
55
+ return this.#id;
52
56
  }
53
57
 
54
- constructor(
55
- spillPath: string,
56
- public readonly logger?: PFrameInternal.Logger
57
- ) {
58
+ readonly #logger: PFrameInternal.Logger;
59
+
60
+ constructor(options: PFrameInternal.PFrameOptions) {
61
+ this.#logger = options.logger ?? (() => {});
62
+
58
63
  dump(
59
64
  [`${this.id}`, `${this.id}.json`],
60
65
  {
61
66
  timeStamp: Date.now(),
62
67
  requestType: 'create'
63
68
  },
64
- this.logger
69
+ this.#logger
65
70
  );
66
71
 
67
72
  try {
68
- this.frame = AddonSymbol.pFrameCreate(spillPath, logger);
69
- this.logger?.('info', `PFrame ${this.id} created`);
73
+ this.#frame = AddonSymbol.pFrameCreate(options.spillPath, options.logger);
74
+ this.#logger('info', `PFrame ${this.id} created`);
70
75
  } catch (err: unknown) {
71
76
  throw new PFrameError(
72
77
  `PFrame ${this.id} creation failed, ` +
73
- `logger: ${logger?.toString()}, ` +
78
+ `logger: ${this.#logger?.toString()}, ` +
74
79
  `error:\n` +
75
- `${ensureError(err).message}`
80
+ `${ensureError(err)}`
76
81
  );
77
82
  }
78
83
  }
@@ -89,7 +94,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
89
94
  columnSpec
90
95
  }
91
96
  },
92
- this.logger
97
+ this.#logger
93
98
  );
94
99
 
95
100
  dump(
@@ -97,18 +102,18 @@ export class PFrame implements PFrameInternal.PFrameV9 {
97
102
  {
98
103
  ...columnSpec
99
104
  },
100
- this.logger
105
+ this.#logger
101
106
  );
102
107
 
103
108
  try {
104
- return AddonSymbol.pFrameAddColumnSpec(this.frame, columnId, columnSpec);
109
+ return AddonSymbol.pFrameAddColumnSpec(this.#frame, columnId, columnSpec);
105
110
  } catch (err: unknown) {
106
111
  throw new PFrameError(
107
112
  `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +
108
113
  `columnId: ${JSON.stringify(columnId)}, ` +
109
114
  `columnSpec: ${JSON.stringify(columnSpec)}, ` +
110
115
  `error:\n` +
111
- `${ensureError(err).message}`
116
+ `${ensureError(err)}`
112
117
  );
113
118
  }
114
119
  }
@@ -121,7 +126,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
121
126
  timeStamp: Date.now(),
122
127
  requestType: 'setDataSource'
123
128
  },
124
- this.logger
129
+ this.#logger
125
130
  );
126
131
 
127
132
  const wrappedDataSource = {
@@ -138,10 +143,10 @@ export class PFrame implements PFrameInternal.PFrameV9 {
138
143
  blobIds
139
144
  }
140
145
  },
141
- this.logger
146
+ this.#logger
142
147
  );
143
148
 
144
- this.logger?.(
149
+ this.#logger(
145
150
  'info',
146
151
  `PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`
147
152
  );
@@ -150,7 +155,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
150
155
  return await dataSource.preloadBlob(blobIds);
151
156
  } finally {
152
157
  const t1 = performance.now();
153
- this.logger?.(
158
+ this.#logger(
154
159
  'info',
155
160
  `PFrame ${this.id} preloadBlob finished, took ${humanizeDuration(Math.round(t1 - t0))} (${blobIds.length} blobs)`
156
161
  );
@@ -169,25 +174,25 @@ export class PFrame implements PFrameInternal.PFrameV9 {
169
174
  blobId
170
175
  }
171
176
  },
172
- this.logger
177
+ this.#logger
173
178
  );
174
179
 
175
180
  const blob = await dataSource.resolveBlobContent(blobId);
176
- this.logger?.('info', `PFrame ${this.id} resolved blob ${blobId}`);
177
- dump([`${this.id}`, `data`, `${blobId}`], blob, this.logger);
181
+ this.#logger('info', `PFrame ${this.id} resolved blob ${blobId}`);
182
+ dump([`${this.id}`, `data`, `${blobId}`], blob, this.#logger);
178
183
 
179
184
  return blob;
180
185
  }
181
186
  };
182
187
 
183
188
  try {
184
- return AddonSymbol.pFrameSetDataSource(this.frame, wrappedDataSource);
189
+ return AddonSymbol.pFrameSetDataSource(this.#frame, wrappedDataSource);
185
190
  } catch (err: unknown) {
186
191
  throw new PFrameError(
187
192
  `PFrame ${this.id} setDataSource request ${requestId} failed, ` +
188
193
  `dataSource: ${dataSource.toString()}, ` +
189
194
  `error:\n` +
190
- `${ensureError(err).message}`
195
+ `${ensureError(err)}`
191
196
  );
192
197
  }
193
198
  }
@@ -210,7 +215,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
210
215
  dataInfo
211
216
  }
212
217
  },
213
- this.logger
218
+ this.#logger
214
219
  );
215
220
 
216
221
  dump(
@@ -218,13 +223,13 @@ export class PFrame implements PFrameInternal.PFrameV9 {
218
223
  {
219
224
  ...dataInfo
220
225
  },
221
- this.logger
226
+ this.#logger
222
227
  );
223
228
 
224
229
  try {
225
230
  ops?.signal?.throwIfAborted();
226
231
  return AddonSymbol.pFrameSetColumnData(
227
- this.frame,
232
+ this.#frame,
228
233
  columnId,
229
234
  dataInfo,
230
235
  ops?.signal
@@ -235,7 +240,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
235
240
  `columnId: ${JSON.stringify(columnId)}, ` +
236
241
  `dataInfo: ${JSON.stringify(dataInfo)}, ` +
237
242
  `error:\n` +
238
- `${ensureError(err).message}`
243
+ `${ensureError(err)}`
239
244
  );
240
245
  }
241
246
  }
@@ -248,17 +253,17 @@ export class PFrame implements PFrameInternal.PFrameV9 {
248
253
  timeStamp: Date.now(),
249
254
  requestType: 'dispose'
250
255
  },
251
- this.logger
256
+ this.#logger
252
257
  );
253
258
 
254
259
  try {
255
- AddonSymbol.pFrameDispose(this.frame);
256
- this.logger?.('info', `PFrame ${this.id} disposed`);
260
+ AddonSymbol.pFrameDispose(this.#frame);
261
+ this.#logger('info', `PFrame ${this.id} disposed`);
257
262
  } catch (err: unknown) {
258
263
  throw new PFrameError(
259
264
  `PFrame ${this.id} dispose request ${requestId} failed, ` +
260
265
  `error:\n` +
261
- `${ensureError(err).message}`
266
+ `${ensureError(err)}`
262
267
  );
263
268
  }
264
269
  }
@@ -278,22 +283,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
278
283
  requestType: 'findColumns',
279
284
  requestData: request
280
285
  },
281
- this.logger
286
+ this.#logger
282
287
  );
283
288
 
284
289
  const t0 = performance.now();
285
290
  try {
286
- return await AddonSymbol.pFrameFindColumns(this.frame, request);
291
+ return await AddonSymbol.pFrameFindColumns(this.#frame, request);
287
292
  } catch (err: unknown) {
288
293
  throw new PFrameError(
289
294
  `PFrame ${this.id} findColumns request ${requestId} failed, ` +
290
295
  `request: ${JSON.stringify(request)}, ` +
291
296
  `error:\n` +
292
- `${ensureError(err).message}`
297
+ `${ensureError(err)}`
293
298
  );
294
299
  } finally {
295
300
  const t1 = performance.now();
296
- this.logger?.(
301
+ this.#logger(
297
302
  'info',
298
303
  `PFrame ${this.id} findColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
299
304
  );
@@ -311,22 +316,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
311
316
  requestType: 'deleteColumn',
312
317
  requestData: request
313
318
  },
314
- this.logger
319
+ this.#logger
315
320
  );
316
321
 
317
322
  const t0 = performance.now();
318
323
  try {
319
- return await AddonSymbol.pFrameDeleteColumn(this.frame, request);
324
+ return await AddonSymbol.pFrameDeleteColumn(this.#frame, request);
320
325
  } catch (err: unknown) {
321
326
  throw new PFrameError(
322
327
  `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
323
328
  `request: ${JSON.stringify(request)}, ` +
324
329
  `error:\n` +
325
- `${ensureError(err).message}`
330
+ `${ensureError(err)}`
326
331
  );
327
332
  } finally {
328
333
  const t1 = performance.now();
329
- this.logger?.(
334
+ this.#logger(
330
335
  'info',
331
336
  `PFrame ${this.id} deleteColumn request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
332
337
  );
@@ -344,22 +349,22 @@ export class PFrame implements PFrameInternal.PFrameV9 {
344
349
  columnId: hashColumnId(columnId)
345
350
  }
346
351
  },
347
- this.logger
352
+ this.#logger
348
353
  );
349
354
 
350
355
  const t0 = performance.now();
351
356
  try {
352
- return await AddonSymbol.pFrameGetColumnSpec(this.frame, columnId);
357
+ return await AddonSymbol.pFrameGetColumnSpec(this.#frame, columnId);
353
358
  } catch (err: unknown) {
354
359
  throw new PFrameError(
355
360
  `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
356
361
  `columnId: ${JSON.stringify(columnId)}, ` +
357
362
  `error:\n` +
358
- `${ensureError(err).message}`
363
+ `${ensureError(err)}`
359
364
  );
360
365
  } finally {
361
366
  const t1 = performance.now();
362
- this.logger?.(
367
+ this.#logger(
363
368
  'info',
364
369
  `PFrame ${this.id} getColumnSpec request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
365
370
  );
@@ -374,61 +379,59 @@ export class PFrame implements PFrameInternal.PFrameV9 {
374
379
  timeStamp: Date.now(),
375
380
  requestType: 'listColumns'
376
381
  },
377
- this.logger
382
+ this.#logger
378
383
  );
379
384
 
380
385
  const t0 = performance.now();
381
386
  try {
382
- return await AddonSymbol.pFrameListColumns(this.frame);
387
+ return await AddonSymbol.pFrameListColumns(this.#frame);
383
388
  } catch (err: unknown) {
384
389
  throw new PFrameError(
385
390
  `PFrame ${this.id} listColumns request ${requestId} failed, ` +
386
391
  `error:\n` +
387
- `${ensureError(err).message}`
392
+ `${ensureError(err)}`
388
393
  );
389
394
  } finally {
390
395
  const t1 = performance.now();
391
- this.logger?.(
396
+ this.#logger(
392
397
  'info',
393
398
  `PFrame ${this.id} listColumns request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
394
399
  );
395
400
  }
396
401
  }
397
402
 
398
- createTable(
399
- request: PFrameInternal.CreateTableRequestV3
400
- ): PFrameInternal.PTableV6 {
403
+ createTable(request: PFrameInternal.CreateTableRequestV3): PTable {
401
404
  const requestId = ulid() as TableId;
402
405
  const dumpData = {
403
406
  timeStamp: Date.now(),
404
407
  requestType: 'createTable',
405
408
  requestData: hashCreateTableRequestColumnId(request)
406
409
  };
407
- dump([`${this.id}`, `${requestId}.json`], dumpData, this.logger);
410
+ dump([`${this.id}`, `${requestId}.json`], dumpData, this.#logger);
408
411
  dump(
409
412
  [`${this.id}`, `${requestId}`, `${requestId}.json`],
410
413
  dumpData,
411
- this.logger
414
+ this.#logger
412
415
  );
413
416
 
414
417
  const t0 = performance.now();
415
418
  try {
416
419
  const boxed = AddonSymbol.pFrameCreateTable(
417
- this.frame,
420
+ this.#frame,
418
421
  requestId,
419
422
  request
420
423
  );
421
- return new PTable(this, requestId, boxed);
424
+ return new PTable(this, requestId, boxed, this.#logger);
422
425
  } catch (err: unknown) {
423
426
  throw new PFrameError(
424
427
  `PFrame ${this.id} createTable request ${requestId} failed, ` +
425
428
  `request: ${JSON.stringify(request)}, ` +
426
429
  `error:\n` +
427
- `${ensureError(err).message}`
430
+ `${ensureError(err)}`
428
431
  );
429
432
  } finally {
430
433
  const t1 = performance.now();
431
- this.logger?.(
434
+ this.#logger(
432
435
  'info',
433
436
  `PFrame ${this.id} createTable request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
434
437
  );
@@ -449,10 +452,10 @@ export class PFrame implements PFrameInternal.PFrameV9 {
449
452
  requestType: 'getUniqueValues',
450
453
  requestData: hashUniqueValuesRequestColumnId(request)
451
454
  },
452
- this.logger
455
+ this.#logger
453
456
  );
454
457
 
455
- this.logger?.(
458
+ this.#logger(
456
459
  'info',
457
460
  `PFrame ${this.id} getUniqueValues request ${requestId} started`
458
461
  );
@@ -460,7 +463,7 @@ export class PFrame implements PFrameInternal.PFrameV9 {
460
463
  try {
461
464
  ops?.signal?.throwIfAborted();
462
465
  return await AddonSymbol.pFrameGetUniqueValues(
463
- this.frame,
466
+ this.#frame,
464
467
  requestId,
465
468
  request,
466
469
  ops?.signal
@@ -475,11 +478,11 @@ export class PFrame implements PFrameInternal.PFrameV9 {
475
478
  `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
476
479
  `request: ${JSON.stringify(request)}, ` +
477
480
  `error:\n` +
478
- `${ensureError(err).message}`
481
+ `${ensureError(err)}`
479
482
  );
480
483
  } finally {
481
484
  const t1 = performance.now();
482
- this.logger?.(
485
+ this.#logger(
483
486
  'info',
484
487
  `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
485
488
  );
@@ -487,33 +490,49 @@ export class PFrame implements PFrameInternal.PFrameV9 {
487
490
  }
488
491
  }
489
492
 
490
- class PTable implements PFrameInternal.PTableV6 {
493
+ class PTable implements PFrameInternal.PTableV7 {
494
+ readonly #frame: PFrame;
495
+ readonly #table: NodeTableSymbol;
496
+
497
+ readonly #id: string;
498
+
499
+ get id(): string {
500
+ return this.#id;
501
+ }
502
+
503
+ readonly #logger: PFrameInternal.Logger;
504
+
491
505
  constructor(
492
- private readonly frame: PFrame,
493
- public readonly id: string,
494
- private readonly table: NodeTableSymbol
506
+ frame: PFrame,
507
+ id: string,
508
+ table: NodeTableSymbol,
509
+ logger: PFrameInternal.Logger
495
510
  ) {
496
- this.frame.logger?.('info', `PTable ${this.id} created`);
511
+ this.#frame = frame;
512
+ this.#table = table;
513
+ this.#id = id;
514
+ this.#logger = logger;
515
+ this.#logger('info', `PTable ${this.id} created`);
497
516
  }
498
517
 
499
518
  getSpec(): PTableColumnSpec[] {
500
519
  const requestId = ulid();
501
520
  dump(
502
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
521
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
503
522
  {
504
523
  timeStamp: Date.now(),
505
524
  requestType: 'getSpec'
506
525
  },
507
- this.frame.logger
526
+ this.#logger
508
527
  );
509
528
 
510
529
  try {
511
- return AddonSymbol.pTableGetSpec(this.table);
530
+ return AddonSymbol.pTableGetSpec(this.#table);
512
531
  } catch (err: unknown) {
513
532
  throw new PFrameError(
514
533
  `PTable ${this.id} getSpec request ${requestId} failed, ` +
515
534
  `error:\n` +
516
- `${ensureError(err).message}`
535
+ `${ensureError(err)}`
517
536
  );
518
537
  }
519
538
  }
@@ -521,7 +540,7 @@ class PTable implements PFrameInternal.PTableV6 {
521
540
  getColumnIndices(columnIds: PTableColumnId[]): number[] {
522
541
  const requestId = ulid();
523
542
  dump(
524
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
543
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
525
544
  {
526
545
  timeStamp: Date.now(),
527
546
  requestType: 'getColumnIndices',
@@ -529,17 +548,17 @@ class PTable implements PFrameInternal.PTableV6 {
529
548
  columnIds: columnIds.map(hashTableColumnId)
530
549
  }
531
550
  },
532
- this.frame.logger
551
+ this.#logger
533
552
  );
534
553
 
535
554
  try {
536
- return AddonSymbol.pTableGetColumnIndices(this.table, columnIds);
555
+ return AddonSymbol.pTableGetColumnIndices(this.#table, columnIds);
537
556
  } catch (err: unknown) {
538
557
  throw new PFrameError(
539
558
  `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
540
559
  `columnIds: ${JSON.stringify(columnIds)}, ` +
541
560
  `error:\n` +
542
- `${ensureError(err).message}`
561
+ `${ensureError(err)}`
543
562
  );
544
563
  }
545
564
  }
@@ -550,15 +569,15 @@ class PTable implements PFrameInternal.PTableV6 {
550
569
  }): Promise<number> {
551
570
  const requestId = ulid();
552
571
  dump(
553
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
572
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
554
573
  {
555
574
  timeStamp: Date.now(),
556
575
  requestType: 'getFootprint'
557
576
  },
558
- this.frame.logger
577
+ this.#logger
559
578
  );
560
579
 
561
- this.frame.logger?.(
580
+ this.#logger(
562
581
  'info',
563
582
  `PTable ${this.id} getFootprint request ${requestId} started`
564
583
  );
@@ -566,7 +585,7 @@ class PTable implements PFrameInternal.PTableV6 {
566
585
  try {
567
586
  ops?.signal?.throwIfAborted();
568
587
  return await AddonSymbol.pTableGetFootprint(
569
- this.table,
588
+ this.#table,
570
589
  ops?.withPredecessors ?? false,
571
590
  ops?.signal
572
591
  );
@@ -579,11 +598,11 @@ class PTable implements PFrameInternal.PTableV6 {
579
598
  throw new PFrameError(
580
599
  `PTable ${this.id} getFootprint request ${requestId} failed, ` +
581
600
  `error:\n` +
582
- `${ensureError(err).message}`
601
+ `${ensureError(err)}`
583
602
  );
584
603
  } finally {
585
604
  const t1 = performance.now();
586
- this.frame.logger?.(
605
+ this.#logger(
587
606
  'info',
588
607
  `PTable ${this.id} getFootprint request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
589
608
  );
@@ -593,22 +612,22 @@ class PTable implements PFrameInternal.PTableV6 {
593
612
  async getShape(ops?: { signal?: AbortSignal }): Promise<PTableShape> {
594
613
  const requestId = ulid();
595
614
  dump(
596
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
615
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
597
616
  {
598
617
  timeStamp: Date.now(),
599
618
  requestType: 'getShape'
600
619
  },
601
- this.frame.logger
620
+ this.#logger
602
621
  );
603
622
 
604
- this.frame.logger?.(
623
+ this.#logger(
605
624
  'info',
606
625
  `PTable ${this.id} getShape request ${requestId} started`
607
626
  );
608
627
  const t0 = performance.now();
609
628
  try {
610
629
  ops?.signal?.throwIfAborted();
611
- return await AddonSymbol.pTableGetShape(this.table, ops?.signal);
630
+ return await AddonSymbol.pTableGetShape(this.#table, ops?.signal);
612
631
  } catch (err: unknown) {
613
632
  if (isAbortError(err)) {
614
633
  throw new AbortError(
@@ -618,11 +637,11 @@ class PTable implements PFrameInternal.PTableV6 {
618
637
  throw new PFrameError(
619
638
  `PTable ${this.id} getShape request ${requestId} failed, ` +
620
639
  `error:\n` +
621
- `${ensureError(err).message}`
640
+ `${ensureError(err)}`
622
641
  );
623
642
  } finally {
624
643
  const t1 = performance.now();
625
- this.frame.logger?.(
644
+ this.#logger(
626
645
  'info',
627
646
  `PTable ${this.id} getShape request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))}`
628
647
  );
@@ -638,7 +657,7 @@ class PTable implements PFrameInternal.PTableV6 {
638
657
  ): Promise<PTableVector[]> {
639
658
  const requestId = ulid() as TableId;
640
659
  dump(
641
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
660
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
642
661
  {
643
662
  timeStamp: Date.now(),
644
663
  requestType: 'getData',
@@ -647,10 +666,10 @@ class PTable implements PFrameInternal.PTableV6 {
647
666
  range: ops?.range ?? null
648
667
  }
649
668
  },
650
- this.frame.logger
669
+ this.#logger
651
670
  );
652
671
 
653
- this.frame.logger?.(
672
+ this.#logger(
654
673
  'info',
655
674
  `PTable ${this.id} getData request ${requestId} started`
656
675
  );
@@ -659,7 +678,7 @@ class PTable implements PFrameInternal.PTableV6 {
659
678
  try {
660
679
  ops?.signal?.throwIfAborted();
661
680
  const result = await AddonSymbol.pTableGetData(
662
- this.table,
681
+ this.#table,
663
682
  requestId,
664
683
  columnIndices,
665
684
  ops?.range,
@@ -678,18 +697,18 @@ class PTable implements PFrameInternal.PTableV6 {
678
697
  `columnIndices: ${JSON.stringify(columnIndices)}, ` +
679
698
  `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +
680
699
  `error:\n` +
681
- `${ensureError(err).message}`
700
+ `${ensureError(err)}`
682
701
  );
683
702
  } finally {
684
703
  const t1 = performance.now();
685
- this.frame.logger?.(
704
+ this.#logger(
686
705
  'info',
687
706
  `PTable ${this.id} getData request ${requestId} finished, took ${humanizeDuration(Math.round(t1 - t0))} (${rowCount} rows)`
688
707
  );
689
708
  }
690
709
  }
691
710
 
692
- filter(request: PTableRecordFilter[]): PFrameInternal.PTableV6 {
711
+ filter(request: PTableRecordFilter[]): PTable {
693
712
  const requestId = ulid() as TableId;
694
713
  const dumpData = {
695
714
  timeStamp: Date.now(),
@@ -699,38 +718,34 @@ class PTable implements PFrameInternal.PTableV6 {
699
718
  filters: request.map(hashFilterColumnId)
700
719
  }
701
720
  };
721
+ dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
702
722
  dump(
703
- [`${this.frame.id}`, `${requestId}.json`],
723
+ [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
704
724
  dumpData,
705
- this.frame.logger
706
- );
707
- dump(
708
- [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],
709
- dumpData,
710
- this.frame.logger
725
+ this.#logger
711
726
  );
712
727
 
713
728
  const t0 = performance.now();
714
729
  try {
715
- const boxed = AddonSymbol.pTableFilter(this.table, requestId, request);
716
- return new PTable(this.frame, requestId, boxed);
730
+ const boxed = AddonSymbol.pTableFilter(this.#table, requestId, request);
731
+ return new PTable(this.#frame, requestId, boxed, this.#logger);
717
732
  } catch (err: unknown) {
718
733
  throw new PFrameError(
719
734
  `PTable ${this.id} filter request ${requestId} failed, ` +
720
735
  `request: ${JSON.stringify(request)}, ` +
721
736
  `error:\n` +
722
- `${ensureError(err).message}`
737
+ `${ensureError(err)}`
723
738
  );
724
739
  } finally {
725
740
  const t1 = performance.now();
726
- this.frame.logger?.(
741
+ this.#logger(
727
742
  'info',
728
743
  `PTable ${this.id} filter request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
729
744
  );
730
745
  }
731
746
  }
732
747
 
733
- sort(request: PTableSorting[]): PFrameInternal.PTableV6 {
748
+ sort(request: PTableSorting[]): PTable {
734
749
  const requestId = ulid() as TableId;
735
750
  const dumpData = {
736
751
  timeStamp: Date.now(),
@@ -738,31 +753,27 @@ class PTable implements PFrameInternal.PTableV6 {
738
753
  requestType: 'sort',
739
754
  requestData: request.map(hashSortingColumnId)
740
755
  };
756
+ dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);
741
757
  dump(
742
- [`${this.frame.id}`, `${requestId}.json`],
743
- dumpData,
744
- this.frame.logger
745
- );
746
- dump(
747
- [`${this.frame.id}`, `${requestId}`, `${requestId}.json`],
758
+ [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],
748
759
  dumpData,
749
- this.frame.logger
760
+ this.#logger
750
761
  );
751
762
 
752
763
  const t0 = performance.now();
753
764
  try {
754
- const boxed = AddonSymbol.pTableSort(this.table, requestId, request);
755
- return new PTable(this.frame, requestId, boxed);
765
+ const boxed = AddonSymbol.pTableSort(this.#table, requestId, request);
766
+ return new PTable(this.#frame, requestId, boxed, this.#logger);
756
767
  } catch (err: unknown) {
757
768
  throw new PFrameError(
758
769
  `PTable ${this.id} sort request ${requestId} failed, ` +
759
770
  `request: ${JSON.stringify(request)}, ` +
760
771
  `error:\n` +
761
- `${ensureError(err).message}`
772
+ `${ensureError(err)}`
762
773
  );
763
774
  } finally {
764
775
  const t1 = performance.now();
765
- this.frame.logger?.(
776
+ this.#logger(
766
777
  'info',
767
778
  `PTable ${this.id} sort request ${requestId} took ${humanizeDuration(Math.round(t1 - t0))}`
768
779
  );
@@ -772,22 +783,22 @@ class PTable implements PFrameInternal.PTableV6 {
772
783
  dispose() {
773
784
  const requestId = ulid();
774
785
  dump(
775
- [`${this.frame.id}`, `${this.id}`, `${requestId}.json`],
786
+ [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],
776
787
  {
777
788
  timeStamp: Date.now(),
778
789
  requestType: 'dispose'
779
790
  },
780
- this.frame.logger
791
+ this.#logger
781
792
  );
782
793
 
783
794
  try {
784
- AddonSymbol.pTableDispose(this.table);
785
- this.frame.logger?.('info', `PTable ${this.id} disposed`);
795
+ AddonSymbol.pTableDispose(this.#table);
796
+ this.#logger('info', `PTable ${this.id} disposed`);
786
797
  } catch (err: unknown) {
787
798
  throw new PFrameError(
788
799
  `PTable ${this.id} dispose request ${requestId} failed, ` +
789
800
  `error:\n` +
790
- `${ensureError(err).message}`
801
+ `${ensureError(err)}`
791
802
  );
792
803
  }
793
804
  }