@milaboratories/pl-model-common 1.14.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/drivers/pframe/spec/index.d.ts +1 -0
- package/dist/drivers/pframe/spec/index.d.ts.map +1 -1
- package/dist/drivers/pframe/spec/native_id.d.ts +5 -0
- package/dist/drivers/pframe/spec/native_id.d.ts.map +1 -0
- package/dist/drivers/pframe/table_calculate.d.ts +10 -1
- package/dist/drivers/pframe/table_calculate.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +115 -103
- package/dist/index.mjs.map +1 -1
- package/dist/pool/spec.d.ts +4 -0
- package/dist/pool/spec.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/drivers/pframe/spec/index.ts +1 -0
- package/src/drivers/pframe/spec/native_id.ts +17 -0
- package/src/drivers/pframe/table_calculate.ts +14 -0
- package/src/pool/spec.ts +8 -0
package/dist/pool/spec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/pool/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,wBAAwB;AACxB,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAErD;;;;KAIK;AACL,MAAM,WAAW,OAAO,CAAC,IAAI;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAEvB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,WAAW,CAEpE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAE/D;AAED,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAC9B,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAEnC;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAElC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG5D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1F,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EACnC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,EAC7B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAC3B,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1F,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EACnC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,EAC7B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAa3B,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/pool/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,oDAAoD;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,wBAAwB;AACxB,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAErD;;;;KAIK;AACL,MAAM,WAAW,OAAO,CAAC,IAAI;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAEvB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,WAAW,CAEpE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAE/D;AAED,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,GAC9B,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAEnC;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAElC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG5D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1F,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EACnC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,EAC7B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAC3B,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1F,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EACnC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,EAC7B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AAa3B,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CA0B/E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-model-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Platforma SDK Model",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"@milaboratories/pl-error-like": "1.12.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"eslint": "^9.
|
|
25
|
+
"eslint": "^9.25.1",
|
|
26
26
|
"typescript": "~5.5.4",
|
|
27
27
|
"vite": "^5.4.11",
|
|
28
28
|
"vitest": "^2.1.8",
|
|
29
|
-
"@
|
|
30
|
-
"@platforma-
|
|
29
|
+
"@platforma-sdk/eslint-config": "1.0.3",
|
|
30
|
+
"@milaboratories/platforma-build-configs": "1.0.3"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"type-check": "tsc --noEmit --composite false",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Branded } from '../../../branding';
|
|
2
|
+
import { isPColumnSpec, type PObjectSpec } from '../../../pool';
|
|
3
|
+
import { getAxesId } from './spec';
|
|
4
|
+
import canonicalize from 'canonicalize';
|
|
5
|
+
export type NativePObjectId = Branded<string, 'NativePObjectId'>;
|
|
6
|
+
|
|
7
|
+
export function deriveNativeId(spec: PObjectSpec): NativePObjectId {
|
|
8
|
+
const result: Record<string, unknown> = {
|
|
9
|
+
kind: spec.kind,
|
|
10
|
+
name: spec.name,
|
|
11
|
+
};
|
|
12
|
+
if (spec.domain !== undefined)
|
|
13
|
+
result.domain = spec.domain;
|
|
14
|
+
if (isPColumnSpec(spec))
|
|
15
|
+
result.axesSpec = getAxesId(spec.axesSpec);
|
|
16
|
+
return canonicalize(result) as NativePObjectId;
|
|
17
|
+
}
|
|
@@ -2,6 +2,8 @@ import type { PTableColumnId, PTableColumnSpec } from './table_common';
|
|
|
2
2
|
import type { PTableVector } from './data_types';
|
|
3
3
|
import type { PObjectId } from '../../pool';
|
|
4
4
|
import { assertNever } from '../../util';
|
|
5
|
+
import type { PColumn } from './spec/spec';
|
|
6
|
+
import type { PColumnValues } from './data_info';
|
|
5
7
|
|
|
6
8
|
/** Defines a terminal column node in the join request tree */
|
|
7
9
|
export interface ColumnJoinEntry<Col> {
|
|
@@ -42,6 +44,15 @@ export interface SlicedColumnJoinEntry<Col> {
|
|
|
42
44
|
readonly axisFilters: ConstantAxisFilter[];
|
|
43
45
|
}
|
|
44
46
|
|
|
47
|
+
/** Defines a terminal column node in the join request tree */
|
|
48
|
+
export interface InlineColumnJoinEntry {
|
|
49
|
+
/** Node type discriminator */
|
|
50
|
+
readonly type: 'inlineColumn';
|
|
51
|
+
|
|
52
|
+
/** Column definition */
|
|
53
|
+
readonly column: PColumn<PColumnValues>;
|
|
54
|
+
}
|
|
55
|
+
|
|
45
56
|
/**
|
|
46
57
|
* Defines a join request tree node that will output only records present in
|
|
47
58
|
* all child nodes ({@link entries}).
|
|
@@ -100,6 +111,7 @@ export interface OuterJoin<Col> {
|
|
|
100
111
|
export type JoinEntry<Col> =
|
|
101
112
|
| ColumnJoinEntry<Col>
|
|
102
113
|
| SlicedColumnJoinEntry<Col>
|
|
114
|
+
| InlineColumnJoinEntry
|
|
103
115
|
| InnerJoin<Col>
|
|
104
116
|
| FullJoin<Col>
|
|
105
117
|
| OuterJoin<Col>;
|
|
@@ -364,6 +376,8 @@ export function mapJoinEntry<C1, C2>(
|
|
|
364
376
|
newId: entry.newId,
|
|
365
377
|
axisFilters: entry.axisFilters,
|
|
366
378
|
};
|
|
379
|
+
case 'inlineColumn':
|
|
380
|
+
return entry;
|
|
367
381
|
case 'inner':
|
|
368
382
|
case 'full':
|
|
369
383
|
return {
|
package/src/pool/spec.ts
CHANGED
|
@@ -8,6 +8,12 @@ export interface PObjectSpec {
|
|
|
8
8
|
/** PObject kind discriminator */
|
|
9
9
|
readonly kind: string;
|
|
10
10
|
|
|
11
|
+
/** Name is common part of PObject identity */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
|
|
14
|
+
/** Domain is a set of key-value pairs that can be used to identify the object */
|
|
15
|
+
readonly domain?: Record<string, string>;
|
|
16
|
+
|
|
11
17
|
/** Additional information attached to the object */
|
|
12
18
|
readonly annotations?: Record<string, string>;
|
|
13
19
|
}
|
|
@@ -88,6 +94,8 @@ export function extractAllColumns<D>(entry: JoinEntry<PColumn<D>>): PColumn<D>[]
|
|
|
88
94
|
case 'slicedColumn':
|
|
89
95
|
columns.set(entry.column.id, entry.column);
|
|
90
96
|
return;
|
|
97
|
+
case 'inlineColumn':
|
|
98
|
+
return;
|
|
91
99
|
case 'full':
|
|
92
100
|
case 'inner':
|
|
93
101
|
for (const e of entry.entries) addAllColumns(e);
|