@itwin/core-backend 5.0.0-dev.7 → 5.0.0-dev.70

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 (264) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +13 -22
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js +2 -0
  5. package/lib/cjs/BackendHubAccess.js.map +1 -1
  6. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  7. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  8. package/lib/cjs/BisCoreSchema.js +2 -0
  9. package/lib/cjs/BisCoreSchema.js.map +1 -1
  10. package/lib/cjs/BlobContainerService.d.ts +4 -4
  11. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  12. package/lib/cjs/BlobContainerService.js.map +1 -1
  13. package/lib/cjs/BriefcaseManager.d.ts +10 -0
  14. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  15. package/lib/cjs/BriefcaseManager.js +63 -20
  16. package/lib/cjs/BriefcaseManager.js.map +1 -1
  17. package/lib/cjs/Category.js +6 -1
  18. package/lib/cjs/Category.js.map +1 -1
  19. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  20. package/lib/cjs/ChangeSummaryManager.js +92 -24
  21. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  22. package/lib/cjs/ChangedElementsDb.d.ts +3 -3
  23. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
  24. package/lib/cjs/ChangedElementsDb.js +8 -7
  25. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  26. package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
  27. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  28. package/lib/cjs/ChangesetECAdaptor.js +273 -261
  29. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  30. package/lib/cjs/ChannelControl.js.map +1 -1
  31. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  32. package/lib/cjs/CheckpointManager.js +15 -12
  33. package/lib/cjs/CheckpointManager.js.map +1 -1
  34. package/lib/cjs/ClassRegistry.js +13 -23
  35. package/lib/cjs/ClassRegistry.js.map +1 -1
  36. package/lib/cjs/CloudSqlite.d.ts +2 -1
  37. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  38. package/lib/cjs/CloudSqlite.js +15 -8
  39. package/lib/cjs/CloudSqlite.js.map +1 -1
  40. package/lib/cjs/CodeService.d.ts +2 -0
  41. package/lib/cjs/CodeService.d.ts.map +1 -1
  42. package/lib/cjs/CodeService.js +4 -0
  43. package/lib/cjs/CodeService.js.map +1 -1
  44. package/lib/cjs/CodeSpecs.js +3 -2
  45. package/lib/cjs/CodeSpecs.js.map +1 -1
  46. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  47. package/lib/cjs/CustomViewState3dCreator.js +7 -6
  48. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  49. package/lib/cjs/DevTools.js +16 -16
  50. package/lib/cjs/DevTools.js.map +1 -1
  51. package/lib/cjs/DisplayStyle.js +2 -0
  52. package/lib/cjs/DisplayStyle.js.map +1 -1
  53. package/lib/cjs/ECDb.d.ts +3 -9
  54. package/lib/cjs/ECDb.d.ts.map +1 -1
  55. package/lib/cjs/ECDb.js +10 -9
  56. package/lib/cjs/ECDb.js.map +1 -1
  57. package/lib/cjs/ECSchemaXmlContext.js +1 -0
  58. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  59. package/lib/cjs/ECSqlStatement.d.ts +4 -2
  60. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  61. package/lib/cjs/ECSqlStatement.js +13 -4
  62. package/lib/cjs/ECSqlStatement.js.map +1 -1
  63. package/lib/cjs/Element.d.ts +1 -9
  64. package/lib/cjs/Element.d.ts.map +1 -1
  65. package/lib/cjs/Element.js +122 -31
  66. package/lib/cjs/Element.js.map +1 -1
  67. package/lib/cjs/ElementAspect.js +24 -0
  68. package/lib/cjs/ElementAspect.js.map +1 -1
  69. package/lib/cjs/ElementGraphics.js.map +1 -1
  70. package/lib/cjs/ElementTreeWalker.js +13 -12
  71. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  72. package/lib/cjs/Entity.d.ts +18 -0
  73. package/lib/cjs/Entity.d.ts.map +1 -1
  74. package/lib/cjs/Entity.js +53 -16
  75. package/lib/cjs/Entity.js.map +1 -1
  76. package/lib/cjs/EntityReferences.js.map +1 -1
  77. package/lib/cjs/ExportGraphics.js +4 -0
  78. package/lib/cjs/ExportGraphics.js.map +1 -1
  79. package/lib/cjs/ExternalSource.js +22 -0
  80. package/lib/cjs/ExternalSource.js.map +1 -1
  81. package/lib/cjs/FontFile.d.ts +68 -0
  82. package/lib/cjs/FontFile.d.ts.map +1 -0
  83. package/lib/cjs/FontFile.js +36 -0
  84. package/lib/cjs/FontFile.js.map +1 -0
  85. package/lib/cjs/GeoCoordConfig.js +8 -8
  86. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  87. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  88. package/lib/cjs/GeometrySummary.js +53 -50
  89. package/lib/cjs/GeometrySummary.js.map +1 -1
  90. package/lib/cjs/HubMock.d.ts +1 -1
  91. package/lib/cjs/HubMock.d.ts.map +1 -1
  92. package/lib/cjs/HubMock.js +9 -5
  93. package/lib/cjs/HubMock.js.map +1 -1
  94. package/lib/cjs/IModelCloneContext.js.map +1 -1
  95. package/lib/cjs/IModelDb.d.ts +98 -15
  96. package/lib/cjs/IModelDb.d.ts.map +1 -1
  97. package/lib/cjs/IModelDb.js +193 -89
  98. package/lib/cjs/IModelDb.js.map +1 -1
  99. package/lib/cjs/IModelDbFonts.d.ts +54 -0
  100. package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
  101. package/lib/cjs/IModelDbFonts.js +11 -0
  102. package/lib/cjs/IModelDbFonts.js.map +1 -0
  103. package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
  104. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  105. package/lib/cjs/IModelElementCloneContext.js +11 -1
  106. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  107. package/lib/cjs/IModelHost.d.ts +14 -14
  108. package/lib/cjs/IModelHost.d.ts.map +1 -1
  109. package/lib/cjs/IModelHost.js +75 -42
  110. package/lib/cjs/IModelHost.js.map +1 -1
  111. package/lib/cjs/IModelJsFs.d.ts.map +1 -1
  112. package/lib/cjs/IModelJsFs.js +17 -1
  113. package/lib/cjs/IModelJsFs.js.map +1 -1
  114. package/lib/cjs/ImageSourceConversion.d.ts +49 -0
  115. package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
  116. package/lib/cjs/ImageSourceConversion.js +37 -0
  117. package/lib/cjs/ImageSourceConversion.js.map +1 -0
  118. package/lib/cjs/IpcHost.d.ts.map +1 -1
  119. package/lib/cjs/IpcHost.js +7 -6
  120. package/lib/cjs/IpcHost.js.map +1 -1
  121. package/lib/cjs/LineStyle.js.map +1 -1
  122. package/lib/cjs/LocalHub.js +9 -3
  123. package/lib/cjs/LocalHub.js.map +1 -1
  124. package/lib/cjs/LocalhostIpcHost.js +5 -6
  125. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  126. package/lib/cjs/LockControl.js.map +1 -1
  127. package/lib/cjs/Material.js +40 -0
  128. package/lib/cjs/Material.js.map +1 -1
  129. package/lib/cjs/Model.d.ts +1 -1
  130. package/lib/cjs/Model.d.ts.map +1 -1
  131. package/lib/cjs/Model.js +27 -2
  132. package/lib/cjs/Model.js.map +1 -1
  133. package/lib/cjs/NativeAppStorage.js +5 -3
  134. package/lib/cjs/NativeAppStorage.js.map +1 -1
  135. package/lib/cjs/NativeHost.js +6 -3
  136. package/lib/cjs/NativeHost.js.map +1 -1
  137. package/lib/cjs/NavigationRelationship.js +25 -25
  138. package/lib/cjs/NavigationRelationship.js.map +1 -1
  139. package/lib/cjs/PromiseMemoizer.d.ts +2 -3
  140. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  141. package/lib/cjs/PromiseMemoizer.js +12 -5
  142. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  143. package/lib/cjs/PropertyStore.js +1 -4
  144. package/lib/cjs/PropertyStore.js.map +1 -1
  145. package/lib/cjs/Relationship.d.ts.map +1 -1
  146. package/lib/cjs/Relationship.js +13 -1
  147. package/lib/cjs/Relationship.js.map +1 -1
  148. package/lib/cjs/RpcBackend.js.map +1 -1
  149. package/lib/cjs/SQLiteDb.d.ts +6 -4
  150. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  151. package/lib/cjs/SQLiteDb.js +74 -15
  152. package/lib/cjs/SQLiteDb.js.map +1 -1
  153. package/lib/cjs/Schema.d.ts +6 -0
  154. package/lib/cjs/Schema.d.ts.map +1 -1
  155. package/lib/cjs/Schema.js +12 -1
  156. package/lib/cjs/Schema.js.map +1 -1
  157. package/lib/cjs/SchemaSync.js +1 -4
  158. package/lib/cjs/SchemaSync.js.map +1 -1
  159. package/lib/cjs/SchemaUtils.js.map +1 -1
  160. package/lib/cjs/SheetIndex.js +6 -0
  161. package/lib/cjs/SheetIndex.js.map +1 -1
  162. package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
  163. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  164. package/lib/cjs/SqliteChangesetReader.js +21 -5
  165. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  166. package/lib/cjs/SqliteStatement.d.ts +4 -2
  167. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  168. package/lib/cjs/SqliteStatement.js +13 -1
  169. package/lib/cjs/SqliteStatement.js.map +1 -1
  170. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  171. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  172. package/lib/cjs/TextAnnotationLayout.d.ts +6 -3
  173. package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
  174. package/lib/cjs/TextAnnotationLayout.js +30 -12
  175. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  176. package/lib/cjs/Texture.js +3 -0
  177. package/lib/cjs/Texture.js.map +1 -1
  178. package/lib/cjs/TileStorage.js +6 -1
  179. package/lib/cjs/TileStorage.js.map +1 -1
  180. package/lib/cjs/TxnManager.d.ts +43 -1
  181. package/lib/cjs/TxnManager.d.ts.map +1 -1
  182. package/lib/cjs/TxnManager.js +218 -55
  183. package/lib/cjs/TxnManager.js.map +1 -1
  184. package/lib/cjs/ViewDefinition.d.ts +6 -6
  185. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  186. package/lib/cjs/ViewDefinition.js +81 -26
  187. package/lib/cjs/ViewDefinition.js.map +1 -1
  188. package/lib/cjs/ViewStateHydrator.d.ts +0 -1
  189. package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
  190. package/lib/cjs/ViewStateHydrator.js +1 -11
  191. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  192. package/lib/cjs/ViewStore.js +3 -1
  193. package/lib/cjs/ViewStore.js.map +1 -1
  194. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  195. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  196. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  197. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  198. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  199. package/lib/cjs/core-backend.d.ts +7 -0
  200. package/lib/cjs/core-backend.d.ts.map +1 -1
  201. package/lib/cjs/core-backend.js +7 -0
  202. package/lib/cjs/core-backend.js.map +1 -1
  203. package/lib/cjs/domains/FunctionalElements.js +1 -1
  204. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  205. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  206. package/lib/cjs/domains/GenericElements.js.map +1 -1
  207. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  208. package/lib/cjs/internal/ChangesetConflictArgs.d.ts +40 -2
  209. package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
  210. package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
  211. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  212. package/lib/cjs/internal/ChannelAdmin.js +7 -7
  213. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  214. package/lib/cjs/internal/FontFileImpl.d.ts +34 -0
  215. package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
  216. package/lib/cjs/internal/FontFileImpl.js +143 -0
  217. package/lib/cjs/internal/FontFileImpl.js.map +1 -0
  218. package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
  219. package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
  220. package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
  221. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
  222. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  223. package/lib/cjs/internal/NoLocks.js +2 -5
  224. package/lib/cjs/internal/NoLocks.js.map +1 -1
  225. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  226. package/lib/cjs/internal/ServerBasedLocks.js +6 -6
  227. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  228. package/lib/cjs/internal/Symbols.d.ts +7 -0
  229. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  230. package/lib/cjs/internal/Symbols.js +8 -1
  231. package/lib/cjs/internal/Symbols.js.map +1 -1
  232. package/lib/cjs/internal/cross-package.js.map +1 -1
  233. package/lib/cjs/internal/workspace/SettingsImpl.js +6 -9
  234. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  235. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
  236. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  237. package/lib/cjs/internal/workspace/WorkspaceImpl.js +22 -17
  238. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  239. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
  240. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  241. package/lib/cjs/rpc/multipart.d.ts.map +1 -1
  242. package/lib/cjs/rpc/multipart.js +2 -1
  243. package/lib/cjs/rpc/multipart.js.map +1 -1
  244. package/lib/cjs/rpc/tracing.js +2 -2
  245. package/lib/cjs/rpc/tracing.js.map +1 -1
  246. package/lib/cjs/rpc/web/logging.js.map +1 -1
  247. package/lib/cjs/rpc/web/request.d.ts.map +1 -1
  248. package/lib/cjs/rpc/web/request.js +2 -1
  249. package/lib/cjs/rpc/web/request.js.map +1 -1
  250. package/lib/cjs/rpc/web/response.js.map +1 -1
  251. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  252. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +4 -2
  253. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  254. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
  255. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  256. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  257. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +4 -3
  258. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  259. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  260. package/lib/cjs/workspace/Settings.js.map +1 -1
  261. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  262. package/lib/cjs/workspace/Workspace.js.map +1 -1
  263. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  264. package/package.json +23 -20
@@ -10,20 +10,21 @@ exports.ChangesetECAdaptor = exports.PartialECChangeUnifier = void 0;
10
10
  */
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  class ECDbMap {
13
+ db;
14
+ _cachedClassMaps = new Map();
15
+ _cacheTables = new Map();
13
16
  constructor(db) {
14
17
  this.db = db;
15
- this._cachedClassMaps = new Map();
16
- this._cacheTables = new Map();
17
18
  }
18
19
  getAllDerivedClasses(classFullName) {
19
- const sql = `
20
- SELECT format('0x%x', ch.ClassId)
21
- FROM [ec_cache_ClassHierarchy] [ch]
22
- JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
23
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
24
- WHERE (([sc].[Alias] = :schemaNameOrAlias
25
- OR [sc].[Name] = :schemaNameOrAlias)
26
- AND ([cs].[Name] = :className))
20
+ const sql = `
21
+ SELECT format('0x%x', ch.ClassId)
22
+ FROM [ec_cache_ClassHierarchy] [ch]
23
+ JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
24
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
25
+ WHERE (([sc].[Alias] = :schemaNameOrAlias
26
+ OR [sc].[Name] = :schemaNameOrAlias)
27
+ AND ([cs].[Name] = :className))
27
28
  `;
28
29
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
29
30
  const parts = classFullName.indexOf(".") !== -1 ? classFullName.split(".") : classFullName.split(":");
@@ -38,39 +39,39 @@ class ECDbMap {
38
39
  getTable(tableName) {
39
40
  if (this._cacheTables.has(tableName))
40
41
  return this._cacheTables.get(tableName);
41
- const sql = `
42
- SELECT
43
- JSON_OBJECT (
44
- 'id', FORMAT ('0x%x', [t].[id]),
45
- 'name', [t].[Name],
46
- 'type', (
47
- CASE
48
- [t].[type]
49
- WHEN 0 THEN 'Primary'
50
- WHEN 1 THEN 'Joined'
51
- WHEN 2 THEN 'Existing'
52
- WHEN 3 THEN 'Overflow'
53
- WHEN 4 THEN 'Virtual'
54
- END
55
- ),
56
- 'exclusiveRootClassId', FORMAT ('0x%x',
57
- COALESCE (
58
- [t].[ExclusiveRootClassId], (
59
- SELECT [parent].[ExclusiveRootClassId]
60
- FROM [ec_Table] [parent]
61
- WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
62
- 'isClassIdVirtual', (
63
- SELECT
64
- [c].[IsVirtual]
65
- FROM
66
- [ec_Column] [c]
67
- WHERE
68
- [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
69
- )
70
- )
71
- FROM [ec_Table] [t]
72
- WHERE
73
- [t].[Name] = ?;
42
+ const sql = `
43
+ SELECT
44
+ JSON_OBJECT (
45
+ 'id', FORMAT ('0x%x', [t].[id]),
46
+ 'name', [t].[Name],
47
+ 'type', (
48
+ CASE
49
+ [t].[type]
50
+ WHEN 0 THEN 'Primary'
51
+ WHEN 1 THEN 'Joined'
52
+ WHEN 2 THEN 'Existing'
53
+ WHEN 3 THEN 'Overflow'
54
+ WHEN 4 THEN 'Virtual'
55
+ END
56
+ ),
57
+ 'exclusiveRootClassId', FORMAT ('0x%x',
58
+ COALESCE (
59
+ [t].[ExclusiveRootClassId], (
60
+ SELECT [parent].[ExclusiveRootClassId]
61
+ FROM [ec_Table] [parent]
62
+ WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
63
+ 'isClassIdVirtual', (
64
+ SELECT
65
+ [c].[IsVirtual]
66
+ FROM
67
+ [ec_Column] [c]
68
+ WHERE
69
+ [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
70
+ )
71
+ )
72
+ FROM [ec_Table] [t]
73
+ WHERE
74
+ [t].[Name] = ?;
74
75
  `;
75
76
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
76
77
  stmt.bindString(1, tableName);
@@ -91,186 +92,186 @@ class ECDbMap {
91
92
  getClassMap(classId) {
92
93
  if (this._cachedClassMaps.has(classId))
93
94
  return this._cachedClassMaps.get(classId);
94
- const sql = `
95
- SELECT
96
- JSON_OBJECT(
97
- 'id', format('0x%x', cs.id),
98
- 'name', format('%s:%s', ss.Name, cs.Name),
99
- 'mapStrategy',
100
- (
101
- CASE cm.MapStrategy
102
- WHEN 0 THEN 'NotMapped'
103
- WHEN 1 THEN 'OwnTable'
104
- WHEN 2 THEN 'TablePerHierarchy'
105
- WHEN 3 THEN 'ExistingTable'
106
- WHEN 10 THEN 'ForeignKeyInTargetTable'
107
- WHEN 11 THEN 'ForeignKeyInSourceTable'
108
- END
109
- ),
110
- 'type',
111
- (
112
- CASE cs.Type
113
- WHEN 0 THEN 'Entity'
114
- WHEN 1 THEN 'Relationship'
115
- WHEN 2 THEN 'Struct'
116
- WHEN 3 THEN 'CustomAttribute'
117
- END
118
- ),
119
- 'modifier',
120
- (
121
- CASE cs.Modifier
122
- WHEN 0 THEN 'None'
123
- WHEN 1 THEN 'Abstract'
124
- WHEN 2 THEN 'Sealed'
125
- END
126
- ),
127
- 'properties',
128
- (
129
- SELECT
130
- JSON_GROUP_ARRAY(JSON(propJson))
131
- FROM
132
- (
133
- SELECT
134
- JSON_OBJECT(
135
- 'id', format('0x%x', pt.id),
136
- 'name', pt.Name,
137
- 'kind',
138
- (
139
- CASE pt.Kind
140
- WHEN 0 THEN 'Primitive'
141
- WHEN 1 THEN 'Struct'
142
- WHEN 2 THEN 'PrimitiveArray'
143
- WHEN 3 THEN 'StructArray'
144
- WHEN 4 THEN 'Navigation'
145
- END
146
- ),
147
- 'primitiveType',
148
- (
149
- CASE pt.PrimitiveType
150
- WHEN 0x101 THEN 'Binary'
151
- WHEN 0x201 THEN 'Boolean'
152
- WHEN 0x301 THEN 'DateTime'
153
- WHEN 0x401 THEN 'Double'
154
- WHEN 0x501 THEN 'Integer'
155
- WHEN 0x601 THEN 'Long'
156
- WHEN 0x701 THEN 'Point2d'
157
- WHEN 0x801 THEN 'Point3d'
158
- WHEN 0x901 THEN 'String'
159
- WHEN 0xa01 THEN 'IGeometry'
160
- END
161
- ),
162
- 'extendedTypeName', ExtendedTypeName,
163
- 'navigationRelationship',
164
- (
165
- SELECT
166
- JSON_OBJECT(
167
- 'classId', format('0x%x', nc.Id),
168
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
169
- )
170
- FROM ec_Class nc
171
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
172
- WHERE
173
- nc.Id = pt.NavigationRelationshipClassId
174
- ),
175
- 'structClass',
176
- (
177
- SELECT
178
- JSON_OBJECT(
179
- 'classId', format('0x%x', nc.Id),
180
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
181
- )
182
- FROM ec_Class nc
183
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
184
- WHERE
185
- nc.Id = pt.StructClassId
186
- ),
187
- 'dateTimeInfo', (
188
- SELECT
189
- JSON_OBJECT (
190
- 'dateTimeKind', (
191
- CASE
192
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
193
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
194
- ELSE 'Unspecified'
195
- END
196
- ),
197
- 'dateTimeComponent', (
198
- CASE
199
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
200
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
201
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
202
- ELSE 'DateTime'
203
- END
204
- )
205
- )
206
- FROM
207
- [ec_CustomAttribute] [ca]
208
- JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
209
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
210
- WHERE
211
- [ca].[ContainerType] = 992
212
- AND [cl].[Name] = 'DateTimeInfo'
213
- AND [sc].[Name] = 'CoreCustomAttributes'
214
- AND [ca].[ContainerId] = [pt].[Id]
215
- ),
216
- 'columns',
217
- (
218
- SELECT
219
- JSON_GROUP_ARRAY(JSON(columnJson))
220
- FROM
221
- (
222
- SELECT
223
- JSON_OBJECT(
224
- 'table', tb.Name,
225
- 'column', cc.Name,
226
- 'type',
227
- (
228
- CASE cc.Type
229
- WHEN 0 THEN 'Any'
230
- WHEN 1 THEN 'Boolean'
231
- WHEN 2 THEN 'Blob'
232
- WHEN 3 THEN 'Timestamp'
233
- WHEN 4 THEN 'Real'
234
- WHEN 5 THEN 'Integer'
235
- WHEN 6 THEN 'Text'
236
- END
237
- ),
238
- 'columnKind',
239
- (
240
- CASE cc.ColumnKind
241
- WHEN 0 THEN 'Default'
242
- WHEN 1 THEN 'Id'
243
- WHEN 2 THEN 'ClassId'
244
- WHEN 4 THEN 'SharedData'
245
- END
246
- ),
247
- 'accessString', pp0.AccessString,
248
- 'isVirtual', cc.IsVirtual OR tb.Type = 4
249
- ) columnJson
250
- FROM [ec_PropertyMap] [pm0]
251
- JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
252
- JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
253
- JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
254
- WHERE
255
- [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
256
- )
257
- )
258
- ) propJson
259
- FROM [ec_PropertyMap] [pm]
260
- JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
261
- JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
262
- WHERE
263
- pm.ClassId = cs.Id
264
- GROUP BY
265
- pt.Id
266
- )
267
- )
268
- ) classDef
269
- FROM [ec_Class] [cs]
270
- JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
271
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
272
- WHERE
273
- [cs].[Id] = ?
95
+ const sql = `
96
+ SELECT
97
+ JSON_OBJECT(
98
+ 'id', format('0x%x', cs.id),
99
+ 'name', format('%s:%s', ss.Name, cs.Name),
100
+ 'mapStrategy',
101
+ (
102
+ CASE cm.MapStrategy
103
+ WHEN 0 THEN 'NotMapped'
104
+ WHEN 1 THEN 'OwnTable'
105
+ WHEN 2 THEN 'TablePerHierarchy'
106
+ WHEN 3 THEN 'ExistingTable'
107
+ WHEN 10 THEN 'ForeignKeyInTargetTable'
108
+ WHEN 11 THEN 'ForeignKeyInSourceTable'
109
+ END
110
+ ),
111
+ 'type',
112
+ (
113
+ CASE cs.Type
114
+ WHEN 0 THEN 'Entity'
115
+ WHEN 1 THEN 'Relationship'
116
+ WHEN 2 THEN 'Struct'
117
+ WHEN 3 THEN 'CustomAttribute'
118
+ END
119
+ ),
120
+ 'modifier',
121
+ (
122
+ CASE cs.Modifier
123
+ WHEN 0 THEN 'None'
124
+ WHEN 1 THEN 'Abstract'
125
+ WHEN 2 THEN 'Sealed'
126
+ END
127
+ ),
128
+ 'properties',
129
+ (
130
+ SELECT
131
+ JSON_GROUP_ARRAY(JSON(propJson))
132
+ FROM
133
+ (
134
+ SELECT
135
+ JSON_OBJECT(
136
+ 'id', format('0x%x', pt.id),
137
+ 'name', pt.Name,
138
+ 'kind',
139
+ (
140
+ CASE pt.Kind
141
+ WHEN 0 THEN 'Primitive'
142
+ WHEN 1 THEN 'Struct'
143
+ WHEN 2 THEN 'PrimitiveArray'
144
+ WHEN 3 THEN 'StructArray'
145
+ WHEN 4 THEN 'Navigation'
146
+ END
147
+ ),
148
+ 'primitiveType',
149
+ (
150
+ CASE pt.PrimitiveType
151
+ WHEN 0x101 THEN 'Binary'
152
+ WHEN 0x201 THEN 'Boolean'
153
+ WHEN 0x301 THEN 'DateTime'
154
+ WHEN 0x401 THEN 'Double'
155
+ WHEN 0x501 THEN 'Integer'
156
+ WHEN 0x601 THEN 'Long'
157
+ WHEN 0x701 THEN 'Point2d'
158
+ WHEN 0x801 THEN 'Point3d'
159
+ WHEN 0x901 THEN 'String'
160
+ WHEN 0xa01 THEN 'IGeometry'
161
+ END
162
+ ),
163
+ 'extendedTypeName', ExtendedTypeName,
164
+ 'navigationRelationship',
165
+ (
166
+ SELECT
167
+ JSON_OBJECT(
168
+ 'classId', format('0x%x', nc.Id),
169
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
170
+ )
171
+ FROM ec_Class nc
172
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
173
+ WHERE
174
+ nc.Id = pt.NavigationRelationshipClassId
175
+ ),
176
+ 'structClass',
177
+ (
178
+ SELECT
179
+ JSON_OBJECT(
180
+ 'classId', format('0x%x', nc.Id),
181
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
182
+ )
183
+ FROM ec_Class nc
184
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
185
+ WHERE
186
+ nc.Id = pt.StructClassId
187
+ ),
188
+ 'dateTimeInfo', (
189
+ SELECT
190
+ JSON_OBJECT (
191
+ 'dateTimeKind', (
192
+ CASE
193
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
194
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
195
+ ELSE 'Unspecified'
196
+ END
197
+ ),
198
+ 'dateTimeComponent', (
199
+ CASE
200
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
201
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
202
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
203
+ ELSE 'DateTime'
204
+ END
205
+ )
206
+ )
207
+ FROM
208
+ [ec_CustomAttribute] [ca]
209
+ JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
210
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
211
+ WHERE
212
+ [ca].[ContainerType] = 992
213
+ AND [cl].[Name] = 'DateTimeInfo'
214
+ AND [sc].[Name] = 'CoreCustomAttributes'
215
+ AND [ca].[ContainerId] = [pt].[Id]
216
+ ),
217
+ 'columns',
218
+ (
219
+ SELECT
220
+ JSON_GROUP_ARRAY(JSON(columnJson))
221
+ FROM
222
+ (
223
+ SELECT
224
+ JSON_OBJECT(
225
+ 'table', tb.Name,
226
+ 'column', cc.Name,
227
+ 'type',
228
+ (
229
+ CASE cc.Type
230
+ WHEN 0 THEN 'Any'
231
+ WHEN 1 THEN 'Boolean'
232
+ WHEN 2 THEN 'Blob'
233
+ WHEN 3 THEN 'Timestamp'
234
+ WHEN 4 THEN 'Real'
235
+ WHEN 5 THEN 'Integer'
236
+ WHEN 6 THEN 'Text'
237
+ END
238
+ ),
239
+ 'columnKind',
240
+ (
241
+ CASE cc.ColumnKind
242
+ WHEN 0 THEN 'Default'
243
+ WHEN 1 THEN 'Id'
244
+ WHEN 2 THEN 'ClassId'
245
+ WHEN 4 THEN 'SharedData'
246
+ END
247
+ ),
248
+ 'accessString', pp0.AccessString,
249
+ 'isVirtual', cc.IsVirtual OR tb.Type = 4
250
+ ) columnJson
251
+ FROM [ec_PropertyMap] [pm0]
252
+ JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
253
+ JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
254
+ JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
255
+ WHERE
256
+ [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
257
+ )
258
+ )
259
+ ) propJson
260
+ FROM [ec_PropertyMap] [pm]
261
+ JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
262
+ JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
263
+ WHERE
264
+ pm.ClassId = cs.Id
265
+ GROUP BY
266
+ pt.Id
267
+ )
268
+ )
269
+ ) classDef
270
+ FROM [ec_Class] [cs]
271
+ JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
272
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
273
+ WHERE
274
+ [cs].[Id] = ?
274
275
  `;
275
276
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
276
277
  stmt.bindId(1, classId);
@@ -327,10 +328,8 @@ var DateTime;
327
328
  * @beta
328
329
  */
329
330
  class PartialECChangeUnifier {
330
- constructor() {
331
- this._cache = new Map();
332
- this._readonly = false;
333
- }
331
+ _cache = new Map();
332
+ _readonly = false;
334
333
  /**
335
334
  * Get root class id for a given class
336
335
  * @param classId given class id
@@ -338,27 +337,27 @@ class PartialECChangeUnifier {
338
337
  * @returns return root class id
339
338
  */
340
339
  static getRootClassId(classId, db) {
341
- const sql = `
342
- WITH
343
- [base_class]([classId], [baseClassId], [Level]) AS(
344
- SELECT [ch].[ClassId], [ch].[BaseClassId], 0
345
- FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
346
- UNION ALL
347
- SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
348
- FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
349
-
350
- )
351
- SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
352
- FROM [base_class] [bc]
353
- WHERE [bc].[ClassId] <> [bc].[BaseClassId]
354
- AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
355
- FROM [ec_CustomAttribute] [ca]
356
- WHERE [ca].[ContainerType] = 30
357
- AND [ca].[ClassId] IN (SELECT [cc].[Id]
358
- FROM [ec_Class] [cc]
359
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
360
- WHERE [cc].[Name] = 'IsMixIn'
361
- AND [ss].[Name] = 'CoreCustomAttributes'))
340
+ const sql = `
341
+ WITH
342
+ [base_class]([classId], [baseClassId], [Level]) AS(
343
+ SELECT [ch].[ClassId], [ch].[BaseClassId], 0
344
+ FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
345
+ UNION ALL
346
+ SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
347
+ FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
348
+
349
+ )
350
+ SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
351
+ FROM [base_class] [bc]
352
+ WHERE [bc].[ClassId] <> [bc].[BaseClassId]
353
+ AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
354
+ FROM [ec_CustomAttribute] [ca]
355
+ WHERE [ca].[ContainerType] = 30
356
+ AND [ca].[ClassId] IN (SELECT [cc].[Id]
357
+ FROM [ec_Class] [cc]
358
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
359
+ WHERE [cc].[Name] = 'IsMixIn'
360
+ AND [ss].[Name] = 'CoreCustomAttributes'))
362
361
  ORDER BY [Level] DESC`;
363
362
  return db.withSqliteStatement(sql, (stmt) => {
364
363
  stmt.bindId(1, classId);
@@ -473,6 +472,31 @@ exports.PartialECChangeUnifier = PartialECChangeUnifier;
473
472
  *
474
473
  */
475
474
  class ChangesetECAdaptor {
475
+ reader;
476
+ disableMetaData;
477
+ _mapCache;
478
+ _tableFilter = new Set();
479
+ _opFilter = new Set();
480
+ _classFilter = new Set();
481
+ _allowedClasses = new Set();
482
+ /**
483
+ * set debug flags
484
+ */
485
+ debugFlags = {
486
+ replaceBlobWithEllipsis: false, // replace bolb with ... for debugging
487
+ replaceGeomWithEllipsis: false, // replace geom with ... for debugging
488
+ replaceGuidWithEllipsis: false, // replace geom with ... for debugging
489
+ };
490
+ /**
491
+ * Return partial inserted instance
492
+ * For updates inserted represent new version of instance after update.
493
+ */
494
+ inserted;
495
+ /**
496
+ * Return partial deleted instance.
497
+ * For updates deleted represent old version of instance before update.
498
+ */
499
+ deleted;
476
500
  /**
477
501
  * Setup filter that will result in change enumeration restricted to
478
502
  * list of tables added by acceptTable().
@@ -525,18 +549,6 @@ class ChangesetECAdaptor {
525
549
  constructor(reader, disableMetaData = false) {
526
550
  this.reader = reader;
527
551
  this.disableMetaData = disableMetaData;
528
- this._tableFilter = new Set();
529
- this._opFilter = new Set();
530
- this._classFilter = new Set();
531
- this._allowedClasses = new Set();
532
- /**
533
- * set debug flags
534
- */
535
- this.debugFlags = {
536
- replaceBlobWithEllipsis: false, // replace bolb with ... for debugging
537
- replaceGeomWithEllipsis: false, // replace geom with ... for debugging
538
- replaceGuidWithEllipsis: false, // replace geom with ... for debugging
539
- };
540
552
  if (!reader.disableSchemaCheck)
541
553
  throw new Error("SqliteChangesetReader, 'disableSchemaCheck' param must be set to false.");
542
554
  this._mapCache = new ECDbMap(reader.db);
@@ -544,7 +556,7 @@ class ChangesetECAdaptor {
544
556
  /**
545
557
  * dispose current instance and it will also dispose the changeset reader.
546
558
  */
547
- dispose() {
559
+ [Symbol.dispose]() {
548
560
  this.close();
549
561
  }
550
562
  /**