@milaboratories/pl-model-common 1.10.5 → 1.11.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.
Files changed (46) hide show
  1. package/dist/drivers/pframe/column_filter.d.ts +1 -1
  2. package/dist/drivers/pframe/column_filter.d.ts.map +1 -1
  3. package/dist/drivers/pframe/data.d.ts +1 -1
  4. package/dist/drivers/pframe/data.d.ts.map +1 -1
  5. package/dist/drivers/pframe/driver.d.ts +1 -1
  6. package/dist/drivers/pframe/driver.d.ts.map +1 -1
  7. package/dist/drivers/pframe/find_columns.d.ts +1 -1
  8. package/dist/drivers/pframe/find_columns.d.ts.map +1 -1
  9. package/dist/drivers/pframe/index.d.ts +2 -1
  10. package/dist/drivers/pframe/index.d.ts.map +1 -1
  11. package/dist/drivers/pframe/pframe.d.ts +1 -1
  12. package/dist/drivers/pframe/pframe.d.ts.map +1 -1
  13. package/dist/drivers/pframe/spec/anchored_id.d.ts +47 -0
  14. package/dist/drivers/pframe/spec/anchored_id.d.ts.map +1 -0
  15. package/dist/drivers/pframe/spec/index.d.ts +4 -0
  16. package/dist/drivers/pframe/spec/index.d.ts.map +1 -0
  17. package/dist/drivers/pframe/spec/selectors.d.ts +165 -0
  18. package/dist/drivers/pframe/spec/selectors.d.ts.map +1 -0
  19. package/dist/drivers/pframe/{spec.d.ts → spec/spec.d.ts} +16 -3
  20. package/dist/drivers/pframe/spec/spec.d.ts.map +1 -0
  21. package/dist/drivers/pframe/table_common.d.ts +1 -1
  22. package/dist/drivers/pframe/table_common.d.ts.map +1 -1
  23. package/dist/drivers/pframe/unique_values.d.ts +1 -1
  24. package/dist/drivers/pframe/unique_values.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +472 -245
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/ref.d.ts +7 -0
  30. package/dist/ref.d.ts.map +1 -1
  31. package/package.json +8 -2
  32. package/src/drivers/pframe/column_filter.ts +1 -1
  33. package/src/drivers/pframe/data.ts +1 -1
  34. package/src/drivers/pframe/driver.ts +1 -1
  35. package/src/drivers/pframe/find_columns.ts +1 -1
  36. package/src/drivers/pframe/index.ts +3 -1
  37. package/src/drivers/pframe/pframe.ts +1 -1
  38. package/src/drivers/pframe/spec/anchored_id.ts +215 -0
  39. package/src/drivers/pframe/spec/index.ts +3 -0
  40. package/src/drivers/pframe/spec/selectors.test.ts +209 -0
  41. package/src/drivers/pframe/spec/selectors.ts +267 -0
  42. package/src/drivers/pframe/{spec.ts → spec/spec.ts} +19 -3
  43. package/src/drivers/pframe/table_common.ts +1 -1
  44. package/src/drivers/pframe/unique_values.ts +1 -1
  45. package/src/ref.ts +17 -0
  46. package/dist/drivers/pframe/spec.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { PObject, PObjectId, PObjectSpec } from '../../pool';
1
+ import type { PObject, PObjectId, PObjectSpec } from '../../../pool';
2
2
 
3
3
  /** PFrame columns and axes within them may store one of these types. */
4
4
  export type ValueType = 'Int' | 'Long' | 'Float' | 'Double' | 'String' | 'Bytes';
@@ -61,13 +61,13 @@ export type AxesSpec = AxisSpec[];
61
61
  *
62
62
  * Each element in tuple correspond to the axis having the same index in axesSpec.
63
63
  * */
64
- export interface PColumnSpec extends PObjectSpec {
64
+ export interface PUniversalColumnSpec extends PObjectSpec {
65
65
  /** Defines specific type of BObject, the most generic type of unit of
66
66
  * information in Platforma Project. */
67
67
  readonly kind: 'PColumn';
68
68
 
69
69
  /** Type of column values */
70
- readonly valueType: ValueType;
70
+ readonly valueType: string;
71
71
 
72
72
  /** Column name */
73
73
  readonly name: string;
@@ -87,6 +87,22 @@ export interface PColumnSpec extends PObjectSpec {
87
87
  readonly axesSpec: AxesSpec;
88
88
  }
89
89
 
90
+ /**
91
+ * Specification of a data column.
92
+ *
93
+ * Data column is a specialized type of PColumn that stores only simple values (strings and numbers)
94
+ * addressed by multiple keys. This is in contrast to other PColumn variants that can store more complex
95
+ * values like files or other abstract data types. Data columns are optimized for storing and processing
96
+ * basic tabular data.
97
+ */
98
+ export interface PDataColumnSpec extends PUniversalColumnSpec {
99
+ /** Type of column values */
100
+ readonly valueType: ValueType;
101
+ }
102
+
103
+ // @todo: change this to PUniversalColumnSpec
104
+ export type PColumnSpec = PDataColumnSpec;
105
+
90
106
  export interface PColumn<Data> extends PObject<Data> {
91
107
  /** PColumn spec, allowing it to be found among other PObjects */
92
108
  readonly spec: PColumnSpec;
@@ -1,5 +1,5 @@
1
1
  import { PObjectId } from '../../pool';
2
- import { AxisId, AxisSpec, PColumnSpec } from './spec';
2
+ import { AxisId, AxisSpec, PColumnSpec } from './spec/spec';
3
3
 
4
4
  /** Unified spec object for axes and columns */
5
5
  export type PTableColumnSpec =
@@ -1,4 +1,4 @@
1
- import { AxisId } from './spec';
1
+ import { AxisId } from './spec/spec';
2
2
  import { PTableRecordFilter } from './table_calculate';
3
3
  import { PTableVector } from './data';
4
4
  import { PObjectId } from '../../pool';
package/src/ref.ts CHANGED
@@ -19,6 +19,23 @@ export type PlRef = z.infer<typeof PlRef>;
19
19
  /** @deprecated use {@link PlRef} */
20
20
  export type Ref = PlRef;
21
21
 
22
+ /**
23
+ * Type guard to check if a value is a PlRef.
24
+ *
25
+ * @param value - The value to check.
26
+ * @returns True if the value is a PlRef, false otherwise.
27
+ */
28
+ export function isPlRef(value: unknown): value is PlRef {
29
+ return (
30
+ typeof value === 'object' &&
31
+ value !== null &&
32
+ '__isRef' in value &&
33
+ (value as { __isRef: unknown }).__isRef === true &&
34
+ 'blockId' in value &&
35
+ 'name' in value
36
+ );
37
+ }
38
+
22
39
  /** Standard way how to communicate possible connections given specific
23
40
  * requirements for incoming data. */
24
41
  export type Option = {
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/drivers/pframe/spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,wEAAwE;AACxE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjF;;;;;;;KAOK;AACL,MAAM,WAAW,QAAQ;IACvB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;2BACuB;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC;oBACgB;IAChB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,iEAAiE;AACjE,MAAM,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAElC;;;;;;;;;;KAUK;AACL,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C;2CACuC;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;2BACuB;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC;oBACgB;IAChB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO,CAAC,IAAI,CAAE,SAAQ,OAAO,CAAC,IAAI,CAAC;IAClD,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED;sCACsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE7B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,gEAAgE;AAChE,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB;qCACiC;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;2BACuB;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAwB;AACxB,MAAM,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;AAE9B,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGhD;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAYD,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAElE"}