@platforma-open/milaboratories.vj-usage.model 2.1.3 → 2.1.4

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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/vj-gene-usage/vj-gene-usage/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.vj-usage.model@2.1.3 build /home/runner/work/vj-gene-usage/vj-gene-usage/model
3
+ > @platforma-open/milaboratories.vj-usage.model@2.1.4 build /home/runner/work/vj-gene-usage/vj-gene-usage/model
4
4
  > tsup && vite build && block-tools build-model
5
5
 
6
6
  CLI Building entry: src/index.ts
@@ -13,19 +13,19 @@
13
13
  ESM Build start
14
14
  ESM dist/index.js 2.18 KB
15
15
  ESM dist/index.js.map 5.02 KB
16
- ESM ⚡️ Build success in 117ms
16
+ ESM ⚡️ Build success in 123ms
17
17
  CJS dist/index.cjs 2.19 KB
18
18
  CJS dist/index.cjs.map 5.06 KB
19
- CJS ⚡️ Build success in 119ms
19
+ CJS ⚡️ Build success in 123ms
20
20
  DTS Build start
21
- DTS ⚡️ Build success in 2256ms
21
+ DTS ⚡️ Build success in 2451ms
22
22
  DTS dist/index.d.cts 1.92 KB
23
23
  DTS dist/index.d.ts 1.92 KB
24
24
  vite v6.2.6 building for production...
25
25
  transforming...
26
- ✓ 69 modules transformed.
26
+ ✓ 77 modules transformed.
27
27
  rendering chunks...
28
28
  computing gzip size...
29
- dist/bundle.js 229.07 kB │ gzip: 43.40 kB │ map: 501.24 kB
30
- dist/bundle.js 243.54 kB │ gzip: 44.11 kB │ map: 502.89 kB
31
- ✓ built in 787ms
29
+ dist/bundle.js 232.86 kB │ gzip: 43.87 kB │ map: 508.33 kB
30
+ dist/bundle.js 247.49 kB │ gzip: 44.55 kB │ map: 509.99 kB
31
+ ✓ built in 881ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-open/milaboratories.vj-usage.model
2
2
 
3
+ ## 2.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 81536ef: technical release
8
+
3
9
  ## 2.1.3
4
10
 
5
11
  ### Patch Changes
package/dist/bundle.js CHANGED
@@ -3964,6 +3964,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3964
3964
  quotelessJson,
3965
3965
  ZodError
3966
3966
  });
3967
+ z.object({
3968
+ type: z.literal("plain"),
3969
+ content: z.string()
3970
+ });
3967
3971
  z.object({
3968
3972
  /** Included left border. */
3969
3973
  from: z.number().min(0),
@@ -4254,14 +4258,27 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4254
4258
  const Annotation = {
4255
4259
  DiscreteValues: "pl7.app/discreteValues",
4256
4260
  Graph: {
4257
- IsVirtual: "pl7.app/graph/isVirtual"
4261
+ Axis: {
4262
+ HighCardinality: "pl7.app/graph/axis/highCardinality",
4263
+ LowerLimit: "pl7.app/graph/axis/lowerLimit",
4264
+ SymmetricRange: "pl7.app/graph/axis/symmetricRange",
4265
+ UpperLimit: "pl7.app/graph/axis/upperLimit"
4266
+ },
4267
+ IsDenseAxis: "pl7.app/graph/isDenseAxis",
4268
+ IsVirtual: "pl7.app/graph/isVirtual",
4269
+ Palette: "pl7.app/graph/palette",
4270
+ Thresholds: "pl7.app/graph/thresholds",
4271
+ TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs"
4258
4272
  },
4259
4273
  HideDataFromUi: "pl7.app/hideDataFromUi",
4260
4274
  HideDataFromGraphs: "pl7.app/hideDataFromGraphs",
4275
+ IsDiscreteFilter: "pl7.app/isDiscreteFilter",
4261
4276
  IsLinkerColumn: "pl7.app/isLinkerColumn",
4277
+ IsSubset: "pl7.app/isSubset",
4262
4278
  Label: "pl7.app/label",
4263
4279
  Max: "pl7.app/max",
4264
4280
  Min: "pl7.app/min",
4281
+ MultipliesBy: "pl7.app/multipliesBy",
4265
4282
  Parents: "pl7.app/parents",
4266
4283
  Sequence: {
4267
4284
  Annotation: {
@@ -4274,14 +4291,29 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4274
4291
  },
4275
4292
  Trace: "pl7.app/trace"
4276
4293
  };
4294
+ const ValueTypeSchema = z.enum(["Int", "Long", "Float", "Double", "String"]);
4277
4295
  const AnnotationJson = {
4278
4296
  [Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),
4297
+ [Annotation.Graph.Axis.HighCardinality]: z.boolean(),
4298
+ [Annotation.Graph.Axis.LowerLimit]: z.number(),
4299
+ [Annotation.Graph.Axis.UpperLimit]: z.number(),
4300
+ [Annotation.Graph.Axis.SymmetricRange]: z.boolean(),
4301
+ [Annotation.Graph.IsDenseAxis]: z.boolean(),
4302
+ [Annotation.Graph.Palette]: z.object({ mapping: z.record(z.number()), name: z.string() }),
4303
+ [Annotation.Graph.Thresholds]: z.array(z.object({
4304
+ columnId: z.object({ valueType: ValueTypeSchema, name: z.string() }),
4305
+ value: z.number()
4306
+ })),
4307
+ [Annotation.Graph.TreatAbsentValuesAs]: z.number(),
4279
4308
  [Annotation.Graph.IsVirtual]: z.boolean(),
4280
4309
  [Annotation.HideDataFromUi]: z.boolean(),
4281
4310
  [Annotation.HideDataFromGraphs]: z.boolean(),
4311
+ [Annotation.IsDiscreteFilter]: z.boolean(),
4282
4312
  [Annotation.IsLinkerColumn]: z.boolean(),
4313
+ [Annotation.IsSubset]: z.boolean(),
4283
4314
  [Annotation.Max]: z.number(),
4284
4315
  [Annotation.Min]: z.number(),
4316
+ [Annotation.MultipliesBy]: z.array(z.string()),
4285
4317
  [Annotation.Parents]: z.array(z.string()),
4286
4318
  [Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),
4287
4319
  [Annotation.Sequence.IsAnnotation]: z.boolean(),
@@ -5285,6 +5317,80 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5285
5317
  }
5286
5318
  const StagingAccessorName = "staging";
5287
5319
  const MainAccessorName = "main";
5320
+ function filterDataInfoEntries(dataInfoEntries, axisFilters) {
5321
+ const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
5322
+ const { type } = dataInfoEntries;
5323
+ switch (type) {
5324
+ case "Json": {
5325
+ const { keyLength } = dataInfoEntries;
5326
+ for (const [axisIdx] of axisFilters)
5327
+ if (axisIdx >= keyLength)
5328
+ throw new Error(`Can't filter on non-data axis ${axisIdx}. Must be >= ${keyLength}`);
5329
+ break;
5330
+ }
5331
+ case "JsonPartitioned":
5332
+ case "BinaryPartitioned":
5333
+ case "ParquetPartitioned": {
5334
+ const { partitionKeyLength } = dataInfoEntries;
5335
+ for (const [axisIdx] of axisFilters)
5336
+ if (axisIdx >= partitionKeyLength)
5337
+ throw new Error(`Can't filter on non-partitioned axis ${axisIdx}. Must be >= ${partitionKeyLength}`);
5338
+ break;
5339
+ }
5340
+ default:
5341
+ throw new Error(`Unsupported data info type: ${type}`);
5342
+ }
5343
+ const keyMatchesFilters = (key) => {
5344
+ for (const [axisIdx, axisValue] of sortedFilters)
5345
+ if (key[axisIdx] !== axisValue)
5346
+ return false;
5347
+ return true;
5348
+ };
5349
+ const removeFilteredAxes = (key) => {
5350
+ const newKey = [...key];
5351
+ for (const [axisIdx] of sortedFilters)
5352
+ newKey.splice(axisIdx, 1);
5353
+ return newKey;
5354
+ };
5355
+ switch (dataInfoEntries.type) {
5356
+ case "Json":
5357
+ return {
5358
+ type: "Json",
5359
+ keyLength: dataInfoEntries.keyLength - axisFilters.length,
5360
+ data: dataInfoEntries.data.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5361
+ key: removeFilteredAxes(entry.key),
5362
+ value: entry.value
5363
+ }))
5364
+ };
5365
+ case "JsonPartitioned":
5366
+ return {
5367
+ type: "JsonPartitioned",
5368
+ partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5369
+ parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5370
+ key: removeFilteredAxes(entry.key),
5371
+ value: entry.value
5372
+ }))
5373
+ };
5374
+ case "BinaryPartitioned":
5375
+ return {
5376
+ type: "BinaryPartitioned",
5377
+ partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5378
+ parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5379
+ key: removeFilteredAxes(entry.key),
5380
+ value: entry.value
5381
+ }))
5382
+ };
5383
+ case "ParquetPartitioned":
5384
+ return {
5385
+ type: "ParquetPartitioned",
5386
+ partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5387
+ parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5388
+ key: removeFilteredAxes(entry.key),
5389
+ value: entry.value
5390
+ }))
5391
+ };
5392
+ }
5393
+ }
5288
5394
  const TraceEntry = z.object({
5289
5395
  type: z.string(),
5290
5396
  importance: z.number().optional(),
@@ -5410,9 +5516,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5410
5516
  const RT_RESOURCE_MAP_PARTITIONED = PCD_PREFIX + "Partitioned/ResourceMap";
5411
5517
  const RT_JSON_PARTITIONED = PCD_PREFIX + "JsonPartitioned";
5412
5518
  const RT_BINARY_PARTITIONED = PCD_PREFIX + "BinaryPartitioned";
5519
+ const RT_PARQUET_PARTITIONED = PCD_PREFIX + "ParquetPartitioned";
5413
5520
  const PCD_SUP_PREFIX = PCD_PREFIX + "Partitioned/";
5414
5521
  const RT_JSON_SUPER_PARTITIONED = PCD_SUP_PREFIX + "JsonPartitioned";
5415
5522
  const RT_BINARY_SUPER_PARTITIONED = PCD_SUP_PREFIX + "BinaryPartitioned";
5523
+ const RT_PARQUET_SUPER_PARTITIONED = PCD_SUP_PREFIX + "ParquetPartitioned";
5416
5524
  const removeIndexSuffix = (keyStr) => {
5417
5525
  if (keyStr.endsWith(".index")) {
5418
5526
  return { baseKey: keyStr.substring(0, keyStr.length - 6), type: "index" };
@@ -5438,10 +5546,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5438
5546
  break;
5439
5547
  case RT_JSON_PARTITIONED:
5440
5548
  case RT_BINARY_PARTITIONED:
5549
+ case RT_PARQUET_PARTITIONED:
5441
5550
  keyLength = meta["partitionKeyLength"];
5442
5551
  break;
5443
5552
  case RT_BINARY_SUPER_PARTITIONED:
5444
5553
  case RT_JSON_SUPER_PARTITIONED:
5554
+ case RT_PARQUET_SUPER_PARTITIONED:
5445
5555
  keyLength = meta["superPartitionKeyLength"] + meta["partitionKeyLength"];
5446
5556
  break;
5447
5557
  }
@@ -5449,6 +5559,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5449
5559
  case RT_RESOURCE_MAP:
5450
5560
  case RT_JSON_PARTITIONED:
5451
5561
  case RT_BINARY_PARTITIONED:
5562
+ case RT_PARQUET_PARTITIONED:
5452
5563
  for (let keyStr of acc.listInputFields()) {
5453
5564
  if (rt === RT_BINARY_PARTITIONED) {
5454
5565
  keyStr = removeIndexSuffix(keyStr).baseKey;
@@ -5460,6 +5571,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5460
5571
  case RT_RESOURCE_MAP_PARTITIONED:
5461
5572
  case RT_BINARY_SUPER_PARTITIONED:
5462
5573
  case RT_JSON_SUPER_PARTITIONED:
5574
+ case RT_PARQUET_SUPER_PARTITIONED:
5463
5575
  for (const supKeyStr of acc.listInputFields()) {
5464
5576
  const keyPrefix = [...JSON.parse(supKeyStr)];
5465
5577
  const value = acc.resolve({ field: supKeyStr, assertFieldType: "Input" });
@@ -5478,7 +5590,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5478
5590
  return { data, keyLength };
5479
5591
  }
5480
5592
  function getUniquePartitionKeysForDataEntries(list) {
5481
- if (list.type !== "JsonPartitioned" && list.type !== "BinaryPartitioned")
5593
+ if (list.type !== "JsonPartitioned" && list.type !== "BinaryPartitioned" && list.type !== "ParquetPartitioned")
5482
5594
  throw new Error(`Splitting requires Partitioned DataInfoEntries, got ${list.type}`);
5483
5595
  const { parts, partitionKeyLength } = list;
5484
5596
  const result = [];
@@ -5526,7 +5638,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5526
5638
  return void 0;
5527
5639
  const resourceType = acc.resourceType.name;
5528
5640
  const meta = acc.getDataAsJson();
5529
- if (keyPrefix.length > 0 && (resourceType === RT_JSON_SUPER_PARTITIONED || resourceType === RT_BINARY_SUPER_PARTITIONED)) {
5641
+ if (keyPrefix.length > 0 && (resourceType === RT_JSON_SUPER_PARTITIONED || resourceType === RT_BINARY_SUPER_PARTITIONED || resourceType === RT_PARQUET_SUPER_PARTITIONED)) {
5530
5642
  throw new Error(`Unexpected nested super-partitioned resource: ${resourceType}`);
5531
5643
  }
5532
5644
  switch (resourceType) {
@@ -5591,6 +5703,24 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5591
5703
  parts
5592
5704
  };
5593
5705
  }
5706
+ case RT_PARQUET_PARTITIONED: {
5707
+ if (typeof (meta == null ? void 0 : meta.partitionKeyLength) !== "number") {
5708
+ throw new Error(`Missing partitionKeyLength in metadata for ${resourceType}`);
5709
+ }
5710
+ const parts = [];
5711
+ for (const keyStr of acc.listInputFields()) {
5712
+ const value = acc.resolve({ field: keyStr, assertFieldType: "Input" });
5713
+ if (value === void 0)
5714
+ return void 0;
5715
+ const key = [...keyPrefix, ...JSON.parse(keyStr)];
5716
+ parts.push({ key, value });
5717
+ }
5718
+ return {
5719
+ type: "ParquetPartitioned",
5720
+ partitionKeyLength: meta.partitionKeyLength,
5721
+ parts
5722
+ };
5723
+ }
5594
5724
  case RT_JSON_SUPER_PARTITIONED: {
5595
5725
  if (typeof (meta == null ? void 0 : meta.superPartitionKeyLength) !== "number" || typeof (meta == null ? void 0 : meta.partitionKeyLength) !== "number") {
5596
5726
  throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);
@@ -5643,6 +5773,32 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5643
5773
  parts
5644
5774
  };
5645
5775
  }
5776
+ case RT_PARQUET_SUPER_PARTITIONED: {
5777
+ if (typeof (meta == null ? void 0 : meta.superPartitionKeyLength) !== "number" || typeof (meta == null ? void 0 : meta.partitionKeyLength) !== "number") {
5778
+ throw new Error(`Missing superPartitionKeyLength or partitionKeyLength in metadata for ${resourceType}`);
5779
+ }
5780
+ const totalKeyLength = meta.superPartitionKeyLength + meta.partitionKeyLength;
5781
+ const parts = [];
5782
+ for (const supKeyStr of acc.listInputFields()) {
5783
+ const superPartition = acc.resolve({ field: supKeyStr, assertFieldType: "Input" });
5784
+ if (superPartition === void 0)
5785
+ return void 0;
5786
+ if (superPartition.resourceType.name !== RT_PARQUET_PARTITIONED) {
5787
+ throw new Error(`Expected ${RT_PARQUET_PARTITIONED} inside ${resourceType}, but got ${superPartition.resourceType.name}`);
5788
+ }
5789
+ const innerResult = parsePColumnData(superPartition, JSON.parse(supKeyStr));
5790
+ if (innerResult === void 0)
5791
+ return void 0;
5792
+ if (innerResult.type !== "ParquetPartitioned")
5793
+ throw new Error(`Unexpected inner result type for ${resourceType}: ${innerResult.type}`);
5794
+ parts.push(...innerResult.parts);
5795
+ }
5796
+ return {
5797
+ type: "ParquetPartitioned",
5798
+ partitionKeyLength: totalKeyLength,
5799
+ parts
5800
+ };
5801
+ }
5646
5802
  default:
5647
5803
  throw new Error(`Unknown resource type: ${resourceType}`);
5648
5804
  }
@@ -5658,80 +5814,6 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5658
5814
  return parsePColumnData(acc);
5659
5815
  throw new Error(`Unexpected input type: ${typeof acc}`);
5660
5816
  }
5661
- function filterDataInfoEntries(dataInfoEntries, axisFilters) {
5662
- const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
5663
- const { type } = dataInfoEntries;
5664
- switch (type) {
5665
- case "Json": {
5666
- const { keyLength } = dataInfoEntries;
5667
- for (const [axisIdx] of axisFilters)
5668
- if (axisIdx >= keyLength)
5669
- throw new Error(`Can't filter on non-data axis ${axisIdx}. Must be >= ${keyLength}`);
5670
- break;
5671
- }
5672
- case "JsonPartitioned":
5673
- case "BinaryPartitioned":
5674
- case "ParquetPartitioned": {
5675
- const { partitionKeyLength } = dataInfoEntries;
5676
- for (const [axisIdx] of axisFilters)
5677
- if (axisIdx >= partitionKeyLength)
5678
- throw new Error(`Can't filter on non-partitioned axis ${axisIdx}. Must be >= ${partitionKeyLength}`);
5679
- break;
5680
- }
5681
- default:
5682
- throw new Error(`Unsupported data info type: ${type}`);
5683
- }
5684
- const keyMatchesFilters = (key) => {
5685
- for (const [axisIdx, axisValue] of sortedFilters)
5686
- if (key[axisIdx] !== axisValue)
5687
- return false;
5688
- return true;
5689
- };
5690
- const removeFilteredAxes = (key) => {
5691
- const newKey = [...key];
5692
- for (const [axisIdx] of sortedFilters)
5693
- newKey.splice(axisIdx, 1);
5694
- return newKey;
5695
- };
5696
- switch (dataInfoEntries.type) {
5697
- case "Json":
5698
- return {
5699
- type: "Json",
5700
- keyLength: dataInfoEntries.keyLength - axisFilters.length,
5701
- data: dataInfoEntries.data.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5702
- key: removeFilteredAxes(entry.key),
5703
- value: entry.value
5704
- }))
5705
- };
5706
- case "JsonPartitioned":
5707
- return {
5708
- type: "JsonPartitioned",
5709
- partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5710
- parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5711
- key: removeFilteredAxes(entry.key),
5712
- value: entry.value
5713
- }))
5714
- };
5715
- case "BinaryPartitioned":
5716
- return {
5717
- type: "BinaryPartitioned",
5718
- partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5719
- parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5720
- key: removeFilteredAxes(entry.key),
5721
- value: entry.value
5722
- }))
5723
- };
5724
- case "ParquetPartitioned":
5725
- return {
5726
- type: "ParquetPartitioned",
5727
- partitionKeyLength: dataInfoEntries.partitionKeyLength - axisFilters.length,
5728
- parts: dataInfoEntries.parts.filter((entry) => keyMatchesFilters(entry.key)).map((entry) => ({
5729
- key: removeFilteredAxes(entry.key),
5730
- value: entry.value
5731
- }))
5732
- };
5733
- }
5734
- }
5735
5817
  function isPColumnValues(value) {
5736
5818
  if (!Array.isArray(value))
5737
5819
  return false;
@@ -6519,7 +6601,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6519
6601
  this.ctx.logError(msg);
6520
6602
  }
6521
6603
  }
6522
- var version = "1.43.2";
6604
+ var version = "1.45.0";
6523
6605
  const PlatformaSDKVersion = version;
6524
6606
  function isConfigLambda(cfgOrFh) {
6525
6607
  return cfgOrFh.__renderLambda === true;
@@ -6822,7 +6904,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6822
6904
  if (!blockColumns) {
6823
6905
  const columns2 = new PColumnCollection();
6824
6906
  columns2.addColumnProvider(ctx.resultPool);
6825
- const allColumns = columns2.getColumns(() => true, { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? [];
6907
+ const allColumns = columns2.getColumns((spec) => !isHiddenFromGraphColumn(spec), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? [];
6826
6908
  if (!allColumnsReady(allColumns)) {
6827
6909
  return void 0;
6828
6910
  }