@itwin/presentation-shared 0.1.0

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 (124) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.md +9 -0
  3. package/README.md +434 -0
  4. package/lib/cjs/presentation-shared.d.ts +13 -0
  5. package/lib/cjs/presentation-shared.d.ts.map +1 -0
  6. package/lib/cjs/presentation-shared.js +58 -0
  7. package/lib/cjs/presentation-shared.js.map +1 -0
  8. package/lib/cjs/shared/ConcatenatedValue.d.ts +47 -0
  9. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -0
  10. package/lib/cjs/shared/ConcatenatedValue.js +45 -0
  11. package/lib/cjs/shared/ConcatenatedValue.js.map +1 -0
  12. package/lib/cjs/shared/ECSqlCore.d.ts +91 -0
  13. package/lib/cjs/shared/ECSqlCore.d.ts.map +1 -0
  14. package/lib/cjs/shared/ECSqlCore.js +7 -0
  15. package/lib/cjs/shared/ECSqlCore.js.map +1 -0
  16. package/lib/cjs/shared/Event.d.ts +9 -0
  17. package/lib/cjs/shared/Event.d.ts.map +1 -0
  18. package/lib/cjs/shared/Event.js +7 -0
  19. package/lib/cjs/shared/Event.js.map +1 -0
  20. package/lib/cjs/shared/Formatting.d.ts +39 -0
  21. package/lib/cjs/shared/Formatting.d.ts.map +1 -0
  22. package/lib/cjs/shared/Formatting.js +132 -0
  23. package/lib/cjs/shared/Formatting.js.map +1 -0
  24. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +129 -0
  25. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  26. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +167 -0
  27. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  28. package/lib/cjs/shared/InternalUtils.d.ts +3 -0
  29. package/lib/cjs/shared/InternalUtils.d.ts.map +1 -0
  30. package/lib/cjs/shared/InternalUtils.js +14 -0
  31. package/lib/cjs/shared/InternalUtils.js.map +1 -0
  32. package/lib/cjs/shared/Logging.d.ts +27 -0
  33. package/lib/cjs/shared/Logging.d.ts.map +1 -0
  34. package/lib/cjs/shared/Logging.js +20 -0
  35. package/lib/cjs/shared/Logging.js.map +1 -0
  36. package/lib/cjs/shared/MappedTypes.d.ts +11 -0
  37. package/lib/cjs/shared/MappedTypes.d.ts.map +1 -0
  38. package/lib/cjs/shared/MappedTypes.js +7 -0
  39. package/lib/cjs/shared/MappedTypes.js.map +1 -0
  40. package/lib/cjs/shared/Metadata.d.ts +268 -0
  41. package/lib/cjs/shared/Metadata.d.ts.map +1 -0
  42. package/lib/cjs/shared/Metadata.js +54 -0
  43. package/lib/cjs/shared/Metadata.js.map +1 -0
  44. package/lib/cjs/shared/Utils.d.ts +26 -0
  45. package/lib/cjs/shared/Utils.d.ts.map +1 -0
  46. package/lib/cjs/shared/Utils.js +50 -0
  47. package/lib/cjs/shared/Utils.js.map +1 -0
  48. package/lib/cjs/shared/Values.d.ts +119 -0
  49. package/lib/cjs/shared/Values.d.ts.map +1 -0
  50. package/lib/cjs/shared/Values.js +156 -0
  51. package/lib/cjs/shared/Values.js.map +1 -0
  52. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +48 -0
  53. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  54. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +139 -0
  55. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  56. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +116 -0
  57. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  58. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +244 -0
  59. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  60. package/lib/cjs/shared/ecsql-snippets/index.d.ts +3 -0
  61. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +1 -0
  62. package/lib/cjs/shared/ecsql-snippets/index.js +16 -0
  63. package/lib/cjs/shared/ecsql-snippets/index.js.map +1 -0
  64. package/lib/esm/presentation-shared.d.ts +13 -0
  65. package/lib/esm/presentation-shared.d.ts.map +1 -0
  66. package/lib/esm/presentation-shared.js +15 -0
  67. package/lib/esm/presentation-shared.js.map +1 -0
  68. package/lib/esm/shared/ConcatenatedValue.d.ts +47 -0
  69. package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -0
  70. package/lib/esm/shared/ConcatenatedValue.js +42 -0
  71. package/lib/esm/shared/ConcatenatedValue.js.map +1 -0
  72. package/lib/esm/shared/ECSqlCore.d.ts +91 -0
  73. package/lib/esm/shared/ECSqlCore.d.ts.map +1 -0
  74. package/lib/esm/shared/ECSqlCore.js +6 -0
  75. package/lib/esm/shared/ECSqlCore.js.map +1 -0
  76. package/lib/esm/shared/Event.d.ts +9 -0
  77. package/lib/esm/shared/Event.d.ts.map +1 -0
  78. package/lib/esm/shared/Event.js +6 -0
  79. package/lib/esm/shared/Event.js.map +1 -0
  80. package/lib/esm/shared/Formatting.d.ts +39 -0
  81. package/lib/esm/shared/Formatting.d.ts.map +1 -0
  82. package/lib/esm/shared/Formatting.js +127 -0
  83. package/lib/esm/shared/Formatting.js.map +1 -0
  84. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +129 -0
  85. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  86. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +160 -0
  87. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  88. package/lib/esm/shared/InternalUtils.d.ts +3 -0
  89. package/lib/esm/shared/InternalUtils.d.ts.map +1 -0
  90. package/lib/esm/shared/InternalUtils.js +10 -0
  91. package/lib/esm/shared/InternalUtils.js.map +1 -0
  92. package/lib/esm/shared/Logging.d.ts +27 -0
  93. package/lib/esm/shared/Logging.d.ts.map +1 -0
  94. package/lib/esm/shared/Logging.js +17 -0
  95. package/lib/esm/shared/Logging.js.map +1 -0
  96. package/lib/esm/shared/MappedTypes.d.ts +11 -0
  97. package/lib/esm/shared/MappedTypes.d.ts.map +1 -0
  98. package/lib/esm/shared/MappedTypes.js +6 -0
  99. package/lib/esm/shared/MappedTypes.js.map +1 -0
  100. package/lib/esm/shared/Metadata.d.ts +268 -0
  101. package/lib/esm/shared/Metadata.d.ts.map +1 -0
  102. package/lib/esm/shared/Metadata.js +49 -0
  103. package/lib/esm/shared/Metadata.js.map +1 -0
  104. package/lib/esm/shared/Utils.d.ts +26 -0
  105. package/lib/esm/shared/Utils.d.ts.map +1 -0
  106. package/lib/esm/shared/Utils.js +44 -0
  107. package/lib/esm/shared/Utils.js.map +1 -0
  108. package/lib/esm/shared/Values.d.ts +119 -0
  109. package/lib/esm/shared/Values.d.ts.map +1 -0
  110. package/lib/esm/shared/Values.js +153 -0
  111. package/lib/esm/shared/Values.js.map +1 -0
  112. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +48 -0
  113. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  114. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +135 -0
  115. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  116. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +116 -0
  117. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  118. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +236 -0
  119. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  120. package/lib/esm/shared/ecsql-snippets/index.d.ts +3 -0
  121. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +1 -0
  122. package/lib/esm/shared/ecsql-snippets/index.js +7 -0
  123. package/lib/esm/shared/ecsql-snippets/index.js.map +1 -0
  124. package/package.json +59 -0
@@ -0,0 +1,236 @@
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 { Id64 } from "@itwin/core-bentley";
6
+ import { PrimitiveValue } from "../Values";
7
+ /** @internal */
8
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
9
+ export var TypedValueSelectClauseProps;
10
+ (function (TypedValueSelectClauseProps) {
11
+ /** @internal */
12
+ function isPropertySelector(props) {
13
+ return !!props.propertyName;
14
+ }
15
+ TypedValueSelectClauseProps.isPropertySelector = isPropertySelector;
16
+ /** @internal */
17
+ function isPrimitiveValue(props) {
18
+ return !!props.value;
19
+ }
20
+ TypedValueSelectClauseProps.isPrimitiveValue = isPrimitiveValue;
21
+ /** @internal */
22
+ function isPrimitiveValueSelector(props) {
23
+ return !!props.selector;
24
+ }
25
+ TypedValueSelectClauseProps.isPrimitiveValueSelector = isPrimitiveValueSelector;
26
+ })(TypedValueSelectClauseProps || (TypedValueSelectClauseProps = {}));
27
+ /**
28
+ * Creates an ECSQL selector for raw property value, or, optionally - it's component. Example result:
29
+ * `[classAlias].[propertyName].[componentName]`.
30
+ *
31
+ * @beta
32
+ */
33
+ export function createRawPropertyValueSelector(classAlias, propertyName, componentName) {
34
+ let propertySelector = `[${classAlias}].[${propertyName}]`;
35
+ if (componentName) {
36
+ propertySelector += `.[${componentName}]`;
37
+ }
38
+ return propertySelector;
39
+ }
40
+ /**
41
+ * Creates an ECSQL selector for a raw primitive value.
42
+ * - `undefined` is selected as `NULL`.
43
+ * - `Date` values are selected in julian day format.
44
+ * - `Point2d` and `Point3d` values are selected as serialized JSON objects, e.g. `{ x: 1, y: 2, z: 3 }`.
45
+ * - Other kinds of values are selected as-is.
46
+ *
47
+ * @beta
48
+ */
49
+ export function createRawPrimitiveValueSelector(value) {
50
+ if (value === undefined) {
51
+ return "NULL";
52
+ }
53
+ if (value instanceof Date) {
54
+ return `julianday('${value.toISOString()}')`;
55
+ }
56
+ if (PrimitiveValue.isPoint3d(value)) {
57
+ return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
58
+ }
59
+ if (PrimitiveValue.isPoint2d(value)) {
60
+ return `json_object('x', ${value.x}, 'y', ${value.y})`;
61
+ }
62
+ switch (typeof value) {
63
+ case "string":
64
+ return Id64.isId64(value) ? value : `'${value}'`;
65
+ case "number":
66
+ return value.toString();
67
+ case "boolean":
68
+ return value ? "TRUE" : "FALSE";
69
+ }
70
+ }
71
+ /**
72
+ * Creates a clause for returning `NULL` when `checkSelector` returns a falsy value, or result of `valueSelector`
73
+ * otherwise. Example result: `IIF(CHECK_SELECTOR, VALUE_SELECTOR, NULL)`.
74
+ *
75
+ * @note In SQL `NULL` is not considered falsy, so when checking for `NULL` values, the `checkSelector` should
76
+ * be like `{selector} IS NOT NULL` rather than just `${selector}`.
77
+ *
78
+ * @beta
79
+ */
80
+ export function createNullableSelector(props) {
81
+ return `IIF(${props.checkSelector}, ${props.valueSelector}, NULL)`;
82
+ }
83
+ /**
84
+ * Create an ECSQL selector combined of multiple typed value selectors in a form of a JSON array. This allows handling results
85
+ * of each value selector individually when parsing query result.
86
+ *
87
+ * Example result: `json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...)`.
88
+ *
89
+ * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
90
+ * `NULL` result when the argument selector results in `NULL`. Example result with `checkSelector`:
91
+ * `IIF(CHECK_SELECTOR, json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...), NULL)`.
92
+ *
93
+ * @note The resulting JSON is of `ConcatenatedValue` type and it's recommended to use `ConcatenatedValue.serialize` to
94
+ * handle each individual part.
95
+ *
96
+ * @see `ConcatenatedValue`
97
+ *
98
+ * @beta
99
+ */
100
+ export function createConcatenatedValueJsonSelector(selectors, checkSelector) {
101
+ const combinedSelectors = `json_array(${selectors.map((sel) => createTypedValueJsonSelector(sel)).join(", ")})`;
102
+ if (checkSelector) {
103
+ return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
104
+ }
105
+ return combinedSelectors;
106
+ }
107
+ function createTypedValueJsonSelector(props) {
108
+ if (TypedValueSelectClauseProps.isPropertySelector(props)) {
109
+ if (props.specialType) {
110
+ // eslint-disable-next-line @typescript-eslint/no-shadow
111
+ const [valueSelector, typeOverride] = createSpecialPropertyValueJsonSelector(props.propertyClassAlias, props.propertyName, props.specialType);
112
+ return createTypedValueJsonSelector({ selector: valueSelector, type: typeOverride });
113
+ }
114
+ return `
115
+ json_object(
116
+ 'className', '${props.propertyClassName}',
117
+ 'propertyName', '${props.propertyName}',
118
+ 'value', ${createRawPropertyValueSelector(props.propertyClassAlias, props.propertyName)}
119
+ )
120
+ `;
121
+ }
122
+ if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
123
+ if (props.type) {
124
+ return `
125
+ json_object(
126
+ 'value', ${props.selector},
127
+ 'type', '${props.type}'
128
+ )
129
+ `;
130
+ }
131
+ return props.selector;
132
+ }
133
+ return `
134
+ json_object(
135
+ 'value', ${createPrimitiveValueJsonSelector(props.value)},
136
+ 'type', '${props.type}'
137
+ )
138
+ `;
139
+ }
140
+ function createSpecialPropertyValueJsonSelector(classAlias, propertyName, specialType) {
141
+ const propertySelector = `[${classAlias}].[${propertyName}]`;
142
+ switch (specialType) {
143
+ case "Navigation":
144
+ return [`${propertySelector}.[Id]`, "Id"];
145
+ case "Guid":
146
+ return [`GuidToStr(${propertySelector})`, "String"];
147
+ case "Point2d":
148
+ return [`json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y])`, "Point2d"];
149
+ case "Point3d":
150
+ return [`json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y], 'z', ${propertySelector}.[z])`, "Point3d"];
151
+ }
152
+ }
153
+ function createPrimitiveValueJsonSelector(value) {
154
+ if (value instanceof Date) {
155
+ return `'${value.toISOString()}'`;
156
+ }
157
+ if (PrimitiveValue.isPoint3d(value)) {
158
+ return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
159
+ }
160
+ if (PrimitiveValue.isPoint2d(value)) {
161
+ return `json_object('x', ${value.x}, 'y', ${value.y})`;
162
+ }
163
+ switch (typeof value) {
164
+ case "string":
165
+ return Id64.isId64(value) ? value : `'${value}'`;
166
+ case "number":
167
+ return value.toString();
168
+ case "boolean":
169
+ return value ? "TRUE" : "FALSE";
170
+ }
171
+ }
172
+ /**
173
+ * Create an ECSQL selector combined of multiple typed value selectors in a form of a string.
174
+ *
175
+ * Example result: `VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ...`.
176
+ *
177
+ * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
178
+ * `NULL` result when `checkSelector` results in a falsy value. Example result with `checkSelector`:
179
+ * `IIF(CHECK_SELECTOR, VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ..., NULL)`.
180
+ *
181
+ * @note Not all types of `TypedValueSelectClauseProps` can be serialized to a user-friendly string, e.g. when
182
+ * selecting a numeric value with units, this function is going to select the raw value. To create properly formatted
183
+ * concatenated values:
184
+ * 1. They should be selected with `createConcatenatedValueJsonSelector`, which returns a serialized JSON object.
185
+ * 2. The JSON should be parsed from resulting string and passed to `ConcatenatedValue.serialize`, which additionally
186
+ * takes a formatter. One can be created using `createDefaultValueFormatter`.
187
+ *
188
+ * @beta
189
+ */
190
+ export function createConcatenatedValueStringSelector(selectors, checkSelector) {
191
+ const combinedSelectors = selectors.length ? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ") : "''";
192
+ if (checkSelector) {
193
+ return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
194
+ }
195
+ return combinedSelectors;
196
+ }
197
+ function createTypedValueStringSelector(props) {
198
+ if (TypedValueSelectClauseProps.isPropertySelector(props)) {
199
+ if (props.specialType) {
200
+ // eslint-disable-next-line @typescript-eslint/no-shadow
201
+ const [valueSelector, typeOverride] = createSpecialPropertyValueStringSelector(props.propertyClassAlias, props.propertyName, props.specialType);
202
+ return createTypedValueStringSelector({ selector: valueSelector, type: typeOverride });
203
+ }
204
+ return createRawPropertyValueSelector(props.propertyClassAlias, props.propertyName);
205
+ }
206
+ if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
207
+ return props.selector;
208
+ }
209
+ return createPrimitiveValueStringSelector(props.value);
210
+ }
211
+ function createSpecialPropertyValueStringSelector(classAlias, propertyName, specialType) {
212
+ const propertySelector = createRawPropertyValueSelector(classAlias, propertyName);
213
+ switch (specialType) {
214
+ case "Navigation":
215
+ return [`CAST(${propertySelector}.[Id] AS TEXT)`, "Id"];
216
+ case "Guid":
217
+ return [`GuidToStr(${propertySelector})`, "String"];
218
+ case "Point2d":
219
+ return [`'(' || ${propertySelector}.[x] || ', ' || ${propertySelector}.[y] || ')'`, "Point2d"];
220
+ case "Point3d":
221
+ return [`'(' || ${propertySelector}.[x] || ', ' || ${propertySelector}.[y] || ', ' || ${propertySelector}.[z] || ')'`, "Point3d"];
222
+ }
223
+ }
224
+ function createPrimitiveValueStringSelector(value) {
225
+ if (value instanceof Date) {
226
+ return `'${value.toLocaleString()}'`;
227
+ }
228
+ if (PrimitiveValue.isPoint3d(value)) {
229
+ return `'(${value.x}, ${value.y}, ${value.z})'`;
230
+ }
231
+ if (PrimitiveValue.isPoint2d(value)) {
232
+ return `'(${value.x}, ${value.y})'`;
233
+ }
234
+ return `'${value.toString()}'`;
235
+ }
236
+ //# sourceMappingURL=ECSqlValueSelectorSnippets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, } from "./ECSqlValueSelectorSnippets";
2
+ export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,GACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
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
+ export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, } from "./ECSqlValueSelectorSnippets";
6
+ export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,GACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@itwin/presentation-shared",
3
+ "version": "0.1.0",
4
+ "description": "The package contains types and utilities used across different iTwin.js Presentation packages.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/iTwin/presentation.git",
9
+ "directory": "packages/shared"
10
+ },
11
+ "keywords": [
12
+ "Bentley",
13
+ "EC",
14
+ "ECSQL",
15
+ "iModel",
16
+ "iTwin.js",
17
+ "Presentation"
18
+ ],
19
+ "main": "lib/cjs/presentation-shared.js",
20
+ "module": "lib/esm/presentation-shared.js",
21
+ "types": "lib/cjs/presentation-shared.d.ts",
22
+ "dependencies": {
23
+ "@itwin/core-bentley": "^4.5.2"
24
+ },
25
+ "devDependencies": {
26
+ "@itwin/build-tools": "^4.5.2",
27
+ "@itwin/eslint-plugin": "^4.0.0",
28
+ "@types/chai": "^4.3.14",
29
+ "@types/chai-as-promised": "^7.1.8",
30
+ "@types/chai-subset": "^1.3.5",
31
+ "@types/mocha": "^10.0.6",
32
+ "@types/node": "^18.19.31",
33
+ "@types/sinon": "^17.0.3",
34
+ "@types/sinon-chai": "^3.2.12",
35
+ "chai": "^4.4.1",
36
+ "chai-as-promised": "^7.1.1",
37
+ "chai-subset": "^1.6.0",
38
+ "eslint": "^8.57.0",
39
+ "mocha": "^10.4.0",
40
+ "nyc": "^15.1.0",
41
+ "rimraf": "^5.0.5",
42
+ "sinon": "^17.0.1",
43
+ "sinon-chai": "^3.7.0",
44
+ "typescript": "~5.4.5",
45
+ "presentation-test-utilities": "^0.0.0"
46
+ },
47
+ "scripts": {
48
+ "build": "npm run -s build:cjs && npm run -s build:esm",
49
+ "build:cjs": "tsc -p tsconfig.cjs.json",
50
+ "build:esm": "tsc -p tsconfig.esm.json",
51
+ "build:watch": "npm run -s build:cjs -- -w",
52
+ "clean": "rimraf lib temp",
53
+ "cover": "nyc npm -s test",
54
+ "lint": "eslint \"./src/**/*.ts\"",
55
+ "test": "mocha --enable-source-maps --config ./.mocharc.json \"./lib/cjs/test/**/*.test.js\"",
56
+ "extract-api": "betools extract-api --entry=presentation-shared --apiReportFolder=./api --apiReportTempFolder=./api/temp --apiSummaryFolder=./api",
57
+ "check-internal": "node ../../scripts/checkInternal.js --apiSummary ./api/presentation-shared.api.md"
58
+ }
59
+ }