@milaboratories/pl-model-common 1.47.3 → 1.48.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 (90) hide show
  1. package/dist/bmodel/block_kind_ref.cjs +45 -0
  2. package/dist/bmodel/block_kind_ref.cjs.map +1 -0
  3. package/dist/bmodel/block_kind_ref.d.ts +57 -0
  4. package/dist/bmodel/block_kind_ref.d.ts.map +1 -0
  5. package/dist/bmodel/block_kind_ref.js +43 -0
  6. package/dist/bmodel/block_kind_ref.js.map +1 -0
  7. package/dist/bmodel/container.d.ts +8 -0
  8. package/dist/bmodel/container.d.ts.map +1 -1
  9. package/dist/bmodel/index.cjs +4 -0
  10. package/dist/bmodel/index.d.ts +2 -1
  11. package/dist/bmodel/index.js +2 -1
  12. package/dist/columns/dedup.cjs +1 -1
  13. package/dist/columns/dedup.cjs.map +1 -1
  14. package/dist/columns/dedup.d.ts +1 -1
  15. package/dist/columns/dedup.js +1 -1
  16. package/dist/columns/dedup.js.map +1 -1
  17. package/dist/columns/providers.cjs +1 -1
  18. package/dist/columns/providers.cjs.map +1 -1
  19. package/dist/columns/providers.d.ts +1 -1
  20. package/dist/columns/providers.js +1 -1
  21. package/dist/columns/providers.js.map +1 -1
  22. package/dist/drivers/index.cjs +4 -0
  23. package/dist/drivers/index.d.ts +2 -2
  24. package/dist/drivers/index.js +2 -2
  25. package/dist/drivers/pframe/index.cjs +4 -0
  26. package/dist/drivers/pframe/index.d.ts +2 -2
  27. package/dist/drivers/pframe/index.js +2 -2
  28. package/dist/drivers/pframe/spec/ids.cjs +151 -0
  29. package/dist/drivers/pframe/spec/ids.cjs.map +1 -1
  30. package/dist/drivers/pframe/spec/ids.d.ts +53 -1
  31. package/dist/drivers/pframe/spec/ids.d.ts.map +1 -1
  32. package/dist/drivers/pframe/spec/ids.js +150 -3
  33. package/dist/drivers/pframe/spec/ids.js.map +1 -1
  34. package/dist/drivers/pframe/spec/index.cjs +4 -0
  35. package/dist/drivers/pframe/spec/index.d.ts +2 -2
  36. package/dist/drivers/pframe/spec/index.js +2 -2
  37. package/dist/index.cjs +29 -0
  38. package/dist/index.d.ts +7 -2
  39. package/dist/index.js +8 -2
  40. package/dist/plid.cjs +1 -1
  41. package/dist/plid.cjs.map +1 -1
  42. package/dist/plid.d.ts +3 -2
  43. package/dist/plid.d.ts.map +1 -1
  44. package/dist/plid.js +1 -1
  45. package/dist/plid.js.map +1 -1
  46. package/dist/template/index.cjs +20 -0
  47. package/dist/template/index.d.ts +5 -0
  48. package/dist/template/index.js +5 -0
  49. package/dist/template/kind_selector.cjs +92 -0
  50. package/dist/template/kind_selector.cjs.map +1 -0
  51. package/dist/template/kind_selector.d.ts +80 -0
  52. package/dist/template/kind_selector.d.ts.map +1 -0
  53. package/dist/template/kind_selector.js +87 -0
  54. package/dist/template/kind_selector.js.map +1 -0
  55. package/dist/template/project_template_v1.cjs +231 -0
  56. package/dist/template/project_template_v1.cjs.map +1 -0
  57. package/dist/template/project_template_v1.d.ts +215 -0
  58. package/dist/template/project_template_v1.d.ts.map +1 -0
  59. package/dist/template/project_template_v1.js +225 -0
  60. package/dist/template/project_template_v1.js.map +1 -0
  61. package/dist/template/template_ref_form.cjs +73 -0
  62. package/dist/template/template_ref_form.cjs.map +1 -0
  63. package/dist/template/template_ref_form.d.ts +74 -0
  64. package/dist/template/template_ref_form.d.ts.map +1 -0
  65. package/dist/template/template_ref_form.js +72 -0
  66. package/dist/template/template_ref_form.js.map +1 -0
  67. package/dist/template/template_relocate.cjs +46 -0
  68. package/dist/template/template_relocate.cjs.map +1 -0
  69. package/dist/template/template_relocate.d.ts +32 -0
  70. package/dist/template/template_relocate.d.ts.map +1 -0
  71. package/dist/template/template_relocate.js +46 -0
  72. package/dist/template/template_relocate.js.map +1 -0
  73. package/package.json +5 -5
  74. package/src/bmodel/block_kind_ref.ts +59 -0
  75. package/src/bmodel/container.ts +9 -0
  76. package/src/bmodel/index.ts +1 -0
  77. package/src/columns/dedup.ts +1 -1
  78. package/src/columns/providers.ts +1 -1
  79. package/src/drivers/pframe/spec/ids.test.ts +90 -0
  80. package/src/drivers/pframe/spec/ids.ts +191 -1
  81. package/src/index.ts +1 -0
  82. package/src/plid.ts +5 -5
  83. package/src/template/index.ts +4 -0
  84. package/src/template/kind_selector.ts +126 -0
  85. package/src/template/project_template_v1.test.ts +315 -0
  86. package/src/template/project_template_v1.ts +444 -0
  87. package/src/template/template_ref_form.test.ts +86 -0
  88. package/src/template/template_ref_form.ts +108 -0
  89. package/src/template/template_relocate.test.ts +182 -0
  90. package/src/template/template_relocate.ts +61 -0
package/dist/index.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_block_config = require("./bmodel/block_config.cjs");
3
3
  const require_code = require("./bmodel/code.cjs");
4
+ const require_block_kind_ref = require("./bmodel/block_kind_ref.cjs");
4
5
  const require_normalization = require("./bmodel/normalization.cjs");
5
6
  require("./bmodel/index.cjs");
6
7
  const require_urls = require("./drivers/urls.cjs");
@@ -53,6 +54,11 @@ const require_column_selector = require("./columns/column_selector.cjs");
53
54
  const require_dedup = require("./columns/dedup.cjs");
54
55
  const require_providers = require("./columns/providers.cjs");
55
56
  require("./columns/index.cjs");
57
+ const require_kind_selector = require("./template/kind_selector.cjs");
58
+ const require_project_template_v1 = require("./template/project_template_v1.cjs");
59
+ const require_template_ref_form = require("./template/template_ref_form.cjs");
60
+ const require_template_relocate = require("./template/template_relocate.cjs");
61
+ require("./template/index.cjs");
56
62
  exports.AbortError = require_errors.AbortError;
57
63
  exports.AccessorEntriesProvider = require_providers.AccessorEntriesProvider;
58
64
  exports.AllRequiresFeatureFlags = require_block_flags.AllRequiresFeatureFlags;
@@ -77,12 +83,14 @@ exports.PColumnName = require_spec.PColumnName;
77
83
  exports.PFrameDriverError = require_errors.PFrameDriverError;
78
84
  exports.PFrameError = require_errors.PFrameError;
79
85
  exports.PFrameSpecDriverError = require_errors.PFrameSpecDriverError;
86
+ exports.PROJECT_TEMPLATE_SCHEMA_V1 = require_project_template_v1.PROJECT_TEMPLATE_SCHEMA_V1;
80
87
  exports.PTableNA = require_data_types.PTableNA;
81
88
  exports.PlId = require_plid.PlId;
82
89
  exports.PlIdBytes = require_plid.PlIdBytes;
83
90
  exports.PlIdLength = require_plid.PlIdLength;
84
91
  exports.PlRef = require_ref.PlRef;
85
92
  exports.PoolEntryGuard = require_pool_entry.PoolEntryGuard;
93
+ exports.ProjectTemplateV1ParseError = require_project_template_v1.ProjectTemplateV1ParseError;
86
94
  exports.REQUIRES_PFRAMES_VERSION = require_block_flags.REQUIRES_PFRAMES_VERSION;
87
95
  exports.RangeBytes = require_blob.RangeBytes;
88
96
  exports.ResourceTypeName = require_resource_types.ResourceTypeName;
@@ -144,6 +152,7 @@ exports.ensureError = require_errors.ensureError;
144
152
  exports.ensurePColumn = require_spec$1.ensurePColumn;
145
153
  exports.entriesToDataInfo = require_data_info.entriesToDataInfo;
146
154
  exports.executePSpecPredicate = require_query.executePSpecPredicate;
155
+ exports.expandTemplateRefs = require_template_ref_form.expandTemplateRefs;
147
156
  exports.extractAllColumns = require_spec$1.extractAllColumns;
148
157
  exports.extractAllRequirements = require_flag_utils.extractAllRequirements;
149
158
  exports.extractAllSupports = require_flag_utils.extractAllSupports;
@@ -151,6 +160,10 @@ exports.extractCodeWithInfo = require_block_config.extractCodeWithInfo;
151
160
  exports.extractConfigGeneric = require_normalization.extractConfigGeneric;
152
161
  exports.extractPObjectId = require_ids.extractPObjectId;
153
162
  exports.findDescendantsByType = require_accessor_traversal.findDescendantsByType;
163
+ exports.formatKindRef = require_block_kind_ref.formatKindRef;
164
+ exports.formatKindSelector = require_kind_selector.formatKindSelector;
165
+ exports.formatKindSelectorReference = require_kind_selector.formatKindSelectorReference;
166
+ exports.formatTemplateParseIssue = require_project_template_v1.formatTemplateParseIssue;
154
167
  exports.getArrayFromAxisTree = require_spec.getArrayFromAxisTree;
155
168
  exports.getAxesId = require_spec.getAxesId;
156
169
  exports.getAxesTree = require_spec.getAxesTree;
@@ -176,6 +189,7 @@ exports.isAggregateError = require_errors.isAggregateError;
176
189
  exports.isAnchoredPColumnId = require_selectors.isAnchoredPColumnId;
177
190
  exports.isAnyLogHandle = require_log.isAnyLogHandle;
178
191
  exports.isAxisId = require_spec.isAxisId;
192
+ exports.isBlockKindSelectorReference = require_kind_selector.isBlockKindSelectorReference;
179
193
  exports.isBlockUIURL = require_urls.isBlockUIURL;
180
194
  exports.isBooleanExpression = require_utils.isBooleanExpression;
181
195
  exports.isColumnDiscoveredId = require_discovered_column.isColumnDiscoveredId;
@@ -183,6 +197,8 @@ exports.isColumnDiscoveredKey = require_discovered_column.isColumnDiscoveredKey;
183
197
  exports.isColumnFilteredId = require_filtered_column.isColumnFilteredId;
184
198
  exports.isColumnFilteredKey = require_filtered_column.isColumnFilteredKey;
185
199
  exports.isColumnOverriddenKey = require_overridden.isColumnOverriddenKey;
200
+ exports.isColumnUniversalId = require_ids.isColumnUniversalId;
201
+ exports.isColumnUniversalKey = require_ids.isColumnUniversalKey;
186
202
  exports.isDataInfo = require_data_info.isDataInfo;
187
203
  exports.isDataInfoEntries = require_data_info.isDataInfoEntries;
188
204
  exports.isEmptySpecDelta = require_overridden.isEmptySpecDelta;
@@ -219,8 +235,10 @@ exports.isServiceInjectionError = require_errors.isServiceInjectionError;
219
235
  exports.isServiceInvalidIdError = require_errors.isServiceInvalidIdError;
220
236
  exports.isServiceMethodNotFoundError = require_errors.isServiceMethodNotFoundError;
221
237
  exports.isServiceNotRegisteredError = require_errors.isServiceNotRegisteredError;
238
+ exports.isTemplatePlRef = require_template_ref_form.isTemplatePlRef;
222
239
  exports.isValueNA = require_data_types.isValueNA;
223
240
  exports.isWasmService = require_service_types.isWasmService;
241
+ exports.kindReferenceToSelectorReference = require_kind_selector.kindReferenceToSelectorReference;
224
242
  exports.legacyColumnSelectorsToPredicate = require_selectors.legacyColumnSelectorsToPredicate;
225
243
  exports.listColumnNames = require_accessor_traversal.listColumnNames;
226
244
  exports.mapDataInfo = require_data_info.mapDataInfo;
@@ -241,6 +259,8 @@ exports.multiColumnSelectorsToPredicate = require_selectors.multiColumnSelectors
241
259
  exports.newRangeBytesOpt = require_blob.newRangeBytesOpt;
242
260
  exports.pTableValue = require_data_types.pTableValue;
243
261
  exports.pTableValueBranded = require_data_types.pTableValueBranded;
262
+ exports.parseBlockPackLocation = require_project_template_v1.parseBlockPackLocation;
263
+ exports.parseBlockPackReference = require_project_template_v1.parseBlockPackReference;
244
264
  exports.parseColumnDiscoveredId = require_discovered_column.parseColumnDiscoveredId;
245
265
  exports.parseColumnId = require_ids.parseColumnId;
246
266
  exports.parseColumnIdSafely = require_ids.parseColumnIdSafely;
@@ -248,6 +268,11 @@ exports.parseColumnOverriddenId = require_overridden.parseColumnOverriddenId;
248
268
  exports.parseHttpAuth = require_httpAuth.parseHttpAuth;
249
269
  exports.parseJson = require_json.parseJson;
250
270
  exports.parseJsonSafely = require_json.parseJsonSafely;
271
+ exports.parseKindRef = require_block_kind_ref.parseKindRef;
272
+ exports.parseKindSelector = require_kind_selector.parseKindSelector;
273
+ exports.parseKindSelectorReference = require_kind_selector.parseKindSelectorReference;
274
+ exports.parseProjectTemplateV1 = require_project_template_v1.parseProjectTemplateV1;
275
+ exports.peelJsonLayers = require_ids.peelJsonLayers;
251
276
  exports.plId = require_plid.plId;
252
277
  exports.plRefsEqual = require_ref.plRefsEqual;
253
278
  exports.readAnnotation = require_spec.readAnnotation;
@@ -259,8 +284,11 @@ exports.readDomainJsonOrThrow = require_spec.readDomainJsonOrThrow;
259
284
  exports.readMetadata = require_spec.readMetadata;
260
285
  exports.readMetadataJson = require_spec.readMetadataJson;
261
286
  exports.readMetadataJsonOrThrow = require_spec.readMetadataJsonOrThrow;
287
+ exports.readProjectTemplateV1 = require_project_template_v1.readProjectTemplateV1;
262
288
  exports.reconstructSpecFromId = require_ids.reconstructSpecFromId;
263
289
  exports.registerServiceCapabilities = require_service_capabilities.registerServiceCapabilities;
290
+ exports.relocateBlockIds = require_template_relocate.relocateBlockIds;
291
+ exports.remapColumnIdBlockIds = require_ids.remapColumnIdBlockIds;
264
292
  exports.resolveAnchors = require_anchored.resolveAnchors;
265
293
  exports.resolveAnnotationParents = require_spec.resolveAnnotationParents;
266
294
  exports.resolveNodeServiceHandler = require_service_injectors.resolveNodeServiceHandler;
@@ -273,6 +301,7 @@ exports.serviceFnKey = require_service_types.serviceFnKey;
273
301
  exports.sortJoinEntry = require_table_calculate.sortJoinEntry;
274
302
  exports.sortPTableDef = require_table_calculate.sortPTableDef;
275
303
  exports.sortSpecQuery = require_utils.sortSpecQuery;
304
+ exports.splitVersionedName = require_block_kind_ref.splitVersionedName;
276
305
  exports.stringifyColumnDiscoveredId = require_discovered_column.stringifyColumnDiscoveredId;
277
306
  exports.stringifyColumnFilteredId = require_filtered_column.stringifyColumnFilteredId;
278
307
  exports.stringifyColumnId = require_ids.stringifyColumnId;
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import { PoolEntry, PoolEntryGuard } from "./pool_entry.js";
9
9
  import { ColumnDiscoveredId, ColumnDiscoveredKey, createColumnDiscoveredId, createColumnDiscoveredKey, distillColumnDiscoveredKey, isColumnDiscoveredId, isColumnDiscoveredKey, parseColumnDiscoveredId, stringifyColumnDiscoveredId } from "./drivers/pframe/spec/discovered_column.js";
10
10
  import { Annotation, AnnotationDataStatus, AnnotationJson, AxesId, AxesSpec, AxisId, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, ColumnValueType, Domain, DomainJson, Metadata, MetadataJson, PAxisName, PColumn, PColumnIdAndSpec, PColumnName, PColumnSpec, PColumnSpecId, PDataColumnSpec, PUniversalColumnSpec, Trace, TraceEntry, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, resolveAnnotationParents } from "./drivers/pframe/spec/spec.js";
11
11
  import { ColumnOverriddenId, ColumnOverriddenKey, SpecOverrides, applySpecOverrides, createColumnOverriddenId, createColumnOverriddenKey, deriveSpecDelta, distillColumnOverriddenKey, isColumnOverriddenKey, isEmptySpecDelta, mergeSpecOverrides, parseColumnOverriddenId, stringifyColumnOverriddenId, unwrapOverrides } from "./drivers/pframe/spec/overridden.js";
12
- import { AxisPatches, ColumnUniversalId, ColumnUniversalKey, SUniversalPColumnId, UniversalPColumnId, extractPObjectId, parseColumnId, parseColumnIdSafely, reconstructSpecFromId, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
12
+ import { AxisPatches, ColumnUniversalId, ColumnUniversalKey, PeeledJsonLayers, SUniversalPColumnId, UniversalPColumnId, extractPObjectId, isColumnUniversalId, isColumnUniversalKey, parseColumnId, parseColumnIdSafely, peelJsonLayers, reconstructSpecFromId, remapColumnIdBlockIds, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
13
13
  import { AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, ColumnFilteredId, ColumnFilteredKey, FilteredPColumn, FilteredPColumnId, applyAxisFilters, createColumnFilteredId, createColumnFilteredKey, isColumnFilteredId, isColumnFilteredKey, isFilteredPColumn, stringifyColumnFilteredId } from "./drivers/pframe/spec/filtered_column.js";
14
14
  import { AnchoredIdDeriver, ResolveAnchorsOptions, resolveAnchors } from "./drivers/pframe/spec/anchored.js";
15
15
  import { NativePObjectId, deriveNativeId } from "./drivers/pframe/spec/native_id.js";
@@ -58,6 +58,7 @@ import { AllRequiresFeatureFlags, AllSupportsFeatureFlags, BlockCodeFeatureFlags
58
58
  import { BlockCodeWithInfo, Code } from "./bmodel/code.js";
59
59
  import { BlockRenderingMode } from "./bmodel/types.js";
60
60
  import { BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, extractCodeWithInfo } from "./bmodel/block_config.js";
61
+ import { BlockKindReference, formatKindRef, parseKindRef, splitVersionedName } from "./bmodel/block_kind_ref.js";
61
62
  import { BlockConfigContainer } from "./bmodel/container.js";
62
63
  import { extractConfigGeneric } from "./bmodel/normalization.js";
63
64
  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";
@@ -73,4 +74,8 @@ import { COLLECT_TYPES, DESCEND_TYPES, findDescendantsByType, indexAccessorRoot,
73
74
  import { ColumnRegistry } from "./columns/column_registry.js";
74
75
  import { dedupColumns } from "./columns/dedup.js";
75
76
  import { AccessorEntriesProvider, ResultPoolEntriesProvider } from "./columns/providers.js";
76
- export { AAxisSelector, ADomain, AbortError, AccessorEntriesProvider, AccessorHandle, AccessorLike, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchorEntry, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationDataStatus, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisPatches, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobDriverMetrics, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockOutputsBase, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, BuildQueryInput, COLLECT_TYPES, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, CollectionHandle, ColumnAxesWithQualifications, ColumnDiscoveredId, ColumnDiscoveredKey, ColumnEntriesProvider, ColumnFilter, ColumnFilteredId, ColumnFilteredKey, ColumnJoinEntry, ColumnOverriddenId, ColumnOverriddenKey, ColumnRegistry, ColumnSelector, ColumnUniversalId, ColumnUniversalKey, ColumnValueType, ColumnsCollectionDriver, ColumnsCollectionDriverHost, ColumnsCollectionDriverModel, ColumnsDiscoverOptions, ColumnsFilterOptions, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, CreateEnrichmentRefOptions, DESCEND_TYPES, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryLinkerJoin, DataQueryLinkerJoinLinker, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DataQueryTransformColumns, DatasetInput, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DialogService, DiscoverColumnsConstraints, DiscoverColumnsFilterStep, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsOptions, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, EnrichmentLinkerStep, EnrichmentRef, EnrichmentStep, ErrorHandlerStatus, EvaluateQueryResponse, ExportPTableOptions, FieldTraversalStepLike, FileFilter, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, GlobalPObjectId, GlobalPObjectKey, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InferServiceKind, InferServiceModel, InferServiceModelHost, InferServiceUi, InferServiceUiHost, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, KnownServiceName, LabeledEnrichmentRef, LabeledEnrichmentRefs, LeafEntry, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LocalPObjectId, LocalPObjectKey, LogsDriver, LsDriver, LsEntry, MODEL_SERVICE_METHOD_MAP, MatchQualifications, MatcherMap, MatchingMode, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, NodeServiceHandlerMap, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnKey, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PSpecPredicate, PTable, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableDownloadCompression, PTableDownloadFormat, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntry, PoolEntryGuard, PrimaryRef, ProgressLogWithInfo, ProjectId, REQUIRES_PFRAMES_VERSION, RangeBytes, ReadyLogHandle, Ref, RelaxedAxisSelector, RelaxedColumnSelector, RelaxedRecord, RelaxedStringMatchers, RemoteBlobHandle, RemoteBlobHandleAndSize, RequireServices, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntriesProvider, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, SUniversalPColumnId, SerializedColumnsSource, SerializedError, ServiceAlreadyRegisteredError, ServiceBrand, ServiceDispatch, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceName, ServiceNameLiterals, ServiceNotRegisteredError, ServiceRequireFlags, ServiceType, ServiceTypesLike, Services, ShowSaveDialogOptions, ShowSaveDialogResult, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecOverrides, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySpecOverride, SpecQuerySymmetricJoin, SpecQueryTransformColumns, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, Trace, TraceEntry, UiError, UiServiceFactoryMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, UpstreamBlockCtx, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, WritePTableToFsOptions, WritePTableToFsResult, XLSX_MAX_ROWS_PER_SHEET, applyAxisFilters, applySpecOverrides, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector, createColumnDiscoveredId, createColumnDiscoveredKey, createColumnFilteredId, createColumnFilteredKey, createColumnOverriddenId, createColumnOverriddenKey, createEnrichmentRef, createGlobalPObjectId, createLocalPObjectId, createNodeServiceHandlers, createPObjectId, createPlRef, createPrimaryRef, dataInfoToEntries, dedupColumns, deriveNativeId, deriveSpecDelta, deserializeError, deserializeResult, digestPlId, distillColumnDiscoveredKey, distillColumnOverriddenKey, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, extractPObjectId, findDescendantsByType, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, indexAccessorRoot, indexPoolBlock, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockUIURL, isBooleanExpression, isColumnDiscoveredId, isColumnDiscoveredKey, isColumnFilteredId, isColumnFilteredKey, isColumnOverriddenKey, isDataInfo, isDataInfoEntries, isEmptySpecDelta, isEnrichmentRef, isFilteredPColumn, isFolderURL, isGlobalPObjectId, isGlobalPObjectKey, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isLocalPObjectId, isLocalPObjectKey, isMainService, isNodeService, isPColumn, isPColumnSpec, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPObject, isPObjectId, isPObjectKey, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isValueNA, isWasmService, legacyColumnSelectorsToPredicate, listColumnNames, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, matchingModeToConstraints, mergeSpecOverrides, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnDiscoveredId, parseColumnId, parseColumnIdSafely, parseColumnOverriddenId, parseHttpAuth, parseJson, parseJsonSafely, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, reconstructSpecFromId, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnDiscoveredId, stringifyColumnFilteredId, stringifyColumnId, stringifyColumnOverriddenId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapOverrides, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
77
+ import { BlockKindSelectorReference, KindSelector, KindSelectorOp, formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference } from "./template/kind_selector.js";
78
+ import { BlockPackLocationReference, BlockPackLocatorOverride, BlockPackReference, PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateSchemaV1, ProjectTemplateV1, ProjectTemplateV1Entry, ProjectTemplateV1ParseError, ProjectTemplateV1ReadResult, TemplateParseIssue, formatTemplateParseIssue, parseBlockPackLocation, parseBlockPackReference, parseProjectTemplateV1, readProjectTemplateV1 } from "./template/project_template_v1.js";
79
+ import { TemplatePlRef, expandTemplateRefs, isTemplatePlRef } from "./template/template_ref_form.js";
80
+ import { relocateBlockIds } from "./template/template_relocate.js";
81
+ export { AAxisSelector, ADomain, AbortError, AccessorEntriesProvider, AccessorHandle, AccessorLike, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchorAxisIdOrRefBasic, AnchorAxisRef, AnchorAxisRefByIdx, AnchorAxisRefByMatcher, AnchorAxisRefByName, AnchorDomainRef, AnchorEntry, AnchoredColumnMatchStrategy, AnchoredIdDeriver, AnchoredPColumnId, AnchoredPColumnSelector, Annotation, AnnotationDataStatus, AnnotationJson, AnyFunction, AnyLogHandle, ArchiveFormat, ArrayTypeUnion, ArtificialColumnJoinEntry, Assert, AssertKeysEqual, AuthorMarker, AxesId, AxesSpec, AxisFilter, AxisFilterByIdx, AxisFilterByName, AxisFilterValue, AxisId, AxisPatches, AxisQualification, AxisSpec, AxisSpecNormalized, AxisTree, AxisValueType, Base64Compatible, Base64Encoded, BasicHttpAuth, BinaryChunk, BinaryPartitionedDataInfo, BinaryPartitionedDataInfoEntries, BlobDriver, BlobDriverMetrics, BlobHandleAndSize, BlobLike, BlobToURLDriver, BlockCodeFeatureFlags, BlockCodeKnownFeatureFlags, BlockCodeWithInfo, BlockConfigContainer, BlockConfigGeneric, BlockConfigV3Generic, BlockConfigV4Generic, BlockKindReference, BlockKindSelectorReference, BlockOutputsBase, BlockPackLocationReference, BlockPackLocatorOverride, BlockPackReference, BlockRenderingMode, BlockSection, BlockSectionDelimiter, BlockSectionLink, BlockSectionLinkAppearance, BlockState, BlockStateV3, BlockUIURL, Branded, BuildQueryInput, COLLECT_TYPES, CalculateTableDataRequest, CalculateTableDataResponse, CanonicalizedJson, ChunkedStreamReader, ChunkedStreamReaderOptions, Code, CollectionHandle, ColumnAxesWithQualifications, ColumnDiscoveredId, ColumnDiscoveredKey, ColumnEntriesProvider, ColumnFilter, ColumnFilteredId, ColumnFilteredKey, ColumnJoinEntry, ColumnOverriddenId, ColumnOverriddenKey, ColumnRegistry, ColumnSelector, ColumnUniversalId, ColumnUniversalKey, ColumnValueType, ColumnsCollectionDriver, ColumnsCollectionDriverHost, ColumnsCollectionDriverModel, ColumnsDiscoverOptions, ColumnsFilterOptions, CompositeLinkerMap, ConstantAxisFilter, ContentHandler, CreateEnrichmentRefOptions, DESCEND_TYPES, DataExprAxisRef, DataExprColumnRef, DataInfo, DataInfoEntries, DataQuery, DataQueryBooleanExpression, DataQueryColumn, DataQueryExpression, DataQueryFilter, DataQueryInlineColumn, DataQueryJoinEntry, DataQueryLinkerJoin, DataQueryLinkerJoinLinker, DataQueryOuterJoin, DataQuerySliceAxes, DataQuerySort, DataQuerySparseToDenseColumn, DataQuerySymmetricJoin, DataQueryTransformColumns, DatasetInput, DefaultNavigationState, DeleteColumnRequest, DeleteColumnResponse, DialogService, DiscoverColumnsConstraints, DiscoverColumnsFilterStep, DiscoverColumnsLinkerStep, DiscoverColumnsMappingVariant, DiscoverColumnsOptions, DiscoverColumnsRequest, DiscoverColumnsResponse, DiscoverColumnsResponseHit, DiscoverColumnsResponseQualifications, DiscoverColumnsStepInfo, Domain, DomainJson, DriverKit, EnrichmentLinkerStep, EnrichmentRef, EnrichmentStep, ErrorHandlerStatus, EvaluateQueryResponse, ExportPTableOptions, FieldTraversalStepLike, FileFilter, FileLike, FileRange, FilterKeysByPrefix, FilterSpec, FilterSpecLeaf, FilterSpecNode, FilterSpecOfType, FilterSpecType, FilteredPColumn, FilteredPColumnId, FindColumnsRequest, FindColumnsResponse, FolderURL, FrontendDriver, FullJoin, FullPTableColumnData, GetContentOptions, GlobalPObjectId, GlobalPObjectKey, HttpAuth, ImportFileHandle, ImportFileHandleIndex, ImportFileHandleUpload, ImportProgress, ImportStatus, IncompatibleFlagsError, InferFilterSpecCommonLeaf, InferFilterSpecCommonNode, InferFilterSpecLeaf, InferFilterSpecLeafColumn, InferServiceKind, InferServiceModel, InferServiceModelHost, InferServiceUi, InferServiceUiHost, InlineColumnJoinEntry, InnerJoin, Is, IsSubtypeOf, JoinEntry, JsonCompatible, JsonDataInfo, JsonDataInfoEntries, JsonPartitionedDataInfo, JsonPartitionedDataInfoEntries, JsonSerializable, KindSelector, KindSelectorOp, KnownServiceName, LabeledEnrichmentRef, LabeledEnrichmentRefs, LeafEntry, LegacyAxisSelector, LinkerMap, ListFilesResult, ListOptionBase, LiveLogHandle, LocalBlobHandle, LocalBlobHandleAndSize, LocalImportFileHandle, LocalPObjectId, LocalPObjectKey, LogsDriver, LsDriver, LsEntry, MODEL_SERVICE_METHOD_MAP, MatchQualifications, MatcherMap, MatchingMode, Metadata, MetadataJson, ModelServiceFactoryMap, ModelServiceRegistry, ModelServices, MultiAxisSelector, MultiColumnSelector, NativePObjectId, NavigationState, NodeServiceHandlerMap, OpenDialogFilter, OpenDialogOps, OpenMultipleFilesResponse, OpenSingleFileResponse, Option, OuterJoin, OutputWithStatus, PAxisName, PColumn, PColumnDataEntry, PColumnIdAndSpec, PColumnKey, PColumnName, PColumnSelector, PColumnSpec, PColumnSpecId, PColumnValue, PColumnValues, PColumnValuesEntry, PDataColumnSpec, PFrame, PFrameDef, PFrameDriver, PFrameDriverError, PFrameError, PFrameHandle, PFrameModelDriver, PFrameSpecDriver, PFrameSpecDriverError, PObject, PObjectId, PObjectSpec, PROJECT_TEMPLATE_SCHEMA_V1, PSpecPredicate, PTable, PTableColumnId, PTableColumnIdAxis, PTableColumnIdColumn, PTableColumnSpec, PTableColumnSpecAxis, PTableColumnSpecColumn, PTableDef, PTableDefV2, PTableDownloadCompression, PTableDownloadFormat, PTableHandle, PTableNA, PTableRecordFilter, PTableRecordSingleValueFilterV2, PTableShape, PTableSorting, PTableValue, PTableValueAxis, PTableValueBranded, PTableValueData, PTableValueDataBranded, PTableValueDouble, PTableValueFloat, PTableValueInt, PTableValueLong, PTableValueString, PTableVector, PTableVectorTyped, PUniversalColumnSpec, PVectorData, PVectorDataBytes, PVectorDataDouble, PVectorDataFloat, PVectorDataInt, PVectorDataLong, PVectorDataString, PVectorDataTyped, ParquetChunk, ParquetChunkMapping, ParquetChunkMappingAxis, ParquetChunkMappingColumn, ParquetChunkMetadata, ParquetChunkStats, ParquetPartitionedDataInfo, ParquetPartitionedDataInfoEntries, PartitionedDataInfoEntries, PeeledJsonLayers, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntry, PoolEntryGuard, PrimaryRef, ProgressLogWithInfo, ProjectId, ProjectTemplateSchemaV1, ProjectTemplateV1, ProjectTemplateV1Entry, ProjectTemplateV1ParseError, ProjectTemplateV1ReadResult, REQUIRES_PFRAMES_VERSION, RangeBytes, ReadyLogHandle, Ref, RelaxedAxisSelector, RelaxedColumnSelector, RelaxedRecord, RelaxedStringMatchers, RemoteBlobHandle, RemoteBlobHandleAndSize, RequireServices, ResolveAnchorsOptions, ResourceTypeName, ResourceTypePrefix, ResultCollection, ResultOrError, ResultPoolEntriesProvider, ResultPoolEntry, RootFilterSpec, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, SUniversalPColumnId, SerializedColumnsSource, SerializedError, ServiceAlreadyRegisteredError, ServiceBrand, ServiceDispatch, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceName, ServiceNameLiterals, ServiceNotRegisteredError, ServiceRequireFlags, ServiceType, ServiceTypesLike, Services, ShowSaveDialogOptions, ShowSaveDialogResult, SingleAxisSelector, SingleValueAndPredicateV2, SingleValueEqualPredicate, SingleValueGreaterOrEqualPredicate, SingleValueGreaterPredicate, SingleValueIEqualPredicate, SingleValueInSetPredicate, SingleValueIsNAPredicate, SingleValueLessOrEqualPredicate, SingleValueLessPredicate, SingleValueMatchesPredicate, SingleValueNotPredicateV2, SingleValueOrPredicateV2, SingleValuePredicateV2, SingleValueStringContainsFuzzyPredicate, SingleValueStringContainsPredicate, SingleValueStringIContainsFuzzyPredicate, SingleValueStringIContainsPredicate, SlicedColumnJoinEntry, SpecExprAxisRef, SpecExprColumnRef, SpecFrameHandle, SpecOverrides, SpecQuery, SpecQueryBooleanExpression, SpecQueryColumn, SpecQueryExpression, SpecQueryFilter, SpecQueryInlineColumn, SpecQueryJoinEntry, SpecQueryLinkerJoin, SpecQueryOuterJoin, SpecQuerySliceAxes, SpecQuerySort, SpecQuerySparseToDenseColumn, SpecQuerySpecOverride, SpecQuerySymmetricJoin, SpecQueryTransformColumns, StorageEntry, StorageHandle, StorageHandleLocal, StorageHandleRemote, StreamingApiResponse, StreamingApiResponseHandleOutdated, StreamingApiResponseOk, StringMatcher, StringifiedJson, SupportedRequirement, TableRange, TemplateParseIssue, TemplatePlRef, Trace, TraceEntry, UiError, UiServiceFactoryMap, UiServiceRegistry, UiServices, UniqueValuesRequest, UniqueValuesResponse, UniversalPColumnId, UpstreamBlockCtx, ValueOrError, ValueType, ValueTypeSupported, ValueWithUTag, ValueWithUTagAndAuthor, WritePTableToFsOptions, WritePTableToFsResult, XLSX_MAX_ROWS_PER_SHEET, applyAxisFilters, applySpecOverrides, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector, createColumnDiscoveredId, createColumnDiscoveredKey, createColumnFilteredId, createColumnFilteredKey, createColumnOverriddenId, createColumnOverriddenKey, createEnrichmentRef, createGlobalPObjectId, createLocalPObjectId, createNodeServiceHandlers, createPObjectId, createPlRef, createPrimaryRef, dataInfoToEntries, dedupColumns, deriveNativeId, deriveSpecDelta, deserializeError, deserializeResult, digestPlId, distillColumnDiscoveredKey, distillColumnOverriddenKey, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, expandTemplateRefs, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, extractPObjectId, findDescendantsByType, formatKindRef, formatKindSelector, formatKindSelectorReference, formatTemplateParseIssue, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, indexAccessorRoot, indexPoolBlock, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockKindSelectorReference, isBlockUIURL, isBooleanExpression, isColumnDiscoveredId, isColumnDiscoveredKey, isColumnFilteredId, isColumnFilteredKey, isColumnOverriddenKey, isColumnUniversalId, isColumnUniversalKey, isDataInfo, isDataInfoEntries, isEmptySpecDelta, isEnrichmentRef, isFilteredPColumn, isFolderURL, isGlobalPObjectId, isGlobalPObjectKey, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isLocalPObjectId, isLocalPObjectKey, isMainService, isNodeService, isPColumn, isPColumnSpec, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPObject, isPObjectId, isPObjectKey, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isTemplatePlRef, isValueNA, isWasmService, kindReferenceToSelectorReference, legacyColumnSelectorsToPredicate, listColumnNames, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, matchingModeToConstraints, mergeSpecOverrides, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseBlockPackLocation, parseBlockPackReference, parseColumnDiscoveredId, parseColumnId, parseColumnIdSafely, parseColumnOverriddenId, parseHttpAuth, parseJson, parseJsonSafely, parseKindRef, parseKindSelector, parseKindSelectorReference, parseProjectTemplateV1, peelJsonLayers, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, readProjectTemplateV1, reconstructSpecFromId, registerServiceCapabilities, relocateBlockIds, remapColumnIdBlockIds, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, splitVersionedName, stringifyColumnDiscoveredId, stringifyColumnFilteredId, stringifyColumnId, stringifyColumnOverriddenId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapOverrides, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { extractCodeWithInfo } from "./bmodel/block_config.js";
2
2
  import { Code } from "./bmodel/code.js";
3
+ import { formatKindRef, parseKindRef, splitVersionedName } from "./bmodel/block_kind_ref.js";
3
4
  import { extractConfigGeneric } from "./bmodel/normalization.js";
4
5
  import "./bmodel/index.js";
5
6
  import { isBlockUIURL, isFolderURL } from "./drivers/urls.js";
@@ -21,7 +22,7 @@ import { executePSpecPredicate } from "./pool/query.js";
21
22
  import "./pool/index.js";
22
23
  import { createColumnDiscoveredId, createColumnDiscoveredKey, distillColumnDiscoveredKey, isColumnDiscoveredId, isColumnDiscoveredKey, parseColumnDiscoveredId, stringifyColumnDiscoveredId } from "./drivers/pframe/spec/discovered_column.js";
23
24
  import { applySpecOverrides, createColumnOverriddenId, createColumnOverriddenKey, deriveSpecDelta, distillColumnOverriddenKey, isColumnOverriddenKey, isEmptySpecDelta, mergeSpecOverrides, parseColumnOverriddenId, stringifyColumnOverriddenId, unwrapOverrides } from "./drivers/pframe/spec/overridden.js";
24
- import { extractPObjectId, parseColumnId, parseColumnIdSafely, reconstructSpecFromId, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
25
+ import { extractPObjectId, isColumnUniversalId, isColumnUniversalKey, parseColumnId, parseColumnIdSafely, peelJsonLayers, reconstructSpecFromId, remapColumnIdBlockIds, stringifyColumnId } from "./drivers/pframe/spec/ids.js";
25
26
  import { AnchoredIdDeriver, resolveAnchors } from "./drivers/pframe/spec/anchored.js";
26
27
  import { isAnchoredPColumnId, legacyColumnSelectorsToPredicate, matchAxis, matchMultiColumnSelector, matchPColumn, multiColumnSelectorsToPredicate } from "./drivers/pframe/spec/selectors.js";
27
28
  import { deriveNativeId } from "./drivers/pframe/spec/native_id.js";
@@ -52,4 +53,9 @@ import { convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorT
52
53
  import { dedupColumns } from "./columns/dedup.js";
53
54
  import { AccessorEntriesProvider, ResultPoolEntriesProvider } from "./columns/providers.js";
54
55
  import "./columns/index.js";
55
- export { AbortError, AccessorEntriesProvider, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, COLLECT_TYPES, ChunkedStreamReader, Code, ColumnRegistry, DESCEND_TYPES, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, MODEL_SERVICE_METHOD_MAP, ModelServiceRegistry, PAxisName, PColumnName, PFrameDriverError, PFrameError, PFrameSpecDriverError, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntryGuard, REQUIRES_PFRAMES_VERSION, RangeBytes, ResourceTypeName, ResourceTypePrefix, ResultPoolEntriesProvider, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, Services, UiError, UiServiceRegistry, ValueType, XLSX_MAX_ROWS_PER_SHEET, applyAxisFilters, applySpecOverrides, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector, createColumnDiscoveredId, createColumnDiscoveredKey, createColumnFilteredId, createColumnFilteredKey, createColumnOverriddenId, createColumnOverriddenKey, createEnrichmentRef, createGlobalPObjectId, createLocalPObjectId, createNodeServiceHandlers, createPObjectId, createPlRef, createPrimaryRef, dataInfoToEntries, dedupColumns, deriveNativeId, deriveSpecDelta, deserializeError, deserializeResult, digestPlId, distillColumnDiscoveredKey, distillColumnOverriddenKey, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, extractPObjectId, findDescendantsByType, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, indexAccessorRoot, indexPoolBlock, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockUIURL, isBooleanExpression, isColumnDiscoveredId, isColumnDiscoveredKey, isColumnFilteredId, isColumnFilteredKey, isColumnOverriddenKey, isDataInfo, isDataInfoEntries, isEmptySpecDelta, isEnrichmentRef, isFilteredPColumn, isFolderURL, isGlobalPObjectId, isGlobalPObjectKey, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isLocalPObjectId, isLocalPObjectKey, isMainService, isNodeService, isPColumn, isPColumnSpec, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPObject, isPObjectId, isPObjectKey, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isValueNA, isWasmService, legacyColumnSelectorsToPredicate, listColumnNames, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, matchingModeToConstraints, mergeSpecOverrides, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseColumnDiscoveredId, parseColumnId, parseColumnIdSafely, parseColumnOverriddenId, parseHttpAuth, parseJson, parseJsonSafely, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, reconstructSpecFromId, registerServiceCapabilities, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, stringifyColumnDiscoveredId, stringifyColumnFilteredId, stringifyColumnId, stringifyColumnOverriddenId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapOverrides, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
56
+ import { formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference } from "./template/kind_selector.js";
57
+ import { PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateV1ParseError, formatTemplateParseIssue, parseBlockPackLocation, parseBlockPackReference, parseProjectTemplateV1, readProjectTemplateV1 } from "./template/project_template_v1.js";
58
+ import { expandTemplateRefs, isTemplatePlRef } from "./template/template_ref_form.js";
59
+ import { relocateBlockIds } from "./template/template_relocate.js";
60
+ import "./template/index.js";
61
+ export { AbortError, AccessorEntriesProvider, AllRequiresFeatureFlags, AllSupportsFeatureFlags, AnchoredIdDeriver, Annotation, AnnotationJson, COLLECT_TYPES, ChunkedStreamReader, Code, ColumnRegistry, DESCEND_TYPES, DefaultNavigationState, Domain, DomainJson, IncompatibleFlagsError, LinkerMap, MODEL_SERVICE_METHOD_MAP, ModelServiceRegistry, PAxisName, PColumnName, PFrameDriverError, PFrameError, PFrameSpecDriverError, PROJECT_TEMPLATE_SCHEMA_V1, PTableNA, PlId, PlIdBytes, PlIdLength, PlRef, PoolEntryGuard, ProjectTemplateV1ParseError, REQUIRES_PFRAMES_VERSION, RangeBytes, ResourceTypeName, ResourceTypePrefix, ResultPoolEntriesProvider, RuntimeCapabilities, SERVICE_CAPABILITY_FLAGS, SERVICE_FEATURE_FLAGS, SERVICE_METHOD_MAP, ServiceAlreadyRegisteredError, ServiceError, ServiceInjectionError, ServiceInvalidIdError, ServiceMethodNotFoundError, ServiceNotRegisteredError, Services, UiError, UiServiceRegistry, ValueType, XLSX_MAX_ROWS_PER_SHEET, applyAxisFilters, applySpecOverrides, assertNever, base64Decode, base64Encode, bigintReplacer, buildServiceInfo, canonicalizeAxisId, canonicalizeAxisWithParents, canonicalizeJson, checkBlockFlag, collectSpecQueryColumns, convertColumnSelectorToMultiColumnSelector, convertRelaxedAxisSelectorToMultiAxisSelector, convertRelaxedColumnSelectorToMultiColumnSelector, createColumnDiscoveredId, createColumnDiscoveredKey, createColumnFilteredId, createColumnFilteredKey, createColumnOverriddenId, createColumnOverriddenKey, createEnrichmentRef, createGlobalPObjectId, createLocalPObjectId, createNodeServiceHandlers, createPObjectId, createPlRef, createPrimaryRef, dataInfoToEntries, dedupColumns, deriveNativeId, deriveSpecDelta, deserializeError, deserializeResult, digestPlId, distillColumnDiscoveredKey, distillColumnOverriddenKey, ensureError, ensurePColumn, entriesToDataInfo, executePSpecPredicate, expandTemplateRefs, extractAllColumns, extractAllRequirements, extractAllSupports, extractCodeWithInfo, extractConfigGeneric, extractPObjectId, findDescendantsByType, formatKindRef, formatKindSelector, formatKindSelectorReference, formatTemplateParseIssue, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getFileNameFromHandle, getFilePathFromHandle, getMethodNames, getNormalizedAxesList, getPColumnSpecId, getPTableColumnId, getServiceKind, getServiceModelMethods, getServiceUiMethods, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, hasAbortError, indexAccessorRoot, indexPoolBlock, isAbortError, isAggregateError, isAnchoredPColumnId, isAnyLogHandle, isAxisId, isBlockKindSelectorReference, isBlockUIURL, isBooleanExpression, isColumnDiscoveredId, isColumnDiscoveredKey, isColumnFilteredId, isColumnFilteredKey, isColumnOverriddenKey, isColumnUniversalId, isColumnUniversalKey, isDataInfo, isDataInfoEntries, isEmptySpecDelta, isEnrichmentRef, isFilteredPColumn, isFolderURL, isGlobalPObjectId, isGlobalPObjectKey, isImportFileHandleIndex, isImportFileHandleUpload, isKnownServiceName, isLabelColumn, isLinkerColumn, isLiveLog, isLocalPObjectId, isLocalPObjectKey, isMainService, isNodeService, isPColumn, isPColumnSpec, isPFrameDriverError, isPFrameError, isPFrameSpecDriverError, isPObject, isPObjectId, isPObjectKey, isPTableNA, isPartitionedDataInfoEntries, isPlRef, isPrimaryRef, isServiceAlreadyRegisteredError, isServiceError, isServiceInjectionError, isServiceInvalidIdError, isServiceMethodNotFoundError, isServiceNotRegisteredError, isTemplatePlRef, isValueNA, isWasmService, kindReferenceToSelectorReference, legacyColumnSelectorsToPredicate, listColumnNames, mapDataInfo, mapDataInfoEntries, mapJoinEntry, mapPObjectData, mapPTableDef, mapPTableDefV2, mapSpecQueryColumns, mapValueInVOE, matchAxis, matchAxisId, matchMultiColumnSelector, matchPColumn, matchingModeToConstraints, mergeSpecOverrides, multiColumnSelectorsToPredicate, newRangeBytesOpt, pTableValue, pTableValueBranded, parseBlockPackLocation, parseBlockPackReference, parseColumnDiscoveredId, parseColumnId, parseColumnIdSafely, parseColumnOverriddenId, parseHttpAuth, parseJson, parseJsonSafely, parseKindRef, parseKindSelector, parseKindSelectorReference, parseProjectTemplateV1, peelJsonLayers, plId, plRefsEqual, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow, readProjectTemplateV1, reconstructSpecFromId, registerServiceCapabilities, relocateBlockIds, remapColumnIdBlockIds, resolveAnchors, resolveAnnotationParents, resolveNodeServiceHandler, resolveRequiredServices, serializeError, serializeHttpAuth, serializeResult, service, serviceFnKey, sortJoinEntry, sortPTableDef, sortSpecQuery, splitVersionedName, stringifyColumnDiscoveredId, stringifyColumnFilteredId, stringifyColumnId, stringifyColumnOverriddenId, stringifyJson, traverseQuerySpec, uniqueBy, uniquePlId, unwrapOverrides, unwrapResult, validateRangeBytes, visitDataInfo, withEnrichments, wrapAndSerialize, wrapAndSerializeAsync, wrapAsyncCallback, wrapCallback };
package/dist/plid.cjs CHANGED
@@ -5,7 +5,7 @@ let zod = require("zod");
5
5
  const PlIdBytes = 15;
6
6
  /** Characters in string representation */
7
7
  const PlIdLength = 24;
8
- const PlId = zod.z.string().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
8
+ const PlId = zod.z.string().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/);
9
9
  function uniquePlId() {
10
10
  const data = /* @__PURE__ */ new Uint8Array(15);
11
11
  crypto.getRandomValues(data);
package/dist/plid.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plid.cjs","names":["z","base32Encode"],"sources":["../src/plid.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { base32Encode } from \"./base32_encode\";\n\n/** Number of raw bytes in the PlId. */\nexport const PlIdBytes = 15;\n/** Characters in string representation */\nexport const PlIdLength = 24; // = 15 bytes * 8 bits / 5 bits per char in base32\n\nexport const PlId = z\n .string()\n .length(PlIdLength)\n .regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/) // RFC4648\n .brand(\"PlId\");\nexport type PlId = z.infer<typeof PlId>;\n\nexport function uniquePlId(): PlId {\n const data = new Uint8Array(PlIdBytes);\n crypto.getRandomValues(data);\n return PlId.parse(base32Encode(data, \"RFC4648\"));\n}\n\nexport function plId(bytes: Uint8Array): PlId {\n if (bytes.length !== PlIdBytes) throw new Error(`Wrong number of bytes: ${bytes.length}`);\n return PlId.parse(base32Encode(bytes, \"RFC4648\"));\n}\n\nexport async function digestPlId(data: string): Promise<PlId> {\n const encoder = new TextEncoder();\n const bytes = await crypto.subtle.digest(\"SHA-256\", encoder.encode(data));\n return plId(new Uint8Array(bytes.slice(0, 15)));\n}\n"],"mappings":";;;;AAIA,MAAa,YAAY;;AAEzB,MAAa,aAAa;AAE1B,MAAa,OAAOA,IAAAA,EACjB,OAAO,CAAC,CACR,OAAA,EAAiB,CAAC,CAClB,MAAM,oCAAoC,CAAC,CAC3C,MAAM,MAAM;AAGf,SAAgB,aAAmB;CACjC,MAAM,uBAAO,IAAI,WAAA,EAAoB;CACrC,OAAO,gBAAgB,IAAI;CAC3B,OAAO,KAAK,MAAMC,sBAAAA,aAAa,MAAM,SAAS,CAAC;AACjD;AAEA,SAAgB,KAAK,OAAyB;CAC5C,IAAI,MAAM,WAAA,IAAsB,MAAM,IAAI,MAAM,0BAA0B,MAAM,QAAQ;CACxF,OAAO,KAAK,MAAMA,sBAAAA,aAAa,OAAO,SAAS,CAAC;AAClD;AAEA,eAAsB,WAAW,MAA6B;CAC5D,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,QAAQ,MAAM,OAAO,OAAO,OAAO,WAAW,QAAQ,OAAO,IAAI,CAAC;CACxE,OAAO,KAAK,IAAI,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAChD"}
1
+ {"version":3,"file":"plid.cjs","names":["z","base32Encode"],"sources":["../src/plid.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { base32Encode } from \"./base32_encode\";\nimport { Branded } from \"@milaboratories/helpers\";\n\n/** Number of raw bytes in the PlId. */\nexport const PlIdBytes = 15;\n/** Characters in string representation */\nexport const PlIdLength = 24; // = 15 bytes * 8 bits / 5 bits per char in base32\n\nexport const PlId = z\n .string()\n .length(PlIdLength)\n .regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/); // RFC4648\nexport type PlId = Branded<z.infer<typeof PlId>, \"PlId\">;\n\nexport function uniquePlId(): PlId {\n const data = new Uint8Array(PlIdBytes);\n crypto.getRandomValues(data);\n return PlId.parse(base32Encode(data, \"RFC4648\")) as PlId;\n}\n\nexport function plId(bytes: Uint8Array): PlId {\n if (bytes.length !== PlIdBytes) throw new Error(`Wrong number of bytes: ${bytes.length}`);\n return PlId.parse(base32Encode(bytes, \"RFC4648\")) as PlId;\n}\n\nexport async function digestPlId(data: string): Promise<PlId> {\n const encoder = new TextEncoder();\n const bytes = await crypto.subtle.digest(\"SHA-256\", encoder.encode(data));\n return plId(new Uint8Array(bytes.slice(0, 15)));\n}\n"],"mappings":";;;;AAKA,MAAa,YAAY;;AAEzB,MAAa,aAAa;AAE1B,MAAa,OAAOA,IAAAA,EACjB,OAAO,CAAC,CACR,OAAA,EAAiB,CAAC,CAClB,MAAM,oCAAoC;AAG7C,SAAgB,aAAmB;CACjC,MAAM,uBAAO,IAAI,WAAA,EAAoB;CACrC,OAAO,gBAAgB,IAAI;CAC3B,OAAO,KAAK,MAAMC,sBAAAA,aAAa,MAAM,SAAS,CAAC;AACjD;AAEA,SAAgB,KAAK,OAAyB;CAC5C,IAAI,MAAM,WAAA,IAAsB,MAAM,IAAI,MAAM,0BAA0B,MAAM,QAAQ;CACxF,OAAO,KAAK,MAAMA,sBAAAA,aAAa,OAAO,SAAS,CAAC;AAClD;AAEA,eAAsB,WAAW,MAA6B;CAC5D,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,QAAQ,MAAM,OAAO,OAAO,OAAO,WAAW,QAAQ,OAAO,IAAI,CAAC;CACxE,OAAO,KAAK,IAAI,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAChD"}
package/dist/plid.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { z } from "zod";
2
+ import { Branded } from "@milaboratories/helpers";
2
3
 
3
4
  //#region src/plid.d.ts
4
5
  /** Number of raw bytes in the PlId. */
5
6
  declare const PlIdBytes = 15;
6
7
  /** Characters in string representation */
7
8
  declare const PlIdLength = 24;
8
- declare const PlId: z.ZodBranded<z.ZodString, "PlId">;
9
- type PlId = z.infer<typeof PlId>;
9
+ declare const PlId: z.ZodString;
10
+ type PlId = Branded<z.infer<typeof PlId>, "PlId">;
10
11
  declare function uniquePlId(): PlId;
11
12
  declare function plId(bytes: Uint8Array): PlId;
12
13
  declare function digestPlId(data: string): Promise<PlId>;
@@ -1 +1 @@
1
- {"version":3,"file":"plid.d.ts","names":[],"sources":["../src/plid.ts"],"mappings":";;;;cAIa,SAAA;AAAb;AAAA,cAEa,UAAA;AAAA,cAEA,IAAA,EAAI,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA,SAAA;AAAA,KAKL,IAAA,GAAO,CAAA,CAAE,KAAK,QAAQ,IAAA;AAAA,iBAElB,UAAA,IAAc,IAAI;AAAA,iBAMlB,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,IAAI;AAAA,iBAKvB,UAAA,CAAW,IAAA,WAAe,OAAO,CAAC,IAAA"}
1
+ {"version":3,"file":"plid.d.ts","names":[],"sources":["../src/plid.ts"],"mappings":";;;;;cAKa,SAAA;AAAb;AAAA,cAEa,UAAA;AAAA,cAEA,IAAA,EAAI,CAAA,CAAA,SAG6B;AAAA,KAClC,IAAA,GAAO,OAAA,CAAQ,CAAA,CAAE,KAAA,QAAa,IAAA;AAAA,iBAE1B,UAAA,IAAc,IAAI;AAAA,iBAMlB,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,IAAI;AAAA,iBAKvB,UAAA,CAAW,IAAA,WAAe,OAAO,CAAC,IAAA"}
package/dist/plid.js CHANGED
@@ -5,7 +5,7 @@ import { z } from "zod";
5
5
  const PlIdBytes = 15;
6
6
  /** Characters in string representation */
7
7
  const PlIdLength = 24;
8
- const PlId = z.string().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
8
+ const PlId = z.string().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/);
9
9
  function uniquePlId() {
10
10
  const data = /* @__PURE__ */ new Uint8Array(15);
11
11
  crypto.getRandomValues(data);
package/dist/plid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plid.js","names":[],"sources":["../src/plid.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { base32Encode } from \"./base32_encode\";\n\n/** Number of raw bytes in the PlId. */\nexport const PlIdBytes = 15;\n/** Characters in string representation */\nexport const PlIdLength = 24; // = 15 bytes * 8 bits / 5 bits per char in base32\n\nexport const PlId = z\n .string()\n .length(PlIdLength)\n .regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/) // RFC4648\n .brand(\"PlId\");\nexport type PlId = z.infer<typeof PlId>;\n\nexport function uniquePlId(): PlId {\n const data = new Uint8Array(PlIdBytes);\n crypto.getRandomValues(data);\n return PlId.parse(base32Encode(data, \"RFC4648\"));\n}\n\nexport function plId(bytes: Uint8Array): PlId {\n if (bytes.length !== PlIdBytes) throw new Error(`Wrong number of bytes: ${bytes.length}`);\n return PlId.parse(base32Encode(bytes, \"RFC4648\"));\n}\n\nexport async function digestPlId(data: string): Promise<PlId> {\n const encoder = new TextEncoder();\n const bytes = await crypto.subtle.digest(\"SHA-256\", encoder.encode(data));\n return plId(new Uint8Array(bytes.slice(0, 15)));\n}\n"],"mappings":";;;;AAIA,MAAa,YAAY;;AAEzB,MAAa,aAAa;AAE1B,MAAa,OAAO,EACjB,OAAO,CAAC,CACR,OAAA,EAAiB,CAAC,CAClB,MAAM,oCAAoC,CAAC,CAC3C,MAAM,MAAM;AAGf,SAAgB,aAAmB;CACjC,MAAM,uBAAO,IAAI,WAAA,EAAoB;CACrC,OAAO,gBAAgB,IAAI;CAC3B,OAAO,KAAK,MAAM,aAAa,MAAM,SAAS,CAAC;AACjD;AAEA,SAAgB,KAAK,OAAyB;CAC5C,IAAI,MAAM,WAAA,IAAsB,MAAM,IAAI,MAAM,0BAA0B,MAAM,QAAQ;CACxF,OAAO,KAAK,MAAM,aAAa,OAAO,SAAS,CAAC;AAClD;AAEA,eAAsB,WAAW,MAA6B;CAC5D,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,QAAQ,MAAM,OAAO,OAAO,OAAO,WAAW,QAAQ,OAAO,IAAI,CAAC;CACxE,OAAO,KAAK,IAAI,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAChD"}
1
+ {"version":3,"file":"plid.js","names":[],"sources":["../src/plid.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { base32Encode } from \"./base32_encode\";\nimport { Branded } from \"@milaboratories/helpers\";\n\n/** Number of raw bytes in the PlId. */\nexport const PlIdBytes = 15;\n/** Characters in string representation */\nexport const PlIdLength = 24; // = 15 bytes * 8 bits / 5 bits per char in base32\n\nexport const PlId = z\n .string()\n .length(PlIdLength)\n .regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/); // RFC4648\nexport type PlId = Branded<z.infer<typeof PlId>, \"PlId\">;\n\nexport function uniquePlId(): PlId {\n const data = new Uint8Array(PlIdBytes);\n crypto.getRandomValues(data);\n return PlId.parse(base32Encode(data, \"RFC4648\")) as PlId;\n}\n\nexport function plId(bytes: Uint8Array): PlId {\n if (bytes.length !== PlIdBytes) throw new Error(`Wrong number of bytes: ${bytes.length}`);\n return PlId.parse(base32Encode(bytes, \"RFC4648\")) as PlId;\n}\n\nexport async function digestPlId(data: string): Promise<PlId> {\n const encoder = new TextEncoder();\n const bytes = await crypto.subtle.digest(\"SHA-256\", encoder.encode(data));\n return plId(new Uint8Array(bytes.slice(0, 15)));\n}\n"],"mappings":";;;;AAKA,MAAa,YAAY;;AAEzB,MAAa,aAAa;AAE1B,MAAa,OAAO,EACjB,OAAO,CAAC,CACR,OAAA,EAAiB,CAAC,CAClB,MAAM,oCAAoC;AAG7C,SAAgB,aAAmB;CACjC,MAAM,uBAAO,IAAI,WAAA,EAAoB;CACrC,OAAO,gBAAgB,IAAI;CAC3B,OAAO,KAAK,MAAM,aAAa,MAAM,SAAS,CAAC;AACjD;AAEA,SAAgB,KAAK,OAAyB;CAC5C,IAAI,MAAM,WAAA,IAAsB,MAAM,IAAI,MAAM,0BAA0B,MAAM,QAAQ;CACxF,OAAO,KAAK,MAAM,aAAa,OAAO,SAAS,CAAC;AAClD;AAEA,eAAsB,WAAW,MAA6B;CAC5D,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,QAAQ,MAAM,OAAO,OAAO,OAAO,WAAW,QAAQ,OAAO,IAAI,CAAC;CACxE,OAAO,KAAK,IAAI,WAAW,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAChD"}
@@ -0,0 +1,20 @@
1
+ const require_kind_selector = require("./kind_selector.cjs");
2
+ const require_project_template_v1 = require("./project_template_v1.cjs");
3
+ const require_template_ref_form = require("./template_ref_form.cjs");
4
+ const require_template_relocate = require("./template_relocate.cjs");
5
+ exports.PROJECT_TEMPLATE_SCHEMA_V1 = require_project_template_v1.PROJECT_TEMPLATE_SCHEMA_V1;
6
+ exports.ProjectTemplateV1ParseError = require_project_template_v1.ProjectTemplateV1ParseError;
7
+ exports.expandTemplateRefs = require_template_ref_form.expandTemplateRefs;
8
+ exports.formatKindSelector = require_kind_selector.formatKindSelector;
9
+ exports.formatKindSelectorReference = require_kind_selector.formatKindSelectorReference;
10
+ exports.formatTemplateParseIssue = require_project_template_v1.formatTemplateParseIssue;
11
+ exports.isBlockKindSelectorReference = require_kind_selector.isBlockKindSelectorReference;
12
+ exports.isTemplatePlRef = require_template_ref_form.isTemplatePlRef;
13
+ exports.kindReferenceToSelectorReference = require_kind_selector.kindReferenceToSelectorReference;
14
+ exports.parseBlockPackLocation = require_project_template_v1.parseBlockPackLocation;
15
+ exports.parseBlockPackReference = require_project_template_v1.parseBlockPackReference;
16
+ exports.parseKindSelector = require_kind_selector.parseKindSelector;
17
+ exports.parseKindSelectorReference = require_kind_selector.parseKindSelectorReference;
18
+ exports.parseProjectTemplateV1 = require_project_template_v1.parseProjectTemplateV1;
19
+ exports.readProjectTemplateV1 = require_project_template_v1.readProjectTemplateV1;
20
+ exports.relocateBlockIds = require_template_relocate.relocateBlockIds;
@@ -0,0 +1,5 @@
1
+ import { BlockKindSelectorReference, KindSelector, KindSelectorOp, formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference } from "./kind_selector.js";
2
+ import { BlockPackLocationReference, BlockPackLocatorOverride, BlockPackReference, PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateSchemaV1, ProjectTemplateV1, ProjectTemplateV1Entry, ProjectTemplateV1ParseError, ProjectTemplateV1ReadResult, TemplateParseIssue, formatTemplateParseIssue, parseBlockPackLocation, parseBlockPackReference, parseProjectTemplateV1, readProjectTemplateV1 } from "./project_template_v1.js";
3
+ import { TemplatePlRef, expandTemplateRefs, isTemplatePlRef } from "./template_ref_form.js";
4
+ import { relocateBlockIds } from "./template_relocate.js";
5
+ export { BlockKindSelectorReference, BlockPackLocationReference, BlockPackLocatorOverride, BlockPackReference, KindSelector, KindSelectorOp, PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateSchemaV1, ProjectTemplateV1, ProjectTemplateV1Entry, ProjectTemplateV1ParseError, ProjectTemplateV1ReadResult, TemplateParseIssue, TemplatePlRef, expandTemplateRefs, formatKindSelector, formatKindSelectorReference, formatTemplateParseIssue, isBlockKindSelectorReference, isTemplatePlRef, kindReferenceToSelectorReference, parseBlockPackLocation, parseBlockPackReference, parseKindSelector, parseKindSelectorReference, parseProjectTemplateV1, readProjectTemplateV1, relocateBlockIds };
@@ -0,0 +1,5 @@
1
+ import { formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference } from "./kind_selector.js";
2
+ import { PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateV1ParseError, formatTemplateParseIssue, parseBlockPackLocation, parseBlockPackReference, parseProjectTemplateV1, readProjectTemplateV1 } from "./project_template_v1.js";
3
+ import { expandTemplateRefs, isTemplatePlRef } from "./template_ref_form.js";
4
+ import { relocateBlockIds } from "./template_relocate.js";
5
+ export { PROJECT_TEMPLATE_SCHEMA_V1, ProjectTemplateV1ParseError, expandTemplateRefs, formatKindSelector, formatKindSelectorReference, formatTemplateParseIssue, isBlockKindSelectorReference, isTemplatePlRef, kindReferenceToSelectorReference, parseBlockPackLocation, parseBlockPackReference, parseKindSelector, parseKindSelectorReference, parseProjectTemplateV1, readProjectTemplateV1, relocateBlockIds };
@@ -0,0 +1,92 @@
1
+ const require_block_kind_ref = require("../bmodel/block_kind_ref.cjs");
2
+ //#region src/template/kind_selector.ts
3
+ /** `X.Y.Z` with optional semver prerelease and build metadata. */
4
+ const semVerRegex = /^\d+\.\d+\.\d+(?:-[\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*)?(?:\+[\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*)?$/;
5
+ /**
6
+ * Split a raw selector string (`1.2.0`, `~1.2.0`, `^1.2.0`) into its parts.
7
+ *
8
+ * The version is validated as `X.Y.Z`, so a range that is legal npm but not part
9
+ * of the kind grammar (`>=1.0.0`, `1.x`, `latest`) is rejected here rather than
10
+ * reaching resolution. Note the deliberate divergence from
11
+ * `tools/block-tools`'s `parseSelector`, which additionally tolerates a leading
12
+ * `@` as `exact`: after the `{name}@{selector}` split a leading `@` can only
13
+ * come from a doubled separator, which is malformed.
14
+ *
15
+ * Mapping a selector onto a concrete version is resolution, not parsing, and
16
+ * lives with the resolver (`kind_resolver.selectorToRange`).
17
+ *
18
+ * @throws if the version part is not `X.Y.Z`
19
+ */
20
+ function parseKindSelector(raw) {
21
+ const s = raw.trim();
22
+ const op = s.startsWith("~") ? "patch" : s.startsWith("^") ? "minor" : "exact";
23
+ const version = op === "exact" ? s : s.slice(1);
24
+ if (!semVerRegex.test(version)) throw new Error(`Malformed kind version selector (expected 'X.Y.Z', '~X.Y.Z' or '^X.Y.Z'): ${raw}`);
25
+ return {
26
+ op,
27
+ version
28
+ };
29
+ }
30
+ /** Render a {@link KindSelector} back to its on-wire string. */
31
+ function formatKindSelector(sel) {
32
+ switch (sel.op) {
33
+ case "exact": return sel.version;
34
+ case "patch": return `~${sel.version}`;
35
+ case "minor": return `^${sel.version}`;
36
+ }
37
+ }
38
+ /**
39
+ * Split a {@link BlockKindSelectorReference} into `{ name, selector }`.
40
+ *
41
+ * @throws if the reference carries no version segment, or the selector is
42
+ * outside the `X.Y.Z` / `~X.Y.Z` / `^X.Y.Z` grammar
43
+ */
44
+ function parseKindSelectorReference(ref) {
45
+ const { name, version } = require_block_kind_ref.splitVersionedName(ref, "kind selector reference", "{name}@{selector}");
46
+ return {
47
+ name,
48
+ selector: parseKindSelector(version)
49
+ };
50
+ }
51
+ /**
52
+ * Compose a {@link BlockKindSelectorReference} from a name and selector.
53
+ *
54
+ * A formatter, not a validator — pass a selector that came from
55
+ * {@link parseKindSelector} or that you constructed from a known-good version.
56
+ */
57
+ function formatKindSelectorReference(k) {
58
+ return `${k.name}@${formatKindSelector(k.selector)}`;
59
+ }
60
+ /**
61
+ * Widen a resolved {@link BlockKindReference} to its `exact`-tier selector form.
62
+ *
63
+ * The export direction: a block implements exactly one kind version, so export
64
+ * always emits `{name}@X.Y.Z`. Validates on the way through, so a
65
+ * malformed stored reference fails at the boundary rather than in the file.
66
+ */
67
+ function kindReferenceToSelectorReference(ref) {
68
+ const { name, version } = require_block_kind_ref.parseKindRef(ref);
69
+ return formatKindSelectorReference({
70
+ name,
71
+ selector: parseKindSelector(version)
72
+ });
73
+ }
74
+ /** Whether `value` is a well-formed `{name}@{selector}` string. */
75
+ function isBlockKindSelectorReference(value) {
76
+ if (typeof value !== "string") return false;
77
+ try {
78
+ parseKindSelectorReference(value);
79
+ return true;
80
+ } catch {
81
+ return false;
82
+ }
83
+ }
84
+ //#endregion
85
+ exports.formatKindSelector = formatKindSelector;
86
+ exports.formatKindSelectorReference = formatKindSelectorReference;
87
+ exports.isBlockKindSelectorReference = isBlockKindSelectorReference;
88
+ exports.kindReferenceToSelectorReference = kindReferenceToSelectorReference;
89
+ exports.parseKindSelector = parseKindSelector;
90
+ exports.parseKindSelectorReference = parseKindSelectorReference;
91
+
92
+ //# sourceMappingURL=kind_selector.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind_selector.cjs","names":["splitVersionedName","parseKindRef"],"sources":["../../src/template/kind_selector.ts"],"sourcesContent":["import type { Branded } from \"@milaboratories/helpers\";\nimport type { BlockKindReference } from \"../bmodel/block_kind_ref\";\nimport { parseKindRef, splitVersionedName } from \"../bmodel/block_kind_ref\";\n\n/**\n * Version-selection tier of a template entry's `kind` field.\n *\n * - `exact` — `X.Y.Z`: this version and no other.\n * - `patch` — `~X.Y.Z`: patch floor, behavior frozen.\n * - `minor` — `^X.Y.Z`: minor floor, behavior floats.\n */\nexport type KindSelectorOp = \"exact\" | \"patch\" | \"minor\";\n\n/** The version half of a `{name}@{selector}` kind reference, split into parts. */\nexport type KindSelector = {\n readonly op: KindSelectorOp;\n readonly version: string;\n};\n\n/**\n * On-wire reference to a *set* of block kind versions: `{name}@{selector}`, e.g.\n * `@platforma-open/milaboratories.mixcr-clonotyping.kind@~1.2.0`.\n *\n * The template-file form of a kind reference, and the only form the\n * `template-v1` schema accepts in an entry's `kind` field. It is the same string\n * shape as {@link BlockKindReference} widened by the `~`/`^` tiers, but branded\n * separately so a *resolved* kind reference is never silently passed where a\n * selector is expected, or vice versa. Widen an exact reference explicitly with\n * {@link kindReferenceToSelectorReference}.\n */\nexport type BlockKindSelectorReference = Branded<string, \"BlockKindSelectorReference\">;\n\n/** `X.Y.Z` with optional semver prerelease and build metadata. */\nconst semVerRegex =\n /^\\d+\\.\\d+\\.\\d+(?:-[\\dA-Za-z-]+(?:\\.[\\dA-Za-z-]+)*)?(?:\\+[\\dA-Za-z-]+(?:\\.[\\dA-Za-z-]+)*)?$/;\n\n/**\n * Split a raw selector string (`1.2.0`, `~1.2.0`, `^1.2.0`) into its parts.\n *\n * The version is validated as `X.Y.Z`, so a range that is legal npm but not part\n * of the kind grammar (`>=1.0.0`, `1.x`, `latest`) is rejected here rather than\n * reaching resolution. Note the deliberate divergence from\n * `tools/block-tools`'s `parseSelector`, which additionally tolerates a leading\n * `@` as `exact`: after the `{name}@{selector}` split a leading `@` can only\n * come from a doubled separator, which is malformed.\n *\n * Mapping a selector onto a concrete version is resolution, not parsing, and\n * lives with the resolver (`kind_resolver.selectorToRange`).\n *\n * @throws if the version part is not `X.Y.Z`\n */\nexport function parseKindSelector(raw: string): KindSelector {\n const s = raw.trim();\n const op: KindSelectorOp = s.startsWith(\"~\") ? \"patch\" : s.startsWith(\"^\") ? \"minor\" : \"exact\";\n const version = op === \"exact\" ? s : s.slice(1);\n if (!semVerRegex.test(version)) {\n throw new Error(\n `Malformed kind version selector (expected 'X.Y.Z', '~X.Y.Z' or '^X.Y.Z'): ${raw}`,\n );\n }\n return { op, version };\n}\n\n/** Render a {@link KindSelector} back to its on-wire string. */\nexport function formatKindSelector(sel: KindSelector): string {\n switch (sel.op) {\n case \"exact\":\n return sel.version;\n case \"patch\":\n return `~${sel.version}`;\n case \"minor\":\n return `^${sel.version}`;\n }\n}\n\n/**\n * Split a {@link BlockKindSelectorReference} into `{ name, selector }`.\n *\n * @throws if the reference carries no version segment, or the selector is\n * outside the `X.Y.Z` / `~X.Y.Z` / `^X.Y.Z` grammar\n */\nexport function parseKindSelectorReference(ref: BlockKindSelectorReference): {\n name: string;\n selector: KindSelector;\n} {\n const { name, version } = splitVersionedName(ref, \"kind selector reference\", \"{name}@{selector}\");\n return { name, selector: parseKindSelector(version) };\n}\n\n/**\n * Compose a {@link BlockKindSelectorReference} from a name and selector.\n *\n * A formatter, not a validator — pass a selector that came from\n * {@link parseKindSelector} or that you constructed from a known-good version.\n */\nexport function formatKindSelectorReference(k: {\n name: string;\n selector: KindSelector;\n}): BlockKindSelectorReference {\n return `${k.name}@${formatKindSelector(k.selector)}` as BlockKindSelectorReference;\n}\n\n/**\n * Widen a resolved {@link BlockKindReference} to its `exact`-tier selector form.\n *\n * The export direction: a block implements exactly one kind version, so export\n * always emits `{name}@X.Y.Z`. Validates on the way through, so a\n * malformed stored reference fails at the boundary rather than in the file.\n */\nexport function kindReferenceToSelectorReference(\n ref: BlockKindReference,\n): BlockKindSelectorReference {\n const { name, version } = parseKindRef(ref);\n return formatKindSelectorReference({ name, selector: parseKindSelector(version) });\n}\n\n/** Whether `value` is a well-formed `{name}@{selector}` string. */\nexport function isBlockKindSelectorReference(value: unknown): value is BlockKindSelectorReference {\n if (typeof value !== \"string\") return false;\n try {\n parseKindSelectorReference(value as BlockKindSelectorReference);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;AAiCA,MAAM,cACJ;;;;;;;;;;;;;;;;AAiBF,SAAgB,kBAAkB,KAA2B;CAC3D,MAAM,IAAI,IAAI,KAAK;CACnB,MAAM,KAAqB,EAAE,WAAW,GAAG,IAAI,UAAU,EAAE,WAAW,GAAG,IAAI,UAAU;CACvF,MAAM,UAAU,OAAO,UAAU,IAAI,EAAE,MAAM,CAAC;CAC9C,IAAI,CAAC,YAAY,KAAK,OAAO,GAC3B,MAAM,IAAI,MACR,6EAA6E,KAC/E;CAEF,OAAO;EAAE;EAAI;CAAQ;AACvB;;AAGA,SAAgB,mBAAmB,KAA2B;CAC5D,QAAQ,IAAI,IAAZ;EACE,KAAK,SACH,OAAO,IAAI;EACb,KAAK,SACH,OAAO,IAAI,IAAI;EACjB,KAAK,SACH,OAAO,IAAI,IAAI;CACnB;AACF;;;;;;;AAQA,SAAgB,2BAA2B,KAGzC;CACA,MAAM,EAAE,MAAM,YAAYA,uBAAAA,mBAAmB,KAAK,2BAA2B,mBAAmB;CAChG,OAAO;EAAE;EAAM,UAAU,kBAAkB,OAAO;CAAE;AACtD;;;;;;;AAQA,SAAgB,4BAA4B,GAGb;CAC7B,OAAO,GAAG,EAAE,KAAK,GAAG,mBAAmB,EAAE,QAAQ;AACnD;;;;;;;;AASA,SAAgB,iCACd,KAC4B;CAC5B,MAAM,EAAE,MAAM,YAAYC,uBAAAA,aAAa,GAAG;CAC1C,OAAO,4BAA4B;EAAE;EAAM,UAAU,kBAAkB,OAAO;CAAE,CAAC;AACnF;;AAGA,SAAgB,6BAA6B,OAAqD;CAChG,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,IAAI;EACF,2BAA2B,KAAmC;EAC9D,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF"}
@@ -0,0 +1,80 @@
1
+ import { BlockKindReference } from "../bmodel/block_kind_ref.js";
2
+ import { Branded } from "@milaboratories/helpers";
3
+
4
+ //#region src/template/kind_selector.d.ts
5
+ /**
6
+ * Version-selection tier of a template entry's `kind` field.
7
+ *
8
+ * - `exact` — `X.Y.Z`: this version and no other.
9
+ * - `patch` — `~X.Y.Z`: patch floor, behavior frozen.
10
+ * - `minor` — `^X.Y.Z`: minor floor, behavior floats.
11
+ */
12
+ type KindSelectorOp = "exact" | "patch" | "minor";
13
+ /** The version half of a `{name}@{selector}` kind reference, split into parts. */
14
+ type KindSelector = {
15
+ readonly op: KindSelectorOp;
16
+ readonly version: string;
17
+ };
18
+ /**
19
+ * On-wire reference to a *set* of block kind versions: `{name}@{selector}`, e.g.
20
+ * `@platforma-open/milaboratories.mixcr-clonotyping.kind@~1.2.0`.
21
+ *
22
+ * The template-file form of a kind reference, and the only form the
23
+ * `template-v1` schema accepts in an entry's `kind` field. It is the same string
24
+ * shape as {@link BlockKindReference} widened by the `~`/`^` tiers, but branded
25
+ * separately so a *resolved* kind reference is never silently passed where a
26
+ * selector is expected, or vice versa. Widen an exact reference explicitly with
27
+ * {@link kindReferenceToSelectorReference}.
28
+ */
29
+ type BlockKindSelectorReference = Branded<string, "BlockKindSelectorReference">;
30
+ /**
31
+ * Split a raw selector string (`1.2.0`, `~1.2.0`, `^1.2.0`) into its parts.
32
+ *
33
+ * The version is validated as `X.Y.Z`, so a range that is legal npm but not part
34
+ * of the kind grammar (`>=1.0.0`, `1.x`, `latest`) is rejected here rather than
35
+ * reaching resolution. Note the deliberate divergence from
36
+ * `tools/block-tools`'s `parseSelector`, which additionally tolerates a leading
37
+ * `@` as `exact`: after the `{name}@{selector}` split a leading `@` can only
38
+ * come from a doubled separator, which is malformed.
39
+ *
40
+ * Mapping a selector onto a concrete version is resolution, not parsing, and
41
+ * lives with the resolver (`kind_resolver.selectorToRange`).
42
+ *
43
+ * @throws if the version part is not `X.Y.Z`
44
+ */
45
+ declare function parseKindSelector(raw: string): KindSelector;
46
+ /** Render a {@link KindSelector} back to its on-wire string. */
47
+ declare function formatKindSelector(sel: KindSelector): string;
48
+ /**
49
+ * Split a {@link BlockKindSelectorReference} into `{ name, selector }`.
50
+ *
51
+ * @throws if the reference carries no version segment, or the selector is
52
+ * outside the `X.Y.Z` / `~X.Y.Z` / `^X.Y.Z` grammar
53
+ */
54
+ declare function parseKindSelectorReference(ref: BlockKindSelectorReference): {
55
+ name: string;
56
+ selector: KindSelector;
57
+ };
58
+ /**
59
+ * Compose a {@link BlockKindSelectorReference} from a name and selector.
60
+ *
61
+ * A formatter, not a validator — pass a selector that came from
62
+ * {@link parseKindSelector} or that you constructed from a known-good version.
63
+ */
64
+ declare function formatKindSelectorReference(k: {
65
+ name: string;
66
+ selector: KindSelector;
67
+ }): BlockKindSelectorReference;
68
+ /**
69
+ * Widen a resolved {@link BlockKindReference} to its `exact`-tier selector form.
70
+ *
71
+ * The export direction: a block implements exactly one kind version, so export
72
+ * always emits `{name}@X.Y.Z`. Validates on the way through, so a
73
+ * malformed stored reference fails at the boundary rather than in the file.
74
+ */
75
+ declare function kindReferenceToSelectorReference(ref: BlockKindReference): BlockKindSelectorReference;
76
+ /** Whether `value` is a well-formed `{name}@{selector}` string. */
77
+ declare function isBlockKindSelectorReference(value: unknown): value is BlockKindSelectorReference;
78
+ //#endregion
79
+ export { BlockKindSelectorReference, KindSelector, KindSelectorOp, formatKindSelector, formatKindSelectorReference, isBlockKindSelectorReference, kindReferenceToSelectorReference, parseKindSelector, parseKindSelectorReference };
80
+ //# sourceMappingURL=kind_selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind_selector.d.ts","names":[],"sources":["../../src/template/kind_selector.ts"],"mappings":";;;;;;AAWA;;;;AAA0B;KAAd,cAAA;;KAGA,YAAA;EAAA,SACD,EAAA,EAAI,cAAc;EAAA,SAClB,OAAA;AAAA;;;AAAO;AAclB;;;;AAAgD;AAqBhD;;;KArBY,0BAAA,GAA6B,OAAO;AAqBY;AAa5D;;;;AAAoD;AAiBpD;;;;;;;;;AA9B4D,iBAA5C,iBAAA,CAAkB,GAAA,WAAc,YAAY;AAgCpC;AAAA,iBAnBR,kBAAA,CAAmB,GAAiB,EAAZ,YAAY;;;;;;;iBAiBpC,0BAAA,CAA2B,GAAA,EAAK,0BAAA;EAC9C,IAAA;EACA,QAAA,EAAU,YAAY;AAAA;AA0BxB;;;;;;AAAA,iBAdgB,2BAAA,CAA4B,CAAA;EAC1C,IAAA;EACA,QAAA,EAAU,YAAA;AAAA,IACR,0BAA0B;;;;;;;;iBAWd,gCAAA,CACd,GAAA,EAAK,kBAAA,GACJ,0BAA0B;;iBAMb,4BAAA,CAA6B,KAAA,YAAiB,KAAA,IAAS,0BAA0B"}