@milaboratories/pl-model-common 1.29.0 → 1.30.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 (96) hide show
  1. package/dist/bmodel/block_config.d.ts +1 -0
  2. package/dist/bmodel/code.d.ts +1 -0
  3. package/dist/driver_kit.d.ts +1 -1
  4. package/dist/drivers/index.d.ts +6 -6
  5. package/dist/drivers/index.js +1 -1
  6. package/dist/drivers/pframe/driver.cjs.map +1 -1
  7. package/dist/drivers/pframe/driver.d.ts +13 -5
  8. package/dist/drivers/pframe/driver.js.map +1 -1
  9. package/dist/drivers/pframe/index.d.ts +5 -5
  10. package/dist/drivers/pframe/index.js +1 -1
  11. package/dist/drivers/pframe/pframe.d.ts +2 -2
  12. package/dist/drivers/pframe/query/query_common.d.ts +2 -2
  13. package/dist/drivers/pframe/query/query_data.d.ts +1 -1
  14. package/dist/drivers/pframe/query/query_spec.d.ts +2 -2
  15. package/dist/drivers/pframe/spec/ids.d.ts +2 -2
  16. package/dist/drivers/pframe/spec/index.d.ts +1 -1
  17. package/dist/drivers/pframe/spec/index.js +1 -1
  18. package/dist/drivers/pframe/spec/selectors.d.ts +1 -1
  19. package/dist/drivers/pframe/spec/spec.cjs +14 -1
  20. package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
  21. package/dist/drivers/pframe/spec/spec.d.ts +7 -1
  22. package/dist/drivers/pframe/spec/spec.js +14 -2
  23. package/dist/drivers/pframe/spec/spec.js.map +1 -1
  24. package/dist/drivers/pframe/spec_driver.d.ts +36 -6
  25. package/dist/drivers/pframe/table_calculate.d.ts +2 -2
  26. package/dist/drivers/pframe/table_common.d.ts +1 -1
  27. package/dist/drivers/pframe/unique_values.d.ts +2 -2
  28. package/dist/errors.cjs +48 -0
  29. package/dist/errors.cjs.map +1 -1
  30. package/dist/errors.d.ts +25 -1
  31. package/dist/errors.js +37 -1
  32. package/dist/errors.js.map +1 -1
  33. package/dist/flags/block_flags.cjs.map +1 -1
  34. package/dist/flags/block_flags.d.ts +4 -1
  35. package/dist/flags/block_flags.js.map +1 -1
  36. package/dist/flags/flag_utils.d.ts +1 -1
  37. package/dist/flags/index.d.ts +3 -0
  38. package/dist/index.cjs +38 -0
  39. package/dist/index.d.ts +30 -21
  40. package/dist/index.js +11 -3
  41. package/dist/pool/query.d.ts +1 -1
  42. package/dist/pool_entry.cjs +30 -0
  43. package/dist/pool_entry.cjs.map +1 -0
  44. package/dist/pool_entry.d.ts +30 -0
  45. package/dist/pool_entry.js +29 -0
  46. package/dist/pool_entry.js.map +1 -0
  47. package/dist/services/index.cjs +6 -0
  48. package/dist/services/index.d.ts +6 -0
  49. package/dist/services/index.js +6 -0
  50. package/dist/services/service_capabilities.cjs +51 -0
  51. package/dist/services/service_capabilities.cjs.map +1 -0
  52. package/dist/services/service_capabilities.d.ts +33 -0
  53. package/dist/services/service_capabilities.js +46 -0
  54. package/dist/services/service_capabilities.js.map +1 -0
  55. package/dist/services/service_declarations.cjs +17 -0
  56. package/dist/services/service_declarations.cjs.map +1 -0
  57. package/dist/services/service_declarations.d.ts +16 -0
  58. package/dist/services/service_declarations.js +17 -0
  59. package/dist/services/service_declarations.js.map +1 -0
  60. package/dist/services/service_injector_factory.cjs +19 -0
  61. package/dist/services/service_injector_factory.cjs.map +1 -0
  62. package/dist/services/service_injector_factory.d.ts +8 -0
  63. package/dist/services/service_injector_factory.js +18 -0
  64. package/dist/services/service_injector_factory.js.map +1 -0
  65. package/dist/services/service_injectors.cjs +48 -0
  66. package/dist/services/service_injectors.cjs.map +1 -0
  67. package/dist/services/service_injectors.d.ts +23 -0
  68. package/dist/services/service_injectors.js +46 -0
  69. package/dist/services/service_injectors.js.map +1 -0
  70. package/dist/services/service_registry.cjs +52 -0
  71. package/dist/services/service_registry.cjs.map +1 -0
  72. package/dist/services/service_registry.d.ts +25 -0
  73. package/dist/services/service_registry.js +51 -0
  74. package/dist/services/service_registry.js.map +1 -0
  75. package/dist/services/service_types.cjs +30 -0
  76. package/dist/services/service_types.cjs.map +1 -0
  77. package/dist/services/service_types.d.ts +45 -0
  78. package/dist/services/service_types.js +28 -0
  79. package/dist/services/service_types.js.map +1 -0
  80. package/package.json +3 -3
  81. package/src/drivers/pframe/driver.ts +11 -1
  82. package/src/drivers/pframe/spec/spec.ts +16 -2
  83. package/src/drivers/pframe/spec_driver.ts +37 -5
  84. package/src/errors.ts +53 -0
  85. package/src/flags/block_flags.ts +5 -2
  86. package/src/index.ts +2 -0
  87. package/src/pool_entry.ts +42 -0
  88. package/src/services/index.ts +5 -0
  89. package/src/services/service_capabilities.test.ts +119 -0
  90. package/src/services/service_capabilities.ts +64 -0
  91. package/src/services/service_declarations.ts +25 -0
  92. package/src/services/service_injector_factory.ts +27 -0
  93. package/src/services/service_injectors.ts +79 -0
  94. package/src/services/service_registry.test.ts +69 -0
  95. package/src/services/service_registry.ts +94 -0
  96. package/src/services/service_types.ts +114 -0
package/dist/index.cjs CHANGED
@@ -35,6 +35,14 @@ const require_value_or_error = require('./value_or_error.cjs');
35
35
  const require_base64 = require('./base64.cjs');
36
36
  const require_httpAuth = require('./httpAuth.cjs');
37
37
  const require_resource_types = require('./resource_types.cjs');
38
+ const require_service_types = require('./services/service_types.cjs');
39
+ const require_service_registry = require('./services/service_registry.cjs');
40
+ const require_service_declarations = require('./services/service_declarations.cjs');
41
+ const require_service_capabilities = require('./services/service_capabilities.cjs');
42
+ const require_service_injector_factory = require('./services/service_injector_factory.cjs');
43
+ const require_service_injectors = require('./services/service_injectors.cjs');
44
+ require('./services/index.cjs');
45
+ const require_pool_entry = require('./pool_entry.cjs');
38
46
 
39
47
  exports.AbortError = require_errors.AbortError;
40
48
  exports.AllRequiresFeatureFlags = require_block_flags.AllRequiresFeatureFlags;
@@ -49,6 +57,7 @@ exports.Domain = require_spec.Domain;
49
57
  exports.DomainJson = require_spec.DomainJson;
50
58
  exports.IncompatibleFlagsError = require_flag_utils.IncompatibleFlagsError;
51
59
  exports.LinkerMap = require_linker_columns.LinkerMap;
60
+ exports.ModelServiceRegistry = require_service_registry.ModelServiceRegistry;
52
61
  exports.PAxisName = require_spec.PAxisName;
53
62
  exports.PColumnName = require_spec.PColumnName;
54
63
  exports.PFrameDriverError = require_errors.PFrameDriverError;
@@ -60,22 +69,36 @@ exports.PlId = require_plid.PlId;
60
69
  exports.PlIdBytes = require_plid.PlIdBytes;
61
70
  exports.PlIdLength = require_plid.PlIdLength;
62
71
  exports.PlRef = require_ref.PlRef;
72
+ exports.PoolEntryGuard = require_pool_entry.PoolEntryGuard;
63
73
  exports.RangeBytes = require_blob.RangeBytes;
64
74
  exports.ResourceTypeName = require_resource_types.ResourceTypeName;
65
75
  exports.ResourceTypePrefix = require_resource_types.ResourceTypePrefix;
66
76
  exports.RuntimeCapabilities = require_flag_utils.RuntimeCapabilities;
77
+ exports.SERVICE_CAPABILITY_FLAGS = require_service_capabilities.SERVICE_CAPABILITY_FLAGS;
78
+ exports.SERVICE_FEATURE_FLAGS = require_service_capabilities.SERVICE_FEATURE_FLAGS;
79
+ exports.SERVICE_METHOD_MAP = require_service_injectors.SERVICE_METHOD_MAP;
80
+ exports.ServiceAlreadyRegisteredError = require_errors.ServiceAlreadyRegisteredError;
81
+ exports.ServiceError = require_errors.ServiceError;
82
+ exports.ServiceInjectionError = require_errors.ServiceInjectionError;
83
+ exports.ServiceInvalidIdError = require_errors.ServiceInvalidIdError;
84
+ exports.ServiceMethodNotFoundError = require_errors.ServiceMethodNotFoundError;
85
+ exports.ServiceNotRegisteredError = require_errors.ServiceNotRegisteredError;
86
+ exports.Services = require_service_declarations.Services;
67
87
  exports.UiError = require_errors.UiError;
88
+ exports.UiServiceRegistry = require_service_registry.UiServiceRegistry;
68
89
  exports.ValueType = require_spec.ValueType;
69
90
  exports.assertNever = require_util.assertNever;
70
91
  exports.base64Decode = require_base64.base64Decode;
71
92
  exports.base64Encode = require_base64.base64Encode;
72
93
  exports.bigintReplacer = require_json.bigintReplacer;
94
+ exports.buildServiceInfo = require_service_injectors.buildServiceInfo;
73
95
  exports.canonicalizeAxisId = require_spec.canonicalizeAxisId;
74
96
  exports.canonicalizeAxisWithParents = require_spec.canonicalizeAxisWithParents;
75
97
  exports.canonicalizeJson = require_json.canonicalizeJson;
76
98
  exports.checkBlockFlag = require_flag_utils.checkBlockFlag;
77
99
  exports.collectSpecQueryColumns = require_utils.collectSpecQueryColumns;
78
100
  exports.createPlRef = require_ref.createPlRef;
101
+ exports.createUiServiceInjectors = require_service_injector_factory.createUiServiceInjectors;
79
102
  exports.dataInfoToEntries = require_data_info.dataInfoToEntries;
80
103
  exports.deriveNativeId = require_native_id.deriveNativeId;
81
104
  exports.deserializeError = require_errors.deserializeError;
@@ -98,6 +121,7 @@ exports.getColumnIdAndSpec = require_spec.getColumnIdAndSpec;
98
121
  exports.getDenormalizedAxesList = require_spec.getDenormalizedAxesList;
99
122
  exports.getFileNameFromHandle = require_ls.getFileNameFromHandle;
100
123
  exports.getFilePathFromHandle = require_ls.getFilePathFromHandle;
124
+ exports.getMethodNames = require_service_capabilities.getMethodNames;
101
125
  exports.getNormalizedAxesList = require_spec.getNormalizedAxesList;
102
126
  exports.getPColumnSpecId = require_spec.getPColumnSpecId;
103
127
  exports.getPTableColumnId = require_table_common.getPTableColumnId;
@@ -116,9 +140,11 @@ exports.isFilteredPColumn = require_filtered_column.isFilteredPColumn;
116
140
  exports.isFolderURL = require_urls.isFolderURL;
117
141
  exports.isImportFileHandleIndex = require_ls.isImportFileHandleIndex;
118
142
  exports.isImportFileHandleUpload = require_ls.isImportFileHandleUpload;
143
+ exports.isKnownServiceName = require_service_capabilities.isKnownServiceName;
119
144
  exports.isLabelColumn = require_spec.isLabelColumn;
120
145
  exports.isLinkerColumn = require_spec.isLinkerColumn;
121
146
  exports.isLiveLog = require_log.isLiveLog;
147
+ exports.isNodeService = require_service_types.isNodeService;
122
148
  exports.isPColumn = require_spec$1.isPColumn;
123
149
  exports.isPColumnResult = require_spec$1.isPColumnResult;
124
150
  exports.isPColumnSpec = require_spec$1.isPColumnSpec;
@@ -131,6 +157,12 @@ exports.isPTableNA = require_data_types.isPTableNA;
131
157
  exports.isPTableValueAxis = require_data_types.isPTableValueAxis;
132
158
  exports.isPartitionedDataInfoEntries = require_data_info.isPartitionedDataInfoEntries;
133
159
  exports.isPlRef = require_ref.isPlRef;
160
+ exports.isServiceAlreadyRegisteredError = require_errors.isServiceAlreadyRegisteredError;
161
+ exports.isServiceError = require_errors.isServiceError;
162
+ exports.isServiceInjectionError = require_errors.isServiceInjectionError;
163
+ exports.isServiceInvalidIdError = require_errors.isServiceInvalidIdError;
164
+ exports.isServiceMethodNotFoundError = require_errors.isServiceMethodNotFoundError;
165
+ exports.isServiceNotRegisteredError = require_errors.isServiceNotRegisteredError;
134
166
  exports.legacyColumnSelectorsToPredicate = require_selectors.legacyColumnSelectorsToPredicate;
135
167
  exports.mapDataInfo = require_data_info.mapDataInfo;
136
168
  exports.mapDataInfoEntries = require_data_info.mapDataInfoEntries;
@@ -160,10 +192,16 @@ exports.readDomainJsonOrThrow = require_spec.readDomainJsonOrThrow;
160
192
  exports.readMetadata = require_spec.readMetadata;
161
193
  exports.readMetadataJson = require_spec.readMetadataJson;
162
194
  exports.readMetadataJsonOrThrow = require_spec.readMetadataJsonOrThrow;
195
+ exports.registerServiceCapabilities = require_service_capabilities.registerServiceCapabilities;
163
196
  exports.resolveAnchors = require_anchored.resolveAnchors;
197
+ exports.resolveAnnotationParents = require_spec.resolveAnnotationParents;
198
+ exports.resolveRequiredServices = require_service_capabilities.resolveRequiredServices;
199
+ exports.resolveUiInjector = require_service_injectors.resolveUiInjector;
164
200
  exports.serializeError = require_errors.serializeError;
165
201
  exports.serializeHttpAuth = require_httpAuth.serializeHttpAuth;
166
202
  exports.serializeResult = require_errors.serializeResult;
203
+ exports.service = require_service_types.service;
204
+ exports.serviceFnKey = require_service_types.serviceFnKey;
167
205
  exports.sortJoinEntry = require_table_calculate.sortJoinEntry;
168
206
  exports.sortPTableDef = require_table_calculate.sortPTableDef;
169
207
  exports.sortSpecQuery = require_utils.sortSpecQuery;
package/dist/index.d.ts CHANGED
@@ -3,27 +3,15 @@ import { AnyFunction, BlockOutputsBase, ListOptionBase, OutputWithStatus } from
3
3
  import { BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, DefaultNavigationState, NavigationState } from "./navigation.js";
4
4
  import { CanonicalizedJson, JsonCompatible, JsonSerializable, StringifiedJson, bigintReplacer, canonicalizeJson, parseJson, stringifyJson } from "./json.js";
5
5
  import { BlockState, BlockStateV3 } from "./block_state.js";
6
- import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./flags/block_flags.js";
7
- import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./flags/type_utils.js";
8
- import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flags/flag_utils.js";
9
- import { BlockCodeWithInfo, Code } from "./bmodel/code.js";
10
- import { BlockRenderingMode } from "./bmodel/types.js";
11
- import { BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, extractCodeWithInfo } from "./bmodel/block_config.js";
12
- import { BlockConfigContainer } from "./bmodel/container.js";
13
- import { extractConfigGeneric } from "./bmodel/normalization.js";
14
- import "./bmodel/index.js";
15
6
  import { Branded } from "./branding.js";
7
+ import { Option, PlRef, Ref, createPlRef, isPlRef, plRefsEqual, withEnrichments } from "./ref.js";
8
+ import { ResultCollection, ResultPoolEntry } from "./pool/entry.js";
16
9
  import { BlobLike, FileLike } from "./drivers/interfaces.js";
17
10
  import { ArchiveFormat, BlobToURLDriver, BlockUIURL, FolderURL, FrontendDriver, isBlockUIURL, isFolderURL } from "./drivers/urls.js";
18
11
  import { BlobDriver, BlobHandleAndSize, ContentHandler, GetContentOptions, LocalBlobHandle, LocalBlobHandleAndSize, RangeBytes, RemoteBlobHandle, RemoteBlobHandleAndSize, newRangeBytesOpt, validateRangeBytes } from "./drivers/blob.js";
19
12
  import { ImportProgress, ImportStatus } from "./drivers/upload.js";
20
13
  import { AnyLogHandle, LiveLogHandle, LogsDriver, ProgressLogWithInfo, ReadyLogHandle, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, isLiveLog } from "./drivers/log.js";
21
- import { Option, PlRef, Ref, createPlRef, isPlRef, plRefsEqual, withEnrichments } from "./ref.js";
22
- import { ResultCollection, ResultPoolEntry } from "./pool/entry.js";
23
- import { PObject, PObjectId, PObjectSpec, ensurePColumn, extractAllColumns, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, mapPObjectData } from "./pool/spec.js";
24
- import { PSpecPredicate, executePSpecPredicate } from "./pool/query.js";
25
- import "./pool/index.js";
26
- import { Annotation, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnInfo, PColumnLazy, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, 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 } from "./drivers/pframe/spec/spec.js";
14
+ import { Annotation, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnInfo, PColumnLazy, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, 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";
27
15
  import { ColumnFilter } from "./drivers/pframe/column_filter.js";
28
16
  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";
29
17
  import { AAxisSelector, ADomain, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredPColumnId, AnchoredPColumnSelector, LegacyAxisSelector, PColumnSelector, SingleAxisSelector, isAnchoredPColumnId, legacyColumnSelectorsToPredicate, matchAxis, matchPColumn } from "./drivers/pframe/spec/selectors.js";
@@ -33,23 +21,44 @@ import { FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpe
33
21
  import { PTableAbsent, PTableNA, PTableShape, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, TableRange, ValueTypeSupported, isPTableAbsent, isPTableNA, isPTableValueAxis, pTableValue, pTableValueBranded } from "./drivers/pframe/data_types.js";
34
22
  import { FindColumnsRequest, FindColumnsResponse } from "./drivers/pframe/find_columns.js";
35
23
  import { PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, getPTableColumnId } from "./drivers/pframe/table_common.js";
24
+ import { PTable } from "./drivers/pframe/table.js";
36
25
  import { AnchoredIdDeriver, ResolveAnchorsOptions, resolveAnchors } from "./drivers/pframe/spec/anchored.js";
37
26
  import { NativePObjectId, deriveNativeId } from "./drivers/pframe/spec/native_id.js";
38
27
  import { SpecExprAxisRef, SpecExprColumnRef, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin } from "./drivers/pframe/query/query_spec.js";
39
28
  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";
40
29
  import { UniqueValuesRequest, UniqueValuesResponse } from "./drivers/pframe/unique_values.js";
41
- import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
42
- import { PTable } from "./drivers/pframe/table.js";
43
30
  import { DataExprAxisRef, DataExprColumnRef, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin } from "./drivers/pframe/query/query_data.js";
44
31
  import { collectSpecQueryColumns, isBooleanExpression, mapSpecQueryColumns, sortSpecQuery, traverseQuerySpec } from "./drivers/pframe/query/utils.js";
45
- import { PFrameDriver, PFrameHandle, PTableHandle } from "./drivers/pframe/driver.js";
46
32
  import { CompositeLinkerMap, LinkerMap } from "./drivers/pframe/linker_columns.js";
47
- import { AxisQualification, ColumnAxesWithQualifications, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, MatcherMap, MultiAxisSelector, MultiColumnSelector, PFrameSpecDriver, SpecFrameHandle, StringMatcher } from "./drivers/pframe/spec_driver.js";
33
+ import { PoolEntry, PoolEntryGuard } from "./pool_entry.js";
34
+ import { AxisQualification, ColumnAxesWithQualifications, DeleteColumnRequest, DeleteColumnResponse, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, EvaluateQueryResponse, MatcherMap, MultiAxisSelector, MultiColumnSelector, PFrameSpecDriver, SpecFrameHandle, StringMatcher } from "./drivers/pframe/spec_driver.js";
48
35
  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";
49
36
  import { ChunkedStreamReader, ChunkedStreamReaderOptions, ErrorHandlerStatus } from "./drivers/ChunkedStreamReader.js";
50
37
  import "./drivers/index.js";
38
+ import { PObject, PObjectId, PObjectSpec, ensurePColumn, extractAllColumns, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, mapPObjectData } from "./pool/spec.js";
39
+ import { PSpecPredicate, executePSpecPredicate } from "./pool/query.js";
40
+ import "./pool/index.js";
41
+ import { PFrame, PFrameDef } from "./drivers/pframe/pframe.js";
42
+ import { PFrameDriver, PFrameHandle, PFrameModelDriver, PTableHandle } from "./drivers/pframe/driver.js";
43
+ import { Services } from "./services/service_declarations.js";
44
+ import { InferServiceKind, InferServiceModel, InferServiceUi, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, isNodeService, service, serviceFnKey } from "./services/service_types.js";
45
+ import { ModelServiceRegistry, UiServiceRegistry } from "./services/service_registry.js";
46
+ import { ArrayTypeUnion, Assert, AssertKeysEqual, FilterKeysByPrefix, Is, IsSubtypeOf } from "./flags/type_utils.js";
47
+ import { IncompatibleFlagsError, RuntimeCapabilities, SupportedRequirement, checkBlockFlag, extractAllRequirements, extractAllSupports } from "./flags/flag_utils.js";
48
+ import { KnownServiceName, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./services/service_capabilities.js";
51
49
  import { DriverKit } from "./driver_kit.js";
52
- import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, ResultOrError, SerializedError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
50
+ import { createUiServiceInjectors } from "./services/service_injector_factory.js";
51
+ import { SERVICE_METHOD_MAP, UiServiceInjectorMap, buildServiceInfo, resolveUiInjector } from "./services/service_injectors.js";
52
+ import "./services/index.js";
53
+ import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags } from "./flags/block_flags.js";
54
+ import "./flags/index.js";
55
+ import { BlockCodeWithInfo, Code } from "./bmodel/code.js";
56
+ import { BlockRenderingMode } from "./bmodel/types.js";
57
+ import { BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, extractCodeWithInfo } from "./bmodel/block_config.js";
58
+ import { BlockConfigContainer } from "./bmodel/container.js";
59
+ import { extractConfigGeneric } from "./bmodel/normalization.js";
60
+ import "./bmodel/index.js";
61
+ import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, ResultOrError, SerializedError, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
53
62
  import { PlId, PlIdBytes, PlIdLength, digestPlId, plId, uniquePlId } from "./plid.js";
54
63
  import { ValueWithUTag, ValueWithUTagAndAuthor } from "./utag.js";
55
64
  import { ValueOrError, mapValueInVOE } from "./value_or_error.js";
@@ -57,4 +66,4 @@ import { Base64Compatible, Base64Encoded, base64Decode, base64Encode } from "./b
57
66
  import { assertNever, uniqueBy } from "./util.js";
58
67
  import { BasicHttpAuth, HttpAuth, parseHttpAuth, serializeHttpAuth } from "./httpAuth.js";
59
68
  import { ResourceTypeName, ResourceTypePrefix } from "./resource_types.js";
60
- export { AAxisSelector, ADomain, AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, 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, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, ColumnAxesWithQualifications, ColumnFilter, ColumnJoinEntry, ColumnValueType, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DefaultNavigationState, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, ErrorHandlerStatus, 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, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LogsDriver, LsDriver, LsEntry, MatcherMap, Metadata, MetadataJson, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnInfo, PColumnKey, PColumnLazy, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableAbsent, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, 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, ProgressLogWithInfo, RangeBytes, ReadyLogHandle, Ref, RemoteBlobHandle, RemoteBlobHandleAndSize, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SUniversalPColumnId, SerializedError, 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, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, UiError, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, assertNever, base64Decode, base64Encode, bigintReplacer, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isLabelColumn, isLinkerColumn, isLiveLog, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnchors, serializeError, serializeHttpAuth, serializeResult, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
69
+ export { AAxisSelector, ADomain, AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, 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, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, ColumnAxesWithQualifications, ColumnFilter, ColumnJoinEntry, ColumnValueType, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DiscoverColumnsConstraints, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, ErrorHandlerStatus, EvaluateQueryResponse, 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, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LogsDriver, LsDriver, LsEntry, MatcherMap, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnInfo, PColumnKey, PColumnLazy, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableAbsent, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, 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, ProgressLogWithInfo, 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, 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, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySymmetricJoin, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, UiError, UiServiceFactoryMap, UiServiceInjectorMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, createUiServiceInjectors, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isNodeService, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveRequiredServices, resolveUiInjector, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
package/dist/index.js CHANGED
@@ -8,9 +8,9 @@ import { isLiveLog } from "./drivers/log.js";
8
8
  import { assertNever, uniqueBy } from "./util.js";
9
9
  import { getFileNameFromHandle, getFilePathFromHandle, isImportFileHandleIndex, isImportFileHandleUpload } from "./drivers/ls.js";
10
10
  import { dataInfoToEntries, entriesToDataInfo, isDataInfo, isDataInfoEntries, isPartitionedDataInfoEntries, mapDataInfo, mapDataInfoEntries, visitDataInfo } from "./drivers/pframe/data_info.js";
11
- import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
11
+ import { AbortError, PFrameDriverError, PFrameError, PFrameSpecDriverError, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, UiError, deserializeError, deserializeResult, ensureError, hasAbortError, isAbortError, isAggregateError, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, serializeError, serializeResult, unwrapResult, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback } from "./errors.js";
12
12
  import { bigintReplacer, canonicalizeJson, parseJson, stringifyJson } from "./json.js";
13
- import { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, 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 } from "./drivers/pframe/spec/spec.js";
13
+ import { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, 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";
14
14
  import { PTableAbsent, PTableNA, isPTableAbsent, isPTableNA, isPTableValueAxis, pTableValue, pTableValueBranded } from "./drivers/pframe/data_types.js";
15
15
  import { collectSpecQueryColumns, isBooleanExpression, mapSpecQueryColumns, sortSpecQuery, traverseQuerySpec } from "./drivers/pframe/query/utils.js";
16
16
  import { mapJoinEntry, mapPTableDef, mapPTableDefV2, sortJoinEntry, sortPTableDef } from "./drivers/pframe/table_calculate.js";
@@ -34,5 +34,13 @@ import { mapValueInVOE } from "./value_or_error.js";
34
34
  import { base64Decode, base64Encode } from "./base64.js";
35
35
  import { parseHttpAuth, serializeHttpAuth } from "./httpAuth.js";
36
36
  import { ResourceTypeName, ResourceTypePrefix } from "./resource_types.js";
37
+ import { isNodeService, service, serviceFnKey } from "./services/service_types.js";
38
+ import { ModelServiceRegistry, UiServiceRegistry } from "./services/service_registry.js";
39
+ import { Services } from "./services/service_declarations.js";
40
+ import { SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./services/service_capabilities.js";
41
+ import { createUiServiceInjectors } from "./services/service_injector_factory.js";
42
+ import { SERVICE_METHOD_MAP, buildServiceInfo, resolveUiInjector } from "./services/service_injectors.js";
43
+ import "./services/index.js";
44
+ import { PoolEntryGuard } from "./pool_entry.js";
37
45
 
38
- export { AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, ChunkedStreamReader, Code, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, PAxisName, PColumnName, PFrameDriverError, PFrameError, PFrameSpecDriverError, PTableAbsent, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, RangeBytes, ResourceTypeName, ResourceTypePrefix, RuntimeCapabilities, UiError, ValueType, assertNever, base64Decode, base64Encode, bigintReplacer, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isLabelColumn, isLinkerColumn, isLiveLog, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnchors, serializeError, serializeHttpAuth, serializeResult, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
46
+ export { AbortError, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, ChunkedStreamReader, Code, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, ModelServiceRegistry, PAxisName, PColumnName, PFrameDriverError, PFrameError, PFrameSpecDriverError, PTableAbsent, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntryGuard, RangeBytes, ResourceTypeName, ResourceTypePrefix, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, Services, UiError, UiServiceRegistry, ValueType, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, createPlRef, createUiServiceInjectors, dataInfoToEntries, deriveNativeId, deserializeError, deserializeResult, digestPlId, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, isAbortError, isAggregateError, isAnchoredPColumnId, isAxisId, isBlockUIURL, isBooleanExpression, isDataInfo, isDataInfoEntries, isFilteredPColumn, isFolderURL, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isNodeService, isPColumn, isPColumnResult, isPColumnSpec, isPColumnSpecResult, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPTableAbsent, isPTableNA, isPTableValueAxis, isPartitionedDataInfoEntries, isPlRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, legacyColumnSelectorsToPredicate, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchPColumn, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnId, parseHttpAuth, parseJson, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveRequiredServices, resolveUiInjector, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
@@ -1,6 +1,6 @@
1
- import { PObjectSpec } from "./spec.js";
2
1
  import { AxisId } from "../drivers/pframe/spec/spec.js";
3
2
  import "../drivers/index.js";
3
+ import { PObjectSpec } from "./spec.js";
4
4
 
5
5
  //#region src/pool/query.d.ts
6
6
  type PSpecPredicate = {
@@ -0,0 +1,30 @@
1
+
2
+ //#region src/pool_entry.ts
3
+ /**
4
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
5
+ * unless `keep()` is called to transfer ownership to the caller.
6
+ */
7
+ var PoolEntryGuard = class {
8
+ kept = false;
9
+ constructor(entry) {
10
+ this.entry = entry;
11
+ }
12
+ get key() {
13
+ return this.entry.key;
14
+ }
15
+ get resource() {
16
+ return this.entry.resource;
17
+ }
18
+ /** Disarm the guard — caller takes ownership of the entry. */
19
+ keep() {
20
+ this.kept = true;
21
+ return this.entry;
22
+ }
23
+ [Symbol.dispose]() {
24
+ if (!this.kept) this.entry.unref();
25
+ }
26
+ };
27
+
28
+ //#endregion
29
+ exports.PoolEntryGuard = PoolEntryGuard;
30
+ //# sourceMappingURL=pool_entry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool_entry.cjs","names":[],"sources":["../src/pool_entry.ts"],"sourcesContent":["export interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {\n /** Resource key, calculated using provided `calculateParamsKey` function */\n readonly key: K;\n\n /** Resource itself created by `createNewResource` function */\n readonly resource: R;\n\n /**\n * Release the reference. Idempotent.\n * Same as `[Symbol.dispose]()` — provided as a named function\n * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).\n */\n readonly unref: () => void;\n}\n\n/**\n * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope\n * unless `keep()` is called to transfer ownership to the caller.\n */\nexport class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {\n private kept = false;\n\n constructor(readonly entry: PoolEntry<K, R>) {}\n\n get key(): K {\n return this.entry.key;\n }\n\n get resource(): R {\n return this.entry.resource;\n }\n\n /** Disarm the guard — caller takes ownership of the entry. */\n keep(): PoolEntry<K, R> {\n this.kept = true;\n return this.entry;\n }\n\n [Symbol.dispose](): void {\n if (!this.kept) this.entry.unref();\n }\n}\n"],"mappings":";;;;;;AAmBA,IAAa,iBAAb,MAAgG;CAC9F,AAAQ,OAAO;CAEf,YAAY,AAAS,OAAwB;EAAxB;;CAErB,IAAI,MAAS;AACX,SAAO,KAAK,MAAM;;CAGpB,IAAI,WAAc;AAChB,SAAO,KAAK,MAAM;;;CAIpB,OAAwB;AACtB,OAAK,OAAO;AACZ,SAAO,KAAK;;CAGd,CAAC,OAAO,WAAiB;AACvB,MAAI,CAAC,KAAK,KAAM,MAAK,MAAM,OAAO"}
@@ -0,0 +1,30 @@
1
+ //#region src/pool_entry.d.ts
2
+ interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {
3
+ /** Resource key, calculated using provided `calculateParamsKey` function */
4
+ readonly key: K;
5
+ /** Resource itself created by `createNewResource` function */
6
+ readonly resource: R;
7
+ /**
8
+ * Release the reference. Idempotent.
9
+ * Same as `[Symbol.dispose]()` — provided as a named function
10
+ * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).
11
+ */
12
+ readonly unref: () => void;
13
+ }
14
+ /**
15
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
16
+ * unless `keep()` is called to transfer ownership to the caller.
17
+ */
18
+ declare class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {
19
+ readonly entry: PoolEntry<K, R>;
20
+ private kept;
21
+ constructor(entry: PoolEntry<K, R>);
22
+ get key(): K;
23
+ get resource(): R;
24
+ /** Disarm the guard — caller takes ownership of the entry. */
25
+ keep(): PoolEntry<K, R>;
26
+ [Symbol.dispose](): void;
27
+ }
28
+ //#endregion
29
+ export { PoolEntry, PoolEntryGuard };
30
+ //# sourceMappingURL=pool_entry.d.ts.map
@@ -0,0 +1,29 @@
1
+ //#region src/pool_entry.ts
2
+ /**
3
+ * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope
4
+ * unless `keep()` is called to transfer ownership to the caller.
5
+ */
6
+ var PoolEntryGuard = class {
7
+ kept = false;
8
+ constructor(entry) {
9
+ this.entry = entry;
10
+ }
11
+ get key() {
12
+ return this.entry.key;
13
+ }
14
+ get resource() {
15
+ return this.entry.resource;
16
+ }
17
+ /** Disarm the guard — caller takes ownership of the entry. */
18
+ keep() {
19
+ this.kept = true;
20
+ return this.entry;
21
+ }
22
+ [Symbol.dispose]() {
23
+ if (!this.kept) this.entry.unref();
24
+ }
25
+ };
26
+
27
+ //#endregion
28
+ export { PoolEntryGuard };
29
+ //# sourceMappingURL=pool_entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool_entry.js","names":[],"sources":["../src/pool_entry.ts"],"sourcesContent":["export interface PoolEntry<K extends string = string, R extends {} = {}> extends Disposable {\n /** Resource key, calculated using provided `calculateParamsKey` function */\n readonly key: K;\n\n /** Resource itself created by `createNewResource` function */\n readonly resource: R;\n\n /**\n * Release the reference. Idempotent.\n * Same as `[Symbol.dispose]()` — provided as a named function\n * for use in callbacks (e.g. `addOnDestroy(entry.unref)`).\n */\n readonly unref: () => void;\n}\n\n/**\n * Wraps a PoolEntry for use with `using`. Auto-calls `unref()` at end of scope\n * unless `keep()` is called to transfer ownership to the caller.\n */\nexport class PoolEntryGuard<K extends string = string, R extends {} = {}> implements Disposable {\n private kept = false;\n\n constructor(readonly entry: PoolEntry<K, R>) {}\n\n get key(): K {\n return this.entry.key;\n }\n\n get resource(): R {\n return this.entry.resource;\n }\n\n /** Disarm the guard — caller takes ownership of the entry. */\n keep(): PoolEntry<K, R> {\n this.kept = true;\n return this.entry;\n }\n\n [Symbol.dispose](): void {\n if (!this.kept) this.entry.unref();\n }\n}\n"],"mappings":";;;;;AAmBA,IAAa,iBAAb,MAAgG;CAC9F,AAAQ,OAAO;CAEf,YAAY,AAAS,OAAwB;EAAxB;;CAErB,IAAI,MAAS;AACX,SAAO,KAAK,MAAM;;CAGpB,IAAI,WAAc;AAChB,SAAO,KAAK,MAAM;;;CAIpB,OAAwB;AACtB,OAAK,OAAO;AACZ,SAAO,KAAK;;CAGd,CAAC,OAAO,WAAiB;AACvB,MAAI,CAAC,KAAK,KAAM,MAAK,MAAM,OAAO"}
@@ -0,0 +1,6 @@
1
+ const require_service_types = require('./service_types.cjs');
2
+ const require_service_registry = require('./service_registry.cjs');
3
+ const require_service_declarations = require('./service_declarations.cjs');
4
+ const require_service_capabilities = require('./service_capabilities.cjs');
5
+ const require_service_injector_factory = require('./service_injector_factory.cjs');
6
+ const require_service_injectors = require('./service_injectors.cjs');
@@ -0,0 +1,6 @@
1
+ import { Services } from "./service_declarations.js";
2
+ import { InferServiceKind, InferServiceModel, InferServiceUi, ModelServiceFactoryMap, ModelServices, RequireServices, ServiceBrand, ServiceDispatch, ServiceName, ServiceNameLiterals, ServiceRequireFlags, ServiceType, ServiceTypesLike, UiServiceFactoryMap, UiServices, isNodeService, service, serviceFnKey } from "./service_types.js";
3
+ import { ModelServiceRegistry, UiServiceRegistry } from "./service_registry.js";
4
+ import { KnownServiceName, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./service_capabilities.js";
5
+ import { createUiServiceInjectors } from "./service_injector_factory.js";
6
+ import { SERVICE_METHOD_MAP, UiServiceInjectorMap, buildServiceInfo, resolveUiInjector } from "./service_injectors.js";
@@ -0,0 +1,6 @@
1
+ import { isNodeService, service, serviceFnKey } from "./service_types.js";
2
+ import { ModelServiceRegistry, UiServiceRegistry } from "./service_registry.js";
3
+ import { Services } from "./service_declarations.js";
4
+ import { SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices } from "./service_capabilities.js";
5
+ import { createUiServiceInjectors } from "./service_injector_factory.js";
6
+ import { SERVICE_METHOD_MAP, buildServiceInfo, resolveUiInjector } from "./service_injectors.js";
@@ -0,0 +1,51 @@
1
+ const require_service_declarations = require('./service_declarations.cjs');
2
+
3
+ //#region src/services/service_capabilities.ts
4
+ /**
5
+ * All service-related `requires*` capability flag names, auto-derived from Services.
6
+ * Single source of truth — use this everywhere runtime capabilities are registered.
7
+ */
8
+ const SERVICE_CAPABILITY_FLAGS = Object.keys(require_service_declarations.Services).map((key) => `requires${key}`);
9
+ /**
10
+ * Register all service capability flags with the given callback.
11
+ * Works with both `RuntimeCapabilities.addSupportedRequirement`
12
+ * and `MiddleLayer.addRuntimeCapability`.
13
+ */
14
+ function registerServiceCapabilities(register) {
15
+ for (const flag of SERVICE_CAPABILITY_FLAGS) register(flag, true);
16
+ }
17
+ /**
18
+ * Resolve which services are required by the given feature flags.
19
+ * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags
20
+ * (from middle layer) and Zod-parsed records (from preload).
21
+ */
22
+ function resolveRequiredServices(flags) {
23
+ if (!flags) return [];
24
+ return Object.keys(require_service_declarations.Services).filter((key) => flags[`requires${key}`] === true).map((key) => require_service_declarations.Services[key]);
25
+ }
26
+ function isKnownServiceName(name) {
27
+ return Object.values(require_service_declarations.Services).some((v) => v === name);
28
+ }
29
+ /** All service require flags set to true, auto-generated from Services.
30
+ * Used to distinguish service-related feature flags from non-service flags. */
31
+ const SERVICE_FEATURE_FLAGS = Object.fromEntries(Object.keys(require_service_declarations.Services).map((key) => [`requires${key}`, true]));
32
+ /** Introspect method names on an instance (including prototype chain).
33
+ * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */
34
+ function getMethodNames(instance) {
35
+ const methods = /* @__PURE__ */ new Set();
36
+ let proto = instance;
37
+ while (proto && proto !== Object.prototype) {
38
+ for (const key of Object.getOwnPropertyNames(proto)) if (key !== "constructor" && typeof Object.getOwnPropertyDescriptor(proto, key)?.value === "function") methods.add(key);
39
+ proto = Object.getPrototypeOf(proto);
40
+ }
41
+ return [...methods];
42
+ }
43
+
44
+ //#endregion
45
+ exports.SERVICE_CAPABILITY_FLAGS = SERVICE_CAPABILITY_FLAGS;
46
+ exports.SERVICE_FEATURE_FLAGS = SERVICE_FEATURE_FLAGS;
47
+ exports.getMethodNames = getMethodNames;
48
+ exports.isKnownServiceName = isKnownServiceName;
49
+ exports.registerServiceCapabilities = registerServiceCapabilities;
50
+ exports.resolveRequiredServices = resolveRequiredServices;
51
+ //# sourceMappingURL=service_capabilities.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_capabilities.cjs","names":["Services"],"sources":["../../src/services/service_capabilities.ts"],"sourcesContent":["import type { ServiceName, ServiceRequireFlags } from \"./service_types\";\nimport { Services } from \"./service_declarations\";\nimport type { SupportedRequirement } from \"../flags/flag_utils\";\n\n/**\n * All service-related `requires*` capability flag names, auto-derived from Services.\n * Single source of truth — use this everywhere runtime capabilities are registered.\n */\nexport const SERVICE_CAPABILITY_FLAGS: readonly SupportedRequirement[] = Object.keys(Services).map(\n (key) => `requires${key}` as SupportedRequirement,\n);\n\n/**\n * Register all service capability flags with the given callback.\n * Works with both `RuntimeCapabilities.addSupportedRequirement`\n * and `MiddleLayer.addRuntimeCapability`.\n */\nexport function registerServiceCapabilities(\n register: (flag: SupportedRequirement, value: true) => void,\n): void {\n for (const flag of SERVICE_CAPABILITY_FLAGS) {\n register(flag, true);\n }\n}\n\n/**\n * Resolve which services are required by the given feature flags.\n * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags\n * (from middle layer) and Zod-parsed records (from preload).\n */\nexport function resolveRequiredServices(flags: Record<string, unknown> | undefined): ServiceName[] {\n if (!flags) return [];\n return (Object.keys(Services) as (keyof typeof Services)[])\n .filter((key) => flags[`requires${key}`] === true)\n .map((key) => Services[key]);\n}\n\nexport type KnownServiceName = (typeof Services)[keyof typeof Services] & string;\n\nexport function isKnownServiceName(name: string): name is KnownServiceName {\n return Object.values(Services).some((v) => v === name);\n}\n\n/** All service require flags set to true, auto-generated from Services.\n * Used to distinguish service-related feature flags from non-service flags. */\nexport const SERVICE_FEATURE_FLAGS: { readonly [K in keyof ServiceRequireFlags]-?: true } =\n Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true])) as any;\n\n/** Introspect method names on an instance (including prototype chain).\n * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */\nexport function getMethodNames<T extends object>(instance: T): string[] {\n const methods = new Set<string>();\n let proto: object | null = instance;\n while (proto && proto !== Object.prototype) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (key !== \"constructor\" && typeof descriptor?.value === \"function\") {\n methods.add(key);\n }\n }\n proto = Object.getPrototypeOf(proto);\n }\n return [...methods];\n}\n"],"mappings":";;;;;;;AAQA,MAAa,2BAA4D,OAAO,KAAKA,sCAAS,CAAC,KAC5F,QAAQ,WAAW,MACrB;;;;;;AAOD,SAAgB,4BACd,UACM;AACN,MAAK,MAAM,QAAQ,yBACjB,UAAS,MAAM,KAAK;;;;;;;AASxB,SAAgB,wBAAwB,OAA2D;AACjG,KAAI,CAAC,MAAO,QAAO,EAAE;AACrB,QAAQ,OAAO,KAAKA,sCAAS,CAC1B,QAAQ,QAAQ,MAAM,WAAW,WAAW,KAAK,CACjD,KAAK,QAAQA,sCAAS,KAAK;;AAKhC,SAAgB,mBAAmB,MAAwC;AACzE,QAAO,OAAO,OAAOA,sCAAS,CAAC,MAAM,MAAM,MAAM,KAAK;;;;AAKxD,MAAa,wBACX,OAAO,YAAY,OAAO,KAAKA,sCAAS,CAAC,KAAK,QAAQ,CAAC,WAAW,OAAO,KAAK,CAAC,CAAC;;;AAIlF,SAAgB,eAAiC,UAAuB;CACtE,MAAM,0BAAU,IAAI,KAAa;CACjC,IAAI,QAAuB;AAC3B,QAAO,SAAS,UAAU,OAAO,WAAW;AAC1C,OAAK,MAAM,OAAO,OAAO,oBAAoB,MAAM,CAEjD,KAAI,QAAQ,iBAAiB,OADV,OAAO,yBAAyB,OAAO,IAAI,EACd,UAAU,WACxD,SAAQ,IAAI,IAAI;AAGpB,UAAQ,OAAO,eAAe,MAAM;;AAEtC,QAAO,CAAC,GAAG,QAAQ"}
@@ -0,0 +1,33 @@
1
+ import { Services } from "./service_declarations.js";
2
+ import { ServiceName, ServiceRequireFlags } from "./service_types.js";
3
+ import { SupportedRequirement } from "../flags/flag_utils.js";
4
+
5
+ //#region src/services/service_capabilities.d.ts
6
+ /**
7
+ * All service-related `requires*` capability flag names, auto-derived from Services.
8
+ * Single source of truth — use this everywhere runtime capabilities are registered.
9
+ */
10
+ declare const SERVICE_CAPABILITY_FLAGS: readonly SupportedRequirement[];
11
+ /**
12
+ * Register all service capability flags with the given callback.
13
+ * Works with both `RuntimeCapabilities.addSupportedRequirement`
14
+ * and `MiddleLayer.addRuntimeCapability`.
15
+ */
16
+ declare function registerServiceCapabilities(register: (flag: SupportedRequirement, value: true) => void): void;
17
+ /**
18
+ * Resolve which services are required by the given feature flags.
19
+ * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags
20
+ * (from middle layer) and Zod-parsed records (from preload).
21
+ */
22
+ declare function resolveRequiredServices(flags: Record<string, unknown> | undefined): ServiceName[];
23
+ type KnownServiceName = (typeof Services)[keyof typeof Services] & string;
24
+ declare function isKnownServiceName(name: string): name is KnownServiceName;
25
+ /** All service require flags set to true, auto-generated from Services.
26
+ * Used to distinguish service-related feature flags from non-service flags. */
27
+ declare const SERVICE_FEATURE_FLAGS: { readonly [K in keyof ServiceRequireFlags]-?: true };
28
+ /** Introspect method names on an instance (including prototype chain).
29
+ * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */
30
+ declare function getMethodNames<T extends object>(instance: T): string[];
31
+ //#endregion
32
+ export { KnownServiceName, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices };
33
+ //# sourceMappingURL=service_capabilities.d.ts.map
@@ -0,0 +1,46 @@
1
+ import { Services } from "./service_declarations.js";
2
+
3
+ //#region src/services/service_capabilities.ts
4
+ /**
5
+ * All service-related `requires*` capability flag names, auto-derived from Services.
6
+ * Single source of truth — use this everywhere runtime capabilities are registered.
7
+ */
8
+ const SERVICE_CAPABILITY_FLAGS = Object.keys(Services).map((key) => `requires${key}`);
9
+ /**
10
+ * Register all service capability flags with the given callback.
11
+ * Works with both `RuntimeCapabilities.addSupportedRequirement`
12
+ * and `MiddleLayer.addRuntimeCapability`.
13
+ */
14
+ function registerServiceCapabilities(register) {
15
+ for (const flag of SERVICE_CAPABILITY_FLAGS) register(flag, true);
16
+ }
17
+ /**
18
+ * Resolve which services are required by the given feature flags.
19
+ * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags
20
+ * (from middle layer) and Zod-parsed records (from preload).
21
+ */
22
+ function resolveRequiredServices(flags) {
23
+ if (!flags) return [];
24
+ return Object.keys(Services).filter((key) => flags[`requires${key}`] === true).map((key) => Services[key]);
25
+ }
26
+ function isKnownServiceName(name) {
27
+ return Object.values(Services).some((v) => v === name);
28
+ }
29
+ /** All service require flags set to true, auto-generated from Services.
30
+ * Used to distinguish service-related feature flags from non-service flags. */
31
+ const SERVICE_FEATURE_FLAGS = Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true]));
32
+ /** Introspect method names on an instance (including prototype chain).
33
+ * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */
34
+ function getMethodNames(instance) {
35
+ const methods = /* @__PURE__ */ new Set();
36
+ let proto = instance;
37
+ while (proto && proto !== Object.prototype) {
38
+ for (const key of Object.getOwnPropertyNames(proto)) if (key !== "constructor" && typeof Object.getOwnPropertyDescriptor(proto, key)?.value === "function") methods.add(key);
39
+ proto = Object.getPrototypeOf(proto);
40
+ }
41
+ return [...methods];
42
+ }
43
+
44
+ //#endregion
45
+ export { SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, getMethodNames, isKnownServiceName, registerServiceCapabilities, resolveRequiredServices };
46
+ //# sourceMappingURL=service_capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_capabilities.js","names":[],"sources":["../../src/services/service_capabilities.ts"],"sourcesContent":["import type { ServiceName, ServiceRequireFlags } from \"./service_types\";\nimport { Services } from \"./service_declarations\";\nimport type { SupportedRequirement } from \"../flags/flag_utils\";\n\n/**\n * All service-related `requires*` capability flag names, auto-derived from Services.\n * Single source of truth — use this everywhere runtime capabilities are registered.\n */\nexport const SERVICE_CAPABILITY_FLAGS: readonly SupportedRequirement[] = Object.keys(Services).map(\n (key) => `requires${key}` as SupportedRequirement,\n);\n\n/**\n * Register all service capability flags with the given callback.\n * Works with both `RuntimeCapabilities.addSupportedRequirement`\n * and `MiddleLayer.addRuntimeCapability`.\n */\nexport function registerServiceCapabilities(\n register: (flag: SupportedRequirement, value: true) => void,\n): void {\n for (const flag of SERVICE_CAPABILITY_FLAGS) {\n register(flag, true);\n }\n}\n\n/**\n * Resolve which services are required by the given feature flags.\n * Accepts Record<string, unknown> so it works with both BlockCodeKnownFeatureFlags\n * (from middle layer) and Zod-parsed records (from preload).\n */\nexport function resolveRequiredServices(flags: Record<string, unknown> | undefined): ServiceName[] {\n if (!flags) return [];\n return (Object.keys(Services) as (keyof typeof Services)[])\n .filter((key) => flags[`requires${key}`] === true)\n .map((key) => Services[key]);\n}\n\nexport type KnownServiceName = (typeof Services)[keyof typeof Services] & string;\n\nexport function isKnownServiceName(name: string): name is KnownServiceName {\n return Object.values(Services).some((v) => v === name);\n}\n\n/** All service require flags set to true, auto-generated from Services.\n * Used to distinguish service-related feature flags from non-service flags. */\nexport const SERVICE_FEATURE_FLAGS: { readonly [K in keyof ServiceRequireFlags]-?: true } =\n Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true])) as any;\n\n/** Introspect method names on an instance (including prototype chain).\n * Uses Object.getOwnPropertyDescriptor to avoid triggering getters. */\nexport function getMethodNames<T extends object>(instance: T): string[] {\n const methods = new Set<string>();\n let proto: object | null = instance;\n while (proto && proto !== Object.prototype) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (key !== \"constructor\" && typeof descriptor?.value === \"function\") {\n methods.add(key);\n }\n }\n proto = Object.getPrototypeOf(proto);\n }\n return [...methods];\n}\n"],"mappings":";;;;;;;AAQA,MAAa,2BAA4D,OAAO,KAAK,SAAS,CAAC,KAC5F,QAAQ,WAAW,MACrB;;;;;;AAOD,SAAgB,4BACd,UACM;AACN,MAAK,MAAM,QAAQ,yBACjB,UAAS,MAAM,KAAK;;;;;;;AASxB,SAAgB,wBAAwB,OAA2D;AACjG,KAAI,CAAC,MAAO,QAAO,EAAE;AACrB,QAAQ,OAAO,KAAK,SAAS,CAC1B,QAAQ,QAAQ,MAAM,WAAW,WAAW,KAAK,CACjD,KAAK,QAAQ,SAAS,KAAK;;AAKhC,SAAgB,mBAAmB,MAAwC;AACzE,QAAO,OAAO,OAAO,SAAS,CAAC,MAAM,MAAM,MAAM,KAAK;;;;AAKxD,MAAa,wBACX,OAAO,YAAY,OAAO,KAAK,SAAS,CAAC,KAAK,QAAQ,CAAC,WAAW,OAAO,KAAK,CAAC,CAAC;;;AAIlF,SAAgB,eAAiC,UAAuB;CACtE,MAAM,0BAAU,IAAI,KAAa;CACjC,IAAI,QAAuB;AAC3B,QAAO,SAAS,UAAU,OAAO,WAAW;AAC1C,OAAK,MAAM,OAAO,OAAO,oBAAoB,MAAM,CAEjD,KAAI,QAAQ,iBAAiB,OADV,OAAO,yBAAyB,OAAO,IAAI,EACd,UAAU,WACxD,SAAQ,IAAI,IAAI;AAGpB,UAAQ,OAAO,eAAe,MAAM;;AAEtC,QAAO,CAAC,GAAG,QAAQ"}
@@ -0,0 +1,17 @@
1
+ const require_service_types = require('./service_types.cjs');
2
+
3
+ //#region src/services/service_declarations.ts
4
+ const Services = {
5
+ PFrameSpec: require_service_types.service()({
6
+ type: "wasm",
7
+ name: "pframeSpec"
8
+ }),
9
+ PFrame: require_service_types.service()({
10
+ type: "node",
11
+ name: "pframe"
12
+ })
13
+ };
14
+
15
+ //#endregion
16
+ exports.Services = Services;
17
+ //# sourceMappingURL=service_declarations.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_declarations.cjs","names":["service"],"sources":["../../src/services/service_declarations.ts"],"sourcesContent":["/**\n * Service declarations — add new services here.\n *\n * After adding a service, fix type errors in these files:\n *\n * Model side:\n * - lib/node/pl-middle-layer/src/js_render/service_injectors.ts — VM bridge for workflow scripts\n * - lib/node/pl-middle-layer/src/middle_layer/middle_layer.ts — ModelServiceRegistry factory\n *\n * UI side:\n * - lib/model/common/src/services/service_injector_factory.ts — driver method wrappers (node services only)\n * - sdk/ui-vue/src/internal/createAppV3.ts — UiServiceRegistry factory\n *\n * Optional:\n * - sdk/model/src/services/block_service_flags.ts — only if default-required by all blocks\n */\n\nimport type { PFrameDriver, PFrameModelDriver } from \"../drivers/pframe/driver\";\nimport type { PFrameSpecDriver } from \"../drivers/pframe/spec_driver\";\nimport { service } from \"./service_types\";\n\nexport const Services = {\n PFrameSpec: service<PFrameSpecDriver, PFrameSpecDriver>()({ type: \"wasm\", name: \"pframeSpec\" }),\n PFrame: service<PFrameModelDriver, PFrameDriver>()({ type: \"node\", name: \"pframe\" }),\n};\n"],"mappings":";;;AAqBA,MAAa,WAAW;CACtB,YAAYA,+BAA6C,CAAC;EAAE,MAAM;EAAQ,MAAM;EAAc,CAAC;CAC/F,QAAQA,+BAA0C,CAAC;EAAE,MAAM;EAAQ,MAAM;EAAU,CAAC;CACrF"}