@platforma-open/milaboratories.3d-structure-clustering 1.2.3 → 1.2.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.
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-DC62tzP2.js";
2
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/plugin_handle.js
2
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/plugin_handle.js
3
3
  const PLUGIN_OUTPUT_PREFIX = "plugin-output#";
4
4
  /** Construct the output key for a plugin output in the block outputs map. */
5
5
  function pluginOutputKey(handle, outputKey) {
6
6
  return `${PLUGIN_OUTPUT_PREFIX}${handle}#${outputKey}`;
7
7
  }
8
8
  //#endregion
9
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage.js
9
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage.js
10
10
  /**
11
11
  * Discriminator key for BlockStorage format detection.
12
12
  * This unique hash-based key identifies data as BlockStorage vs legacy formats.
@@ -3796,12 +3796,34 @@ ZodOptional.create;
3796
3796
  ZodNullable.create;
3797
3797
  ZodEffects.createWithPreprocess;
3798
3798
  ZodPipeline.create;
3799
+ const coerce = {
3800
+ string: ((arg) => ZodString.create({
3801
+ ...arg,
3802
+ coerce: true
3803
+ })),
3804
+ number: ((arg) => ZodNumber.create({
3805
+ ...arg,
3806
+ coerce: true
3807
+ })),
3808
+ boolean: ((arg) => ZodBoolean.create({
3809
+ ...arg,
3810
+ coerce: true
3811
+ })),
3812
+ bigint: ((arg) => ZodBigInt.create({
3813
+ ...arg,
3814
+ coerce: true
3815
+ })),
3816
+ date: ((arg) => ZodDate.create({
3817
+ ...arg,
3818
+ coerce: true
3819
+ }))
3820
+ };
3799
3821
  objectType({
3800
3822
  type: literalType("plain"),
3801
3823
  content: stringType()
3802
3824
  });
3803
3825
  //#endregion
3804
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3826
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3805
3827
  /**
3806
3828
  * Compose a {@link BlockKindReference} from a kind's `name`/`version`.
3807
3829
  *
@@ -3817,7 +3839,7 @@ objectType({
3817
3839
  to: numberType().min(1)
3818
3840
  });
3819
3841
  //#endregion
3820
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3842
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3821
3843
  function assertNever(x) {
3822
3844
  throw new Error("Unexpected object: " + x);
3823
3845
  }
@@ -3829,7 +3851,7 @@ function uniqueBy(array, makeId) {
3829
3851
  return [...new Map(array.map((e) => [makeId(e), e])).values()];
3830
3852
  }
3831
3853
  //#endregion
3832
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3854
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3833
3855
  /**
3834
3856
  * Type guard function that checks if the given value is a valid DataInfo.
3835
3857
  *
@@ -4018,7 +4040,7 @@ function entriesToDataInfo(dataInfoEntries) {
4018
4040
  }
4019
4041
  }
4020
4042
  //#endregion
4021
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4043
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4022
4044
  var ServiceError = class extends Error {
4023
4045
  name = "ServiceError";
4024
4046
  };
@@ -4042,7 +4064,7 @@ function ensureError(value) {
4042
4064
  return new Error(stringifyValue(value));
4043
4065
  }
4044
4066
  //#endregion
4045
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4067
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4046
4068
  var import_canonicalize = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
4047
4069
  module.exports = function serialize(object) {
4048
4070
  if (typeof object === "number" && isNaN(object)) throw new Error("NaN is not allowed");
@@ -4075,7 +4097,7 @@ function parseJsonSafely(value, fallback) {
4075
4097
  }
4076
4098
  }
4077
4099
  //#endregion
4078
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4100
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4079
4101
  function readMetadata(metadata, key) {
4080
4102
  return metadata?.[key];
4081
4103
  }
@@ -4097,6 +4119,36 @@ function readMetadataJson(metadata, metadataJson, key) {
4097
4119
  return;
4098
4120
  }
4099
4121
  }
4122
+ /**
4123
+ * Domain keys whose value is the id of a block, rather than a qualifier of the data.
4124
+ *
4125
+ * Applying a template repoints these at the blocks of the project being built: an axis a block
4126
+ * produced names that block in its domain, so an axis left naming the exported-from project
4127
+ * resolves to nothing. Listing the keys is what makes that safe — a template's entry ids are
4128
+ * arbitrary non-empty strings, so a hand-written template may name an entry `closest`, and a
4129
+ * qualifier that happens to read `closest` must not be mistaken for a reference to it.
4130
+ *
4131
+ * A key absent from here is simply left alone, which is the behaviour from before relocation
4132
+ * reached domains at all. Adding one is therefore safe; omitting one costs only that a template
4133
+ * carrying it applies still pointing at the project it came from.
4134
+ */
4135
+ const BlockScopedDomain = /* @__PURE__ */ new Set([
4136
+ "pl7.app/blockId",
4137
+ "pl7.app/block",
4138
+ "pl7.app/redefined-by",
4139
+ "pl7.app/annotationRunId",
4140
+ "pl7.app/clonotypeAnnotationRunId",
4141
+ "pl7.app/clustering/blockId",
4142
+ "pl7.app/umap/blockId",
4143
+ "pl7.app/peptide/extractionRunId",
4144
+ "pl7.app/repertoire/extractionRunId",
4145
+ "pl7.app/antibodyVariantDesigner/designRunId",
4146
+ "pl7.app/vdj/clonotypingRunId",
4147
+ "pl7.app/vdj/clustering/blockId",
4148
+ "pl7.app/vdj/integration/blockId",
4149
+ "pl7.app/vdj/spatiotemporalAnalysis/blockId",
4150
+ "pl7.app/vdj/libraryId"
4151
+ ]);
4100
4152
  const Annotation = {
4101
4153
  AxisNature: "pl7.app/axisNature",
4102
4154
  Alphabet: "pl7.app/alphabet",
@@ -4114,6 +4166,7 @@ const Annotation = {
4114
4166
  IsDenseAxis: "pl7.app/graph/isDenseAxis",
4115
4167
  IsVirtual: "pl7.app/graph/isVirtual",
4116
4168
  Palette: "pl7.app/graph/palette",
4169
+ Shape: "pl7.app/graph/shape",
4117
4170
  Thresholds: "pl7.app/graph/thresholds",
4118
4171
  TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs"
4119
4172
  },
@@ -4169,9 +4222,14 @@ const AnnotationJson = {
4169
4222
  [Annotation.Graph.Axis.SymmetricRange]: booleanType(),
4170
4223
  [Annotation.Graph.IsDenseAxis]: booleanType(),
4171
4224
  [Annotation.Graph.Palette]: objectType({
4172
- mapping: recordType(numberType()),
4173
- name: stringType()
4225
+ name: stringType(),
4226
+ mapping: recordType(coerce.number()).optional(),
4227
+ midPoint: numberType().optional(),
4228
+ min: numberType().optional(),
4229
+ max: numberType().optional(),
4230
+ log: booleanType().optional()
4174
4231
  }),
4232
+ [Annotation.Graph.Shape]: objectType({ mapping: recordType(stringType()) }),
4175
4233
  [Annotation.Graph.Thresholds]: arrayType(objectType({
4176
4234
  columnId: objectType({
4177
4235
  valueType: ValueTypeSchema,
@@ -4367,7 +4425,7 @@ function matchAxisId(query, target) {
4367
4425
  return query.name === target.name && matchDomain$1(query.domain, target.domain) && matchDomain$1(query.contextDomain, target.contextDomain);
4368
4426
  }
4369
4427
  //#endregion
4370
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4428
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4371
4429
  const BOOLEAN_TYPES = /* @__PURE__ */ new Set([
4372
4430
  "numericComparison",
4373
4431
  "stringEquals",
@@ -4472,7 +4530,7 @@ function collectSpecQueryColumns(query) {
4472
4530
  return result;
4473
4531
  }
4474
4532
  //#endregion
4475
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4533
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4476
4534
  function mapPTableDef(def, cb) {
4477
4535
  return {
4478
4536
  ...def,
@@ -4515,7 +4573,7 @@ function mapJoinEntry(entry, cb) {
4515
4573
  }
4516
4574
  }
4517
4575
  //#endregion
4518
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4576
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4519
4577
  function getPTableColumnId(spec) {
4520
4578
  switch (spec.type) {
4521
4579
  case "axis": return {
@@ -4529,7 +4587,7 @@ function getPTableColumnId(spec) {
4529
4587
  }
4530
4588
  }
4531
4589
  //#endregion
4532
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4590
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4533
4591
  function stringifyColumnFilteredId(key) {
4534
4592
  return canonicalizeJson(createColumnFilteredKey(key));
4535
4593
  }
@@ -4562,7 +4620,7 @@ function applyAxisFilters(spec, axisFilters) {
4562
4620
  };
4563
4621
  }
4564
4622
  //#endregion
4565
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4623
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4566
4624
  function isPObjectId(value) {
4567
4625
  if (typeof value !== "string") return false;
4568
4626
  return isPObjectKey(parseJsonSafely(value));
@@ -4676,7 +4734,7 @@ function isObject(value) {
4676
4734
  * isPlainObject([]); // false
4677
4735
  * ```
4678
4736
  */
4679
- function isPlainObject(value) {
4737
+ function isPlainObject$1(value) {
4680
4738
  if (!isObject(value)) return false;
4681
4739
  const prototype = Object.getPrototypeOf(value);
4682
4740
  return prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null;
@@ -4688,7 +4746,7 @@ function throwError(v) {
4688
4746
  else throw v;
4689
4747
  }
4690
4748
  //#endregion
4691
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4749
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4692
4750
  function isColumnDiscoveredKey(obj) {
4693
4751
  return typeof obj === "object" && obj !== null && "__isDiscovered" in obj;
4694
4752
  }
@@ -4735,6 +4793,14 @@ function getTag(value) {
4735
4793
  return Object.prototype.toString.call(value);
4736
4794
  }
4737
4795
  //#endregion
4796
+ //#region ../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
4797
+ function isPlainObject(value) {
4798
+ if (!value || typeof value !== "object") return false;
4799
+ const proto = Object.getPrototypeOf(value);
4800
+ if (!(proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null)) return false;
4801
+ return Object.prototype.toString.call(value) === "[object Object]";
4802
+ }
4803
+ //#endregion
4738
4804
  //#region ../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFunction.mjs
4739
4805
  function isFunction(value) {
4740
4806
  return typeof value === "function";
@@ -4755,7 +4821,7 @@ function isString(value) {
4755
4821
  return typeof value === "string";
4756
4822
  }
4757
4823
  //#endregion
4758
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
4824
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
4759
4825
  /**
4760
4826
  * Canonically serializes a column key to a branded string id. Accepts both
4761
4827
  * the new {@link ColumnUniversalKey} and the deprecated {@link UniversalPColumnId}
@@ -4929,7 +4995,7 @@ function extractPObjectId(id) {
4929
4995
  throw new Error(`extractPObjectId: unrecognized column id structure: ${JSON.stringify(id)}`);
4930
4996
  }
4931
4997
  //#endregion
4932
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
4998
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
4933
4999
  function isColumnOverriddenKey(obj) {
4934
5000
  return typeof obj === "object" && obj !== null && "__isOverridden" in obj;
4935
5001
  }
@@ -5051,7 +5117,7 @@ function mergeRecord(a, b) {
5051
5117
  };
5052
5118
  }
5053
5119
  //#endregion
5054
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5120
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5055
5121
  function axisKey(axis) {
5056
5122
  return (0, import_canonicalize.default)(getAxisId(axis));
5057
5123
  }
@@ -5297,7 +5363,7 @@ function isAnchorAxisRef(value) {
5297
5363
  return typeof value === "object" && "anchor" in value;
5298
5364
  }
5299
5365
  //#endregion
5300
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5366
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5301
5367
  /**
5302
5368
  * Determines if an axis ID matches an axis selector.
5303
5369
  *
@@ -5423,7 +5489,7 @@ function multiColumnSelectorsToPredicate(selectors) {
5423
5489
  return (spec) => isPColumnSpec(spec) && arr.some((sel) => matchMultiColumnSelector(spec, sel));
5424
5490
  }
5425
5491
  //#endregion
5426
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5492
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5427
5493
  function deriveNativeId(spec) {
5428
5494
  const result = {
5429
5495
  kind: spec.kind,
@@ -5435,7 +5501,7 @@ function deriveNativeId(spec) {
5435
5501
  return (0, import_canonicalize.default)(result);
5436
5502
  }
5437
5503
  //#endregion
5438
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5504
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5439
5505
  var LinkerMap = class LinkerMap {
5440
5506
  /** Graph of linkers connected by axes (single or grouped by parents) */
5441
5507
  data;
@@ -5612,7 +5678,7 @@ var LinkerMap = class LinkerMap {
5612
5678
  }
5613
5679
  };
5614
5680
  //#endregion
5615
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5681
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5616
5682
  /**
5617
5683
  * Required PFrames version. Bump this in lockstep with the `@milaboratories/pframes-rs-*`
5618
5684
  * version in `pnpm-workspace.yaml` so blocks built against the new SDK refuse to load on
@@ -5664,7 +5730,7 @@ function createEnrichmentRef(hit, options = {}) {
5664
5730
  };
5665
5731
  }
5666
5732
  //#endregion
5667
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5733
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5668
5734
  function mapValueInVOE(voe, cb) {
5669
5735
  return voe.ok ? {
5670
5736
  ok: true,
@@ -5672,7 +5738,7 @@ function mapValueInVOE(voe, cb) {
5672
5738
  } : voe;
5673
5739
  }
5674
5740
  //#endregion
5675
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5741
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5676
5742
  /** Well-known resource type names used across the platform. */
5677
5743
  const ResourceTypeName = {
5678
5744
  StreamManager: "StreamManager",
@@ -5716,7 +5782,7 @@ const ResourceTypeName = {
5716
5782
  SharedEnvelope: "SharedEnvelope"
5717
5783
  };
5718
5784
  //#endregion
5719
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5785
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5720
5786
  const SERVICE_ID_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*$/;
5721
5787
  const { service, isNodeService, isWasmService, isMainService, getServiceKind, getServiceModelMethods, getServiceUiMethods } = (() => {
5722
5788
  const typeMap = /* @__PURE__ */ new Map();
@@ -5755,7 +5821,7 @@ const { service, isNodeService, isWasmService, isMainService, getServiceKind, ge
5755
5821
  };
5756
5822
  })();
5757
5823
  //#endregion
5758
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5824
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5759
5825
  const Services = {
5760
5826
  PFrameSpec: service()({
5761
5827
  type: "wasm",
@@ -5849,7 +5915,7 @@ function resolveRequiredServices(flags) {
5849
5915
  }
5850
5916
  Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true]));
5851
5917
  //#endregion
5852
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
5918
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
5853
5919
  function buildMethodMap(pick) {
5854
5920
  const result = {};
5855
5921
  for (const id of Object.values(Services)) result[id] = [...pick(id)];
@@ -5858,7 +5924,7 @@ function buildMethodMap(pick) {
5858
5924
  buildMethodMap(getServiceUiMethods);
5859
5925
  buildMethodMap(getServiceModelMethods);
5860
5926
  //#endregion
5861
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
5927
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
5862
5928
  /** Resource types that hold column collections — DFS stops here and collects. */
5863
5929
  const COLLECT_TYPES = [ResourceTypeName.PFrame];
5864
5930
  /** Resource types DFS descends through when looking for PFrames. */
@@ -5966,7 +6032,7 @@ function indexPoolBlock(block) {
5966
6032
  return result;
5967
6033
  }
5968
6034
  //#endregion
5969
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
6035
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
5970
6036
  /**
5971
6037
  * Id-index over a set of {@link ColumnEntriesProvider}s. Sole job:
5972
6038
  * {@link PObjectId} → {@link LeafEntry}. Generic over the accessor flavour, so
@@ -6003,7 +6069,7 @@ var ColumnRegistry = class {
6003
6069
  }
6004
6070
  };
6005
6071
  //#endregion
6006
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6072
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6007
6073
  /**
6008
6074
  * Two-track dedup over an item stream keyed by `ColumnUniversalId`:
6009
6075
  *
@@ -6044,7 +6110,7 @@ function dedupColumns(items, getId, getSpec) {
6044
6110
  return out;
6045
6111
  }
6046
6112
  //#endregion
6047
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6113
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6048
6114
  /**
6049
6115
  * Generic entries provider over a single accessor root. Walks `<root>` once
6050
6116
  * from the supplied `rootPath`, builds an id → {@link LeafEntry} map and
@@ -6101,7 +6167,7 @@ var ResultPoolEntriesProvider = class {
6101
6167
  }
6102
6168
  };
6103
6169
  //#endregion
6104
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6170
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6105
6171
  /**
6106
6172
  * Whether `value` is a reference in the readable spelling.
6107
6173
  *
@@ -6170,7 +6236,7 @@ function expandTemplatePlRef(ref) {
6170
6236
  };
6171
6237
  }
6172
6238
  //#endregion
6173
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6239
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6174
6240
  /**
6175
6241
  * Point every column identifier in a block's params at the blocks of the project being built.
6176
6242
  *
@@ -6186,8 +6252,13 @@ function expandTemplatePlRef(ref) {
6186
6252
  *
6187
6253
  * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields
6188
6254
  * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*
6189
- * like an id — a `domain` entry, an axis filter — from being rewritten along with it, and
6190
- * what re-sorts a qualifications map whose keys are identifiers.
6255
+ * like an id — an axis filter, a domain this package can see belongs to an identifier it
6256
+ * knows — from being rewritten along with it, and what re-sorts a qualifications map whose
6257
+ * keys are identifiers.
6258
+ *
6259
+ * A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is
6260
+ * qualified by the block that produced it. Only the domain keys known to name a block are
6261
+ * repointed — matching an entry id is not on its own evidence of a reference.
6191
6262
  *
6192
6263
  * An id the map does not mention is left as it is. That is the ordering rule doing its work:
6193
6264
  * a caller building the map as it creates blocks passes only the entries already created, so
@@ -6205,13 +6276,27 @@ function relocateBlockIds(params, blockIds) {
6205
6276
  if (typeof node === "string") return remapColumnIdBlockIds(node, remapBlockId);
6206
6277
  if (isColumnUniversalKey(node)) return remapColumnIdBlockIds(node, remapBlockId);
6207
6278
  if (Array.isArray(node)) return node.map(walk);
6208
- if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [remapColumnIdBlockIds(key, remapBlockId), walk(value)]));
6279
+ if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [remapColumnIdBlockIds(key, remapBlockId), key === "domain" && isPlainObject(value) ? relocateDomain(value) : walk(value)]));
6209
6280
  return node;
6210
6281
  };
6282
+ /**
6283
+ * The block-naming entries of a domain, repointed at the project being built: an axis a block
6284
+ * produced names that block in its domain, so those are references like any other.
6285
+ *
6286
+ * Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary
6287
+ * non-empty strings — a hand-written template may name an entry `closest`, and a qualifier
6288
+ * reading `closest` is not a reference to it. Matching the map is not on its own enough to
6289
+ * tell one from the other; the key is.
6290
+ *
6291
+ * Reached only from the generic object case — inside an identifier this package recognizes a
6292
+ * domain is spec data and stays as it is, which is what keeps an overridden column's
6293
+ * `specOverrides.domain` untouched.
6294
+ */
6295
+ const relocateDomain = (domain) => Object.fromEntries(Object.entries(domain).map(([key, value]) => [key, typeof value === "string" && BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value)]));
6211
6296
  return walk(params);
6212
6297
  }
6213
6298
  //#endregion
6214
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_migrations.js
6299
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_migrations.js
6215
6300
  /** Create a DataVersioned wrapper with correct shape */
6216
6301
  function makeVersionedData(version, data) {
6217
6302
  return {
@@ -6789,7 +6874,7 @@ var DataModel = class DataModel {
6789
6874
  }
6790
6875
  };
6791
6876
  //#endregion
6792
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/internal.js
6877
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/internal.js
6793
6878
  /** Utility code helping to identify whether the code is running in actual UI environment */
6794
6879
  function isInUI() {
6795
6880
  return typeof globalThis.getPlatforma !== "undefined" || typeof globalThis.platforma !== "undefined";
@@ -6859,7 +6944,7 @@ function registerFutureAwait(handle, onResolve) {
6859
6944
  futureResolves.get(handle).push(onResolve);
6860
6945
  }
6861
6946
  //#endregion
6862
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
6947
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
6863
6948
  /**
6864
6949
  * All facade callback names as constants.
6865
6950
  * These are the source of truth - the interface is derived from these.
@@ -6897,7 +6982,7 @@ function registerFacadeCallbacks(callbacks) {
6897
6982
  for (const key of Object.values(BlockStorageFacadeCallbacks)) tryRegisterCallback(key, callbacks[key]);
6898
6983
  }
6899
6984
  //#endregion
6900
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/block_services.js
6985
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/block_services.js
6901
6986
  /**
6902
6987
  * Services required by all V3 blocks by default.
6903
6988
  * Edit this when a new service should be available to all blocks.
@@ -6913,7 +6998,7 @@ const BLOCK_SERVICE_FLAGS = {
6913
6998
  };
6914
6999
  resolveRequiredServices(BLOCK_SERVICE_FLAGS);
6915
7000
  //#endregion
6916
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/future.js
7001
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/future.js
6917
7002
  var FutureRef = class FutureRef {
6918
7003
  handle;
6919
7004
  postProcess;
@@ -6941,7 +7026,7 @@ var FutureRef = class FutureRef {
6941
7026
  }
6942
7027
  };
6943
7028
  //#endregion
6944
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/accessor.js
7029
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/accessor.js
6945
7030
  function ifDef(value, cb) {
6946
7031
  return value === void 0 ? void 0 : cb(value);
6947
7032
  }
@@ -7191,11 +7276,11 @@ var TreeNodeAccessor = class TreeNodeAccessor {
7191
7276
  }
7192
7277
  };
7193
7278
  //#endregion
7194
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/internal.js
7279
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/internal.js
7195
7280
  const MainAccessorName = "main";
7196
7281
  const StagingAccessorName = "staging";
7197
7282
  //#endregion
7198
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7283
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7199
7284
  function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7200
7285
  const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
7201
7286
  const { type } = dataInfoEntries;
@@ -7259,7 +7344,7 @@ function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7259
7344
  }
7260
7345
  }
7261
7346
  //#endregion
7262
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7347
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7263
7348
  /**
7264
7349
  * Structural postfix derivation for linked columns (phase 2 of `deriveDistinctLabels`).
7265
7350
  *
@@ -7442,7 +7527,7 @@ function derivePostfixes(entries, format = defaultLinkerFormatter) {
7442
7527
  });
7443
7528
  }
7444
7529
  //#endregion
7445
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7530
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7446
7531
  const DISTANCE_PENALTY = .001;
7447
7532
  const LABEL_TYPE = "__LABEL__";
7448
7533
  const LABEL_TYPE_FULL = "__LABEL__@1";
@@ -7730,7 +7815,7 @@ function repairBareByPresence(labels, minimized, records, stats, forcedSet, forc
7730
7815
  return patched;
7731
7816
  }
7732
7817
  //#endregion
7733
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/label.js
7818
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/label.js
7734
7819
  /** @deprecated Use deriveDistinctLabels */
7735
7820
  function deriveLabels(values, getSpec, options = {}) {
7736
7821
  return deriveDistinctLabels(values.map(getSpec), options).map((label, i) => ({
@@ -7739,7 +7824,7 @@ function deriveLabels(values, getSpec, options = {}) {
7739
7824
  }));
7740
7825
  }
7741
7826
  //#endregion
7742
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7827
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7743
7828
  const RT_RESOURCE_MAP = "PColumnData/ResourceMap";
7744
7829
  const RT_RESOURCE_MAP_PARTITIONED = "PColumnData/Partitioned/ResourceMap";
7745
7830
  const RT_JSON_PARTITIONED = "PColumnData/JsonPartitioned";
@@ -8078,7 +8163,7 @@ function allPColumnsReady(columns) {
8078
8163
  return columns.every(isPColumnReady);
8079
8164
  }
8080
8165
  //#endregion
8081
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8166
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8082
8167
  function isPColumnValues(value) {
8083
8168
  if (!Array.isArray(value)) return false;
8084
8169
  if (value.length === 0) return true;
@@ -8356,7 +8441,7 @@ var PColumnCollection = class {
8356
8441
  }
8357
8442
  };
8358
8443
  //#endregion
8359
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8444
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8360
8445
  /**
8361
8446
  * Builds a ServiceProxy from a ServiceDispatch.
8362
8447
  * Each service method call is forwarded to dispatch.callServiceMethod.
@@ -8365,7 +8450,7 @@ function createServiceProxy(dispatch) {
8365
8450
  return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
8366
8451
  }
8367
8452
  //#endregion
8368
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/get_services.js
8453
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/get_services.js
8369
8454
  const cachedServices = /* @__PURE__ */ new WeakMap();
8370
8455
  function getService(name, deps) {
8371
8456
  const ctx = deps?.ctx ?? getCfgRenderCtx();
@@ -8379,7 +8464,7 @@ function getService(name, deps) {
8379
8464
  })();
8380
8465
  }
8381
8466
  //#endregion
8382
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8467
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8383
8468
  function patchInSetFilters(filters) {
8384
8469
  const inSetToOrEqual = (predicate) => {
8385
8470
  if (predicate.operator !== "InSet") return predicate;
@@ -8417,7 +8502,7 @@ function patchInSetFilters(filters) {
8417
8502
  return filters.map((filter) => mapFilter(filter, inSetToOrEqual));
8418
8503
  }
8419
8504
  //#endregion
8420
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/api.js
8505
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/api.js
8421
8506
  /**
8422
8507
  * Helper function to match domain objects
8423
8508
  * @param query Optional domain to match against
@@ -8866,27 +8951,27 @@ var PluginRenderCtx = class extends RenderCtxBase {
8866
8951
  }
8867
8952
  };
8868
8953
  //#endregion
8869
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/plugin_model.js
8954
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/plugin_model.js
8870
8955
  /** Internal plugin↔block handshake. `Symbol.for` (not `Symbol`) so it stays
8871
8956
  * identical across multiple `@platforma-sdk/model` copies in one process. */
8872
8957
  const CREATE_PLUGIN_MODEL = Symbol.for("@platforma-sdk/model:createPluginModel");
8873
8958
  //#endregion
8874
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/version.js
8875
- const PlatformaSDKVersion = "1.83.9";
8959
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/version.js
8960
+ const PlatformaSDKVersion = "1.84.1";
8876
8961
  //#endregion
8877
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/bconfig/types.js
8962
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/types.js
8878
8963
  function isConfigLambda(cfgOrFh) {
8879
8964
  return cfgOrFh.__renderLambda === true;
8880
8965
  }
8881
8966
  //#endregion
8882
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
8967
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
8883
8968
  function downgradeCfgOrLambda(data) {
8884
8969
  if (data === void 0) return void 0;
8885
8970
  if (isConfigLambda(data)) return data.handle;
8886
8971
  return data;
8887
8972
  }
8888
8973
  //#endregion
8889
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
8974
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
8890
8975
  /**
8891
8976
  * BlockStorage Callback Implementations - wired to facade callbacks in BlockModelV3.done().
8892
8977
  *
@@ -9240,7 +9325,7 @@ function deriveTemplateParamsFromStorage(storageJson, deriveTemplateParams) {
9240
9325
  }
9241
9326
  }
9242
9327
  //#endregion
9243
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_model.js
9328
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_model.js
9244
9329
  /**
9245
9330
  * Merges two feature flag objects with type-aware logic:
9246
9331
  * - `supports*` (boolean): OR — `true` if either side is `true`
@@ -9606,7 +9691,7 @@ var BlockModelV3 = class BlockModelV3 {
9606
9691
  }
9607
9692
  };
9608
9693
  //#endregion
9609
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9694
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9610
9695
  /** Create id for column copy with added keys in axes domains */
9611
9696
  const colId = (id, domains, contextDomains) => {
9612
9697
  let wid = id.toString();
@@ -9712,7 +9797,7 @@ function getAdditionalColumnsForColumn(blockAxes, column) {
9712
9797
  })];
9713
9798
  }
9714
9799
  //#endregion
9715
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9800
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9716
9801
  /**
9717
9802
  * Replace every column leaf whose id equals `fromId` with `toId`, leaving
9718
9803
  * other column refs (linkers, sub-anchors) intact. Wrapper recipes
@@ -10937,7 +11022,7 @@ var LRUCache = class LRUCache {
10937
11022
  }
10938
11023
  };
10939
11024
  //#endregion
10940
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
11025
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10941
11026
  /**
10942
11027
  * Unified memoised factory dispatching to the right provider flavour by the
10943
11028
  * source shape:
@@ -11026,7 +11111,7 @@ function hashRawPool(rawPool) {
11026
11111
  return rawPool.map((b) => `${b.blockId}\x1f${b.prodCtx ?? ""}\x1f${b.stagingCtx ?? ""}\x1f${b.prodIncomplete ? 1 : 0}\x1f${b.stagingIncomplete ? 1 : 0}`).join("");
11027
11112
  }
11028
11113
  //#endregion
11029
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
11114
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
11030
11115
  /**
11031
11116
  * Build the default set of ColumnsProviders for the ambient render ctx:
11032
11117
  * - `AccessorColumnsProvider` over `outputs` (if present)
@@ -11061,7 +11146,7 @@ function isColumnProvider(source) {
11061
11146
  return typeof p.getColumns === "function" && typeof p.isFinal === "function";
11062
11147
  }
11063
11148
  //#endregion
11064
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/data_column.js
11149
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/data_column.js
11065
11150
  /**
11066
11151
  * Thrown by leaf-recipe factories when the requested column is provably
11067
11152
  * absent in the active render ctx — i.e. every relevant accessor reports
@@ -11301,7 +11386,7 @@ function memoizeByEntry(fn) {
11301
11386
  };
11302
11387
  }
11303
11388
  //#endregion
11304
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
11389
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
11305
11390
  /**
11306
11391
  * Recipe wrapper that overlays {@link SpecOverrides} on top of any other
11307
11392
  * recipe. The id is `ColumnOverriddenKey { source: inner.id, specOverrides }`.
@@ -11439,7 +11524,7 @@ var DataColumnOverriddenRecipe = class extends ColumnOverriddenRecipe {
11439
11524
  }
11440
11525
  };
11441
11526
  //#endregion
11442
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11527
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11443
11528
  /**
11444
11529
  * Recipe wrapper that fixes the values of selected axes of an inner recipe
11445
11530
  * (axis slicing). The id is `FilteredPColumnId { source: inner.id,
@@ -11565,7 +11650,7 @@ function toAxisSelector(axis) {
11565
11650
  return selector;
11566
11651
  }
11567
11652
  //#endregion
11568
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11653
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11569
11654
  /**
11570
11655
  * Build a `ColumnRecipe` from a stringified id. Dispatches to the matching
11571
11656
  * concrete recipe variant based on the id's encoding and recurses on
@@ -11616,7 +11701,7 @@ function ColumnRecipeGetStatus(id, opts = {}) {
11616
11701
  }
11617
11702
  const ColumnRecipe = Object.assign(ColumnRecipeBuild, { getStatus: ColumnRecipeGetStatus });
11618
11703
  //#endregion
11619
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11704
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11620
11705
  /**
11621
11706
  * Recipe for columns identified by a {@link ColumnDiscoveredKey}: a base
11622
11707
  * column + a `path` of linkers + qualifications.
@@ -11787,7 +11872,7 @@ function referencedUniIdsOf(key) {
11787
11872
  return /* @__PURE__ */ new Set([key.column, ...(key.path ?? []).map((item) => item.column)]);
11788
11873
  }
11789
11874
  //#endregion
11790
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column.js
11875
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column.js
11791
11876
  /**
11792
11877
  * Unified entry point — routes between the two top-level dispatchers:
11793
11878
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
@@ -11801,7 +11886,7 @@ function Column(source, opts) {
11801
11886
  return DataColumn(source, opts);
11802
11887
  }
11803
11888
  //#endregion
11804
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11889
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11805
11890
  /**
11806
11891
  * Build a {@link ColumnsCollection} from sandbox-side source descriptors.
11807
11892
  * Resolves the `columnsCollection` driver (either from `deps.driver` or via
@@ -11910,7 +11995,7 @@ function defaultCtxSources(ctx) {
11910
11995
  return [...currentBlockSources(ctx), { kind: "result_pool" }];
11911
11996
  }
11912
11997
  //#endregion
11913
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/utils.js
11998
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/utils.js
11914
11999
  /**
11915
12000
  * PObjectIds of every non-hit column referenced by `recipe.getQuery()`,
11916
12001
  * deduped in traversal order. The hit column is
@@ -12041,7 +12126,7 @@ function hasSingleDataColumn(recipe) {
12041
12126
  return recipe.getReferencedIds().length === 1;
12042
12127
  }
12043
12128
  //#endregion
12044
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
12129
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
12045
12130
  function getAllRelatedColumns(ctx, predicate) {
12046
12131
  const columns = new PColumnCollection();
12047
12132
  columns.addColumnProvider(ctx.resultPool);
@@ -12117,7 +12202,7 @@ function discoverIntegrableColumnIds(ctx, rootColumns) {
12117
12202
  }
12118
12203
  }
12119
12204
  //#endregion
12120
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
12205
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
12121
12206
  function isHiddenFromGraphColumn(column) {
12122
12207
  return !!readAnnotationJson(column, Annotation.HideDataFromGraphs);
12123
12208
  }
@@ -12146,7 +12231,7 @@ function createPFrameForGraphs(ctx, blockColumns) {
12146
12231
  }));
12147
12232
  }
12148
12233
  //#endregion
12149
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/filter_discovery.js
12234
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/filter_discovery.js
12150
12235
  /**
12151
12236
  * Matches columns annotated `pl7.app/isSubset: "true"` whose axes ⊆ anchor axes.
12152
12237
  *
@@ -12198,7 +12283,7 @@ function buildRefMap(entries) {
12198
12283
  return new Map(entries.map((e) => [(0, import_canonicalize.default)(e.ref), e.ref]));
12199
12284
  }
12200
12285
  //#endregion
12201
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/enrichment_discovery.js
12286
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/enrichment_discovery.js
12202
12287
  /**
12203
12288
  * Linker-reached hits attached to the anchor primary. Drops zero-hop variants
12204
12289
  * (filters / the primary itself) and structural hits (subset, linker, label
@@ -12258,7 +12343,7 @@ function enrichmentVariantsToRefs(variants, labelOptions) {
12258
12343
  });
12259
12344
  }
12260
12345
  //#endregion
12261
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/build_dataset_options.js
12346
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDatasetSelector/build_dataset_options.js
12262
12347
  function toPredicate(opt) {
12263
12348
  if (opt === void 0) return () => true;
12264
12349
  return typeof opt === "function" ? opt : multiColumnSelectorsToPredicate(opt);
@@ -12308,7 +12393,7 @@ function buildDatasetOptions(ctx, opts) {
12308
12393
  });
12309
12394
  }
12310
12395
  //#endregion
12311
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/traverse.js
12396
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/traverse.js
12312
12397
  /**
12313
12398
  * Recursively traverses a FilterSpec tree bottom-up, applying visitor callbacks.
12314
12399
  *
@@ -12347,7 +12432,7 @@ function collectFilterSpecColumns(filter) {
12347
12432
  });
12348
12433
  }
12349
12434
  //#endregion
12350
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
12435
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
12351
12436
  /** Converts a QueryColumnId object into a SpecQueryExpression reference. */
12352
12437
  function resolveColumnRef(col) {
12353
12438
  return col.type === "axis" ? {
@@ -12659,7 +12744,7 @@ function isEmpty(value) {
12659
12744
  return true;
12660
12745
  }
12661
12746
  //#endregion
12662
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/distill.js
12747
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/distill.js
12663
12748
  /**
12664
12749
  * Strips non-FilterSpec metadata (whitelist approach) and removes
12665
12750
  * unfilled leaves (type is undefined or any required field is undefined).
@@ -12764,7 +12849,7 @@ const REQUIRED_KEYS_BY_TYPE = {
12764
12849
  greaterThanColumnOrEqual: ["column", "rhs"]
12765
12850
  };
12766
12851
  //#endregion
12767
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12852
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12768
12853
  /** Upgrade PlDataTableStateV2 to the latest version */
12769
12854
  function upgradePlDataTableStateV2(state) {
12770
12855
  if (!state) return createPlDataTableStateV2();
@@ -13122,7 +13207,7 @@ function parseLegacyLeafColumn(s) {
13122
13207
  return parsed;
13123
13208
  }
13124
13209
  //#endregion
13125
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
13210
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
13126
13211
  /** Adapt a {@link ColumnRecipe} to the plain {@link RuleColumn} shape. */
13127
13212
  function toRuleColumn(col) {
13128
13213
  return {
@@ -13220,7 +13305,7 @@ function deriveAllLabels(options) {
13220
13305
  })), deriveLabelsOptions).reduce((acc, label, index) => (acc[columns[index].id] = label, acc), {});
13221
13306
  }
13222
13307
  //#endregion
13223
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
13308
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
13224
13309
  /**
13225
13310
  * Assemble a ptable def directly from recipes. Each secondary recipe is its own
13226
13311
  * outer-joined subtree: `getQuery()` encodes its linker chain, and its
@@ -13284,7 +13369,7 @@ function columnToJoinEntry(col, qualifications) {
13284
13369
  };
13285
13370
  }
13286
13371
  //#endregion
13287
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
13372
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
13288
13373
  function createColumnResolver(columns) {
13289
13374
  const axisIds = [];
13290
13375
  for (const c of columns) for (const ax of c.getSpec().axesSpec) axisIds.push(getAxisId(ax));
@@ -13306,7 +13391,7 @@ function createColumnResolver(columns) {
13306
13391
  };
13307
13392
  }
13308
13393
  //#endregion
13309
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
13394
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
13310
13395
  /**
13311
13396
  * Discover columns from sources/anchors and split them into primary
13312
13397
  * (direct anchor hits — zero-hop, query is a bare column) and secondary
@@ -13352,7 +13437,7 @@ function discoverLabelColumns(ctx, primary) {
13352
13437
  }).getColumns();
13353
13438
  }
13354
13439
  //#endregion
13355
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
13440
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
13356
13441
  function createPlDataTableV3(ctx, options) {
13357
13442
  const state = upgradePlDataTableStateV2(options.tableState);
13358
13443
  const primaryJoinType = options.primaryJoinType ?? "full";
@@ -13459,7 +13544,7 @@ function resolveInputColumns(ctx, options) {
13459
13544
  secondary: dedupColumns([...secondary, ...labels].filter((c) => !primaryIds.has(c.id)), (c) => c.id, (c) => c.getSpec())
13460
13545
  };
13461
13546
  }
13462
- if (isPlainObject(options.columns)) return discoverTableColumns(ctx, options.columns);
13547
+ if (isPlainObject$1(options.columns)) return discoverTableColumns(ctx, options.columns);
13463
13548
  }
13464
13549
  /** Split secondary recipes by query topology: leaves (no linker chain) vs joined. */
13465
13550
  function splitByTopology(columns) {