@milaboratories/pl-model-common 1.25.1 → 1.25.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/author_marker.d.ts +9 -6
  3. package/dist/base32_encode.cjs +40 -46
  4. package/dist/base32_encode.cjs.map +1 -1
  5. package/dist/base32_encode.js +40 -45
  6. package/dist/base32_encode.js.map +1 -1
  7. package/dist/base64.cjs +5 -4
  8. package/dist/base64.cjs.map +1 -1
  9. package/dist/base64.d.ts +10 -6
  10. package/dist/base64.js +5 -3
  11. package/dist/base64.js.map +1 -1
  12. package/dist/block_state.d.ts +21 -23
  13. package/dist/bmodel/block_config.cjs +9 -10
  14. package/dist/bmodel/block_config.cjs.map +1 -1
  15. package/dist/bmodel/block_config.d.ts +53 -72
  16. package/dist/bmodel/block_config.js +9 -9
  17. package/dist/bmodel/block_config.js.map +1 -1
  18. package/dist/bmodel/code.cjs +7 -6
  19. package/dist/bmodel/code.cjs.map +1 -1
  20. package/dist/bmodel/code.d.ts +17 -13
  21. package/dist/bmodel/code.js +6 -4
  22. package/dist/bmodel/code.js.map +1 -1
  23. package/dist/bmodel/container.d.ts +46 -44
  24. package/dist/bmodel/index.cjs +3 -0
  25. package/dist/bmodel/index.d.ts +5 -6
  26. package/dist/bmodel/index.js +3 -0
  27. package/dist/bmodel/normalization.cjs +90 -106
  28. package/dist/bmodel/normalization.cjs.map +1 -1
  29. package/dist/bmodel/normalization.d.ts +7 -3
  30. package/dist/bmodel/normalization.js +90 -105
  31. package/dist/bmodel/normalization.js.map +1 -1
  32. package/dist/bmodel/types.d.ts +4 -1
  33. package/dist/branding.d.ts +5 -5
  34. package/dist/common_types.d.ts +19 -15
  35. package/dist/driver_kit.d.ts +25 -17
  36. package/dist/drivers/ChunkedStreamReader.cjs +168 -203
  37. package/dist/drivers/ChunkedStreamReader.cjs.map +1 -1
  38. package/dist/drivers/ChunkedStreamReader.d.ts +104 -100
  39. package/dist/drivers/ChunkedStreamReader.js +168 -202
  40. package/dist/drivers/ChunkedStreamReader.js.map +1 -1
  41. package/dist/drivers/blob.cjs +15 -17
  42. package/dist/drivers/blob.cjs.map +1 -1
  43. package/dist/drivers/blob.d.ts +35 -35
  44. package/dist/drivers/blob.js +14 -15
  45. package/dist/drivers/blob.js.map +1 -1
  46. package/dist/drivers/index.cjs +18 -0
  47. package/dist/drivers/index.d.ts +29 -9
  48. package/dist/drivers/index.js +18 -0
  49. package/dist/drivers/interfaces.d.ts +17 -14
  50. package/dist/drivers/log.cjs +4 -3
  51. package/dist/drivers/log.cjs.map +1 -1
  52. package/dist/drivers/log.d.ts +52 -49
  53. package/dist/drivers/log.js +4 -2
  54. package/dist/drivers/log.js.map +1 -1
  55. package/dist/drivers/ls.cjs +16 -19
  56. package/dist/drivers/ls.cjs.map +1 -1
  57. package/dist/drivers/ls.d.ts +73 -76
  58. package/dist/drivers/ls.js +16 -17
  59. package/dist/drivers/ls.js.map +1 -1
  60. package/dist/drivers/pframe/column_filter.d.ts +19 -15
  61. package/dist/drivers/pframe/data_info.cjs +201 -252
  62. package/dist/drivers/pframe/data_info.cjs.map +1 -1
  63. package/dist/drivers/pframe/data_info.d.ts +84 -109
  64. package/dist/drivers/pframe/data_info.js +201 -250
  65. package/dist/drivers/pframe/data_info.js.map +1 -1
  66. package/dist/drivers/pframe/data_types.cjs +38 -63
  67. package/dist/drivers/pframe/data_types.cjs.map +1 -1
  68. package/dist/drivers/pframe/data_types.d.ts +91 -93
  69. package/dist/drivers/pframe/data_types.js +38 -61
  70. package/dist/drivers/pframe/data_types.js.map +1 -1
  71. package/dist/drivers/pframe/driver.cjs +7 -0
  72. package/dist/drivers/pframe/driver.cjs.map +1 -0
  73. package/dist/drivers/pframe/driver.d.ts +50 -45
  74. package/dist/drivers/pframe/driver.js +6 -0
  75. package/dist/drivers/pframe/driver.js.map +1 -0
  76. package/dist/drivers/pframe/filter_spec.d.ts +127 -123
  77. package/dist/drivers/pframe/find_columns.d.ts +21 -17
  78. package/dist/drivers/pframe/index.cjs +15 -0
  79. package/dist/drivers/pframe/index.d.ts +23 -16
  80. package/dist/drivers/pframe/index.js +15 -0
  81. package/dist/drivers/pframe/linker_columns.cjs +184 -238
  82. package/dist/drivers/pframe/linker_columns.cjs.map +1 -1
  83. package/dist/drivers/pframe/linker_columns.d.ts +45 -38
  84. package/dist/drivers/pframe/linker_columns.js +184 -236
  85. package/dist/drivers/pframe/linker_columns.js.map +1 -1
  86. package/dist/drivers/pframe/pframe.d.ts +26 -21
  87. package/dist/drivers/pframe/query/index.cjs +1 -0
  88. package/dist/drivers/pframe/query/index.d.ts +3 -4
  89. package/dist/drivers/pframe/query/index.js +1 -0
  90. package/dist/drivers/pframe/query/query_common.d.ts +205 -247
  91. package/dist/drivers/pframe/query/query_data.d.ts +25 -23
  92. package/dist/drivers/pframe/query/query_spec.d.ts +30 -29
  93. package/dist/drivers/pframe/query/utils.cjs +164 -183
  94. package/dist/drivers/pframe/query/utils.cjs.map +1 -1
  95. package/dist/drivers/pframe/query/utils.d.ts +13 -12
  96. package/dist/drivers/pframe/query/utils.js +164 -181
  97. package/dist/drivers/pframe/query/utils.js.map +1 -1
  98. package/dist/drivers/pframe/spec/anchored.cjs +178 -216
  99. package/dist/drivers/pframe/spec/anchored.cjs.map +1 -1
  100. package/dist/drivers/pframe/spec/anchored.d.ts +53 -49
  101. package/dist/drivers/pframe/spec/anchored.js +176 -214
  102. package/dist/drivers/pframe/spec/anchored.js.map +1 -1
  103. package/dist/drivers/pframe/spec/filtered_column.cjs +8 -7
  104. package/dist/drivers/pframe/spec/filtered_column.cjs.map +1 -1
  105. package/dist/drivers/pframe/spec/filtered_column.d.ts +20 -17
  106. package/dist/drivers/pframe/spec/filtered_column.js +8 -6
  107. package/dist/drivers/pframe/spec/filtered_column.js.map +1 -1
  108. package/dist/drivers/pframe/spec/ids.cjs +16 -14
  109. package/dist/drivers/pframe/spec/ids.cjs.map +1 -1
  110. package/dist/drivers/pframe/spec/ids.d.ts +13 -8
  111. package/dist/drivers/pframe/spec/ids.js +14 -12
  112. package/dist/drivers/pframe/spec/ids.js.map +1 -1
  113. package/dist/drivers/pframe/spec/index.cjs +6 -0
  114. package/dist/drivers/pframe/spec/index.d.ts +6 -7
  115. package/dist/drivers/pframe/spec/index.js +6 -0
  116. package/dist/drivers/pframe/spec/native_id.cjs +16 -16
  117. package/dist/drivers/pframe/spec/native_id.cjs.map +1 -1
  118. package/dist/drivers/pframe/spec/native_id.d.ts +9 -4
  119. package/dist/drivers/pframe/spec/native_id.js +13 -13
  120. package/dist/drivers/pframe/spec/native_id.js.map +1 -1
  121. package/dist/drivers/pframe/spec/selectors.cjs +72 -112
  122. package/dist/drivers/pframe/spec/selectors.cjs.map +1 -1
  123. package/dist/drivers/pframe/spec/selectors.d.ts +99 -94
  124. package/dist/drivers/pframe/spec/selectors.js +72 -110
  125. package/dist/drivers/pframe/spec/selectors.js.map +1 -1
  126. package/dist/drivers/pframe/spec/spec.cjs +282 -324
  127. package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
  128. package/dist/drivers/pframe/spec/spec.d.ts +263 -272
  129. package/dist/drivers/pframe/spec/spec.js +281 -322
  130. package/dist/drivers/pframe/spec/spec.js.map +1 -1
  131. package/dist/drivers/pframe/table.d.ts +28 -24
  132. package/dist/drivers/pframe/table_calculate.cjs +117 -147
  133. package/dist/drivers/pframe/table_calculate.cjs.map +1 -1
  134. package/dist/drivers/pframe/table_calculate.d.ts +219 -220
  135. package/dist/drivers/pframe/table_calculate.js +117 -145
  136. package/dist/drivers/pframe/table_calculate.js.map +1 -1
  137. package/dist/drivers/pframe/table_common.cjs +13 -14
  138. package/dist/drivers/pframe/table_common.cjs.map +1 -1
  139. package/dist/drivers/pframe/table_common.d.ts +24 -19
  140. package/dist/drivers/pframe/table_common.js +13 -13
  141. package/dist/drivers/pframe/table_common.js.map +1 -1
  142. package/dist/drivers/pframe/unique_values.d.ts +23 -18
  143. package/dist/drivers/upload.d.ts +21 -18
  144. package/dist/drivers/urls.cjs +5 -6
  145. package/dist/drivers/urls.cjs.map +1 -1
  146. package/dist/drivers/urls.d.ts +12 -9
  147. package/dist/drivers/urls.js +5 -5
  148. package/dist/drivers/urls.js.map +1 -1
  149. package/dist/errors.cjs +65 -86
  150. package/dist/errors.cjs.map +1 -1
  151. package/dist/errors.d.ts +36 -33
  152. package/dist/errors.js +65 -85
  153. package/dist/errors.js.map +1 -1
  154. package/dist/flags/block_flags.cjs +7 -6
  155. package/dist/flags/block_flags.cjs.map +1 -1
  156. package/dist/flags/block_flags.d.ts +12 -8
  157. package/dist/flags/block_flags.js +7 -5
  158. package/dist/flags/block_flags.js.map +1 -1
  159. package/dist/flags/flag_utils.cjs +69 -108
  160. package/dist/flags/flag_utils.cjs.map +1 -1
  161. package/dist/flags/flag_utils.d.ts +40 -42
  162. package/dist/flags/flag_utils.js +70 -107
  163. package/dist/flags/flag_utils.js.map +1 -1
  164. package/dist/flags/type_utils.d.ts +12 -11
  165. package/dist/httpAuth.cjs +16 -20
  166. package/dist/httpAuth.cjs.map +1 -1
  167. package/dist/httpAuth.d.ts +10 -7
  168. package/dist/httpAuth.js +16 -19
  169. package/dist/httpAuth.js.map +1 -1
  170. package/dist/index.cjs +176 -179
  171. package/dist/index.d.ts +58 -20
  172. package/dist/index.js +37 -34
  173. package/dist/json.cjs +10 -8
  174. package/dist/json.cjs.map +1 -1
  175. package/dist/json.d.ts +18 -18
  176. package/dist/json.js +8 -6
  177. package/dist/json.js.map +1 -1
  178. package/dist/navigation.cjs +3 -2
  179. package/dist/navigation.cjs.map +1 -1
  180. package/dist/navigation.d.ts +18 -21
  181. package/dist/navigation.js +3 -1
  182. package/dist/navigation.js.map +1 -1
  183. package/dist/plid.cjs +16 -20
  184. package/dist/plid.cjs.map +1 -1
  185. package/dist/plid.d.ts +11 -7
  186. package/dist/plid.js +15 -18
  187. package/dist/plid.js.map +1 -1
  188. package/dist/pool/entry.d.ts +11 -11
  189. package/dist/pool/index.d.ts +3 -4
  190. package/dist/pool/query.cjs +21 -43
  191. package/dist/pool/query.cjs.map +1 -1
  192. package/dist/pool/query.d.ts +25 -20
  193. package/dist/pool/query.js +20 -40
  194. package/dist/pool/query.js.map +1 -1
  195. package/dist/pool/spec.cjs +40 -47
  196. package/dist/pool/spec.cjs.map +1 -1
  197. package/dist/pool/spec.d.ts +33 -31
  198. package/dist/pool/spec.js +40 -45
  199. package/dist/pool/spec.js.map +1 -1
  200. package/dist/ref.cjs +51 -71
  201. package/dist/ref.cjs.map +1 -1
  202. package/dist/ref.d.ts +36 -33
  203. package/dist/ref.js +50 -69
  204. package/dist/ref.js.map +1 -1
  205. package/dist/utag.d.ts +18 -14
  206. package/dist/util.cjs +8 -7
  207. package/dist/util.cjs.map +1 -1
  208. package/dist/util.d.ts +5 -2
  209. package/dist/util.js +8 -6
  210. package/dist/util.js.map +1 -1
  211. package/dist/value_or_error.cjs +7 -3
  212. package/dist/value_or_error.cjs.map +1 -1
  213. package/dist/value_or_error.d.ts +9 -6
  214. package/dist/value_or_error.js +7 -2
  215. package/dist/value_or_error.js.map +1 -1
  216. package/package.json +6 -6
  217. package/src/flags/block_flags.ts +2 -1
  218. package/src/flags/flag_utils.ts +0 -22
  219. package/dist/author_marker.d.ts.map +0 -1
  220. package/dist/base32_encode.d.ts +0 -8
  221. package/dist/base32_encode.d.ts.map +0 -1
  222. package/dist/base64.d.ts.map +0 -1
  223. package/dist/block_state.d.ts.map +0 -1
  224. package/dist/bmodel/block_config.d.ts.map +0 -1
  225. package/dist/bmodel/code.d.ts.map +0 -1
  226. package/dist/bmodel/container.d.ts.map +0 -1
  227. package/dist/bmodel/index.d.ts.map +0 -1
  228. package/dist/bmodel/normalization.d.ts.map +0 -1
  229. package/dist/bmodel/types.d.ts.map +0 -1
  230. package/dist/branding.d.ts.map +0 -1
  231. package/dist/common_types.d.ts.map +0 -1
  232. package/dist/driver_kit.d.ts.map +0 -1
  233. package/dist/drivers/ChunkedStreamReader.d.ts.map +0 -1
  234. package/dist/drivers/blob.d.ts.map +0 -1
  235. package/dist/drivers/index.d.ts.map +0 -1
  236. package/dist/drivers/interfaces.d.ts.map +0 -1
  237. package/dist/drivers/log.d.ts.map +0 -1
  238. package/dist/drivers/ls.d.ts.map +0 -1
  239. package/dist/drivers/pframe/column_filter.d.ts.map +0 -1
  240. package/dist/drivers/pframe/data_info.d.ts.map +0 -1
  241. package/dist/drivers/pframe/data_types.d.ts.map +0 -1
  242. package/dist/drivers/pframe/driver.d.ts.map +0 -1
  243. package/dist/drivers/pframe/filter_spec.d.ts.map +0 -1
  244. package/dist/drivers/pframe/find_columns.d.ts.map +0 -1
  245. package/dist/drivers/pframe/index.d.ts.map +0 -1
  246. package/dist/drivers/pframe/linker_columns.d.ts.map +0 -1
  247. package/dist/drivers/pframe/pframe.d.ts.map +0 -1
  248. package/dist/drivers/pframe/query/index.d.ts.map +0 -1
  249. package/dist/drivers/pframe/query/query_common.d.ts.map +0 -1
  250. package/dist/drivers/pframe/query/query_data.d.ts.map +0 -1
  251. package/dist/drivers/pframe/query/query_spec.d.ts.map +0 -1
  252. package/dist/drivers/pframe/query/utils.d.ts.map +0 -1
  253. package/dist/drivers/pframe/spec/anchored.d.ts.map +0 -1
  254. package/dist/drivers/pframe/spec/filtered_column.d.ts.map +0 -1
  255. package/dist/drivers/pframe/spec/ids.d.ts.map +0 -1
  256. package/dist/drivers/pframe/spec/index.d.ts.map +0 -1
  257. package/dist/drivers/pframe/spec/native_id.d.ts.map +0 -1
  258. package/dist/drivers/pframe/spec/selectors.d.ts.map +0 -1
  259. package/dist/drivers/pframe/spec/spec.d.ts.map +0 -1
  260. package/dist/drivers/pframe/table.d.ts.map +0 -1
  261. package/dist/drivers/pframe/table_calculate.d.ts.map +0 -1
  262. package/dist/drivers/pframe/table_common.d.ts.map +0 -1
  263. package/dist/drivers/pframe/type_util.d.ts +0 -5
  264. package/dist/drivers/pframe/type_util.d.ts.map +0 -1
  265. package/dist/drivers/pframe/unique_values.d.ts.map +0 -1
  266. package/dist/drivers/upload.d.ts.map +0 -1
  267. package/dist/drivers/urls.d.ts.map +0 -1
  268. package/dist/errors.d.ts.map +0 -1
  269. package/dist/flags/block_flags.d.ts.map +0 -1
  270. package/dist/flags/flag_utils.d.ts.map +0 -1
  271. package/dist/flags/index.d.ts +0 -4
  272. package/dist/flags/index.d.ts.map +0 -1
  273. package/dist/flags/type_utils.d.ts.map +0 -1
  274. package/dist/httpAuth.d.ts.map +0 -1
  275. package/dist/index.cjs.map +0 -1
  276. package/dist/index.d.ts.map +0 -1
  277. package/dist/index.js.map +0 -1
  278. package/dist/json.d.ts.map +0 -1
  279. package/dist/navigation.d.ts.map +0 -1
  280. package/dist/plid.d.ts.map +0 -1
  281. package/dist/pool/entry.d.ts.map +0 -1
  282. package/dist/pool/index.d.ts.map +0 -1
  283. package/dist/pool/query.d.ts.map +0 -1
  284. package/dist/pool/spec.d.ts.map +0 -1
  285. package/dist/ref.d.ts.map +0 -1
  286. package/dist/utag.d.ts.map +0 -1
  287. package/dist/util.d.ts.map +0 -1
  288. package/dist/value_or_error.d.ts.map +0 -1
@@ -1,411 +1,370 @@
1
- import { ensureError } from '../../../errors.js';
2
- import { canonicalizeJson } from '../../../json.js';
3
- import { z } from 'zod';
1
+ import { ensureError } from "../../../errors.js";
2
+ import { canonicalizeJson } from "../../../json.js";
3
+ import { z } from "zod";
4
4
 
5
+ //#region src/drivers/pframe/spec/spec.ts
5
6
  const ValueType = {
6
- Int: "Int",
7
- Long: "Long",
8
- Float: "Float",
9
- Double: "Double",
10
- String: "String",
11
- Bytes: "Bytes",
7
+ Int: "Int",
8
+ Long: "Long",
9
+ Float: "Float",
10
+ Double: "Double",
11
+ String: "String",
12
+ Bytes: "Bytes"
12
13
  };
13
14
  function readMetadata(metadata, key) {
14
- return metadata?.[key];
15
+ return metadata?.[key];
15
16
  }
16
17
  function readMetadataJsonOrThrow(metadata, metadataJson, key, methodNameInError = "readMetadataJsonOrThrow") {
17
- const json = readMetadata(metadata, key);
18
- if (json === undefined)
19
- return undefined;
20
- const schema = metadataJson[key];
21
- try {
22
- const value = JSON.parse(json);
23
- return schema.parse(value);
24
- }
25
- catch (error) {
26
- throw new Error(`${methodNameInError} failed, ` +
27
- `key: ${String(key)}, ` +
28
- `value: ${json}, ` +
29
- `error: ${ensureError(error)}`);
30
- }
18
+ const json = readMetadata(metadata, key);
19
+ if (json === void 0) return void 0;
20
+ const schema = metadataJson[key];
21
+ try {
22
+ const value = JSON.parse(json);
23
+ return schema.parse(value);
24
+ } catch (error) {
25
+ throw new Error(`${methodNameInError} failed, key: ${String(key)}, value: ${json}, error: ${ensureError(error)}`);
26
+ }
31
27
  }
32
28
  function readMetadataJson(metadata, metadataJson, key) {
33
- try {
34
- return readMetadataJsonOrThrow(metadata, metadataJson, key);
35
- }
36
- catch {
37
- return undefined; // treat invalid values as unset
38
- }
29
+ try {
30
+ return readMetadataJsonOrThrow(metadata, metadataJson, key);
31
+ } catch {
32
+ return;
33
+ }
39
34
  }
40
- /// Well-known domains
41
35
  const Domain = {
42
- Alphabet: "pl7.app/alphabet",
43
- BlockId: "pl7.app/blockId",
44
- VDJ: {
45
- Clustering: {
46
- BlockId: "pl7.app/vdj/clustering/blockId",
47
- },
48
- ScClonotypeChain: {
49
- Index: "pl7.app/vdj/scClonotypeChain/index",
50
- },
51
- },
36
+ Alphabet: "pl7.app/alphabet",
37
+ BlockId: "pl7.app/blockId",
38
+ VDJ: {
39
+ Clustering: { BlockId: "pl7.app/vdj/clustering/blockId" },
40
+ ScClonotypeChain: { Index: "pl7.app/vdj/scClonotypeChain/index" }
41
+ }
52
42
  };
53
43
  const DomainJson = {};
54
- /// Helper function for reading plain domain values
55
44
  function readDomain(spec, key) {
56
- return readMetadata(spec?.domain, key);
45
+ return readMetadata(spec?.domain, key);
57
46
  }
58
- /// Helper function for reading json-encoded domain values, throws on JSON parsing error
59
47
  function readDomainJsonOrThrow(spec, key) {
60
- return readMetadataJsonOrThrow(spec?.domain, DomainJson, key, "readDomainJsonOrThrow");
48
+ return readMetadataJsonOrThrow(spec?.domain, DomainJson, key, "readDomainJsonOrThrow");
61
49
  }
62
- /// Helper function for reading json-encoded domain values, returns undefined on JSON parsing error
63
50
  function readDomainJson(spec, key) {
64
- return readMetadataJson(spec?.domain, DomainJson, key);
51
+ return readMetadataJson(spec?.domain, DomainJson, key);
65
52
  }
66
- /// Well-known annotations
67
53
  const Annotation = {
68
- AxisNature: "pl7.app/axisNature",
69
- Alphabet: "pl7.app/alphabet",
70
- Description: "pl7.app/description",
71
- DiscreteValues: "pl7.app/discreteValues",
72
- Format: "pl7.app/format",
73
- Graph: {
74
- Axis: {
75
- HighCardinality: "pl7.app/graph/axis/highCardinality",
76
- LowerLimit: "pl7.app/graph/axis/lowerLimit",
77
- SymmetricRange: "pl7.app/graph/axis/symmetricRange",
78
- UpperLimit: "pl7.app/graph/axis/upperLimit",
79
- },
80
- IsDenseAxis: "pl7.app/graph/isDenseAxis",
81
- IsVirtual: "pl7.app/graph/isVirtual",
82
- Palette: "pl7.app/graph/palette",
83
- Thresholds: "pl7.app/graph/thresholds",
84
- TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs",
85
- },
86
- HideDataFromUi: "pl7.app/hideDataFromUi",
87
- HideDataFromGraphs: "pl7.app/hideDataFromGraphs",
88
- IsDiscreteFilter: "pl7.app/isDiscreteFilter",
89
- IsAnchor: "pl7.app/isAnchor",
90
- IsLinkerColumn: "pl7.app/isLinkerColumn",
91
- IsScore: "pl7.app/isScore",
92
- IsSubset: "pl7.app/isSubset",
93
- Label: "pl7.app/label",
94
- Max: "pl7.app/max",
95
- Min: "pl7.app/min",
96
- MultipliesBy: "pl7.app/multipliesBy",
97
- Parents: "pl7.app/parents",
98
- Score: {
99
- DefaultCutoff: "pl7.app/score/defaultCutoff",
100
- RankingOrder: "pl7.app/score/rankingOrder",
101
- },
102
- Sequence: {
103
- Annotation: {
104
- Mapping: "pl7.app/sequence/annotation/mapping",
105
- },
106
- IsAnnotation: "pl7.app/sequence/isAnnotation",
107
- },
108
- Table: {
109
- FontFamily: "pl7.app/table/fontFamily",
110
- OrderPriority: "pl7.app/table/orderPriority",
111
- Visibility: "pl7.app/table/visibility",
112
- },
113
- Trace: "pl7.app/trace",
114
- VDJ: {
115
- IsAssemblingFeature: "pl7.app/vdj/isAssemblingFeature",
116
- IsMainSequence: "pl7.app/vdj/isMainSequence",
117
- },
54
+ AxisNature: "pl7.app/axisNature",
55
+ Alphabet: "pl7.app/alphabet",
56
+ Description: "pl7.app/description",
57
+ DiscreteValues: "pl7.app/discreteValues",
58
+ Format: "pl7.app/format",
59
+ Graph: {
60
+ Axis: {
61
+ HighCardinality: "pl7.app/graph/axis/highCardinality",
62
+ LowerLimit: "pl7.app/graph/axis/lowerLimit",
63
+ SymmetricRange: "pl7.app/graph/axis/symmetricRange",
64
+ UpperLimit: "pl7.app/graph/axis/upperLimit"
65
+ },
66
+ IsDenseAxis: "pl7.app/graph/isDenseAxis",
67
+ IsVirtual: "pl7.app/graph/isVirtual",
68
+ Palette: "pl7.app/graph/palette",
69
+ Thresholds: "pl7.app/graph/thresholds",
70
+ TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs"
71
+ },
72
+ HideDataFromUi: "pl7.app/hideDataFromUi",
73
+ HideDataFromGraphs: "pl7.app/hideDataFromGraphs",
74
+ IsDiscreteFilter: "pl7.app/isDiscreteFilter",
75
+ IsAnchor: "pl7.app/isAnchor",
76
+ IsLinkerColumn: "pl7.app/isLinkerColumn",
77
+ IsScore: "pl7.app/isScore",
78
+ IsSubset: "pl7.app/isSubset",
79
+ Label: "pl7.app/label",
80
+ Max: "pl7.app/max",
81
+ Min: "pl7.app/min",
82
+ MultipliesBy: "pl7.app/multipliesBy",
83
+ Parents: "pl7.app/parents",
84
+ Score: {
85
+ DefaultCutoff: "pl7.app/score/defaultCutoff",
86
+ RankingOrder: "pl7.app/score/rankingOrder"
87
+ },
88
+ Sequence: {
89
+ Annotation: { Mapping: "pl7.app/sequence/annotation/mapping" },
90
+ IsAnnotation: "pl7.app/sequence/isAnnotation"
91
+ },
92
+ Table: {
93
+ FontFamily: "pl7.app/table/fontFamily",
94
+ OrderPriority: "pl7.app/table/orderPriority",
95
+ Visibility: "pl7.app/table/visibility"
96
+ },
97
+ Trace: "pl7.app/trace",
98
+ VDJ: {
99
+ IsAssemblingFeature: "pl7.app/vdj/isAssemblingFeature",
100
+ IsMainSequence: "pl7.app/vdj/isMainSequence"
101
+ }
118
102
  };
119
- const ValueTypeSchema = z.enum(["Int", "Long", "Float", "Double", "String"]);
103
+ const ValueTypeSchema = z.enum([
104
+ "Int",
105
+ "Long",
106
+ "Float",
107
+ "Double",
108
+ "String"
109
+ ]);
120
110
  const AnnotationJson = {
121
- [Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),
122
- [Annotation.Graph.Axis.HighCardinality]: z.boolean(),
123
- [Annotation.Graph.Axis.LowerLimit]: z.number(),
124
- [Annotation.Graph.Axis.UpperLimit]: z.number(),
125
- [Annotation.Graph.Axis.SymmetricRange]: z.boolean(),
126
- [Annotation.Graph.IsDenseAxis]: z.boolean(),
127
- [Annotation.Graph.Palette]: z.object({ mapping: z.record(z.number()), name: z.string() }),
128
- [Annotation.Graph.Thresholds]: z.array(z.object({
129
- columnId: z.object({ valueType: ValueTypeSchema, name: z.string() }),
130
- value: z.number(),
131
- })),
132
- [Annotation.Graph.TreatAbsentValuesAs]: z.number(),
133
- [Annotation.Graph.IsVirtual]: z.boolean(),
134
- [Annotation.HideDataFromUi]: z.boolean(),
135
- [Annotation.HideDataFromGraphs]: z.boolean(),
136
- [Annotation.IsDiscreteFilter]: z.boolean(),
137
- [Annotation.IsLinkerColumn]: z.boolean(),
138
- [Annotation.IsSubset]: z.boolean(),
139
- [Annotation.Max]: z.number(),
140
- [Annotation.Min]: z.number(),
141
- [Annotation.MultipliesBy]: z.array(z.string()),
142
- [Annotation.Parents]: z.array(z.string()),
143
- [Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),
144
- [Annotation.Sequence.IsAnnotation]: z.boolean(),
145
- [Annotation.Table.OrderPriority]: z.number(),
146
- [Annotation.Trace]: z.record(z.string(), z.unknown()),
147
- [Annotation.VDJ.IsAssemblingFeature]: z.boolean(),
111
+ [Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),
112
+ [Annotation.Graph.Axis.HighCardinality]: z.boolean(),
113
+ [Annotation.Graph.Axis.LowerLimit]: z.number(),
114
+ [Annotation.Graph.Axis.UpperLimit]: z.number(),
115
+ [Annotation.Graph.Axis.SymmetricRange]: z.boolean(),
116
+ [Annotation.Graph.IsDenseAxis]: z.boolean(),
117
+ [Annotation.Graph.Palette]: z.object({
118
+ mapping: z.record(z.number()),
119
+ name: z.string()
120
+ }),
121
+ [Annotation.Graph.Thresholds]: z.array(z.object({
122
+ columnId: z.object({
123
+ valueType: ValueTypeSchema,
124
+ name: z.string()
125
+ }),
126
+ value: z.number()
127
+ })),
128
+ [Annotation.Graph.TreatAbsentValuesAs]: z.number(),
129
+ [Annotation.Graph.IsVirtual]: z.boolean(),
130
+ [Annotation.HideDataFromUi]: z.boolean(),
131
+ [Annotation.HideDataFromGraphs]: z.boolean(),
132
+ [Annotation.IsDiscreteFilter]: z.boolean(),
133
+ [Annotation.IsLinkerColumn]: z.boolean(),
134
+ [Annotation.IsSubset]: z.boolean(),
135
+ [Annotation.Max]: z.number(),
136
+ [Annotation.Min]: z.number(),
137
+ [Annotation.MultipliesBy]: z.array(z.string()),
138
+ [Annotation.Parents]: z.array(z.string()),
139
+ [Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),
140
+ [Annotation.Sequence.IsAnnotation]: z.boolean(),
141
+ [Annotation.Table.OrderPriority]: z.number(),
142
+ [Annotation.Trace]: z.record(z.string(), z.unknown()),
143
+ [Annotation.VDJ.IsAssemblingFeature]: z.boolean()
148
144
  };
149
- /// Helper function for reading plain annotation values
150
145
  function readAnnotation(spec, key) {
151
- return readMetadata(spec?.annotations, key);
146
+ return readMetadata(spec?.annotations, key);
152
147
  }
153
- /// Helper function for reading json-encoded annotation values, throws on JSON parsing error
154
148
  function readAnnotationJsonOrThrow(spec, key) {
155
- return readMetadataJsonOrThrow(spec?.annotations, AnnotationJson, key, "readAnnotationJsonOrThrow");
149
+ return readMetadataJsonOrThrow(spec?.annotations, AnnotationJson, key, "readAnnotationJsonOrThrow");
156
150
  }
157
- /// Helper function for reading json-encoded annotation values, returns undefined on JSON parsing error
158
151
  function readAnnotationJson(spec, key) {
159
- return readMetadataJson(spec?.annotations, AnnotationJson, key);
152
+ return readMetadataJson(spec?.annotations, AnnotationJson, key);
160
153
  }
161
154
  function isLinkerColumn(column) {
162
- return !!readAnnotationJson(column, Annotation.IsLinkerColumn);
155
+ return !!readAnnotationJson(column, Annotation.IsLinkerColumn);
163
156
  }
164
157
  function makeAxisTree(axis) {
165
- return { axis, children: [] };
158
+ return {
159
+ axis,
160
+ children: []
161
+ };
166
162
  }
167
163
  /** Build tree by axis parents annotations */
168
164
  function getAxesTree(rootAxis) {
169
- const root = makeAxisTree(rootAxis);
170
- let nodesQ = [root];
171
- while (nodesQ.length) {
172
- const nextNodes = [];
173
- for (const node of nodesQ) {
174
- node.children = node.axis.parentAxesSpec.map(makeAxisTree);
175
- nextNodes.push(...node.children);
176
- }
177
- nodesQ = nextNodes;
178
- }
179
- return root;
165
+ const root = makeAxisTree(rootAxis);
166
+ let nodesQ = [root];
167
+ while (nodesQ.length) {
168
+ const nextNodes = [];
169
+ for (const node of nodesQ) {
170
+ node.children = node.axis.parentAxesSpec.map(makeAxisTree);
171
+ nextNodes.push(...node.children);
172
+ }
173
+ nodesQ = nextNodes;
174
+ }
175
+ return root;
180
176
  }
181
177
  /** Get set of canonicalized axisIds from axisTree */
182
178
  function getSetFromAxisTree(tree) {
183
- const set = new Set([canonicalizeJson(getAxisId(tree.axis))]);
184
- let nodesQ = [tree];
185
- while (nodesQ.length) {
186
- const nextNodes = [];
187
- for (const node of nodesQ) {
188
- for (const parent of node.children) {
189
- set.add(canonicalizeJson(getAxisId(parent.axis)));
190
- nextNodes.push(parent);
191
- }
192
- }
193
- nodesQ = nextNodes;
194
- }
195
- return set;
179
+ const set = new Set([canonicalizeJson(getAxisId(tree.axis))]);
180
+ let nodesQ = [tree];
181
+ while (nodesQ.length) {
182
+ const nextNodes = [];
183
+ for (const node of nodesQ) for (const parent of node.children) {
184
+ set.add(canonicalizeJson(getAxisId(parent.axis)));
185
+ nextNodes.push(parent);
186
+ }
187
+ nodesQ = nextNodes;
188
+ }
189
+ return set;
196
190
  }
197
191
  /** Get array of axisSpecs from axisTree */
198
192
  function getArrayFromAxisTree(tree) {
199
- const res = [tree.axis];
200
- let nodesQ = [tree];
201
- while (nodesQ.length) {
202
- const nextNodes = [];
203
- for (const node of nodesQ) {
204
- for (const parent of node.children) {
205
- res.push(parent.axis);
206
- nextNodes.push(parent);
207
- }
208
- }
209
- nodesQ = nextNodes;
210
- }
211
- return res;
193
+ const res = [tree.axis];
194
+ let nodesQ = [tree];
195
+ while (nodesQ.length) {
196
+ const nextNodes = [];
197
+ for (const node of nodesQ) for (const parent of node.children) {
198
+ res.push(parent.axis);
199
+ nextNodes.push(parent);
200
+ }
201
+ nodesQ = nextNodes;
202
+ }
203
+ return res;
212
204
  }
213
205
  function canonicalizeAxisWithParents(axis) {
214
- return canonicalizeJson(getArrayFromAxisTree(getAxesTree(axis)).map(getAxisId));
206
+ return canonicalizeJson(getArrayFromAxisTree(getAxesTree(axis)).map(getAxisId));
215
207
  }
216
208
  function normalizingAxesComparator(axis1, axis2) {
217
- if (axis1.name !== axis2.name) {
218
- return axis1.name < axis2.name ? 1 : -1;
219
- }
220
- if (axis1.type !== axis2.type) {
221
- return axis1.type < axis2.type ? 1 : -1;
222
- }
223
- const domain1 = canonicalizeJson(axis1.domain ?? {});
224
- const domain2 = canonicalizeJson(axis2.domain ?? {});
225
- if (domain1 !== domain2) {
226
- return domain1 < domain2 ? 1 : -1;
227
- }
228
- const parents1 = canonicalizeAxisWithParents(axis1);
229
- const parents2 = canonicalizeAxisWithParents(axis2);
230
- if (parents1 !== parents2) {
231
- return parents1 < parents2 ? 1 : -1;
232
- }
233
- const annotation1 = canonicalizeJson(axis1.annotations ?? {});
234
- const annotation2 = canonicalizeJson(axis2.annotations ?? {});
235
- if (annotation1 !== annotation2) {
236
- return annotation1 < annotation2 ? 1 : -1;
237
- }
238
- return 0;
209
+ if (axis1.name !== axis2.name) return axis1.name < axis2.name ? 1 : -1;
210
+ if (axis1.type !== axis2.type) return axis1.type < axis2.type ? 1 : -1;
211
+ const domain1 = canonicalizeJson(axis1.domain ?? {});
212
+ const domain2 = canonicalizeJson(axis2.domain ?? {});
213
+ if (domain1 !== domain2) return domain1 < domain2 ? 1 : -1;
214
+ const parents1 = canonicalizeAxisWithParents(axis1);
215
+ const parents2 = canonicalizeAxisWithParents(axis2);
216
+ if (parents1 !== parents2) return parents1 < parents2 ? 1 : -1;
217
+ const annotation1 = canonicalizeJson(axis1.annotations ?? {});
218
+ const annotation2 = canonicalizeJson(axis2.annotations ?? {});
219
+ if (annotation1 !== annotation2) return annotation1 < annotation2 ? 1 : -1;
220
+ return 0;
239
221
  }
240
222
  function parseParentsFromAnnotations(axis) {
241
- const parentsList = readAnnotationJson(axis, Annotation.Parents);
242
- if (parentsList === undefined) {
243
- return [];
244
- }
245
- return parentsList;
223
+ const parentsList = readAnnotationJson(axis, Annotation.Parents);
224
+ if (parentsList === void 0) return [];
225
+ return parentsList;
246
226
  }
247
227
  function sortParentsDeep(axisSpec) {
248
- axisSpec.parentAxesSpec.forEach(sortParentsDeep);
249
- axisSpec.parentAxesSpec.sort(normalizingAxesComparator);
228
+ axisSpec.parentAxesSpec.forEach(sortParentsDeep);
229
+ axisSpec.parentAxesSpec.sort(normalizingAxesComparator);
250
230
  }
251
231
  function hasCycleOfParents(axisSpec) {
252
- const root = makeAxisTree(axisSpec);
253
- let nodesQ = [root];
254
- const ancestors = new Set(canonicalizeJson(getAxisId(axisSpec)));
255
- while (nodesQ.length) {
256
- const nextNodes = [];
257
- const levelIds = new Set();
258
- for (const node of nodesQ) {
259
- node.children = node.axis.parentAxesSpec.map(makeAxisTree);
260
- for (const child of node.children) {
261
- const childId = canonicalizeJson(getAxisId(child.axis));
262
- if (!levelIds.has(childId)) {
263
- nextNodes.push(child);
264
- levelIds.add(childId);
265
- if (ancestors.has(childId)) {
266
- return true;
267
- }
268
- ancestors.add(childId);
269
- }
270
- }
271
- }
272
- nodesQ = nextNodes;
273
- }
274
- return false;
232
+ let nodesQ = [makeAxisTree(axisSpec)];
233
+ const ancestors = new Set(canonicalizeJson(getAxisId(axisSpec)));
234
+ while (nodesQ.length) {
235
+ const nextNodes = [];
236
+ const levelIds = /* @__PURE__ */ new Set();
237
+ for (const node of nodesQ) {
238
+ node.children = node.axis.parentAxesSpec.map(makeAxisTree);
239
+ for (const child of node.children) {
240
+ const childId = canonicalizeJson(getAxisId(child.axis));
241
+ if (!levelIds.has(childId)) {
242
+ nextNodes.push(child);
243
+ levelIds.add(childId);
244
+ if (ancestors.has(childId)) return true;
245
+ ancestors.add(childId);
246
+ }
247
+ }
248
+ }
249
+ nodesQ = nextNodes;
250
+ }
251
+ return false;
275
252
  }
276
253
  /** Create list of normalized axisSpec (parents are in array of specs, not indexes) */
277
254
  function getNormalizedAxesList(axes) {
278
- if (!axes.length) {
279
- return [];
280
- }
281
- const modifiedAxes = axes.map((axis) => {
282
- const { parentAxes: _, ...copiedRest } = axis;
283
- return { ...copiedRest, annotations: { ...copiedRest.annotations }, parentAxesSpec: [] };
284
- });
285
- axes.forEach((axis, idx) => {
286
- const modifiedAxis = modifiedAxes[idx];
287
- if (axis.parentAxes) {
288
- // if we have parents by indexes then take from the list
289
- modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);
290
- }
291
- else {
292
- // else try to parse from annotation name
293
- const parents = parseParentsFromAnnotations(axis).map((name) => modifiedAxes.find((axis) => axis.name === name));
294
- modifiedAxis.parentAxesSpec = parents.some((p) => p === undefined)
295
- ? []
296
- : parents;
297
- delete modifiedAxis.annotations?.[Annotation.Parents];
298
- }
299
- });
300
- if (modifiedAxes.some(hasCycleOfParents)) {
301
- // Axes list is broken
302
- modifiedAxes.forEach((axis) => {
303
- axis.parentAxesSpec = [];
304
- });
305
- }
306
- else {
307
- modifiedAxes.forEach((axis) => {
308
- sortParentsDeep(axis);
309
- });
310
- }
311
- return modifiedAxes;
255
+ if (!axes.length) return [];
256
+ const modifiedAxes = axes.map((axis) => {
257
+ const { parentAxes: _, ...copiedRest } = axis;
258
+ return {
259
+ ...copiedRest,
260
+ annotations: { ...copiedRest.annotations },
261
+ parentAxesSpec: []
262
+ };
263
+ });
264
+ axes.forEach((axis, idx) => {
265
+ const modifiedAxis = modifiedAxes[idx];
266
+ if (axis.parentAxes) modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);
267
+ else {
268
+ const parents = parseParentsFromAnnotations(axis).map((name) => modifiedAxes.find((axis) => axis.name === name));
269
+ modifiedAxis.parentAxesSpec = parents.some((p) => p === void 0) ? [] : parents;
270
+ delete modifiedAxis.annotations?.[Annotation.Parents];
271
+ }
272
+ });
273
+ if (modifiedAxes.some(hasCycleOfParents)) modifiedAxes.forEach((axis) => {
274
+ axis.parentAxesSpec = [];
275
+ });
276
+ else modifiedAxes.forEach((axis) => {
277
+ sortParentsDeep(axis);
278
+ });
279
+ return modifiedAxes;
312
280
  }
313
281
  /** Create list of regular axisSpec from normalized (parents are indexes, inside of current axes list) */
314
282
  function getDenormalizedAxesList(axesSpec) {
315
- const idsList = axesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));
316
- return axesSpec.map((axisSpec) => {
317
- const parentsIds = axisSpec.parentAxesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));
318
- const parentIdxs = parentsIds.map((id) => idsList.indexOf(id));
319
- const { parentAxesSpec: _, ...copiedRest } = axisSpec;
320
- if (parentIdxs.length) {
321
- return { ...copiedRest, parentAxes: parentIdxs };
322
- }
323
- return copiedRest;
324
- });
283
+ const idsList = axesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));
284
+ return axesSpec.map((axisSpec) => {
285
+ const parentIdxs = axisSpec.parentAxesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec))).map((id) => idsList.indexOf(id));
286
+ const { parentAxesSpec: _, ...copiedRest } = axisSpec;
287
+ if (parentIdxs.length) return {
288
+ ...copiedRest,
289
+ parentAxes: parentIdxs
290
+ };
291
+ return copiedRest;
292
+ });
325
293
  }
326
- /// Well-known column names
327
294
  const PColumnName = {
328
- Label: "pl7.app/label",
329
- Table: {
330
- RowSelection: "pl7.app/table/row-selection",
331
- },
332
- VDJ: {
333
- LeadSelection: "pl7.app/vdj/lead-selection",
334
- RankingOrder: "pl7.app/vdj/ranking-order",
335
- Sequence: "pl7.app/vdj/sequence",
336
- },
295
+ Label: "pl7.app/label",
296
+ Table: { RowSelection: "pl7.app/table/row-selection" },
297
+ VDJ: {
298
+ LeadSelection: "pl7.app/vdj/lead-selection",
299
+ RankingOrder: "pl7.app/vdj/ranking-order",
300
+ Sequence: "pl7.app/vdj/sequence"
301
+ }
337
302
  };
338
- /// Well-known axis names
339
303
  const PAxisName = {
340
- SampleId: "pl7.app/sampleId",
341
- VDJ: {
342
- Assay: {
343
- SequenceId: "pl7.app/vdj/assay/sequenceId",
344
- },
345
- ClusterId: "pl7.app/vdj/clusterId",
346
- ClonotypeKey: "pl7.app/vdj/clonotypeKey",
347
- ScClonotypeKey: "pl7.app/vdj/scClonotypeKey",
348
- },
304
+ SampleId: "pl7.app/sampleId",
305
+ VDJ: {
306
+ Assay: { SequenceId: "pl7.app/vdj/assay/sequenceId" },
307
+ ClusterId: "pl7.app/vdj/clusterId",
308
+ ClonotypeKey: "pl7.app/vdj/clonotypeKey",
309
+ ScClonotypeKey: "pl7.app/vdj/scClonotypeKey"
310
+ }
349
311
  };
350
312
  function isLabelColumn(column) {
351
- return column.axesSpec.length === 1 && column.name === PColumnName.Label;
313
+ return column.axesSpec.length === 1 && column.name === PColumnName.Label;
352
314
  }
353
315
  function getPColumnSpecId(spec) {
354
- return {
355
- kind: spec.kind,
356
- valueType: spec.valueType,
357
- name: spec.name,
358
- domain: spec.domain,
359
- parentAxes: spec.parentAxes,
360
- axesId: getAxesId(spec.axesSpec),
361
- };
316
+ return {
317
+ kind: spec.kind,
318
+ valueType: spec.valueType,
319
+ name: spec.name,
320
+ domain: spec.domain,
321
+ parentAxes: spec.parentAxes,
322
+ axesId: getAxesId(spec.axesSpec)
323
+ };
362
324
  }
363
325
  /** Get column id and spec from a column */
364
326
  function getColumnIdAndSpec(column) {
365
- return {
366
- columnId: column.id,
367
- spec: column.spec,
368
- };
327
+ return {
328
+ columnId: column.id,
329
+ spec: column.spec
330
+ };
369
331
  }
370
332
  /** Extracts axis ids from axis spec */
371
333
  function getAxisId(spec) {
372
- const { type, name, domain } = spec;
373
- const result = { type, name };
374
- if (domain && Object.entries(domain).length > 0) {
375
- Object.assign(result, { domain });
376
- }
377
- return result;
334
+ const { type, name, domain } = spec;
335
+ const result = {
336
+ type,
337
+ name
338
+ };
339
+ if (domain && Object.entries(domain).length > 0) Object.assign(result, { domain });
340
+ return result;
378
341
  }
379
342
  /** Extracts axes ids from axes spec array from column spec */
380
343
  function getAxesId(spec) {
381
- return spec.map(getAxisId);
344
+ return spec.map(getAxisId);
382
345
  }
383
346
  /** Canonicalizes axis id */
384
347
  function canonicalizeAxisId(id) {
385
- return canonicalizeJson(getAxisId(id));
348
+ return canonicalizeJson(getAxisId(id));
386
349
  }
387
350
  /** Returns true if all domains from query are found in target */
388
351
  function matchDomain(query, target) {
389
- if (query === undefined)
390
- return target === undefined;
391
- if (target === undefined)
392
- return true;
393
- for (const k in target) {
394
- if (query[k] !== target[k])
395
- return false;
396
- }
397
- return true;
352
+ if (query === void 0) return target === void 0;
353
+ if (target === void 0) return true;
354
+ for (const k in target) if (query[k] !== target[k]) return false;
355
+ return true;
398
356
  }
399
357
  /** Returns whether "match" axis id is compatible with the "query" */
400
358
  function matchAxisId(query, target) {
401
- return query.name === target.name && matchDomain(query.domain, target.domain);
359
+ return query.name === target.name && matchDomain(query.domain, target.domain);
402
360
  }
403
361
  function getTypeFromPColumnOrAxisSpec(spec) {
404
- return "valueType" in spec ? spec.valueType : spec.type;
362
+ return "valueType" in spec ? spec.valueType : spec.type;
405
363
  }
406
364
  function isAxisId(id) {
407
- return typeof id === "object" && id !== null && "name" in id && "type" in id;
365
+ return typeof id === "object" && id !== null && "name" in id && "type" in id;
408
366
  }
409
367
 
368
+ //#endregion
410
369
  export { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow };
411
- //# sourceMappingURL=spec.js.map
370
+ //# sourceMappingURL=spec.js.map