@itwin/presentation-shared 2.0.0-alpha.11 → 2.0.0-alpha.13

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 (212) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/README.md +19 -34
  3. package/lib/{esm/presentation-shared.d.ts → presentation-shared.d.ts} +7 -5
  4. package/lib/presentation-shared.d.ts.map +1 -0
  5. package/lib/{esm/presentation-shared.js → presentation-shared.js} +6 -2
  6. package/lib/presentation-shared.js.map +1 -0
  7. package/lib/shared/ConcatenatedValue.d.ts.map +1 -0
  8. package/lib/shared/ConcatenatedValue.js.map +1 -0
  9. package/lib/{cjs/shared → shared}/ECSqlCore.d.ts +9 -0
  10. package/lib/shared/ECSqlCore.d.ts.map +1 -0
  11. package/lib/shared/ECSqlCore.js +37 -0
  12. package/lib/shared/ECSqlCore.js.map +1 -0
  13. package/lib/shared/EachValueFrom.d.ts +30 -0
  14. package/lib/shared/EachValueFrom.d.ts.map +1 -0
  15. package/lib/shared/EachValueFrom.js +115 -0
  16. package/lib/shared/EachValueFrom.js.map +1 -0
  17. package/lib/shared/Event.d.ts.map +1 -0
  18. package/lib/{esm/shared → shared}/Event.js.map +1 -1
  19. package/lib/shared/Formatting.d.ts.map +1 -0
  20. package/lib/shared/Formatting.js.map +1 -0
  21. package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.d.ts +1 -1
  22. package/lib/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  23. package/lib/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  24. package/lib/shared/Logging.d.ts.map +1 -0
  25. package/lib/shared/Logging.js.map +1 -0
  26. package/lib/shared/MappedTypes.d.ts +48 -0
  27. package/lib/shared/MappedTypes.d.ts.map +1 -0
  28. package/lib/shared/MappedTypes.js.map +1 -0
  29. package/lib/{cjs/shared → shared}/Metadata.d.ts +53 -44
  30. package/lib/shared/Metadata.d.ts.map +1 -0
  31. package/lib/{esm/shared → shared}/Metadata.js +7 -6
  32. package/lib/shared/Metadata.js.map +1 -0
  33. package/lib/{cjs/shared → shared}/Utils.d.ts +0 -6
  34. package/lib/shared/Utils.d.ts.map +1 -0
  35. package/lib/{esm/shared → shared}/Utils.js +0 -15
  36. package/lib/shared/Utils.js.map +1 -0
  37. package/lib/{esm/shared → shared}/Values.d.ts +23 -13
  38. package/lib/shared/Values.d.ts.map +1 -0
  39. package/lib/shared/Values.js +121 -0
  40. package/lib/shared/Values.js.map +1 -0
  41. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +174 -0
  42. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  43. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js +177 -0
  44. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  45. package/lib/{cjs/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +3 -3
  46. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  47. package/lib/{esm/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.js +3 -3
  48. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  49. package/lib/{cjs/shared → shared}/ecsql-snippets/index.d.ts +1 -1
  50. package/lib/shared/ecsql-snippets/index.d.ts.map +1 -0
  51. package/lib/{esm/shared → shared}/ecsql-snippets/index.js +1 -1
  52. package/lib/shared/ecsql-snippets/index.js.map +1 -0
  53. package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +2 -2
  54. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  55. package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +1 -4
  56. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  57. package/lib/{cjs/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +3 -3
  58. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  59. package/lib/{esm/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +3 -3
  60. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  61. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  62. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  63. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  64. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  65. package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +2 -2
  66. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  67. package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +4 -5
  68. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  69. package/lib/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  70. package/lib/shared/instance-label-factory-impls/Utils.js.map +1 -0
  71. package/package.json +16 -17
  72. package/lib/cjs/package.json +0 -1
  73. package/lib/cjs/presentation-shared.d.ts +0 -21
  74. package/lib/cjs/presentation-shared.d.ts.map +0 -1
  75. package/lib/cjs/presentation-shared.js +0 -75
  76. package/lib/cjs/presentation-shared.js.map +0 -1
  77. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +0 -1
  78. package/lib/cjs/shared/ConcatenatedValue.js +0 -49
  79. package/lib/cjs/shared/ConcatenatedValue.js.map +0 -1
  80. package/lib/cjs/shared/ECSqlCore.d.ts.map +0 -1
  81. package/lib/cjs/shared/ECSqlCore.js +0 -7
  82. package/lib/cjs/shared/ECSqlCore.js.map +0 -1
  83. package/lib/cjs/shared/Event.d.ts.map +0 -1
  84. package/lib/cjs/shared/Event.js +0 -7
  85. package/lib/cjs/shared/Event.js.map +0 -1
  86. package/lib/cjs/shared/Formatting.d.ts.map +0 -1
  87. package/lib/cjs/shared/Formatting.js +0 -118
  88. package/lib/cjs/shared/Formatting.js.map +0 -1
  89. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +0 -73
  90. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  91. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -30
  92. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  93. package/lib/cjs/shared/Logging.d.ts.map +0 -1
  94. package/lib/cjs/shared/Logging.js +0 -21
  95. package/lib/cjs/shared/Logging.js.map +0 -1
  96. package/lib/cjs/shared/MappedTypes.d.ts +0 -17
  97. package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
  98. package/lib/cjs/shared/MappedTypes.js +0 -7
  99. package/lib/cjs/shared/MappedTypes.js.map +0 -1
  100. package/lib/cjs/shared/Metadata.d.ts.map +0 -1
  101. package/lib/cjs/shared/Metadata.js +0 -56
  102. package/lib/cjs/shared/Metadata.js.map +0 -1
  103. package/lib/cjs/shared/Utils.d.ts.map +0 -1
  104. package/lib/cjs/shared/Utils.js +0 -123
  105. package/lib/cjs/shared/Utils.js.map +0 -1
  106. package/lib/cjs/shared/Values.d.ts +0 -121
  107. package/lib/cjs/shared/Values.d.ts.map +0 -1
  108. package/lib/cjs/shared/Values.js +0 -118
  109. package/lib/cjs/shared/Values.js.map +0 -1
  110. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
  111. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  112. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -171
  113. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  114. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  115. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -275
  116. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  117. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
  118. package/lib/cjs/shared/ecsql-snippets/index.js +0 -19
  119. package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
  120. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +0 -17
  121. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  122. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +0 -54
  123. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  124. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  125. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +0 -63
  126. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  127. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  128. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -40
  129. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  130. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  131. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -10
  132. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  133. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  134. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +0 -336
  135. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  136. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  137. package/lib/cjs/shared/instance-label-factory-impls/Utils.js +0 -26
  138. package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +0 -1
  139. package/lib/esm/presentation-shared.d.ts.map +0 -1
  140. package/lib/esm/presentation-shared.js.map +0 -1
  141. package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
  142. package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
  143. package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
  144. package/lib/esm/shared/ECSqlCore.d.ts +0 -99
  145. package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
  146. package/lib/esm/shared/ECSqlCore.js +0 -6
  147. package/lib/esm/shared/ECSqlCore.js.map +0 -1
  148. package/lib/esm/shared/Event.d.ts +0 -27
  149. package/lib/esm/shared/Event.d.ts.map +0 -1
  150. package/lib/esm/shared/Formatting.d.ts +0 -44
  151. package/lib/esm/shared/Formatting.d.ts.map +0 -1
  152. package/lib/esm/shared/Formatting.js.map +0 -1
  153. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  154. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  155. package/lib/esm/shared/Logging.d.ts +0 -27
  156. package/lib/esm/shared/Logging.d.ts.map +0 -1
  157. package/lib/esm/shared/Logging.js.map +0 -1
  158. package/lib/esm/shared/MappedTypes.d.ts +0 -17
  159. package/lib/esm/shared/MappedTypes.d.ts.map +0 -1
  160. package/lib/esm/shared/MappedTypes.js.map +0 -1
  161. package/lib/esm/shared/Metadata.d.ts +0 -505
  162. package/lib/esm/shared/Metadata.d.ts.map +0 -1
  163. package/lib/esm/shared/Metadata.js.map +0 -1
  164. package/lib/esm/shared/Utils.d.ts +0 -66
  165. package/lib/esm/shared/Utils.d.ts.map +0 -1
  166. package/lib/esm/shared/Utils.js.map +0 -1
  167. package/lib/esm/shared/Values.d.ts.map +0 -1
  168. package/lib/esm/shared/Values.js +0 -115
  169. package/lib/esm/shared/Values.js.map +0 -1
  170. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
  171. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  172. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -168
  173. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  174. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +0 -130
  175. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  176. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  177. package/lib/esm/shared/ecsql-snippets/index.d.ts +0 -3
  178. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +0 -1
  179. package/lib/esm/shared/ecsql-snippets/index.js.map +0 -1
  180. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  181. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  182. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +0 -39
  183. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  184. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  185. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -12
  186. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  187. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  188. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -198
  189. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  190. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  191. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +0 -34
  192. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  193. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  194. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +0 -7
  195. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  196. package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +0 -1
  197. /package/lib/{cjs/shared → shared}/ConcatenatedValue.d.ts +0 -0
  198. /package/lib/{esm/shared → shared}/ConcatenatedValue.js +0 -0
  199. /package/lib/{cjs/shared → shared}/Event.d.ts +0 -0
  200. /package/lib/{esm/shared → shared}/Event.js +0 -0
  201. /package/lib/{cjs/shared → shared}/Formatting.d.ts +0 -0
  202. /package/lib/{esm/shared → shared}/Formatting.js +0 -0
  203. /package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.js +0 -0
  204. /package/lib/{cjs/shared → shared}/Logging.d.ts +0 -0
  205. /package/lib/{esm/shared → shared}/Logging.js +0 -0
  206. /package/lib/{esm/shared → shared}/MappedTypes.js +0 -0
  207. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -0
  208. /package/lib/{esm/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -0
  209. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -0
  210. /package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -0
  211. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/Utils.d.ts +0 -0
  212. /package/lib/{esm/shared → shared}/instance-label-factory-impls/Utils.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logging.d.ts","sourceRoot":"","sources":["../../src/shared/Logging.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1D,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,OAMzB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../src/shared/Logging.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA0BhG;;;GAGG;AACH,qBAAqB;AACrB,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;IACtB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC;AACF,oBAAoB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * An utility `Omit` type which works with union types.
3
+ * @public
4
+ */
5
+ export type OmitOverUnion<T, K extends PropertyKey> = T extends T ? Omit<T, K> : never;
6
+ /**
7
+ * An utility generic type to get array element's type.
8
+ * @public
9
+ */
10
+ export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
11
+ /**
12
+ * Extracts the union of parameter tuples from a function type, including all of its
13
+ * overload signatures.
14
+ *
15
+ * `Parameters` from the standard library only ever reflects the last overload signature,
16
+ * so this helper matches against up to four call signatures to recover the full set.
17
+ * @public
18
+ */
19
+ type OverloadParameters<TFunc> = TFunc extends {
20
+ (...args: infer A1): any;
21
+ (...args: infer A2): any;
22
+ (...args: infer A3): any;
23
+ (...args: infer A4): any;
24
+ } ? A1 | A2 | A3 | A4 : TFunc extends {
25
+ (...args: infer A1): any;
26
+ (...args: infer A2): any;
27
+ (...args: infer A3): any;
28
+ } ? A1 | A2 | A3 : TFunc extends {
29
+ (...args: infer A1): any;
30
+ (...args: infer A2): any;
31
+ } ? A1 | A2 : TFunc extends (...args: infer A1) => any ? A1 : never;
32
+ /**
33
+ * Maps a single parameter tuple to the type of its lone object argument, preserving
34
+ * `undefined` when the argument is optional.
35
+ * @public
36
+ */
37
+ type PropsFromParameters<TParams> = TParams extends [infer TProps] ? Exclude<TProps, undefined> extends object ? TProps : never : TParams extends [(infer TProps)?] ? Exclude<TProps, undefined> extends object ? TProps | undefined : never : never;
38
+ /**
39
+ * Returns type of `TFunc` parameter, when `TFunc` accepts exactly one object argument
40
+ * that can also be `undefined` / optional.
41
+ *
42
+ * When `TFunc` is an overloaded function, the result is a union of the parameter types
43
+ * across all of its overload signatures.
44
+ * @public
45
+ */
46
+ export type Props<TFunc extends (...args: any[]) => any> = PropsFromParameters<OverloadParameters<TFunc>>;
47
+ export {};
48
+ //# sourceMappingURL=MappedTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappedTypes.d.ts","sourceRoot":"","sources":["../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAC7G,WAAW,GACX,KAAK,CAAC;AAEV;;;;;;;GAOG;AACH,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,SAAS;IAC7C,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GACG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACjB,KAAK,SAAS;IAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;CAAE,GAC5F,EAAE,GAAG,EAAE,GAAG,EAAE,GACZ,KAAK,SAAS;IAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;CAAE,GAClE,EAAE,GAAG,EAAE,GACP,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,GACtC,EAAE,GACF,KAAK,CAAC;AAEhB;;;;GAIG;AACH,KAAK,mBAAmB,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,MAAM,MAAM,CAAC,GAC9D,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GACN,KAAK,GACP,OAAO,SAAS,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GAAG,SAAS,GAClB,KAAK,GACP,KAAK,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MappedTypes.js","sourceRoot":"","sources":["../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -7,18 +7,30 @@ import type { ECSqlBinding } from "./ECSqlCore.js";
7
7
  */
8
8
  export interface ECSchemaProvider {
9
9
  getSchema(schemaName: string): Promise<EC.Schema | undefined>;
10
+ /**
11
+ * Checks whether the class identified by `derivedClassFullName` is the same as, or derives from, the class
12
+ * identified by `candidateBaseClassFullName`. A class is considered to derive from itself.
13
+ *
14
+ * The result may be returned synchronously when the class hierarchy information is already available, or as a
15
+ * promise otherwise.
16
+ */
17
+ classDerivesFrom(derivedClassFullName: EC.FullClassNameDotNotation, candidateBaseClassFullName: EC.FullClassNameDotNotation): Promise<boolean> | boolean;
10
18
  }
11
19
  /**
12
20
  * An interface for a class hierarchy inspector that can be used to determine if one class derives from another.
13
21
  * @see `createCachingECClassHierarchyInspector`
22
+ * @deprecated in 2.0. Use `ECSchemaProvider` instead - it now exposes `classDerivesFrom` directly.
14
23
  * @public
15
24
  */
16
25
  export interface ECClassHierarchyInspector {
17
- classDerivesFrom(derivedClassFullName: EC.FullClassName, candidateBaseClassFullName: EC.FullClassName): Promise<boolean> | boolean;
26
+ classDerivesFrom(derivedClassFullName: EC.FullClassNameDotNotation, candidateBaseClassFullName: EC.FullClassNameDotNotation): Promise<boolean> | boolean;
18
27
  }
19
28
  /**
20
29
  * Creates a new `ECClassHierarchyInspector` that caches results of `derivesFrom` calls.
30
+ *
21
31
  * @public
32
+ * @deprecated in 2.0. Use `createECSchemaProvider` from `@itwin/presentation-core-interop` instead - the created
33
+ * `ECSchemaProvider` exposes `classDerivesFrom` directly, without the need for a separate class hierarchy inspector.
22
34
  */
23
35
  export declare function createCachingECClassHierarchyInspector(props: {
24
36
  /** Schema provider used to load schemas and their classes. */
@@ -55,10 +67,14 @@ export declare namespace EC {
55
67
  */
56
68
  interface Schema {
57
69
  name: string;
70
+ description?: string;
58
71
  /** The schema version. Format: `"read.write.minor"`, comparison order: write > read > minor. */
59
72
  version: SchemaVersion;
60
- getClass(name: string): Promise<Class | undefined>;
61
- getCustomAttributes(): Promise<CustomAttributeSet>;
73
+ isHidden: boolean;
74
+ getClass(name: string): Class | undefined;
75
+ getEnumeration(name: string): Enumeration | undefined;
76
+ getKindOfQuantity(name: string): KindOfQuantity | undefined;
77
+ getPropertyCategory(name: string): PropertyCategory | undefined;
62
78
  }
63
79
  /**
64
80
  * Represents an ECSchema item - a class, relationship, etc.
@@ -67,7 +83,7 @@ export declare namespace EC {
67
83
  */
68
84
  interface SchemaItem {
69
85
  schema: Schema;
70
- fullName: FullClassName;
86
+ fullName: FullClassNameDotNotation;
71
87
  name: string;
72
88
  label?: string;
73
89
  description?: string;
@@ -78,26 +94,31 @@ export declare namespace EC {
78
94
  * @public
79
95
  */
80
96
  interface Class extends SchemaItem {
81
- baseClass: Promise<Class | undefined>;
82
- is(className: string, schemaName: string): Promise<boolean>;
83
- is(other: Class): Promise<boolean>;
84
- getProperty(name: string): Promise<Property | undefined>;
85
- getProperties(): Promise<Array<Property>>;
97
+ baseClass?: Class;
98
+ isHidden?: boolean;
99
+ is(className: string, schemaName: string): boolean;
100
+ is(other: Class): boolean;
101
+ getProperty(name: string): Property | undefined;
102
+ getProperties(): Array<Property>;
86
103
  /** Gets only the properties defined directly on this class, excluding those inherited from base classes. */
87
- getOwnProperties(): Promise<Array<Property>>;
104
+ getOwnProperties(): Array<Property>;
88
105
  isEntityClass(): this is EntityClass;
89
106
  isRelationshipClass(): this is RelationshipClass;
90
107
  isStructClass(): this is StructClass;
91
108
  isMixin(): this is Mixin;
92
- getDerivedClasses(): Promise<Class[]>;
93
- getCustomAttributes(): Promise<CustomAttributeSet>;
109
+ getDerivedClassNames(props?: {
110
+ onlyDirect?: boolean;
111
+ }): EC.FullClassNameDotNotation[];
94
112
  }
95
113
  /**
96
114
  * Represents an entity class.
97
115
  * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/entityclass/
98
116
  * @public
99
117
  */
100
- type EntityClass = Class;
118
+ interface EntityClass extends Class {
119
+ /** Gets the mixins applied directly to this entity class. */
120
+ getMixins(): Mixin[];
121
+ }
101
122
  /**
102
123
  * Represents a struct class.
103
124
  * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/structclass/
@@ -115,7 +136,10 @@ export declare namespace EC {
115
136
  * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/kindofquantity/
116
137
  * @public
117
138
  */
118
- type KindOfQuantity = SchemaItem;
139
+ interface KindOfQuantity extends SchemaItem {
140
+ relativeError: number;
141
+ persistenceUnit: string;
142
+ }
119
143
  /**
120
144
  * Represents a property category used to group related properties.
121
145
  * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/propertycategory/
@@ -132,7 +156,8 @@ export declare namespace EC {
132
156
  */
133
157
  interface RelationshipConstraintMultiplicity {
134
158
  lowerLimit: number;
135
- upperLimit: number;
159
+ /** `"unbounded"` when the constraint declares no upper bound (`*`). */
160
+ upperLimit: number | "unbounded";
136
161
  }
137
162
  /**
138
163
  * Represents a relationship constraint.
@@ -142,7 +167,8 @@ export declare namespace EC {
142
167
  interface RelationshipConstraint {
143
168
  multiplicity: RelationshipConstraintMultiplicity;
144
169
  polymorphic: boolean;
145
- abstractConstraint: Promise<EntityClass | Mixin | RelationshipClass | undefined>;
170
+ constraintClasses: Class[];
171
+ abstractConstraint?: EntityClass | Mixin | RelationshipClass;
146
172
  }
147
173
  /**
148
174
  * Represents a relationship class.
@@ -182,16 +208,17 @@ export declare namespace EC {
182
208
  */
183
209
  interface Property {
184
210
  name: string;
211
+ description?: string;
185
212
  class: Class;
186
213
  label?: string;
187
- kindOfQuantity: Promise<KindOfQuantity | undefined>;
188
- category: Promise<PropertyCategory | undefined>;
214
+ isHidden: boolean;
215
+ kindOfQuantity?: KindOfQuantity;
216
+ category?: PropertyCategory;
189
217
  isArray(): this is ArrayProperty;
190
218
  isStruct(): this is StructProperty;
191
219
  isPrimitive(): this is PrimitiveProperty;
192
220
  isEnumeration(): this is EnumerationProperty;
193
221
  isNavigation(): this is NavigationProperty;
194
- getCustomAttributes(): Promise<CustomAttributeSet>;
195
222
  }
196
223
  /**
197
224
  * Defines array property attributes.
@@ -240,7 +267,7 @@ export declare namespace EC {
240
267
  * @public
241
268
  */
242
269
  interface EnumerationProperty extends Property {
243
- enumeration: Promise<Enumeration | undefined>;
270
+ enumeration?: Enumeration;
244
271
  extendedTypeName?: string;
245
272
  }
246
273
  /**
@@ -249,7 +276,7 @@ export declare namespace EC {
249
276
  * @public
250
277
  */
251
278
  interface NavigationProperty extends Property {
252
- relationshipClass: Promise<RelationshipClass>;
279
+ relationshipClass: RelationshipClass;
253
280
  direction: "Forward" | "Backward";
254
281
  }
255
282
  /**
@@ -267,24 +294,6 @@ export declare namespace EC {
267
294
  primitiveType: PrimitiveType;
268
295
  extendedTypeName?: string;
269
296
  }
270
- /**
271
- * Defines a set of custom attributes that may be applied to a class or property.
272
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
273
- * @public
274
- */
275
- interface CustomAttributeSet {
276
- [Symbol.iterator]: () => IterableIterator<[FullClassName, CustomAttribute]>;
277
- get(className: FullClassName): CustomAttribute | undefined;
278
- }
279
- /**
280
- * Defines a custom attribute that may be applied to a class or property.
281
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
282
- * @public
283
- */
284
- interface CustomAttribute {
285
- className: FullClassName;
286
- [propName: string]: any;
287
- }
288
297
  }
289
298
  /**
290
299
  * A union of all primitive value types supported by the Presentation packages.
@@ -419,7 +428,7 @@ export interface NavigationValueDescriptor {
419
428
  * Full name of the relationship's target-constraint class the navigation points at
420
429
  * (the referenced instance's class, or its base constraint class).
421
430
  */
422
- targetClassName: EC.FullClassName;
431
+ targetClassName: EC.FullClassNameDotNotation;
423
432
  }
424
433
  /**
425
434
  * Describes a single step through an ECRelationship from source ECClass to target ECClass.
@@ -427,11 +436,11 @@ export interface NavigationValueDescriptor {
427
436
  */
428
437
  export interface RelationshipPathStep {
429
438
  /** Full name of the source ECClass */
430
- sourceClassName: EC.FullClassName;
439
+ sourceClassName: EC.FullClassNameDotNotation;
431
440
  /** Full name of the target ECClass */
432
- targetClassName: EC.FullClassName;
441
+ targetClassName: EC.FullClassNameDotNotation;
433
442
  /** Full name of the ECRelationshipClass */
434
- relationshipName: EC.FullClassName;
443
+ relationshipName: EC.FullClassNameDotNotation;
435
444
  /**
436
445
  * Indicates that the relationship direction be reversed. This should be set to `true` when step direction
437
446
  * doesn't match relationship direction, e.g. relationship is from source `A` to target `B` and the step
@@ -500,6 +509,6 @@ export type RelationshipPath<TStep extends RelationshipPathStep = RelationshipPa
500
509
  * @throws Error if the schema or class is not found.
501
510
  * @public
502
511
  */
503
- export declare function getClass(schemaProvider: ECSchemaProvider, fullClassName: EC.FullClassName): Promise<EC.Class>;
512
+ export declare function getClass(schemaProvider: ECSchemaProvider, fullClassName: EC.FullClassNameDotNotation): Promise<EC.Class>;
504
513
  export {};
505
514
  //# sourceMappingURL=Metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../src/shared/Metadata.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@ import { LRUMap } from "@itwin/core-bentley";
6
6
  import { parseFullClassName } from "./Utils.js";
7
7
  /**
8
8
  * Creates a new `ECClassHierarchyInspector` that caches results of `derivesFrom` calls.
9
+ *
9
10
  * @public
11
+ * @deprecated in 2.0. Use `createECSchemaProvider` from `@itwin/presentation-core-interop` instead - the created
12
+ * `ECSchemaProvider` exposes `classDerivesFrom` directly, without the need for a separate class hierarchy inspector.
10
13
  */
11
14
  export function createCachingECClassHierarchyInspector(props) {
12
15
  const map = new LRUMap(props.cacheSize ?? 0);
@@ -18,11 +21,9 @@ export function createCachingECClassHierarchyInspector(props) {
18
21
  const cacheKey = createCacheKey(derivedClassFullName, candidateBaseClassFullName);
19
22
  let result = map.get(cacheKey);
20
23
  if (result === undefined) {
21
- result = Promise.all([
22
- getClass(props.schemaProvider, derivedClassFullName),
23
- getClass(props.schemaProvider, candidateBaseClassFullName),
24
- ]).then(async ([derivedClass, baseClass]) => {
25
- const resolvedResult = await derivedClass.is(baseClass);
24
+ result = getClass(props.schemaProvider, derivedClassFullName).then((derivedClass) => {
25
+ const { schemaName: candidateBaseClassSchemaName, className: candidateBaseClassName } = parseFullClassName(candidateBaseClassFullName);
26
+ const resolvedResult = derivedClass.is(candidateBaseClassName, candidateBaseClassSchemaName);
26
27
  map.set(cacheKey, resolvedResult);
27
28
  return resolvedResult;
28
29
  });
@@ -43,7 +44,7 @@ export async function getClass(schemaProvider, fullClassName) {
43
44
  if (!schema) {
44
45
  throw new Error(`Schema "${schemaName}" not found.`);
45
46
  }
46
- const lookupClass = await schema.getClass(className);
47
+ const lookupClass = schema.getClass(className);
47
48
  if (!lookupClass) {
48
49
  throw new Error(`Class "${className}" not found in schema "${schemaName}".`);
49
50
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/shared/Metadata.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuChD;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CAAC,KAMtD;IACC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAqC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjF,SAAS,cAAc,CAAC,gBAA6C,EAAE,aAA0C;QAC/G,OAAO,GAAG,gBAAgB,IAAI,aAAa,EAAE,CAAC;IAChD,CAAC;IACD,OAAO;QACL,gBAAgB,CACd,oBAAiD,EACjD,0BAAuD;YAEvD,MAAM,QAAQ,GAAG,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;YAClF,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;oBAClF,MAAM,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAE,sBAAsB,EAAE,GACnF,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;oBACjD,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC;oBAC7F,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAClC,OAAO,cAAc,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAygBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,cAAgC,EAChC,aAA0C;IAE1C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,0BAA0B,UAAU,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -18,12 +18,6 @@ export declare function parseFullClassName(fullClassName: string): {
18
18
  * @public
19
19
  */
20
20
  export declare function normalizeFullClassName(fullClassName: string): EC.FullClassNameDotNotation;
21
- /**
22
- * An utility that compares two full class names in a case insensitive way, ignoring different
23
- * supported schema-class name separators (`.` or `:`).
24
- * @public
25
- */
26
- export declare function compareFullClassNames(lhs: EC.FullClassName, rhs: EC.FullClassName): number;
27
21
  /**
28
22
  * An utility to remove all extra whitespace from a given string.
29
23
  * @public
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/shared/Utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM;IAmB7C,UAAU;IAA+B,SAAS;EAC5D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC,wBAAwB,CAGzF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AACpD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAc5E;;;;;GAKG;AACH,wBAAsB,iBAAiB,kBAEtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0CAA0C,CAAC,mBAAmB,SAAK,SAEtE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CASrC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAGzD"}
@@ -39,21 +39,6 @@ export function normalizeFullClassName(fullClassName) {
39
39
  const { schemaName, className } = parseFullClassName(fullClassName);
40
40
  return `${schemaName}.${className}`;
41
41
  }
42
- /**
43
- * An utility that compares two full class names in a case insensitive way, ignoring different
44
- * supported schema-class name separators (`.` or `:`).
45
- * @public
46
- */
47
- export function compareFullClassNames(lhs, rhs) {
48
- const parsed = { lhs: parseFullClassName(lhs), rhs: parseFullClassName(rhs) };
49
- const schemaCompare = parsed.lhs.schemaName
50
- .toLocaleLowerCase()
51
- .localeCompare(parsed.rhs.schemaName.toLocaleLowerCase());
52
- if (schemaCompare !== 0) {
53
- return schemaCompare;
54
- }
55
- return parsed.lhs.className.toLocaleLowerCase().localeCompare(parsed.rhs.className.toLocaleLowerCase());
56
- }
57
42
  /** @public */
58
43
  export function trimWhitespace(str) {
59
44
  if (!str) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/shared/Utils.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { EC, PrimitiveValueType } from "./Metadata.js";
6
6
  */
7
7
  export interface InstanceKey {
8
8
  /** Full class name in format `SchemaName.ClassName` */
9
- className: EC.FullClassName;
9
+ className: EC.FullClassNameDotNotation;
10
10
  /** ECInstance ID */
11
11
  id: Id64String;
12
12
  }
@@ -30,7 +30,7 @@ export declare namespace InstanceKey {
30
30
  * A data structure for a 2d point.
31
31
  * @public
32
32
  */
33
- export interface Point2d {
33
+ export interface Point2dValue {
34
34
  x: number;
35
35
  y: number;
36
36
  }
@@ -38,7 +38,7 @@ export interface Point2d {
38
38
  * A data structure for a 3d point.
39
39
  * @public
40
40
  */
41
- export interface Point3d {
41
+ export interface Point3dValue {
42
42
  x: number;
43
43
  y: number;
44
44
  z: number;
@@ -47,20 +47,20 @@ export interface Point3d {
47
47
  * A union for all supported primitive value types.
48
48
  * @public
49
49
  */
50
- export type PrimitiveValue = Id64String | string | number | boolean | Date | Point2d | Point3d;
50
+ export type PrimitiveValue = Id64String | string | number | boolean | Date | Point2dValue | Point3dValue;
51
51
  /** @public */
52
52
  export declare namespace PrimitiveValue {
53
53
  /**
54
- * Checks whether the given value is a `Point2d`.
55
- * @note Since `Point3d` is a superset of `Point2d`, this function will return `true` for `Point3d` as well.
54
+ * Checks whether the given value is a `Point2dValue`.
55
+ * @note Since `Point3dValue` is a superset of `Point2dValue`, this function will return `true` for `Point3dValue` as well.
56
56
  * @public
57
57
  */
58
- function isPoint2d(value: PrimitiveValue): value is Point2d;
58
+ function isPoint2d(value: PrimitiveValue): value is Point2dValue;
59
59
  /**
60
- * Checks whether the given value is a `Point3d`.
60
+ * Checks whether the given value is a `Point3dValue`.
61
61
  * @public
62
62
  */
63
- function isPoint3d(value: PrimitiveValue): value is Point3d;
63
+ function isPoint3d(value: PrimitiveValue): value is Point3dValue;
64
64
  }
65
65
  /**
66
66
  * A type for a primitive value, its type and, optionally, its extended type.
@@ -69,7 +69,15 @@ export declare namespace PrimitiveValue {
69
69
  */
70
70
  export type TypedPrimitiveValue = ({
71
71
  value: number;
72
- type: Extract<PrimitiveValueType, "Double" | "Integer" | "Long">;
72
+ type: Extract<PrimitiveValueType, "Double">;
73
+ koqName?: string;
74
+ } | {
75
+ value: number;
76
+ type: Extract<PrimitiveValueType, "Integer">;
77
+ koqName?: string;
78
+ } | {
79
+ value: number;
80
+ type: Extract<PrimitiveValueType, "Long">;
73
81
  koqName?: string;
74
82
  } | {
75
83
  value: boolean;
@@ -84,10 +92,10 @@ export type TypedPrimitiveValue = ({
84
92
  value: number | string | Date;
85
93
  type: Extract<PrimitiveValueType, "DateTime">;
86
94
  } | {
87
- value: Point2d;
95
+ value: Point2dValue;
88
96
  type: Extract<PrimitiveValueType, "Point2d">;
89
97
  } | {
90
- value: Point3d;
98
+ value: Point3dValue;
91
99
  type: Extract<PrimitiveValueType, "Point3d">;
92
100
  }) & {
93
101
  extendedType?: string;
@@ -99,7 +107,9 @@ export declare namespace TypedPrimitiveValue {
99
107
  * @throws Error if primitive type and value are incompatible.
100
108
  * @public
101
109
  */
102
- function create(value: PrimitiveValue, type: PrimitiveValueType, koqName?: string, extendedType?: string): TypedPrimitiveValue;
110
+ function create<TValue extends PrimitiveValue, TType extends PrimitiveValueType>(value: TValue, type: TType, koqName?: string, extendedType?: string): Extract<TypedPrimitiveValue, {
111
+ type: TType;
112
+ }>;
103
113
  }
104
114
  /**
105
115
  * A composite value representing a struct (named record with member values).
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Values.d.ts","sourceRoot":"","sources":["../../src/shared/Values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { compareStrings, Id64 } from "@itwin/core-bentley";
6
+ /** @public */
7
+ export var InstanceKey;
8
+ (function (InstanceKey) {
9
+ /**
10
+ * Checks whether the two given instance keys are equal.
11
+ * @public
12
+ */
13
+ function equals(lhs, rhs) {
14
+ return compare(lhs, rhs) === 0;
15
+ }
16
+ InstanceKey.equals = equals;
17
+ /**
18
+ * Compares two given instance keys.
19
+ * @returns
20
+ *- `0` if they are equal
21
+ *- `negative value` if lhs key is less than rhs key
22
+ *- `positive value` if lhs key is more than rhs key
23
+ */
24
+ function compare(lhs, rhs) {
25
+ const classNameCompareResult = compareStrings(lhs.className, rhs.className);
26
+ if (classNameCompareResult !== 0) {
27
+ return classNameCompareResult;
28
+ }
29
+ return compareStrings(lhs.id, rhs.id);
30
+ }
31
+ InstanceKey.compare = compare;
32
+ })(InstanceKey || (InstanceKey = {}));
33
+ /** @public */
34
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
35
+ export var PrimitiveValue;
36
+ (function (PrimitiveValue) {
37
+ /**
38
+ * Checks whether the given value is a `Point2dValue`.
39
+ * @note Since `Point3dValue` is a superset of `Point2dValue`, this function will return `true` for `Point3dValue` as well.
40
+ * @public
41
+ */
42
+ function isPoint2d(value) {
43
+ if (typeof value !== "object") {
44
+ return false;
45
+ }
46
+ return "x" in value && "y" in value;
47
+ }
48
+ PrimitiveValue.isPoint2d = isPoint2d;
49
+ /**
50
+ * Checks whether the given value is a `Point3dValue`.
51
+ * @public
52
+ */
53
+ function isPoint3d(value) {
54
+ if (typeof value !== "object") {
55
+ return false;
56
+ }
57
+ return "x" in value && "y" in value && "z" in value;
58
+ }
59
+ PrimitiveValue.isPoint3d = isPoint3d;
60
+ })(PrimitiveValue || (PrimitiveValue = {}));
61
+ /** @public */
62
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
63
+ export var TypedPrimitiveValue;
64
+ (function (TypedPrimitiveValue) {
65
+ /**
66
+ * A function for a creating a `TypedPrimitiveValue` object.
67
+ * @throws Error if primitive type and value are incompatible.
68
+ * @public
69
+ */
70
+ function create(value, type, koqName, extendedType) {
71
+ // The function's return type narrows `TypedPrimitiveValue` based on the generic `TType`. TypeScript can't verify that the
72
+ // objects created below satisfy that narrowed type, because narrowing the `type`/`value` variables via control flow doesn't
73
+ // narrow the `TType` type parameter itself (it stays generic within the function body). So we build the value with a concrete
74
+ // `TypedPrimitiveValue` return type - which TypeScript does check branch-by-branch - and apply the narrowing with a single
75
+ // cast at the boundary, rather than casting every `return` statement individually.
76
+ return (function () {
77
+ switch (type) {
78
+ case "Double":
79
+ case "Integer":
80
+ case "Long":
81
+ if (typeof value === "number") {
82
+ return { type, koqName, extendedType, value };
83
+ }
84
+ break;
85
+ case "Boolean":
86
+ if (typeof value === "boolean") {
87
+ return { type, extendedType, value };
88
+ }
89
+ break;
90
+ case "Id":
91
+ if (typeof value === "string" && Id64.isId64(value)) {
92
+ return { type, extendedType, value };
93
+ }
94
+ break;
95
+ case "String":
96
+ if (typeof value === "string") {
97
+ return { type, extendedType, value };
98
+ }
99
+ break;
100
+ case "DateTime":
101
+ if (typeof value === "string" || typeof value === "number" || value instanceof Date) {
102
+ return { type, extendedType, value };
103
+ }
104
+ break;
105
+ case "Point3d":
106
+ if (PrimitiveValue.isPoint3d(value)) {
107
+ return { type, extendedType, value };
108
+ }
109
+ break;
110
+ case "Point2d":
111
+ if (PrimitiveValue.isPoint2d(value)) {
112
+ return { type, extendedType, value };
113
+ }
114
+ break;
115
+ }
116
+ throw new Error(`PrimitiveValueType ${type} isn't compatible with value ${JSON.stringify(value)}`);
117
+ })();
118
+ }
119
+ TypedPrimitiveValue.create = create;
120
+ })(TypedPrimitiveValue || (TypedPrimitiveValue = {}));
121
+ //# sourceMappingURL=Values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Values.js","sourceRoot":"","sources":["../../src/shared/Values.ts"],"names":[],"mappings":"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"}