@milaboratories/pl-model-common 1.24.3 → 1.24.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/base32_encode.cjs +11 -11
  2. package/dist/base32_encode.cjs.map +1 -1
  3. package/dist/base32_encode.d.ts +1 -1
  4. package/dist/base32_encode.js +11 -11
  5. package/dist/base32_encode.js.map +1 -1
  6. package/dist/base64.cjs +2 -2
  7. package/dist/base64.cjs.map +1 -1
  8. package/dist/base64.d.ts +1 -1
  9. package/dist/base64.d.ts.map +1 -1
  10. package/dist/base64.js +2 -2
  11. package/dist/base64.js.map +1 -1
  12. package/dist/block_state.d.ts +3 -3
  13. package/dist/bmodel/block_config.cjs +1 -1
  14. package/dist/bmodel/block_config.cjs.map +1 -1
  15. package/dist/bmodel/block_config.d.ts +3 -3
  16. package/dist/bmodel/block_config.d.ts.map +1 -1
  17. package/dist/bmodel/block_config.js +1 -1
  18. package/dist/bmodel/block_config.js.map +1 -1
  19. package/dist/bmodel/code.cjs +1 -1
  20. package/dist/bmodel/code.cjs.map +1 -1
  21. package/dist/bmodel/code.d.ts +2 -2
  22. package/dist/bmodel/code.js +1 -1
  23. package/dist/bmodel/code.js.map +1 -1
  24. package/dist/bmodel/container.d.ts +5 -5
  25. package/dist/bmodel/index.d.ts +5 -5
  26. package/dist/bmodel/normalization.cjs +17 -17
  27. package/dist/bmodel/normalization.cjs.map +1 -1
  28. package/dist/bmodel/normalization.d.ts +2 -2
  29. package/dist/bmodel/normalization.d.ts.map +1 -1
  30. package/dist/bmodel/normalization.js +17 -17
  31. package/dist/bmodel/normalization.js.map +1 -1
  32. package/dist/bmodel/types.d.ts +1 -1
  33. package/dist/branding.d.ts +2 -2
  34. package/dist/common_types.d.ts +1 -1
  35. package/dist/driver_kit.d.ts +1 -1
  36. package/dist/drivers/ChunkedStreamReader.cjs +13 -12
  37. package/dist/drivers/ChunkedStreamReader.cjs.map +1 -1
  38. package/dist/drivers/ChunkedStreamReader.d.ts +2 -2
  39. package/dist/drivers/ChunkedStreamReader.d.ts.map +1 -1
  40. package/dist/drivers/ChunkedStreamReader.js +13 -12
  41. package/dist/drivers/ChunkedStreamReader.js.map +1 -1
  42. package/dist/drivers/blob.cjs +1 -1
  43. package/dist/drivers/blob.cjs.map +1 -1
  44. package/dist/drivers/blob.d.ts +4 -4
  45. package/dist/drivers/blob.d.ts.map +1 -1
  46. package/dist/drivers/blob.js +1 -1
  47. package/dist/drivers/blob.js.map +1 -1
  48. package/dist/drivers/index.d.ts +8 -8
  49. package/dist/drivers/log.cjs +1 -1
  50. package/dist/drivers/log.cjs.map +1 -1
  51. package/dist/drivers/log.js +1 -1
  52. package/dist/drivers/log.js.map +1 -1
  53. package/dist/drivers/ls.cjs +3 -3
  54. package/dist/drivers/ls.cjs.map +1 -1
  55. package/dist/drivers/ls.d.ts +6 -6
  56. package/dist/drivers/ls.d.ts.map +1 -1
  57. package/dist/drivers/ls.js +3 -3
  58. package/dist/drivers/ls.js.map +1 -1
  59. package/dist/drivers/pframe/column_filter.d.ts +1 -1
  60. package/dist/drivers/pframe/data_info.cjs +119 -110
  61. package/dist/drivers/pframe/data_info.cjs.map +1 -1
  62. package/dist/drivers/pframe/data_info.d.ts +10 -10
  63. package/dist/drivers/pframe/data_info.d.ts.map +1 -1
  64. package/dist/drivers/pframe/data_info.js +119 -110
  65. package/dist/drivers/pframe/data_info.js.map +1 -1
  66. package/dist/drivers/pframe/data_types.cjs +7 -4
  67. package/dist/drivers/pframe/data_types.cjs.map +1 -1
  68. package/dist/drivers/pframe/data_types.d.ts +2 -2
  69. package/dist/drivers/pframe/data_types.d.ts.map +1 -1
  70. package/dist/drivers/pframe/data_types.js +7 -4
  71. package/dist/drivers/pframe/data_types.js.map +1 -1
  72. package/dist/drivers/pframe/driver.d.ts +10 -10
  73. package/dist/drivers/pframe/driver.d.ts.map +1 -1
  74. package/dist/drivers/pframe/find_columns.d.ts +2 -2
  75. package/dist/drivers/pframe/index.d.ts +14 -14
  76. package/dist/drivers/pframe/linker_columns.cjs +13 -5
  77. package/dist/drivers/pframe/linker_columns.cjs.map +1 -1
  78. package/dist/drivers/pframe/linker_columns.d.ts +2 -2
  79. package/dist/drivers/pframe/linker_columns.d.ts.map +1 -1
  80. package/dist/drivers/pframe/linker_columns.js +13 -5
  81. package/dist/drivers/pframe/linker_columns.js.map +1 -1
  82. package/dist/drivers/pframe/pframe.d.ts +6 -6
  83. package/dist/drivers/pframe/pframe.d.ts.map +1 -1
  84. package/dist/drivers/pframe/query/index.d.ts +2 -2
  85. package/dist/drivers/pframe/query/query_common.d.ts +37 -37
  86. package/dist/drivers/pframe/query/query_data.d.ts +2 -2
  87. package/dist/drivers/pframe/query/query_data.d.ts.map +1 -1
  88. package/dist/drivers/pframe/query/query_spec.d.ts +3 -3
  89. package/dist/drivers/pframe/query/query_spec.d.ts.map +1 -1
  90. package/dist/drivers/pframe/spec/anchored.cjs +6 -6
  91. package/dist/drivers/pframe/spec/anchored.cjs.map +1 -1
  92. package/dist/drivers/pframe/spec/anchored.d.ts +4 -4
  93. package/dist/drivers/pframe/spec/anchored.d.ts.map +1 -1
  94. package/dist/drivers/pframe/spec/anchored.js +6 -6
  95. package/dist/drivers/pframe/spec/anchored.js.map +1 -1
  96. package/dist/drivers/pframe/spec/filtered_column.cjs +1 -1
  97. package/dist/drivers/pframe/spec/filtered_column.cjs.map +1 -1
  98. package/dist/drivers/pframe/spec/filtered_column.d.ts +1 -1
  99. package/dist/drivers/pframe/spec/filtered_column.js +1 -1
  100. package/dist/drivers/pframe/spec/filtered_column.js.map +1 -1
  101. package/dist/drivers/pframe/spec/ids.cjs.map +1 -1
  102. package/dist/drivers/pframe/spec/ids.d.ts +5 -5
  103. package/dist/drivers/pframe/spec/ids.js.map +1 -1
  104. package/dist/drivers/pframe/spec/index.d.ts +6 -6
  105. package/dist/drivers/pframe/spec/native_id.cjs.map +1 -1
  106. package/dist/drivers/pframe/spec/native_id.d.ts +3 -3
  107. package/dist/drivers/pframe/spec/native_id.d.ts.map +1 -1
  108. package/dist/drivers/pframe/spec/native_id.js.map +1 -1
  109. package/dist/drivers/pframe/spec/selectors.cjs +1 -1
  110. package/dist/drivers/pframe/spec/selectors.cjs.map +1 -1
  111. package/dist/drivers/pframe/spec/selectors.d.ts +4 -4
  112. package/dist/drivers/pframe/spec/selectors.d.ts.map +1 -1
  113. package/dist/drivers/pframe/spec/selectors.js +1 -1
  114. package/dist/drivers/pframe/spec/selectors.js.map +1 -1
  115. package/dist/drivers/pframe/spec/spec.cjs +64 -59
  116. package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
  117. package/dist/drivers/pframe/spec/spec.d.ts +15 -15
  118. package/dist/drivers/pframe/spec/spec.d.ts.map +1 -1
  119. package/dist/drivers/pframe/spec/spec.js +64 -59
  120. package/dist/drivers/pframe/spec/spec.js.map +1 -1
  121. package/dist/drivers/pframe/table.d.ts +2 -2
  122. package/dist/drivers/pframe/table_calculate.cjs +11 -11
  123. package/dist/drivers/pframe/table_calculate.cjs.map +1 -1
  124. package/dist/drivers/pframe/table_calculate.d.ts +30 -30
  125. package/dist/drivers/pframe/table_calculate.d.ts.map +1 -1
  126. package/dist/drivers/pframe/table_calculate.js +11 -11
  127. package/dist/drivers/pframe/table_calculate.js.map +1 -1
  128. package/dist/drivers/pframe/table_common.cjs +4 -4
  129. package/dist/drivers/pframe/table_common.cjs.map +1 -1
  130. package/dist/drivers/pframe/table_common.d.ts +6 -6
  131. package/dist/drivers/pframe/table_common.js +4 -4
  132. package/dist/drivers/pframe/table_common.js.map +1 -1
  133. package/dist/drivers/pframe/type_util.d.ts.map +1 -1
  134. package/dist/drivers/pframe/unique_values.d.ts +4 -4
  135. package/dist/drivers/urls.cjs +2 -2
  136. package/dist/drivers/urls.cjs.map +1 -1
  137. package/dist/drivers/urls.d.ts +1 -1
  138. package/dist/drivers/urls.js +2 -2
  139. package/dist/drivers/urls.js.map +1 -1
  140. package/dist/errors.cjs +12 -12
  141. package/dist/errors.cjs.map +1 -1
  142. package/dist/errors.d.ts +1 -1
  143. package/dist/errors.d.ts.map +1 -1
  144. package/dist/errors.js +12 -12
  145. package/dist/errors.js.map +1 -1
  146. package/dist/flags/block_flags.cjs +2 -2
  147. package/dist/flags/block_flags.cjs.map +1 -1
  148. package/dist/flags/block_flags.d.ts.map +1 -1
  149. package/dist/flags/block_flags.js +2 -2
  150. package/dist/flags/block_flags.js.map +1 -1
  151. package/dist/flags/flag_utils.cjs +31 -29
  152. package/dist/flags/flag_utils.cjs.map +1 -1
  153. package/dist/flags/flag_utils.d.ts +33 -33
  154. package/dist/flags/flag_utils.d.ts.map +1 -1
  155. package/dist/flags/flag_utils.js +31 -29
  156. package/dist/flags/flag_utils.js.map +1 -1
  157. package/dist/flags/index.d.ts +3 -3
  158. package/dist/flags/type_utils.d.ts +1 -1
  159. package/dist/flags/type_utils.d.ts.map +1 -1
  160. package/dist/httpAuth.cjs +4 -5
  161. package/dist/httpAuth.cjs.map +1 -1
  162. package/dist/httpAuth.d.ts +1 -1
  163. package/dist/httpAuth.d.ts.map +1 -1
  164. package/dist/httpAuth.js +4 -5
  165. package/dist/httpAuth.js.map +1 -1
  166. package/dist/index.d.ts +19 -19
  167. package/dist/json.cjs +1 -1
  168. package/dist/json.cjs.map +1 -1
  169. package/dist/json.d.ts.map +1 -1
  170. package/dist/json.js +1 -1
  171. package/dist/json.js.map +1 -1
  172. package/dist/navigation.cjs +1 -1
  173. package/dist/navigation.cjs.map +1 -1
  174. package/dist/navigation.d.ts +3 -3
  175. package/dist/navigation.js +1 -1
  176. package/dist/navigation.js.map +1 -1
  177. package/dist/plid.cjs +4 -4
  178. package/dist/plid.cjs.map +1 -1
  179. package/dist/plid.d.ts +1 -1
  180. package/dist/plid.js +4 -4
  181. package/dist/plid.js.map +1 -1
  182. package/dist/pool/entry.d.ts +1 -1
  183. package/dist/pool/index.d.ts +3 -3
  184. package/dist/pool/query.cjs +23 -23
  185. package/dist/pool/query.cjs.map +1 -1
  186. package/dist/pool/query.d.ts +9 -9
  187. package/dist/pool/query.d.ts.map +1 -1
  188. package/dist/pool/query.js +23 -23
  189. package/dist/pool/query.js.map +1 -1
  190. package/dist/pool/spec.cjs +9 -9
  191. package/dist/pool/spec.cjs.map +1 -1
  192. package/dist/pool/spec.d.ts +4 -4
  193. package/dist/pool/spec.d.ts.map +1 -1
  194. package/dist/pool/spec.js +9 -9
  195. package/dist/pool/spec.js.map +1 -1
  196. package/dist/ref.cjs +20 -18
  197. package/dist/ref.cjs.map +1 -1
  198. package/dist/ref.d.ts +1 -1
  199. package/dist/ref.d.ts.map +1 -1
  200. package/dist/ref.js +20 -18
  201. package/dist/ref.js.map +1 -1
  202. package/dist/utag.d.ts +1 -1
  203. package/dist/util.cjs +1 -1
  204. package/dist/util.cjs.map +1 -1
  205. package/dist/util.js +1 -1
  206. package/dist/util.js.map +1 -1
  207. package/dist/value_or_error.cjs.map +1 -1
  208. package/dist/value_or_error.d.ts.map +1 -1
  209. package/dist/value_or_error.js.map +1 -1
  210. package/package.json +18 -17
  211. package/src/base32_encode.ts +12 -12
  212. package/src/base64.ts +12 -8
  213. package/src/block_state.ts +3 -3
  214. package/src/bmodel/block_config.ts +12 -6
  215. package/src/bmodel/code.ts +3 -3
  216. package/src/bmodel/container.ts +5 -5
  217. package/src/bmodel/index.ts +5 -5
  218. package/src/bmodel/normalization.ts +33 -25
  219. package/src/bmodel/types.ts +1 -1
  220. package/src/branding.ts +2 -2
  221. package/src/common_types.ts +1 -1
  222. package/src/driver_kit.ts +1 -1
  223. package/src/drivers/ChunkedStreamReader.ts +16 -14
  224. package/src/drivers/blob.ts +7 -11
  225. package/src/drivers/index.ts +8 -8
  226. package/src/drivers/log.ts +3 -3
  227. package/src/drivers/ls.ts +18 -18
  228. package/src/drivers/pframe/column_filter.ts +1 -1
  229. package/src/drivers/pframe/data_info.ts +146 -146
  230. package/src/drivers/pframe/data_types.ts +56 -36
  231. package/src/drivers/pframe/driver.ts +20 -36
  232. package/src/drivers/pframe/find_columns.ts +2 -2
  233. package/src/drivers/pframe/index.ts +14 -14
  234. package/src/drivers/pframe/linker_columns.test.ts +280 -273
  235. package/src/drivers/pframe/linker_columns.ts +65 -39
  236. package/src/drivers/pframe/pframe.ts +6 -9
  237. package/src/drivers/pframe/query/index.ts +2 -2
  238. package/src/drivers/pframe/query/query_common.ts +46 -46
  239. package/src/drivers/pframe/query/query_data.ts +17 -10
  240. package/src/drivers/pframe/query/query_spec.ts +18 -10
  241. package/src/drivers/pframe/spec/anchored.ts +44 -33
  242. package/src/drivers/pframe/spec/filtered_column.ts +2 -2
  243. package/src/drivers/pframe/spec/ids.ts +6 -6
  244. package/src/drivers/pframe/spec/index.ts +6 -6
  245. package/src/drivers/pframe/spec/native_id.ts +7 -9
  246. package/src/drivers/pframe/spec/selectors.test.ts +170 -146
  247. package/src/drivers/pframe/spec/selectors.ts +22 -31
  248. package/src/drivers/pframe/spec/spec.test.ts +163 -176
  249. package/src/drivers/pframe/spec/spec.ts +132 -117
  250. package/src/drivers/pframe/table.ts +2 -2
  251. package/src/drivers/pframe/table_calculate.ts +44 -50
  252. package/src/drivers/pframe/table_common.ts +10 -10
  253. package/src/drivers/pframe/type_util.ts +2 -7
  254. package/src/drivers/pframe/unique_values.ts +4 -4
  255. package/src/drivers/urls.ts +3 -3
  256. package/src/errors.test.ts +20 -20
  257. package/src/errors.ts +24 -20
  258. package/src/flags/block_flags.ts +8 -7
  259. package/src/flags/flag_utils.test.ts +94 -73
  260. package/src/flags/flag_utils.ts +73 -50
  261. package/src/flags/index.ts +3 -3
  262. package/src/flags/type_utils.ts +10 -7
  263. package/src/httpAuth.ts +5 -6
  264. package/src/index.ts +19 -19
  265. package/src/json.ts +28 -17
  266. package/src/navigation.ts +4 -4
  267. package/src/plid.ts +6 -6
  268. package/src/pool/entry.ts +1 -1
  269. package/src/pool/index.ts +3 -3
  270. package/src/pool/query.ts +52 -56
  271. package/src/pool/spec.ts +20 -17
  272. package/src/ref.ts +25 -19
  273. package/src/utag.ts +1 -1
  274. package/src/util.ts +1 -1
  275. package/src/value_or_error.ts +6 -6
@@ -5,17 +5,17 @@ var json = require('../../../json.cjs');
5
5
  var zod = require('zod');
6
6
 
7
7
  const ValueType = {
8
- Int: 'Int',
9
- Long: 'Long',
10
- Float: 'Float',
11
- Double: 'Double',
12
- String: 'String',
13
- Bytes: 'Bytes',
8
+ Int: "Int",
9
+ Long: "Long",
10
+ Float: "Float",
11
+ Double: "Double",
12
+ String: "String",
13
+ Bytes: "Bytes",
14
14
  };
15
15
  function readMetadata(metadata, key) {
16
16
  return metadata?.[key];
17
17
  }
18
- function readMetadataJsonOrThrow(metadata, metadataJson, key, methodNameInError = 'readMetadataJsonOrThrow') {
18
+ function readMetadataJsonOrThrow(metadata, metadataJson, key, methodNameInError = "readMetadataJsonOrThrow") {
19
19
  const json = readMetadata(metadata, key);
20
20
  if (json === undefined)
21
21
  return undefined;
@@ -25,10 +25,10 @@ function readMetadataJsonOrThrow(metadata, metadataJson, key, methodNameInError
25
25
  return schema.parse(value);
26
26
  }
27
27
  catch (error) {
28
- throw new Error(`${methodNameInError} failed, `
29
- + `key: ${String(key)}, `
30
- + `value: ${json}, `
31
- + `error: ${errors.ensureError(error)}`);
28
+ throw new Error(`${methodNameInError} failed, ` +
29
+ `key: ${String(key)}, ` +
30
+ `value: ${json}, ` +
31
+ `error: ${errors.ensureError(error)}`);
32
32
  }
33
33
  }
34
34
  function readMetadataJson(metadata, metadataJson, key) {
@@ -41,11 +41,11 @@ function readMetadataJson(metadata, metadataJson, key) {
41
41
  }
42
42
  /// Well-known domains
43
43
  const Domain = {
44
- Alphabet: 'pl7.app/alphabet',
45
- BlockId: 'pl7.app/blockId',
44
+ Alphabet: "pl7.app/alphabet",
45
+ BlockId: "pl7.app/blockId",
46
46
  VDJ: {
47
47
  ScClonotypeChain: {
48
- Index: 'pl7.app/vdj/scClonotypeChain/index',
48
+ Index: "pl7.app/vdj/scClonotypeChain/index",
49
49
  },
50
50
  },
51
51
  };
@@ -56,7 +56,7 @@ function readDomain(spec, key) {
56
56
  }
57
57
  /// Helper function for reading json-encoded domain values, throws on JSON parsing error
58
58
  function readDomainJsonOrThrow(spec, key) {
59
- return readMetadataJsonOrThrow(spec?.domain, DomainJson, key, 'readDomainJsonOrThrow');
59
+ return readMetadataJsonOrThrow(spec?.domain, DomainJson, key, "readDomainJsonOrThrow");
60
60
  }
61
61
  /// Helper function for reading json-encoded domain values, returns undefined on JSON parsing error
62
62
  function readDomainJson(spec, key) {
@@ -64,51 +64,51 @@ function readDomainJson(spec, key) {
64
64
  }
65
65
  /// Well-known annotations
66
66
  const Annotation = {
67
- AxisNature: 'pl7.app/axisNature',
68
- Alphabet: 'pl7.app/alphabet',
69
- Description: 'pl7.app/description',
70
- DiscreteValues: 'pl7.app/discreteValues',
71
- Format: 'pl7.app/format',
67
+ AxisNature: "pl7.app/axisNature",
68
+ Alphabet: "pl7.app/alphabet",
69
+ Description: "pl7.app/description",
70
+ DiscreteValues: "pl7.app/discreteValues",
71
+ Format: "pl7.app/format",
72
72
  Graph: {
73
73
  Axis: {
74
- HighCardinality: 'pl7.app/graph/axis/highCardinality',
75
- LowerLimit: 'pl7.app/graph/axis/lowerLimit',
76
- SymmetricRange: 'pl7.app/graph/axis/symmetricRange',
77
- UpperLimit: 'pl7.app/graph/axis/upperLimit',
74
+ HighCardinality: "pl7.app/graph/axis/highCardinality",
75
+ LowerLimit: "pl7.app/graph/axis/lowerLimit",
76
+ SymmetricRange: "pl7.app/graph/axis/symmetricRange",
77
+ UpperLimit: "pl7.app/graph/axis/upperLimit",
78
78
  },
79
- IsDenseAxis: 'pl7.app/graph/isDenseAxis',
80
- IsVirtual: 'pl7.app/graph/isVirtual',
81
- Palette: 'pl7.app/graph/palette',
82
- Thresholds: 'pl7.app/graph/thresholds',
83
- TreatAbsentValuesAs: 'pl7.app/graph/treatAbsentValuesAs',
79
+ IsDenseAxis: "pl7.app/graph/isDenseAxis",
80
+ IsVirtual: "pl7.app/graph/isVirtual",
81
+ Palette: "pl7.app/graph/palette",
82
+ Thresholds: "pl7.app/graph/thresholds",
83
+ TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs",
84
84
  },
85
- HideDataFromUi: 'pl7.app/hideDataFromUi',
86
- HideDataFromGraphs: 'pl7.app/hideDataFromGraphs',
87
- IsDiscreteFilter: 'pl7.app/isDiscreteFilter',
88
- IsLinkerColumn: 'pl7.app/isLinkerColumn',
89
- IsSubset: 'pl7.app/isSubset',
90
- Label: 'pl7.app/label',
91
- Max: 'pl7.app/max',
92
- Min: 'pl7.app/min',
93
- MultipliesBy: 'pl7.app/multipliesBy',
94
- Parents: 'pl7.app/parents',
85
+ HideDataFromUi: "pl7.app/hideDataFromUi",
86
+ HideDataFromGraphs: "pl7.app/hideDataFromGraphs",
87
+ IsDiscreteFilter: "pl7.app/isDiscreteFilter",
88
+ IsLinkerColumn: "pl7.app/isLinkerColumn",
89
+ IsSubset: "pl7.app/isSubset",
90
+ Label: "pl7.app/label",
91
+ Max: "pl7.app/max",
92
+ Min: "pl7.app/min",
93
+ MultipliesBy: "pl7.app/multipliesBy",
94
+ Parents: "pl7.app/parents",
95
95
  Sequence: {
96
96
  Annotation: {
97
- Mapping: 'pl7.app/sequence/annotation/mapping',
97
+ Mapping: "pl7.app/sequence/annotation/mapping",
98
98
  },
99
- IsAnnotation: 'pl7.app/sequence/isAnnotation',
99
+ IsAnnotation: "pl7.app/sequence/isAnnotation",
100
100
  },
101
101
  Table: {
102
- FontFamily: 'pl7.app/table/fontFamily',
103
- OrderPriority: 'pl7.app/table/orderPriority',
104
- Visibility: 'pl7.app/table/visibility',
102
+ FontFamily: "pl7.app/table/fontFamily",
103
+ OrderPriority: "pl7.app/table/orderPriority",
104
+ Visibility: "pl7.app/table/visibility",
105
105
  },
106
- Trace: 'pl7.app/trace',
106
+ Trace: "pl7.app/trace",
107
107
  VDJ: {
108
- IsAssemblingFeature: 'pl7.app/vdj/isAssemblingFeature',
108
+ IsAssemblingFeature: "pl7.app/vdj/isAssemblingFeature",
109
109
  },
110
110
  };
111
- const ValueTypeSchema = zod.z.enum(['Int', 'Long', 'Float', 'Double', 'String']);
111
+ const ValueTypeSchema = zod.z.enum(["Int", "Long", "Float", "Double", "String"]);
112
112
  const AnnotationJson = {
113
113
  [Annotation.DiscreteValues]: zod.z.array(zod.z.string()).or(zod.z.array(zod.z.number())),
114
114
  [Annotation.Graph.Axis.HighCardinality]: zod.z.boolean(),
@@ -144,7 +144,7 @@ function readAnnotation(spec, key) {
144
144
  }
145
145
  /// Helper function for reading json-encoded annotation values, throws on JSON parsing error
146
146
  function readAnnotationJsonOrThrow(spec, key) {
147
- return readMetadataJsonOrThrow(spec?.annotations, AnnotationJson, key, 'readAnnotationJsonOrThrow');
147
+ return readMetadataJsonOrThrow(spec?.annotations, AnnotationJson, key, "readAnnotationJsonOrThrow");
148
148
  }
149
149
  /// Helper function for reading json-encoded annotation values, returns undefined on JSON parsing error
150
150
  function readAnnotationJson(spec, key) {
@@ -276,16 +276,21 @@ function getNormalizedAxesList(axes) {
276
276
  });
277
277
  axes.forEach((axis, idx) => {
278
278
  const modifiedAxis = modifiedAxes[idx];
279
- if (axis.parentAxes) { // if we have parents by indexes then take from the list
279
+ if (axis.parentAxes) {
280
+ // if we have parents by indexes then take from the list
280
281
  modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);
281
282
  }
282
- else { // else try to parse from annotation name
283
+ else {
284
+ // else try to parse from annotation name
283
285
  const parents = parseParentsFromAnnotations(axis).map((name) => modifiedAxes.find((axis) => axis.name === name));
284
- modifiedAxis.parentAxesSpec = parents.some((p) => p === undefined) ? [] : parents;
286
+ modifiedAxis.parentAxesSpec = parents.some((p) => p === undefined)
287
+ ? []
288
+ : parents;
285
289
  delete modifiedAxis.annotations?.[Annotation.Parents];
286
290
  }
287
291
  });
288
- if (modifiedAxes.some(hasCycleOfParents)) { // Axes list is broken
292
+ if (modifiedAxes.some(hasCycleOfParents)) {
293
+ // Axes list is broken
289
294
  modifiedAxes.forEach((axis) => {
290
295
  axis.parentAxesSpec = [];
291
296
  });
@@ -312,21 +317,21 @@ function getDenormalizedAxesList(axesSpec) {
312
317
  }
313
318
  /// Well-known column names
314
319
  const PColumnName = {
315
- Label: 'pl7.app/label',
320
+ Label: "pl7.app/label",
316
321
  Table: {
317
- RowSelection: 'pl7.app/table/row-selection',
322
+ RowSelection: "pl7.app/table/row-selection",
318
323
  },
319
324
  VDJ: {
320
- Sequence: 'pl7.app/vdj/sequence',
325
+ Sequence: "pl7.app/vdj/sequence",
321
326
  },
322
327
  };
323
328
  /// Well-known axis names
324
329
  const PAxisName = {
325
330
  VDJ: {
326
331
  Assay: {
327
- SequenceId: 'pl7.app/vdj/assay/sequenceId',
332
+ SequenceId: "pl7.app/vdj/assay/sequenceId",
328
333
  },
329
- ScClonotypeKey: 'pl7.app/vdj/scClonotypeKey',
334
+ ScClonotypeKey: "pl7.app/vdj/scClonotypeKey",
330
335
  },
331
336
  };
332
337
  function isLabelColumn(column) {
@@ -383,10 +388,10 @@ function matchAxisId(query, target) {
383
388
  return query.name === target.name && matchDomain(query.domain, target.domain);
384
389
  }
385
390
  function getTypeFromPColumnOrAxisSpec(spec) {
386
- return 'valueType' in spec ? spec.valueType : spec.type;
391
+ return "valueType" in spec ? spec.valueType : spec.type;
387
392
  }
388
393
  function isAxisId(id) {
389
- return typeof id === 'object' && id !== null && 'name' in id && 'type' in id;
394
+ return typeof id === "object" && id !== null && "name" in id && "type" in id;
390
395
  }
391
396
 
392
397
  exports.Annotation = Annotation;
@@ -1 +1 @@
1
- {"version":3,"file":"spec.cjs","sources":["../../../../src/drivers/pframe/spec/spec.ts"],"sourcesContent":["import { ensureError } from '../../../errors';\nimport {\n canonicalizeJson,\n type CanonicalizedJson,\n type StringifiedJson,\n} from '../../../json';\nimport type {\n PObject,\n PObjectId,\n PObjectSpec,\n} from '../../../pool';\nimport { z } from 'zod';\n\nexport const ValueType = {\n Int: 'Int',\n Long: 'Long',\n Float: 'Float',\n Double: 'Double',\n String: 'String',\n Bytes: 'Bytes',\n} as const;\n\nexport type AxisValueType = Extract<ValueType, 'Int' | 'Long' | 'String'>;\nexport type ColumnValueType = ValueType;\n\n/** PFrame columns and axes within them may store one of these types. */\nexport type ValueType = (typeof ValueType)[keyof typeof ValueType];\n\nexport type Metadata = Record<string, string>;\n\nexport function readMetadata<U extends Metadata, T extends keyof U = keyof U>(\n metadata: Metadata | undefined,\n key: T,\n): U[T] | undefined {\n return (metadata as U | undefined)?.[key];\n}\n\ntype MetadataJsonImpl<M> = {\n [P in keyof M as (M[P] extends StringifiedJson ? P : never)]: M[P] extends StringifiedJson<infer U> ? z.ZodType<U> : never;\n};\nexport type MetadataJson<M> = MetadataJsonImpl<Required<M>>;\n\nexport function readMetadataJsonOrThrow<M extends Metadata, T extends keyof MetadataJson<M>>(\n metadata: Metadata | undefined,\n metadataJson: MetadataJson<M>,\n key: T,\n methodNameInError: string = 'readMetadataJsonOrThrow',\n): z.infer<MetadataJson<M>[T]> | undefined {\n const json = readMetadata<M, T>(metadata, key);\n if (json === undefined) return undefined;\n\n const schema = metadataJson[key];\n try {\n const value = JSON.parse(json);\n return schema.parse(value);\n } catch (error: unknown) {\n throw new Error(\n `${methodNameInError} failed, `\n + `key: ${String(key)}, `\n + `value: ${json}, `\n + `error: ${ensureError(error)}`,\n );\n }\n}\n\nexport function readMetadataJson<M extends Metadata, T extends keyof MetadataJson<M>>(\n metadata: Metadata | undefined,\n metadataJson: MetadataJson<M>,\n key: T,\n): z.infer<MetadataJson<M>[T]> | undefined {\n try {\n return readMetadataJsonOrThrow(metadata, metadataJson, key);\n } catch {\n return undefined; // treat invalid values as unset\n }\n}\n\n/// Well-known domains\nexport const Domain = {\n Alphabet: 'pl7.app/alphabet',\n BlockId: 'pl7.app/blockId',\n VDJ: {\n ScClonotypeChain: {\n Index: 'pl7.app/vdj/scClonotypeChain/index',\n },\n },\n} as const;\n\nexport type Domain = Metadata & Partial<{\n [Domain.Alphabet]: 'nucleotide' | 'aminoacid' | (string & {});\n [Domain.BlockId]: string;\n [Domain.VDJ.ScClonotypeChain.Index]: 'primary' | 'secondary' | (string & {});\n}>;\n\nexport type DomainJson = MetadataJson<Domain>;\nexport const DomainJson: DomainJson = {};\n\n/// Helper function for reading plain domain values\nexport function readDomain<T extends keyof Domain>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): Domain[T] | undefined {\n return readMetadata<Domain, T>(spec?.domain, key);\n}\n\n/// Helper function for reading json-encoded domain values, throws on JSON parsing error\nexport function readDomainJsonOrThrow<T extends keyof DomainJson>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<DomainJson[T]> | undefined {\n return readMetadataJsonOrThrow<Domain, T>(spec?.domain, DomainJson, key, 'readDomainJsonOrThrow');\n}\n\n/// Helper function for reading json-encoded domain values, returns undefined on JSON parsing error\nexport function readDomainJson<T extends keyof DomainJson>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<DomainJson[T]> | undefined {\n return readMetadataJson<Domain, T>(spec?.domain, DomainJson, key);\n}\n\n/// Well-known annotations\nexport const Annotation = {\n AxisNature: 'pl7.app/axisNature',\n Alphabet: 'pl7.app/alphabet',\n Description: 'pl7.app/description',\n DiscreteValues: 'pl7.app/discreteValues',\n Format: 'pl7.app/format',\n Graph: {\n Axis: {\n HighCardinality: 'pl7.app/graph/axis/highCardinality',\n LowerLimit: 'pl7.app/graph/axis/lowerLimit',\n SymmetricRange: 'pl7.app/graph/axis/symmetricRange',\n UpperLimit: 'pl7.app/graph/axis/upperLimit',\n },\n IsDenseAxis: 'pl7.app/graph/isDenseAxis',\n IsVirtual: 'pl7.app/graph/isVirtual',\n Palette: 'pl7.app/graph/palette',\n Thresholds: 'pl7.app/graph/thresholds',\n TreatAbsentValuesAs: 'pl7.app/graph/treatAbsentValuesAs',\n },\n HideDataFromUi: 'pl7.app/hideDataFromUi',\n HideDataFromGraphs: 'pl7.app/hideDataFromGraphs',\n IsDiscreteFilter: 'pl7.app/isDiscreteFilter',\n IsLinkerColumn: 'pl7.app/isLinkerColumn',\n IsSubset: 'pl7.app/isSubset',\n Label: 'pl7.app/label',\n Max: 'pl7.app/max',\n Min: 'pl7.app/min',\n MultipliesBy: 'pl7.app/multipliesBy',\n Parents: 'pl7.app/parents',\n Sequence: {\n Annotation: {\n Mapping: 'pl7.app/sequence/annotation/mapping',\n },\n IsAnnotation: 'pl7.app/sequence/isAnnotation',\n },\n Table: {\n FontFamily: 'pl7.app/table/fontFamily',\n OrderPriority: 'pl7.app/table/orderPriority',\n Visibility: 'pl7.app/table/visibility',\n },\n Trace: 'pl7.app/trace',\n VDJ: {\n IsAssemblingFeature: 'pl7.app/vdj/isAssemblingFeature',\n },\n} as const;\n\nexport type Annotation = Metadata & Partial<{\n [Annotation.Alphabet]: 'nucleotide' | 'aminoacid' | (string & {});\n [Annotation.AxisNature]: 'homogeneous' | 'heterogeneous' | 'scaleCompatible' | (string & {});\n [Annotation.Description]: string;\n [Annotation.DiscreteValues]: StringifiedJson<number[]> | StringifiedJson<string[]>;\n [Annotation.Format]: string;\n [Annotation.Graph.Axis.HighCardinality]: StringifiedJson<boolean>;\n [Annotation.Graph.Axis.LowerLimit]: StringifiedJson<number>;\n [Annotation.Graph.Axis.SymmetricRange]: StringifiedJson<boolean>;\n [Annotation.Graph.Axis.UpperLimit]: StringifiedJson<number>;\n [Annotation.Graph.IsDenseAxis]: StringifiedJson<boolean>;\n [Annotation.Graph.IsVirtual]: StringifiedJson<boolean>;\n [Annotation.Graph.Palette]: StringifiedJson<{ mapping: Record<string, number>; name: string }>;\n [Annotation.Graph.Thresholds]: StringifiedJson<{ columnId: { valueType: ValueType; name: string }; value: number }[]>;\n [Annotation.Graph.TreatAbsentValuesAs]: StringifiedJson<number>;\n [Annotation.HideDataFromGraphs]: StringifiedJson<boolean>;\n [Annotation.HideDataFromUi]: StringifiedJson<boolean>;\n [Annotation.IsDiscreteFilter]: StringifiedJson<boolean>;\n [Annotation.IsLinkerColumn]: StringifiedJson<boolean>;\n [Annotation.IsSubset]: StringifiedJson<boolean>;\n [Annotation.Label]: string;\n [Annotation.Max]: StringifiedJson<number>;\n [Annotation.Min]: StringifiedJson<number>;\n [Annotation.MultipliesBy]: StringifiedJson<AxisSpec['name'][]>;\n [Annotation.Parents]: StringifiedJson<AxisSpec['name'][]>;\n [Annotation.Sequence.Annotation.Mapping]: StringifiedJson<Record<string, string>>;\n [Annotation.Sequence.IsAnnotation]: StringifiedJson<boolean>;\n [Annotation.Table.FontFamily]: string;\n [Annotation.Table.OrderPriority]: StringifiedJson<number>;\n [Annotation.Table.Visibility]: 'hidden' | 'optional' | (string & {});\n [Annotation.Trace]: StringifiedJson<Record<string, unknown>>;\n [Annotation.VDJ.IsAssemblingFeature]: StringifiedJson<boolean>;\n}>;\n\n// export const AxisSpec = z.object({\n// type: z.nativeEnum(ValueType),\n// name: z.string(),\n// domain: z.record(z.string(), z.string()).optional(),\n// annotations: z.record(z.string(), z.string()).optional(),\n// parentAxes: z.array(z.number()).optional(),\n// }).passthrough();\n//\n// type Expect<T extends true> = T;\n// type Equal<X, Y> =\n// (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n//\n// type _test = Expect<Equal<\n// Readonly<z.infer<typeof AxisSpec>>,\n// Readonly<AxisSpec & Record<string, unknown>>\n// >>;\n\nexport type AnnotationJson = MetadataJson<Annotation>;\n\nconst ValueTypeSchema = z.enum(['Int', 'Long', 'Float', 'Double', 'String'] as const);\nexport const AnnotationJson: AnnotationJson = {\n [Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),\n [Annotation.Graph.Axis.HighCardinality]: z.boolean(),\n [Annotation.Graph.Axis.LowerLimit]: z.number(),\n [Annotation.Graph.Axis.UpperLimit]: z.number(),\n [Annotation.Graph.Axis.SymmetricRange]: z.boolean(),\n [Annotation.Graph.IsDenseAxis]: z.boolean(),\n [Annotation.Graph.Palette]: z.object({ mapping: z.record(z.number()), name: z.string() }),\n [Annotation.Graph.Thresholds]: z.array(\n z.object({\n columnId: z.object({ valueType: ValueTypeSchema, name: z.string() }),\n value: z.number(),\n }),\n ),\n [Annotation.Graph.TreatAbsentValuesAs]: z.number(),\n [Annotation.Graph.IsVirtual]: z.boolean(),\n [Annotation.HideDataFromUi]: z.boolean(),\n [Annotation.HideDataFromGraphs]: z.boolean(),\n [Annotation.IsDiscreteFilter]: z.boolean(),\n [Annotation.IsLinkerColumn]: z.boolean(),\n [Annotation.IsSubset]: z.boolean(),\n [Annotation.Max]: z.number(),\n [Annotation.Min]: z.number(),\n [Annotation.MultipliesBy]: z.array(z.string()),\n [Annotation.Parents]: z.array(z.string()),\n [Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),\n [Annotation.Sequence.IsAnnotation]: z.boolean(),\n [Annotation.Table.OrderPriority]: z.number(),\n [Annotation.Trace]: z.record(z.string(), z.unknown()),\n [Annotation.VDJ.IsAssemblingFeature]: z.boolean(),\n};\n\n/// Helper function for reading plain annotation values\nexport function readAnnotation<T extends keyof Annotation>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): Annotation[T] | undefined {\n return readMetadata<Annotation, T>(spec?.annotations, key);\n}\n\n/// Helper function for reading json-encoded annotation values, throws on JSON parsing error\nexport function readAnnotationJsonOrThrow<T extends keyof AnnotationJson>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<AnnotationJson[T]> | undefined {\n return readMetadataJsonOrThrow<Annotation, T>(spec?.annotations, AnnotationJson, key, 'readAnnotationJsonOrThrow');\n}\n\n/// Helper function for reading json-encoded annotation values, returns undefined on JSON parsing error\nexport function readAnnotationJson<T extends keyof AnnotationJson>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<AnnotationJson[T]> | undefined {\n return readMetadataJson<Annotation, T>(spec?.annotations, AnnotationJson, key);\n}\n\nexport function isLinkerColumn(column: PColumnSpec): boolean {\n return !!readAnnotationJson(column, Annotation.IsLinkerColumn);\n}\n\n/**\n * Specification of an individual axis.\n *\n * Each axis is a part of a composite key that addresses data inside the PColumn.\n *\n * Each record inside a PColumn is addressed by a unique tuple of values set for\n * all the axes specified in the column spec.\n */\nexport type AxisSpec = {\n /** Type of the axis value. Should not use non-key types like float or double. */\n readonly type: ValueType;\n\n /** Name of the axis */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** Any additional information attached to the axis that does not affect its\n * identifier */\n readonly annotations?: Record<string, string>;\n\n /**\n * Parent axes provide contextual grouping for the axis in question, establishing\n * a hierarchy where the current axis is dependent on one or more axes for its\n * full definition and meaning. For instance, in a data structure where each\n * \"container\" axis may contain multiple \"item\" axes, the `item` axis would\n * list the index of the `container` axis in this field to denote its dependency.\n *\n * This means that the identity or significance of the `item` axis is only\n * interpretable when combined with its parent `container` axis. An `item` axis\n * index by itself may be non-unique and only gains uniqueness within the context\n * of its parent `container`. Therefore, the `parentAxes` field is essential for\n * mapping these relationships and ensuring data coherence across nested or\n * multi-level data models.\n *\n * A list of zero-based indices of parent axes in the overall axes specification\n * from the column spec. Each index corresponds to the position of a parent axis\n * in the list that defines the structure of the data model.\n */\n readonly parentAxes?: number[];\n};\n\n/** Parents are specs, not indexes; normalized axis can be used considering its parents independently from column */\nexport interface AxisSpecNormalized extends Omit<AxisSpec, 'parentAxes'> {\n parentAxesSpec: AxisSpecNormalized[];\n}\n\n/** Tree: axis is a root, its parents are children */\nexport type AxisTree = {\n axis: AxisSpecNormalized;\n children: AxisTree[]; // parents\n};\n\nfunction makeAxisTree(axis: AxisSpecNormalized): AxisTree {\n return { axis, children: [] };\n}\n\n/** Build tree by axis parents annotations */\nexport function getAxesTree(rootAxis: AxisSpecNormalized): AxisTree {\n const root = makeAxisTree(rootAxis);\n let nodesQ = [root];\n while (nodesQ.length) {\n const nextNodes: AxisTree[] = [];\n for (const node of nodesQ) {\n node.children = node.axis.parentAxesSpec.map(makeAxisTree);\n nextNodes.push(...node.children);\n }\n nodesQ = nextNodes;\n }\n return root;\n}\n\n/** Get set of canonicalized axisIds from axisTree */\nexport function getSetFromAxisTree(tree: AxisTree): Set<CanonicalizedJson<AxisId>> {\n const set = new Set([canonicalizeJson(getAxisId(tree.axis))]);\n let nodesQ = [tree];\n while (nodesQ.length) {\n const nextNodes = [];\n for (const node of nodesQ) {\n for (const parent of node.children) {\n set.add(canonicalizeJson(getAxisId(parent.axis)));\n nextNodes.push(parent);\n }\n }\n nodesQ = nextNodes;\n }\n return set;\n}\n\n/** Get array of axisSpecs from axisTree */\nexport function getArrayFromAxisTree(tree: AxisTree): AxisSpecNormalized[] {\n const res = [tree.axis];\n let nodesQ = [tree];\n while (nodesQ.length) {\n const nextNodes = [];\n for (const node of nodesQ) {\n for (const parent of node.children) {\n res.push(parent.axis);\n nextNodes.push(parent);\n }\n }\n nodesQ = nextNodes;\n }\n return res;\n}\n\nexport function canonicalizeAxisWithParents(axis: AxisSpecNormalized) {\n return canonicalizeJson(getArrayFromAxisTree(getAxesTree(axis)).map(getAxisId));\n}\n\nfunction normalizingAxesComparator(axis1: AxisSpecNormalized, axis2: AxisSpecNormalized): 1 | -1 | 0 {\n if (axis1.name !== axis2.name) {\n return axis1.name < axis2.name ? 1 : -1;\n }\n if (axis1.type !== axis2.type) {\n return axis1.type < axis2.type ? 1 : -1;\n }\n const domain1 = canonicalizeJson(axis1.domain ?? {});\n const domain2 = canonicalizeJson(axis2.domain ?? {});\n if (domain1 !== domain2) {\n return domain1 < domain2 ? 1 : -1;\n }\n\n const parents1 = canonicalizeAxisWithParents(axis1);\n const parents2 = canonicalizeAxisWithParents(axis2);\n\n if (parents1 !== parents2) {\n return parents1 < parents2 ? 1 : -1;\n }\n\n const annotation1 = canonicalizeJson(axis1.annotations ?? {});\n const annotation2 = canonicalizeJson(axis2.annotations ?? {});\n if (annotation1 !== annotation2) {\n return annotation1 < annotation2 ? 1 : -1;\n }\n return 0;\n}\n\nfunction parseParentsFromAnnotations(axis: AxisSpec) {\n const parentsList = readAnnotationJson(axis, Annotation.Parents);\n if (parentsList === undefined) {\n return [];\n }\n return parentsList;\n}\n\nfunction sortParentsDeep(axisSpec: AxisSpecNormalized) {\n axisSpec.parentAxesSpec.forEach(sortParentsDeep);\n axisSpec.parentAxesSpec.sort(normalizingAxesComparator);\n}\n\nfunction hasCycleOfParents(axisSpec: AxisSpecNormalized) {\n const root = makeAxisTree(axisSpec);\n let nodesQ = [root];\n const ancestors = new Set(canonicalizeJson(getAxisId(axisSpec)));\n while (nodesQ.length) {\n const nextNodes: AxisTree[] = [];\n const levelIds = new Set<CanonicalizedJson<AxisId>>();\n for (const node of nodesQ) {\n node.children = node.axis.parentAxesSpec.map(makeAxisTree);\n for (const child of node.children) {\n const childId = canonicalizeJson(getAxisId(child.axis));\n if (!levelIds.has(childId)) {\n nextNodes.push(child);\n levelIds.add(childId);\n if (ancestors.has(childId)) {\n return true;\n }\n ancestors.add(childId);\n }\n }\n }\n nodesQ = nextNodes;\n }\n return false;\n}\n\n/** Create list of normalized axisSpec (parents are in array of specs, not indexes) */\nexport function getNormalizedAxesList(axes: AxisSpec[]): AxisSpecNormalized[] {\n if (!axes.length) {\n return [];\n }\n const modifiedAxes: AxisSpecNormalized[] = axes.map((axis) => {\n const { parentAxes: _, ...copiedRest } = axis;\n return { ...copiedRest, annotations: { ...copiedRest.annotations }, parentAxesSpec: [] };\n });\n\n axes.forEach((axis, idx) => {\n const modifiedAxis = modifiedAxes[idx];\n if (axis.parentAxes) { // if we have parents by indexes then take from the list\n modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);\n } else { // else try to parse from annotation name\n const parents = parseParentsFromAnnotations(axis).map((name) => modifiedAxes.find((axis) => axis.name === name));\n modifiedAxis.parentAxesSpec = parents.some((p) => p === undefined) ? [] : parents as AxisSpecNormalized[];\n\n delete modifiedAxis.annotations?.[Annotation.Parents];\n }\n });\n\n if (modifiedAxes.some(hasCycleOfParents)) { // Axes list is broken\n modifiedAxes.forEach((axis) => {\n axis.parentAxesSpec = [];\n });\n } else {\n modifiedAxes.forEach((axis) => {\n sortParentsDeep(axis);\n });\n }\n\n return modifiedAxes;\n}\n\n/** Create list of regular axisSpec from normalized (parents are indexes, inside of current axes list) */\nexport function getDenormalizedAxesList(axesSpec: AxisSpecNormalized[]): AxisSpec[] {\n const idsList = axesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));\n return axesSpec.map((axisSpec) => {\n const parentsIds = axisSpec.parentAxesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));\n const parentIdxs = parentsIds.map((id) => idsList.indexOf(id));\n const { parentAxesSpec: _, ...copiedRest } = axisSpec;\n if (parentIdxs.length) {\n return { ...copiedRest, parentAxes: parentIdxs } as AxisSpec;\n }\n return copiedRest;\n });\n}\n\n/** Common type representing spec for all the axes in a column */\nexport type AxesSpec = AxisSpec[];\n\n/// Well-known column names\nexport const PColumnName = {\n Label: 'pl7.app/label',\n Table: {\n RowSelection: 'pl7.app/table/row-selection',\n },\n VDJ: {\n Sequence: 'pl7.app/vdj/sequence',\n },\n} as const;\n\n/// Well-known axis names\nexport const PAxisName = {\n VDJ: {\n Assay: {\n SequenceId: 'pl7.app/vdj/assay/sequenceId',\n },\n ScClonotypeKey: 'pl7.app/vdj/scClonotypeKey',\n },\n} as const;\n\nexport function isLabelColumn(column: PColumnSpec) {\n return column.axesSpec.length === 1 && column.name === PColumnName.Label;\n}\n\n/**\n * Full column specification including all axes specs and specs of the column\n * itself.\n *\n * A PColumn in its essence represents a mapping from a fixed size, explicitly\n * typed tuple to an explicitly typed value.\n *\n * (axis1Value1, axis2Value1, ...) -> columnValue\n *\n * Each element in tuple correspond to the axis having the same index in axesSpec.\n */\nexport type PUniversalColumnSpec = PObjectSpec & {\n /** Defines specific type of BObject, the most generic type of unit of\n * information in Platforma Project. */\n readonly kind: 'PColumn';\n\n /** Type of column values */\n readonly valueType: string;\n\n /** Column name */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** Any additional information attached to the column that does not affect its\n * identifier */\n readonly annotations?: Record<string, string>;\n\n /** A list of zero-based indices of parent axes from the {@link axesSpec} array. */\n readonly parentAxes?: number[];\n\n /** Axes specifications */\n readonly axesSpec: AxesSpec;\n};\n\n/**\n * Specification of a data column.\n *\n * Data column is a specialized type of PColumn that stores only simple values (strings and numbers)\n * addressed by multiple keys. This is in contrast to other PColumn variants that can store more complex\n * values like files or other abstract data types. Data columns are optimized for storing and processing\n * basic tabular data.\n */\nexport type PDataColumnSpec = PUniversalColumnSpec & {\n /** Type of column values */\n readonly valueType: ValueType;\n};\n\n// @todo: change this to PUniversalColumnSpec\nexport type PColumnSpec = PDataColumnSpec;\n\n/** Unique PColumnSpec identifier */\nexport type PColumnSpecId = {\n /** Defines specific type of BObject, the most generic type of unit of\n * information in Platforma Project. */\n readonly kind: 'PColumn';\n\n /** Type of column values */\n readonly valueType: ValueType;\n\n /** Column name */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** A list of zero-based indices of parent axes from the {@link axesSpec} array. */\n readonly parentAxes?: number[];\n\n /** Axes id */\n readonly axesId: AxesId;\n};\n\nexport function getPColumnSpecId(spec: PColumnSpec): PColumnSpecId {\n return {\n kind: spec.kind,\n valueType: spec.valueType,\n name: spec.name,\n domain: spec.domain,\n parentAxes: spec.parentAxes,\n axesId: getAxesId(spec.axesSpec),\n };\n}\n\nexport interface PColumn<Data> extends PObject<Data> {\n /** PColumn spec, allowing it to be found among other PObjects */\n readonly spec: PColumnSpec;\n}\n\nexport type PColumnLazy<T> = PColumn<() => T>;\n\n/** Columns in a PFrame also have internal identifier, this object represents\n * combination of specs and such id */\nexport interface PColumnIdAndSpec {\n /** Internal column id within the PFrame */\n readonly columnId: PObjectId;\n\n /** Column spec */\n readonly spec: PColumnSpec;\n}\n\n/** Get column id and spec from a column */\nexport function getColumnIdAndSpec<Data>(column: PColumn<Data>): PColumnIdAndSpec {\n return {\n columnId: column.id,\n spec: column.spec,\n };\n}\n\n/** Information returned by {@link PFrame.listColumns} method */\nexport interface PColumnInfo extends PColumnIdAndSpec {\n /** True if data was associated with this PColumn */\n readonly hasData: boolean;\n}\n\nexport interface AxisId {\n /** Type of the axis or column value. For an axis should not use non-key\n * types like float or double. */\n readonly type: ValueType;\n\n /** Name of the axis or column */\n readonly name: string;\n\n /** Adds auxiliary information to the axis or column name and type to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n}\n\n/** Array of axis ids */\nexport type AxesId = AxisId[];\n\n/** Extracts axis ids from axis spec */\nexport function getAxisId(spec: AxisSpec): AxisId {\n const { type, name, domain } = spec;\n const result = { type, name };\n if (domain && Object.entries(domain).length > 0) {\n Object.assign(result, { domain });\n }\n return result;\n}\n\n/** Extracts axes ids from axes spec array from column spec */\nexport function getAxesId(spec: AxesSpec): AxesId {\n return spec.map(getAxisId);\n}\n\n/** Canonicalizes axis id */\nexport function canonicalizeAxisId(id: AxisId): CanonicalizedJson<AxisId> {\n return canonicalizeJson(getAxisId(id));\n}\n\n/** Returns true if all domains from query are found in target */\nfunction matchDomain(query?: Record<string, string>, target?: Record<string, string>) {\n if (query === undefined) return target === undefined;\n if (target === undefined) return true;\n for (const k in target) {\n if (query[k] !== target[k]) return false;\n }\n return true;\n}\n\n/** Returns whether \"match\" axis id is compatible with the \"query\" */\nexport function matchAxisId(query: AxisId, target: AxisId): boolean {\n return query.name === target.name && matchDomain(query.domain, target.domain);\n}\n\nexport function getTypeFromPColumnOrAxisSpec(spec: PColumnSpec | AxisSpec): ValueType {\n return 'valueType' in spec ? spec.valueType : spec.type;\n}\n\nexport function isAxisId(id: unknown): id is AxisId {\n return typeof id === 'object' && id !== null && 'name' in id && 'type' in id;\n}\n"],"names":["ensureError","z","canonicalizeJson"],"mappings":"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"}
1
+ {"version":3,"file":"spec.cjs","sources":["../../../../src/drivers/pframe/spec/spec.ts"],"sourcesContent":["import { ensureError } from \"../../../errors\";\nimport { canonicalizeJson, type CanonicalizedJson, type StringifiedJson } from \"../../../json\";\nimport type { PObject, PObjectId, PObjectSpec } from \"../../../pool\";\nimport { z } from \"zod\";\n\nexport const ValueType = {\n Int: \"Int\",\n Long: \"Long\",\n Float: \"Float\",\n Double: \"Double\",\n String: \"String\",\n Bytes: \"Bytes\",\n} as const;\n\nexport type AxisValueType = Extract<ValueType, \"Int\" | \"Long\" | \"String\">;\nexport type ColumnValueType = ValueType;\n\n/** PFrame columns and axes within them may store one of these types. */\nexport type ValueType = (typeof ValueType)[keyof typeof ValueType];\n\nexport type Metadata = Record<string, string>;\n\nexport function readMetadata<U extends Metadata, T extends keyof U = keyof U>(\n metadata: Metadata | undefined,\n key: T,\n): U[T] | undefined {\n return (metadata as U | undefined)?.[key];\n}\n\ntype MetadataJsonImpl<M> = {\n [P in keyof M as M[P] extends StringifiedJson ? P : never]: M[P] extends StringifiedJson<infer U>\n ? z.ZodType<U>\n : never;\n};\nexport type MetadataJson<M> = MetadataJsonImpl<Required<M>>;\n\nexport function readMetadataJsonOrThrow<M extends Metadata, T extends keyof MetadataJson<M>>(\n metadata: Metadata | undefined,\n metadataJson: MetadataJson<M>,\n key: T,\n methodNameInError: string = \"readMetadataJsonOrThrow\",\n): z.infer<MetadataJson<M>[T]> | undefined {\n const json = readMetadata<M, T>(metadata, key);\n if (json === undefined) return undefined;\n\n const schema = metadataJson[key];\n try {\n const value = JSON.parse(json);\n return schema.parse(value);\n } catch (error: unknown) {\n throw new Error(\n `${methodNameInError} failed, ` +\n `key: ${String(key)}, ` +\n `value: ${json}, ` +\n `error: ${ensureError(error)}`,\n );\n }\n}\n\nexport function readMetadataJson<M extends Metadata, T extends keyof MetadataJson<M>>(\n metadata: Metadata | undefined,\n metadataJson: MetadataJson<M>,\n key: T,\n): z.infer<MetadataJson<M>[T]> | undefined {\n try {\n return readMetadataJsonOrThrow(metadata, metadataJson, key);\n } catch {\n return undefined; // treat invalid values as unset\n }\n}\n\n/// Well-known domains\nexport const Domain = {\n Alphabet: \"pl7.app/alphabet\",\n BlockId: \"pl7.app/blockId\",\n VDJ: {\n ScClonotypeChain: {\n Index: \"pl7.app/vdj/scClonotypeChain/index\",\n },\n },\n} as const;\n\nexport type Domain = Metadata &\n Partial<{\n [Domain.Alphabet]: \"nucleotide\" | \"aminoacid\" | (string & {});\n [Domain.BlockId]: string;\n [Domain.VDJ.ScClonotypeChain.Index]: \"primary\" | \"secondary\" | (string & {});\n }>;\n\nexport type DomainJson = MetadataJson<Domain>;\nexport const DomainJson: DomainJson = {};\n\n/// Helper function for reading plain domain values\nexport function readDomain<T extends keyof Domain>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): Domain[T] | undefined {\n return readMetadata<Domain, T>(spec?.domain, key);\n}\n\n/// Helper function for reading json-encoded domain values, throws on JSON parsing error\nexport function readDomainJsonOrThrow<T extends keyof DomainJson>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<DomainJson[T]> | undefined {\n return readMetadataJsonOrThrow<Domain, T>(spec?.domain, DomainJson, key, \"readDomainJsonOrThrow\");\n}\n\n/// Helper function for reading json-encoded domain values, returns undefined on JSON parsing error\nexport function readDomainJson<T extends keyof DomainJson>(\n spec: { domain?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<DomainJson[T]> | undefined {\n return readMetadataJson<Domain, T>(spec?.domain, DomainJson, key);\n}\n\n/// Well-known annotations\nexport const Annotation = {\n AxisNature: \"pl7.app/axisNature\",\n Alphabet: \"pl7.app/alphabet\",\n Description: \"pl7.app/description\",\n DiscreteValues: \"pl7.app/discreteValues\",\n Format: \"pl7.app/format\",\n Graph: {\n Axis: {\n HighCardinality: \"pl7.app/graph/axis/highCardinality\",\n LowerLimit: \"pl7.app/graph/axis/lowerLimit\",\n SymmetricRange: \"pl7.app/graph/axis/symmetricRange\",\n UpperLimit: \"pl7.app/graph/axis/upperLimit\",\n },\n IsDenseAxis: \"pl7.app/graph/isDenseAxis\",\n IsVirtual: \"pl7.app/graph/isVirtual\",\n Palette: \"pl7.app/graph/palette\",\n Thresholds: \"pl7.app/graph/thresholds\",\n TreatAbsentValuesAs: \"pl7.app/graph/treatAbsentValuesAs\",\n },\n HideDataFromUi: \"pl7.app/hideDataFromUi\",\n HideDataFromGraphs: \"pl7.app/hideDataFromGraphs\",\n IsDiscreteFilter: \"pl7.app/isDiscreteFilter\",\n IsLinkerColumn: \"pl7.app/isLinkerColumn\",\n IsSubset: \"pl7.app/isSubset\",\n Label: \"pl7.app/label\",\n Max: \"pl7.app/max\",\n Min: \"pl7.app/min\",\n MultipliesBy: \"pl7.app/multipliesBy\",\n Parents: \"pl7.app/parents\",\n Sequence: {\n Annotation: {\n Mapping: \"pl7.app/sequence/annotation/mapping\",\n },\n IsAnnotation: \"pl7.app/sequence/isAnnotation\",\n },\n Table: {\n FontFamily: \"pl7.app/table/fontFamily\",\n OrderPriority: \"pl7.app/table/orderPriority\",\n Visibility: \"pl7.app/table/visibility\",\n },\n Trace: \"pl7.app/trace\",\n VDJ: {\n IsAssemblingFeature: \"pl7.app/vdj/isAssemblingFeature\",\n },\n} as const;\n\nexport type Annotation = Metadata &\n Partial<{\n [Annotation.Alphabet]: \"nucleotide\" | \"aminoacid\" | (string & {});\n [Annotation.AxisNature]: \"homogeneous\" | \"heterogeneous\" | \"scaleCompatible\" | (string & {});\n [Annotation.Description]: string;\n [Annotation.DiscreteValues]: StringifiedJson<number[]> | StringifiedJson<string[]>;\n [Annotation.Format]: string;\n [Annotation.Graph.Axis.HighCardinality]: StringifiedJson<boolean>;\n [Annotation.Graph.Axis.LowerLimit]: StringifiedJson<number>;\n [Annotation.Graph.Axis.SymmetricRange]: StringifiedJson<boolean>;\n [Annotation.Graph.Axis.UpperLimit]: StringifiedJson<number>;\n [Annotation.Graph.IsDenseAxis]: StringifiedJson<boolean>;\n [Annotation.Graph.IsVirtual]: StringifiedJson<boolean>;\n [Annotation.Graph.Palette]: StringifiedJson<{ mapping: Record<string, number>; name: string }>;\n [Annotation.Graph.Thresholds]: StringifiedJson<\n { columnId: { valueType: ValueType; name: string }; value: number }[]\n >;\n [Annotation.Graph.TreatAbsentValuesAs]: StringifiedJson<number>;\n [Annotation.HideDataFromGraphs]: StringifiedJson<boolean>;\n [Annotation.HideDataFromUi]: StringifiedJson<boolean>;\n [Annotation.IsDiscreteFilter]: StringifiedJson<boolean>;\n [Annotation.IsLinkerColumn]: StringifiedJson<boolean>;\n [Annotation.IsSubset]: StringifiedJson<boolean>;\n [Annotation.Label]: string;\n [Annotation.Max]: StringifiedJson<number>;\n [Annotation.Min]: StringifiedJson<number>;\n [Annotation.MultipliesBy]: StringifiedJson<AxisSpec[\"name\"][]>;\n [Annotation.Parents]: StringifiedJson<AxisSpec[\"name\"][]>;\n [Annotation.Sequence.Annotation.Mapping]: StringifiedJson<Record<string, string>>;\n [Annotation.Sequence.IsAnnotation]: StringifiedJson<boolean>;\n [Annotation.Table.FontFamily]: string;\n [Annotation.Table.OrderPriority]: StringifiedJson<number>;\n [Annotation.Table.Visibility]: \"hidden\" | \"optional\" | (string & {});\n [Annotation.Trace]: StringifiedJson<Record<string, unknown>>;\n [Annotation.VDJ.IsAssemblingFeature]: StringifiedJson<boolean>;\n }>;\n\n// export const AxisSpec = z.object({\n// type: z.nativeEnum(ValueType),\n// name: z.string(),\n// domain: z.record(z.string(), z.string()).optional(),\n// annotations: z.record(z.string(), z.string()).optional(),\n// parentAxes: z.array(z.number()).optional(),\n// }).passthrough();\n//\n// type Expect<T extends true> = T;\n// type Equal<X, Y> =\n// (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n//\n// type _test = Expect<Equal<\n// Readonly<z.infer<typeof AxisSpec>>,\n// Readonly<AxisSpec & Record<string, unknown>>\n// >>;\n\nexport type AnnotationJson = MetadataJson<Annotation>;\n\nconst ValueTypeSchema = z.enum([\"Int\", \"Long\", \"Float\", \"Double\", \"String\"] as const);\nexport const AnnotationJson: AnnotationJson = {\n [Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),\n [Annotation.Graph.Axis.HighCardinality]: z.boolean(),\n [Annotation.Graph.Axis.LowerLimit]: z.number(),\n [Annotation.Graph.Axis.UpperLimit]: z.number(),\n [Annotation.Graph.Axis.SymmetricRange]: z.boolean(),\n [Annotation.Graph.IsDenseAxis]: z.boolean(),\n [Annotation.Graph.Palette]: z.object({ mapping: z.record(z.number()), name: z.string() }),\n [Annotation.Graph.Thresholds]: z.array(\n z.object({\n columnId: z.object({ valueType: ValueTypeSchema, name: z.string() }),\n value: z.number(),\n }),\n ),\n [Annotation.Graph.TreatAbsentValuesAs]: z.number(),\n [Annotation.Graph.IsVirtual]: z.boolean(),\n [Annotation.HideDataFromUi]: z.boolean(),\n [Annotation.HideDataFromGraphs]: z.boolean(),\n [Annotation.IsDiscreteFilter]: z.boolean(),\n [Annotation.IsLinkerColumn]: z.boolean(),\n [Annotation.IsSubset]: z.boolean(),\n [Annotation.Max]: z.number(),\n [Annotation.Min]: z.number(),\n [Annotation.MultipliesBy]: z.array(z.string()),\n [Annotation.Parents]: z.array(z.string()),\n [Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),\n [Annotation.Sequence.IsAnnotation]: z.boolean(),\n [Annotation.Table.OrderPriority]: z.number(),\n [Annotation.Trace]: z.record(z.string(), z.unknown()),\n [Annotation.VDJ.IsAssemblingFeature]: z.boolean(),\n};\n\n/// Helper function for reading plain annotation values\nexport function readAnnotation<T extends keyof Annotation>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): Annotation[T] | undefined {\n return readMetadata<Annotation, T>(spec?.annotations, key);\n}\n\n/// Helper function for reading json-encoded annotation values, throws on JSON parsing error\nexport function readAnnotationJsonOrThrow<T extends keyof AnnotationJson>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<AnnotationJson[T]> | undefined {\n return readMetadataJsonOrThrow<Annotation, T>(\n spec?.annotations,\n AnnotationJson,\n key,\n \"readAnnotationJsonOrThrow\",\n );\n}\n\n/// Helper function for reading json-encoded annotation values, returns undefined on JSON parsing error\nexport function readAnnotationJson<T extends keyof AnnotationJson>(\n spec: { annotations?: Metadata | undefined } | undefined,\n key: T,\n): z.infer<AnnotationJson[T]> | undefined {\n return readMetadataJson<Annotation, T>(spec?.annotations, AnnotationJson, key);\n}\n\nexport function isLinkerColumn(column: PColumnSpec): boolean {\n return !!readAnnotationJson(column, Annotation.IsLinkerColumn);\n}\n\n/**\n * Specification of an individual axis.\n *\n * Each axis is a part of a composite key that addresses data inside the PColumn.\n *\n * Each record inside a PColumn is addressed by a unique tuple of values set for\n * all the axes specified in the column spec.\n */\nexport type AxisSpec = {\n /** Type of the axis value. Should not use non-key types like float or double. */\n readonly type: ValueType;\n\n /** Name of the axis */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** Any additional information attached to the axis that does not affect its\n * identifier */\n readonly annotations?: Record<string, string>;\n\n /**\n * Parent axes provide contextual grouping for the axis in question, establishing\n * a hierarchy where the current axis is dependent on one or more axes for its\n * full definition and meaning. For instance, in a data structure where each\n * \"container\" axis may contain multiple \"item\" axes, the `item` axis would\n * list the index of the `container` axis in this field to denote its dependency.\n *\n * This means that the identity or significance of the `item` axis is only\n * interpretable when combined with its parent `container` axis. An `item` axis\n * index by itself may be non-unique and only gains uniqueness within the context\n * of its parent `container`. Therefore, the `parentAxes` field is essential for\n * mapping these relationships and ensuring data coherence across nested or\n * multi-level data models.\n *\n * A list of zero-based indices of parent axes in the overall axes specification\n * from the column spec. Each index corresponds to the position of a parent axis\n * in the list that defines the structure of the data model.\n */\n readonly parentAxes?: number[];\n};\n\n/** Parents are specs, not indexes; normalized axis can be used considering its parents independently from column */\nexport interface AxisSpecNormalized extends Omit<AxisSpec, \"parentAxes\"> {\n parentAxesSpec: AxisSpecNormalized[];\n}\n\n/** Tree: axis is a root, its parents are children */\nexport type AxisTree = {\n axis: AxisSpecNormalized;\n children: AxisTree[]; // parents\n};\n\nfunction makeAxisTree(axis: AxisSpecNormalized): AxisTree {\n return { axis, children: [] };\n}\n\n/** Build tree by axis parents annotations */\nexport function getAxesTree(rootAxis: AxisSpecNormalized): AxisTree {\n const root = makeAxisTree(rootAxis);\n let nodesQ = [root];\n while (nodesQ.length) {\n const nextNodes: AxisTree[] = [];\n for (const node of nodesQ) {\n node.children = node.axis.parentAxesSpec.map(makeAxisTree);\n nextNodes.push(...node.children);\n }\n nodesQ = nextNodes;\n }\n return root;\n}\n\n/** Get set of canonicalized axisIds from axisTree */\nexport function getSetFromAxisTree(tree: AxisTree): Set<CanonicalizedJson<AxisId>> {\n const set = new Set([canonicalizeJson(getAxisId(tree.axis))]);\n let nodesQ = [tree];\n while (nodesQ.length) {\n const nextNodes = [];\n for (const node of nodesQ) {\n for (const parent of node.children) {\n set.add(canonicalizeJson(getAxisId(parent.axis)));\n nextNodes.push(parent);\n }\n }\n nodesQ = nextNodes;\n }\n return set;\n}\n\n/** Get array of axisSpecs from axisTree */\nexport function getArrayFromAxisTree(tree: AxisTree): AxisSpecNormalized[] {\n const res = [tree.axis];\n let nodesQ = [tree];\n while (nodesQ.length) {\n const nextNodes = [];\n for (const node of nodesQ) {\n for (const parent of node.children) {\n res.push(parent.axis);\n nextNodes.push(parent);\n }\n }\n nodesQ = nextNodes;\n }\n return res;\n}\n\nexport function canonicalizeAxisWithParents(axis: AxisSpecNormalized) {\n return canonicalizeJson(getArrayFromAxisTree(getAxesTree(axis)).map(getAxisId));\n}\n\nfunction normalizingAxesComparator(\n axis1: AxisSpecNormalized,\n axis2: AxisSpecNormalized,\n): 1 | -1 | 0 {\n if (axis1.name !== axis2.name) {\n return axis1.name < axis2.name ? 1 : -1;\n }\n if (axis1.type !== axis2.type) {\n return axis1.type < axis2.type ? 1 : -1;\n }\n const domain1 = canonicalizeJson(axis1.domain ?? {});\n const domain2 = canonicalizeJson(axis2.domain ?? {});\n if (domain1 !== domain2) {\n return domain1 < domain2 ? 1 : -1;\n }\n\n const parents1 = canonicalizeAxisWithParents(axis1);\n const parents2 = canonicalizeAxisWithParents(axis2);\n\n if (parents1 !== parents2) {\n return parents1 < parents2 ? 1 : -1;\n }\n\n const annotation1 = canonicalizeJson(axis1.annotations ?? {});\n const annotation2 = canonicalizeJson(axis2.annotations ?? {});\n if (annotation1 !== annotation2) {\n return annotation1 < annotation2 ? 1 : -1;\n }\n return 0;\n}\n\nfunction parseParentsFromAnnotations(axis: AxisSpec) {\n const parentsList = readAnnotationJson(axis, Annotation.Parents);\n if (parentsList === undefined) {\n return [];\n }\n return parentsList;\n}\n\nfunction sortParentsDeep(axisSpec: AxisSpecNormalized) {\n axisSpec.parentAxesSpec.forEach(sortParentsDeep);\n axisSpec.parentAxesSpec.sort(normalizingAxesComparator);\n}\n\nfunction hasCycleOfParents(axisSpec: AxisSpecNormalized) {\n const root = makeAxisTree(axisSpec);\n let nodesQ = [root];\n const ancestors = new Set(canonicalizeJson(getAxisId(axisSpec)));\n while (nodesQ.length) {\n const nextNodes: AxisTree[] = [];\n const levelIds = new Set<CanonicalizedJson<AxisId>>();\n for (const node of nodesQ) {\n node.children = node.axis.parentAxesSpec.map(makeAxisTree);\n for (const child of node.children) {\n const childId = canonicalizeJson(getAxisId(child.axis));\n if (!levelIds.has(childId)) {\n nextNodes.push(child);\n levelIds.add(childId);\n if (ancestors.has(childId)) {\n return true;\n }\n ancestors.add(childId);\n }\n }\n }\n nodesQ = nextNodes;\n }\n return false;\n}\n\n/** Create list of normalized axisSpec (parents are in array of specs, not indexes) */\nexport function getNormalizedAxesList(axes: AxisSpec[]): AxisSpecNormalized[] {\n if (!axes.length) {\n return [];\n }\n const modifiedAxes: AxisSpecNormalized[] = axes.map((axis) => {\n const { parentAxes: _, ...copiedRest } = axis;\n return { ...copiedRest, annotations: { ...copiedRest.annotations }, parentAxesSpec: [] };\n });\n\n axes.forEach((axis, idx) => {\n const modifiedAxis = modifiedAxes[idx];\n if (axis.parentAxes) {\n // if we have parents by indexes then take from the list\n modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);\n } else {\n // else try to parse from annotation name\n const parents = parseParentsFromAnnotations(axis).map((name) =>\n modifiedAxes.find((axis) => axis.name === name),\n );\n modifiedAxis.parentAxesSpec = parents.some((p) => p === undefined)\n ? []\n : (parents as AxisSpecNormalized[]);\n\n delete modifiedAxis.annotations?.[Annotation.Parents];\n }\n });\n\n if (modifiedAxes.some(hasCycleOfParents)) {\n // Axes list is broken\n modifiedAxes.forEach((axis) => {\n axis.parentAxesSpec = [];\n });\n } else {\n modifiedAxes.forEach((axis) => {\n sortParentsDeep(axis);\n });\n }\n\n return modifiedAxes;\n}\n\n/** Create list of regular axisSpec from normalized (parents are indexes, inside of current axes list) */\nexport function getDenormalizedAxesList(axesSpec: AxisSpecNormalized[]): AxisSpec[] {\n const idsList = axesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));\n return axesSpec.map((axisSpec) => {\n const parentsIds = axisSpec.parentAxesSpec.map((axisSpec) =>\n canonicalizeJson(getAxisId(axisSpec)),\n );\n const parentIdxs = parentsIds.map((id) => idsList.indexOf(id));\n const { parentAxesSpec: _, ...copiedRest } = axisSpec;\n if (parentIdxs.length) {\n return { ...copiedRest, parentAxes: parentIdxs } as AxisSpec;\n }\n return copiedRest;\n });\n}\n\n/** Common type representing spec for all the axes in a column */\nexport type AxesSpec = AxisSpec[];\n\n/// Well-known column names\nexport const PColumnName = {\n Label: \"pl7.app/label\",\n Table: {\n RowSelection: \"pl7.app/table/row-selection\",\n },\n VDJ: {\n Sequence: \"pl7.app/vdj/sequence\",\n },\n} as const;\n\n/// Well-known axis names\nexport const PAxisName = {\n VDJ: {\n Assay: {\n SequenceId: \"pl7.app/vdj/assay/sequenceId\",\n },\n ScClonotypeKey: \"pl7.app/vdj/scClonotypeKey\",\n },\n} as const;\n\nexport function isLabelColumn(column: PColumnSpec) {\n return column.axesSpec.length === 1 && column.name === PColumnName.Label;\n}\n\n/**\n * Full column specification including all axes specs and specs of the column\n * itself.\n *\n * A PColumn in its essence represents a mapping from a fixed size, explicitly\n * typed tuple to an explicitly typed value.\n *\n * (axis1Value1, axis2Value1, ...) -> columnValue\n *\n * Each element in tuple correspond to the axis having the same index in axesSpec.\n */\nexport type PUniversalColumnSpec = PObjectSpec & {\n /** Defines specific type of BObject, the most generic type of unit of\n * information in Platforma Project. */\n readonly kind: \"PColumn\";\n\n /** Type of column values */\n readonly valueType: string;\n\n /** Column name */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** Any additional information attached to the column that does not affect its\n * identifier */\n readonly annotations?: Record<string, string>;\n\n /** A list of zero-based indices of parent axes from the {@link axesSpec} array. */\n readonly parentAxes?: number[];\n\n /** Axes specifications */\n readonly axesSpec: AxesSpec;\n};\n\n/**\n * Specification of a data column.\n *\n * Data column is a specialized type of PColumn that stores only simple values (strings and numbers)\n * addressed by multiple keys. This is in contrast to other PColumn variants that can store more complex\n * values like files or other abstract data types. Data columns are optimized for storing and processing\n * basic tabular data.\n */\nexport type PDataColumnSpec = PUniversalColumnSpec & {\n /** Type of column values */\n readonly valueType: ValueType;\n};\n\n// @todo: change this to PUniversalColumnSpec\nexport type PColumnSpec = PDataColumnSpec;\n\n/** Unique PColumnSpec identifier */\nexport type PColumnSpecId = {\n /** Defines specific type of BObject, the most generic type of unit of\n * information in Platforma Project. */\n readonly kind: \"PColumn\";\n\n /** Type of column values */\n readonly valueType: ValueType;\n\n /** Column name */\n readonly name: string;\n\n /** Adds auxiliary information to the axis name, type and parents to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n\n /** A list of zero-based indices of parent axes from the {@link axesSpec} array. */\n readonly parentAxes?: number[];\n\n /** Axes id */\n readonly axesId: AxesId;\n};\n\nexport function getPColumnSpecId(spec: PColumnSpec): PColumnSpecId {\n return {\n kind: spec.kind,\n valueType: spec.valueType,\n name: spec.name,\n domain: spec.domain,\n parentAxes: spec.parentAxes,\n axesId: getAxesId(spec.axesSpec),\n };\n}\n\nexport interface PColumn<Data> extends PObject<Data> {\n /** PColumn spec, allowing it to be found among other PObjects */\n readonly spec: PColumnSpec;\n}\n\nexport type PColumnLazy<T> = PColumn<() => T>;\n\n/** Columns in a PFrame also have internal identifier, this object represents\n * combination of specs and such id */\nexport interface PColumnIdAndSpec {\n /** Internal column id within the PFrame */\n readonly columnId: PObjectId;\n\n /** Column spec */\n readonly spec: PColumnSpec;\n}\n\n/** Get column id and spec from a column */\nexport function getColumnIdAndSpec<Data>(column: PColumn<Data>): PColumnIdAndSpec {\n return {\n columnId: column.id,\n spec: column.spec,\n };\n}\n\n/** Information returned by {@link PFrame.listColumns} method */\nexport interface PColumnInfo extends PColumnIdAndSpec {\n /** True if data was associated with this PColumn */\n readonly hasData: boolean;\n}\n\nexport interface AxisId {\n /** Type of the axis or column value. For an axis should not use non-key\n * types like float or double. */\n readonly type: ValueType;\n\n /** Name of the axis or column */\n readonly name: string;\n\n /** Adds auxiliary information to the axis or column name and type to form a\n * unique identifier */\n readonly domain?: Record<string, string>;\n}\n\n/** Array of axis ids */\nexport type AxesId = AxisId[];\n\n/** Extracts axis ids from axis spec */\nexport function getAxisId(spec: AxisSpec): AxisId {\n const { type, name, domain } = spec;\n const result = { type, name };\n if (domain && Object.entries(domain).length > 0) {\n Object.assign(result, { domain });\n }\n return result;\n}\n\n/** Extracts axes ids from axes spec array from column spec */\nexport function getAxesId(spec: AxesSpec): AxesId {\n return spec.map(getAxisId);\n}\n\n/** Canonicalizes axis id */\nexport function canonicalizeAxisId(id: AxisId): CanonicalizedJson<AxisId> {\n return canonicalizeJson(getAxisId(id));\n}\n\n/** Returns true if all domains from query are found in target */\nfunction matchDomain(query?: Record<string, string>, target?: Record<string, string>) {\n if (query === undefined) return target === undefined;\n if (target === undefined) return true;\n for (const k in target) {\n if (query[k] !== target[k]) return false;\n }\n return true;\n}\n\n/** Returns whether \"match\" axis id is compatible with the \"query\" */\nexport function matchAxisId(query: AxisId, target: AxisId): boolean {\n return query.name === target.name && matchDomain(query.domain, target.domain);\n}\n\nexport function getTypeFromPColumnOrAxisSpec(spec: PColumnSpec | AxisSpec): ValueType {\n return \"valueType\" in spec ? spec.valueType : spec.type;\n}\n\nexport function isAxisId(id: unknown): id is AxisId {\n return typeof id === \"object\" && id !== null && \"name\" in id && \"type\" in id;\n}\n"],"names":["ensureError","z","canonicalizeJson"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type CanonicalizedJson, type StringifiedJson } from '../../../json';
2
- import type { PObject, PObjectId, PObjectSpec } from '../../../pool';
3
- import { z } from 'zod';
1
+ import { type CanonicalizedJson, type StringifiedJson } from "../../../json";
2
+ import type { PObject, PObjectId, PObjectSpec } from "../../../pool";
3
+ import { z } from "zod";
4
4
  export declare const ValueType: {
5
5
  readonly Int: "Int";
6
6
  readonly Long: "Long";
@@ -9,14 +9,14 @@ export declare const ValueType: {
9
9
  readonly String: "String";
10
10
  readonly Bytes: "Bytes";
11
11
  };
12
- export type AxisValueType = Extract<ValueType, 'Int' | 'Long' | 'String'>;
12
+ export type AxisValueType = Extract<ValueType, "Int" | "Long" | "String">;
13
13
  export type ColumnValueType = ValueType;
14
14
  /** PFrame columns and axes within them may store one of these types. */
15
15
  export type ValueType = (typeof ValueType)[keyof typeof ValueType];
16
16
  export type Metadata = Record<string, string>;
17
17
  export declare function readMetadata<U extends Metadata, T extends keyof U = keyof U>(metadata: Metadata | undefined, key: T): U[T] | undefined;
18
18
  type MetadataJsonImpl<M> = {
19
- [P in keyof M as (M[P] extends StringifiedJson ? P : never)]: M[P] extends StringifiedJson<infer U> ? z.ZodType<U> : never;
19
+ [P in keyof M as M[P] extends StringifiedJson ? P : never]: M[P] extends StringifiedJson<infer U> ? z.ZodType<U> : never;
20
20
  };
21
21
  export type MetadataJson<M> = MetadataJsonImpl<Required<M>>;
22
22
  export declare function readMetadataJsonOrThrow<M extends Metadata, T extends keyof MetadataJson<M>>(metadata: Metadata | undefined, metadataJson: MetadataJson<M>, key: T, methodNameInError?: string): z.infer<MetadataJson<M>[T]> | undefined;
@@ -31,9 +31,9 @@ export declare const Domain: {
31
31
  };
32
32
  };
33
33
  export type Domain = Metadata & Partial<{
34
- [Domain.Alphabet]: 'nucleotide' | 'aminoacid' | (string & {});
34
+ [Domain.Alphabet]: "nucleotide" | "aminoacid" | (string & {});
35
35
  [Domain.BlockId]: string;
36
- [Domain.VDJ.ScClonotypeChain.Index]: 'primary' | 'secondary' | (string & {});
36
+ [Domain.VDJ.ScClonotypeChain.Index]: "primary" | "secondary" | (string & {});
37
37
  }>;
38
38
  export type DomainJson = MetadataJson<Domain>;
39
39
  export declare const DomainJson: DomainJson;
@@ -92,8 +92,8 @@ export declare const Annotation: {
92
92
  };
93
93
  };
94
94
  export type Annotation = Metadata & Partial<{
95
- [Annotation.Alphabet]: 'nucleotide' | 'aminoacid' | (string & {});
96
- [Annotation.AxisNature]: 'homogeneous' | 'heterogeneous' | 'scaleCompatible' | (string & {});
95
+ [Annotation.Alphabet]: "nucleotide" | "aminoacid" | (string & {});
96
+ [Annotation.AxisNature]: "homogeneous" | "heterogeneous" | "scaleCompatible" | (string & {});
97
97
  [Annotation.Description]: string;
98
98
  [Annotation.DiscreteValues]: StringifiedJson<number[]> | StringifiedJson<string[]>;
99
99
  [Annotation.Format]: string;
@@ -123,13 +123,13 @@ export type Annotation = Metadata & Partial<{
123
123
  [Annotation.Label]: string;
124
124
  [Annotation.Max]: StringifiedJson<number>;
125
125
  [Annotation.Min]: StringifiedJson<number>;
126
- [Annotation.MultipliesBy]: StringifiedJson<AxisSpec['name'][]>;
127
- [Annotation.Parents]: StringifiedJson<AxisSpec['name'][]>;
126
+ [Annotation.MultipliesBy]: StringifiedJson<AxisSpec["name"][]>;
127
+ [Annotation.Parents]: StringifiedJson<AxisSpec["name"][]>;
128
128
  [Annotation.Sequence.Annotation.Mapping]: StringifiedJson<Record<string, string>>;
129
129
  [Annotation.Sequence.IsAnnotation]: StringifiedJson<boolean>;
130
130
  [Annotation.Table.FontFamily]: string;
131
131
  [Annotation.Table.OrderPriority]: StringifiedJson<number>;
132
- [Annotation.Table.Visibility]: 'hidden' | 'optional' | (string & {});
132
+ [Annotation.Table.Visibility]: "hidden" | "optional" | (string & {});
133
133
  [Annotation.Trace]: StringifiedJson<Record<string, unknown>>;
134
134
  [Annotation.VDJ.IsAssemblingFeature]: StringifiedJson<boolean>;
135
135
  }>;
@@ -185,7 +185,7 @@ export type AxisSpec = {
185
185
  readonly parentAxes?: number[];
186
186
  };
187
187
  /** Parents are specs, not indexes; normalized axis can be used considering its parents independently from column */
188
- export interface AxisSpecNormalized extends Omit<AxisSpec, 'parentAxes'> {
188
+ export interface AxisSpecNormalized extends Omit<AxisSpec, "parentAxes"> {
189
189
  parentAxesSpec: AxisSpecNormalized[];
190
190
  }
191
191
  /** Tree: axis is a root, its parents are children */
@@ -240,7 +240,7 @@ export declare function isLabelColumn(column: PColumnSpec): boolean;
240
240
  export type PUniversalColumnSpec = PObjectSpec & {
241
241
  /** Defines specific type of BObject, the most generic type of unit of
242
242
  * information in Platforma Project. */
243
- readonly kind: 'PColumn';
243
+ readonly kind: "PColumn";
244
244
  /** Type of column values */
245
245
  readonly valueType: string;
246
246
  /** Column name */
@@ -273,7 +273,7 @@ export type PColumnSpec = PDataColumnSpec;
273
273
  export type PColumnSpecId = {
274
274
  /** Defines specific type of BObject, the most generic type of unit of
275
275
  * information in Platforma Project. */
276
- readonly kind: 'PColumn';
276
+ readonly kind: "PColumn";
277
277
  /** Type of column values */
278
278
  readonly valueType: ValueType;
279
279
  /** Column name */
@@ -1 +1 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../src/drivers/pframe/spec/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../../src/drivers/pframe/spec/spec.ts"],"names":[],"mappings":"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"}