@platforma-sdk/model 1.80.13 → 1.81.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 (118) hide show
  1. package/dist/columns/column.cjs +9 -6
  2. package/dist/columns/column.cjs.map +1 -1
  3. package/dist/columns/column.d.ts +5 -5
  4. package/dist/columns/column.d.ts.map +1 -1
  5. package/dist/columns/column.js +10 -7
  6. package/dist/columns/column.js.map +1 -1
  7. package/dist/columns/column_providers/index.cjs.map +1 -1
  8. package/dist/columns/column_providers/index.d.ts.map +1 -1
  9. package/dist/columns/column_providers/index.js.map +1 -1
  10. package/dist/columns/column_providers/providers.cjs +5 -5
  11. package/dist/columns/column_providers/providers.cjs.map +1 -1
  12. package/dist/columns/column_providers/providers.d.ts +8 -8
  13. package/dist/columns/column_providers/providers.d.ts.map +1 -1
  14. package/dist/columns/column_providers/providers.js +5 -5
  15. package/dist/columns/column_providers/providers.js.map +1 -1
  16. package/dist/columns/column_providers/types.d.ts +3 -3
  17. package/dist/columns/column_providers/types.d.ts.map +1 -1
  18. package/dist/columns/column_recipes/column_discovered_recipe.cjs +1 -1
  19. package/dist/columns/column_recipes/column_discovered_recipe.cjs.map +1 -1
  20. package/dist/columns/column_recipes/column_discovered_recipe.d.ts +1 -1
  21. package/dist/columns/column_recipes/column_discovered_recipe.js +1 -1
  22. package/dist/columns/column_recipes/column_discovered_recipe.js.map +1 -1
  23. package/dist/columns/column_recipes/column_overrided_recipe.cjs +47 -2
  24. package/dist/columns/column_recipes/column_overrided_recipe.cjs.map +1 -1
  25. package/dist/columns/column_recipes/column_overrided_recipe.d.ts +30 -3
  26. package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -1
  27. package/dist/columns/column_recipes/column_overrided_recipe.js +47 -3
  28. package/dist/columns/column_recipes/column_overrided_recipe.js.map +1 -1
  29. package/dist/columns/column_recipes/index.cjs +4 -14
  30. package/dist/columns/column_recipes/index.cjs.map +1 -1
  31. package/dist/columns/column_recipes/index.d.ts +3 -10
  32. package/dist/columns/column_recipes/index.d.ts.map +1 -1
  33. package/dist/columns/column_recipes/index.js +5 -14
  34. package/dist/columns/column_recipes/index.js.map +1 -1
  35. package/dist/columns/{column_lazy.cjs → data_column.cjs} +57 -54
  36. package/dist/columns/data_column.cjs.map +1 -0
  37. package/dist/columns/data_column.d.ts +152 -0
  38. package/dist/columns/data_column.d.ts.map +1 -0
  39. package/dist/columns/{column_lazy.js → data_column.js} +55 -52
  40. package/dist/columns/data_column.js.map +1 -0
  41. package/dist/columns/derive_axis_values_labels.cjs +4 -4
  42. package/dist/columns/derive_axis_values_labels.cjs.map +1 -1
  43. package/dist/columns/derive_axis_values_labels.d.ts +2 -2
  44. package/dist/columns/derive_axis_values_labels.js +4 -4
  45. package/dist/columns/derive_axis_values_labels.js.map +1 -1
  46. package/dist/columns/index.cjs +9 -9
  47. package/dist/columns/index.d.ts +5 -5
  48. package/dist/columns/index.js +5 -5
  49. package/dist/columns/{expand_by_partition.cjs → split_by_axes.cjs} +13 -8
  50. package/dist/columns/split_by_axes.cjs.map +1 -0
  51. package/dist/columns/{expand_by_partition.d.ts → split_by_axes.d.ts} +18 -8
  52. package/dist/columns/split_by_axes.d.ts.map +1 -0
  53. package/dist/columns/{expand_by_partition.js → split_by_axes.js} +14 -9
  54. package/dist/columns/split_by_axes.js.map +1 -0
  55. package/dist/columns/utils.cjs +50 -43
  56. package/dist/columns/utils.cjs.map +1 -1
  57. package/dist/columns/utils.d.ts +44 -19
  58. package/dist/columns/utils.d.ts.map +1 -1
  59. package/dist/columns/utils.js +50 -44
  60. package/dist/columns/utils.js.map +1 -1
  61. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +3 -3
  62. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
  63. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +3 -3
  64. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
  65. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +2 -2
  66. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
  67. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +2 -2
  68. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
  69. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +1 -1
  70. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
  71. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +2 -2
  72. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
  73. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +1 -1
  74. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
  75. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +2 -2
  76. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
  77. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs +1 -1
  78. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs.map +1 -1
  79. package/dist/components/PlDatasetSelector/enrichment_discovery.js +2 -2
  80. package/dist/components/PlDatasetSelector/enrichment_discovery.js.map +1 -1
  81. package/dist/index.cjs +9 -9
  82. package/dist/index.d.ts +5 -5
  83. package/dist/index.js +5 -5
  84. package/dist/package.cjs +1 -1
  85. package/dist/package.js +1 -1
  86. package/package.json +9 -9
  87. package/src/columns/__test_helpers__/collection_driver.ts +6 -6
  88. package/src/columns/__test_helpers__/stub_registry.ts +4 -6
  89. package/src/columns/column.ts +20 -9
  90. package/src/columns/column_providers/index.ts +9 -3
  91. package/src/columns/column_providers/providers.ts +16 -15
  92. package/src/columns/column_providers/types.ts +3 -3
  93. package/src/columns/column_recipes/column_discovered_recipe.ts +1 -1
  94. package/src/columns/column_recipes/column_overrided_recipe.ts +58 -4
  95. package/src/columns/column_recipes/column_recipes.test.ts +2 -2
  96. package/src/columns/column_recipes/index.ts +5 -20
  97. package/src/columns/{column_lazy.test.ts → data_column.test.ts} +19 -19
  98. package/src/columns/{column_lazy.ts → data_column.ts} +105 -67
  99. package/src/columns/derive_axis_values_labels.ts +4 -4
  100. package/src/columns/index.ts +2 -2
  101. package/src/columns/predicates.test.ts +124 -0
  102. package/src/columns/{expand_by_partition.test.ts → split_by_axes.test.ts} +29 -21
  103. package/src/columns/{expand_by_partition.ts → split_by_axes.ts} +22 -9
  104. package/src/columns/utils.ts +53 -48
  105. package/src/components/PlDataTable/columnResolver.test.ts +3 -3
  106. package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +3 -3
  107. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +2 -2
  108. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +2 -2
  109. package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +2 -2
  110. package/src/components/PlDataTable/createPlDataTable/utils.test.ts +3 -3
  111. package/src/components/PlDatasetSelector/enrichment_discovery.ts +2 -2
  112. package/dist/columns/column_lazy.cjs.map +0 -1
  113. package/dist/columns/column_lazy.d.ts +0 -137
  114. package/dist/columns/column_lazy.d.ts.map +0 -1
  115. package/dist/columns/column_lazy.js.map +0 -1
  116. package/dist/columns/expand_by_partition.cjs.map +0 -1
  117. package/dist/columns/expand_by_partition.d.ts.map +0 -1
  118. package/dist/columns/expand_by_partition.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -46,19 +46,19 @@ import { convertFilterSpecsToExpressionSpecs } from "./annotations/converter.js"
46
46
  import { AnnotationScriptUi, AnnotationStepUi, AnyForm, FilterUi, FilterUiOfType, FilterUiType, FormField, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, compileAnnotationScript, compileFilter, compileFilters, unreachable } from "./components/PlAnnotations/filters_ui.js";
47
47
  import { DatasetOption, DatasetSelection, createDatasetSelection, isDatasetSelection } from "./components/PlDatasetSelector/dataset_selection.js";
48
48
  import { ColumnFieldStatus, ColumnRecipeId, ColumnResolutionStatus, SpecQuery } from "./columns/column_recipes/types.js";
49
- import { ColumnAbsentError, ColumnLazy, ColumnLazyData, ColumnLazyId, ColumnLazyImpl, isColumnLazy } from "./columns/column_lazy.js";
49
+ import { ColumnAbsentError, ColumnData, DataColumn, DataColumnId, DataColumnImpl, DataColumnRecipe, DataColumnSource, isDataColumn } from "./columns/data_column.js";
50
50
  import { ColumnDiscoveredRecipe } from "./columns/column_recipes/column_discovered_recipe.js";
51
51
  import { ColumnFilteredRecipe } from "./columns/column_recipes/column_filtered_recipe.js";
52
52
  import { Column, ColumnSource, isColumn } from "./columns/column.js";
53
53
  import { ColumnOverriddenRecipe } from "./columns/column_recipes/column_overrided_recipe.js";
54
- import { ColumnRecipe, isColumnRecipe } from "./columns/column_recipes/index.js";
54
+ import { ColumnRecipe } from "./columns/column_recipes/index.js";
55
55
  import { AccessorColumnsProvider, AccessorColumnsProviderImpl, ArrayColumnsProvider, ColumnsProvider, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl } from "./columns/column_providers/providers.js";
56
56
  import { ColumnsSource } from "./columns/column_providers/types.js";
57
57
  import { _ctxProvidersCache, getCtxProviders, isColumnProvider, toColumnProvider } from "./columns/column_providers/index.js";
58
- import { ExpandByPartitionOpts, SplitAxis, expandByPartition } from "./columns/expand_by_partition.js";
58
+ import { SplitAxis, SplitByAxesOpts, splitByAxes } from "./columns/split_by_axes.js";
59
59
  import { ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, ColumnsSourceShorthand, isColumnsCollection } from "./columns/columns_collection.js";
60
60
  import { deriveAxisValuesLabels } from "./columns/derive_axis_values_labels.js";
61
- import { ColumnOption, collectLinkerColumns, collectLinkerIds, deriveColumnOptions, getLeafColumnData, hasColumnData, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
61
+ import { ColumnOption, collectLinkerColumns, collectLinkerIds, deriveColumnOptions, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
62
62
  import { FilterMatchOptions, FindFilterColumnsOptions, buildRefMap, filterMatchesToOptions, findFilterColumns } from "./components/PlDatasetSelector/filter_discovery.js";
63
63
  import { BuildDatasetOptions, buildDatasetOptions } from "./components/PlDatasetSelector/build_dataset_options.js";
64
64
  import { PTableParamsV2, PlDataTableAxisMeta, PlDataTableColumnMeta, PlDataTableColumnsMeta, PlDataTableFilterMeta, PlDataTableFilterSpecLeaf, PlDataTableFilters, PlDataTableFiltersWithMeta, PlDataTableGridStateCore, PlDataTableModel, PlDataTableSheet, PlDataTableSheetState, PlDataTableStateV2CacheEntry, PlDataTableStateV2Normalized, PlTableColumnIdJson } from "./components/PlDataTable/typesV8.js";
@@ -82,4 +82,4 @@ import { getService } from "./services/get_services.js";
82
82
  import { getEnvironmentValue } from "./env_value.js";
83
83
  export * from "@milaboratories/pl-model-common";
84
84
  export * from "@milaboratories/pl-error-like";
85
- export { AccessorColumnsProvider, AccessorColumnsProviderImpl, type AccessorHandle, ActAnd, ActExtractArchiveAndGetURL, ActFlatten, ActGetBlobContent, ActGetBlobContentAsJson, ActGetBlobContentAsString, ActGetDownloadedBlobContent, ActGetField, ActGetFromCtx, ActGetImmediate, ActGetLastLogs, ActGetLogHandle, ActGetOnDemandBlobContent, ActGetProgressLog, ActGetProgressLogWithInfo, ActGetResourceField, ActGetResourceValueAsJson, ActImportProgress, ActIsEmpty, ActIsolate, ActMakeArray, ActMakeObject, ActMapArrayValues, ActMapRecordValues, ActMapResourceFields, ActNot, ActOr, ActionResult, AndFilter, AnnotationFilter, AnnotationMode, AnnotationScript, AnnotationScript2, AnnotationScriptUi, AnnotationSpec, AnnotationSpecUi, AnnotationStep, AnnotationStepUi, AnyForm, Args, ArrayColumnsProvider, type AxesVault, AxisLabelProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockApiV1, BlockApiV2, BlockConfig, BlockConfigV3, BlockConfigV4, BlockDefaultModelServices, BlockDefaultUiServices, BlockModel, BlockModelInfo, BlockModelV3, BlockRenderCtx, BlockServiceFlags, BlockStatePatch, type BlockStorage, BlockStorageFacade, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, type BlockStorageSchemaVersion, BuildDatasetOptions, CancelSubscription, Cfg, CfgAnd, CfgBlobContent, CfgBlobContentAsJson, CfgBlobContentAsString, CfgDownloadedBlobContent, CfgExtractArchiveAndGetURL, CfgFlatten, CfgGetFromCtx, CfgGetJsonField, CfgGetResourceField, CfgImmediate, CfgImportProgress, CfgIsEmpty, CfgIsolate, CfgLastLogs, CfgLogHandle, CfgMakeArray, CfgMakeObject, CfgMapArrayValues, CfgMapRecordValues, CfgMapResourceFields, CfgNot, CfgOnDemandBlobContent, CfgOr, CfgProgressLog, CfgProgressLogWithInfo, CfgRenderingMode, CfgResourceValueAsJson, type Checked, Column, ColumnAbsentError, ColumnDiscoveredRecipe, type ColumnFieldStatus, ColumnFilteredRecipe, ColumnLazy, ColumnLazyData, ColumnLazyId, ColumnLazyImpl, ColumnOption, type ColumnOrderRule, ColumnOverriddenRecipe, ColumnProvider, ColumnRecipe, type ColumnRecipeId, type ColumnResolutionStatus, ColumnSource, type ColumnVisibilityRule, ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, type ColumnsDisplayOptions, ColumnsProvider, type ColumnsSelectorConfig, ColumnsSource, ColumnsSourceShorthand, CommonFieldTraverseOps, CommonTraversalOps, ConfAction, ConfigRenderLambda, ConfigRenderLambdaFlags, ConfigResult, CurrentSdkInfo, DataModel, DataModelBuilder, DatasetOption, DatasetSelection, DeriveHref, DeriveLabelsFormatters, DeriveLabelsOptions, Entry, ExpandByPartitionOpts, ExpressionSpec, ExtractAction, ExtractFunctionHandleReturn, type ExtractFutureRefType, FieldTraversalStep, FieldType, FilterMatchOptions, type FilterSpec, type FilterSpecLeaf, type FilterSpecNode, type FilterSpecOfType, type FilterSpecType, FilterSpecUi, FilterUi, FilterUiOfType, FilterUiType, FindFilterColumnsOptions, FormField, FutureRef, GetFieldStep, InferArgsType, InferBlockState, InferBlockStatePatch, InferDataType, InferFactoryData, InferFactoryModelServices, InferFactoryOutputs, InferFactoryParams, InferFactoryUiServices, InferHrefType, InferOutputType, InferOutputsFromConfigs, InferOutputsFromLambdas, InferOutputsType, InferPluginData, InferPluginHandle, InferPluginNames, InferPluginUiEntries, InferRenderFunctionReturn, InferUiState, InferVarTypeSafe, IsNA, It, internal_d_exports as JsRenderInternal, type DeriveLabelsOptions as LabelDerivationOps, LinkerStep, Log10, MainAccessorName, MainOutputs, type MigrateBlockStorageConfig, type MigrationFailure, type MigrationResult, type MigrationSuccess, type ModelServices, type MutateStoragePayload, NotFilter, NumericalComparisonFilter, OptionalPlResourceEntry, OrFilter, OutputError, PColumnCollection, type PColumnDataUniversal, PColumnEntryUniversal, PColumnEntryWithLabel, PColumnKeyList, PColumnPredicate, PColumnResourceMapData, PColumnResourceMapEntry, PColumnUniversal, PColumnWithLabel, PFrameImpl, POCExtractAction, PTableKey, type PTableParamsV2, type ParamsInput, Patch, PatternFilter, PatternPredicate, PatternPredicateContainSubsequence, PatternPredicateEquals, type PlDataTableAxisMeta, type PlDataTableColumnMeta, type PlDataTableColumnsMeta, type PlDataTableFilterMeta, type PlDataTableFilterSpecLeaf, type PlDataTableFilters, type PlDataTableFiltersWithMeta, type PlDataTableGridStateCore, type PlDataTableModel, type PlDataTableSheet, type PlDataTableSheetState, type PlDataTableStateV2, type PlDataTableStateV2CacheEntry, type PlDataTableStateV2Normalized, PlMultiSequenceAlignmentColorSchemeOption, PlMultiSequenceAlignmentModel, PlMultiSequenceAlignmentSettings, PlMultiSequenceAlignmentWidget, PlResourceEntry, PlSelectionModel, type PlTableColumnIdJson, Platforma, PlatformaApiVersion, PlatformaExtended, PlatformaFactory, PlatformaSDKVersion, PlatformaV1, PlatformaV2, PlatformaV3, type PluginConfig, type PluginData, PluginDataModel, PluginDataModelBuilder, type PluginDataModelVersions, type PluginFactory, PluginFactoryLike, PluginHandle, PluginInstance, PluginModel, type PluginName, type PluginOutputs, type PluginParams, type PluginPublicOutputs, type PluginRecord, type PluginRegistry, PluginRenderCtx, PrimitiveOrConfig, PrimitiveToCfg, type PublicOutputFieldDef, QueryColumnId, QueryColumnIdAxis, QueryColumnIdColumn, RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, RenderCtx, RenderCtxBase, RenderCtxLegacy, RenderFunction, RenderFunctionLegacy, ResolveCfgType, ResolveModelServices, ResolveUiServices, ResourceTraversalOps, ResourceType, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, SdkInfo, ServiceProxy, SimplifiedPColumnSpec, SimplifiedUniversalPColumnEntry, SortedCumulativeSum, type Entry as SpecExtractorResult, type SpecQuery, SplitAxis, StagingAccessorName, StagingOutputs, StdCtx, StdCtxArgsOnly, TooltipEntry, type Trace, type TraceEntry, TransformedColumn, TreeNodeAccessor, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, TypedConfig, TypedConfigOrConfigLambda, TypedConfigOrString, type UiServices, UiState, Unionize, UniversalColumnOption, UnwrapFutureRef, ValueRank, type VersionedData, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, type createPlDataTableOptionsV3, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, expandByPartition, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLeafColumnData, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnLazy, isColumnOptional, isColumnProvider, isColumnRecipe, isColumnsCollection, isConfigLambda, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
85
+ export { AccessorColumnsProvider, AccessorColumnsProviderImpl, type AccessorHandle, ActAnd, ActExtractArchiveAndGetURL, ActFlatten, ActGetBlobContent, ActGetBlobContentAsJson, ActGetBlobContentAsString, ActGetDownloadedBlobContent, ActGetField, ActGetFromCtx, ActGetImmediate, ActGetLastLogs, ActGetLogHandle, ActGetOnDemandBlobContent, ActGetProgressLog, ActGetProgressLogWithInfo, ActGetResourceField, ActGetResourceValueAsJson, ActImportProgress, ActIsEmpty, ActIsolate, ActMakeArray, ActMakeObject, ActMapArrayValues, ActMapRecordValues, ActMapResourceFields, ActNot, ActOr, ActionResult, AndFilter, AnnotationFilter, AnnotationMode, AnnotationScript, AnnotationScript2, AnnotationScriptUi, AnnotationSpec, AnnotationSpecUi, AnnotationStep, AnnotationStepUi, AnyForm, Args, ArrayColumnsProvider, type AxesVault, AxisLabelProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockApiV1, BlockApiV2, BlockConfig, BlockConfigV3, BlockConfigV4, BlockDefaultModelServices, BlockDefaultUiServices, BlockModel, BlockModelInfo, BlockModelV3, BlockRenderCtx, BlockServiceFlags, BlockStatePatch, type BlockStorage, BlockStorageFacade, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, type BlockStorageSchemaVersion, BuildDatasetOptions, CancelSubscription, Cfg, CfgAnd, CfgBlobContent, CfgBlobContentAsJson, CfgBlobContentAsString, CfgDownloadedBlobContent, CfgExtractArchiveAndGetURL, CfgFlatten, CfgGetFromCtx, CfgGetJsonField, CfgGetResourceField, CfgImmediate, CfgImportProgress, CfgIsEmpty, CfgIsolate, CfgLastLogs, CfgLogHandle, CfgMakeArray, CfgMakeObject, CfgMapArrayValues, CfgMapRecordValues, CfgMapResourceFields, CfgNot, CfgOnDemandBlobContent, CfgOr, CfgProgressLog, CfgProgressLogWithInfo, CfgRenderingMode, CfgResourceValueAsJson, type Checked, Column, ColumnAbsentError, ColumnData, ColumnDiscoveredRecipe, type ColumnFieldStatus, ColumnFilteredRecipe, ColumnOption, type ColumnOrderRule, ColumnOverriddenRecipe, ColumnProvider, ColumnRecipe, type ColumnRecipeId, type ColumnResolutionStatus, ColumnSource, type ColumnVisibilityRule, ColumnsCollection, ColumnsCollectionDeps, ColumnsCollectionImpl, type ColumnsDisplayOptions, ColumnsProvider, type ColumnsSelectorConfig, ColumnsSource, ColumnsSourceShorthand, CommonFieldTraverseOps, CommonTraversalOps, ConfAction, ConfigRenderLambda, ConfigRenderLambdaFlags, ConfigResult, CurrentSdkInfo, DataColumn, DataColumnId, DataColumnImpl, DataColumnRecipe, DataColumnSource, DataModel, DataModelBuilder, DatasetOption, DatasetSelection, DeriveHref, DeriveLabelsFormatters, DeriveLabelsOptions, Entry, ExpressionSpec, ExtractAction, ExtractFunctionHandleReturn, type ExtractFutureRefType, FieldTraversalStep, FieldType, FilterMatchOptions, type FilterSpec, type FilterSpecLeaf, type FilterSpecNode, type FilterSpecOfType, type FilterSpecType, FilterSpecUi, FilterUi, FilterUiOfType, FilterUiType, FindFilterColumnsOptions, FormField, FutureRef, GetFieldStep, InferArgsType, InferBlockState, InferBlockStatePatch, InferDataType, InferFactoryData, InferFactoryModelServices, InferFactoryOutputs, InferFactoryParams, InferFactoryUiServices, InferHrefType, InferOutputType, InferOutputsFromConfigs, InferOutputsFromLambdas, InferOutputsType, InferPluginData, InferPluginHandle, InferPluginNames, InferPluginUiEntries, InferRenderFunctionReturn, InferUiState, InferVarTypeSafe, IsNA, It, internal_d_exports as JsRenderInternal, type DeriveLabelsOptions as LabelDerivationOps, LinkerStep, Log10, MainAccessorName, MainOutputs, type MigrateBlockStorageConfig, type MigrationFailure, type MigrationResult, type MigrationSuccess, type ModelServices, type MutateStoragePayload, NotFilter, NumericalComparisonFilter, OptionalPlResourceEntry, OrFilter, OutputError, PColumnCollection, type PColumnDataUniversal, PColumnEntryUniversal, PColumnEntryWithLabel, PColumnKeyList, PColumnPredicate, PColumnResourceMapData, PColumnResourceMapEntry, PColumnUniversal, PColumnWithLabel, PFrameImpl, POCExtractAction, PTableKey, type PTableParamsV2, type ParamsInput, Patch, PatternFilter, PatternPredicate, PatternPredicateContainSubsequence, PatternPredicateEquals, type PlDataTableAxisMeta, type PlDataTableColumnMeta, type PlDataTableColumnsMeta, type PlDataTableFilterMeta, type PlDataTableFilterSpecLeaf, type PlDataTableFilters, type PlDataTableFiltersWithMeta, type PlDataTableGridStateCore, type PlDataTableModel, type PlDataTableSheet, type PlDataTableSheetState, type PlDataTableStateV2, type PlDataTableStateV2CacheEntry, type PlDataTableStateV2Normalized, PlMultiSequenceAlignmentColorSchemeOption, PlMultiSequenceAlignmentModel, PlMultiSequenceAlignmentSettings, PlMultiSequenceAlignmentWidget, PlResourceEntry, PlSelectionModel, type PlTableColumnIdJson, Platforma, PlatformaApiVersion, PlatformaExtended, PlatformaFactory, PlatformaSDKVersion, PlatformaV1, PlatformaV2, PlatformaV3, type PluginConfig, type PluginData, PluginDataModel, PluginDataModelBuilder, type PluginDataModelVersions, type PluginFactory, PluginFactoryLike, PluginHandle, PluginInstance, PluginModel, type PluginName, type PluginOutputs, type PluginParams, type PluginPublicOutputs, type PluginRecord, type PluginRegistry, PluginRenderCtx, PrimitiveOrConfig, PrimitiveToCfg, type PublicOutputFieldDef, QueryColumnId, QueryColumnIdAxis, QueryColumnIdColumn, RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, RenderCtx, RenderCtxBase, RenderCtxLegacy, RenderFunction, RenderFunctionLegacy, ResolveCfgType, ResolveModelServices, ResolveUiServices, ResourceTraversalOps, ResourceType, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, SdkInfo, ServiceProxy, SimplifiedPColumnSpec, SimplifiedUniversalPColumnEntry, SortedCumulativeSum, type Entry as SpecExtractorResult, type SpecQuery, SplitAxis, SplitByAxesOpts, StagingAccessorName, StagingOutputs, StdCtx, StdCtxArgsOnly, TooltipEntry, type Trace, type TraceEntry, TransformedColumn, TreeNodeAccessor, TypeField, TypeFieldRecord, TypeForm, TypeToLiteral, TypedConfig, TypedConfigOrConfigLambda, TypedConfigOrString, type UiServices, UiState, Unionize, UniversalColumnOption, UnwrapFutureRef, ValueRank, type VersionedData, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, type createPlDataTableOptionsV3, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnOptional, isColumnProvider, isColumnsCollection, isConfigLambda, isDataColumn, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, splitByAxes, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
package/dist/index.js CHANGED
@@ -30,15 +30,15 @@ import { enrichCompatible, getAvailableWithLinkersAxes } from "./pframe_utils/ax
30
30
  import { Column, isColumn } from "./columns/column.js";
31
31
  import { ColumnDiscoveredRecipe } from "./columns/column_recipes/column_discovered_recipe.js";
32
32
  import { ColumnFilteredRecipe } from "./columns/column_recipes/column_filtered_recipe.js";
33
- import { ColumnRecipe, isColumnRecipe } from "./columns/column_recipes/index.js";
33
+ import { ColumnRecipe } from "./columns/column_recipes/index.js";
34
34
  import { ColumnOverriddenRecipe } from "./columns/column_recipes/column_overrided_recipe.js";
35
- import { ColumnAbsentError, ColumnLazy, ColumnLazyImpl, isColumnLazy } from "./columns/column_lazy.js";
35
+ import { ColumnAbsentError, DataColumn, DataColumnImpl, isDataColumn } from "./columns/data_column.js";
36
36
  import { AccessorColumnsProvider, AccessorColumnsProviderImpl, ArrayColumnsProvider, ColumnsProvider, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl } from "./columns/column_providers/providers.js";
37
37
  import { _ctxProvidersCache, getCtxProviders, isColumnProvider, toColumnProvider } from "./columns/column_providers/index.js";
38
38
  import { ColumnsCollection, ColumnsCollectionImpl, isColumnsCollection } from "./columns/columns_collection.js";
39
- import { collectLinkerColumns, collectLinkerIds, deriveColumnOptions, getLeafColumnData, hasColumnData, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
40
- import { expandByPartition } from "./columns/expand_by_partition.js";
39
+ import { collectLinkerColumns, collectLinkerIds, deriveColumnOptions, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, isLeafColumn, queriesQualifications } from "./columns/utils.js";
41
40
  import { deriveAxisValuesLabels } from "./columns/derive_axis_values_labels.js";
41
+ import { splitByAxes } from "./columns/split_by_axes.js";
42
42
  import "./columns/index.js";
43
43
  import { getAllRelatedColumns, getRelatedColumns } from "./pframe_utils/columns.js";
44
44
  import { createPFrameForGraphs, isHiddenFromGraphColumn, isHiddenFromUIColumn } from "./components/PFrameForGraphs.js";
@@ -71,4 +71,4 @@ import { getAxisUniqueValues, getColumnOrAxisValueLabelsId, getColumnSpecById, g
71
71
  import { getEnvironmentValue } from "./env_value.js";
72
72
  export * from "@milaboratories/pl-model-common";
73
73
  export * from "@milaboratories/pl-error-like";
74
- export { AccessorColumnsProvider, AccessorColumnsProviderImpl, Args, ArrayColumnsProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockModel, BlockModelV3, BlockRenderCtx, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, Column, ColumnAbsentError, ColumnDiscoveredRecipe, ColumnFilteredRecipe, ColumnLazy, ColumnLazyImpl, ColumnOverriddenRecipe, ColumnRecipe, ColumnsCollection, ColumnsCollectionImpl, ColumnsProvider, CurrentSdkInfo, DataModel, DataModelBuilder, FutureRef, It, internal_exports as JsRenderInternal, MainAccessorName, MainOutputs, OutputError, PColumnCollection, PFrameImpl, PlatformaSDKVersion, PluginDataModel, PluginDataModelBuilder, PluginInstance, PluginModel, PluginRenderCtx, RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, RenderCtxBase, RenderCtxLegacy, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, StagingAccessorName, StagingOutputs, TreeNodeAccessor, UiState, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, expandByPartition, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLeafColumnData, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnLazy, isColumnOptional, isColumnProvider, isColumnRecipe, isColumnsCollection, isConfigLambda, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
74
+ export { AccessorColumnsProvider, AccessorColumnsProviderImpl, Args, ArrayColumnsProvider, BLOCK_SERVICE_FLAGS, BLOCK_STORAGE_FACADE_VERSION, BlockModel, BlockModelV3, BlockRenderCtx, BlockStorageFacadeCallbacks, BlockStorageFacadeHandles, Column, ColumnAbsentError, ColumnDiscoveredRecipe, ColumnFilteredRecipe, ColumnOverriddenRecipe, ColumnRecipe, ColumnsCollection, ColumnsCollectionImpl, ColumnsProvider, CurrentSdkInfo, DataColumn, DataColumnImpl, DataModel, DataModelBuilder, FutureRef, It, internal_exports as JsRenderInternal, MainAccessorName, MainOutputs, OutputError, PColumnCollection, PFrameImpl, PlatformaSDKVersion, PluginDataModel, PluginDataModelBuilder, PluginInstance, PluginModel, PluginRenderCtx, RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, RenderCtxBase, RenderCtxLegacy, ResultPool, ResultPoolColumnsProvider, ResultPoolColumnsProviderImpl, StagingAccessorName, StagingOutputs, TreeNodeAccessor, UiState, _ctxProvidersCache, allPColumnsReady, and, blockServiceNames, buildDatasetOptions, buildRefMap, buildServices, collectLinkerColumns, collectLinkerIds, compileAnnotationScript, compileFilter, compileFilters, convertFilterSpecsToExpressionSpecs, convertFilterUiToExpressionImpl, convertFilterUiToExpressions, convertOrParsePColumnData, createBlockStorage, createDatasetSelection, createDefaultPTableParams, createPFrameForGraphs, createPlDataTable, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, createPlDataTableV3, createPlSelectionModel, createRowSelectionColumn, createServiceProxy, deriveAxisValuesLabels, deriveColumnOptions, deriveDataFromStorage, deriveDistinctLabels, deriveDistinctTooltips, deriveLabels, discoverTableColumns as discoverTableColumnSnaphots, distillFilterSpec, downgradeCfgOrLambda, enrichCompatible, extractArchiveAndGetURL, extractConfig, filterDataInfoEntries, filterMatchesToOptions, filterSpecToSpecQueryExpr, finalizePColumnData, findFilterColumns, flatten, fromPlOption, fromPlRef, getAllRelatedColumns, getAvailableWithLinkersAxes, getAxisUniqueValues, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getColumnOrAxisValueLabelsId, getColumnSpecById, getColumnUniqueValues, getColumnsFull, getCtxProviders, getDownloadedBlobContent, getEffectiveVisibility, getEnvironmentValue, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLogHandle, getNumberOfRows, getOnDemandBlobContent, getOrderPriority, getPartitionKeysList, getPlatformaApiVersion, getPluginData, getProgressLog, getProgressLogWithInfo, getRawPlatformaInstance, getRelatedColumns, getRequestColumnsFromSelectedSources, getResourceField, getResourceValueAsJson, getService, getSingleColumnData, getStorageData, getUniquePartitionKeys, getUniqueSourceValuesWithLabels, hasColumnData, hasReachableData, hasSingleDataColumn, hitQualifications, ifDef, isBlockStorage, isColumn, isColumnHidden, isColumnOptional, isColumnProvider, isColumnsCollection, isConfigLambda, isDataColumn, isDatasetSelection, isEmpty, isHiddenFromGraphColumn, isHiddenFromUIColumn, isLeafColumn, isPColumnReady, isPluginOutputKey, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, migrateBlockStorage, normalizeBlockStorage, not, or, parsePColumnData, parseResourceMap, pluginOutputKey, pluginOutputPrefix, queriesQualifications, readOutput, registerFacadeCallbacks, splitByAxes, toColumnProvider, unreachable, updateStorageData, upgradePlDataTableStateV2, wrapOutputs };
package/dist/package.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.80.13";
2
+ var version = "1.81.0";
3
3
  //#endregion
4
4
  Object.defineProperty(exports, "version", {
5
5
  enumerable: true,
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.80.13";
2
+ var version = "1.81.0";
3
3
  //#endregion
4
4
  export { version };
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/model",
3
- "version": "1.80.13",
3
+ "version": "1.81.0",
4
4
  "description": "Platforma.bio SDK / Block Model",
5
5
  "files": [
6
6
  "./dist/**/*",
@@ -32,10 +32,10 @@
32
32
  "utility-types": "^3.11.0",
33
33
  "zod": "~3.25.76",
34
34
  "@milaboratories/helpers": "1.14.5",
35
+ "@milaboratories/pl-model-middle-layer": "1.31.0",
36
+ "@milaboratories/pl-model-common": "1.47.3",
35
37
  "@milaboratories/pl-error-like": "1.12.10",
36
- "@milaboratories/pl-model-middle-layer": "1.30.15",
37
- "@milaboratories/ptabler-expression-js": "1.2.37",
38
- "@milaboratories/pl-model-common": "1.47.3"
38
+ "@milaboratories/ptabler-expression-js": "1.2.37"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@vitest/coverage-istanbul": "^4.1.3",
@@ -43,11 +43,11 @@
43
43
  "typescript": "~5.9.3",
44
44
  "vitest": "^4.1.3",
45
45
  "@milaboratories/build-configs": "2.0.0",
46
- "@milaboratories/columns-collection-driver": "0.2.3",
47
- "@milaboratories/pf-driver": "1.8.5",
48
- "@milaboratories/pf-spec-driver": "1.4.24",
49
- "@milaboratories/ts-configs": "1.3.1",
50
- "@milaboratories/ts-builder": "1.6.1"
46
+ "@milaboratories/pf-driver": "1.9.0",
47
+ "@milaboratories/pf-spec-driver": "1.5.0",
48
+ "@milaboratories/ts-builder": "1.6.2",
49
+ "@milaboratories/ts-configs": "1.4.0",
50
+ "@milaboratories/columns-collection-driver": "0.2.3"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "ts-builder build --target node",
@@ -10,7 +10,7 @@
10
10
  * Calling {@link TestCollectionDriverHandle.installAmbientCtx} additionally
11
11
  * installs a minimal `globalThis.cfgRenderCtx` AND plants a stub
12
12
  * `ColumnEntriesProvider` into the ctx-providers cache so registered specs
13
- * are reachable via `ColumnLazy.fromId` (and therefore via
13
+ * are reachable via `DataColumnRecipe.fromId` (and therefore via
14
14
  * `ColumnsCollection.getColumns()`).
15
15
  */
16
16
  import type {
@@ -29,7 +29,7 @@ import type { GlobalCfgRenderCtx } from "../../render/internal";
29
29
  import { TreeNodeAccessor } from "../../render/accessor";
30
30
  import { _ctxProvidersCache } from "../column_providers";
31
31
  import type { ColumnsProvider } from "../column_providers";
32
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
32
+ import { DataColumn, type DataColumnRecipe } from "../data_column";
33
33
 
34
34
  export interface TestCollectionDriverHandle {
35
35
  readonly driver: ColumnsCollectionDriverModel;
@@ -38,7 +38,7 @@ export interface TestCollectionDriverHandle {
38
38
  /**
39
39
  * Install a minimal `globalThis.cfgRenderCtx` so `getService("columnsCollection")`
40
40
  * resolves to this driver and registered columns are reachable via
41
- * `ColumnLazy.fromId`. Call inside `beforeEach` if the code under test uses
41
+ * `DataColumnRecipe.fromId`. Call inside `beforeEach` if the code under test uses
42
42
  * the ambient ctx instead of an explicit `driver` option.
43
43
  */
44
44
  installAmbientCtx(): void;
@@ -148,7 +148,7 @@ export function createTestCollectionDriver(): TestCollectionDriverHandle {
148
148
  * Construct a {@link ColumnEntriesProvider} + {@link ColumnsProvider} backed
149
149
  * by an `(id → spec)` map. Each entry carries a fake {@link TreeNodeAccessor}
150
150
  * whose only contract is the surface `readSpec` / `readData` /
151
- * `readDataStatus` (in `p_column_lazy.ts`) actually call:
151
+ * `readDataStatus` (in `data_column.ts`) actually call:
152
152
  * - `traverse({field: `${name}.spec`, ignoreError: true})` →
153
153
  * stub-accessor whose `getDataAsJson()` returns the spec.
154
154
  * - `traverse({field: `${name}.data`})` → `undefined` (data is not
@@ -163,9 +163,9 @@ function buildStubProvider(
163
163
  for (const [id, spec] of specMap) {
164
164
  entries.set(id, { accessor: stubAccessorFor(id, spec), name: id, id });
165
165
  }
166
- const columns: ColumnLazy[] = [];
166
+ const columns: DataColumnRecipe<PObjectId>[] = [];
167
167
  for (const [id, spec] of specMap) {
168
- columns.push(ColumnLazyImpl.fromColumn({ id, spec, data: undefined as never }));
168
+ columns.push(DataColumn.fromColumn({ id, spec, data: undefined as never }));
169
169
  }
170
170
  return {
171
171
  getPObjectEntries: () => entries,
@@ -3,7 +3,7 @@
3
3
  * `ColumnRegistry.resolve(id)` returns a `LeafEntry` whose spec accessor
4
4
  * reports `hasData() === true` and `getDataAsJson()` returns the supplied
5
5
  * spec. Sufficient for code that goes through
6
- * `getCtxProviders` / `readLeafSpecAccessor` (e.g. `ColumnLazy.fromId`,
6
+ * `getCtxProviders` / `readLeafSpecAccessor` (e.g. `DataColumnRecipe.fromId`,
7
7
  * `ColumnDiscoveredRecipe.fromKey`).
8
8
  *
9
9
  * Two leaf shapes:
@@ -28,7 +28,7 @@ import type { GlobalCfgRenderCtx } from "../../render/internal";
28
28
  import type { TreeNodeAccessor } from "../../render/accessor";
29
29
  import { _ctxProvidersCache } from "../column_providers";
30
30
  import type { ColumnsProvider } from "../column_providers";
31
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
31
+ import { DataColumn, type DataColumnRecipe } from "../data_column";
32
32
 
33
33
  /** Fine-grained per-leaf stub config. Defaults match the shorthand form. */
34
34
  export type StubLeafConfig = {
@@ -64,15 +64,13 @@ function buildStubProvider(
64
64
  const cfg = normalizeLeafInput(raw);
65
65
  acc.entries.set(id, { accessor: stubAccessorFor(id, cfg), name: id, id });
66
66
  if (cfg.spec !== undefined && cfg.specHasData) {
67
- acc.columns.push(
68
- ColumnLazyImpl.fromColumn({ id, spec: cfg.spec, data: undefined as never }),
69
- );
67
+ acc.columns.push(DataColumn.fromColumn({ id, spec: cfg.spec, data: undefined as never }));
70
68
  }
71
69
  return acc;
72
70
  },
73
71
  {
74
72
  entries: new Map<PObjectId, LeafEntry<TreeNodeAccessor>>(),
75
- columns: [] as ColumnLazy[],
73
+ columns: [] as DataColumnRecipe<PObjectId>[],
76
74
  },
77
75
  );
78
76
  return {
@@ -7,23 +7,29 @@ import {
7
7
  } from "@milaboratories/pl-model-common";
8
8
  import type { GlobalCfgRenderCtx } from "../render/internal";
9
9
  import type { TreeNodeAccessor } from "../render";
10
- import { ColumnLazy, ColumnLazyImpl, type ColumnLazyData } from "./column_lazy";
11
- import { ColumnRecipe, ColumnRecipeId, isColumnRecipe } from "./column_recipes";
10
+ import { DataColumn, DataColumnRecipe, DataColumnImpl, type ColumnData } from "./data_column";
11
+ import {
12
+ ColumnDiscoveredRecipe,
13
+ ColumnFilteredRecipe,
14
+ ColumnOverriddenRecipe,
15
+ ColumnRecipe,
16
+ ColumnRecipeId,
17
+ } from "./column_recipes";
12
18
 
13
19
  export type ColumnSource =
14
20
  | PObjectId
15
21
  | ColumnUniversalId
16
22
  | PlRef
17
23
  | LeafEntry<TreeNodeAccessor>
18
- | PColumn<ColumnLazyData>
19
- | ColumnLazyImpl;
24
+ | PColumn<ColumnData>
25
+ | DataColumnRecipe<PObjectId>;
20
26
 
21
27
  /**
22
28
  * Unified entry point — routes between the two top-level dispatchers:
23
29
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
24
- * - object source (`PlRef` / `LeafEntry` / `PColumn` / `ColumnLazy`) → {@link ColumnLazy}
30
+ * - object source (`PlRef` / `LeafEntry` / `PColumn` / `DataColumnRecipe`) → {@link DataColumnRecipe}
25
31
  *
26
- * `ColumnLazy` is itself a `ColumnRecipe<PObjectId>`, so the return type is
32
+ * `DataColumnRecipe` is itself a `ColumnRecipe<PObjectId>`, so the return type is
27
33
  * the common `ColumnRecipe`.
28
34
  */
29
35
  export function Column(
@@ -31,7 +37,7 @@ export function Column(
31
37
  opts?: { ctx?: GlobalCfgRenderCtx },
32
38
  ): undefined | ColumnRecipe {
33
39
  if (typeof source === "string") return ColumnRecipe(source, opts);
34
- return ColumnLazy(source, opts);
40
+ return DataColumn(source, opts);
35
41
  }
36
42
 
37
43
  export type Column<ID extends ColumnRecipeId = ColumnRecipeId> = ColumnRecipe<ID>;
@@ -39,8 +45,13 @@ export type Column<ID extends ColumnRecipeId = ColumnRecipeId> = ColumnRecipe<ID
39
45
  /**
40
46
  * Type-guard for the `Column` type — currently aliased to `ColumnRecipe`, so
41
47
  * this is equivalent to {@link isColumnRecipe}. Kept as a separate export to
42
- * mirror the `Column` / `ColumnRecipe` / `ColumnLazy` factory triple.
48
+ * mirror the `Column` / `ColumnRecipe` / `DataColumnRecipe` factory triple.
43
49
  */
44
50
  export function isColumn(value: unknown): value is Column {
45
- return isColumnRecipe(value);
51
+ return (
52
+ value instanceof DataColumnImpl ||
53
+ value instanceof ColumnFilteredRecipe ||
54
+ value instanceof ColumnDiscoveredRecipe ||
55
+ value instanceof ColumnOverriddenRecipe
56
+ );
46
57
  }
@@ -1,9 +1,13 @@
1
- import { PColumn, type ColumnEntriesProvider } from "@milaboratories/pl-model-common";
1
+ import {
2
+ PColumn,
3
+ type ColumnEntriesProvider,
4
+ type PObjectId,
5
+ } from "@milaboratories/pl-model-common";
2
6
  import type { GlobalCfgRenderCtx, PColumnDataUniversal } from "../../render/internal";
3
7
  import { getCfgRenderCtx } from "../../internal";
4
8
  import { MainAccessorName, StagingAccessorName } from "../../render/internal";
5
9
  import { TreeNodeAccessor } from "../../render/accessor";
6
- import { ColumnLazy } from "../column_lazy";
10
+ import { DataColumnRecipe } from "../data_column";
7
11
  import type { ColumnsSource } from "./types";
8
12
  import { ArrayColumnsProvider, ColumnsProvider } from "./providers";
9
13
 
@@ -69,7 +73,9 @@ export function toColumnProvider(source: ColumnsSource): ColumnsProvider {
69
73
  }
70
74
 
71
75
  function isColumnArray(source: unknown): source is {
72
- readonly columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | ColumnLazy>;
76
+ readonly columns: ReadonlyArray<
77
+ PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe<PObjectId>
78
+ >;
73
79
  readonly isFinal: boolean;
74
80
  } {
75
81
  if (typeof source !== "object" || source === null) return false;
@@ -2,10 +2,11 @@ import {
2
2
  AccessorEntriesProvider,
3
3
  ResultPoolEntriesProvider,
4
4
  type PColumn,
5
+ type PObjectId,
5
6
  type UpstreamBlockCtx,
6
7
  } from "@milaboratories/pl-model-common";
7
8
  import { AccessorHandle, PColumnDataUniversal, TreeNodeAccessor } from "../../render";
8
- import { ColumnLazy, ColumnLazyImpl } from "../column_lazy";
9
+ import { DataColumn, DataColumnRecipe } from "../data_column";
9
10
  import { getCfgRenderCtx } from "../../internal";
10
11
  import { isNil } from "es-toolkit";
11
12
  import { LRUCache } from "lru-cache";
@@ -20,7 +21,7 @@ import { LRUCache } from "lru-cache";
20
21
  */
21
22
  export interface ColumnsProvider {
22
23
  /** Returns all currently known PColumn columns as lazy views. */
23
- getColumns(): ColumnLazy[];
24
+ getColumns(): DataColumnRecipe<PObjectId>[];
24
25
  /** Whether the provider has finished enumerating all its columns. */
25
26
  isFinal(): boolean;
26
27
  }
@@ -92,16 +93,16 @@ export function ResultPoolColumnsProvider(
92
93
  * id-index source — `ColumnRegistry` does not consume it.
93
94
  */
94
95
  export class ArrayColumnsProvider implements ColumnsProvider {
95
- private readonly columns: ColumnLazy[];
96
+ private readonly columns: DataColumnRecipe<PObjectId>[];
96
97
 
97
98
  constructor(
98
- columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | ColumnLazy>,
99
+ columns: ReadonlyArray<PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe<PObjectId>>,
99
100
  private readonly _isFinal: boolean,
100
101
  ) {
101
- this.columns = columns.map((c) => ColumnLazyImpl.fromColumn(c));
102
+ this.columns = columns.map((c) => DataColumn.fromColumn(c));
102
103
  }
103
104
 
104
- getColumns(): ColumnLazy[] {
105
+ getColumns(): DataColumnRecipe<PObjectId>[] {
105
106
  return this.columns;
106
107
  }
107
108
 
@@ -113,24 +114,24 @@ export class ArrayColumnsProvider implements ColumnsProvider {
113
114
  /**
114
115
  * Sandbox-specific provider over a {@link TreeNodeAccessor} root. Uses the
115
116
  * accessor's own `resolvePath` as the canonical root path for id construction,
116
- * and adds `getColumns()` returning {@link ColumnLazy}s on top of the generic
117
+ * and adds `getColumns()` returning {@link DataColumnRecipe<PObjectId>}s on top of the generic
117
118
  * entries index.
118
119
  */
119
120
  export class AccessorColumnsProviderImpl
120
121
  extends AccessorEntriesProvider<TreeNodeAccessor>
121
122
  implements ColumnsProvider
122
123
  {
123
- private cachedColumns?: ColumnLazy[];
124
+ private cachedColumns?: DataColumnRecipe<PObjectId>[];
124
125
 
125
126
  constructor(root: TreeNodeAccessor) {
126
127
  super(root, root.resolvePath);
127
128
  }
128
129
 
129
- getColumns(): ColumnLazy[] {
130
+ getColumns(): DataColumnRecipe<PObjectId>[] {
130
131
  if (this.cachedColumns !== undefined) return this.cachedColumns;
131
132
  return (this.cachedColumns = Array.from(this.entries.values())
132
- .map((e) => ColumnLazyImpl.fromAccessor(e))
133
- .filter((v): v is ColumnLazy => !isNil(v)));
133
+ .map((e) => DataColumn.fromAccessor(e))
134
+ .filter((v): v is DataColumnRecipe<PObjectId> => !isNil(v)));
134
135
  }
135
136
  }
136
137
 
@@ -146,7 +147,7 @@ export class ResultPoolColumnsProviderImpl
146
147
  extends ResultPoolEntriesProvider<TreeNodeAccessor>
147
148
  implements ColumnsProvider
148
149
  {
149
- private cachedColumns?: ColumnLazy[];
150
+ private cachedColumns?: DataColumnRecipe<PObjectId>[];
150
151
 
151
152
  constructor(
152
153
  rawPool: ReadonlyArray<
@@ -170,11 +171,11 @@ export class ResultPoolColumnsProviderImpl
170
171
  super(blocks);
171
172
  }
172
173
 
173
- getColumns(): ColumnLazy[] {
174
+ getColumns(): DataColumnRecipe<PObjectId>[] {
174
175
  if (this.cachedColumns !== undefined) return this.cachedColumns;
175
176
  return (this.cachedColumns = Array.from(this.getPObjectEntries().values())
176
- .map((e) => ColumnLazyImpl.fromAccessor(e))
177
- .filter((v): v is ColumnLazy => !isNil(v)));
177
+ .map((e) => DataColumn.fromAccessor(e))
178
+ .filter((v): v is DataColumnRecipe<PObjectId> => !isNil(v)));
178
179
  }
179
180
  }
180
181
 
@@ -1,7 +1,7 @@
1
1
  import type { PColumn } from "@milaboratories/pl-model-common";
2
2
  import { TreeNodeAccessor } from "../../render";
3
3
  import type { PColumnDataUniversal } from "../../render/internal";
4
- import type { ColumnLazy } from "../column_lazy";
4
+ import type { DataColumnRecipe } from "../data_column";
5
5
  import type { ColumnRecipe } from "../column_recipes";
6
6
  import type { ColumnsProvider } from "./providers";
7
7
 
@@ -10,7 +10,7 @@ import type { ColumnsProvider } from "./providers";
10
10
  * Includes TreeNodeAccessor, ColumnsProvider, and arrays of columns.
11
11
  *
12
12
  * The array form accepts plain {@link PColumn}s (materialized snapshots),
13
- * {@link ColumnLazy} leaves, or any {@link ColumnRecipe} — builders only
13
+ * {@link DataColumnRecipe} leaves, or any {@link ColumnRecipe} — builders only
14
14
  * need each entry's `id` for serialization.
15
15
  */
16
16
  export type ColumnsSource =
@@ -18,7 +18,7 @@ export type ColumnsSource =
18
18
  | TreeNodeAccessor
19
19
  | {
20
20
  readonly columns: ReadonlyArray<
21
- PColumn<undefined | PColumnDataUniversal> | ColumnLazy | ColumnRecipe
21
+ PColumn<undefined | PColumnDataUniversal> | DataColumnRecipe | ColumnRecipe
22
22
  >;
23
23
  readonly isFinal: boolean;
24
24
  };
@@ -37,7 +37,7 @@ import { throwError } from "@milaboratories/helpers";
37
37
  export class ColumnDiscoveredRecipe implements ColumnRecipe<ColumnDiscoveredId> {
38
38
  /**
39
39
  * Validate the key + resolve every referenced column via
40
- * {@link ColumnLazy.fromId} (which itself checks the leaf accessor reports
40
+ * {@link DataColumnRecipe.fromId} (which itself checks the leaf accessor reports
41
41
  * `hasData()`). Returns `undefined` if the key is malformed or any
42
42
  * referenced column is not yet spec-resolvable.
43
43
  *
@@ -11,6 +11,7 @@ import {
11
11
  type SpecQuery,
12
12
  } from "@milaboratories/pl-model-common";
13
13
  import type { GlobalCfgRenderCtx } from "../../render/internal";
14
+ import { type DataColumnRecipe, type ColumnData, isDataColumn } from "../data_column";
14
15
  import type { ColumnFieldStatus, ColumnResolutionStatus } from "./types";
15
16
  import { ColumnRecipe } from "./index";
16
17
  import { Column } from "../column";
@@ -33,7 +34,7 @@ type NonOverriddenColumn = Column<Exclude<ColumnUniversalId, ColumnOverriddenId>
33
34
  * This invariant matches the one enforced inside `unwrapOverrides` from
34
35
  * pl-model-common: it explicitly throws on a nested override-wrap.
35
36
  */
36
- export class ColumnOverriddenRecipe implements Column<ColumnOverriddenId> {
37
+ export class ColumnOverriddenRecipe implements ColumnRecipe<ColumnOverriddenId> {
37
38
  /**
38
39
  * Wrap any recipe with overrides. If `inner` is already a
39
40
  * {@link ColumnOverriddenRecipe}, merges `overrides` into the existing ones
@@ -42,12 +43,41 @@ export class ColumnOverriddenRecipe implements Column<ColumnOverriddenId> {
42
43
  */
43
44
  static wrap(col: Column, overrides: SpecOverrides): ColumnOverriddenRecipe {
44
45
  if (col instanceof ColumnOverriddenRecipe) {
45
- return new ColumnOverriddenRecipe(col.inner, mergeSpecOverrides(col.overrides, overrides));
46
+ return ColumnOverriddenRecipe.build(col.inner, mergeSpecOverrides(col.overrides, overrides));
46
47
  }
47
48
  // `inner` is not an Overridden wrap (the `instanceof` branch above handles
48
49
  // that). Narrow the id union here so the constructor parameter stays
49
50
  // honest with `ColumnOverriddenKey.source`.
50
- return new ColumnOverriddenRecipe(col as NonOverriddenColumn, overrides);
51
+ return ColumnOverriddenRecipe.build(col as NonOverriddenColumn, overrides);
52
+ }
53
+
54
+ /**
55
+ * Pick the variant from the inner recipe: data-bearing inner →
56
+ * {@link DataColumnOverriddenRecipe}, otherwise the plain wrapper.
57
+ *
58
+ * The choice is **structural**, not a readiness check — it follows from
59
+ * which kind of recipe `inner` is, which in turn follows from the id alone
60
+ * (a bare `PObjectId` source is a leaf, anything else is not). So the same
61
+ * id always yields the same class, whether it was built via `withSpecs` or
62
+ * parsed from a string, and recipes stay value-objects that are equal iff
63
+ * their ids match.
64
+ *
65
+ * Re-deriving from `inner` on every build is also what keeps the merge path
66
+ * honest: `overridden.withSpecs(a).withSpecs(b)` cannot silently drop the
67
+ * data-bearing variant.
68
+ *
69
+ * Discriminated by method presence rather than `instanceof DataColumnImpl`
70
+ * to keep this module free of a runtime import cycle with `../data_column`.
71
+ * By the flat-merge invariant `inner` is never an Overridden, so the only
72
+ * recipe kind reaching here that carries `getData` is the leaf.
73
+ */
74
+ private static build(
75
+ inner: NonOverriddenColumn,
76
+ overrides: SpecOverrides,
77
+ ): ColumnOverriddenRecipe {
78
+ return isDataColumn(inner)
79
+ ? new DataColumnOverriddenRecipe(inner, overrides)
80
+ : new ColumnOverriddenRecipe(inner, overrides);
51
81
  }
52
82
 
53
83
  /**
@@ -67,7 +97,7 @@ export class ColumnOverriddenRecipe implements Column<ColumnOverriddenId> {
67
97
  private queryCache?: { readonly value: SpecQuery };
68
98
  private dataStatusCache?: { readonly value: ColumnFieldStatus };
69
99
 
70
- private constructor(
100
+ protected constructor(
71
101
  private readonly inner: NonOverriddenColumn,
72
102
  private readonly overrides: SpecOverrides,
73
103
  ) {
@@ -144,3 +174,27 @@ export class ColumnOverriddenRecipe implements Column<ColumnOverriddenId> {
144
174
  return ColumnOverriddenRecipe.wrap(this, overrides);
145
175
  }
146
176
  }
177
+
178
+ /**
179
+ * The variant produced when the wrapped recipe is itself data-bearing.
180
+ *
181
+ * Overrides are a pure spec patch — they never reshape the data — so the inner
182
+ * column's data stays consistent with this recipe's spec and is passed
183
+ * straight through. Which variant you get is decided once, at construction:
184
+ * see {@link build}.
185
+ *
186
+ * Not something callers name. Narrow with `hasReachableData(recipe)`, which
187
+ * yields the {@link DataColumnRecipe} interface.
188
+ */
189
+ export class DataColumnOverriddenRecipe
190
+ extends ColumnOverriddenRecipe
191
+ implements DataColumnRecipe<ColumnOverriddenId>
192
+ {
193
+ /**
194
+ * Safe by construction: {@link build} only picks this class when the inner
195
+ * recipe exposes `getData`.
196
+ */
197
+ getData(): ColumnData {
198
+ return (this.getInner() as DataColumnRecipe).getData();
199
+ }
200
+ }
@@ -24,7 +24,7 @@ import { ColumnDiscoveredRecipe } from "./column_discovered_recipe";
24
24
  import { ColumnOverriddenRecipe } from "./column_overrided_recipe";
25
25
  import { ColumnFilteredRecipe } from "./column_filtered_recipe";
26
26
  import { ColumnRecipe } from "./index";
27
- import { ColumnAbsentError } from "../column_lazy";
27
+ import { ColumnAbsentError } from "../data_column";
28
28
  import type { ColumnFieldStatus } from "./types";
29
29
  import { installStubRegistry } from "../__test_helpers__/stub_registry";
30
30
  import { throwError } from "@milaboratories/helpers";
@@ -581,7 +581,7 @@ describe("Wrapper getStatusByKey delegates to source", () => {
581
581
  });
582
582
 
583
583
  describe("ColumnRecipe.getStatus (top-level dispatcher)", () => {
584
- test("routes bare PObjectId to ColumnLazyImpl.getStatusById", () => {
584
+ test("routes bare PObjectId to DataColumnImpl.getStatusById", () => {
585
585
  setupCtx({ [baseLeaf]: stubSpec() });
586
586
  expect(ColumnRecipe.getStatus(baseLeaf)).toBe("present");
587
587
  });