@milaboratories/pl-model-common 1.32.1 → 1.33.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.
@@ -1,7 +1,7 @@
1
- import { AxesId, AxesSpec, AxisSpec, AxisValueType, ColumnValueType, PColumnIdAndSpec, PColumnSpec } from "./spec/spec.js";
1
+ import { AxesId, AxesSpec, AxisSpec, AxisValueType, ColumnValueType, PColumnIdAndSpec, PColumnInfo, PColumnSpec } from "./spec/spec.js";
2
2
  import { SingleAxisSelector } from "./spec/selectors.js";
3
3
  import { PTableColumnId, PTableColumnSpec } from "./table_common.js";
4
- import { SpecQuery } from "./query/query_spec.js";
4
+ import { SpecQuery, SpecQueryJoinEntry } from "./query/query_spec.js";
5
5
  import { DataQuery } from "./query/query_data.js";
6
6
  import { PoolEntry } from "../../pool_entry.js";
7
7
  import { PObjectId } from "../../pool/spec.js";
@@ -195,12 +195,22 @@ type SpecFrameHandle = Branded<string, "SpecFrameHandle">;
195
195
  interface PFrameSpecDriver {
196
196
  /** Create a spec-only PFrame from column specs. Returns a pool entry with handle and unref. */
197
197
  createSpecFrame(specs: Record<string, PColumnSpec>): PoolEntry<SpecFrameHandle>;
198
+ /** List all columns currently registered in the frame. */
199
+ listColumns(handle: SpecFrameHandle): PColumnInfo[];
198
200
  /** Discover columns compatible with given axes integration. */
199
201
  discoverColumns(handle: SpecFrameHandle, request: DiscoverColumnsRequest): DiscoverColumnsResponse;
200
202
  /** Delete an entry from a given axes integration */
201
203
  deleteColumn(handle: SpecFrameHandle, request: DeleteColumnRequest): DeleteColumnResponse;
202
204
  /** Evaluates a query specification against this PFrame */
203
205
  evaluateQuery(handle: SpecFrameHandle, request: SpecQuery): EvaluateQueryResponse;
206
+ /**
207
+ * Assembles a {@link SpecQueryJoinEntry} from a terminal column plus an
208
+ * ordered path of wrapping steps (linker hops, filter joins).
209
+ *
210
+ * Pure over its input — no frame handle is needed. Column ids are resolved
211
+ * later at {@link evaluateQuery} against the registered specs.
212
+ */
213
+ buildQuery(input: BuildQueryInput): SpecQueryJoinEntry;
204
214
  /** Expand index-based parentAxes in AxesSpec to resolved AxisId parents in AxesId. */
205
215
  expandAxes(spec: AxesSpec): AxesId;
206
216
  /** Collapse resolved AxisId parents back to index-based parentAxes in AxesSpec. */
@@ -1 +1 @@
1
- {"version":3,"file":"spec_driver.d.ts","names":[],"sources":["../../../src/drivers/pframe/spec_driver.ts"],"mappings":"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"}
1
+ {"version":3,"file":"spec_driver.d.ts","names":[],"sources":["../../../src/drivers/pframe/spec_driver.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-model-common",
3
- "version": "1.32.1",
3
+ "version": "1.33.0",
4
4
  "description": "Platforma SDK Model",
5
5
  "files": [
6
6
  "./dist/**/*",
@@ -27,8 +27,8 @@
27
27
  "typescript": "~5.9.3",
28
28
  "vitest": "^4.1.3",
29
29
  "@milaboratories/build-configs": "2.0.0",
30
- "@milaboratories/ts-builder": "1.3.2",
31
- "@milaboratories/ts-configs": "1.2.3"
30
+ "@milaboratories/ts-configs": "1.2.3",
31
+ "@milaboratories/ts-builder": "1.3.2"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "ts-builder build --target node",
@@ -6,13 +6,14 @@ import type {
6
6
  AxesSpec,
7
7
  AxesId,
8
8
  PColumnIdAndSpec,
9
+ PColumnInfo,
9
10
  PColumnSpec,
10
11
  SingleAxisSelector,
11
12
  AxisValueType,
12
13
  ColumnValueType,
13
14
  } from "./spec";
14
15
  import type { PTableColumnId, PTableColumnSpec } from "./table_common";
15
- import { DataQuery, SpecQuery } from "./query";
16
+ import { DataQuery, SpecQuery, SpecQueryJoinEntry } from "./query";
16
17
 
17
18
  /** Matches a string value either exactly or by regex pattern */
18
19
  export type StringMatcher =
@@ -228,6 +229,9 @@ export interface PFrameSpecDriver {
228
229
  /** Create a spec-only PFrame from column specs. Returns a pool entry with handle and unref. */
229
230
  createSpecFrame(specs: Record<string, PColumnSpec>): PoolEntry<SpecFrameHandle>;
230
231
 
232
+ /** List all columns currently registered in the frame. */
233
+ listColumns(handle: SpecFrameHandle): PColumnInfo[];
234
+
231
235
  /** Discover columns compatible with given axes integration. */
232
236
  discoverColumns(
233
237
  handle: SpecFrameHandle,
@@ -240,6 +244,15 @@ export interface PFrameSpecDriver {
240
244
  /** Evaluates a query specification against this PFrame */
241
245
  evaluateQuery(handle: SpecFrameHandle, request: SpecQuery): EvaluateQueryResponse;
242
246
 
247
+ /**
248
+ * Assembles a {@link SpecQueryJoinEntry} from a terminal column plus an
249
+ * ordered path of wrapping steps (linker hops, filter joins).
250
+ *
251
+ * Pure over its input — no frame handle is needed. Column ids are resolved
252
+ * later at {@link evaluateQuery} against the registered specs.
253
+ */
254
+ buildQuery(input: BuildQueryInput): SpecQueryJoinEntry;
255
+
243
256
  /** Expand index-based parentAxes in AxesSpec to resolved AxisId parents in AxesId. */
244
257
  expandAxes(spec: AxesSpec): AxesId;
245
258