@platforma-open/milaboratories.generation-probability.block 1.2.0 → 1.2.1

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-B-1-B7_t.js";
2
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/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.0/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.
@@ -3790,12 +3790,34 @@ ZodOptional.create;
3790
3790
  ZodNullable.create;
3791
3791
  ZodEffects.createWithPreprocess;
3792
3792
  ZodPipeline.create;
3793
+ const coerce = {
3794
+ string: ((arg) => ZodString.create({
3795
+ ...arg,
3796
+ coerce: true
3797
+ })),
3798
+ number: ((arg) => ZodNumber.create({
3799
+ ...arg,
3800
+ coerce: true
3801
+ })),
3802
+ boolean: ((arg) => ZodBoolean.create({
3803
+ ...arg,
3804
+ coerce: true
3805
+ })),
3806
+ bigint: ((arg) => ZodBigInt.create({
3807
+ ...arg,
3808
+ coerce: true
3809
+ })),
3810
+ date: ((arg) => ZodDate.create({
3811
+ ...arg,
3812
+ coerce: true
3813
+ }))
3814
+ };
3793
3815
  objectType({
3794
3816
  type: literalType("plain"),
3795
3817
  content: stringType()
3796
3818
  });
3797
3819
  //#endregion
3798
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3820
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3799
3821
  /**
3800
3822
  * Compose a {@link BlockKindReference} from a kind's `name`/`version`.
3801
3823
  *
@@ -3811,7 +3833,7 @@ objectType({
3811
3833
  to: numberType().min(1)
3812
3834
  });
3813
3835
  //#endregion
3814
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3836
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3815
3837
  function assertNever(x) {
3816
3838
  throw new Error("Unexpected object: " + x);
3817
3839
  }
@@ -3823,7 +3845,7 @@ function uniqueBy(array, makeId) {
3823
3845
  return [...new Map(array.map((e) => [makeId(e), e])).values()];
3824
3846
  }
3825
3847
  //#endregion
3826
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3848
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3827
3849
  /**
3828
3850
  * Type guard function that checks if the given value is a valid DataInfo.
3829
3851
  *
@@ -4014,7 +4036,7 @@ function entriesToDataInfo(dataInfoEntries) {
4014
4036
  }
4015
4037
  }
4016
4038
  //#endregion
4017
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4039
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4018
4040
  var ServiceError = class extends Error {
4019
4041
  name = "ServiceError";
4020
4042
  };
@@ -4038,7 +4060,7 @@ function ensureError(value) {
4038
4060
  return new Error(stringifyValue(value));
4039
4061
  }
4040
4062
  //#endregion
4041
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4063
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4042
4064
  var import_canonicalize = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
4043
4065
  module.exports = function serialize(object) {
4044
4066
  if (typeof object === "number" && isNaN(object)) throw new Error("NaN is not allowed");
@@ -4071,7 +4093,7 @@ function parseJsonSafely(value, fallback) {
4071
4093
  }
4072
4094
  }
4073
4095
  //#endregion
4074
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4096
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4075
4097
  function readMetadata(metadata, key) {
4076
4098
  return metadata?.[key];
4077
4099
  }
@@ -4093,6 +4115,36 @@ function readMetadataJson(metadata, metadataJson, key) {
4093
4115
  return;
4094
4116
  }
4095
4117
  }
4118
+ /**
4119
+ * Domain keys whose value is the id of a block, rather than a qualifier of the data.
4120
+ *
4121
+ * Applying a template repoints these at the blocks of the project being built: an axis a block
4122
+ * produced names that block in its domain, so an axis left naming the exported-from project
4123
+ * resolves to nothing. Listing the keys is what makes that safe — a template's entry ids are
4124
+ * arbitrary non-empty strings, so a hand-written template may name an entry `closest`, and a
4125
+ * qualifier that happens to read `closest` must not be mistaken for a reference to it.
4126
+ *
4127
+ * A key absent from here is simply left alone, which is the behaviour from before relocation
4128
+ * reached domains at all. Adding one is therefore safe; omitting one costs only that a template
4129
+ * carrying it applies still pointing at the project it came from.
4130
+ */
4131
+ const BlockScopedDomain = /* @__PURE__ */ new Set([
4132
+ "pl7.app/blockId",
4133
+ "pl7.app/block",
4134
+ "pl7.app/redefined-by",
4135
+ "pl7.app/annotationRunId",
4136
+ "pl7.app/clonotypeAnnotationRunId",
4137
+ "pl7.app/clustering/blockId",
4138
+ "pl7.app/umap/blockId",
4139
+ "pl7.app/peptide/extractionRunId",
4140
+ "pl7.app/repertoire/extractionRunId",
4141
+ "pl7.app/antibodyVariantDesigner/designRunId",
4142
+ "pl7.app/vdj/clonotypingRunId",
4143
+ "pl7.app/vdj/clustering/blockId",
4144
+ "pl7.app/vdj/integration/blockId",
4145
+ "pl7.app/vdj/spatiotemporalAnalysis/blockId",
4146
+ "pl7.app/vdj/libraryId"
4147
+ ]);
4096
4148
  const Annotation = {
4097
4149
  AxisNature: "pl7.app/axisNature",
4098
4150
  Alphabet: "pl7.app/alphabet",
@@ -4110,6 +4162,7 @@ const Annotation = {
4110
4162
  IsDenseAxis: "pl7.app/graph/isDenseAxis",
4111
4163
  IsVirtual: "pl7.app/graph/isVirtual",
4112
4164
  Palette: "pl7.app/graph/palette",
4165
+ Shape: "pl7.app/graph/shape",
4113
4166
  Thresholds: "pl7.app/graph/thresholds",
4114
4167
  TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs"
4115
4168
  },
@@ -4165,9 +4218,14 @@ const AnnotationJson = {
4165
4218
  [Annotation.Graph.Axis.SymmetricRange]: booleanType(),
4166
4219
  [Annotation.Graph.IsDenseAxis]: booleanType(),
4167
4220
  [Annotation.Graph.Palette]: objectType({
4168
- mapping: recordType(numberType()),
4169
- name: stringType()
4221
+ name: stringType(),
4222
+ mapping: recordType(coerce.number()).optional(),
4223
+ midPoint: numberType().optional(),
4224
+ min: numberType().optional(),
4225
+ max: numberType().optional(),
4226
+ log: booleanType().optional()
4170
4227
  }),
4228
+ [Annotation.Graph.Shape]: objectType({ mapping: recordType(stringType()) }),
4171
4229
  [Annotation.Graph.Thresholds]: arrayType(objectType({
4172
4230
  columnId: objectType({
4173
4231
  valueType: ValueTypeSchema,
@@ -4363,7 +4421,7 @@ function matchAxisId(query, target) {
4363
4421
  return query.name === target.name && matchDomain$1(query.domain, target.domain) && matchDomain$1(query.contextDomain, target.contextDomain);
4364
4422
  }
4365
4423
  //#endregion
4366
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4424
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4367
4425
  const BOOLEAN_TYPES = /* @__PURE__ */ new Set([
4368
4426
  "numericComparison",
4369
4427
  "stringEquals",
@@ -4468,7 +4526,7 @@ function collectSpecQueryColumns(query) {
4468
4526
  return result;
4469
4527
  }
4470
4528
  //#endregion
4471
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4529
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4472
4530
  function mapPTableDef(def, cb) {
4473
4531
  return {
4474
4532
  ...def,
@@ -4511,7 +4569,7 @@ function mapJoinEntry(entry, cb) {
4511
4569
  }
4512
4570
  }
4513
4571
  //#endregion
4514
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4572
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4515
4573
  function getPTableColumnId(spec) {
4516
4574
  switch (spec.type) {
4517
4575
  case "axis": return {
@@ -4525,7 +4583,7 @@ function getPTableColumnId(spec) {
4525
4583
  }
4526
4584
  }
4527
4585
  //#endregion
4528
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4586
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4529
4587
  function stringifyColumnFilteredId(key) {
4530
4588
  return canonicalizeJson(createColumnFilteredKey(key));
4531
4589
  }
@@ -4558,7 +4616,7 @@ function applyAxisFilters(spec, axisFilters) {
4558
4616
  };
4559
4617
  }
4560
4618
  //#endregion
4561
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4619
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4562
4620
  function isPObjectId(value) {
4563
4621
  if (typeof value !== "string") return false;
4564
4622
  return isPObjectKey(parseJsonSafely(value));
@@ -4668,7 +4726,7 @@ function isObject(value) {
4668
4726
  * isPlainObject([]); // false
4669
4727
  * ```
4670
4728
  */
4671
- function isPlainObject(value) {
4729
+ function isPlainObject$1(value) {
4672
4730
  if (!isObject(value)) return false;
4673
4731
  const prototype = Object.getPrototypeOf(value);
4674
4732
  return prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null;
@@ -4680,7 +4738,7 @@ function throwError(v) {
4680
4738
  else throw v;
4681
4739
  }
4682
4740
  //#endregion
4683
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4741
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4684
4742
  function isColumnDiscoveredKey(obj) {
4685
4743
  return typeof obj === "object" && obj !== null && "__isDiscovered" in obj;
4686
4744
  }
@@ -4820,6 +4878,56 @@ function getTag(value) {
4820
4878
  return Object.prototype.toString.call(value);
4821
4879
  }
4822
4880
  //#endregion
4881
+ //#region ../node_modules/.pnpm/es-toolkit@1.50.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
4882
+ /**
4883
+ * Checks if a given value is a plain object.
4884
+ *
4885
+ * @param value - The value to check.
4886
+ * @returns True if the value is a plain object, otherwise false.
4887
+ *
4888
+ * @example
4889
+ * ```typescript
4890
+ * // ✅👇 True
4891
+ *
4892
+ * isPlainObject({ }); // ✅
4893
+ * isPlainObject({ key: 'value' }); // ✅
4894
+ * isPlainObject({ key: new Date() }); // ✅
4895
+ * isPlainObject(new Object()); // ✅
4896
+ * isPlainObject(Object.create(null)); // ✅
4897
+ * isPlainObject({ nested: { key: true} }); // ✅
4898
+ * isPlainObject(new Proxy({}, {})); // ✅
4899
+ * isPlainObject({ [Symbol('tag')]: 'A' }); // ✅
4900
+ *
4901
+ * // ✅👇 (cross-realms, node context, workers, ...)
4902
+ * const runInNewContext = await import('node:vm').then(
4903
+ * (mod) => mod.runInNewContext
4904
+ * );
4905
+ * isPlainObject(runInNewContext('({})')); // ✅
4906
+ *
4907
+ * // ❌👇 False
4908
+ *
4909
+ * class Test { };
4910
+ * isPlainObject(new Test()) // ❌
4911
+ * isPlainObject(10); // ❌
4912
+ * isPlainObject(null); // ❌
4913
+ * isPlainObject('hello'); // ❌
4914
+ * isPlainObject([]); // ❌
4915
+ * isPlainObject(new Date()); // ❌
4916
+ * isPlainObject(new Uint8Array([1])); // ❌
4917
+ * isPlainObject(Buffer.from('ABC')); // ❌
4918
+ * isPlainObject(Promise.resolve({})); // ❌
4919
+ * isPlainObject(Object.create({})); // ❌
4920
+ * isPlainObject(new (class Cls {})); // ❌
4921
+ * isPlainObject(globalThis); // ❌,
4922
+ * ```
4923
+ */
4924
+ function isPlainObject(value) {
4925
+ if (!value || typeof value !== "object") return false;
4926
+ const proto = Object.getPrototypeOf(value);
4927
+ if (!(proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null)) return false;
4928
+ return Object.prototype.toString.call(value) === "[object Object]";
4929
+ }
4930
+ //#endregion
4823
4931
  //#region ../node_modules/.pnpm/es-toolkit@1.50.0/node_modules/es-toolkit/dist/predicate/isFunction.mjs
4824
4932
  /**
4825
4933
  * Checks if `value` is a function.
@@ -4910,7 +5018,7 @@ function isString(value) {
4910
5018
  return typeof value === "string";
4911
5019
  }
4912
5020
  //#endregion
4913
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
5021
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
4914
5022
  /**
4915
5023
  * Canonically serializes a column key to a branded string id. Accepts both
4916
5024
  * the new {@link ColumnUniversalKey} and the deprecated {@link UniversalPColumnId}
@@ -5088,7 +5196,7 @@ function extractPObjectId(id) {
5088
5196
  throw new Error(`extractPObjectId: unrecognized column id structure: ${JSON.stringify(id)}`);
5089
5197
  }
5090
5198
  //#endregion
5091
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
5199
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
5092
5200
  function isColumnOverriddenKey(obj) {
5093
5201
  return typeof obj === "object" && obj !== null && "__isOverridden" in obj;
5094
5202
  }
@@ -5210,7 +5318,7 @@ function mergeRecord(a, b) {
5210
5318
  };
5211
5319
  }
5212
5320
  //#endregion
5213
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5321
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5214
5322
  function axisKey(axis) {
5215
5323
  return (0, import_canonicalize.default)(getAxisId(axis));
5216
5324
  }
@@ -5456,7 +5564,7 @@ function isAnchorAxisRef(value) {
5456
5564
  return typeof value === "object" && "anchor" in value;
5457
5565
  }
5458
5566
  //#endregion
5459
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5567
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5460
5568
  /**
5461
5569
  * Determines if an axis ID matches an axis selector.
5462
5570
  *
@@ -5537,7 +5645,7 @@ function legacyColumnSelectorsToPredicate(predicateOrSelectors) {
5537
5645
  else return (spec) => isPColumnSpec(spec) && matchPColumn(spec, predicateOrSelectors);
5538
5646
  }
5539
5647
  //#endregion
5540
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5648
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5541
5649
  function deriveNativeId(spec) {
5542
5650
  const result = {
5543
5651
  kind: spec.kind,
@@ -5549,7 +5657,7 @@ function deriveNativeId(spec) {
5549
5657
  return (0, import_canonicalize.default)(result);
5550
5658
  }
5551
5659
  //#endregion
5552
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5660
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5553
5661
  var LinkerMap = class LinkerMap {
5554
5662
  /** Graph of linkers connected by axes (single or grouped by parents) */
5555
5663
  data;
@@ -5727,7 +5835,7 @@ var LinkerMap = class LinkerMap {
5727
5835
  }
5728
5836
  };
5729
5837
  //#endregion
5730
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5838
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5731
5839
  /**
5732
5840
  * Required PFrames version. Bump this in lockstep with the `@milaboratories/pframes-rs-*`
5733
5841
  * version in `pnpm-workspace.yaml` so blocks built against the new SDK refuse to load on
@@ -5770,7 +5878,7 @@ function withEnrichments(ref, requireEnrichments = true) {
5770
5878
  }
5771
5879
  }
5772
5880
  //#endregion
5773
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5881
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5774
5882
  function mapValueInVOE(voe, cb) {
5775
5883
  return voe.ok ? {
5776
5884
  ok: true,
@@ -5778,7 +5886,7 @@ function mapValueInVOE(voe, cb) {
5778
5886
  } : voe;
5779
5887
  }
5780
5888
  //#endregion
5781
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5889
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5782
5890
  /** Well-known resource type names used across the platform. */
5783
5891
  const ResourceTypeName = {
5784
5892
  StreamManager: "StreamManager",
@@ -5822,7 +5930,7 @@ const ResourceTypeName = {
5822
5930
  SharedEnvelope: "SharedEnvelope"
5823
5931
  };
5824
5932
  //#endregion
5825
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5933
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5826
5934
  const SERVICE_ID_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*$/;
5827
5935
  const { service, isNodeService, isWasmService, isMainService, getServiceKind, getServiceModelMethods, getServiceUiMethods } = (() => {
5828
5936
  const typeMap = /* @__PURE__ */ new Map();
@@ -5861,7 +5969,7 @@ const { service, isNodeService, isWasmService, isMainService, getServiceKind, ge
5861
5969
  };
5862
5970
  })();
5863
5971
  //#endregion
5864
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5972
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5865
5973
  const Services = {
5866
5974
  PFrameSpec: service()({
5867
5975
  type: "wasm",
@@ -5955,7 +6063,7 @@ function resolveRequiredServices(flags) {
5955
6063
  }
5956
6064
  Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true]));
5957
6065
  //#endregion
5958
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
6066
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
5959
6067
  function buildMethodMap(pick) {
5960
6068
  const result = {};
5961
6069
  for (const id of Object.values(Services)) result[id] = [...pick(id)];
@@ -5964,7 +6072,7 @@ function buildMethodMap(pick) {
5964
6072
  buildMethodMap(getServiceUiMethods);
5965
6073
  buildMethodMap(getServiceModelMethods);
5966
6074
  //#endregion
5967
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
6075
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
5968
6076
  /** Resource types that hold column collections — DFS stops here and collects. */
5969
6077
  const COLLECT_TYPES = [ResourceTypeName.PFrame];
5970
6078
  /** Resource types DFS descends through when looking for PFrames. */
@@ -6072,7 +6180,7 @@ function indexPoolBlock(block) {
6072
6180
  return result;
6073
6181
  }
6074
6182
  //#endregion
6075
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
6183
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
6076
6184
  /**
6077
6185
  * Id-index over a set of {@link ColumnEntriesProvider}s. Sole job:
6078
6186
  * {@link PObjectId} → {@link LeafEntry}. Generic over the accessor flavour, so
@@ -6109,7 +6217,7 @@ var ColumnRegistry = class {
6109
6217
  }
6110
6218
  };
6111
6219
  //#endregion
6112
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6220
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6113
6221
  /**
6114
6222
  * Two-track dedup over an item stream keyed by `ColumnUniversalId`:
6115
6223
  *
@@ -6150,7 +6258,7 @@ function dedupColumns(items, getId, getSpec) {
6150
6258
  return out;
6151
6259
  }
6152
6260
  //#endregion
6153
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6261
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6154
6262
  /**
6155
6263
  * Generic entries provider over a single accessor root. Walks `<root>` once
6156
6264
  * from the supplied `rootPath`, builds an id → {@link LeafEntry} map and
@@ -6207,7 +6315,7 @@ var ResultPoolEntriesProvider = class {
6207
6315
  }
6208
6316
  };
6209
6317
  //#endregion
6210
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6318
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6211
6319
  /**
6212
6320
  * Whether `value` is a reference in the readable spelling.
6213
6321
  *
@@ -6276,7 +6384,7 @@ function expandTemplatePlRef(ref) {
6276
6384
  };
6277
6385
  }
6278
6386
  //#endregion
6279
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.48.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6387
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6280
6388
  /**
6281
6389
  * Point every column identifier in a block's params at the blocks of the project being built.
6282
6390
  *
@@ -6292,8 +6400,13 @@ function expandTemplatePlRef(ref) {
6292
6400
  *
6293
6401
  * Rewriting is structural, never textual: an identifier is taken apart, its `blockId` fields
6294
6402
  * are replaced, and it is rebuilt canonically. That is what keeps a value that merely *looks*
6295
- * like an id — a `domain` entry, an axis filter — from being rewritten along with it, and
6296
- * what re-sorts a qualifications map whose keys are identifiers.
6403
+ * like an id — an axis filter, a domain this package can see belongs to an identifier it
6404
+ * knows — from being rewritten along with it, and what re-sorts a qualifications map whose
6405
+ * keys are identifiers.
6406
+ *
6407
+ * A domain reached on its own is the exception, and `relocateDomain` below says why: an axis is
6408
+ * qualified by the block that produced it. Only the domain keys known to name a block are
6409
+ * repointed — matching an entry id is not on its own evidence of a reference.
6297
6410
  *
6298
6411
  * An id the map does not mention is left as it is. That is the ordering rule doing its work:
6299
6412
  * a caller building the map as it creates blocks passes only the entries already created, so
@@ -6311,13 +6424,27 @@ function relocateBlockIds(params, blockIds) {
6311
6424
  if (typeof node === "string") return remapColumnIdBlockIds(node, remapBlockId);
6312
6425
  if (isColumnUniversalKey(node)) return remapColumnIdBlockIds(node, remapBlockId);
6313
6426
  if (Array.isArray(node)) return node.map(walk);
6314
- if (typeof node === "object" && node !== null) return Object.fromEntries(Object.entries(node).map(([key, value]) => [remapColumnIdBlockIds(key, remapBlockId), walk(value)]));
6427
+ 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)]));
6315
6428
  return node;
6316
6429
  };
6430
+ /**
6431
+ * The block-naming entries of a domain, repointed at the project being built: an axis a block
6432
+ * produced names that block in its domain, so those are references like any other.
6433
+ *
6434
+ * Only the keys {@link BlockScopedDomain} lists, because a template's entry ids are arbitrary
6435
+ * non-empty strings — a hand-written template may name an entry `closest`, and a qualifier
6436
+ * reading `closest` is not a reference to it. Matching the map is not on its own enough to
6437
+ * tell one from the other; the key is.
6438
+ *
6439
+ * Reached only from the generic object case — inside an identifier this package recognizes a
6440
+ * domain is spec data and stays as it is, which is what keeps an overridden column's
6441
+ * `specOverrides.domain` untouched.
6442
+ */
6443
+ const relocateDomain = (domain) => Object.fromEntries(Object.entries(domain).map(([key, value]) => [key, typeof value === "string" && BlockScopedDomain.has(key) ? remapBlockId(value) : walk(value)]));
6317
6444
  return walk(params);
6318
6445
  }
6319
6446
  //#endregion
6320
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_migrations.js
6447
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_migrations.js
6321
6448
  /** Create a DataVersioned wrapper with correct shape */
6322
6449
  function makeVersionedData(version, data) {
6323
6450
  return {
@@ -6895,7 +7022,7 @@ var DataModel = class DataModel {
6895
7022
  }
6896
7023
  };
6897
7024
  //#endregion
6898
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/internal.js
7025
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/internal.js
6899
7026
  /** Utility code helping to identify whether the code is running in actual UI environment */
6900
7027
  function isInUI() {
6901
7028
  return typeof globalThis.getPlatforma !== "undefined" || typeof globalThis.platforma !== "undefined";
@@ -6965,7 +7092,7 @@ function registerFutureAwait(handle, onResolve) {
6965
7092
  futureResolves.get(handle).push(onResolve);
6966
7093
  }
6967
7094
  //#endregion
6968
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
7095
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
6969
7096
  /**
6970
7097
  * All facade callback names as constants.
6971
7098
  * These are the source of truth - the interface is derived from these.
@@ -7003,7 +7130,7 @@ function registerFacadeCallbacks(callbacks) {
7003
7130
  for (const key of Object.values(BlockStorageFacadeCallbacks)) tryRegisterCallback(key, callbacks[key]);
7004
7131
  }
7005
7132
  //#endregion
7006
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/block_services.js
7133
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/block_services.js
7007
7134
  /**
7008
7135
  * Services required by all V3 blocks by default.
7009
7136
  * Edit this when a new service should be available to all blocks.
@@ -7019,7 +7146,7 @@ const BLOCK_SERVICE_FLAGS = {
7019
7146
  };
7020
7147
  resolveRequiredServices(BLOCK_SERVICE_FLAGS);
7021
7148
  //#endregion
7022
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/future.js
7149
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/future.js
7023
7150
  var FutureRef = class FutureRef {
7024
7151
  handle;
7025
7152
  postProcess;
@@ -7047,7 +7174,7 @@ var FutureRef = class FutureRef {
7047
7174
  }
7048
7175
  };
7049
7176
  //#endregion
7050
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/accessor.js
7177
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/accessor.js
7051
7178
  function ifDef(value, cb) {
7052
7179
  return value === void 0 ? void 0 : cb(value);
7053
7180
  }
@@ -7297,11 +7424,11 @@ var TreeNodeAccessor = class TreeNodeAccessor {
7297
7424
  }
7298
7425
  };
7299
7426
  //#endregion
7300
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/internal.js
7427
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/internal.js
7301
7428
  const MainAccessorName = "main";
7302
7429
  const StagingAccessorName = "staging";
7303
7430
  //#endregion
7304
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7431
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7305
7432
  function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7306
7433
  const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
7307
7434
  const { type } = dataInfoEntries;
@@ -7365,7 +7492,7 @@ function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7365
7492
  }
7366
7493
  }
7367
7494
  //#endregion
7368
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7495
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7369
7496
  /**
7370
7497
  * Structural postfix derivation for linked columns (phase 2 of `deriveDistinctLabels`).
7371
7498
  *
@@ -7548,7 +7675,7 @@ function derivePostfixes(entries, format = defaultLinkerFormatter) {
7548
7675
  });
7549
7676
  }
7550
7677
  //#endregion
7551
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7678
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7552
7679
  const DISTANCE_PENALTY = .001;
7553
7680
  const LABEL_TYPE = "__LABEL__";
7554
7681
  const LABEL_TYPE_FULL = "__LABEL__@1";
@@ -7836,7 +7963,7 @@ function repairBareByPresence(labels, minimized, records, stats, forcedSet, forc
7836
7963
  return patched;
7837
7964
  }
7838
7965
  //#endregion
7839
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/label.js
7966
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/label.js
7840
7967
  /** @deprecated Use deriveDistinctLabels */
7841
7968
  function deriveLabels(values, getSpec, options = {}) {
7842
7969
  return deriveDistinctLabels(values.map(getSpec), options).map((label, i) => ({
@@ -7845,7 +7972,7 @@ function deriveLabels(values, getSpec, options = {}) {
7845
7972
  }));
7846
7973
  }
7847
7974
  //#endregion
7848
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7975
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7849
7976
  const RT_RESOURCE_MAP = "PColumnData/ResourceMap";
7850
7977
  const RT_RESOURCE_MAP_PARTITIONED = "PColumnData/Partitioned/ResourceMap";
7851
7978
  const RT_JSON_PARTITIONED = "PColumnData/JsonPartitioned";
@@ -8143,7 +8270,7 @@ function allPColumnsReady(columns) {
8143
8270
  return columns.every(isPColumnReady);
8144
8271
  }
8145
8272
  //#endregion
8146
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8273
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8147
8274
  function isPColumnValues(value) {
8148
8275
  if (!Array.isArray(value)) return false;
8149
8276
  if (value.length === 0) return true;
@@ -8421,7 +8548,7 @@ var PColumnCollection = class {
8421
8548
  }
8422
8549
  };
8423
8550
  //#endregion
8424
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8551
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8425
8552
  /**
8426
8553
  * Builds a ServiceProxy from a ServiceDispatch.
8427
8554
  * Each service method call is forwarded to dispatch.callServiceMethod.
@@ -8430,7 +8557,7 @@ function createServiceProxy(dispatch) {
8430
8557
  return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
8431
8558
  }
8432
8559
  //#endregion
8433
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/get_services.js
8560
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/get_services.js
8434
8561
  const cachedServices = /* @__PURE__ */ new WeakMap();
8435
8562
  function getService(name, deps) {
8436
8563
  const ctx = deps?.ctx ?? getCfgRenderCtx();
@@ -8444,7 +8571,7 @@ function getService(name, deps) {
8444
8571
  })();
8445
8572
  }
8446
8573
  //#endregion
8447
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8574
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8448
8575
  function patchInSetFilters(filters) {
8449
8576
  const inSetToOrEqual = (predicate) => {
8450
8577
  if (predicate.operator !== "InSet") return predicate;
@@ -8482,7 +8609,7 @@ function patchInSetFilters(filters) {
8482
8609
  return filters.map((filter) => mapFilter(filter, inSetToOrEqual));
8483
8610
  }
8484
8611
  //#endregion
8485
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/api.js
8612
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/api.js
8486
8613
  /**
8487
8614
  * Helper function to match domain objects
8488
8615
  * @param query Optional domain to match against
@@ -8931,27 +9058,27 @@ var PluginRenderCtx = class extends RenderCtxBase {
8931
9058
  }
8932
9059
  };
8933
9060
  //#endregion
8934
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/plugin_model.js
9061
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/plugin_model.js
8935
9062
  /** Internal plugin↔block handshake. `Symbol.for` (not `Symbol`) so it stays
8936
9063
  * identical across multiple `@platforma-sdk/model` copies in one process. */
8937
9064
  const CREATE_PLUGIN_MODEL = Symbol.for("@platforma-sdk/model:createPluginModel");
8938
9065
  //#endregion
8939
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/version.js
8940
- const PlatformaSDKVersion = "1.83.0";
9066
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/version.js
9067
+ const PlatformaSDKVersion = "1.84.1";
8941
9068
  //#endregion
8942
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/bconfig/types.js
9069
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/types.js
8943
9070
  function isConfigLambda(cfgOrFh) {
8944
9071
  return cfgOrFh.__renderLambda === true;
8945
9072
  }
8946
9073
  //#endregion
8947
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
9074
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
8948
9075
  function downgradeCfgOrLambda(data) {
8949
9076
  if (data === void 0) return void 0;
8950
9077
  if (isConfigLambda(data)) return data.handle;
8951
9078
  return data;
8952
9079
  }
8953
9080
  //#endregion
8954
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
9081
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
8955
9082
  /**
8956
9083
  * BlockStorage Callback Implementations - wired to facade callbacks in BlockModelV3.done().
8957
9084
  *
@@ -9305,7 +9432,7 @@ function deriveTemplateParamsFromStorage(storageJson, deriveTemplateParams) {
9305
9432
  }
9306
9433
  }
9307
9434
  //#endregion
9308
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_model.js
9435
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_model.js
9309
9436
  /**
9310
9437
  * Merges two feature flag objects with type-aware logic:
9311
9438
  * - `supports*` (boolean): OR — `true` if either side is `true`
@@ -9671,7 +9798,7 @@ var BlockModelV3 = class BlockModelV3 {
9671
9798
  }
9672
9799
  };
9673
9800
  //#endregion
9674
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9801
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9675
9802
  /** Create id for column copy with added keys in axes domains */
9676
9803
  const colId = (id, domains, contextDomains) => {
9677
9804
  let wid = id.toString();
@@ -9777,7 +9904,7 @@ function getAdditionalColumnsForColumn(blockAxes, column) {
9777
9904
  })];
9778
9905
  }
9779
9906
  //#endregion
9780
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9907
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9781
9908
  /**
9782
9909
  * Replace every column leaf whose id equals `fromId` with `toId`, leaving
9783
9910
  * other column refs (linkers, sub-anchors) intact. Wrapper recipes
@@ -10445,7 +10572,7 @@ var U = class d {
10445
10572
  }
10446
10573
  };
10447
10574
  //#endregion
10448
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10575
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10449
10576
  /**
10450
10577
  * Unified memoised factory dispatching to the right provider flavour by the
10451
10578
  * source shape:
@@ -10534,7 +10661,7 @@ function hashRawPool(rawPool) {
10534
10661
  return rawPool.map((b) => `${b.blockId}\x1f${b.prodCtx ?? ""}\x1f${b.stagingCtx ?? ""}\x1f${b.prodIncomplete ? 1 : 0}\x1f${b.stagingIncomplete ? 1 : 0}`).join("");
10535
10662
  }
10536
10663
  //#endregion
10537
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10664
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10538
10665
  /**
10539
10666
  * Build the default set of ColumnsProviders for the ambient render ctx:
10540
10667
  * - `AccessorColumnsProvider` over `outputs` (if present)
@@ -10569,7 +10696,7 @@ function isColumnProvider(source) {
10569
10696
  return typeof p.getColumns === "function" && typeof p.isFinal === "function";
10570
10697
  }
10571
10698
  //#endregion
10572
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10699
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10573
10700
  /**
10574
10701
  * Thrown by leaf-recipe factories when the requested column is provably
10575
10702
  * absent in the active render ctx — i.e. every relevant accessor reports
@@ -10809,7 +10936,7 @@ function memoizeByEntry(fn) {
10809
10936
  };
10810
10937
  }
10811
10938
  //#endregion
10812
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
10939
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
10813
10940
  /**
10814
10941
  * Recipe wrapper that overlays {@link SpecOverrides} on top of any other
10815
10942
  * recipe. The id is `ColumnOverriddenKey { source: inner.id, specOverrides }`.
@@ -10947,7 +11074,7 @@ var DataColumnOverriddenRecipe = class extends ColumnOverriddenRecipe {
10947
11074
  }
10948
11075
  };
10949
11076
  //#endregion
10950
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11077
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
10951
11078
  /**
10952
11079
  * Recipe wrapper that fixes the values of selected axes of an inner recipe
10953
11080
  * (axis slicing). The id is `FilteredPColumnId { source: inner.id,
@@ -11073,7 +11200,7 @@ function toAxisSelector(axis) {
11073
11200
  return selector;
11074
11201
  }
11075
11202
  //#endregion
11076
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11203
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11077
11204
  /**
11078
11205
  * Build a `ColumnRecipe` from a stringified id. Dispatches to the matching
11079
11206
  * concrete recipe variant based on the id's encoding and recurses on
@@ -11124,7 +11251,7 @@ function ColumnRecipeGetStatus(id, opts = {}) {
11124
11251
  }
11125
11252
  const ColumnRecipe = Object.assign(ColumnRecipeBuild, { getStatus: ColumnRecipeGetStatus });
11126
11253
  //#endregion
11127
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11254
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11128
11255
  /**
11129
11256
  * Recipe for columns identified by a {@link ColumnDiscoveredKey}: a base
11130
11257
  * column + a `path` of linkers + qualifications.
@@ -11295,7 +11422,7 @@ function referencedUniIdsOf(key) {
11295
11422
  return /* @__PURE__ */ new Set([key.column, ...(key.path ?? []).map((item) => item.column)]);
11296
11423
  }
11297
11424
  //#endregion
11298
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column.js
11425
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column.js
11299
11426
  /**
11300
11427
  * Unified entry point — routes between the two top-level dispatchers:
11301
11428
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
@@ -11309,7 +11436,7 @@ function Column(source, opts) {
11309
11436
  return DataColumn(source, opts);
11310
11437
  }
11311
11438
  //#endregion
11312
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11439
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11313
11440
  /**
11314
11441
  * Build a {@link ColumnsCollection} from sandbox-side source descriptors.
11315
11442
  * Resolves the `columnsCollection` driver (either from `deps.driver` or via
@@ -11421,7 +11548,7 @@ function defaultCtxSources(ctx) {
11421
11548
  return [...currentBlockSources(ctx), { kind: "result_pool" }];
11422
11549
  }
11423
11550
  //#endregion
11424
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/utils.js
11551
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/utils.js
11425
11552
  /**
11426
11553
  * PObjectIds of every non-hit column referenced by `recipe.getQuery()`,
11427
11554
  * deduped in traversal order. The hit column is
@@ -11568,7 +11695,7 @@ function deriveColumnOptions(source, labelOptions = {}) {
11568
11695
  }));
11569
11696
  }
11570
11697
  //#endregion
11571
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
11698
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
11572
11699
  function getAllRelatedColumns(ctx, predicate) {
11573
11700
  const columns = new PColumnCollection();
11574
11701
  columns.addColumnProvider(ctx.resultPool);
@@ -11644,7 +11771,7 @@ function discoverIntegrableColumnIds(ctx, rootColumns) {
11644
11771
  }
11645
11772
  }
11646
11773
  //#endregion
11647
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
11774
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
11648
11775
  function isHiddenFromGraphColumn(column) {
11649
11776
  return !!readAnnotationJson(column, Annotation.HideDataFromGraphs);
11650
11777
  }
@@ -11673,7 +11800,7 @@ function createPFrameForGraphs(ctx, blockColumns) {
11673
11800
  }));
11674
11801
  }
11675
11802
  //#endregion
11676
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11803
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11677
11804
  /**
11678
11805
  * Recursively traverses a FilterSpec tree bottom-up, applying visitor callbacks.
11679
11806
  *
@@ -11712,7 +11839,7 @@ function collectFilterSpecColumns(filter) {
11712
11839
  });
11713
11840
  }
11714
11841
  //#endregion
11715
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11842
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11716
11843
  /** Converts a QueryColumnId object into a SpecQueryExpression reference. */
11717
11844
  function resolveColumnRef(col) {
11718
11845
  return col.type === "axis" ? {
@@ -12099,7 +12226,7 @@ function isEmpty(value) {
12099
12226
  return true;
12100
12227
  }
12101
12228
  //#endregion
12102
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/distill.js
12229
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/distill.js
12103
12230
  /**
12104
12231
  * Strips non-FilterSpec metadata (whitelist approach) and removes
12105
12232
  * unfilled leaves (type is undefined or any required field is undefined).
@@ -12204,7 +12331,7 @@ const REQUIRED_KEYS_BY_TYPE = {
12204
12331
  greaterThanColumnOrEqual: ["column", "rhs"]
12205
12332
  };
12206
12333
  //#endregion
12207
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12334
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12208
12335
  /** Upgrade PlDataTableStateV2 to the latest version */
12209
12336
  function upgradePlDataTableStateV2(state) {
12210
12337
  if (!state) return createPlDataTableStateV2();
@@ -12562,7 +12689,7 @@ function parseLegacyLeafColumn(s) {
12562
12689
  return parsed;
12563
12690
  }
12564
12691
  //#endregion
12565
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12692
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12566
12693
  /** Adapt a {@link ColumnRecipe} to the plain {@link RuleColumn} shape. */
12567
12694
  function toRuleColumn(col) {
12568
12695
  return {
@@ -12660,7 +12787,7 @@ function deriveAllLabels(options) {
12660
12787
  })), deriveLabelsOptions).reduce((acc, label, index) => (acc[columns[index].id] = label, acc), {});
12661
12788
  }
12662
12789
  //#endregion
12663
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12790
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12664
12791
  /**
12665
12792
  * Assemble a ptable def directly from recipes. Each secondary recipe is its own
12666
12793
  * outer-joined subtree: `getQuery()` encodes its linker chain, and its
@@ -12724,8 +12851,8 @@ function columnToJoinEntry(col, qualifications) {
12724
12851
  };
12725
12852
  }
12726
12853
  //#endregion
12727
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12728
- function createColumnResolver(columns, deps) {
12854
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12855
+ function createColumnResolver(columns) {
12729
12856
  const axisIds = [];
12730
12857
  for (const c of columns) for (const ax of c.getSpec().axesSpec) axisIds.push(getAxisId(ax));
12731
12858
  const byFullId = /* @__PURE__ */ new Map();
@@ -12733,9 +12860,7 @@ function createColumnResolver(columns, deps) {
12733
12860
  for (const c of columns) {
12734
12861
  byFullId.set(c.id, c);
12735
12862
  const pid = extractPObjectId(c.id);
12736
- const existing = byPObjectId.get(pid);
12737
- if (existing === void 0) byPObjectId.set(pid, c);
12738
- else if (existing.id !== c.id) deps?.warn?.(`Ambiguous PObjectId ${pid}: recipe ids ${existing.id} and ${c.id} both match — keeping first.`);
12863
+ if (!byPObjectId.has(pid)) byPObjectId.set(pid, c);
12739
12864
  }
12740
12865
  return (ref) => {
12741
12866
  if (ref.type === "axis") return axisIds.some((a) => matchAxisId(ref.id, a)) ? ref : void 0;
@@ -12748,7 +12873,7 @@ function createColumnResolver(columns, deps) {
12748
12873
  };
12749
12874
  }
12750
12875
  //#endregion
12751
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12876
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12752
12877
  /**
12753
12878
  * Discover columns from sources/anchors and split them into primary
12754
12879
  * (direct anchor hits — zero-hop, query is a bare column) and secondary
@@ -12794,7 +12919,7 @@ function discoverLabelColumns(ctx, primary) {
12794
12919
  }).getColumns();
12795
12920
  }
12796
12921
  //#endregion
12797
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
12922
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
12798
12923
  function createPlDataTableV3(ctx, options) {
12799
12924
  const state = upgradePlDataTableStateV2(options.tableState);
12800
12925
  const primaryJoinType = options.primaryJoinType ?? "full";
@@ -12822,7 +12947,7 @@ function createPlDataTableV3(ctx, options) {
12822
12947
  ...primary,
12823
12948
  ...direct,
12824
12949
  ...linked.flatMap((lc) => [...collectLinkerColumns(lc), lc])
12825
- ], { warn: ctx.logWarn.bind(ctx) });
12950
+ ]);
12826
12951
  const remapedDefaultFilters = remapFilterColumnIds(options.filters, resolver);
12827
12952
  const filters = filterFilters(concatFilters(state.pTableParams.filters, state.pTableParams.defaultFilters ?? remapedDefaultFilters), resolver);
12828
12953
  const sorting = filterSorting(resolveSorting(state.pTableParams.sorting, remapSortingColumnIds(options.sorting, resolver)), resolver);
@@ -12901,7 +13026,7 @@ function resolveInputColumns(ctx, options) {
12901
13026
  secondary: dedupColumns([...secondary, ...labels].filter((c) => !primaryIds.has(c.id)), (c) => c.id, (c) => c.getSpec())
12902
13027
  };
12903
13028
  }
12904
- if (isPlainObject(options.columns)) return discoverTableColumns(ctx, options.columns);
13029
+ if (isPlainObject$1(options.columns)) return discoverTableColumns(ctx, options.columns);
12905
13030
  }
12906
13031
  /** Split secondary recipes by query topology: leaves (no linker chain) vs joined. */
12907
13032
  function splitByTopology(columns) {