@milaboratories/pl-model-middle-layer 1.8.25 → 1.8.26

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.
@@ -1,7 +1,7 @@
1
1
  import { FindColumnsRequest, FindColumnsResponse } from './find_columns';
2
2
  import { DeleteColumnFromColumnsRequest, DeleteColumnFromColumnsResponse } from './delete_column';
3
3
  import { PColumnInfo, PColumnSpec, PObjectId, UniqueValuesRequest, UniqueValuesResponse } from '@milaboratories/pl-model-common';
4
- import { CreateTableRequestV3 } from './create_table';
4
+ import { CreateTableRequestV3, CreateTableRequestV4 } from './create_table';
5
5
  import { PTableV7 } from './table';
6
6
  /** Read interface exposed by PFrames library */
7
7
  export interface PFrameReadAPIV9 {
@@ -30,4 +30,31 @@ export interface PFrameReadAPIV9 {
30
30
  signal?: AbortSignal;
31
31
  }): Promise<UniqueValuesResponse>;
32
32
  }
33
+ /** Read interface exposed by PFrames library */
34
+ export interface PFrameReadAPIV10 {
35
+ /**
36
+ * Finds columns given filtering criteria on column name, annotations etc.
37
+ * and a set of qualified axes specs to find only columns with compatible
38
+ * axes spec.
39
+ *
40
+ * Only column specs are used, this method will work even for columns
41
+ * with no assigned data.
42
+ * */
43
+ findColumns(request: FindColumnsRequest): Promise<FindColumnsResponse>;
44
+ /**
45
+ * Construct new axes integration with some entry removed but integration qualificaitons preserved.
46
+ * Removes more then one entry in case the removal will create several disjoint sets of axes.
47
+ */
48
+ deleteColumn(request: DeleteColumnFromColumnsRequest): Promise<DeleteColumnFromColumnsResponse>;
49
+ /** Retrieve single column spec */
50
+ getColumnSpec(columnId: PObjectId): Promise<PColumnSpec>;
51
+ /** Retrieve information about all columns currently added to the PFrame */
52
+ listColumns(): Promise<PColumnInfo[]>;
53
+ /** Calculates data for the table and returns an object to access it */
54
+ createTable(request: CreateTableRequestV4): PTableV7;
55
+ /** Calculate set of unique values for a specific axis for the filtered set of records */
56
+ getUniqueValues(request: UniqueValuesRequest, ops?: {
57
+ signal?: AbortSignal;
58
+ }): Promise<UniqueValuesResponse>;
59
+ }
33
60
  //# sourceMappingURL=api_read.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api_read.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/api_read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B;;;;;;;SAOK;IACL,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEvE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEhG,kCAAkC;IAClC,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,2EAA2E;IAC3E,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtC,uEAAuE;IACvE,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAErD,yFAAyF;IACzF,eAAe,CACb,OAAO,EAAE,mBAAmB,EAC5B,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"api_read.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/api_read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B;;;;;;;SAOK;IACL,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEvE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEhG,kCAAkC;IAClC,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,2EAA2E;IAC3E,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtC,uEAAuE;IACvE,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAErD,yFAAyF;IACzF,eAAe,CACb,OAAO,EAAE,mBAAmB,EAC5B,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAID,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;SAOK;IACL,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEvE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEhG,kCAAkC;IAClC,aAAa,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,2EAA2E;IAC3E,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtC,uEAAuE;IACvE,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAErD,yFAAyF;IACzF,eAAe,CACb,OAAO,EAAE,mBAAmB,EAC5B,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -10,6 +10,12 @@ export interface SlicedColumnJoinEntry {
10
10
  readonly newId: PObjectId;
11
11
  readonly axisFilters: ConstantAxisFilter[];
12
12
  }
13
+ export interface ArtificialColumnJoinEntry {
14
+ readonly type: 'artificialColumn';
15
+ readonly columnId: PObjectId;
16
+ readonly newId: PObjectId;
17
+ readonly axesIndices: number[];
18
+ }
13
19
  export interface InlineColumnJoinEntry {
14
20
  readonly type: 'inlineColumn';
15
21
  readonly newId: PObjectId;
@@ -34,4 +40,22 @@ export interface CreateTableRequestV3 {
34
40
  src: JoinEntryV3;
35
41
  filters: PTableRecordFilter[];
36
42
  }
43
+ export interface InnerJoinV4 {
44
+ type: 'inner';
45
+ entries: JoinEntryV4[];
46
+ }
47
+ export interface FullJoinV4 {
48
+ type: 'full';
49
+ entries: JoinEntryV4[];
50
+ }
51
+ export interface OuterJoinV4 {
52
+ type: 'outer';
53
+ primary: JoinEntryV4;
54
+ secondary: JoinEntryV4[];
55
+ }
56
+ export type JoinEntryV4 = ColumnJoinEntry | SlicedColumnJoinEntry | ArtificialColumnJoinEntry | InlineColumnJoinEntry | InnerJoinV4 | FullJoinV4 | OuterJoinV4;
57
+ export interface CreateTableRequestV4 {
58
+ src: JoinEntryV4;
59
+ filters: PTableRecordFilter[];
60
+ }
37
61
  //# sourceMappingURL=create_table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create_table.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/create_table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE3G,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,WAAW,GACX,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"create_table.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/create_table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE3G,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,WAAW,GACX,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,qBAAqB,GACrB,yBAAyB,GACzB,qBAAqB,GACrB,WAAW,GACX,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
@@ -1,8 +1,10 @@
1
1
  import type { PFrameFactoryAPIV4 } from './api_factory';
2
- import type { PFrameReadAPIV9 } from './api_read';
2
+ import type { PFrameReadAPIV9, PFrameReadAPIV10 } from './api_read';
3
3
  import type { Logger } from './common';
4
4
  export interface PFrameV11 extends PFrameFactoryAPIV4, PFrameReadAPIV9 {
5
5
  }
6
+ export interface PFrameV12 extends PFrameFactoryAPIV4, PFrameReadAPIV10 {
7
+ }
6
8
  export type PFrameOptions = {
7
9
  /** Path to directory where PFrame can create temporary files */
8
10
  spillPath: string;
@@ -25,4 +27,20 @@ export interface PFrameFactoryV2 {
25
27
  */
26
28
  pprofDump: () => Promise<Uint8Array>;
27
29
  }
30
+ /** List of PFrame management functions exposed by PFrame module */
31
+ export interface PFrameFactoryV3 {
32
+ /**
33
+ * Create a new PFrame instance.
34
+ * @warning Use concurrency limiting to avoid OOM crashes when multiple instances are simultaneously in use.
35
+ */
36
+ createPFrame(options: PFrameOptions): PFrameV12;
37
+ /**
38
+ * Dump active allocations from all PFrames instances in pprof format.
39
+ * The result of this function should be saved as `profile.pb.gz`.
40
+ * Use {@link https://pprof.me/} or {@link https://www.speedscope.app/}
41
+ * to view the allocation flamechart.
42
+ * @warning This method will always reject on Windows!
43
+ */
44
+ pprofDump: () => Promise<Uint8Array>;
45
+ }
28
46
  //# sourceMappingURL=pframe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pframe.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/pframe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,SAAU,SAAQ,kBAAkB,EAAE,eAAe;CAAG;AAEzE,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAEhD;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACtC"}
1
+ {"version":3,"file":"pframe.d.ts","sourceRoot":"","sources":["../../../src/pframe/internal_api/pframe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,MAAM,WAAW,SAAU,SAAQ,kBAAkB,EAAE,eAAe;CAAG;AAIzE,MAAM,WAAW,SAAU,SAAQ,kBAAkB,EAAE,gBAAgB;CAAG;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAID,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAEhD;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACtC;AAID,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAEhD;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-model-middle-layer",
3
- "version": "1.8.25",
3
+ "version": "1.8.26",
4
4
  "description": "Common model between middle layer and non-block UI code",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -20,12 +20,12 @@
20
20
  "remeda": "^2.28.0",
21
21
  "zod": "~3.23.8",
22
22
  "utility-types": "^3.11.0",
23
- "@milaboratories/pl-model-common": "1.19.18"
23
+ "@milaboratories/pl-model-common": "1.19.19"
24
24
  },
25
25
  "devDependencies": {
26
26
  "typescript": "~5.6.3",
27
- "@milaboratories/ts-builder": "1.0.5",
28
27
  "@milaboratories/ts-configs": "1.0.6",
28
+ "@milaboratories/ts-builder": "1.0.5",
29
29
  "@milaboratories/build-configs": "1.0.8"
30
30
  },
31
31
  "scripts": {
@@ -7,9 +7,11 @@ import {
7
7
  UniqueValuesRequest,
8
8
  UniqueValuesResponse
9
9
  } from '@milaboratories/pl-model-common';
10
- import { CreateTableRequestV3 } from './create_table';
10
+ import { CreateTableRequestV3, CreateTableRequestV4 } from './create_table';
11
11
  import { PTableV7 } from './table';
12
12
 
13
+ // TODO: remove...
14
+
13
15
  /** Read interface exposed by PFrames library */
14
16
  export interface PFrameReadAPIV9 {
15
17
  /**
@@ -45,3 +47,41 @@ export interface PFrameReadAPIV9 {
45
47
  }
46
48
  ): Promise<UniqueValuesResponse>;
47
49
  }
50
+
51
+ // TODO: ...remove
52
+
53
+ /** Read interface exposed by PFrames library */
54
+ export interface PFrameReadAPIV10 {
55
+ /**
56
+ * Finds columns given filtering criteria on column name, annotations etc.
57
+ * and a set of qualified axes specs to find only columns with compatible
58
+ * axes spec.
59
+ *
60
+ * Only column specs are used, this method will work even for columns
61
+ * with no assigned data.
62
+ * */
63
+ findColumns(request: FindColumnsRequest): Promise<FindColumnsResponse>;
64
+
65
+ /**
66
+ * Construct new axes integration with some entry removed but integration qualificaitons preserved.
67
+ * Removes more then one entry in case the removal will create several disjoint sets of axes.
68
+ */
69
+ deleteColumn(request: DeleteColumnFromColumnsRequest): Promise<DeleteColumnFromColumnsResponse>;
70
+
71
+ /** Retrieve single column spec */
72
+ getColumnSpec(columnId: PObjectId): Promise<PColumnSpec>;
73
+
74
+ /** Retrieve information about all columns currently added to the PFrame */
75
+ listColumns(): Promise<PColumnInfo[]>;
76
+
77
+ /** Calculates data for the table and returns an object to access it */
78
+ createTable(request: CreateTableRequestV4): PTableV7;
79
+
80
+ /** Calculate set of unique values for a specific axis for the filtered set of records */
81
+ getUniqueValues(
82
+ request: UniqueValuesRequest,
83
+ ops?: {
84
+ signal?: AbortSignal,
85
+ }
86
+ ): Promise<UniqueValuesResponse>;
87
+ }
@@ -13,6 +13,13 @@ export interface SlicedColumnJoinEntry {
13
13
  readonly axisFilters: ConstantAxisFilter[];
14
14
  }
15
15
 
16
+ export interface ArtificialColumnJoinEntry {
17
+ readonly type: 'artificialColumn';
18
+ readonly columnId: PObjectId;
19
+ readonly newId: PObjectId;
20
+ readonly axesIndices: number[];
21
+ }
22
+
16
23
  export interface InlineColumnJoinEntry {
17
24
  readonly type: 'inlineColumn';
18
25
  readonly newId: PObjectId;
@@ -20,6 +27,8 @@ export interface InlineColumnJoinEntry {
20
27
  readonly dataInfo: JsonDataInfo;
21
28
  }
22
29
 
30
+ // TODO: remove...
31
+
23
32
  export interface InnerJoinV3 {
24
33
  type: 'inner';
25
34
  entries: JoinEntryV3[];
@@ -48,3 +57,35 @@ export interface CreateTableRequestV3 {
48
57
  src: JoinEntryV3;
49
58
  filters: PTableRecordFilter[];
50
59
  }
60
+
61
+ // TODO: ...remove
62
+
63
+ export interface InnerJoinV4 {
64
+ type: 'inner';
65
+ entries: JoinEntryV4[];
66
+ }
67
+
68
+ export interface FullJoinV4 {
69
+ type: 'full';
70
+ entries: JoinEntryV4[];
71
+ }
72
+
73
+ export interface OuterJoinV4 {
74
+ type: 'outer';
75
+ primary: JoinEntryV4;
76
+ secondary: JoinEntryV4[];
77
+ }
78
+
79
+ export type JoinEntryV4 =
80
+ | ColumnJoinEntry
81
+ | SlicedColumnJoinEntry
82
+ | ArtificialColumnJoinEntry
83
+ | InlineColumnJoinEntry
84
+ | InnerJoinV4
85
+ | FullJoinV4
86
+ | OuterJoinV4;
87
+
88
+ export interface CreateTableRequestV4 {
89
+ src: JoinEntryV4;
90
+ filters: PTableRecordFilter[];
91
+ }
@@ -1,9 +1,15 @@
1
1
  import type { PFrameFactoryAPIV4 } from './api_factory';
2
- import type { PFrameReadAPIV9 } from './api_read';
2
+ import type { PFrameReadAPIV9, PFrameReadAPIV10 } from './api_read';
3
3
  import type { Logger } from './common';
4
4
 
5
+ // TODO: remove...
6
+
5
7
  export interface PFrameV11 extends PFrameFactoryAPIV4, PFrameReadAPIV9 {}
6
8
 
9
+ // TODO: ...remove
10
+
11
+ export interface PFrameV12 extends PFrameFactoryAPIV4, PFrameReadAPIV10 {}
12
+
7
13
  export type PFrameOptions = {
8
14
  /** Path to directory where PFrame can create temporary files */
9
15
  spillPath: string;
@@ -11,6 +17,8 @@ export type PFrameOptions = {
11
17
  logger?: Logger;
12
18
  }
13
19
 
20
+ // TODO: remove...
21
+
14
22
  /** List of PFrame management functions exposed by PFrame module */
15
23
  export interface PFrameFactoryV2 {
16
24
  /**
@@ -28,3 +36,23 @@ export interface PFrameFactoryV2 {
28
36
  */
29
37
  pprofDump: () => Promise<Uint8Array>;
30
38
  };
39
+
40
+ // TODO: ...remove
41
+
42
+ /** List of PFrame management functions exposed by PFrame module */
43
+ export interface PFrameFactoryV3 {
44
+ /**
45
+ * Create a new PFrame instance.
46
+ * @warning Use concurrency limiting to avoid OOM crashes when multiple instances are simultaneously in use.
47
+ */
48
+ createPFrame(options: PFrameOptions): PFrameV12;
49
+
50
+ /**
51
+ * Dump active allocations from all PFrames instances in pprof format.
52
+ * The result of this function should be saved as `profile.pb.gz`.
53
+ * Use {@link https://pprof.me/} or {@link https://www.speedscope.app/}
54
+ * to view the allocation flamechart.
55
+ * @warning This method will always reject on Windows!
56
+ */
57
+ pprofDump: () => Promise<Uint8Array>;
58
+ };