@milaboratories/pl-model-common 1.32.0 → 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";
@@ -109,7 +109,7 @@ interface DiscoverColumnsFilterStep {
109
109
  /** A step traversed during path-based column discovery. Discriminated by `type`. */
110
110
  type DiscoverColumnsStepInfo = DiscoverColumnsLinkerStep | DiscoverColumnsFilterStep;
111
111
  /**
112
- * Input to {@link PFrameWasmV4.buildQuery}: a terminal column plus an ordered
112
+ * Input to `buildQuery`: a terminal column plus an ordered
113
113
  * path of wrapping steps (linker hops, filter joins). Produces a
114
114
  * {@link SpecQueryJoinEntry} ready to be plugged into an
115
115
  * `innerJoin`/`fullJoin`/`outerJoin` entry list.
@@ -119,8 +119,8 @@ type DiscoverColumnsStepInfo = DiscoverColumnsLinkerStep | DiscoverColumnsFilter
119
119
  * wrapping.
120
120
  *
121
121
  * Columns are referenced by id — specs are resolved later at
122
- * {@link PFrameWasmV4.evaluateQuery} against the registered specs of the
123
- * PFrame, so the caller cannot disagree with the frame about spec content.
122
+ * `evaluateQuery` against the registered specs of the PFrame, so the
123
+ * caller cannot disagree with the frame about spec content.
124
124
  *
125
125
  * Qualifications annotate the resulting outermost entry; they do not
126
126
  * propagate into the inner query.
@@ -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":";;;;;;;;;;;KAkBY,aAAA;EAEN,IAAA;EACA,KAAA;AAAA;EAGA,IAAA;EACA,KAAA;AAAA;;KAIM,UAAA,GAAa,MAAA,SAAe,aAAA;;UAGvB,iBAAA;EAXX;EAAA,SAaK,IAAA,GAAO,aAAA;EATZ;EAAA,SAWK,IAAA,GAAO,aAAA;EAXP;EAAA,SAaA,MAAA,GAAS,UAAA;EATE;EAAA,SAWX,aAAA,GAAgB,UAAA;EAXF;EAAA,SAad,WAAA,GAAc,UAAA;AAAA;;;UAKR,mBAAA;EAXC;EAAA,SAaP,IAAA,GAAO,eAAA;EATS;EAAA,SAWhB,IAAA,GAAO,aAAA;EATiB;EAAA,SAWxB,MAAA,GAAS,UAAA;EAnBT;EAAA,SAqBA,aAAA,GAAgB,UAAA;EAnBhB;EAAA,SAqBA,WAAA,GAAc,UAAA;EAnBd;EAAA,SAqBA,IAAA,GAAO,iBAAA;EAnBP;EAAA,SAqBA,gBAAA;AAAA;;UAIM,iBAAA;EAvBkB;EAAA,SAyBxB,IAAA,EAAM,kBAAA;EApBmB;EAAA,SAsBzB,aAAA,EAAe,MAAA;AAAA;;UAIT,4BAAA;EAlBU;EAoBzB,QAAA,EAAU,QAAA;EAhBM;EAkBhB,cAAA,EAAgB,iBAAA;AAAA;;UAID,0BAAA;EA9BN;EAgCT,uBAAA;EA9BS;EAgCT,oBAAA;EA9BS;EAgCT,yBAAA;EA9BS;EAgCT,sBAAA;AAAA;;UAIe,sBAAA;EAhCU;EAkCzB,cAAA,GAAiB,mBAAA;EA9BF;EAgCf,cAAA,GAAiB,mBAAA;;EAEjB,IAAA,EAAM,4BAAA;EAhCG;EAkCT,OAAA;EAhCS;EAkCT,WAAA,EAAa,0BAAA;AAAA;;UAIE,yBAAA;EACf,IAAA;;EAEA,MAAA,EAAQ,gBAAA;EAnCR;EAqCA,cAAA,EAAgB,iBAAA;AAAA;;;;AA/BlB;;;UAwCiB,yBAAA;EACf,IAAA;EArCA;EAuCA,MAAA,EAAQ,gBAAA;AAAA;;KAIE,uBAAA,GAA0B,yBAAA,GAA4B,yBAAA;AAnClE;;;;;;;;;;;;;;;;;AAAA,KAsDY,eAAA;EA5C6B,kFA8C9B,OAAA,QA1CM;EAAA,SA4CN,MAAA,EAAQ,SAAA;WAER,IAAA,GAAO,uBAAA,IA7ChB;EAAA,SA+CS,cAAA,GAAiB,iBAAA;AAAA;;UAIX,qCAAA;EA/CkB;EAiDjC,UAAA,EAAY,iBAAA;EAxCG;EA0Cf,MAAA,EAAQ,iBAAA;AAAA;;UAIO,6BAAA;EA3Cf;EA6CA,cAAA,EAAgB,qCAAA;EA7CQ;EA+CxB,yBAAA,EAA2B,qCAAA;AAAA;;UAIZ,0BAAA;EA/CqB;EAiDpC,GAAA,EAAK,gBAAA;EA9BK;EAgCV,eAAA,EAAiB,6BAAA;;EAEjB,IAAA,EAAM,uBAAA;AAAA;;UAIS,uBAAA;EA9B4B;EAgC3C,IAAA,EAAM,0BAAA;AAAA;;UAIS,mBAAA;EAtCC;EAwChB,IAAA,EAAM,4BAAA;EAtCoB;EAwC1B,MAAA;AAAA;AApCF;AAAA,UAwCiB,oBAAA;EACf,IAAA,EAAM,4BAAA;AAAA;;KAII,qBAAA;EAzCV;;;;EA8CA,SAAA,EAAW,gBAAA;EA1CiC;;;;EA+C5C,SAAA,EAAW,SAAA;AAAA;;KAID,eAAA,GAAkB,OAAA;;AA3C9B;;;;;;UAoDiB,gBAAA;EA9Cc;EAgD7B,eAAA,CAAgB,KAAA,EAAO,MAAA,SAAe,WAAA,IAAe,SAAA,CAAU,eAAA;EApD1D;EAuDL,WAAA,CAAY,MAAA,EAAQ,eAAA,GAAkB,WAAA;EArDrB;EAwDjB,eAAA,CACE,MAAA,EAAQ,eAAA,EACR,OAAA,EAAS,sBAAA,GACR,uBAAA;EAzDG;EA4DN,YAAA,CAAa,MAAA,EAAQ,eAAA,EAAiB,OAAA,EAAS,mBAAA,GAAsB,oBAAA;EA5DxC;EA+D7B,aAAA,CAAc,MAAA,EAAQ,eAAA,EAAiB,OAAA,EAAS,SAAA,GAAY,qBAAA;EA3DtB;;;;AAMxC;;;EA8DE,UAAA,CAAW,KAAA,EAAO,eAAA,GAAkB,kBAAA;EA5DpC;EA+DA,UAAA,CAAW,IAAA,EAAM,QAAA,GAAW,MAAA;EA7D5B;EAgEA,YAAA,CAAa,GAAA,EAAK,MAAA,GAAS,QAAA;EAhErB;EAmEN,QAAA,CAAS,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,kBAAA;EA/DA;EAkEnC,eAAA,CAAgB,SAAA,EAAW,gBAAA,IAAoB,QAAA,EAAU,cAAA;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-model-common",
3
- "version": "1.32.0",
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 =
@@ -128,7 +129,7 @@ export interface DiscoverColumnsFilterStep {
128
129
  export type DiscoverColumnsStepInfo = DiscoverColumnsLinkerStep | DiscoverColumnsFilterStep;
129
130
 
130
131
  /**
131
- * Input to {@link PFrameWasmV4.buildQuery}: a terminal column plus an ordered
132
+ * Input to `buildQuery`: a terminal column plus an ordered
132
133
  * path of wrapping steps (linker hops, filter joins). Produces a
133
134
  * {@link SpecQueryJoinEntry} ready to be plugged into an
134
135
  * `innerJoin`/`fullJoin`/`outerJoin` entry list.
@@ -138,8 +139,8 @@ export type DiscoverColumnsStepInfo = DiscoverColumnsLinkerStep | DiscoverColumn
138
139
  * wrapping.
139
140
  *
140
141
  * Columns are referenced by id — specs are resolved later at
141
- * {@link PFrameWasmV4.evaluateQuery} against the registered specs of the
142
- * PFrame, so the caller cannot disagree with the frame about spec content.
142
+ * `evaluateQuery` against the registered specs of the PFrame, so the
143
+ * caller cannot disagree with the frame about spec content.
143
144
  *
144
145
  * Qualifications annotate the resulting outermost entry; they do not
145
146
  * propagate into the inner query.
@@ -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