@milaboratories/pframes-rs-node 1.0.106 → 1.0.108

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.
@@ -11,17 +11,20 @@ async function pprofDump() {
11
11
  return await addon.AddonSymbol.pprofDump();
12
12
  }
13
13
  catch (err) {
14
- throw new plModelCommon.PFrameError(`PFrame pprofDump failed, ` + `error:\n` + `${plModelCommon.ensureError(err)}`);
14
+ const error = new plModelCommon.PFrameError(`PFrame pprofDump failed`);
15
+ error.cause = plModelCommon.ensureError(err);
16
+ throw error;
15
17
  }
16
18
  }
17
19
  class PFrame {
18
20
  #frame;
19
- #id = ulid.ulid();
21
+ #id;
20
22
  get id() {
21
23
  return this.#id;
22
24
  }
23
25
  #logger;
24
26
  constructor(options) {
27
+ this.#id = options.frameId;
25
28
  this.#logger = options.logger ?? (() => { });
26
29
  dump.dump([`${this.id}`, `${this.id}.json`], {
27
30
  timeStamp: Date.now(),
@@ -32,10 +35,12 @@ class PFrame {
32
35
  this.#logger('info', `PFrame ${this.id} created`);
33
36
  }
34
37
  catch (err) {
35
- throw new plModelCommon.PFrameError(`PFrame ${this.id} creation failed, ` +
38
+ const error = new plModelCommon.PFrameError(`PFrame creation failed`);
39
+ error.cause = new Error(`PFrame ${this.id} creation failed, ` +
36
40
  `logger: ${this.#logger?.toString()}, ` +
37
41
  `error:\n` +
38
42
  `${plModelCommon.ensureError(err)}`);
43
+ throw error;
39
44
  }
40
45
  }
41
46
  addColumnSpec(columnId, columnSpec) {
@@ -55,11 +60,13 @@ class PFrame {
55
60
  return addon.AddonSymbol.pFrameAddColumnSpec(this.#frame, columnId, columnSpec);
56
61
  }
57
62
  catch (err) {
58
- throw new plModelCommon.PFrameError(`PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +
63
+ const error = new plModelCommon.PFrameError(`PFrame addColumnSpec request failed`);
64
+ error.cause = new Error(`PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +
59
65
  `columnId: ${JSON.stringify(columnId)}, ` +
60
66
  `columnSpec: ${JSON.stringify(columnSpec)}, ` +
61
67
  `error:\n` +
62
68
  `${plModelCommon.ensureError(err)}`);
69
+ throw error;
63
70
  }
64
71
  }
65
72
  setDataSource(dataSource) {
@@ -107,10 +114,12 @@ class PFrame {
107
114
  return addon.AddonSymbol.pFrameSetDataSource(this.#frame, wrappedDataSource);
108
115
  }
109
116
  catch (err) {
110
- throw new plModelCommon.PFrameError(`PFrame ${this.id} setDataSource request ${requestId} failed, ` +
117
+ const error = new plModelCommon.PFrameError(`PFrame setDataSource request failed`);
118
+ error.cause = new Error(`PFrame ${this.id} setDataSource request ${requestId} failed, ` +
111
119
  `dataSource: ${dataSource.toString()}, ` +
112
120
  `error:\n` +
113
121
  `${plModelCommon.ensureError(err)}`);
122
+ throw error;
114
123
  }
115
124
  }
116
125
  setColumnData(columnId, dataInfo, ops) {
@@ -131,11 +140,13 @@ class PFrame {
131
140
  return addon.AddonSymbol.pFrameSetColumnData(this.#frame, columnId, dataInfo, ops?.signal);
132
141
  }
133
142
  catch (err) {
134
- throw new plModelCommon.PFrameError(`PFrame ${this.id} setColumnData request ${requestId} failed, ` +
143
+ const error = new plModelCommon.PFrameError(`PFrame setColumnData request failed`);
144
+ error.cause = new Error(`PFrame ${this.id} setColumnData request ${requestId} failed, ` +
135
145
  `columnId: ${JSON.stringify(columnId)}, ` +
136
146
  `dataInfo: ${JSON.stringify(dataInfo)}, ` +
137
147
  `error:\n` +
138
148
  `${plModelCommon.ensureError(err)}`);
149
+ throw error;
139
150
  }
140
151
  }
141
152
  dispose() {
@@ -149,9 +160,11 @@ class PFrame {
149
160
  this.#logger('info', `PFrame ${this.id} disposed`);
150
161
  }
151
162
  catch (err) {
152
- throw new plModelCommon.PFrameError(`PFrame ${this.id} dispose request ${requestId} failed, ` +
163
+ const error = new plModelCommon.PFrameError(`PFrame dispose request failed`);
164
+ error.cause = new Error(`PFrame ${this.id} dispose request ${requestId} failed, ` +
153
165
  `error:\n` +
154
166
  `${plModelCommon.ensureError(err)}`);
167
+ throw error;
155
168
  }
156
169
  }
157
170
  [Symbol.dispose]() {
@@ -169,10 +182,12 @@ class PFrame {
169
182
  return await addon.AddonSymbol.pFrameFindColumns(this.#frame, request);
170
183
  }
171
184
  catch (err) {
172
- throw new plModelCommon.PFrameError(`PFrame ${this.id} findColumns request ${requestId} failed, ` +
185
+ const error = new plModelCommon.PFrameError(`PFrame findColumns request failed`);
186
+ error.cause = new Error(`PFrame ${this.id} findColumns request ${requestId} failed, ` +
173
187
  `request: ${JSON.stringify(request)}, ` +
174
188
  `error:\n` +
175
189
  `${plModelCommon.ensureError(err)}`);
190
+ throw error;
176
191
  }
177
192
  finally {
178
193
  this.#logger('info', `PFrame ${this.id} findColumns request ${requestId} took ${timer.elapsed()}`);
@@ -190,10 +205,12 @@ class PFrame {
190
205
  return await addon.AddonSymbol.pFrameDeleteColumn(this.#frame, request);
191
206
  }
192
207
  catch (err) {
193
- throw new plModelCommon.PFrameError(`PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
208
+ const error = new plModelCommon.PFrameError(`PFrame deleteColumn request failed`);
209
+ error.cause = new Error(`PFrame ${this.id} deleteColumn request ${requestId} failed, ` +
194
210
  `request: ${JSON.stringify(request)}, ` +
195
211
  `error:\n` +
196
212
  `${plModelCommon.ensureError(err)}`);
213
+ throw error;
197
214
  }
198
215
  finally {
199
216
  this.#logger('info', `PFrame ${this.id} deleteColumn request ${requestId} took ${timer.elapsed()}`);
@@ -212,10 +229,12 @@ class PFrame {
212
229
  return await addon.AddonSymbol.pFrameGetColumnSpec(this.#frame, columnId);
213
230
  }
214
231
  catch (err) {
215
- throw new plModelCommon.PFrameError(`PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
232
+ const error = new plModelCommon.PFrameError(`PFrame getColumnSpec request failed`);
233
+ error.cause = new Error(`PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +
216
234
  `columnId: ${JSON.stringify(columnId)}, ` +
217
235
  `error:\n` +
218
236
  `${plModelCommon.ensureError(err)}`);
237
+ throw error;
219
238
  }
220
239
  }
221
240
  async listColumns() {
@@ -228,13 +247,14 @@ class PFrame {
228
247
  return await addon.AddonSymbol.pFrameListColumns(this.#frame);
229
248
  }
230
249
  catch (err) {
231
- throw new plModelCommon.PFrameError(`PFrame ${this.id} listColumns request ${requestId} failed, ` +
250
+ const error = new plModelCommon.PFrameError(`PFrame listColumns request failed`);
251
+ error.cause = new Error(`PFrame ${this.id} listColumns request ${requestId} failed, ` +
232
252
  `error:\n` +
233
253
  `${plModelCommon.ensureError(err)}`);
254
+ throw error;
234
255
  }
235
256
  }
236
- createTable(request) {
237
- const requestId = ulid.ulid();
257
+ createTable(requestId, request) {
238
258
  const dumpData = {
239
259
  timeStamp: Date.now(),
240
260
  requestType: 'createTable',
@@ -248,10 +268,12 @@ class PFrame {
248
268
  return new PTable(this, requestId, boxed, this.#logger);
249
269
  }
250
270
  catch (err) {
251
- throw new plModelCommon.PFrameError(`PFrame ${this.id} createTable request ${requestId} failed, ` +
271
+ const error = new plModelCommon.PFrameError(`PFrame createTable request failed`);
272
+ error.cause = new Error(`PFrame ${this.id} createTable request ${requestId} failed, ` +
252
273
  `request: ${JSON.stringify(request)}, ` +
253
274
  `error:\n` +
254
275
  `${plModelCommon.ensureError(err)}`);
276
+ throw error;
255
277
  }
256
278
  finally {
257
279
  this.#logger('info', `PFrame ${this.id} createTable request ${requestId} took ${timer.elapsed()}`);
@@ -274,10 +296,12 @@ class PFrame {
274
296
  if (plModelCommon.isAbortError(err)) {
275
297
  throw new plModelCommon.AbortError(`PFrame ${this.id} getUniqueValues request ${requestId} cancelled`);
276
298
  }
277
- throw new plModelCommon.PFrameError(`PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
299
+ const error = new plModelCommon.PFrameError(`PFrame getUniqueValues request failed`);
300
+ error.cause = new Error(`PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +
278
301
  `request: ${JSON.stringify(request)}, ` +
279
302
  `error:\n` +
280
303
  `${plModelCommon.ensureError(err)}`);
304
+ throw error;
281
305
  }
282
306
  finally {
283
307
  this.#logger('info', `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${timer.elapsed()}`);
@@ -309,9 +333,11 @@ class PTable {
309
333
  return addon.AddonSymbol.pTableGetSpec(this.#table);
310
334
  }
311
335
  catch (err) {
312
- throw new plModelCommon.PFrameError(`PTable ${this.id} getSpec request ${requestId} failed, ` +
336
+ const error = new plModelCommon.PFrameError(`PTable getSpec request failed`);
337
+ error.cause = new Error(`PTable ${this.id} getSpec request ${requestId} failed, ` +
313
338
  `error:\n` +
314
339
  `${plModelCommon.ensureError(err)}`);
340
+ throw error;
315
341
  }
316
342
  }
317
343
  getColumnIndices(columnIds) {
@@ -327,10 +353,12 @@ class PTable {
327
353
  return addon.AddonSymbol.pTableGetColumnIndices(this.#table, columnIds);
328
354
  }
329
355
  catch (err) {
330
- throw new plModelCommon.PFrameError(`PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
356
+ const error = new plModelCommon.PFrameError(`PTable getColumnIndices request failed`);
357
+ error.cause = new Error(`PTable ${this.id} getColumnIndices request ${requestId} failed, ` +
331
358
  `columnIds: ${JSON.stringify(columnIds)}, ` +
332
359
  `error:\n` +
333
360
  `${plModelCommon.ensureError(err)}`);
361
+ throw error;
334
362
  }
335
363
  }
336
364
  async getFootprint(ops) {
@@ -347,9 +375,11 @@ class PTable {
347
375
  if (!plModelCommon.isAbortError(err)) {
348
376
  throw new plModelCommon.AbortError(`PTable ${this.id} getFootprint request ${requestId} cancelled`);
349
377
  }
350
- throw new plModelCommon.PFrameError(`PTable ${this.id} getFootprint request ${requestId} failed, ` +
378
+ const error = new plModelCommon.PFrameError(`PTable getFootprint request failed`);
379
+ error.cause = new Error(`PTable ${this.id} getFootprint request ${requestId} failed, ` +
351
380
  `error:\n` +
352
381
  `${plModelCommon.ensureError(err)}`);
382
+ throw error;
353
383
  }
354
384
  }
355
385
  async getShape(ops) {
@@ -368,9 +398,11 @@ class PTable {
368
398
  if (plModelCommon.isAbortError(err)) {
369
399
  throw new plModelCommon.AbortError(`PTable ${this.id} getShape request ${requestId} cancelled`);
370
400
  }
371
- throw new plModelCommon.PFrameError(`PTable ${this.id} getShape request ${requestId} failed, ` +
401
+ const error = new plModelCommon.PFrameError(`PTable getShape request failed`);
402
+ error.cause = new Error(`PTable ${this.id} getShape request ${requestId} failed, ` +
372
403
  `error:\n` +
373
404
  `${plModelCommon.ensureError(err)}`);
405
+ throw error;
374
406
  }
375
407
  finally {
376
408
  this.#logger('info', `PTable ${this.id} getShape request ${requestId} finished, took ${timer.elapsed()}`);
@@ -399,18 +431,19 @@ class PTable {
399
431
  if (plModelCommon.isAbortError(err)) {
400
432
  throw new plModelCommon.AbortError(`PTable ${this.id} getData request ${requestId} cancelled`);
401
433
  }
402
- throw new plModelCommon.PFrameError(`PTable ${this.id} getData request ${requestId} failed, ` +
434
+ const error = new plModelCommon.PFrameError(`PTable getData request failed`);
435
+ error.cause = new Error(`PTable ${this.id} getData request ${requestId} failed, ` +
403
436
  `columnIndices: ${JSON.stringify(columnIndices)}, ` +
404
437
  `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +
405
438
  `error:\n` +
406
439
  `${plModelCommon.ensureError(err)}`);
440
+ throw error;
407
441
  }
408
442
  finally {
409
443
  this.#logger('info', `PTable ${this.id} getData request ${requestId} finished, took ${timer.elapsed()} (${rowCount} rows)`);
410
444
  }
411
445
  }
412
- filter(request) {
413
- const requestId = ulid.ulid();
446
+ filter(requestId, request) {
414
447
  const dumpData = {
415
448
  timeStamp: Date.now(),
416
449
  table: this.id,
@@ -427,17 +460,18 @@ class PTable {
427
460
  return new PTable(this.#frame, requestId, boxed, this.#logger);
428
461
  }
429
462
  catch (err) {
430
- throw new plModelCommon.PFrameError(`PTable ${this.id} filter request ${requestId} failed, ` +
463
+ const error = new plModelCommon.PFrameError(`PTable filter request failed`);
464
+ error.cause = new Error(`PTable ${this.id} filter request ${requestId} failed, ` +
431
465
  `request: ${JSON.stringify(request)}, ` +
432
466
  `error:\n` +
433
467
  `${plModelCommon.ensureError(err)}`);
468
+ throw error;
434
469
  }
435
470
  finally {
436
471
  this.#logger('info', `PTable ${this.id} filter request ${requestId} took ${timer.elapsed()}`);
437
472
  }
438
473
  }
439
- sort(request) {
440
- const requestId = ulid.ulid();
474
+ sort(requestId, request) {
441
475
  const dumpData = {
442
476
  timeStamp: Date.now(),
443
477
  table: this.id,
@@ -452,10 +486,12 @@ class PTable {
452
486
  return new PTable(this.#frame, requestId, boxed, this.#logger);
453
487
  }
454
488
  catch (err) {
455
- throw new plModelCommon.PFrameError(`PTable ${this.id} sort request ${requestId} failed, ` +
489
+ const error = new plModelCommon.PFrameError(`PTable sort request failed`);
490
+ error.cause = new Error(`PTable ${this.id} sort request ${requestId} failed, ` +
456
491
  `request: ${JSON.stringify(request)}, ` +
457
492
  `error:\n` +
458
493
  `${plModelCommon.ensureError(err)}`);
494
+ throw error;
459
495
  }
460
496
  finally {
461
497
  this.#logger('info', `PTable ${this.id} sort request ${requestId} took ${timer.elapsed()}`);
@@ -472,9 +508,11 @@ class PTable {
472
508
  this.#logger('info', `PTable ${this.id} disposed`);
473
509
  }
474
510
  catch (err) {
475
- throw new plModelCommon.PFrameError(`PTable ${this.id} dispose request ${requestId} failed, ` +
511
+ const error = new plModelCommon.PFrameError(`PTable dispose request failed`);
512
+ error.cause = new Error(`PTable ${this.id} dispose request ${requestId} failed, ` +
476
513
  `error:\n` +
477
514
  `${plModelCommon.ensureError(err)}`);
515
+ throw error;
478
516
  }
479
517
  }
480
518
  [Symbol.dispose]() {
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.cjs","sources":["../../export/wrapper.ts"],"sourcesContent":["import { ulid } from 'ulid';\nimport {\n AbortError,\n type PColumnInfo,\n type PColumnSpec,\n PFrameError,\n type PObjectId,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableRecordFilter,\n type PTableShape,\n type PTableSorting,\n type PTableVector,\n type TableRange,\n type UniqueValuesRequest,\n type UniqueValuesResponse,\n ensureError,\n isAbortError\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PerfTimer } from '@milaboratories/helpers';\nimport type {\n FrameId,\n TableId,\n NodeFrameSymbol,\n NodeTableSymbol\n} from './addon-def';\nimport { AddonSymbol } from './addon';\nimport {\n dump,\n hashColumnId,\n hashTableColumnId,\n hashFilterColumnId,\n hashUniqueValuesRequestColumnId,\n hashSortingColumnId,\n hashCreateTableRequestColumnId\n} from './dump';\n\nexport async function pprofDump(): Promise<Uint8Array> {\n try {\n return await AddonSymbol.pprofDump();\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame pprofDump failed, ` + `error:\\n` + `${ensureError(err)}`\n );\n }\n}\n\nexport class PFrame implements PFrameInternal.PFrameV12 {\n readonly #frame: NodeFrameSymbol;\n\n readonly #id: FrameId = ulid() as FrameId;\n\n get id(): FrameId {\n return this.#id;\n }\n\n readonly #logger: PFrameInternal.Logger;\n\n constructor(options: PFrameInternal.PFrameOptions) {\n this.#logger = options.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(options.spillPath, options.logger);\n this.#logger('info', `PFrame ${this.id} created`);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} creation failed, ` +\n `logger: ${this.#logger?.toString()}, ` +\n `error:\\n` +\n `${ensureError(err)}`\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: hashColumnId(columnId),\n columnSpec\n }\n },\n this.#logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(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 PFrameError(\n `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSourceV2): 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 const 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 this.#logger(\n 'info',\n `PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`\n );\n const timer = PerfTimer.start();\n try {\n return await dataSource.preloadBlob(blobIds);\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} preloadBlob finished, took ${timer.elapsed()} (${blobIds.length} blobs)`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.#logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n this.#logger('info', `PFrame ${this.id} resolved blob ${blobId}`);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.#logger);\n\n return blob;\n },\n parquetServer: dataSource.parquetServer\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.#frame, wrappedDataSource);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} setDataSource request ${requestId} failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: PFrameInternal.DataInfo<PFrameInternal.PFrameBlobId>,\n ops?: {\n signal?: AbortSignal;\n }\n ): Promise<void> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId: hashColumnId(columnId),\n dataInfo\n }\n },\n this.#logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.datainfo`],\n {\n ...dataInfo\n },\n this.#logger\n );\n\n try {\n ops?.signal?.throwIfAborted();\n return AddonSymbol.pFrameSetColumnData(\n this.#frame,\n columnId,\n dataInfo,\n ops?.signal\n );\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} setColumnData request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\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 PFrameError(\n `PFrame ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\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 timer = PerfTimer.start();\n try {\n return await AddonSymbol.pFrameFindColumns(this.#frame, request);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} findColumns request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} findColumns request ${requestId} took ${timer.elapsed()}`\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 timer = PerfTimer.start();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.#frame, request);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} deleteColumn request ${requestId} took ${timer.elapsed()}`\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: hashColumnId(columnId)\n }\n },\n this.#logger\n );\n\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.#frame, columnId);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\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 try {\n return await AddonSymbol.pFrameListColumns(this.#frame);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} listColumns request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n createTable(request: PFrameInternal.CreateTableRequestV4): PTable {\n const requestId = ulid() as TableId;\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: hashCreateTableRequestColumnId(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 timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pFrameCreateTable(\n this.#frame,\n requestId,\n request\n );\n return new PTable(this, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n throw new PFrameError(\n `PFrame ${this.id} createTable request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} took ${timer.elapsed()}`\n );\n }\n }\n\n async getUniqueValues(\n request: UniqueValuesRequest,\n ops?: {\n signal?: AbortSignal;\n }\n ): Promise<UniqueValuesResponse> {\n const requestId = ulid() as TableId;\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getUniqueValues',\n requestData: hashUniqueValuesRequestColumnId(request)\n },\n this.#logger\n );\n\n this.#logger(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} started`\n );\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pFrameGetUniqueValues(\n this.#frame,\n requestId,\n request,\n ops?.signal\n );\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PFrame ${this.id} getUniqueValues request ${requestId} cancelled`\n );\n }\n throw new PFrameError(\n `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${timer.elapsed()}`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV7 {\n readonly #frame: PFrame;\n readonly #table: NodeTableSymbol;\n\n readonly #id: string;\n\n get id(): string {\n return this.#id;\n }\n\n readonly #logger: PFrameInternal.Logger;\n\n constructor(\n frame: PFrame,\n id: string,\n table: NodeTableSymbol,\n logger: PFrameInternal.Logger\n ) {\n this.#frame = frame;\n this.#table = table;\n this.#id = id;\n this.#logger = logger;\n this.#logger('info', `PTable ${this.id} created`);\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.#logger\n );\n\n try {\n return AddonSymbol.pTableGetSpec(this.#table);\n } catch (err: unknown) {\n throw new PFrameError(\n `PTable ${this.id} getSpec request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\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: columnIds.map(hashTableColumnId)\n }\n },\n this.#logger\n );\n\n try {\n return AddonSymbol.pTableGetColumnIndices(this.#table, columnIds);\n } catch (err: unknown) {\n throw new PFrameError(\n `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +\n `columnIds: ${JSON.stringify(columnIds)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n async getFootprint(ops?: { signal?: AbortSignal }): Promise<number> {\n const requestId = ulid();\n dump(\n [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getFootprint'\n },\n this.#logger\n );\n\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pTableGetFootprint(this.#table, ops?.signal);\n } catch (err: unknown) {\n if (!isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getFootprint request ${requestId} cancelled`\n );\n }\n throw new PFrameError(\n `PTable ${this.id} getFootprint request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n async getShape(ops?: { signal?: AbortSignal }): Promise<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.#logger\n );\n\n this.#logger(\n 'info',\n `PTable ${this.id} getShape request ${requestId} started`\n );\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pTableGetShape(this.#table, ops?.signal);\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getShape request ${requestId} cancelled`\n );\n }\n throw new PFrameError(\n `PTable ${this.id} getShape request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} getShape request ${requestId} finished, took ${timer.elapsed()}`\n );\n }\n }\n\n async getData(\n columnIndices: number[],\n ops?: {\n range?: TableRange | undefined;\n signal?: AbortSignal | undefined;\n }\n ): Promise<PTableVector[]> {\n const requestId = ulid() as TableId;\n dump(\n [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: ops?.range ?? null\n }\n },\n this.#logger\n );\n\n this.#logger(\n 'info',\n `PTable ${this.id} getData request ${requestId} started`\n );\n let rowCount = 0;\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n const result = await AddonSymbol.pTableGetData(\n this.#table,\n requestId,\n columnIndices,\n ops?.range,\n ops?.signal\n );\n rowCount = result[0].data.length;\n return result;\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getData request ${requestId} cancelled`\n );\n }\n throw new PFrameError(\n `PTable ${this.id} getData request ${requestId} failed, ` +\n `columnIndices: ${JSON.stringify(columnIndices)}, ` +\n `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} getData request ${requestId} finished, took ${timer.elapsed()} (${rowCount} rows)`\n );\n }\n }\n\n filter(request: PTableRecordFilter[]): PTable {\n const requestId = ulid() as TableId;\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: {\n filters: request.map(hashFilterColumnId)\n }\n };\n dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);\n dump(\n [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.#logger\n );\n\n const timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pTableFilter(this.#table, requestId, request);\n return new PTable(this.#frame, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n throw new PFrameError(\n `PTable ${this.id} filter request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} filter request ${requestId} took ${timer.elapsed()}`\n );\n }\n }\n\n sort(request: PTableSorting[]): PTable {\n const requestId = ulid() as TableId;\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request.map(hashSortingColumnId)\n };\n dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);\n dump(\n [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.#logger\n );\n\n const timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pTableSort(this.#table, requestId, request);\n return new PTable(this.#frame, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n throw new PFrameError(\n `PTable ${this.id} sort request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} sort request ${requestId} took ${timer.elapsed()}`\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.#logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.#table);\n this.#logger('info', `PTable ${this.id} disposed`);\n } catch (err: unknown) {\n throw new PFrameError(\n `PTable ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n"],"names":["AddonSymbol","PFrameError","ensureError","ulid","dump","hashColumnId","PerfTimer","hashCreateTableRequestColumnId","hashUniqueValuesRequestColumnId","isAbortError","AbortError","hashTableColumnId","hashFilterColumnId","hashSortingColumnId"],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.cjs","sources":["../../export/wrapper.ts"],"sourcesContent":["import { ulid } from 'ulid';\nimport {\n AbortError,\n type PColumnInfo,\n type PColumnSpec,\n PFrameError,\n type PObjectId,\n type PTableColumnId,\n type PTableColumnSpec,\n type PTableRecordFilter,\n type PTableShape,\n type PTableSorting,\n type PTableVector,\n type TableRange,\n type UniqueValuesRequest,\n type UniqueValuesResponse,\n ensureError,\n isAbortError\n} from '@milaboratories/pl-model-common';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PerfTimer } from '@milaboratories/helpers';\nimport type { NodeFrameSymbol, NodeTableSymbol } from './addon-def';\nimport { AddonSymbol } from './addon';\nimport {\n dump,\n hashColumnId,\n hashTableColumnId,\n hashFilterColumnId,\n hashUniqueValuesRequestColumnId,\n hashSortingColumnId,\n hashCreateTableRequestColumnId\n} from './dump';\n\nexport async function pprofDump(): Promise<Uint8Array> {\n try {\n return await AddonSymbol.pprofDump();\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame pprofDump failed`);\n error.cause = ensureError(err);\n throw error;\n }\n}\n\nexport class PFrame implements PFrameInternal.PFrameV13 {\n readonly #frame: NodeFrameSymbol;\n\n readonly #id: PFrameInternal.PFrameId;\n\n get id(): PFrameInternal.PFrameId {\n return this.#id;\n }\n\n readonly #logger: PFrameInternal.Logger;\n\n constructor(options: PFrameInternal.PFrameOptionsV2) {\n this.#id = options.frameId;\n this.#logger = options.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(options.spillPath, options.logger);\n this.#logger('info', `PFrame ${this.id} created`);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame creation failed`);\n error.cause = new Error(\n `PFrame ${this.id} creation failed, ` +\n `logger: ${this.#logger?.toString()}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\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: hashColumnId(columnId),\n columnSpec\n }\n },\n this.#logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(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 const error = new PFrameError(`PFrame addColumnSpec request failed`);\n error.cause = new Error(\n `PFrame ${this.id} addColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `columnSpec: ${JSON.stringify(columnSpec)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n setDataSource(dataSource: PFrameInternal.PFrameDataSourceV2): 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 const 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 this.#logger(\n 'info',\n `PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(blobIds)}`\n );\n const timer = PerfTimer.start();\n try {\n return await dataSource.preloadBlob(blobIds);\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} preloadBlob finished, took ${timer.elapsed()} (${blobIds.length} blobs)`\n );\n }\n },\n resolveBlobContent: async (\n blobId: PFrameInternal.PFrameBlobId\n ): Promise<Uint8Array> => {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'resolveBlobContent',\n requestData: {\n blobId\n }\n },\n this.#logger\n );\n\n const blob = await dataSource.resolveBlobContent(blobId);\n this.#logger('info', `PFrame ${this.id} resolved blob ${blobId}`);\n dump([`${this.id}`, `data`, `${blobId}`], blob, this.#logger);\n\n return blob;\n },\n parquetServer: dataSource.parquetServer\n };\n\n try {\n return AddonSymbol.pFrameSetDataSource(this.#frame, wrappedDataSource);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame setDataSource request failed`);\n error.cause = new Error(\n `PFrame ${this.id} setDataSource request ${requestId} failed, ` +\n `dataSource: ${dataSource.toString()}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n setColumnData(\n columnId: PObjectId,\n dataInfo: PFrameInternal.DataInfo<PFrameInternal.PFrameBlobId>,\n ops?: {\n signal?: AbortSignal;\n }\n ): Promise<void> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'setColumnData',\n requestData: {\n columnId: hashColumnId(columnId),\n dataInfo\n }\n },\n this.#logger\n );\n\n dump(\n [`${this.id}`, `data`, `${hashColumnId(columnId)}.datainfo`],\n {\n ...dataInfo\n },\n this.#logger\n );\n\n try {\n ops?.signal?.throwIfAborted();\n return AddonSymbol.pFrameSetColumnData(\n this.#frame,\n columnId,\n dataInfo,\n ops?.signal\n );\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame setColumnData request failed`);\n error.cause = new Error(\n `PFrame ${this.id} setColumnData request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `dataInfo: ${JSON.stringify(dataInfo)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\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 const error = new PFrameError(`PFrame dispose request failed`);\n error.cause = new Error(\n `PFrame ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\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 timer = PerfTimer.start();\n try {\n return await AddonSymbol.pFrameFindColumns(this.#frame, request);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame findColumns request failed`);\n error.cause = new Error(\n `PFrame ${this.id} findColumns request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} findColumns request ${requestId} took ${timer.elapsed()}`\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 timer = PerfTimer.start();\n try {\n return await AddonSymbol.pFrameDeleteColumn(this.#frame, request);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame deleteColumn request failed`);\n error.cause = new Error(\n `PFrame ${this.id} deleteColumn request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} deleteColumn request ${requestId} took ${timer.elapsed()}`\n );\n }\n }\n\n async getColumnSpec(columnId: PObjectId): Promise<PColumnSpec | null> {\n const requestId = ulid();\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getColumnSpec',\n requestData: {\n columnId: hashColumnId(columnId)\n }\n },\n this.#logger\n );\n\n try {\n return await AddonSymbol.pFrameGetColumnSpec(this.#frame, columnId);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame getColumnSpec request failed`);\n error.cause = new Error(\n `PFrame ${this.id} getColumnSpec request ${requestId} failed, ` +\n `columnId: ${JSON.stringify(columnId)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\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 try {\n return await AddonSymbol.pFrameListColumns(this.#frame);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame listColumns request failed`);\n error.cause = new Error(\n `PFrame ${this.id} listColumns request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n createTable(\n requestId: PFrameInternal.PTableId,\n request: PFrameInternal.CreateTableRequestV4\n ): PTable {\n const dumpData = {\n timeStamp: Date.now(),\n requestType: 'createTable',\n requestData: hashCreateTableRequestColumnId(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 timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pFrameCreateTable(\n this.#frame,\n requestId,\n request\n );\n return new PTable(this, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n const error = new PFrameError(`PFrame createTable request failed`);\n error.cause = new Error(\n `PFrame ${this.id} createTable request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} createTable request ${requestId} took ${timer.elapsed()}`\n );\n }\n }\n\n async getUniqueValues(\n request: UniqueValuesRequest,\n ops?: {\n signal?: AbortSignal;\n }\n ): Promise<UniqueValuesResponse> {\n const requestId = ulid() as PFrameInternal.PTableId;\n dump(\n [`${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getUniqueValues',\n requestData: hashUniqueValuesRequestColumnId(request)\n },\n this.#logger\n );\n\n this.#logger(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} started`\n );\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pFrameGetUniqueValues(\n this.#frame,\n requestId,\n request,\n ops?.signal\n );\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PFrame ${this.id} getUniqueValues request ${requestId} cancelled`\n );\n }\n const error = new PFrameError(`PFrame getUniqueValues request failed`);\n error.cause = new Error(\n `PFrame ${this.id} getUniqueValues request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PFrame ${this.id} getUniqueValues request ${requestId} finished, took ${timer.elapsed()}`\n );\n }\n }\n}\n\nclass PTable implements PFrameInternal.PTableV8 {\n readonly #frame: PFrame;\n readonly #table: NodeTableSymbol;\n\n readonly #id: string;\n\n get id(): string {\n return this.#id;\n }\n\n readonly #logger: PFrameInternal.Logger;\n\n constructor(\n frame: PFrame,\n id: string,\n table: NodeTableSymbol,\n logger: PFrameInternal.Logger\n ) {\n this.#frame = frame;\n this.#table = table;\n this.#id = id;\n this.#logger = logger;\n this.#logger('info', `PTable ${this.id} created`);\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.#logger\n );\n\n try {\n return AddonSymbol.pTableGetSpec(this.#table);\n } catch (err: unknown) {\n const error = new PFrameError(`PTable getSpec request failed`);\n error.cause = new Error(\n `PTable ${this.id} getSpec request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\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: columnIds.map(hashTableColumnId)\n }\n },\n this.#logger\n );\n\n try {\n return AddonSymbol.pTableGetColumnIndices(this.#table, columnIds);\n } catch (err: unknown) {\n const error = new PFrameError(`PTable getColumnIndices request failed`);\n error.cause = new Error(\n `PTable ${this.id} getColumnIndices request ${requestId} failed, ` +\n `columnIds: ${JSON.stringify(columnIds)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n async getFootprint(ops?: { signal?: AbortSignal }): Promise<number> {\n const requestId = ulid();\n dump(\n [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getFootprint'\n },\n this.#logger\n );\n\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pTableGetFootprint(this.#table, ops?.signal);\n } catch (err: unknown) {\n if (!isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getFootprint request ${requestId} cancelled`\n );\n }\n const error = new PFrameError(`PTable getFootprint request failed`);\n error.cause = new Error(\n `PTable ${this.id} getFootprint request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n async getShape(ops?: { signal?: AbortSignal }): Promise<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.#logger\n );\n\n this.#logger(\n 'info',\n `PTable ${this.id} getShape request ${requestId} started`\n );\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n return await AddonSymbol.pTableGetShape(this.#table, ops?.signal);\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getShape request ${requestId} cancelled`\n );\n }\n const error = new PFrameError(`PTable getShape request failed`);\n error.cause = new Error(\n `PTable ${this.id} getShape request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} getShape request ${requestId} finished, took ${timer.elapsed()}`\n );\n }\n }\n\n async getData(\n columnIndices: number[],\n ops?: {\n range?: TableRange | undefined;\n signal?: AbortSignal | undefined;\n }\n ): Promise<PTableVector[]> {\n const requestId = ulid() as PFrameInternal.PTableId;\n dump(\n [`${this.#frame.id}`, `${this.id}`, `${requestId}.json`],\n {\n timeStamp: Date.now(),\n requestType: 'getData',\n requestData: {\n columnIndices,\n range: ops?.range ?? null\n }\n },\n this.#logger\n );\n\n this.#logger(\n 'info',\n `PTable ${this.id} getData request ${requestId} started`\n );\n let rowCount = 0;\n const timer = PerfTimer.start();\n try {\n ops?.signal?.throwIfAborted();\n const result = await AddonSymbol.pTableGetData(\n this.#table,\n requestId,\n columnIndices,\n ops?.range,\n ops?.signal\n );\n rowCount = result[0].data.length;\n return result;\n } catch (err: unknown) {\n if (isAbortError(err)) {\n throw new AbortError(\n `PTable ${this.id} getData request ${requestId} cancelled`\n );\n }\n const error = new PFrameError(`PTable getData request failed`);\n error.cause = new Error(\n `PTable ${this.id} getData request ${requestId} failed, ` +\n `columnIndices: ${JSON.stringify(columnIndices)}, ` +\n `range: ${ops?.range ? JSON.stringify(ops.range) : undefined}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} getData request ${requestId} finished, took ${timer.elapsed()} (${rowCount} rows)`\n );\n }\n }\n\n filter(\n requestId: PFrameInternal.PTableId,\n request: PTableRecordFilter[]\n ): PTable {\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'filter',\n requestData: {\n filters: request.map(hashFilterColumnId)\n }\n };\n dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);\n dump(\n [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.#logger\n );\n\n const timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pTableFilter(this.#table, requestId, request);\n return new PTable(this.#frame, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n const error = new PFrameError(`PTable filter request failed`);\n error.cause = new Error(\n `PTable ${this.id} filter request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} filter request ${requestId} took ${timer.elapsed()}`\n );\n }\n }\n\n sort(requestId: PFrameInternal.PTableId, request: PTableSorting[]): PTable {\n const dumpData = {\n timeStamp: Date.now(),\n table: this.id,\n requestType: 'sort',\n requestData: request.map(hashSortingColumnId)\n };\n dump([`${this.#frame.id}`, `${requestId}.json`], dumpData, this.#logger);\n dump(\n [`${this.#frame.id}`, `${requestId}`, `${requestId}.json`],\n dumpData,\n this.#logger\n );\n\n const timer = PerfTimer.start();\n try {\n const boxed = AddonSymbol.pTableSort(this.#table, requestId, request);\n return new PTable(this.#frame, requestId, boxed, this.#logger);\n } catch (err: unknown) {\n const error = new PFrameError(`PTable sort request failed`);\n error.cause = new Error(\n `PTable ${this.id} sort request ${requestId} failed, ` +\n `request: ${JSON.stringify(request)}, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n } finally {\n this.#logger(\n 'info',\n `PTable ${this.id} sort request ${requestId} took ${timer.elapsed()}`\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.#logger\n );\n\n try {\n AddonSymbol.pTableDispose(this.#table);\n this.#logger('info', `PTable ${this.id} disposed`);\n } catch (err: unknown) {\n const error = new PFrameError(`PTable dispose request failed`);\n error.cause = new Error(\n `PTable ${this.id} dispose request ${requestId} failed, ` +\n `error:\\n` +\n `${ensureError(err)}`\n );\n throw error;\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n"],"names":["AddonSymbol","PFrameError","ensureError","dump","ulid","hashColumnId","PerfTimer","hashCreateTableRequestColumnId","hashUniqueValuesRequestColumnId","isAbortError","AbortError","hashTableColumnId","hashFilterColumnId","hashSortingColumnId"],"mappings":"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"}