@milaboratories/pl-model-common 1.46.3 → 1.47.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 (178) hide show
  1. package/dist/columns/accessor_traversal.cjs +119 -0
  2. package/dist/columns/accessor_traversal.cjs.map +1 -0
  3. package/dist/columns/accessor_traversal.d.ts +52 -0
  4. package/dist/columns/accessor_traversal.d.ts.map +1 -0
  5. package/dist/columns/accessor_traversal.js +114 -0
  6. package/dist/columns/accessor_traversal.js.map +1 -0
  7. package/dist/columns/column_registry.cjs +40 -0
  8. package/dist/columns/column_registry.cjs.map +1 -0
  9. package/dist/columns/column_registry.d.ts +31 -0
  10. package/dist/columns/column_registry.d.ts.map +1 -0
  11. package/dist/columns/column_registry.js +40 -0
  12. package/dist/columns/column_registry.js.map +1 -0
  13. package/dist/columns/column_selector.cjs +49 -0
  14. package/dist/columns/column_selector.cjs.map +1 -0
  15. package/dist/columns/column_selector.d.ts +33 -0
  16. package/dist/columns/column_selector.d.ts.map +1 -0
  17. package/dist/columns/column_selector.js +47 -0
  18. package/dist/columns/column_selector.js.map +1 -0
  19. package/dist/columns/dedup.cjs +47 -0
  20. package/dist/columns/dedup.cjs.map +1 -0
  21. package/dist/columns/dedup.d.ts +27 -0
  22. package/dist/columns/dedup.d.ts.map +1 -0
  23. package/dist/columns/dedup.js +47 -0
  24. package/dist/columns/dedup.js.map +1 -0
  25. package/dist/columns/index.cjs +18 -0
  26. package/dist/columns/index.d.ts +8 -0
  27. package/dist/columns/index.js +6 -0
  28. package/dist/columns/providers.cjs +62 -0
  29. package/dist/columns/providers.cjs.map +1 -0
  30. package/dist/columns/providers.d.ts +39 -0
  31. package/dist/columns/providers.d.ts.map +1 -0
  32. package/dist/columns/providers.js +61 -0
  33. package/dist/columns/providers.js.map +1 -0
  34. package/dist/columns/types.d.ts +108 -0
  35. package/dist/columns/types.d.ts.map +1 -0
  36. package/dist/driver_kit.d.ts +1 -2
  37. package/dist/driver_kit.d.ts.map +1 -1
  38. package/dist/drivers/columns/columns_collection_driver.d.ts +124 -0
  39. package/dist/drivers/columns/columns_collection_driver.d.ts.map +1 -0
  40. package/dist/drivers/columns/discover_columns_options.cjs +28 -0
  41. package/dist/drivers/columns/discover_columns_options.cjs.map +1 -0
  42. package/dist/drivers/columns/discover_columns_options.d.ts +64 -0
  43. package/dist/drivers/columns/discover_columns_options.d.ts.map +1 -0
  44. package/dist/drivers/columns/discover_columns_options.js +28 -0
  45. package/dist/drivers/columns/discover_columns_options.js.map +1 -0
  46. package/dist/drivers/columns/index.d.ts +3 -0
  47. package/dist/drivers/index.cjs +32 -7
  48. package/dist/drivers/index.d.ts +12 -9
  49. package/dist/drivers/index.js +6 -4
  50. package/dist/drivers/pframe/driver.d.ts +1 -2
  51. package/dist/drivers/pframe/driver.d.ts.map +1 -1
  52. package/dist/drivers/pframe/index.cjs +30 -7
  53. package/dist/drivers/pframe/index.d.ts +9 -8
  54. package/dist/drivers/pframe/index.js +5 -4
  55. package/dist/drivers/pframe/query/index.d.ts +2 -2
  56. package/dist/drivers/pframe/query/query_common.d.ts +24 -1
  57. package/dist/drivers/pframe/query/query_common.d.ts.map +1 -1
  58. package/dist/drivers/pframe/query/query_spec.d.ts +25 -24
  59. package/dist/drivers/pframe/query/query_spec.d.ts.map +1 -1
  60. package/dist/drivers/pframe/query/utils.cjs +18 -8
  61. package/dist/drivers/pframe/query/utils.cjs.map +1 -1
  62. package/dist/drivers/pframe/query/utils.d.ts +5 -1
  63. package/dist/drivers/pframe/query/utils.d.ts.map +1 -1
  64. package/dist/drivers/pframe/query/utils.js +18 -8
  65. package/dist/drivers/pframe/query/utils.js.map +1 -1
  66. package/dist/drivers/pframe/spec/anchored.d.ts +2 -2
  67. package/dist/drivers/pframe/spec/discovered_column.cjs +31 -15
  68. package/dist/drivers/pframe/spec/discovered_column.cjs.map +1 -1
  69. package/dist/drivers/pframe/spec/discovered_column.d.ts +23 -13
  70. package/dist/drivers/pframe/spec/discovered_column.d.ts.map +1 -1
  71. package/dist/drivers/pframe/spec/discovered_column.js +26 -12
  72. package/dist/drivers/pframe/spec/discovered_column.js.map +1 -1
  73. package/dist/drivers/pframe/spec/filtered_column.cjs +46 -0
  74. package/dist/drivers/pframe/spec/filtered_column.cjs.map +1 -1
  75. package/dist/drivers/pframe/spec/filtered_column.d.ts +39 -1
  76. package/dist/drivers/pframe/spec/filtered_column.d.ts.map +1 -1
  77. package/dist/drivers/pframe/spec/filtered_column.js +41 -1
  78. package/dist/drivers/pframe/spec/filtered_column.js.map +1 -1
  79. package/dist/drivers/pframe/spec/ids.cjs +62 -10
  80. package/dist/drivers/pframe/spec/ids.cjs.map +1 -1
  81. package/dist/drivers/pframe/spec/ids.d.ts +48 -15
  82. package/dist/drivers/pframe/spec/ids.d.ts.map +1 -1
  83. package/dist/drivers/pframe/spec/ids.js +60 -9
  84. package/dist/drivers/pframe/spec/ids.js.map +1 -1
  85. package/dist/drivers/pframe/spec/index.cjs +30 -7
  86. package/dist/drivers/pframe/spec/index.d.ts +6 -5
  87. package/dist/drivers/pframe/spec/index.js +5 -4
  88. package/dist/drivers/pframe/spec/native_id.cjs +1 -0
  89. package/dist/drivers/pframe/spec/native_id.cjs.map +1 -1
  90. package/dist/drivers/pframe/spec/native_id.js +1 -0
  91. package/dist/drivers/pframe/spec/native_id.js.map +1 -1
  92. package/dist/drivers/pframe/spec/overridden.cjs +212 -0
  93. package/dist/drivers/pframe/spec/overridden.cjs.map +1 -0
  94. package/dist/drivers/pframe/spec/overridden.d.ts +67 -0
  95. package/dist/drivers/pframe/spec/overridden.d.ts.map +1 -0
  96. package/dist/drivers/pframe/spec/overridden.js +202 -0
  97. package/dist/drivers/pframe/spec/overridden.js.map +1 -0
  98. package/dist/drivers/pframe/spec/selectors.cjs +1 -0
  99. package/dist/drivers/pframe/spec/selectors.cjs.map +1 -1
  100. package/dist/drivers/pframe/spec/selectors.d.ts +3 -0
  101. package/dist/drivers/pframe/spec/selectors.d.ts.map +1 -1
  102. package/dist/drivers/pframe/spec/selectors.js +1 -0
  103. package/dist/drivers/pframe/spec/selectors.js.map +1 -1
  104. package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
  105. package/dist/drivers/pframe/spec/spec.d.ts +2 -3
  106. package/dist/drivers/pframe/spec/spec.d.ts.map +1 -1
  107. package/dist/drivers/pframe/spec/spec.js.map +1 -1
  108. package/dist/drivers/pframe/spec_driver.d.ts +2 -2
  109. package/dist/drivers/pframe/spec_driver.d.ts.map +1 -1
  110. package/dist/drivers/pframe/table_calculate.cjs +2 -2
  111. package/dist/drivers/pframe/table_calculate.cjs.map +1 -1
  112. package/dist/drivers/pframe/table_calculate.d.ts +6 -2
  113. package/dist/drivers/pframe/table_calculate.d.ts.map +1 -1
  114. package/dist/drivers/pframe/table_calculate.js +2 -2
  115. package/dist/drivers/pframe/table_calculate.js.map +1 -1
  116. package/dist/drivers/pframe/table_common.cjs.map +1 -1
  117. package/dist/drivers/pframe/table_common.d.ts +11 -4
  118. package/dist/drivers/pframe/table_common.d.ts.map +1 -1
  119. package/dist/drivers/pframe/table_common.js.map +1 -1
  120. package/dist/index.cjs +63 -10
  121. package/dist/index.d.ts +20 -11
  122. package/dist/index.js +15 -6
  123. package/dist/pool/index.cjs +18 -0
  124. package/dist/pool/index.d.ts +2 -2
  125. package/dist/pool/index.js +3 -0
  126. package/dist/pool/spec.cjs +59 -11
  127. package/dist/pool/spec.cjs.map +1 -1
  128. package/dist/pool/spec.d.ts +24 -9
  129. package/dist/pool/spec.d.ts.map +1 -1
  130. package/dist/pool/spec.js +50 -10
  131. package/dist/pool/spec.js.map +1 -1
  132. package/dist/services/index.d.ts +2 -2
  133. package/dist/services/service_declarations.cjs +22 -0
  134. package/dist/services/service_declarations.cjs.map +1 -1
  135. package/dist/services/service_declarations.d.ts +5 -3
  136. package/dist/services/service_declarations.d.ts.map +1 -1
  137. package/dist/services/service_declarations.js +22 -0
  138. package/dist/services/service_declarations.js.map +1 -1
  139. package/dist/services/service_registry.cjs.map +1 -1
  140. package/dist/services/service_registry.d.ts +3 -3
  141. package/dist/services/service_registry.d.ts.map +1 -1
  142. package/dist/services/service_registry.js.map +1 -1
  143. package/dist/services/service_types.cjs.map +1 -1
  144. package/dist/services/service_types.d.ts +25 -9
  145. package/dist/services/service_types.d.ts.map +1 -1
  146. package/dist/services/service_types.js.map +1 -1
  147. package/package.json +3 -2
  148. package/src/columns/accessor_traversal.ts +139 -0
  149. package/src/columns/column_registry.ts +41 -0
  150. package/src/columns/column_selector.ts +100 -0
  151. package/src/columns/dedup.ts +49 -0
  152. package/src/columns/index.ts +6 -0
  153. package/src/columns/providers.ts +74 -0
  154. package/src/columns/types.ts +116 -0
  155. package/src/drivers/columns/columns_collection_driver.ts +146 -0
  156. package/src/drivers/columns/discover_columns_options.ts +91 -0
  157. package/src/drivers/columns/index.ts +2 -0
  158. package/src/drivers/index.ts +1 -0
  159. package/src/drivers/pframe/index.ts +0 -1
  160. package/src/drivers/pframe/query/query_common.ts +24 -0
  161. package/src/drivers/pframe/query/query_spec.ts +38 -25
  162. package/src/drivers/pframe/query/utils.test.ts +6 -6
  163. package/src/drivers/pframe/query/utils.ts +27 -7
  164. package/src/drivers/pframe/spec/discovered_column.ts +43 -28
  165. package/src/drivers/pframe/spec/filtered_column.ts +66 -0
  166. package/src/drivers/pframe/spec/ids.ts +142 -17
  167. package/src/drivers/pframe/spec/index.ts +1 -0
  168. package/src/drivers/pframe/spec/overridden.ts +285 -0
  169. package/src/drivers/pframe/spec/selectors.ts +3 -0
  170. package/src/drivers/pframe/spec/spec.ts +7 -3
  171. package/src/drivers/pframe/spec_driver.ts +3 -3
  172. package/src/drivers/pframe/table_calculate.ts +13 -3
  173. package/src/drivers/pframe/table_common.ts +10 -3
  174. package/src/index.ts +1 -0
  175. package/src/pool/spec.ts +69 -23
  176. package/src/services/service_declarations.ts +31 -0
  177. package/src/services/service_registry.ts +8 -4
  178. package/src/services/service_types.ts +35 -9
@@ -2,7 +2,7 @@ import { PColumn } from "./spec/spec.js";
2
2
  import { PTableColumnId, PTableColumnSpec } from "./table_common.js";
3
3
  import { PTableVector } from "./data_types.js";
4
4
  import { PColumnValues } from "./data_info.js";
5
- import { SpecQuery } from "./query/query_spec.js";
5
+ import { SpecQuery, SpecQueryJoinEntry } from "./query/query_spec.js";
6
6
  import { PObjectId } from "../../pool/spec.js";
7
7
  //#region src/drivers/pframe/table_calculate.d.ts
8
8
  /** Defines a terminal column node in the join request tree */
@@ -287,7 +287,11 @@ type CalculateTableDataRequest<Col> = {
287
287
  type CalculateTableDataResponse = FullPTableColumnData[];
288
288
  declare function mapPTableDef<C1, C2>(def: PTableDef<C1>, cb: (c: C1) => C2): PTableDef<C2>;
289
289
  declare function sortPTableDef(def: PTableDef<PObjectId>): PTableDef<PObjectId>;
290
- declare function mapPTableDefV2<C1, C2>(def: PTableDefV2<C1>, cb: (c: C1) => C2): PTableDefV2<C2>;
290
+ declare function mapPTableDefV2<C1, C2>(def: PTableDefV2<C1>, visitor: {
291
+ /** Transform column references in leaf nodes (column, sparseToDenseColumn). */column: (c: C1) => C2; /** Visit a node after its children have been traversed. */
292
+ node?: (node: SpecQuery<C2>) => SpecQuery<C2>; /** Visit a join entry after its inner query has been traversed. */
293
+ joinEntry?: (entry: SpecQueryJoinEntry<C2>) => SpecQueryJoinEntry<C2>;
294
+ }): PTableDefV2<C2>;
291
295
  declare function mapJoinEntry<C1, C2>(entry: JoinEntry<C1>, cb: (c: C1) => C2): JoinEntry<C2>;
292
296
  declare function sortJoinEntry(entry: JoinEntry<PObjectId>): JoinEntry<PObjectId>;
293
297
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"table_calculate.d.ts","names":[],"sources":["../../../src/drivers/pframe/table_calculate.ts"],"mappings":"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"}
1
+ {"version":3,"file":"table_calculate.d.ts","names":[],"sources":["../../../src/drivers/pframe/table_calculate.ts"],"mappings":";;;;;;;;UAWiB,eAAA;;WAEN,IAAA;EAFqB;EAAA,SAKrB,MAAA,EAAQ,GAAG;AAAA;;;;;UAOL,kBAAA;EAPK;EAAA,SASX,IAAA;EAFwB;EAAA,SAKxB,SAAA;EALwB;EAAA,SAQxB,QAAA;AAAA;;UAIM,qBAAA;EAJE;EAAA,SAMR,IAAA;EAF2B;EAAA,SAK3B,MAAA,EAAQ,GAAA;EAAA;EAAA,SAGR,KAAA,EAAO,SAAA;EAGM;EAAA,SAAb,WAAA,EAAa,kBAAA;AAAA;AAAA,UAGP,yBAAA;EAZN;EAAA,SAcA,IAAA;EAXQ;EAAA,SAcR,MAAA,EAAQ,GAAA;EAXD;EAAA,SAcP,KAAA,EAAO,SAAS;EAXH;EAAA,SAcb,WAAA;AAAA;AAXX;AAAA,UAeiB,qBAAA;EAfyB;EAAA,SAiB/B,IAAA;EAjBgC;EAAA,SAoBhC,MAAA,EAAQ,OAAO,CAAC,aAAA;AAAA;;;;;UAOV,SAAA;EAhBK;EAAA,SAkBX,IAAA;EAd2B;EAAA,SAiB3B,OAAA,EAAS,SAAS,CAAC,GAAA;AAAA;;;;;;UAQb,QAAA;EAbA;EAAA,SAeN,IAAA;EAfe;EAAA,SAkBf,OAAA,EAAS,SAAS,CAAC,GAAA;AAAA;;;;;;AAbG;AAQjC;;;;UAkBiB,SAAA;EAhBN;EAAA,SAkBA,IAAA;EAfS;EAAA,SAkBT,OAAA,EAAS,SAAA,CAAU,GAAA;EAlBG;AAAA;EAAA,SAsBtB,SAAA,EAAW,SAAA,CAAU,GAAA;AAAA;;;;;;;;KAUpB,SAAA,QACR,eAAA,CAAgB,GAAA,IAChB,qBAAA,CAAsB,GAAA,IACtB,yBAAA,CAA0B,GAAA,IAC1B,qBAAA,GACA,SAAA,CAAU,GAAA,IACV,QAAA,CAAS,GAAA,IACT,SAAA,CAAU,GAAA;;UAGG,oBAAA;EAxBG;EAAA,SA0BT,IAAA,EAAM,gBAAA;EAtBN;EAAA,SAyBA,IAAA,EAAM,YAAY;AAAA;AAAA,UAGZ,wBAAA;EA5BkB;EAAA,SA8BxB,QAAQ;AAAA;AAAA,UAGF,yBAAA;EAtBG;EAAA,SAwBT,QAAA;EAvBe;EAAA,SA0Bf,SAAS;AAAA;AAAA,UAGH,yBAAA;EA3Bb;EAAA,SA6BO,QAAA;EA5BP;EAAA,SA+BO,UAAU;AAAA;AAAA,UAGJ,0BAAA;EAhCb;EAAA,SAkCO,QAAA;EAlCE;EAAA,SAqCF,SAAS;AAAA;AAAA,UAGH,wBAAA;EA7Cb;EAAA,SA+CO,QAAA;EA9CP;EAAA,SAiDO,SAAS;AAAA;AAAA,UAGH,+BAAA;EAlDH;EAAA,SAoDH,QAAA;EAnDE;EAAA,SAsDF,SAAS;AAAA;AAAA,UAGH,2BAAA;EAxDA;EAAA,SA0DN,QAAA;EAvD0B;EAAA,SA0D1B,SAAS;AAAA;AAAA,UAGH,kCAAA;EA3DA;EAAA,SA6DN,QAAA;EA1DM;EAAA,SA6DN,SAAS;AAAA;AAAA,UAGH,kCAAA;EA7DwB;EAAA,SA+D9B,QAAA;EA7DQ;EAAA,SAgER,SAAS;AAAA;AAAA,UAGH,mCAAA;;WAEN,QAAA;EA7DS;EAAA,SAgET,SAAS;AAAA;AAAA,UAGH,2BAAA;EA9DN;EAAA,SAgEA,QAAA;EA1DM;EAAA,SA6DN,KAAK;AAAA;AAAA,UAGC,uCAAA;EA3DG;EAAA,SA6DT,QAAA;EA1D8B;EAAA,SA6D9B,SAAA;EA3DA;AAGS;AAGpB;;;;AAKoB;AAGpB;;;EAdW,SAuEA,QAAA;EApDS;EAAA,SAuDT,iBAAA;EApDwC;;;AAK/B;EAL+B,SA0DxC,QAAA;AAAA;AAAA,UAGM,wCAAA;EAnDN;EAAA,SAqDA,QAAA;EA/CM;EAAA,SAkDN,SAAA;;;AA7CS;AAGpB;;;;AAKgB;AAGhB;;WA8CW,QAAA;EA9C6C;EAAA,SAiD7C,iBAAA;EA5CA;;;;EAAA,SAkDA,QAAA;AAAA;AAAA,UAGM,yBAAA;EA7BwC;EAAA,SA+B9C,QAAA;EA/B8C;EAAA,SAkC9C,OAAA,EAAS,sBAAsB;AAAA;AAAA,UAGzB,yBAAA;EAjBN;EAAA,SAmBA,QAAA;EAbQ;EAAA,SAgBR,QAAA,EAAU,sBAAsB;AAAA;AAAA,UAG1B,wBAAA;;WAEN,QAAA;EAhBA;EAAA,SAmBA,QAAA,EAAU,sBAAsB;AAAA;;KAI/B,sBAAA,GACR,wBAAA,GACA,yBAAA,GACA,yBAAA,GACA,wBAAA,GACA,+BAAA,GACA,2BAAA,GACA,kCAAA,GACA,kCAAA,GACA,2BAAA,GACA,uCAAA,GACA,yBAAA,GACA,yBAAA,GACA,wBAAA,GACA,0BAAA,GACA,mCAAA,GACA,wCAAA;AAjCJ;;;;;;AAAA,UAyCiB,+BAAA;EApC0B;EAAA,SAsChC,IAAA;EAnCM;EAAA,SAsCN,MAAA,EAAQ,cAAA;;WAGR,SAAA,EAAW,sBAAsB;AAAA;;KAIhC,kBAAA,GAAqB,+BAA+B;;KAGpD,aAAA;EAvCA,yCAyCD,MAAA,EAAQ,cAAc;WAGtB,SAAA,WA1CP;EAAA,SA6CO,yBAAA;AAAA;;UAIM,SAAA;EA5Cb;EAAA,SA8CO,GAAA,EAAK,SAAA,CAAU,GAAA;EA5CtB;EAAA,SA+CO,gBAAA,EAAkB,kBAAA;EA7CzB;EAAA,SAgDO,OAAA,EAAS,kBAAA;EA9ChB;EAAA,SAiDO,OAAA,EAAS,aAAA;AAAA;;UAIH,WAAA;EAlD2B;EAAA,SAoDjC,KAAA,EAAO,SAAS,CAAC,GAAA;AAAA;;KAIhB,yBAAA;EAnER,gDAqEO,GAAA,EAAK,SAAA,CAAU,GAAA,GAnEtB;EAAA,SAsEO,OAAA,EAAS,kBAAA,IApEhB;EAAA,SAuEO,OAAA,EAAS,aAAA;AAAA;;KAIR,0BAAA,GAA6B,oBAAoB;AAAA,iBAE7C,YAAA,SAAqB,GAAA,EAAK,SAAA,CAAU,EAAA,GAAK,EAAA,GAAK,CAAA,EAAG,EAAA,KAAO,EAAA,GAAK,SAAA,CAAU,EAAA;AAAA,iBAIvE,aAAA,CAAc,GAAA,EAAK,SAAA,CAAU,SAAA,IAAa,SAAA,CAAU,SAAA;AAAA,iBAsBpD,cAAA,SACd,GAAA,EAAK,WAAA,CAAY,EAAA,GACjB,OAAA;EAlG0C,+EAoGxC,MAAA,GAAS,CAAA,EAAG,EAAA,KAAO,EAAA,EA5FN;EA8Fb,IAAA,IAAQ,IAAA,EAAM,SAAA,CAAU,EAAA,MAAQ,SAAA,CAAU,EAAA;EAE1C,SAAA,IAAa,KAAA,EAAO,kBAAA,CAAmB,EAAA,MAAQ,kBAAA,CAAmB,EAAA;AAAA,IAEnE,WAAA,CAAY,EAAA;AAAA,iBAIC,YAAA,SAAqB,KAAA,EAAO,SAAA,CAAU,EAAA,GAAK,EAAA,GAAK,CAAA,EAAG,EAAA,KAAO,EAAA,GAAK,SAAA,CAAU,EAAA;AAAA,iBA0FzE,aAAA,CAAc,KAAA,EAAO,SAAA,CAAU,SAAA,IAAa,SAAA,CAAU,SAAA"}
@@ -25,8 +25,8 @@ function sortPTableDef(def) {
25
25
  sorting: def.sorting
26
26
  };
27
27
  }
28
- function mapPTableDefV2(def, cb) {
29
- return { query: mapSpecQueryColumns(def.query, cb) };
28
+ function mapPTableDefV2(def, visitor) {
29
+ return { query: mapSpecQueryColumns(def.query, visitor) };
30
30
  }
31
31
  function mapJoinEntry(entry, cb) {
32
32
  switch (entry.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"table_calculate.js","names":[],"sources":["../../../src/drivers/pframe/table_calculate.ts"],"sourcesContent":["import type { PTableColumnId, PTableColumnSpec } from \"./table_common\";\nimport type { PTableVector } from \"./data_types\";\nimport type { PObjectId } from \"../../pool\";\nimport { assertNever } from \"../../util\";\nimport { getAxisId, type PColumn } from \"./spec/spec\";\nimport type { PColumnValues } from \"./data_info\";\nimport type { SpecQuery } from \"./query/query_spec\";\nimport { canonicalizeJson } from \"../../json\";\nimport { mapSpecQueryColumns } from \"./query\";\n\n/** Defines a terminal column node in the join request tree */\nexport interface ColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"column\";\n\n /** Local column */\n readonly column: Col;\n}\n\n/**\n * Axis filter slicing target axis from column axes.\n * If the axis has parents or is a parent, slicing cannot be applied (an error will be thrown).\n * */\nexport interface ConstantAxisFilter {\n /** Filter type discriminator */\n readonly type: \"constant\";\n\n /** Index of axis to slice (zero-based) */\n readonly axisIndex: number;\n\n /** Equality filter reference value, see {@link SingleValueEqualPredicate} */\n readonly constant: string | number;\n}\n\n/** Defines a terminal column node in the join request tree */\nexport interface SlicedColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"slicedColumn\";\n\n /** Local column */\n readonly column: Col;\n\n /** New column id */\n readonly newId: PObjectId;\n\n /** Non-empty list of axis filters */\n readonly axisFilters: ConstantAxisFilter[];\n}\n\nexport interface ArtificialColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"artificialColumn\";\n\n /** Column definition */\n readonly column: Col;\n\n /** New column id */\n readonly newId: PObjectId;\n\n /** Indices of axes to pick from the column (zero-based) */\n readonly axesIndices: number[];\n}\n\n/** Defines a terminal column node in the join request tree */\nexport interface InlineColumnJoinEntry {\n /** Node type discriminator */\n readonly type: \"inlineColumn\";\n\n /** Column definition */\n readonly column: PColumn<PColumnValues>;\n}\n\n/**\n * Defines a join request tree node that will output only records present in\n * all child nodes ({@link entries}).\n * */\nexport interface InnerJoin<Col> {\n /** Node type discriminator */\n readonly type: \"inner\";\n\n /** Child nodes to be inner joined */\n readonly entries: JoinEntry<Col>[];\n}\n\n/**\n * Defines a join request tree node that will output all records present at\n * least in one of the child nodes ({@link entries}), values for those PColumns\n * that lack corresponding combinations of axis values will be null.\n * */\nexport interface FullJoin<Col> {\n /** Node type discriminator */\n readonly type: \"full\";\n\n /** Child nodes to be fully outer joined */\n readonly entries: JoinEntry<Col>[];\n}\n\n/**\n * Defines a join request tree node that will output all records present in\n * {@link primary} child node, and records from the {@link secondary} nodes will\n * be added to the output only if present, values for those PColumns from the\n * {@link secondary} list, that lack corresponding combinations of axis values\n * will be null.\n *\n * This node can be thought as a chain of SQL LEFT JOIN operations starting from\n * the {@link primary} node and adding {@link secondary} nodes one by one.\n * */\nexport interface OuterJoin<Col> {\n /** Node type discriminator */\n readonly type: \"outer\";\n\n /** Primes the join operation. Left part of LEFT JOIN. */\n readonly primary: JoinEntry<Col>;\n\n /** Driven nodes, giving their values only if primary node have corresponding\n * nodes. Right parts of LEFT JOIN chain. */\n readonly secondary: JoinEntry<Col>[];\n}\n\n/**\n * Base type of all join request tree nodes. Join request tree allows to combine\n * information from multiple PColumns into a PTable. Correlation between records\n * is performed by looking for records with the same values in common axis between\n * the PColumns. Common axis are those axis which have equal {@link AxisId} derived\n * from the columns axes spec.\n * */\nexport type JoinEntry<Col> =\n | ColumnJoinEntry<Col>\n | SlicedColumnJoinEntry<Col>\n | ArtificialColumnJoinEntry<Col>\n | InlineColumnJoinEntry\n | InnerJoin<Col>\n | FullJoin<Col>\n | OuterJoin<Col>;\n\n/** Container representing whole data stored in specific PTable column. */\nexport interface FullPTableColumnData {\n /** Unified spec */\n readonly spec: PTableColumnSpec;\n\n /** Data */\n readonly data: PTableVector;\n}\n\nexport interface SingleValueIsNAPredicate {\n /** Comparison operator */\n readonly operator: \"IsNA\";\n}\n\nexport interface SingleValueEqualPredicate {\n /** Comparison operator */\n readonly operator: \"Equal\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueInSetPredicate {\n /** Comparison operator */\n readonly operator: \"InSet\";\n\n /** Reference values, NA values will not match */\n readonly references: (string | number)[];\n}\n\nexport interface SingleValueIEqualPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"IEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string;\n}\n\nexport interface SingleValueLessPredicate {\n /** Comparison operator */\n readonly operator: \"Less\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueLessOrEqualPredicate {\n /** Comparison operator */\n readonly operator: \"LessOrEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueGreaterPredicate {\n /** Comparison operator */\n readonly operator: \"Greater\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueGreaterOrEqualPredicate {\n /** Comparison operator */\n readonly operator: \"GreaterOrEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueStringContainsPredicate {\n /** Comparison operator */\n readonly operator: \"StringContains\";\n\n /** Reference substring, NA values are skipped */\n readonly substring: string;\n}\n\nexport interface SingleValueStringIContainsPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"StringIContains\";\n\n /** Reference substring, NA values are skipped */\n readonly substring: string;\n}\n\nexport interface SingleValueMatchesPredicate {\n /** Comparison operator */\n readonly operator: \"Matches\";\n\n /** Regular expression, NA values are skipped */\n readonly regex: string;\n}\n\nexport interface SingleValueStringContainsFuzzyPredicate {\n /** Comparison operator */\n readonly operator: \"StringContainsFuzzy\";\n\n /** Reference value, NA values are skipped */\n readonly reference: string;\n\n /**\n * Integer specifying the upper bound of edit distance between\n * reference and actual value.\n * When {@link substitutionsOnly} is not defined or set to false\n * Levenshtein distance is used (substitutions and indels)\n * @see https://en.wikipedia.org/wiki/Levenshtein_distance\n * When {@link substitutionsOnly} is set to true\n * Hamming distance is used (substitutions only)\n * @see https://en.wikipedia.org/wiki/Hamming_distance\n */\n readonly maxEdits: number;\n\n /** Changes the type of edit distance in {@link maxEdits} */\n readonly substitutionsOnly?: boolean;\n\n /**\n * Some character in {@link reference} that will match any\n * single character in searched text.\n */\n readonly wildcard?: string;\n}\n\nexport interface SingleValueStringIContainsFuzzyPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"StringIContainsFuzzy\";\n\n /** Reference value, NA values are skipped */\n readonly reference: string;\n\n /**\n * Integer specifying the upper bound of edit distance between\n * reference and actual value.\n * When {@link substitutionsOnly} is not defined or set to false\n * Levenshtein distance is used (substitutions and indels)\n * @see https://en.wikipedia.org/wiki/Levenshtein_distance\n * When {@link substitutionsOnly} is set to true\n * Hamming distance is used (substitutions only)\n * @see https://en.wikipedia.org/wiki/Hamming_distance\n */\n readonly maxEdits: number;\n\n /** Changes the type of edit distance in {@link maxEdits} */\n readonly substitutionsOnly?: boolean;\n\n /**\n * Some character in {@link reference} that will match any\n * single character in searched text.\n */\n readonly wildcard?: string;\n}\n\nexport interface SingleValueNotPredicateV2 {\n /** Comparison operator */\n readonly operator: \"Not\";\n\n /** Operand to negate */\n readonly operand: SingleValuePredicateV2;\n}\n\nexport interface SingleValueAndPredicateV2 {\n /** Comparison operator */\n readonly operator: \"And\";\n\n /** Operands to combine */\n readonly operands: SingleValuePredicateV2[];\n}\n\nexport interface SingleValueOrPredicateV2 {\n /** Comparison operator */\n readonly operator: \"Or\";\n\n /** Operands to combine */\n readonly operands: SingleValuePredicateV2[];\n}\n\n/** Filtering predicate for a single axis or column value */\nexport type SingleValuePredicateV2 =\n | SingleValueIsNAPredicate\n | SingleValueEqualPredicate\n | SingleValueInSetPredicate\n | SingleValueLessPredicate\n | SingleValueLessOrEqualPredicate\n | SingleValueGreaterPredicate\n | SingleValueGreaterOrEqualPredicate\n | SingleValueStringContainsPredicate\n | SingleValueMatchesPredicate\n | SingleValueStringContainsFuzzyPredicate\n | SingleValueNotPredicateV2\n | SingleValueAndPredicateV2\n | SingleValueOrPredicateV2\n | SingleValueIEqualPredicate\n | SingleValueStringIContainsPredicate\n | SingleValueStringIContainsFuzzyPredicate;\n\n/**\n * Filter PTable records based on specific axis or column value. If this is an\n * axis value filter and the axis is part of a partitioning key in some of the\n * source PColumns, the filter will be pushed down to those columns, so only\n * specific partitions will be retrieved from the remote storage.\n * */\nexport interface PTableRecordSingleValueFilterV2 {\n /** Filter type discriminator */\n readonly type: \"bySingleColumnV2\";\n\n /** Target axis selector to examine values from */\n readonly column: PTableColumnId;\n\n /** Value predicate */\n readonly predicate: SingleValuePredicateV2;\n}\n\n/** Generic PTable records filter */\nexport type PTableRecordFilter = PTableRecordSingleValueFilterV2;\n\n/** Sorting parameters for a PTable. */\nexport type PTableSorting = {\n /** Unified column identifier */\n readonly column: PTableColumnId;\n\n /** Sorting order */\n readonly ascending: boolean;\n\n /** Sorting in respect to NA and absent values */\n readonly naAndAbsentAreLeastValues: boolean;\n};\n\n/** Information required to instantiate a PTable. */\nexport interface PTableDef<Col> {\n /** Join tree to populate the PTable */\n readonly src: JoinEntry<Col>;\n\n /** Partition filters */\n readonly partitionFilters: PTableRecordFilter[];\n\n /** Record filters */\n readonly filters: PTableRecordFilter[];\n\n /** Table sorting */\n readonly sorting: PTableSorting[];\n}\n\n/** Information required to instantiate a PTable (V2, query-based). */\nexport interface PTableDefV2<Col> {\n /** Pre-built query spec describing joins, filters and sorting */\n readonly query: SpecQuery<Col>;\n}\n\n/** Request to create and retrieve entirety of data of PTable. */\nexport type CalculateTableDataRequest<Col> = {\n /** Join tree to populate the PTable */\n readonly src: JoinEntry<Col>;\n\n /** Record filters */\n readonly filters: PTableRecordFilter[];\n\n /** Table sorting */\n readonly sorting: PTableSorting[];\n};\n\n/** Response for {@link CalculateTableDataRequest} */\nexport type CalculateTableDataResponse = FullPTableColumnData[];\n\nexport function mapPTableDef<C1, C2>(def: PTableDef<C1>, cb: (c: C1) => C2): PTableDef<C2> {\n return { ...def, src: mapJoinEntry(def.src, cb) };\n}\n\nexport function sortPTableDef(def: PTableDef<PObjectId>): PTableDef<PObjectId> {\n function sortFilters(filters: PTableRecordFilter[]): PTableRecordFilter[] {\n return filters.toSorted((lhs, rhs) => {\n if (lhs.column.type === \"axis\" && rhs.column.type === \"axis\") {\n const lhsId = canonicalizeJson(getAxisId(lhs.column.id));\n const rhsId = canonicalizeJson(getAxisId(rhs.column.id));\n return lhsId < rhsId ? -1 : 1;\n } else if (lhs.column.type === \"column\" && rhs.column.type === \"column\") {\n return lhs.column.id < rhs.column.id ? -1 : 1;\n } else {\n return lhs.column.type === \"axis\" ? -1 : 1;\n }\n });\n }\n return {\n src: sortJoinEntry(def.src),\n partitionFilters: sortFilters(def.partitionFilters),\n filters: sortFilters(def.filters),\n sorting: def.sorting,\n };\n}\n\nexport function mapPTableDefV2<C1, C2>(def: PTableDefV2<C1>, cb: (c: C1) => C2): PTableDefV2<C2> {\n return { query: mapSpecQueryColumns(def.query, cb) };\n}\n\nexport function mapJoinEntry<C1, C2>(entry: JoinEntry<C1>, cb: (c: C1) => C2): JoinEntry<C2> {\n switch (entry.type) {\n case \"column\":\n return {\n type: \"column\",\n column: cb(entry.column),\n };\n case \"slicedColumn\":\n return {\n type: \"slicedColumn\",\n column: cb(entry.column),\n newId: entry.newId,\n axisFilters: entry.axisFilters,\n };\n case \"artificialColumn\":\n return {\n type: \"artificialColumn\",\n column: cb(entry.column),\n newId: entry.newId,\n axesIndices: entry.axesIndices,\n };\n case \"inlineColumn\":\n return entry;\n case \"inner\":\n case \"full\":\n return {\n type: entry.type,\n entries: entry.entries.map((col) => mapJoinEntry(col, cb)),\n };\n case \"outer\":\n return {\n type: \"outer\",\n primary: mapJoinEntry(entry.primary, cb),\n secondary: entry.secondary.map((col) => mapJoinEntry(col, cb)),\n };\n default:\n assertNever(entry);\n }\n}\n\nfunction cmpJoinEntries(lhs: JoinEntry<PObjectId>, rhs: JoinEntry<PObjectId>): number {\n if (lhs.type !== rhs.type) {\n return lhs.type < rhs.type ? -1 : 1;\n }\n const type = lhs.type;\n switch (type) {\n case \"column\":\n return lhs.column < (rhs as typeof lhs).column ? -1 : 1;\n case \"slicedColumn\":\n case \"artificialColumn\":\n return lhs.newId < (rhs as typeof lhs).newId ? -1 : 1;\n case \"inlineColumn\": {\n return lhs.column.id < (rhs as typeof lhs).column.id ? -1 : 1;\n }\n case \"inner\":\n case \"full\": {\n const rhsInner = rhs as typeof lhs;\n if (lhs.entries.length !== rhsInner.entries.length) {\n return lhs.entries.length - rhsInner.entries.length;\n }\n for (let i = 0; i < lhs.entries.length; i++) {\n const cmp = cmpJoinEntries(lhs.entries[i], rhsInner.entries[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n }\n case \"outer\": {\n const rhsOuter = rhs as typeof lhs;\n const cmp = cmpJoinEntries(lhs.primary, rhsOuter.primary);\n if (cmp !== 0) {\n return cmp;\n }\n if (lhs.secondary.length !== rhsOuter.secondary.length) {\n return lhs.secondary.length - rhsOuter.secondary.length;\n }\n for (let i = 0; i < lhs.secondary.length; i++) {\n const cmp = cmpJoinEntries(lhs.secondary[i], rhsOuter.secondary[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n }\n default:\n assertNever(type);\n }\n}\n\nexport function sortJoinEntry(entry: JoinEntry<PObjectId>): JoinEntry<PObjectId> {\n switch (entry.type) {\n case \"column\":\n case \"slicedColumn\":\n case \"inlineColumn\":\n return entry;\n case \"artificialColumn\": {\n const sortedAxesIndices = entry.axesIndices.toSorted((lhs, rhs) => lhs - rhs);\n return {\n ...entry,\n axesIndices: sortedAxesIndices,\n };\n }\n case \"inner\":\n case \"full\": {\n const sortedEntries = entry.entries.map(sortJoinEntry);\n sortedEntries.sort(cmpJoinEntries);\n return {\n ...entry,\n entries: sortedEntries,\n };\n }\n case \"outer\": {\n const sortedSecondary = entry.secondary.map(sortJoinEntry);\n sortedSecondary.sort(cmpJoinEntries);\n return {\n ...entry,\n primary: sortJoinEntry(entry.primary),\n secondary: sortedSecondary,\n };\n }\n default:\n assertNever(entry);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table_calculate.js","names":[],"sources":["../../../src/drivers/pframe/table_calculate.ts"],"sourcesContent":["import type { PTableColumnId, PTableColumnSpec } from \"./table_common\";\nimport type { PTableVector } from \"./data_types\";\nimport type { PObjectId } from \"../../pool\";\nimport { assertNever } from \"../../util\";\nimport { getAxisId, type PColumn } from \"./spec/spec\";\nimport type { PColumnValues } from \"./data_info\";\nimport type { SpecQuery, SpecQueryJoinEntry } from \"./query/query_spec\";\nimport { canonicalizeJson } from \"../../json\";\nimport { mapSpecQueryColumns } from \"./query\";\n\n/** Defines a terminal column node in the join request tree */\nexport interface ColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"column\";\n\n /** Local column */\n readonly column: Col;\n}\n\n/**\n * Axis filter slicing target axis from column axes.\n * If the axis has parents or is a parent, slicing cannot be applied (an error will be thrown).\n * */\nexport interface ConstantAxisFilter {\n /** Filter type discriminator */\n readonly type: \"constant\";\n\n /** Index of axis to slice (zero-based) */\n readonly axisIndex: number;\n\n /** Equality filter reference value, see {@link SingleValueEqualPredicate} */\n readonly constant: string | number;\n}\n\n/** Defines a terminal column node in the join request tree */\nexport interface SlicedColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"slicedColumn\";\n\n /** Local column */\n readonly column: Col;\n\n /** New column id */\n readonly newId: PObjectId;\n\n /** Non-empty list of axis filters */\n readonly axisFilters: ConstantAxisFilter[];\n}\n\nexport interface ArtificialColumnJoinEntry<Col> {\n /** Node type discriminator */\n readonly type: \"artificialColumn\";\n\n /** Column definition */\n readonly column: Col;\n\n /** New column id */\n readonly newId: PObjectId;\n\n /** Indices of axes to pick from the column (zero-based) */\n readonly axesIndices: number[];\n}\n\n/** Defines a terminal column node in the join request tree */\nexport interface InlineColumnJoinEntry {\n /** Node type discriminator */\n readonly type: \"inlineColumn\";\n\n /** Column definition */\n readonly column: PColumn<PColumnValues>;\n}\n\n/**\n * Defines a join request tree node that will output only records present in\n * all child nodes ({@link entries}).\n * */\nexport interface InnerJoin<Col> {\n /** Node type discriminator */\n readonly type: \"inner\";\n\n /** Child nodes to be inner joined */\n readonly entries: JoinEntry<Col>[];\n}\n\n/**\n * Defines a join request tree node that will output all records present at\n * least in one of the child nodes ({@link entries}), values for those PColumns\n * that lack corresponding combinations of axis values will be null.\n * */\nexport interface FullJoin<Col> {\n /** Node type discriminator */\n readonly type: \"full\";\n\n /** Child nodes to be fully outer joined */\n readonly entries: JoinEntry<Col>[];\n}\n\n/**\n * Defines a join request tree node that will output all records present in\n * {@link primary} child node, and records from the {@link secondary} nodes will\n * be added to the output only if present, values for those PColumns from the\n * {@link secondary} list, that lack corresponding combinations of axis values\n * will be null.\n *\n * This node can be thought as a chain of SQL LEFT JOIN operations starting from\n * the {@link primary} node and adding {@link secondary} nodes one by one.\n * */\nexport interface OuterJoin<Col> {\n /** Node type discriminator */\n readonly type: \"outer\";\n\n /** Primes the join operation. Left part of LEFT JOIN. */\n readonly primary: JoinEntry<Col>;\n\n /** Driven nodes, giving their values only if primary node have corresponding\n * nodes. Right parts of LEFT JOIN chain. */\n readonly secondary: JoinEntry<Col>[];\n}\n\n/**\n * Base type of all join request tree nodes. Join request tree allows to combine\n * information from multiple PColumns into a PTable. Correlation between records\n * is performed by looking for records with the same values in common axis between\n * the PColumns. Common axis are those axis which have equal {@link AxisId} derived\n * from the columns axes spec.\n * */\nexport type JoinEntry<Col> =\n | ColumnJoinEntry<Col>\n | SlicedColumnJoinEntry<Col>\n | ArtificialColumnJoinEntry<Col>\n | InlineColumnJoinEntry\n | InnerJoin<Col>\n | FullJoin<Col>\n | OuterJoin<Col>;\n\n/** Container representing whole data stored in specific PTable column. */\nexport interface FullPTableColumnData {\n /** Unified spec */\n readonly spec: PTableColumnSpec;\n\n /** Data */\n readonly data: PTableVector;\n}\n\nexport interface SingleValueIsNAPredicate {\n /** Comparison operator */\n readonly operator: \"IsNA\";\n}\n\nexport interface SingleValueEqualPredicate {\n /** Comparison operator */\n readonly operator: \"Equal\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueInSetPredicate {\n /** Comparison operator */\n readonly operator: \"InSet\";\n\n /** Reference values, NA values will not match */\n readonly references: (string | number)[];\n}\n\nexport interface SingleValueIEqualPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"IEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string;\n}\n\nexport interface SingleValueLessPredicate {\n /** Comparison operator */\n readonly operator: \"Less\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueLessOrEqualPredicate {\n /** Comparison operator */\n readonly operator: \"LessOrEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueGreaterPredicate {\n /** Comparison operator */\n readonly operator: \"Greater\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueGreaterOrEqualPredicate {\n /** Comparison operator */\n readonly operator: \"GreaterOrEqual\";\n\n /** Reference value, NA values will not match */\n readonly reference: string | number;\n}\n\nexport interface SingleValueStringContainsPredicate {\n /** Comparison operator */\n readonly operator: \"StringContains\";\n\n /** Reference substring, NA values are skipped */\n readonly substring: string;\n}\n\nexport interface SingleValueStringIContainsPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"StringIContains\";\n\n /** Reference substring, NA values are skipped */\n readonly substring: string;\n}\n\nexport interface SingleValueMatchesPredicate {\n /** Comparison operator */\n readonly operator: \"Matches\";\n\n /** Regular expression, NA values are skipped */\n readonly regex: string;\n}\n\nexport interface SingleValueStringContainsFuzzyPredicate {\n /** Comparison operator */\n readonly operator: \"StringContainsFuzzy\";\n\n /** Reference value, NA values are skipped */\n readonly reference: string;\n\n /**\n * Integer specifying the upper bound of edit distance between\n * reference and actual value.\n * When {@link substitutionsOnly} is not defined or set to false\n * Levenshtein distance is used (substitutions and indels)\n * @see https://en.wikipedia.org/wiki/Levenshtein_distance\n * When {@link substitutionsOnly} is set to true\n * Hamming distance is used (substitutions only)\n * @see https://en.wikipedia.org/wiki/Hamming_distance\n */\n readonly maxEdits: number;\n\n /** Changes the type of edit distance in {@link maxEdits} */\n readonly substitutionsOnly?: boolean;\n\n /**\n * Some character in {@link reference} that will match any\n * single character in searched text.\n */\n readonly wildcard?: string;\n}\n\nexport interface SingleValueStringIContainsFuzzyPredicate {\n /** Comparison operator (case insensitive) */\n readonly operator: \"StringIContainsFuzzy\";\n\n /** Reference value, NA values are skipped */\n readonly reference: string;\n\n /**\n * Integer specifying the upper bound of edit distance between\n * reference and actual value.\n * When {@link substitutionsOnly} is not defined or set to false\n * Levenshtein distance is used (substitutions and indels)\n * @see https://en.wikipedia.org/wiki/Levenshtein_distance\n * When {@link substitutionsOnly} is set to true\n * Hamming distance is used (substitutions only)\n * @see https://en.wikipedia.org/wiki/Hamming_distance\n */\n readonly maxEdits: number;\n\n /** Changes the type of edit distance in {@link maxEdits} */\n readonly substitutionsOnly?: boolean;\n\n /**\n * Some character in {@link reference} that will match any\n * single character in searched text.\n */\n readonly wildcard?: string;\n}\n\nexport interface SingleValueNotPredicateV2 {\n /** Comparison operator */\n readonly operator: \"Not\";\n\n /** Operand to negate */\n readonly operand: SingleValuePredicateV2;\n}\n\nexport interface SingleValueAndPredicateV2 {\n /** Comparison operator */\n readonly operator: \"And\";\n\n /** Operands to combine */\n readonly operands: SingleValuePredicateV2[];\n}\n\nexport interface SingleValueOrPredicateV2 {\n /** Comparison operator */\n readonly operator: \"Or\";\n\n /** Operands to combine */\n readonly operands: SingleValuePredicateV2[];\n}\n\n/** Filtering predicate for a single axis or column value */\nexport type SingleValuePredicateV2 =\n | SingleValueIsNAPredicate\n | SingleValueEqualPredicate\n | SingleValueInSetPredicate\n | SingleValueLessPredicate\n | SingleValueLessOrEqualPredicate\n | SingleValueGreaterPredicate\n | SingleValueGreaterOrEqualPredicate\n | SingleValueStringContainsPredicate\n | SingleValueMatchesPredicate\n | SingleValueStringContainsFuzzyPredicate\n | SingleValueNotPredicateV2\n | SingleValueAndPredicateV2\n | SingleValueOrPredicateV2\n | SingleValueIEqualPredicate\n | SingleValueStringIContainsPredicate\n | SingleValueStringIContainsFuzzyPredicate;\n\n/**\n * Filter PTable records based on specific axis or column value. If this is an\n * axis value filter and the axis is part of a partitioning key in some of the\n * source PColumns, the filter will be pushed down to those columns, so only\n * specific partitions will be retrieved from the remote storage.\n * */\nexport interface PTableRecordSingleValueFilterV2 {\n /** Filter type discriminator */\n readonly type: \"bySingleColumnV2\";\n\n /** Target axis selector to examine values from */\n readonly column: PTableColumnId;\n\n /** Value predicate */\n readonly predicate: SingleValuePredicateV2;\n}\n\n/** Generic PTable records filter */\nexport type PTableRecordFilter = PTableRecordSingleValueFilterV2;\n\n/** Sorting parameters for a PTable. */\nexport type PTableSorting = {\n /** Unified column identifier */\n readonly column: PTableColumnId;\n\n /** Sorting order */\n readonly ascending: boolean;\n\n /** Sorting in respect to NA and absent values */\n readonly naAndAbsentAreLeastValues: boolean;\n};\n\n/** Information required to instantiate a PTable. */\nexport interface PTableDef<Col> {\n /** Join tree to populate the PTable */\n readonly src: JoinEntry<Col>;\n\n /** Partition filters */\n readonly partitionFilters: PTableRecordFilter[];\n\n /** Record filters */\n readonly filters: PTableRecordFilter[];\n\n /** Table sorting */\n readonly sorting: PTableSorting[];\n}\n\n/** Information required to instantiate a PTable (V2, query-based). */\nexport interface PTableDefV2<Col> {\n /** Pre-built query spec describing joins, filters and sorting */\n readonly query: SpecQuery<Col>;\n}\n\n/** Request to create and retrieve entirety of data of PTable. */\nexport type CalculateTableDataRequest<Col> = {\n /** Join tree to populate the PTable */\n readonly src: JoinEntry<Col>;\n\n /** Record filters */\n readonly filters: PTableRecordFilter[];\n\n /** Table sorting */\n readonly sorting: PTableSorting[];\n};\n\n/** Response for {@link CalculateTableDataRequest} */\nexport type CalculateTableDataResponse = FullPTableColumnData[];\n\nexport function mapPTableDef<C1, C2>(def: PTableDef<C1>, cb: (c: C1) => C2): PTableDef<C2> {\n return { ...def, src: mapJoinEntry(def.src, cb) };\n}\n\nexport function sortPTableDef(def: PTableDef<PObjectId>): PTableDef<PObjectId> {\n function sortFilters(filters: PTableRecordFilter[]): PTableRecordFilter[] {\n return filters.toSorted((lhs, rhs) => {\n if (lhs.column.type === \"axis\" && rhs.column.type === \"axis\") {\n const lhsId = canonicalizeJson(getAxisId(lhs.column.id));\n const rhsId = canonicalizeJson(getAxisId(rhs.column.id));\n return lhsId < rhsId ? -1 : 1;\n } else if (lhs.column.type === \"column\" && rhs.column.type === \"column\") {\n return lhs.column.id < rhs.column.id ? -1 : 1;\n } else {\n return lhs.column.type === \"axis\" ? -1 : 1;\n }\n });\n }\n return {\n src: sortJoinEntry(def.src),\n partitionFilters: sortFilters(def.partitionFilters),\n filters: sortFilters(def.filters),\n sorting: def.sorting,\n };\n}\n\nexport function mapPTableDefV2<C1, C2>(\n def: PTableDefV2<C1>,\n visitor: {\n /** Transform column references in leaf nodes (column, sparseToDenseColumn). */\n column: (c: C1) => C2;\n /** Visit a node after its children have been traversed. */\n node?: (node: SpecQuery<C2>) => SpecQuery<C2>;\n /** Visit a join entry after its inner query has been traversed. */\n joinEntry?: (entry: SpecQueryJoinEntry<C2>) => SpecQueryJoinEntry<C2>;\n },\n): PTableDefV2<C2> {\n return { query: mapSpecQueryColumns(def.query, visitor) };\n}\n\nexport function mapJoinEntry<C1, C2>(entry: JoinEntry<C1>, cb: (c: C1) => C2): JoinEntry<C2> {\n switch (entry.type) {\n case \"column\":\n return {\n type: \"column\",\n column: cb(entry.column),\n };\n case \"slicedColumn\":\n return {\n type: \"slicedColumn\",\n column: cb(entry.column),\n newId: entry.newId,\n axisFilters: entry.axisFilters,\n };\n case \"artificialColumn\":\n return {\n type: \"artificialColumn\",\n column: cb(entry.column),\n newId: entry.newId,\n axesIndices: entry.axesIndices,\n };\n case \"inlineColumn\":\n return entry;\n case \"inner\":\n case \"full\":\n return {\n type: entry.type,\n entries: entry.entries.map((col) => mapJoinEntry(col, cb)),\n };\n case \"outer\":\n return {\n type: \"outer\",\n primary: mapJoinEntry(entry.primary, cb),\n secondary: entry.secondary.map((col) => mapJoinEntry(col, cb)),\n };\n default:\n assertNever(entry);\n }\n}\n\nfunction cmpJoinEntries(lhs: JoinEntry<PObjectId>, rhs: JoinEntry<PObjectId>): number {\n if (lhs.type !== rhs.type) {\n return lhs.type < rhs.type ? -1 : 1;\n }\n const type = lhs.type;\n switch (type) {\n case \"column\":\n return lhs.column < (rhs as typeof lhs).column ? -1 : 1;\n case \"slicedColumn\":\n case \"artificialColumn\":\n return lhs.newId < (rhs as typeof lhs).newId ? -1 : 1;\n case \"inlineColumn\": {\n return lhs.column.id < (rhs as typeof lhs).column.id ? -1 : 1;\n }\n case \"inner\":\n case \"full\": {\n const rhsInner = rhs as typeof lhs;\n if (lhs.entries.length !== rhsInner.entries.length) {\n return lhs.entries.length - rhsInner.entries.length;\n }\n for (let i = 0; i < lhs.entries.length; i++) {\n const cmp = cmpJoinEntries(lhs.entries[i], rhsInner.entries[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n }\n case \"outer\": {\n const rhsOuter = rhs as typeof lhs;\n const cmp = cmpJoinEntries(lhs.primary, rhsOuter.primary);\n if (cmp !== 0) {\n return cmp;\n }\n if (lhs.secondary.length !== rhsOuter.secondary.length) {\n return lhs.secondary.length - rhsOuter.secondary.length;\n }\n for (let i = 0; i < lhs.secondary.length; i++) {\n const cmp = cmpJoinEntries(lhs.secondary[i], rhsOuter.secondary[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n }\n default:\n assertNever(type);\n }\n}\n\nexport function sortJoinEntry(entry: JoinEntry<PObjectId>): JoinEntry<PObjectId> {\n switch (entry.type) {\n case \"column\":\n case \"slicedColumn\":\n case \"inlineColumn\":\n return entry;\n case \"artificialColumn\": {\n const sortedAxesIndices = entry.axesIndices.toSorted((lhs, rhs) => lhs - rhs);\n return {\n ...entry,\n axesIndices: sortedAxesIndices,\n };\n }\n case \"inner\":\n case \"full\": {\n const sortedEntries = entry.entries.map(sortJoinEntry);\n sortedEntries.sort(cmpJoinEntries);\n return {\n ...entry,\n entries: sortedEntries,\n };\n }\n case \"outer\": {\n const sortedSecondary = entry.secondary.map(sortJoinEntry);\n sortedSecondary.sort(cmpJoinEntries);\n return {\n ...entry,\n primary: sortJoinEntry(entry.primary),\n secondary: sortedSecondary,\n };\n }\n default:\n assertNever(entry);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table_common.cjs","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"sourcesContent":["import type { PObjectId } from \"../../pool\";\nimport type { AxisId, AxisSpec, PColumnSpec } from \"./spec/spec\";\n\nexport type PTableColumnSpecAxis = {\n type: \"axis\";\n id: AxisId;\n spec: AxisSpec;\n};\n\nexport type PTableColumnSpecColumn = {\n type: \"column\";\n id: PObjectId;\n spec: PColumnSpec;\n};\n\n/** Unified spec object for axes and columns */\nexport type PTableColumnSpec = PTableColumnSpecAxis | PTableColumnSpecColumn;\n\nexport type PTableColumnIdAxis = {\n type: \"axis\";\n id: AxisId;\n};\n\nexport type PTableColumnIdColumn = {\n type: \"column\";\n id: PObjectId;\n};\n\n/** Unified PTable column identifier */\nexport type PTableColumnId = PTableColumnIdAxis | PTableColumnIdColumn;\n\nexport function getPTableColumnId(spec: PTableColumnSpec): PTableColumnId {\n switch (spec.type) {\n case \"axis\":\n return {\n type: \"axis\",\n id: spec.id,\n };\n case \"column\":\n return {\n type: \"column\",\n id: spec.id,\n };\n }\n}\n"],"mappings":";AA+BA,SAAgB,kBAAkB,MAAwC;CACxE,QAAQ,KAAK,MAAb;EACE,KAAK,QACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;EACF,KAAK,UACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;CACJ;AACF"}
1
+ {"version":3,"file":"table_common.cjs","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"sourcesContent":["import type { AxisId, AxisSpec, PColumnSpec } from \"./spec/spec\";\nimport type { ColumnUniversalId } from \"./spec/ids\";\n\nexport type PTableColumnSpecAxis = {\n type: \"axis\";\n id: AxisId;\n spec: AxisSpec;\n};\n\nexport type PTableColumnSpecColumn = {\n type: \"column\";\n /**\n * Leaf column id as it appears in the SpecQuery — may be a rich\n * {@link ColumnUniversalId} (Discovered / Overridden / Filtered) or a bare\n * {@link PObjectId}. The host resolver strips to bare via `extractPObjectId`\n * before physical lookup.\n */\n id: ColumnUniversalId;\n spec: PColumnSpec;\n};\n\n/** Unified spec object for axes and columns */\nexport type PTableColumnSpec = PTableColumnSpecAxis | PTableColumnSpecColumn;\n\nexport type PTableColumnIdAxis = {\n type: \"axis\";\n id: AxisId;\n};\n\nexport type PTableColumnIdColumn = {\n type: \"column\";\n /** @see PTableColumnSpecColumn.id */\n id: ColumnUniversalId;\n};\n\n/** Unified PTable column identifier */\nexport type PTableColumnId = PTableColumnIdAxis | PTableColumnIdColumn;\n\nexport function getPTableColumnId(spec: PTableColumnSpec): PTableColumnId {\n switch (spec.type) {\n case \"axis\":\n return {\n type: \"axis\",\n id: spec.id,\n };\n case \"column\":\n return {\n type: \"column\",\n id: spec.id,\n };\n }\n}\n"],"mappings":";AAsCA,SAAgB,kBAAkB,MAAwC;CACxE,QAAQ,KAAK,MAAb;EACE,KAAK,QACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;EACF,KAAK,UACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;CACJ;AACF"}
@@ -1,5 +1,6 @@
1
1
  import { AxisId, AxisSpec, PColumnSpec } from "./spec/spec.js";
2
- import { PObjectId } from "../../pool/spec.js";
2
+ import { ColumnUniversalId } from "./spec/ids.js";
3
+
3
4
  //#region src/drivers/pframe/table_common.d.ts
4
5
  type PTableColumnSpecAxis = {
5
6
  type: "axis";
@@ -8,7 +9,13 @@ type PTableColumnSpecAxis = {
8
9
  };
9
10
  type PTableColumnSpecColumn = {
10
11
  type: "column";
11
- id: PObjectId;
12
+ /**
13
+ * Leaf column id as it appears in the SpecQuery — may be a rich
14
+ * {@link ColumnUniversalId} (Discovered / Overridden / Filtered) or a bare
15
+ * {@link PObjectId}. The host resolver strips to bare via `extractPObjectId`
16
+ * before physical lookup.
17
+ */
18
+ id: ColumnUniversalId;
12
19
  spec: PColumnSpec;
13
20
  };
14
21
  /** Unified spec object for axes and columns */
@@ -18,8 +25,8 @@ type PTableColumnIdAxis = {
18
25
  id: AxisId;
19
26
  };
20
27
  type PTableColumnIdColumn = {
21
- type: "column";
22
- id: PObjectId;
28
+ type: "column"; /** @see PTableColumnSpecColumn.id */
29
+ id: ColumnUniversalId;
23
30
  };
24
31
  /** Unified PTable column identifier */
25
32
  type PTableColumnId = PTableColumnIdAxis | PTableColumnIdColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"table_common.d.ts","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"mappings":";;;KAGY,oBAAA;EACV,IAAA;EACA,EAAA,EAAI,MAAA;EACJ,IAAA,EAAM,QAAQ;AAAA;AAAA,KAGJ,sBAAA;EACV,IAAA;EACA,EAAA,EAAI,SAAA;EACJ,IAAA,EAAM,WAAW;AAAA;;KAIP,gBAAA,GAAmB,oBAAA,GAAuB,sBAAsB;AAAA,KAEhE,kBAAA;EACV,IAAA;EACA,EAAA,EAAI,MAAM;AAAA;AAAA,KAGA,oBAAA;EACV,IAAA;EACA,EAAA,EAAI,SAAS;AAAA;;KAIH,cAAA,GAAiB,kBAAA,GAAqB,oBAAoB;AAAA,iBAEtD,iBAAA,CAAkB,IAAA,EAAM,gBAAA,GAAmB,cAAc"}
1
+ {"version":3,"file":"table_common.d.ts","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"mappings":";;;;KAGY,oBAAA;EACV,IAAA;EACA,EAAA,EAAI,MAAA;EACJ,IAAA,EAAM,QAAQ;AAAA;AAAA,KAGJ,sBAAA;EACV,IAAA;EALA;;;;;AACc;EAWd,EAAA,EAAI,iBAAA;EACJ,IAAA,EAAM,WAAW;AAAA;;KAIP,gBAAA,GAAmB,oBAAA,GAAuB,sBAAsB;AAAA,KAEhE,kBAAA;EACV,IAAA;EACA,EAAA,EAAI,MAAM;AAAA;AAAA,KAGA,oBAAA;EACV,IAAA,YARU;EAUV,EAAA,EAAI,iBAAiB;AAAA;;KAIX,cAAA,GAAiB,kBAAA,GAAqB,oBAAoB;AAAA,iBAEtD,iBAAA,CAAkB,IAAA,EAAM,gBAAA,GAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"table_common.js","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"sourcesContent":["import type { PObjectId } from \"../../pool\";\nimport type { AxisId, AxisSpec, PColumnSpec } from \"./spec/spec\";\n\nexport type PTableColumnSpecAxis = {\n type: \"axis\";\n id: AxisId;\n spec: AxisSpec;\n};\n\nexport type PTableColumnSpecColumn = {\n type: \"column\";\n id: PObjectId;\n spec: PColumnSpec;\n};\n\n/** Unified spec object for axes and columns */\nexport type PTableColumnSpec = PTableColumnSpecAxis | PTableColumnSpecColumn;\n\nexport type PTableColumnIdAxis = {\n type: \"axis\";\n id: AxisId;\n};\n\nexport type PTableColumnIdColumn = {\n type: \"column\";\n id: PObjectId;\n};\n\n/** Unified PTable column identifier */\nexport type PTableColumnId = PTableColumnIdAxis | PTableColumnIdColumn;\n\nexport function getPTableColumnId(spec: PTableColumnSpec): PTableColumnId {\n switch (spec.type) {\n case \"axis\":\n return {\n type: \"axis\",\n id: spec.id,\n };\n case \"column\":\n return {\n type: \"column\",\n id: spec.id,\n };\n }\n}\n"],"mappings":";AA+BA,SAAgB,kBAAkB,MAAwC;CACxE,QAAQ,KAAK,MAAb;EACE,KAAK,QACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;EACF,KAAK,UACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;CACJ;AACF"}
1
+ {"version":3,"file":"table_common.js","names":[],"sources":["../../../src/drivers/pframe/table_common.ts"],"sourcesContent":["import type { AxisId, AxisSpec, PColumnSpec } from \"./spec/spec\";\nimport type { ColumnUniversalId } from \"./spec/ids\";\n\nexport type PTableColumnSpecAxis = {\n type: \"axis\";\n id: AxisId;\n spec: AxisSpec;\n};\n\nexport type PTableColumnSpecColumn = {\n type: \"column\";\n /**\n * Leaf column id as it appears in the SpecQuery — may be a rich\n * {@link ColumnUniversalId} (Discovered / Overridden / Filtered) or a bare\n * {@link PObjectId}. The host resolver strips to bare via `extractPObjectId`\n * before physical lookup.\n */\n id: ColumnUniversalId;\n spec: PColumnSpec;\n};\n\n/** Unified spec object for axes and columns */\nexport type PTableColumnSpec = PTableColumnSpecAxis | PTableColumnSpecColumn;\n\nexport type PTableColumnIdAxis = {\n type: \"axis\";\n id: AxisId;\n};\n\nexport type PTableColumnIdColumn = {\n type: \"column\";\n /** @see PTableColumnSpecColumn.id */\n id: ColumnUniversalId;\n};\n\n/** Unified PTable column identifier */\nexport type PTableColumnId = PTableColumnIdAxis | PTableColumnIdColumn;\n\nexport function getPTableColumnId(spec: PTableColumnSpec): PTableColumnId {\n switch (spec.type) {\n case \"axis\":\n return {\n type: \"axis\",\n id: spec.id,\n };\n case \"column\":\n return {\n type: \"column\",\n id: spec.id,\n };\n }\n}\n"],"mappings":";AAsCA,SAAgB,kBAAkB,MAAwC;CACxE,QAAQ,KAAK,MAAb;EACE,KAAK,QACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;EACF,KAAK,UACH,OAAO;GACL,MAAM;GACN,IAAI,KAAK;EACX;CACJ;AACF"}
package/dist/index.cjs CHANGED
@@ -16,15 +16,18 @@ const require_data_types = require("./drivers/pframe/data_types.cjs");
16
16
  const require_utils = require("./drivers/pframe/query/utils.cjs");
17
17
  const require_table_calculate = require("./drivers/pframe/table_calculate.cjs");
18
18
  const require_table_common = require("./drivers/pframe/table_common.cjs");
19
- const require_ids = require("./drivers/pframe/spec/ids.cjs");
20
- const require_anchored = require("./drivers/pframe/spec/anchored.cjs");
21
19
  const require_filtered_column = require("./drivers/pframe/spec/filtered_column.cjs");
22
20
  const require_spec$1 = require("./pool/spec.cjs");
23
21
  const require_query = require("./pool/query.cjs");
22
+ require("./pool/index.cjs");
23
+ const require_discovered_column = require("./drivers/pframe/spec/discovered_column.cjs");
24
+ const require_overridden = require("./drivers/pframe/spec/overridden.cjs");
25
+ const require_ids = require("./drivers/pframe/spec/ids.cjs");
26
+ const require_anchored = require("./drivers/pframe/spec/anchored.cjs");
24
27
  const require_selectors = require("./drivers/pframe/spec/selectors.cjs");
25
28
  const require_native_id = require("./drivers/pframe/spec/native_id.cjs");
26
- const require_discovered_column = require("./drivers/pframe/spec/discovered_column.cjs");
27
29
  const require_linker_columns = require("./drivers/pframe/linker_columns.cjs");
30
+ const require_discover_columns_options = require("./drivers/columns/discover_columns_options.cjs");
28
31
  const require_ChunkedStreamReader = require("./drivers/ChunkedStreamReader.cjs");
29
32
  require("./drivers/index.cjs");
30
33
  const require_block_flags = require("./flags/block_flags.cjs");
@@ -44,14 +47,24 @@ const require_node_service_handlers = require("./services/node_service_handlers.
44
47
  const require_service_injectors = require("./services/service_injectors.cjs");
45
48
  require("./services/index.cjs");
46
49
  const require_pool_entry = require("./pool_entry.cjs");
50
+ const require_accessor_traversal = require("./columns/accessor_traversal.cjs");
51
+ const require_column_registry = require("./columns/column_registry.cjs");
52
+ const require_column_selector = require("./columns/column_selector.cjs");
53
+ const require_dedup = require("./columns/dedup.cjs");
54
+ const require_providers = require("./columns/providers.cjs");
55
+ require("./columns/index.cjs");
47
56
  exports.AbortError = require_errors.AbortError;
57
+ exports.AccessorEntriesProvider = require_providers.AccessorEntriesProvider;
48
58
  exports.AllRequiresFeatureFlags = require_block_flags.AllRequiresFeatureFlags;
49
59
  exports.AllSupportsFeatureFlags = require_block_flags.AllSupportsFeatureFlags;
50
60
  exports.AnchoredIdDeriver = require_anchored.AnchoredIdDeriver;
51
61
  exports.Annotation = require_spec.Annotation;
52
62
  exports.AnnotationJson = require_spec.AnnotationJson;
63
+ exports.COLLECT_TYPES = require_accessor_traversal.COLLECT_TYPES;
53
64
  exports.ChunkedStreamReader = require_ChunkedStreamReader.ChunkedStreamReader;
54
65
  exports.Code = require_code.Code;
66
+ exports.ColumnRegistry = require_column_registry.ColumnRegistry;
67
+ exports.DESCEND_TYPES = require_accessor_traversal.DESCEND_TYPES;
55
68
  exports.DefaultNavigationState = require_navigation.DefaultNavigationState;
56
69
  exports.Domain = require_spec.Domain;
57
70
  exports.DomainJson = require_spec.DomainJson;
@@ -74,6 +87,7 @@ exports.REQUIRES_PFRAMES_VERSION = require_block_flags.REQUIRES_PFRAMES_VERSION;
74
87
  exports.RangeBytes = require_blob.RangeBytes;
75
88
  exports.ResourceTypeName = require_resource_types.ResourceTypeName;
76
89
  exports.ResourceTypePrefix = require_resource_types.ResourceTypePrefix;
90
+ exports.ResultPoolEntriesProvider = require_providers.ResultPoolEntriesProvider;
77
91
  exports.RuntimeCapabilities = require_flag_utils.RuntimeCapabilities;
78
92
  exports.SERVICE_CAPABILITY_FLAGS = require_service_capabilities.SERVICE_CAPABILITY_FLAGS;
79
93
  exports.SERVICE_FEATURE_FLAGS = require_service_capabilities.SERVICE_FEATURE_FLAGS;
@@ -89,6 +103,8 @@ exports.UiError = require_errors.UiError;
89
103
  exports.UiServiceRegistry = require_service_registry.UiServiceRegistry;
90
104
  exports.ValueType = require_spec.ValueType;
91
105
  exports.XLSX_MAX_ROWS_PER_SHEET = require_data_types.XLSX_MAX_ROWS_PER_SHEET;
106
+ exports.applyAxisFilters = require_filtered_column.applyAxisFilters;
107
+ exports.applySpecOverrides = require_overridden.applySpecOverrides;
92
108
  exports.assertNever = require_util.assertNever;
93
109
  exports.base64Decode = require_base64.base64Decode;
94
110
  exports.base64Encode = require_base64.base64Encode;
@@ -99,17 +115,31 @@ exports.canonicalizeAxisWithParents = require_spec.canonicalizeAxisWithParents;
99
115
  exports.canonicalizeJson = require_json.canonicalizeJson;
100
116
  exports.checkBlockFlag = require_flag_utils.checkBlockFlag;
101
117
  exports.collectSpecQueryColumns = require_utils.collectSpecQueryColumns;
102
- exports.createDiscoveredPColumnId = require_discovered_column.createDiscoveredPColumnId;
118
+ exports.convertColumnSelectorToMultiColumnSelector = require_column_selector.convertColumnSelectorToMultiColumnSelector;
119
+ exports.convertRelaxedAxisSelectorToMultiAxisSelector = require_column_selector.convertRelaxedAxisSelectorToMultiAxisSelector;
120
+ exports.convertRelaxedColumnSelectorToMultiColumnSelector = require_column_selector.convertRelaxedColumnSelectorToMultiColumnSelector;
121
+ exports.createColumnDiscoveredId = require_discovered_column.createColumnDiscoveredId;
122
+ exports.createColumnDiscoveredKey = require_discovered_column.createColumnDiscoveredKey;
123
+ exports.createColumnFilteredId = require_filtered_column.createColumnFilteredId;
124
+ exports.createColumnFilteredKey = require_filtered_column.createColumnFilteredKey;
125
+ exports.createColumnOverriddenId = require_overridden.createColumnOverriddenId;
126
+ exports.createColumnOverriddenKey = require_overridden.createColumnOverriddenKey;
103
127
  exports.createEnrichmentRef = require_ref.createEnrichmentRef;
128
+ exports.createGlobalPObjectId = require_spec$1.createGlobalPObjectId;
129
+ exports.createLocalPObjectId = require_spec$1.createLocalPObjectId;
104
130
  exports.createNodeServiceHandlers = require_node_service_handlers.createNodeServiceHandlers;
131
+ exports.createPObjectId = require_spec$1.createPObjectId;
105
132
  exports.createPlRef = require_ref.createPlRef;
106
133
  exports.createPrimaryRef = require_ref.createPrimaryRef;
107
134
  exports.dataInfoToEntries = require_data_info.dataInfoToEntries;
135
+ exports.dedupColumns = require_dedup.dedupColumns;
108
136
  exports.deriveNativeId = require_native_id.deriveNativeId;
137
+ exports.deriveSpecDelta = require_overridden.deriveSpecDelta;
109
138
  exports.deserializeError = require_errors.deserializeError;
110
139
  exports.deserializeResult = require_errors.deserializeResult;
111
140
  exports.digestPlId = require_plid.digestPlId;
112
- exports.distillDiscoveredPColumn = require_discovered_column.distillDiscoveredPColumn;
141
+ exports.distillColumnDiscoveredKey = require_discovered_column.distillColumnDiscoveredKey;
142
+ exports.distillColumnOverriddenKey = require_overridden.distillColumnOverriddenKey;
113
143
  exports.ensureError = require_errors.ensureError;
114
144
  exports.ensurePColumn = require_spec$1.ensurePColumn;
115
145
  exports.entriesToDataInfo = require_data_info.entriesToDataInfo;
@@ -119,6 +149,8 @@ exports.extractAllRequirements = require_flag_utils.extractAllRequirements;
119
149
  exports.extractAllSupports = require_flag_utils.extractAllSupports;
120
150
  exports.extractCodeWithInfo = require_block_config.extractCodeWithInfo;
121
151
  exports.extractConfigGeneric = require_normalization.extractConfigGeneric;
152
+ exports.extractPObjectId = require_ids.extractPObjectId;
153
+ exports.findDescendantsByType = require_accessor_traversal.findDescendantsByType;
122
154
  exports.getArrayFromAxisTree = require_spec.getArrayFromAxisTree;
123
155
  exports.getAxesId = require_spec.getAxesId;
124
156
  exports.getAxesTree = require_spec.getAxesTree;
@@ -137,6 +169,8 @@ exports.getServiceUiMethods = require_service_types.getServiceUiMethods;
137
169
  exports.getSetFromAxisTree = require_spec.getSetFromAxisTree;
138
170
  exports.getTypeFromPColumnOrAxisSpec = require_spec.getTypeFromPColumnOrAxisSpec;
139
171
  exports.hasAbortError = require_errors.hasAbortError;
172
+ exports.indexAccessorRoot = require_accessor_traversal.indexAccessorRoot;
173
+ exports.indexPoolBlock = require_accessor_traversal.indexPoolBlock;
140
174
  exports.isAbortError = require_errors.isAbortError;
141
175
  exports.isAggregateError = require_errors.isAggregateError;
142
176
  exports.isAnchoredPColumnId = require_selectors.isAnchoredPColumnId;
@@ -144,27 +178,37 @@ exports.isAnyLogHandle = require_log.isAnyLogHandle;
144
178
  exports.isAxisId = require_spec.isAxisId;
145
179
  exports.isBlockUIURL = require_urls.isBlockUIURL;
146
180
  exports.isBooleanExpression = require_utils.isBooleanExpression;
181
+ exports.isColumnDiscoveredId = require_discovered_column.isColumnDiscoveredId;
182
+ exports.isColumnDiscoveredKey = require_discovered_column.isColumnDiscoveredKey;
183
+ exports.isColumnFilteredId = require_filtered_column.isColumnFilteredId;
184
+ exports.isColumnFilteredKey = require_filtered_column.isColumnFilteredKey;
185
+ exports.isColumnOverriddenKey = require_overridden.isColumnOverriddenKey;
147
186
  exports.isDataInfo = require_data_info.isDataInfo;
148
187
  exports.isDataInfoEntries = require_data_info.isDataInfoEntries;
149
- exports.isDiscoveredPColumn = require_discovered_column.isDiscoveredPColumn;
188
+ exports.isEmptySpecDelta = require_overridden.isEmptySpecDelta;
150
189
  exports.isEnrichmentRef = require_ref.isEnrichmentRef;
151
190
  exports.isFilteredPColumn = require_filtered_column.isFilteredPColumn;
152
191
  exports.isFolderURL = require_urls.isFolderURL;
192
+ exports.isGlobalPObjectId = require_spec$1.isGlobalPObjectId;
193
+ exports.isGlobalPObjectKey = require_spec$1.isGlobalPObjectKey;
153
194
  exports.isImportFileHandleIndex = require_ls.isImportFileHandleIndex;
154
195
  exports.isImportFileHandleUpload = require_ls.isImportFileHandleUpload;
155
196
  exports.isKnownServiceName = require_service_capabilities.isKnownServiceName;
156
197
  exports.isLabelColumn = require_spec.isLabelColumn;
157
198
  exports.isLinkerColumn = require_spec.isLinkerColumn;
158
199
  exports.isLiveLog = require_log.isLiveLog;
200
+ exports.isLocalPObjectId = require_spec$1.isLocalPObjectId;
201
+ exports.isLocalPObjectKey = require_spec$1.isLocalPObjectKey;
159
202
  exports.isMainService = require_service_types.isMainService;
160
203
  exports.isNodeService = require_service_types.isNodeService;
161
204
  exports.isPColumn = require_spec$1.isPColumn;
162
- exports.isPColumnResult = require_spec$1.isPColumnResult;
163
205
  exports.isPColumnSpec = require_spec$1.isPColumnSpec;
164
- exports.isPColumnSpecResult = require_spec$1.isPColumnSpecResult;
165
206
  exports.isPFrameDriverError = require_errors.isPFrameDriverError;
166
207
  exports.isPFrameError = require_errors.isPFrameError;
167
208
  exports.isPFrameSpecDriverError = require_errors.isPFrameSpecDriverError;
209
+ exports.isPObject = require_spec$1.isPObject;
210
+ exports.isPObjectId = require_spec$1.isPObjectId;
211
+ exports.isPObjectKey = require_spec$1.isPObjectKey;
168
212
  exports.isPTableNA = require_data_types.isPTableNA;
169
213
  exports.isPartitionedDataInfoEntries = require_data_info.isPartitionedDataInfoEntries;
170
214
  exports.isPlRef = require_ref.isPlRef;
@@ -178,6 +222,7 @@ exports.isServiceNotRegisteredError = require_errors.isServiceNotRegisteredError
178
222
  exports.isValueNA = require_data_types.isValueNA;
179
223
  exports.isWasmService = require_service_types.isWasmService;
180
224
  exports.legacyColumnSelectorsToPredicate = require_selectors.legacyColumnSelectorsToPredicate;
225
+ exports.listColumnNames = require_accessor_traversal.listColumnNames;
181
226
  exports.mapDataInfo = require_data_info.mapDataInfo;
182
227
  exports.mapDataInfoEntries = require_data_info.mapDataInfoEntries;
183
228
  exports.mapJoinEntry = require_table_calculate.mapJoinEntry;
@@ -190,12 +235,16 @@ exports.matchAxis = require_selectors.matchAxis;
190
235
  exports.matchAxisId = require_spec.matchAxisId;
191
236
  exports.matchMultiColumnSelector = require_selectors.matchMultiColumnSelector;
192
237
  exports.matchPColumn = require_selectors.matchPColumn;
238
+ exports.matchingModeToConstraints = require_discover_columns_options.matchingModeToConstraints;
239
+ exports.mergeSpecOverrides = require_overridden.mergeSpecOverrides;
193
240
  exports.multiColumnSelectorsToPredicate = require_selectors.multiColumnSelectorsToPredicate;
194
241
  exports.newRangeBytesOpt = require_blob.newRangeBytesOpt;
195
242
  exports.pTableValue = require_data_types.pTableValue;
196
243
  exports.pTableValueBranded = require_data_types.pTableValueBranded;
244
+ exports.parseColumnDiscoveredId = require_discovered_column.parseColumnDiscoveredId;
197
245
  exports.parseColumnId = require_ids.parseColumnId;
198
- exports.parseDiscoveredPColumnId = require_discovered_column.parseDiscoveredPColumnId;
246
+ exports.parseColumnIdSafely = require_ids.parseColumnIdSafely;
247
+ exports.parseColumnOverriddenId = require_overridden.parseColumnOverriddenId;
199
248
  exports.parseHttpAuth = require_httpAuth.parseHttpAuth;
200
249
  exports.parseJson = require_json.parseJson;
201
250
  exports.parseJsonSafely = require_json.parseJsonSafely;
@@ -210,6 +259,7 @@ exports.readDomainJsonOrThrow = require_spec.readDomainJsonOrThrow;
210
259
  exports.readMetadata = require_spec.readMetadata;
211
260
  exports.readMetadataJson = require_spec.readMetadataJson;
212
261
  exports.readMetadataJsonOrThrow = require_spec.readMetadataJsonOrThrow;
262
+ exports.reconstructSpecFromId = require_ids.reconstructSpecFromId;
213
263
  exports.registerServiceCapabilities = require_service_capabilities.registerServiceCapabilities;
214
264
  exports.resolveAnchors = require_anchored.resolveAnchors;
215
265
  exports.resolveAnnotationParents = require_spec.resolveAnnotationParents;
@@ -223,12 +273,15 @@ exports.serviceFnKey = require_service_types.serviceFnKey;
223
273
  exports.sortJoinEntry = require_table_calculate.sortJoinEntry;
224
274
  exports.sortPTableDef = require_table_calculate.sortPTableDef;
225
275
  exports.sortSpecQuery = require_utils.sortSpecQuery;
276
+ exports.stringifyColumnDiscoveredId = require_discovered_column.stringifyColumnDiscoveredId;
277
+ exports.stringifyColumnFilteredId = require_filtered_column.stringifyColumnFilteredId;
226
278
  exports.stringifyColumnId = require_ids.stringifyColumnId;
227
- exports.stringifyDiscoveredPColumnId = require_discovered_column.stringifyDiscoveredPColumnId;
279
+ exports.stringifyColumnOverriddenId = require_overridden.stringifyColumnOverriddenId;
228
280
  exports.stringifyJson = require_json.stringifyJson;
229
281
  exports.traverseQuerySpec = require_utils.traverseQuerySpec;
230
282
  exports.uniqueBy = require_util.uniqueBy;
231
283
  exports.uniquePlId = require_plid.uniquePlId;
284
+ exports.unwrapOverrides = require_overridden.unwrapOverrides;
232
285
  exports.unwrapResult = require_errors.unwrapResult;
233
286
  exports.validateRangeBytes = require_blob.validateRangeBytes;
234
287
  exports.visitDataInfo = require_data_info.visitDataInfo;
package/dist/index.d.ts CHANGED
@@ -6,16 +6,17 @@ import { BlockState, BlockStateV3 } from "./block_state.js";
6
6
  import { Branded } from "./branding.js";
7
7
  import { DialogService, FileFilter, ShowSaveDialogOptions, ShowSaveDialogResult } from "./dialog/index.js";
8
8
  import { PoolEntry, PoolEntryGuard } from "./pool_entry.js";
9
- import { AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, FilteredPColumn, FilteredPColumnId, isFilteredPColumn } from "./drivers/pframe/spec/filtered_column.js";
10
- import { DiscoveredPColumn, DiscoveredPColumnId, createDiscoveredPColumnId, distillDiscoveredPColumn, isDiscoveredPColumn, parseDiscoveredPColumnId, stringifyDiscoveredPColumnId } from "./drivers/pframe/spec/discovered_column.js";
11
- import { SUniversalPColumnId, UniversalPColumnId, parseColumnId, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
12
- import { Annotation, AnnotationDataStatus, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnLazy, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, Trace, TraceEntry, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnnotationParents } from "./drivers/pframe/spec/spec.js";
9
+ import { ColumnDiscoveredId, ColumnDiscoveredKey, createColumnDiscoveredId, createColumnDiscoveredKey, distillColumnDiscoveredKey, isColumnDiscoveredId, isColumnDiscoveredKey, parseColumnDiscoveredId, stringifyColumnDiscoveredId } from "./drivers/pframe/spec/discovered_column.js";
10
+ import { Annotation, AnnotationDataStatus, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, Trace, TraceEntry, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnnotationParents } from "./drivers/pframe/spec/spec.js";
11
+ import { ColumnOverriddenId, ColumnOverriddenKey, SpecOverrides, applySpecOverrides, createColumnOverriddenId, createColumnOverriddenKey, deriveSpecDelta, distillColumnOverriddenKey, isColumnOverriddenKey, isEmptySpecDelta, mergeSpecOverrides, parseColumnOverriddenId, stringifyColumnOverriddenId, unwrapOverrides } from "./drivers/pframe/spec/overridden.js";
12
+ import { AxisPatches, ColumnUniversalId, ColumnUniversalKey, SUniversalPColumnId, UniversalPColumnId, extractPObjectId, parseColumnId, parseColumnIdSafely, reconstructSpecFromId, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
13
+ import { AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, ColumnFilteredId, ColumnFilteredKey, FilteredPColumn, FilteredPColumnId, applyAxisFilters, createColumnFilteredId, createColumnFilteredKey, isColumnFilteredId, isColumnFilteredKey, isFilteredPColumn, stringifyColumnFilteredId } from "./drivers/pframe/spec/filtered_column.js";
13
14
  import { AnchoredIdDeriver, ResolveAnchorsOptions, resolveAnchors } from "./drivers/pframe/spec/anchored.js";
14
15
  import { NativePObjectId, deriveNativeId } from "./drivers/pframe/spec/native_id.js";
15
16
  import { PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, getPTableColumnId } from "./drivers/pframe/table_common.js";
16
17
  import { ExportPTableOptions, PTableDownloadCompression, PTableDownloadFormat, PTableNA, PTableShape, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, TableRange, ValueTypeSupported, WritePTableToFsOptions, WritePTableToFsResult, XLSX_MAX_ROWS_PER_SHEET, isPTableNA, isValueNA, pTableValue, pTableValueBranded } from "./drivers/pframe/data_types.js";
17
18
  import { BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, DataInfo, DataInfoEntries, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, PColumnDataEntry, PColumnKey, PColumnValue, PColumnValues, PColumnValuesEntry, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, dataInfoToEntries, entriesToDataInfo, isDataInfo, isDataInfoEntries, isPartitionedDataInfoEntries, mapDataInfo, mapDataInfoEntries, visitDataInfo } from "./drivers/pframe/data_info.js";
18
- import { SpecExprAxisRef, SpecExprColumnRef, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryLinkerJoinLinker, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, SpecQueryTransformColumns } from "./drivers/pframe/query/query_spec.js";
19
+ import { SpecExprAxisRef, SpecExprColumnRef, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySpecOverride, SpecQuerySymmetricJoin, SpecQueryTransformColumns } from "./drivers/pframe/query/query_spec.js";
19
20
  import { ArtificialColumnJoinEntry, CalculateTableDataRequest, CalculateTableDataResponse, ColumnJoinEntry, ConstantAxisFilter, FullJoin, FullPTableColumnData, InlineColumnJoinEntry, InnerJoin, JoinEntry, OuterJoin, PTableDef, PTableDefV2, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableSorting, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, mapJoinEntry, mapPTableDef, mapPTableDefV2, sortJoinEntry, sortPTableDef } from "./drivers/pframe/table_calculate.js";
20
21
  import { DataExprAxisRef, DataExprColumnRef, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryLinkerJoin, DataQueryLinkerJoinLinker, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DataQueryTransformColumns } from "./drivers/pframe/query/query_data.js";
21
22
  import { collectSpecQueryColumns, isBooleanExpression, mapSpecQueryColumns, sortSpecQuery, traverseQuerySpec } from "./drivers/pframe/query/utils.js";
@@ -29,19 +30,23 @@ import { AnyLogHandle, LiveLogHandle, LogsDriver, ProgressLogWithInfo, ReadyLogH
29
30
  import { ColumnFilter } from "./drivers/pframe/column_filter.js";
30
31
  import { FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, RootFilterSpec } from "./drivers/pframe/filter_spec.js";
31
32
  import { FindColumnsRequest, FindColumnsResponse } from "./drivers/pframe/find_columns.js";
32
- import { PTable } from "./drivers/pframe/table.js";
33
33
  import { UniqueValuesRequest, UniqueValuesResponse } from "./drivers/pframe/unique_values.js";
34
+ import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
35
+ import { PTable } from "./drivers/pframe/table.js";
36
+ import { PFrameDriver, PFrameHandle, PFrameModelDriver, PTableHandle } from "./drivers/pframe/driver.js";
34
37
  import { CompositeLinkerMap, LinkerMap } from "./drivers/pframe/linker_columns.js";
35
38
  import { FileRange, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ListFilesResult, LocalImportFileHandle, LsDriver, LsEntry, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, getFileNameFromHandle, getFilePathFromHandle, isImportFileHandleIndex, isImportFileHandleUpload } from "./drivers/ls.js";
39
+ import { ColumnSelector, RelaxedAxisSelector, RelaxedColumnSelector, RelaxedRecord, RelaxedStringMatchers, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector } from "./columns/column_selector.js";
40
+ import { AnchorEntry, ColumnsDiscoverOptions, ColumnsFilterOptions, DiscoverColumnsOptions, MatchQualifications, MatchingMode, matchingModeToConstraints } from "./drivers/columns/discover_columns_options.js";
36
41
  import { ChunkedStreamReader, ChunkedStreamReaderOptions, ErrorHandlerStatus } from "./drivers/ChunkedStreamReader.js";
37
- import { PObject, PObjectId, PObjectSpec, ensurePColumn, extractAllColumns, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, mapPObjectData } from "./pool/spec.js";
42
+ import { GlobalPObjectId, GlobalPObjectKey, LocalPObjectId, LocalPObjectKey, PObject, PObjectId, PObjectSpec, createGlobalPObjectId, createLocalPObjectId, createPObjectId, ensurePColumn, extractAllColumns, isGlobalPObjectId, isGlobalPObjectKey, isLocalPObjectId, isLocalPObjectKey, isPColumn, isPColumnSpec, isPObject, isPObjectId, isPObjectKey, mapPObjectData } from "./pool/spec.js";
38
43
  import { CreateEnrichmentRefOptions, DatasetInput, EnrichmentLinkerStep, EnrichmentRef, EnrichmentStep, LabeledEnrichmentRef, LabeledEnrichmentRefs, Option, PlRef, PrimaryRef, Ref, createEnrichmentRef, createPlRef, createPrimaryRef, isEnrichmentRef, isPlRef, isPrimaryRef, plRefsEqual, withEnrichments } from "./ref.js";
39
44
  import { ResultCollection, ResultPoolEntry } from "./pool/entry.js";
40
45
  import { PSpecPredicate, executePSpecPredicate } from "./pool/query.js";
41
- import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
42
- import { PFrameDriver, PFrameHandle, PFrameModelDriver, PTableHandle } from "./drivers/pframe/driver.js";
46
+ import { AccessorHandle, AccessorLike, ColumnEntriesProvider, FieldTraversalStepLike, LeafEntry, UpstreamBlockCtx } from "./columns/types.js";
47
+ import { CollectionHandle, ColumnsCollectionDriver, ColumnsCollectionDriverHost, ColumnsCollectionDriverModel, SerializedColumnsSource } from "./drivers/columns/columns_collection_driver.js";
43
48
  import { Services } from "./services/service_declarations.js";
44
- import { InferServiceKind, InferServiceModel, InferServiceUi, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, getServiceKind, getServiceModelMethods, getServiceUiMethods, isMainService, isNodeService, isWasmService, service, serviceFnKey } from "./services/service_types.js";
49
+ import { InferServiceKind, InferServiceModel, InferServiceModelHost, InferServiceUi, InferServiceUiHost, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, getServiceKind, getServiceModelMethods, getServiceUiMethods, isMainService, isNodeService, isWasmService, service, serviceFnKey } from "./services/service_types.js";
45
50
  import { ModelServiceRegistry, UiServiceRegistry } from "./services/service_registry.js";
46
51
  import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./flags/type_utils.js";
47
52
  import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flags/flag_utils.js";
@@ -64,4 +69,8 @@ import { assertNever, uniqueBy } from "./util.js";
64
69
  import { BasicHttpAuth, HttpAuth, parseHttpAuth, serializeHttpAuth } from "./httpAuth.js";
65
70
  import { ResourceTypeName, ResourceTypePrefix } from "./resource_types.js";
66
71
  import { ProjectId } from "./project_id.js";
67
- export { AAxisSelector, ADomain, AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationDataStatus, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobDriverMetrics, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, BuildQueryInput, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, ColumnAxesWithQualifications, ColumnFilter, ColumnJoinEntry, ColumnValueType, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, CreateEnrichmentRefOptions, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryLinkerJoin, DataQueryLinkerJoinLinker, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DataQueryTransformColumns, DatasetInput, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DialogService, DiscoverColumnsConstraints, DiscoverColumnsFilterStep, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, DiscoveredPColumn, DiscoveredPColumnId, Domain, DomainJson, DriverKit, EnrichmentLinkerStep, EnrichmentRef, EnrichmentStep, ErrorHandlerStatus, EvaluateQueryResponse, ExportPTableOptions, FileFilter, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InferServiceKind, InferServiceModel, InferServiceUi, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, KnownServiceName, LabeledEnrichmentRef, LabeledEnrichmentRefs, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LogsDriver, LsDriver, LsEntry, MODEL_SERVICE_METHOD_MAP, MatcherMap, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, NodeServiceHandlerMap, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnKey, PColumnLazy, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableDownloadCompression, PTableDownloadFormat, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntry, PoolEntryGuard, PrimaryRef, ProgressLogWithInfo, ProjectId, REQUIRES_PFRAMES_VERSION, RangeBytes, ReadyLogHandle, Ref, RemoteBlobHandle, RemoteBlobHandleAndSize, RequireServices, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, SUniversalPColumnId, SerializedError, ServiceAlreadyRegisteredError, ServiceBrand, ServiceDispatch, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceName, ServiceNameLiterals, ServiceNotRegisteredError, ServiceRequireFlags, ServiceType, ServiceTypesLike, Services, ShowSaveDialogOptions, ShowSaveDialogResult, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryLinkerJoinLinker, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, SpecQueryTransformColumns, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, Trace, TraceEntry, UiError, UiServiceFactoryMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, WritePTableToFsOptions, WritePTableToFsResult, XLSX_MAX_ROWS_PER_SHEET, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createDiscoveredPColumnId, createEnrichmentRef, createNodeServiceHandlers, createPlRef, createPrimaryRef, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, distillDiscoveredPColumn, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isDiscoveredPColumn, isEnrichmentRef, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isMainService, isNodeService, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isValueNA, isWasmService, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseDiscoveredPColumnId, parseHttpAuth, parseJson, parseJsonSafely, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyDiscoveredPColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
72
+ import { COLLECT_TYPES, DESCEND_TYPES, findDescendantsByType, indexAccessorRoot, indexPoolBlock, listColumnNames } from "./columns/accessor_traversal.js";
73
+ import { ColumnRegistry } from "./columns/column_registry.js";
74
+ import { dedupColumns } from "./columns/dedup.js";
75
+ import { AccessorEntriesProvider, ResultPoolEntriesProvider } from "./columns/providers.js";
76
+ export { AAxisSelector, ADomain, AbortError, AccessorEntriesProvider, AccessorHandle, AccessorLike, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchorEntry, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationDataStatus, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisPatches, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobDriverMetrics, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, BuildQueryInput, COLLECT_TYPES, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, CollectionHandle, ColumnAxesWithQualifications, ColumnDiscoveredId, ColumnDiscoveredKey, ColumnEntriesProvider, ColumnFilter, ColumnFilteredId, ColumnFilteredKey, ColumnJoinEntry, ColumnOverriddenId, ColumnOverriddenKey, ColumnRegistry, ColumnSelector, ColumnUniversalId, ColumnUniversalKey, ColumnValueType, ColumnsCollectionDriver, ColumnsCollectionDriverHost, ColumnsCollectionDriverModel, ColumnsDiscoverOptions, ColumnsFilterOptions, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, CreateEnrichmentRefOptions, DESCEND_TYPES, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryLinkerJoin, DataQueryLinkerJoinLinker, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DataQueryTransformColumns, DatasetInput, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DialogService, DiscoverColumnsConstraints, DiscoverColumnsFilterStep, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsOptions, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, EnrichmentLinkerStep, EnrichmentRef, EnrichmentStep, ErrorHandlerStatus, EvaluateQueryResponse, ExportPTableOptions, FieldTraversalStepLike, FileFilter, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, GlobalPObjectId, GlobalPObjectKey, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InferServiceKind, InferServiceModel, InferServiceModelHost, InferServiceUi, InferServiceUiHost, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, KnownServiceName, LabeledEnrichmentRef, LabeledEnrichmentRefs, LeafEntry, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LocalPObjectId, LocalPObjectKey, LogsDriver, LsDriver, LsEntry, MODEL_SERVICE_METHOD_MAP, MatchQualifications, MatcherMap, MatchingMode, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, NodeServiceHandlerMap, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnKey, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableDownloadCompression, PTableDownloadFormat, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntry, PoolEntryGuard, PrimaryRef, ProgressLogWithInfo, ProjectId, REQUIRES_PFRAMES_VERSION, RangeBytes, ReadyLogHandle, Ref, RelaxedAxisSelector, RelaxedColumnSelector, RelaxedRecord, RelaxedStringMatchers, RemoteBlobHandle, RemoteBlobHandleAndSize, RequireServices, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntriesProvider, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, SUniversalPColumnId, SerializedColumnsSource, SerializedError, ServiceAlreadyRegisteredError, ServiceBrand, ServiceDispatch, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceName, ServiceNameLiterals, ServiceNotRegisteredError, ServiceRequireFlags, ServiceType, ServiceTypesLike, Services, ShowSaveDialogOptions, ShowSaveDialogResult, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecOverrides, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySpecOverride, SpecQuerySymmetricJoin, SpecQueryTransformColumns, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, Trace, TraceEntry, UiError, UiServiceFactoryMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, UpstreamBlockCtx, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, WritePTableToFsOptions, WritePTableToFsResult, XLSX_MAX_ROWS_PER_SHEET, applyAxisFilters, applySpecOverrides, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector, createColumnDiscoveredId, createColumnDiscoveredKey, createColumnFilteredId, createColumnFilteredKey, createColumnOverriddenId, createColumnOverriddenKey, createEnrichmentRef, createGlobalPObjectId, createLocalPObjectId, createNodeServiceHandlers, createPObjectId, createPlRef, createPrimaryRef, dataInfoToEntries, dedupColumns, deriveNativeId, deriveSpecDelta, deserializeError, deserializeResult, digestPlId, distillColumnDiscoveredKey, distillColumnOverriddenKey, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, extractPObjectId, findDescendantsByType, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, indexAccessorRoot, indexPoolBlock, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockUIURL, isBooleanExpression, isColumnDiscoveredId, isColumnDiscoveredKey, isColumnFilteredId, isColumnFilteredKey, isColumnOverriddenKey, isDataInfo, isDataInfoEntries, isEmptySpecDelta, isEnrichmentRef, isFilteredPColumn, isFolderURL, isGlobalPObjectId, isGlobalPObjectKey, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isLocalPObjectId, isLocalPObjectKey, isMainService, isNodeService, isPColumn, isPColumnSpec, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPObject, isPObjectId, isPObjectKey, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isValueNA, isWasmService, legacyColumnSelectorsToPredicate, listColumnNames, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, matchingModeToConstraints, mergeSpecOverrides, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnDiscoveredId, parseColumnId, parseColumnIdSafely, parseColumnOverriddenId, parseHttpAuth, parseJson, parseJsonSafely, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, reconstructSpecFromId, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnDiscoveredId, stringifyColumnFilteredId, stringifyColumnId, stringifyColumnOverriddenId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapOverrides, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };