@itwin/core-backend 5.9.0-dev.9 → 5.10.0-dev.1

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 (539) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +6 -3
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js +2 -2
  12. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  13. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  14. package/lib/cjs/ChangesetECAdaptor.d.ts +9 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  16. package/lib/cjs/ChangesetECAdaptor.js +255 -249
  17. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  18. package/lib/cjs/ChangesetReader.d.ts +186 -0
  19. package/lib/cjs/ChangesetReader.d.ts.map +1 -0
  20. package/lib/cjs/ChangesetReader.js +372 -0
  21. package/lib/cjs/ChangesetReader.js.map +1 -0
  22. package/lib/cjs/ChangesetReaderTypes.d.ts +120 -0
  23. package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -0
  24. package/lib/cjs/ChangesetReaderTypes.js +23 -0
  25. package/lib/cjs/ChangesetReaderTypes.js.map +1 -0
  26. package/lib/cjs/ChannelControl.js.map +1 -1
  27. package/lib/cjs/CheckpointManager.js.map +1 -1
  28. package/lib/cjs/ClassRegistry.js +5 -5
  29. package/lib/cjs/ClassRegistry.js.map +1 -1
  30. package/lib/cjs/CloudSqlite.d.ts +1 -1
  31. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  32. package/lib/cjs/CloudSqlite.js +68 -13
  33. package/lib/cjs/CloudSqlite.js.map +1 -1
  34. package/lib/cjs/CodeService.js.map +1 -1
  35. package/lib/cjs/CodeSpecs.js.map +1 -1
  36. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  37. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  38. package/lib/cjs/DevTools.js.map +1 -1
  39. package/lib/cjs/DisplayStyle.js.map +1 -1
  40. package/lib/cjs/ECDb.js.map +1 -1
  41. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  42. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  43. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  44. package/lib/cjs/ECSqlStatement.js.map +1 -1
  45. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  46. package/lib/cjs/EditTxn.d.ts +55 -1
  47. package/lib/cjs/EditTxn.d.ts.map +1 -1
  48. package/lib/cjs/EditTxn.js +43 -1
  49. package/lib/cjs/EditTxn.js.map +1 -1
  50. package/lib/cjs/Element.d.ts +69 -0
  51. package/lib/cjs/Element.d.ts.map +1 -1
  52. package/lib/cjs/Element.js +36 -0
  53. package/lib/cjs/Element.js.map +1 -1
  54. package/lib/cjs/ElementAspect.js.map +1 -1
  55. package/lib/cjs/ElementGraphics.js.map +1 -1
  56. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  57. package/lib/cjs/Entity.js.map +1 -1
  58. package/lib/cjs/EntityReferences.js.map +1 -1
  59. package/lib/cjs/ExportGraphics.js.map +1 -1
  60. package/lib/cjs/ExternalSource.js.map +1 -1
  61. package/lib/cjs/FontFile.js.map +1 -1
  62. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  63. package/lib/cjs/GeographicCRSServices.d.ts +15 -0
  64. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  65. package/lib/cjs/GeographicCRSServices.js +13 -4
  66. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  67. package/lib/cjs/GeometrySummary.js +47 -47
  68. package/lib/cjs/GeometrySummary.js.map +1 -1
  69. package/lib/cjs/IModelDb.d.ts +9 -1
  70. package/lib/cjs/IModelDb.d.ts.map +1 -1
  71. package/lib/cjs/IModelDb.js +32 -13
  72. package/lib/cjs/IModelDb.js.map +1 -1
  73. package/lib/cjs/IModelDbFonts.js.map +1 -1
  74. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  75. package/lib/cjs/IModelHost.js.map +1 -1
  76. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  77. package/lib/cjs/IModelJsFs.js.map +1 -1
  78. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  79. package/lib/cjs/IpcHost.d.ts.map +1 -1
  80. package/lib/cjs/IpcHost.js +20 -9
  81. package/lib/cjs/IpcHost.js.map +1 -1
  82. package/lib/cjs/LineStyle.js.map +1 -1
  83. package/lib/cjs/LocalHub.js +1 -1
  84. package/lib/cjs/LocalHub.js.map +1 -1
  85. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  86. package/lib/cjs/LockControl.js.map +1 -1
  87. package/lib/cjs/Material.js.map +1 -1
  88. package/lib/cjs/Model.d.ts +34 -0
  89. package/lib/cjs/Model.d.ts.map +1 -1
  90. package/lib/cjs/Model.js +24 -0
  91. package/lib/cjs/Model.js.map +1 -1
  92. package/lib/cjs/NativeAppStorage.js.map +1 -1
  93. package/lib/cjs/NativeHost.js.map +1 -1
  94. package/lib/cjs/NavigationRelationship.js.map +1 -1
  95. package/lib/cjs/PartialChangeUnifier.d.ts +77 -0
  96. package/lib/cjs/PartialChangeUnifier.d.ts.map +1 -0
  97. package/lib/cjs/PartialChangeUnifier.js +234 -0
  98. package/lib/cjs/PartialChangeUnifier.js.map +1 -0
  99. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  100. package/lib/cjs/PropertyStore.js.map +1 -1
  101. package/lib/cjs/Relationship.js.map +1 -1
  102. package/lib/cjs/RpcBackend.js.map +1 -1
  103. package/lib/cjs/SQLiteDb.js.map +1 -1
  104. package/lib/cjs/Schema.js.map +1 -1
  105. package/lib/cjs/SchemaSync.js.map +1 -1
  106. package/lib/cjs/SchemaUtils.js.map +1 -1
  107. package/lib/cjs/SheetIndex.js.map +1 -1
  108. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  109. package/lib/cjs/SqliteChangesetReader.js +1 -1
  110. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  111. package/lib/cjs/SqliteStatement.js.map +1 -1
  112. package/lib/cjs/StashManager.js.map +1 -1
  113. package/lib/cjs/Texture.js.map +1 -1
  114. package/lib/cjs/TileStorage.js.map +1 -1
  115. package/lib/cjs/TxnManager.d.ts +14 -0
  116. package/lib/cjs/TxnManager.d.ts.map +1 -1
  117. package/lib/cjs/TxnManager.js +25 -0
  118. package/lib/cjs/TxnManager.js.map +1 -1
  119. package/lib/cjs/ViewDefinition.d.ts +19 -7
  120. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  121. package/lib/cjs/ViewDefinition.js +77 -25
  122. package/lib/cjs/ViewDefinition.js.map +1 -1
  123. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  124. package/lib/cjs/ViewStore.d.ts.map +1 -1
  125. package/lib/cjs/ViewStore.js +63 -21
  126. package/lib/cjs/ViewStore.js.map +1 -1
  127. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  128. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  129. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  130. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  131. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  132. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  134. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  135. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  136. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  137. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  138. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  139. package/lib/cjs/core-backend.d.ts +3 -0
  140. package/lib/cjs/core-backend.d.ts.map +1 -1
  141. package/lib/cjs/core-backend.js +3 -0
  142. package/lib/cjs/core-backend.js.map +1 -1
  143. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  145. package/lib/cjs/domains/GenericElements.js.map +1 -1
  146. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  147. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  148. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  149. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  150. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  151. package/lib/cjs/internal/HubMock.js.map +1 -1
  152. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  153. package/lib/cjs/internal/IntegrityCheck.d.ts +10 -10
  154. package/lib/cjs/internal/IntegrityCheck.js +22 -22
  155. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  156. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  157. package/lib/cjs/internal/NoLocks.js.map +1 -1
  158. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  159. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  160. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  161. package/lib/cjs/internal/Symbols.js.map +1 -1
  162. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  163. package/lib/cjs/internal/cross-package.js.map +1 -1
  164. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  165. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  166. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  167. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  168. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  169. package/lib/cjs/rpc/multipart.js.map +1 -1
  170. package/lib/cjs/rpc/tracing.js.map +1 -1
  171. package/lib/cjs/rpc/web/logging.js.map +1 -1
  172. package/lib/cjs/rpc/web/request.js.map +1 -1
  173. package/lib/cjs/rpc/web/response.js.map +1 -1
  174. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  175. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  176. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  177. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  178. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  179. package/lib/cjs/workspace/Settings.d.ts +6 -4
  180. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  181. package/lib/cjs/workspace/Settings.js.map +1 -1
  182. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  183. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  184. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  185. package/lib/cjs/workspace/Workspace.js.map +1 -1
  186. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  187. package/lib/esm/BackendHubAccess.js.map +1 -1
  188. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  189. package/lib/esm/BisCoreSchema.js.map +1 -1
  190. package/lib/esm/BlobContainerService.js.map +1 -1
  191. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  192. package/lib/esm/BriefcaseManager.js +6 -3
  193. package/lib/esm/BriefcaseManager.js.map +1 -1
  194. package/lib/esm/CatalogDb.js.map +1 -1
  195. package/lib/esm/Category.js.map +1 -1
  196. package/lib/esm/ChangeSummaryManager.js +2 -2
  197. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  198. package/lib/esm/ChangedElementsDb.js.map +1 -1
  199. package/lib/esm/ChangesetECAdaptor.d.ts +9 -1
  200. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  201. package/lib/esm/ChangesetECAdaptor.js +255 -249
  202. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  203. package/lib/esm/ChangesetReader.d.ts +186 -0
  204. package/lib/esm/ChangesetReader.d.ts.map +1 -0
  205. package/lib/esm/ChangesetReader.js +368 -0
  206. package/lib/esm/ChangesetReader.js.map +1 -0
  207. package/lib/esm/ChangesetReaderTypes.d.ts +120 -0
  208. package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -0
  209. package/lib/esm/ChangesetReaderTypes.js +20 -0
  210. package/lib/esm/ChangesetReaderTypes.js.map +1 -0
  211. package/lib/esm/ChannelControl.js.map +1 -1
  212. package/lib/esm/CheckpointManager.js.map +1 -1
  213. package/lib/esm/ClassRegistry.js +5 -5
  214. package/lib/esm/ClassRegistry.js.map +1 -1
  215. package/lib/esm/CloudSqlite.d.ts +1 -1
  216. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  217. package/lib/esm/CloudSqlite.js +69 -14
  218. package/lib/esm/CloudSqlite.js.map +1 -1
  219. package/lib/esm/CodeService.js.map +1 -1
  220. package/lib/esm/CodeSpecs.js.map +1 -1
  221. package/lib/esm/ConcurrentQuery.js.map +1 -1
  222. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  223. package/lib/esm/DevTools.js.map +1 -1
  224. package/lib/esm/DisplayStyle.js.map +1 -1
  225. package/lib/esm/ECDb.js.map +1 -1
  226. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  227. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  228. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  229. package/lib/esm/ECSqlStatement.js.map +1 -1
  230. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  231. package/lib/esm/EditTxn.d.ts +55 -1
  232. package/lib/esm/EditTxn.d.ts.map +1 -1
  233. package/lib/esm/EditTxn.js +43 -1
  234. package/lib/esm/EditTxn.js.map +1 -1
  235. package/lib/esm/Element.d.ts +69 -0
  236. package/lib/esm/Element.d.ts.map +1 -1
  237. package/lib/esm/Element.js +36 -0
  238. package/lib/esm/Element.js.map +1 -1
  239. package/lib/esm/ElementAspect.js.map +1 -1
  240. package/lib/esm/ElementGraphics.js.map +1 -1
  241. package/lib/esm/ElementTreeWalker.js.map +1 -1
  242. package/lib/esm/Entity.js.map +1 -1
  243. package/lib/esm/EntityReferences.js.map +1 -1
  244. package/lib/esm/ExportGraphics.js.map +1 -1
  245. package/lib/esm/ExternalSource.js.map +1 -1
  246. package/lib/esm/FontFile.js.map +1 -1
  247. package/lib/esm/GeoCoordConfig.js.map +1 -1
  248. package/lib/esm/GeographicCRSServices.d.ts +15 -0
  249. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  250. package/lib/esm/GeographicCRSServices.js +12 -4
  251. package/lib/esm/GeographicCRSServices.js.map +1 -1
  252. package/lib/esm/GeometrySummary.js +47 -47
  253. package/lib/esm/GeometrySummary.js.map +1 -1
  254. package/lib/esm/IModelDb.d.ts +9 -1
  255. package/lib/esm/IModelDb.d.ts.map +1 -1
  256. package/lib/esm/IModelDb.js +33 -14
  257. package/lib/esm/IModelDb.js.map +1 -1
  258. package/lib/esm/IModelDbFonts.js.map +1 -1
  259. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  260. package/lib/esm/IModelHost.js.map +1 -1
  261. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  262. package/lib/esm/IModelJsFs.js.map +1 -1
  263. package/lib/esm/ImageSourceConversion.js.map +1 -1
  264. package/lib/esm/IpcHost.d.ts.map +1 -1
  265. package/lib/esm/IpcHost.js +20 -9
  266. package/lib/esm/IpcHost.js.map +1 -1
  267. package/lib/esm/LineStyle.js.map +1 -1
  268. package/lib/esm/LocalHub.js +1 -1
  269. package/lib/esm/LocalHub.js.map +1 -1
  270. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  271. package/lib/esm/LockControl.js.map +1 -1
  272. package/lib/esm/Material.js.map +1 -1
  273. package/lib/esm/Model.d.ts +34 -0
  274. package/lib/esm/Model.d.ts.map +1 -1
  275. package/lib/esm/Model.js +24 -0
  276. package/lib/esm/Model.js.map +1 -1
  277. package/lib/esm/NativeAppStorage.js.map +1 -1
  278. package/lib/esm/NativeHost.js.map +1 -1
  279. package/lib/esm/NavigationRelationship.js.map +1 -1
  280. package/lib/esm/PartialChangeUnifier.d.ts +77 -0
  281. package/lib/esm/PartialChangeUnifier.d.ts.map +1 -0
  282. package/lib/esm/PartialChangeUnifier.js +230 -0
  283. package/lib/esm/PartialChangeUnifier.js.map +1 -0
  284. package/lib/esm/PromiseMemoizer.js.map +1 -1
  285. package/lib/esm/PropertyStore.js.map +1 -1
  286. package/lib/esm/Relationship.js.map +1 -1
  287. package/lib/esm/RpcBackend.js.map +1 -1
  288. package/lib/esm/SQLiteDb.js.map +1 -1
  289. package/lib/esm/Schema.js.map +1 -1
  290. package/lib/esm/SchemaSync.js.map +1 -1
  291. package/lib/esm/SchemaUtils.js.map +1 -1
  292. package/lib/esm/SheetIndex.js.map +1 -1
  293. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
  294. package/lib/esm/SqliteChangesetReader.js +1 -1
  295. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  296. package/lib/esm/SqliteStatement.js.map +1 -1
  297. package/lib/esm/StashManager.js.map +1 -1
  298. package/lib/esm/Texture.js.map +1 -1
  299. package/lib/esm/TileStorage.js.map +1 -1
  300. package/lib/esm/TxnManager.d.ts +14 -0
  301. package/lib/esm/TxnManager.d.ts.map +1 -1
  302. package/lib/esm/TxnManager.js +25 -0
  303. package/lib/esm/TxnManager.js.map +1 -1
  304. package/lib/esm/ViewDefinition.d.ts +19 -7
  305. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  306. package/lib/esm/ViewDefinition.js +78 -26
  307. package/lib/esm/ViewDefinition.js.map +1 -1
  308. package/lib/esm/ViewStateHydrator.js.map +1 -1
  309. package/lib/esm/ViewStore.d.ts.map +1 -1
  310. package/lib/esm/ViewStore.js +64 -22
  311. package/lib/esm/ViewStore.js.map +1 -1
  312. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  313. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  314. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  315. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  316. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  317. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  318. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  319. package/lib/esm/core-backend.d.ts +3 -0
  320. package/lib/esm/core-backend.d.ts.map +1 -1
  321. package/lib/esm/core-backend.js +3 -0
  322. package/lib/esm/core-backend.js.map +1 -1
  323. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  324. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  325. package/lib/esm/domains/GenericElements.js.map +1 -1
  326. package/lib/esm/domains/GenericSchema.js.map +1 -1
  327. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  328. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  329. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  330. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  331. package/lib/esm/internal/HubMock.js.map +1 -1
  332. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  333. package/lib/esm/internal/IntegrityCheck.d.ts +10 -10
  334. package/lib/esm/internal/IntegrityCheck.js +22 -22
  335. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  336. package/lib/esm/internal/NativePlatform.js.map +1 -1
  337. package/lib/esm/internal/NoLocks.js.map +1 -1
  338. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  339. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  340. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  341. package/lib/esm/internal/Symbols.js.map +1 -1
  342. package/lib/esm/internal/annotations/fields.js.map +1 -1
  343. package/lib/esm/internal/cross-package.js.map +1 -1
  344. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  345. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  346. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  347. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  348. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  349. package/lib/esm/rpc/multipart.js.map +1 -1
  350. package/lib/esm/rpc/tracing.js.map +1 -1
  351. package/lib/esm/rpc/web/logging.js.map +1 -1
  352. package/lib/esm/rpc/web/request.js.map +1 -1
  353. package/lib/esm/rpc/web/response.js.map +1 -1
  354. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  355. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  356. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  357. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  358. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  359. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  360. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  361. package/lib/esm/test/AttachDb.test.js +11 -11
  362. package/lib/esm/test/AttachDb.test.js.map +1 -1
  363. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  364. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  365. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  366. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  367. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  368. package/lib/esm/test/IModelHost.test.js.map +1 -1
  369. package/lib/esm/test/IModelTestUtils.d.ts +1 -0
  370. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  371. package/lib/esm/test/IModelTestUtils.js +5 -0
  372. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  373. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  374. package/lib/esm/test/IpcHost.test.js +112 -0
  375. package/lib/esm/test/IpcHost.test.js.map +1 -1
  376. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  377. package/lib/esm/test/PrintElementTree.js.map +1 -1
  378. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  379. package/lib/esm/test/RevisionUtility.js.map +1 -1
  380. package/lib/esm/test/SchemaUtils.test.js +25 -25
  381. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  382. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  383. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  384. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  385. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  386. package/lib/esm/test/TestEditTxn.js.map +1 -1
  387. package/lib/esm/test/TestUtils.js.map +1 -1
  388. package/lib/esm/test/annotations/Fields.test.js +53 -53
  389. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  390. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  391. package/lib/esm/test/annotations/LeaderGeometry.test.js +0 -1
  392. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  393. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  394. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  395. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  396. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  397. package/lib/esm/test/categories/Category.test.js.map +1 -1
  398. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  399. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  400. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  401. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  402. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  403. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  404. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  405. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  406. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  407. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  408. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  409. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  410. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  411. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  412. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  413. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  414. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  415. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  416. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  417. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  418. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  419. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  420. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  421. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  422. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  423. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  424. package/lib/esm/test/element/DeleteDefinitionElements.test.js +819 -26
  425. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  426. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  427. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  428. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  429. package/lib/esm/test/element/ElementRoundTrip.test.js +283 -142
  430. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  431. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  432. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  433. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  434. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  435. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  436. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  437. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  438. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  439. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  440. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  441. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  442. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  443. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  444. package/lib/esm/test/hubaccess/Rebase.test.js +57 -57
  445. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  446. package/lib/esm/test/hubaccess/SemanticRebase.test.js +145 -145
  447. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  448. package/lib/esm/test/imageData.js.map +1 -1
  449. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  450. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  451. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  452. package/lib/esm/test/imodel/IModel.test.js +45 -45
  453. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  454. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  455. package/lib/esm/test/imodel/SchemaXmlImport.test.js +77 -13
  456. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  457. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  458. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  459. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  460. package/lib/esm/test/index.js.map +1 -1
  461. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  462. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  463. package/lib/esm/test/misc/GeoServices.test.js +43 -1
  464. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  465. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  466. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  467. package/lib/esm/test/rpc/response.test.js.map +1 -1
  468. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  469. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  470. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  471. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  472. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  473. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  474. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  475. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  476. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  477. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  478. package/lib/esm/test/standalone/ChangesetReader.test.js +4201 -1671
  479. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  480. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  481. package/lib/esm/test/standalone/DeleteElements.test.d.ts +2 -0
  482. package/lib/esm/test/standalone/DeleteElements.test.d.ts.map +1 -0
  483. package/lib/esm/test/standalone/DeleteElements.test.js +625 -0
  484. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -0
  485. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  486. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  487. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  488. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  489. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  490. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  491. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  492. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  493. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  494. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  495. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  496. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  497. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  498. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  499. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  500. package/lib/esm/test/standalone/IntegrityCheck.test.js +214 -5
  501. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  502. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  503. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  504. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  505. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  506. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  507. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts +2 -0
  508. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map +1 -0
  509. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +1862 -0
  510. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -0
  511. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  512. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  513. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  514. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  515. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  516. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  517. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  518. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  519. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  520. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  521. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  522. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  523. package/lib/esm/test/standalone/TxnManager.test.js +90 -0
  524. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  525. package/lib/esm/test/standalone/ViewDefinition.test.js +18 -7
  526. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  527. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  528. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  529. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  530. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  531. package/lib/esm/workspace/Settings.d.ts +6 -4
  532. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  533. package/lib/esm/workspace/Settings.js.map +1 -1
  534. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  535. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  536. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  537. package/lib/esm/workspace/Workspace.js.map +1 -1
  538. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  539. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"RenderMaterialElement.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/RenderMaterialElement.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { assert, expect } from \"chai\";\nimport { DbResult, Id64, Id64String } from \"@itwin/core-bentley\";\nimport { ImageSourceFormat, IModel, NormalMapFlags, NormalMapProps, RenderMaterialAssetMapsProps, RenderMaterialAssetProps, RenderMaterialProps, TextureMapProps } from \"@itwin/core-common\";\nimport { ChannelControl, IModelElementCloneContext, RenderMaterialElement, RenderMaterialElementParams, SnapshotDb, Texture } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { withEditTxn } from \"../../EditTxn\";\n\nfunction removeUndefined(assetProps: RenderMaterialAssetProps): RenderMaterialAssetProps {\n const input = assetProps as any;\n for (const key of Object.keys(input))\n if (input[key] === undefined)\n delete input[key];\n\n const maps = assetProps.Map as any;\n if (maps) {\n for (const mapsKey of Object.keys(maps)) {\n const map = maps[mapsKey];\n for (const mapKey of Object.keys(map))\n if (map[mapKey] === undefined)\n delete map[mapKey];\n }\n }\n\n return assetProps;\n}\n\nfunction defaultBooleans(assetProps: RenderMaterialAssetProps): RenderMaterialAssetProps {\n const boolKeys = [\"HasBaseColor\", \"HasDiffuse\", \"HasFinish\", \"HasReflect\", \"HasReflectColor\", \"HasSpecular\", \"HasSpecularColor\"] as const;\n for (const boolKey of boolKeys)\n if (undefined === assetProps[boolKey])\n assetProps[boolKey] = false;\n\n return assetProps;\n}\n\ndescribe(\"RenderMaterialElement\", () => {\n let imodel: SnapshotDb;\n let materialNumber = 0;\n let textureNumber = 0;\n\n before(() => {\n const seedFileName = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n const testFileName = IModelTestUtils.prepareOutputFile(\"ExportGraphics\", \"ExportGraphicsTest.bim\");\n imodel = IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\n });\n\n after(() => imodel.close());\n\n function test(params: Omit<RenderMaterialElementParams, \"paletteName\">, expected?: RenderMaterialAssetProps): RenderMaterialElement {\n const name = `material${++materialNumber}`;\n const paletteName = \"palette\";\n const id = withEditTxn(imodel, (txn) => RenderMaterialElement.insert(txn, IModel.dictionaryId, name, { ...params, paletteName }));\n expect(Id64.isValidId64(id)).to.be.true;\n\n const mat = imodel.elements.getElement<RenderMaterialElement>(id);\n const json = mat.toJSON();\n expect(json.jsonProperties?.materialAssets?.renderMaterial).not.to.be.undefined;\n const actual = removeUndefined(json.jsonProperties!.materialAssets!.renderMaterial!);\n\n if (expected !== undefined) {\n expected = defaultBooleans(expected);\n expect(actual).to.deep.equal(expected);\n }\n\n return mat;\n }\n\n function insertTexture(): Id64String {\n // This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in\n // bottom right pixel. The rest of the square is red.\n const pngData = new Uint8Array([\n 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217,\n 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252,\n 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65,\n 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0,\n 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130,\n ]);\n\n const name = `texture${++textureNumber}`;\n const textureId = withEditTxn(imodel, (txn) => Texture.insertTexture(txn, IModel.dictionaryId, name, ImageSourceFormat.Png, pngData));\n expect(Id64.isValidId64(textureId)).to.be.true;\n return textureId;\n }\n\n describe(\"read\", () => {\n it(\"should be able to convert TextureId to hexadecimal string outside javascript's double precision range of 2^53\", async () => {\n // LargeNumericRenderMaterialTextureId is a database with a single RenderMaterial whose jsonProperties look something like:\n // {\"materialAssets\":{\"renderMaterial\":{\"Map\":{\"Diffuse\":{\"TextureId\":9223372036854775807},\"Bump\":{\"TextureId\":18446744073709551615},\"Finish\":{\"TextureId\":13835058055282163712}}}}}\n // 9223372036854775807 is equivalent to 2^63 - 1 which is equivalent to the hexadecimal string 0x7fffffffffffffff.\n // 18446744073709551615 is equivalent to 2^64 - 1 which is equivalent to the hexadecimal string 0xffffffffffffffff.\n // 13835058055282163712 is equivalent to 2^63 + (2^63 / 2) which is equivalent to the hexadecimal string 0xc000000000000000.\n const seedFileName = IModelTestUtils.resolveAssetFile(\"LargeNumericRenderMaterialTextureId.bim\");\n\n const db = SnapshotDb.openFile(seedFileName);\n let id: Id64String;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n db.withStatement(`SELECT ECInstanceId from Bis.RenderMaterial`, (stmt) => {\n expect(stmt.step()).to.equal(DbResult.BE_SQLITE_ROW);\n id = stmt.getRow().id;\n expect(stmt.step()).to.equal(DbResult.BE_SQLITE_DONE);\n });\n const renderMatElement = db.elements.getElement<RenderMaterialElement>(id!).toJSON();\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Diffuse?.TextureId).to.equal(\"0x7fffffffffffffff\");\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Bump?.TextureId).to.equal(\"0xffffffffffffffff\");\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Finish?.TextureId).to.equal(\"0xc000000000000000\");\n db.close();\n });\n });\n\n describe(\"insert\", () => {\n it(\"with default values\", () => {\n test({}, {});\n });\n\n it(\"should convert TextureIds to hexadecimal string when loading element\", () => {\n /* eslint-disable @typescript-eslint/naming-convention */\n const maps: RenderMaterialAssetMapsProps = {\n Pattern: { TextureId: 1 },\n Normal: { TextureId: 0x0000bc0000001234 }, // TextureId has a non-zero briefcase Id\n Bump: { TextureId: 0x000000123456789a }, // TextureId has non-zero digits in the upper 32 bits\n Diffuse: { TextureId: 0x0000bc123456789a }, // TextureId has a non-zero briefcase Id and non-zero digits in the upper 32 bits.\n Finish: { TextureId: 5 },\n GlowColor: { TextureId: 6 },\n Reflect: { TextureId: 7 },\n Specular: { TextureId: 8 },\n TranslucencyColor: { OtherProp2: \"test\" }, // Should be unchanged, still present.\n TransparentColor: { TextureId: 10, OtherProp: 1 }, // OtherProp should be unchanged, still present.\n Displacement: { TextureId: \"0x1\" },\n OtherProperty: { OtherProperty: \"test\" }, // Should be unchanged.\n } as any;\n /* eslint-enable @typescript-eslint/naming-convention */\n const material = test({});\n const jsonProps = material.jsonProperties as RenderMaterialProps[\"jsonProperties\"];\n assert(jsonProps?.materialAssets?.renderMaterial && jsonProps.materialAssets.renderMaterial.Map === undefined);\n jsonProps.materialAssets.renderMaterial.Map = maps;\n withEditTxn(imodel, (txn) => material.update(txn));\n\n const pathName = imodel.pathName;\n imodel.close(); // Need to close so we can load the element back in with strings instead of numbers.\n\n imodel = SnapshotDb.openForApplyChangesets(pathName);\n imodel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n\n const mat = imodel.elements.getElement<RenderMaterialElement>(material.id);\n\n const props = mat.toJSON();\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map).to.not.be.undefined;\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Pattern?.TextureId).to.equal(\"0x1\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Normal?.TextureId).to.equal(\"0xbc0000001234\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Bump?.TextureId).to.equal(\"0x123456789a\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Diffuse?.TextureId).to.equal(\"0xbc123456789a\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Finish?.TextureId).to.equal(\"0x5\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.GlowColor?.TextureId).to.equal(\"0x6\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Reflect?.TextureId).to.equal(\"0x7\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Specular?.TextureId).to.equal(\"0x8\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TranslucencyColor?.TextureId).to.be.undefined;\n expect((props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TranslucencyColor as any).OtherProp2).to.equal(\"test\");\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TransparentColor?.TextureId).to.equal(\"0xa\");\n expect((props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TransparentColor as any).OtherProp).to.equal(1);\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Displacement?.TextureId).to.equal(\"0x1\");\n expect(((props.jsonProperties?.materialAssets?.renderMaterial?.Map as any).OtherProperty).OtherProperty).to.equal(\"test\");\n });\n\n it(\"with custom values\", () => {\n const params: Omit<RenderMaterialElementParams, \"paletteName\"> = {\n color: [1, 0, 0],\n specularColor: [0, 1, 0],\n finish: 21,\n transmit: 0.5,\n diffuse: 0.2,\n specular: 0.8,\n reflect: 0.5,\n reflectColor: [0, 0, 1],\n };\n\n /* eslint-disable @typescript-eslint/naming-convention */\n test(params, {\n HasBaseColor: true, color: params.color,\n HasSpecularColor: true, specular_color: params.specularColor,\n HasFinish: true, finish: params.finish,\n HasTransmit: true, transmit: params.transmit,\n HasDiffuse: true, diffuse: params.diffuse,\n HasSpecular: true, specular: params.specular,\n HasReflect: true, reflect: params.reflect,\n HasReflectColor: true, reflect_color: params.reflectColor,\n });\n\n params.transmit = undefined;\n /* eslint-disable @typescript-eslint/naming-convention */\n test(params, {\n HasBaseColor: true, color: params.color,\n HasSpecularColor: true, specular_color: params.specularColor,\n HasFinish: true, finish: params.finish,\n HasDiffuse: true, diffuse: params.diffuse,\n HasSpecular: true, specular: params.specular,\n HasReflect: true, reflect: params.reflect,\n HasReflectColor: true, reflect_color: params.reflectColor,\n });\n\n params.transmit = 0.0;\n /* eslint-disable @typescript-eslint/naming-convention */\n test(params, {\n HasBaseColor: true, color: params.color,\n HasSpecularColor: true, specular_color: params.specularColor,\n HasFinish: true, finish: params.finish,\n HasTransmit: true, transmit: params.transmit,\n HasDiffuse: true, diffuse: params.diffuse,\n HasSpecular: true, specular: params.specular,\n HasReflect: true, reflect: params.reflect,\n HasReflectColor: true, reflect_color: params.reflectColor,\n });\n });\n\n it(\"pattern map with default values\", () => {\n const textureId = insertTexture();\n test({\n patternMap: {\n TextureId: textureId,\n },\n }, {\n Map: {\n Pattern: {\n TextureId: textureId,\n },\n },\n });\n });\n\n it(\"pattern map with custom values\", () => {\n const patternMap: TextureMapProps = {\n TextureId: insertTexture(),\n pattern_angle: 1,\n pattern_u_flip: true,\n pattern_flip: true,\n pattern_scale: [-1, 2],\n pattern_offset: [-2, 1],\n pattern_scalemode: 3,\n pattern_mapping: 4,\n pattern_weight: 0.5,\n };\n\n test({ patternMap }, { Map: { Pattern: patternMap } });\n });\n\n it(\"pattern map with constant lod parameters\", () => {\n const patternMap: TextureMapProps = {\n TextureId: insertTexture(),\n pattern_angle: 1,\n pattern_u_flip: true,\n pattern_flip: true,\n pattern_scale: [-1, 2],\n pattern_offset: [-2, 1],\n pattern_scalemode: 3,\n pattern_mapping: 4,\n pattern_weight: 0.5,\n pattern_useconstantlod: true,\n pattern_constantlod_repetitions: 0.333,\n pattern_constantlod_offset: [1000, 2000],\n pattern_constantlod_mindistanceclamp: 4,\n pattern_constantlod_maxdistanceclamp: 256,\n };\n\n test({ patternMap }, { Map: { Pattern: patternMap } });\n });\n\n it(\"normal and pattern maps with default values\", () => {\n const normalId = insertTexture();\n const patternId = insertTexture();\n expect(normalId).not.to.equal(patternId);\n\n test({\n patternMap: { TextureId: patternId },\n normalMap: { TextureId: normalId },\n }, {\n Map: {\n Pattern: { TextureId: patternId },\n Normal: {\n TextureId: normalId,\n },\n },\n });\n });\n\n it(\"merges mapping params from normal and pattern maps\", () => {\n const normalId = insertTexture();\n const patternId = insertTexture();\n expect(normalId).not.to.equal(patternId);\n\n const patternMap: TextureMapProps = {\n TextureId: patternId,\n pattern_scale: [-1, 2],\n pattern_weight: 0.5,\n };\n\n const normalMap: NormalMapProps = {\n TextureId: normalId,\n pattern_angle: 0.8,\n pattern_flip: true,\n pattern_weight: 1.5,\n };\n\n const sharedProps: Omit<TextureMapProps, \"TextureId\"> = {\n pattern_scale: patternMap.pattern_scale,\n pattern_weight: patternMap.pattern_weight,\n pattern_angle: normalMap.pattern_angle,\n pattern_flip: normalMap.pattern_flip,\n };\n\n test({ patternMap, normalMap }, {\n Map: {\n Pattern: {\n ...sharedProps,\n TextureId: patternId,\n },\n Normal: {\n ...sharedProps,\n TextureId: normalId,\n },\n },\n });\n });\n\n it(\"normal map with default values\", () => {\n const id = insertTexture();\n test({ normalMap: { TextureId: id } }, { Map: { Normal: { TextureId: id } } });\n });\n\n it(\"normal map with inverted green channel\", () => {\n const id = insertTexture();\n test({\n normalMap: {\n TextureId: id,\n NormalFlags: 1,\n },\n }, {\n Map: {\n Normal: {\n NormalFlags: 1,\n TextureId: id,\n },\n },\n });\n });\n\n it(\"normal map with scale\", () => {\n const id = insertTexture();\n const scale = 2.5;\n test({\n normalMap: {\n TextureId: id,\n scale,\n },\n }, {\n pbr_normal: 2.5,\n Map: {\n Normal: {\n TextureId: id,\n },\n },\n });\n });\n\n it(\"normal map with flags\", () => {\n const id = insertTexture();\n test({\n normalMap: {\n TextureId: id,\n NormalFlags: 0xff00 as NormalMapFlags,\n },\n }, {\n Map: {\n Normal: {\n TextureId: id,\n NormalFlags: 0xff00 as NormalMapFlags,\n },\n },\n });\n });\n\n it(\"normal map with constant lod parameters\", () => {\n const normalMap: NormalMapProps = {\n TextureId: insertTexture(),\n NormalFlags: 2,\n pattern_constantlod_repetitions: 0.333,\n pattern_constantlod_offset: [1000, 2000],\n pattern_constantlod_mindistanceclamp: 4,\n pattern_constantlod_maxdistanceclamp: 256,\n };\n test({ normalMap }, { Map: { Normal: normalMap } });\n });\n });\n\n describe(\"clone\", () => {\n it(\"clone maps\", async () => {\n const textureId = insertTexture();\n const unknownTextureId = \"0xffffff\";\n\n expect(Id64.isValidId64(unknownTextureId)).to.be.true;\n expect(imodel.elements.tryGetElementProps(unknownTextureId)).to.be.undefined;\n\n const maps: RenderMaterialAssetMapsProps = {\n Pattern: { TextureId: textureId },\n Normal: { TextureId: textureId },\n Bump: { TextureId: textureId },\n Diffuse: { TextureId: textureId },\n Finish: { TextureId: textureId },\n GlowColor: { TextureId: textureId },\n Reflect: { TextureId: textureId },\n Specular: { TextureId: textureId },\n TranslucencyColor: { TextureId: textureId },\n TransparentColor: { TextureId: textureId },\n Displacement: { TextureId: textureId },\n [\"Unknown\" as any]: { TextureId: textureId },\n [\"InvalidTexture\" as any]: { TextureId: Id64.invalid },\n [\"UnknownTexture\" as any]: { TextureId: unknownTextureId },\n [\"NoTextureId\" as any]: { OtherProp: 1 },\n };\n\n const material = test({});\n const jsonProps = material.jsonProperties as RenderMaterialProps[\"jsonProperties\"];\n assert(jsonProps?.materialAssets?.renderMaterial && jsonProps.materialAssets.renderMaterial.Map === undefined);\n jsonProps.materialAssets.renderMaterial.Map = maps;\n withEditTxn(imodel, (txn) => material.update(txn));\n\n const context = {\n findTargetElementId: (sourceId: Id64String) => {\n expect(typeof sourceId, `bad id: ${sourceId}`).to.equal(\"string\");\n expect(Id64.isId64(sourceId), `bad id: ${sourceId}`).to.be.true;\n return \"CLONED\";\n },\n } as any as IModelElementCloneContext;\n\n const sourceProps = material.toJSON();\n const targetProps = structuredClone(sourceProps);\n\n // eslint-disable-next-line @typescript-eslint/dot-notation\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\n\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.deep.equal({\n Pattern: { TextureId: \"CLONED\" },\n Normal: { TextureId: \"CLONED\" },\n Bump: { TextureId: \"CLONED\" },\n Diffuse: { TextureId: \"CLONED\" },\n Finish: { TextureId: \"CLONED\" },\n GlowColor: { TextureId: \"CLONED\" },\n Reflect: { TextureId: \"CLONED\" },\n Specular: { TextureId: \"CLONED\" },\n TranslucencyColor: { TextureId: \"CLONED\" },\n TransparentColor: { TextureId: \"CLONED\" },\n Displacement: { TextureId: \"CLONED\" },\n Unknown: { TextureId: \"CLONED\" },\n InvalidTexture: { TextureId: Id64.invalid },\n UnknownTexture: { TextureId: \"CLONED\" },\n NoTextureId: { OtherProp: 1 },\n });\n\n jsonProps.materialAssets.renderMaterial.Map = { Pattern: undefined };\n // eslint-disable-next-line @typescript-eslint/dot-notation\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\n // keep the sourceMap the same in targetProps\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.have.property(\"Pattern\").that.is.undefined;\n jsonProps.materialAssets.renderMaterial.Map = { Pattern: null as any };\n // eslint-disable-next-line @typescript-eslint/dot-notation\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\n // keep the sourceMap the same in targetProps\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.have.property(\"Pattern\").that.is.null;\n });\n });\n});\n\n\n\n"]}
1
+ {"version":3,"file":"RenderMaterialElement.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/RenderMaterialElement.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { assert, expect } from \"chai\";\r\nimport { DbResult, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { ImageSourceFormat, IModel, NormalMapFlags, NormalMapProps, RenderMaterialAssetMapsProps, RenderMaterialAssetProps, RenderMaterialProps, TextureMapProps } from \"@itwin/core-common\";\r\nimport { ChannelControl, IModelElementCloneContext, RenderMaterialElement, RenderMaterialElementParams, SnapshotDb, Texture } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\n\r\nfunction removeUndefined(assetProps: RenderMaterialAssetProps): RenderMaterialAssetProps {\r\n const input = assetProps as any;\r\n for (const key of Object.keys(input))\r\n if (input[key] === undefined)\r\n delete input[key];\r\n\r\n const maps = assetProps.Map as any;\r\n if (maps) {\r\n for (const mapsKey of Object.keys(maps)) {\r\n const map = maps[mapsKey];\r\n for (const mapKey of Object.keys(map))\r\n if (map[mapKey] === undefined)\r\n delete map[mapKey];\r\n }\r\n }\r\n\r\n return assetProps;\r\n}\r\n\r\nfunction defaultBooleans(assetProps: RenderMaterialAssetProps): RenderMaterialAssetProps {\r\n const boolKeys = [\"HasBaseColor\", \"HasDiffuse\", \"HasFinish\", \"HasReflect\", \"HasReflectColor\", \"HasSpecular\", \"HasSpecularColor\"] as const;\r\n for (const boolKey of boolKeys)\r\n if (undefined === assetProps[boolKey])\r\n assetProps[boolKey] = false;\r\n\r\n return assetProps;\r\n}\r\n\r\ndescribe(\"RenderMaterialElement\", () => {\r\n let imodel: SnapshotDb;\r\n let materialNumber = 0;\r\n let textureNumber = 0;\r\n\r\n before(() => {\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\r\n const testFileName = IModelTestUtils.prepareOutputFile(\"ExportGraphics\", \"ExportGraphicsTest.bim\");\r\n imodel = IModelTestUtils.createSnapshotFromSeed(testFileName, seedFileName);\r\n });\r\n\r\n after(() => imodel.close());\r\n\r\n function test(params: Omit<RenderMaterialElementParams, \"paletteName\">, expected?: RenderMaterialAssetProps): RenderMaterialElement {\r\n const name = `material${++materialNumber}`;\r\n const paletteName = \"palette\";\r\n const id = withEditTxn(imodel, (txn) => RenderMaterialElement.insert(txn, IModel.dictionaryId, name, { ...params, paletteName }));\r\n expect(Id64.isValidId64(id)).to.be.true;\r\n\r\n const mat = imodel.elements.getElement<RenderMaterialElement>(id);\r\n const json = mat.toJSON();\r\n expect(json.jsonProperties?.materialAssets?.renderMaterial).not.to.be.undefined;\r\n const actual = removeUndefined(json.jsonProperties!.materialAssets!.renderMaterial!);\r\n\r\n if (expected !== undefined) {\r\n expected = defaultBooleans(expected);\r\n expect(actual).to.deep.equal(expected);\r\n }\r\n\r\n return mat;\r\n }\r\n\r\n function insertTexture(): Id64String {\r\n // This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in\r\n // bottom right pixel. The rest of the square is red.\r\n const pngData = new Uint8Array([\r\n 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217,\r\n 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252,\r\n 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65,\r\n 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0,\r\n 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130,\r\n ]);\r\n\r\n const name = `texture${++textureNumber}`;\r\n const textureId = withEditTxn(imodel, (txn) => Texture.insertTexture(txn, IModel.dictionaryId, name, ImageSourceFormat.Png, pngData));\r\n expect(Id64.isValidId64(textureId)).to.be.true;\r\n return textureId;\r\n }\r\n\r\n describe(\"read\", () => {\r\n it(\"should be able to convert TextureId to hexadecimal string outside javascript's double precision range of 2^53\", async () => {\r\n // LargeNumericRenderMaterialTextureId is a database with a single RenderMaterial whose jsonProperties look something like:\r\n // {\"materialAssets\":{\"renderMaterial\":{\"Map\":{\"Diffuse\":{\"TextureId\":9223372036854775807},\"Bump\":{\"TextureId\":18446744073709551615},\"Finish\":{\"TextureId\":13835058055282163712}}}}}\r\n // 9223372036854775807 is equivalent to 2^63 - 1 which is equivalent to the hexadecimal string 0x7fffffffffffffff.\r\n // 18446744073709551615 is equivalent to 2^64 - 1 which is equivalent to the hexadecimal string 0xffffffffffffffff.\r\n // 13835058055282163712 is equivalent to 2^63 + (2^63 / 2) which is equivalent to the hexadecimal string 0xc000000000000000.\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"LargeNumericRenderMaterialTextureId.bim\");\r\n\r\n const db = SnapshotDb.openFile(seedFileName);\r\n let id: Id64String;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n db.withStatement(`SELECT ECInstanceId from Bis.RenderMaterial`, (stmt) => {\r\n expect(stmt.step()).to.equal(DbResult.BE_SQLITE_ROW);\r\n id = stmt.getRow().id;\r\n expect(stmt.step()).to.equal(DbResult.BE_SQLITE_DONE);\r\n });\r\n const renderMatElement = db.elements.getElement<RenderMaterialElement>(id!).toJSON();\r\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Diffuse?.TextureId).to.equal(\"0x7fffffffffffffff\");\r\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Bump?.TextureId).to.equal(\"0xffffffffffffffff\");\r\n expect(renderMatElement.jsonProperties?.materialAssets?.renderMaterial?.Map?.Finish?.TextureId).to.equal(\"0xc000000000000000\");\r\n db.close();\r\n });\r\n });\r\n\r\n describe(\"insert\", () => {\r\n it(\"with default values\", () => {\r\n test({}, {});\r\n });\r\n\r\n it(\"should convert TextureIds to hexadecimal string when loading element\", () => {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n const maps: RenderMaterialAssetMapsProps = {\r\n Pattern: { TextureId: 1 },\r\n Normal: { TextureId: 0x0000bc0000001234 }, // TextureId has a non-zero briefcase Id\r\n Bump: { TextureId: 0x000000123456789a }, // TextureId has non-zero digits in the upper 32 bits\r\n Diffuse: { TextureId: 0x0000bc123456789a }, // TextureId has a non-zero briefcase Id and non-zero digits in the upper 32 bits.\r\n Finish: { TextureId: 5 },\r\n GlowColor: { TextureId: 6 },\r\n Reflect: { TextureId: 7 },\r\n Specular: { TextureId: 8 },\r\n TranslucencyColor: { OtherProp2: \"test\" }, // Should be unchanged, still present.\r\n TransparentColor: { TextureId: 10, OtherProp: 1 }, // OtherProp should be unchanged, still present.\r\n Displacement: { TextureId: \"0x1\" },\r\n OtherProperty: { OtherProperty: \"test\" }, // Should be unchanged.\r\n } as any;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n const material = test({});\r\n const jsonProps = material.jsonProperties as RenderMaterialProps[\"jsonProperties\"];\r\n assert(jsonProps?.materialAssets?.renderMaterial && jsonProps.materialAssets.renderMaterial.Map === undefined);\r\n jsonProps.materialAssets.renderMaterial.Map = maps;\r\n withEditTxn(imodel, (txn) => material.update(txn));\r\n\r\n const pathName = imodel.pathName;\r\n imodel.close(); // Need to close so we can load the element back in with strings instead of numbers.\r\n\r\n imodel = SnapshotDb.openForApplyChangesets(pathName);\r\n imodel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n\r\n const mat = imodel.elements.getElement<RenderMaterialElement>(material.id);\r\n\r\n const props = mat.toJSON();\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map).to.not.be.undefined;\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Pattern?.TextureId).to.equal(\"0x1\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Normal?.TextureId).to.equal(\"0xbc0000001234\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Bump?.TextureId).to.equal(\"0x123456789a\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Diffuse?.TextureId).to.equal(\"0xbc123456789a\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Finish?.TextureId).to.equal(\"0x5\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.GlowColor?.TextureId).to.equal(\"0x6\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Reflect?.TextureId).to.equal(\"0x7\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Specular?.TextureId).to.equal(\"0x8\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TranslucencyColor?.TextureId).to.be.undefined;\r\n expect((props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TranslucencyColor as any).OtherProp2).to.equal(\"test\");\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TransparentColor?.TextureId).to.equal(\"0xa\");\r\n expect((props.jsonProperties?.materialAssets?.renderMaterial?.Map!.TransparentColor as any).OtherProp).to.equal(1);\r\n expect(props.jsonProperties?.materialAssets?.renderMaterial?.Map!.Displacement?.TextureId).to.equal(\"0x1\");\r\n expect(((props.jsonProperties?.materialAssets?.renderMaterial?.Map as any).OtherProperty).OtherProperty).to.equal(\"test\");\r\n });\r\n\r\n it(\"with custom values\", () => {\r\n const params: Omit<RenderMaterialElementParams, \"paletteName\"> = {\r\n color: [1, 0, 0],\r\n specularColor: [0, 1, 0],\r\n finish: 21,\r\n transmit: 0.5,\r\n diffuse: 0.2,\r\n specular: 0.8,\r\n reflect: 0.5,\r\n reflectColor: [0, 0, 1],\r\n };\r\n\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n test(params, {\r\n HasBaseColor: true, color: params.color,\r\n HasSpecularColor: true, specular_color: params.specularColor,\r\n HasFinish: true, finish: params.finish,\r\n HasTransmit: true, transmit: params.transmit,\r\n HasDiffuse: true, diffuse: params.diffuse,\r\n HasSpecular: true, specular: params.specular,\r\n HasReflect: true, reflect: params.reflect,\r\n HasReflectColor: true, reflect_color: params.reflectColor,\r\n });\r\n\r\n params.transmit = undefined;\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n test(params, {\r\n HasBaseColor: true, color: params.color,\r\n HasSpecularColor: true, specular_color: params.specularColor,\r\n HasFinish: true, finish: params.finish,\r\n HasDiffuse: true, diffuse: params.diffuse,\r\n HasSpecular: true, specular: params.specular,\r\n HasReflect: true, reflect: params.reflect,\r\n HasReflectColor: true, reflect_color: params.reflectColor,\r\n });\r\n\r\n params.transmit = 0.0;\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n test(params, {\r\n HasBaseColor: true, color: params.color,\r\n HasSpecularColor: true, specular_color: params.specularColor,\r\n HasFinish: true, finish: params.finish,\r\n HasTransmit: true, transmit: params.transmit,\r\n HasDiffuse: true, diffuse: params.diffuse,\r\n HasSpecular: true, specular: params.specular,\r\n HasReflect: true, reflect: params.reflect,\r\n HasReflectColor: true, reflect_color: params.reflectColor,\r\n });\r\n });\r\n\r\n it(\"pattern map with default values\", () => {\r\n const textureId = insertTexture();\r\n test({\r\n patternMap: {\r\n TextureId: textureId,\r\n },\r\n }, {\r\n Map: {\r\n Pattern: {\r\n TextureId: textureId,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"pattern map with custom values\", () => {\r\n const patternMap: TextureMapProps = {\r\n TextureId: insertTexture(),\r\n pattern_angle: 1,\r\n pattern_u_flip: true,\r\n pattern_flip: true,\r\n pattern_scale: [-1, 2],\r\n pattern_offset: [-2, 1],\r\n pattern_scalemode: 3,\r\n pattern_mapping: 4,\r\n pattern_weight: 0.5,\r\n };\r\n\r\n test({ patternMap }, { Map: { Pattern: patternMap } });\r\n });\r\n\r\n it(\"pattern map with constant lod parameters\", () => {\r\n const patternMap: TextureMapProps = {\r\n TextureId: insertTexture(),\r\n pattern_angle: 1,\r\n pattern_u_flip: true,\r\n pattern_flip: true,\r\n pattern_scale: [-1, 2],\r\n pattern_offset: [-2, 1],\r\n pattern_scalemode: 3,\r\n pattern_mapping: 4,\r\n pattern_weight: 0.5,\r\n pattern_useconstantlod: true,\r\n pattern_constantlod_repetitions: 0.333,\r\n pattern_constantlod_offset: [1000, 2000],\r\n pattern_constantlod_mindistanceclamp: 4,\r\n pattern_constantlod_maxdistanceclamp: 256,\r\n };\r\n\r\n test({ patternMap }, { Map: { Pattern: patternMap } });\r\n });\r\n\r\n it(\"normal and pattern maps with default values\", () => {\r\n const normalId = insertTexture();\r\n const patternId = insertTexture();\r\n expect(normalId).not.to.equal(patternId);\r\n\r\n test({\r\n patternMap: { TextureId: patternId },\r\n normalMap: { TextureId: normalId },\r\n }, {\r\n Map: {\r\n Pattern: { TextureId: patternId },\r\n Normal: {\r\n TextureId: normalId,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"merges mapping params from normal and pattern maps\", () => {\r\n const normalId = insertTexture();\r\n const patternId = insertTexture();\r\n expect(normalId).not.to.equal(patternId);\r\n\r\n const patternMap: TextureMapProps = {\r\n TextureId: patternId,\r\n pattern_scale: [-1, 2],\r\n pattern_weight: 0.5,\r\n };\r\n\r\n const normalMap: NormalMapProps = {\r\n TextureId: normalId,\r\n pattern_angle: 0.8,\r\n pattern_flip: true,\r\n pattern_weight: 1.5,\r\n };\r\n\r\n const sharedProps: Omit<TextureMapProps, \"TextureId\"> = {\r\n pattern_scale: patternMap.pattern_scale,\r\n pattern_weight: patternMap.pattern_weight,\r\n pattern_angle: normalMap.pattern_angle,\r\n pattern_flip: normalMap.pattern_flip,\r\n };\r\n\r\n test({ patternMap, normalMap }, {\r\n Map: {\r\n Pattern: {\r\n ...sharedProps,\r\n TextureId: patternId,\r\n },\r\n Normal: {\r\n ...sharedProps,\r\n TextureId: normalId,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"normal map with default values\", () => {\r\n const id = insertTexture();\r\n test({ normalMap: { TextureId: id } }, { Map: { Normal: { TextureId: id } } });\r\n });\r\n\r\n it(\"normal map with inverted green channel\", () => {\r\n const id = insertTexture();\r\n test({\r\n normalMap: {\r\n TextureId: id,\r\n NormalFlags: 1,\r\n },\r\n }, {\r\n Map: {\r\n Normal: {\r\n NormalFlags: 1,\r\n TextureId: id,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"normal map with scale\", () => {\r\n const id = insertTexture();\r\n const scale = 2.5;\r\n test({\r\n normalMap: {\r\n TextureId: id,\r\n scale,\r\n },\r\n }, {\r\n pbr_normal: 2.5,\r\n Map: {\r\n Normal: {\r\n TextureId: id,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"normal map with flags\", () => {\r\n const id = insertTexture();\r\n test({\r\n normalMap: {\r\n TextureId: id,\r\n NormalFlags: 0xff00 as NormalMapFlags,\r\n },\r\n }, {\r\n Map: {\r\n Normal: {\r\n TextureId: id,\r\n NormalFlags: 0xff00 as NormalMapFlags,\r\n },\r\n },\r\n });\r\n });\r\n\r\n it(\"normal map with constant lod parameters\", () => {\r\n const normalMap: NormalMapProps = {\r\n TextureId: insertTexture(),\r\n NormalFlags: 2,\r\n pattern_constantlod_repetitions: 0.333,\r\n pattern_constantlod_offset: [1000, 2000],\r\n pattern_constantlod_mindistanceclamp: 4,\r\n pattern_constantlod_maxdistanceclamp: 256,\r\n };\r\n test({ normalMap }, { Map: { Normal: normalMap } });\r\n });\r\n });\r\n\r\n describe(\"clone\", () => {\r\n it(\"clone maps\", async () => {\r\n const textureId = insertTexture();\r\n const unknownTextureId = \"0xffffff\";\r\n\r\n expect(Id64.isValidId64(unknownTextureId)).to.be.true;\r\n expect(imodel.elements.tryGetElementProps(unknownTextureId)).to.be.undefined;\r\n\r\n const maps: RenderMaterialAssetMapsProps = {\r\n Pattern: { TextureId: textureId },\r\n Normal: { TextureId: textureId },\r\n Bump: { TextureId: textureId },\r\n Diffuse: { TextureId: textureId },\r\n Finish: { TextureId: textureId },\r\n GlowColor: { TextureId: textureId },\r\n Reflect: { TextureId: textureId },\r\n Specular: { TextureId: textureId },\r\n TranslucencyColor: { TextureId: textureId },\r\n TransparentColor: { TextureId: textureId },\r\n Displacement: { TextureId: textureId },\r\n [\"Unknown\" as any]: { TextureId: textureId },\r\n [\"InvalidTexture\" as any]: { TextureId: Id64.invalid },\r\n [\"UnknownTexture\" as any]: { TextureId: unknownTextureId },\r\n [\"NoTextureId\" as any]: { OtherProp: 1 },\r\n };\r\n\r\n const material = test({});\r\n const jsonProps = material.jsonProperties as RenderMaterialProps[\"jsonProperties\"];\r\n assert(jsonProps?.materialAssets?.renderMaterial && jsonProps.materialAssets.renderMaterial.Map === undefined);\r\n jsonProps.materialAssets.renderMaterial.Map = maps;\r\n withEditTxn(imodel, (txn) => material.update(txn));\r\n\r\n const context = {\r\n findTargetElementId: (sourceId: Id64String) => {\r\n expect(typeof sourceId, `bad id: ${sourceId}`).to.equal(\"string\");\r\n expect(Id64.isId64(sourceId), `bad id: ${sourceId}`).to.be.true;\r\n return \"CLONED\";\r\n },\r\n } as any as IModelElementCloneContext;\r\n\r\n const sourceProps = material.toJSON();\r\n const targetProps = structuredClone(sourceProps);\r\n\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\r\n\r\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.deep.equal({\r\n Pattern: { TextureId: \"CLONED\" },\r\n Normal: { TextureId: \"CLONED\" },\r\n Bump: { TextureId: \"CLONED\" },\r\n Diffuse: { TextureId: \"CLONED\" },\r\n Finish: { TextureId: \"CLONED\" },\r\n GlowColor: { TextureId: \"CLONED\" },\r\n Reflect: { TextureId: \"CLONED\" },\r\n Specular: { TextureId: \"CLONED\" },\r\n TranslucencyColor: { TextureId: \"CLONED\" },\r\n TransparentColor: { TextureId: \"CLONED\" },\r\n Displacement: { TextureId: \"CLONED\" },\r\n Unknown: { TextureId: \"CLONED\" },\r\n InvalidTexture: { TextureId: Id64.invalid },\r\n UnknownTexture: { TextureId: \"CLONED\" },\r\n NoTextureId: { OtherProp: 1 },\r\n });\r\n\r\n jsonProps.materialAssets.renderMaterial.Map = { Pattern: undefined };\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\r\n // keep the sourceMap the same in targetProps\r\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.have.property(\"Pattern\").that.is.undefined;\r\n jsonProps.materialAssets.renderMaterial.Map = { Pattern: null as any };\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n await RenderMaterialElement[\"onCloned\"](context, sourceProps, targetProps);\r\n // keep the sourceMap the same in targetProps\r\n expect(targetProps.jsonProperties?.materialAssets?.renderMaterial?.Map).to.have.property(\"Pattern\").that.is.null;\r\n });\r\n });\r\n});\r\n\r\n\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTimeline.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/RenderTimeline.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { expect } from \"chai\";\nimport { Id64, Id64String, OpenMode } from \"@itwin/core-bentley\";\nimport { Code, IModel, RenderSchedule, RenderTimelineProps } from \"@itwin/core-common\";\nimport { GenericSchema, IModelJsFs, RenderTimeline, StandaloneDb } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { withEditTxn } from \"../../EditTxn\";\n\ndescribe(\"RenderTimeline\", () => {\n before(() => {\n GenericSchema.registerSchema();\n });\n\n function makeScriptProps(): RenderSchedule.ScriptProps {\n return [{\n modelId: \"0x123\",\n elementTimelines: [{\n batchId: 1,\n elementIds: [\"0xabc\", \"0xdef\"],\n visibilityTimeline: [{ time: 42, value: 50 }],\n }],\n }];\n }\n\n function insertTimeline(imodel: StandaloneDb, scriptProps?: RenderSchedule.ScriptProps): Id64String {\n const script = JSON.stringify(scriptProps ?? makeScriptProps());\n const props: RenderTimelineProps = {\n model: IModel.dictionaryId,\n classFullName: RenderTimeline.classFullName,\n code: Code.createEmpty(),\n script,\n };\n return withEditTxn(imodel, (txn) => txn.insertElement(props));\n }\n\n function createIModel(name: string): StandaloneDb {\n const props = {\n rootSubject: {\n name,\n },\n enableTransactions: true,\n };\n const filename = IModelTestUtils.prepareOutputFile(\"RenderTimeline\", `${name}.bim`);\n return StandaloneDb.createEmpty(filename, props);\n }\n\n it(\"requires BisCore >= 1.0.13\", () => {\n const filename = IModelTestUtils.prepareOutputFile(\"RenderTimeline.SchemaTooOld\", \"testImodel.bim\");\n const seedFileName = IModelTestUtils.resolveAssetFile(\"testImodel.bim\");\n IModelJsFs.copySync(seedFileName, filename);\n\n const imodel = StandaloneDb.openFile(filename, OpenMode.ReadWrite);\n expect(() => insertTimeline(imodel)).to.throw(\"ecClass not found\");\n imodel.close();\n });\n\n it(\"creates, queries, and updates\", () => {\n const imodel = createIModel(\"CRUD\");\n const timelineId = insertTimeline(imodel);\n expect(Id64.isValid(timelineId)).to.be.true;\n\n let timeline = imodel.elements.getElement<RenderTimeline>(timelineId);\n expect(timeline).instanceof(RenderTimeline);\n expect(timeline.scriptProps).to.deep.equal(makeScriptProps());\n expect(timeline.description).to.equal(\"\");\n\n timeline.description = \"My timeline\";\n const scriptProps = makeScriptProps();\n scriptProps.push(makeScriptProps()[0]);\n timeline.scriptProps = scriptProps;\n\n withEditTxn(imodel, (txn) => timeline.update(txn));\n timeline = imodel.elements.getElement<RenderTimeline>(timelineId);\n expect(timeline.description).to.equal(\"My timeline\");\n expect(timeline.scriptProps).to.deep.equal(scriptProps);\n\n imodel.close();\n });\n});\n\n\n"]}
1
+ {"version":3,"file":"RenderTimeline.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/RenderTimeline.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { expect } from \"chai\";\r\nimport { Id64, Id64String, OpenMode } from \"@itwin/core-bentley\";\r\nimport { Code, IModel, RenderSchedule, RenderTimelineProps } from \"@itwin/core-common\";\r\nimport { GenericSchema, IModelJsFs, RenderTimeline, StandaloneDb } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\n\r\ndescribe(\"RenderTimeline\", () => {\r\n before(() => {\r\n GenericSchema.registerSchema();\r\n });\r\n\r\n function makeScriptProps(): RenderSchedule.ScriptProps {\r\n return [{\r\n modelId: \"0x123\",\r\n elementTimelines: [{\r\n batchId: 1,\r\n elementIds: [\"0xabc\", \"0xdef\"],\r\n visibilityTimeline: [{ time: 42, value: 50 }],\r\n }],\r\n }];\r\n }\r\n\r\n function insertTimeline(imodel: StandaloneDb, scriptProps?: RenderSchedule.ScriptProps): Id64String {\r\n const script = JSON.stringify(scriptProps ?? makeScriptProps());\r\n const props: RenderTimelineProps = {\r\n model: IModel.dictionaryId,\r\n classFullName: RenderTimeline.classFullName,\r\n code: Code.createEmpty(),\r\n script,\r\n };\r\n return withEditTxn(imodel, (txn) => txn.insertElement(props));\r\n }\r\n\r\n function createIModel(name: string): StandaloneDb {\r\n const props = {\r\n rootSubject: {\r\n name,\r\n },\r\n enableTransactions: true,\r\n };\r\n const filename = IModelTestUtils.prepareOutputFile(\"RenderTimeline\", `${name}.bim`);\r\n return StandaloneDb.createEmpty(filename, props);\r\n }\r\n\r\n it(\"requires BisCore >= 1.0.13\", () => {\r\n const filename = IModelTestUtils.prepareOutputFile(\"RenderTimeline.SchemaTooOld\", \"testImodel.bim\");\r\n const seedFileName = IModelTestUtils.resolveAssetFile(\"testImodel.bim\");\r\n IModelJsFs.copySync(seedFileName, filename);\r\n\r\n const imodel = StandaloneDb.openFile(filename, OpenMode.ReadWrite);\r\n expect(() => insertTimeline(imodel)).to.throw(\"ecClass not found\");\r\n imodel.close();\r\n });\r\n\r\n it(\"creates, queries, and updates\", () => {\r\n const imodel = createIModel(\"CRUD\");\r\n const timelineId = insertTimeline(imodel);\r\n expect(Id64.isValid(timelineId)).to.be.true;\r\n\r\n let timeline = imodel.elements.getElement<RenderTimeline>(timelineId);\r\n expect(timeline).instanceof(RenderTimeline);\r\n expect(timeline.scriptProps).to.deep.equal(makeScriptProps());\r\n expect(timeline.description).to.equal(\"\");\r\n\r\n timeline.description = \"My timeline\";\r\n const scriptProps = makeScriptProps();\r\n scriptProps.push(makeScriptProps()[0]);\r\n timeline.scriptProps = scriptProps;\r\n\r\n withEditTxn(imodel, (txn) => timeline.update(txn));\r\n timeline = imodel.elements.getElement<RenderTimeline>(timelineId);\r\n expect(timeline.description).to.equal(\"My timeline\");\r\n expect(timeline.scriptProps).to.deep.equal(scriptProps);\r\n\r\n imodel.close();\r\n });\r\n});\r\n\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteDb.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/SQLiteDb.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { expect } from \"chai\";\nimport { BeDuration, DbResult, OpenMode } from \"@itwin/core-bentley\";\nimport { SQLiteDb } from \"../../SQLiteDb\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\n\ndescribe(\"SQLiteDb\", () => {\n\n it(\"should create new SQLiteDb\", async () => {\n const fileName = IModelTestUtils.prepareOutputFile(\"SQLiteDb\", \"db1.db\");\n const db = new SQLiteDb();\n db.createDb(fileName, undefined, { rawSQLite: true, pageSize: 8 * 1024 });\n db.executeSQL(\"CREATE TABLE test1(id INTEGER PRIMARY KEY,val TEXT)\");\n db.executeSQL(`INSERT INTO test1(id,val) VALUES (1,\"val1\")`);\n db.executeSQL(`INSERT INTO test1(id,val) VALUES (2,\"val2\")`);\n db.saveChanges();\n\n const testDb = () => {\n db.withSqliteStatement(\"SELECT id,val from test1\", (stmt) => {\n stmt.step();\n expect(stmt.getValue(0).getInteger()).equal(1);\n expect(stmt.getValue(1).getString()).equal(\"val1\");\n stmt.step();\n expect(stmt.getValue(0).getInteger()).equal(2);\n expect(stmt.getValue(1).getString()).equal(\"val2\");\n });\n db.closeDb();\n };\n testDb();\n\n // now test immutable flag\n db.openDb(fileName, { openMode: OpenMode.Readonly, skipFileCheck: true, immutable: true, defaultTxn: SQLiteDb.DefaultTxnMode.None, rawSQLite: true });\n testDb();\n\n expect(db.isOpen).false;\n expect(() => db.vacuum()).throws(\"not open\");\n\n let val = db.withOpenDb({ dbName: fileName, openMode: { openMode: OpenMode.ReadWrite, rawSQLite: true } }, () => {\n expect(db.isOpen);\n db.vacuum();\n return 22;\n });\n expect(val).equal(22);\n expect(db.isOpen).false;\n\n val = await db.withOpenDb({ dbName: fileName, openMode: { openMode: OpenMode.ReadWrite, rawSQLite: true } }, async () => {\n expect(db.isOpen);\n await BeDuration.fromMilliseconds(10).wait();\n return 100;\n });\n expect(val).equal(100);\n expect(db.isOpen).false;\n });\n\n it(\"should be able to open existing .bim file with SQLiteDb\", () => {\n const testFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\n const db = new SQLiteDb();\n db.withOpenDb({ dbName: testFileName }, () => {\n db.withSqliteStatement(`SELECT StrData FROM be_Prop WHERE Namespace=\"ec_Db\" AND Name=\"SchemaVersion\"`, (stmt) => {\n expect(stmt.step()).equal(DbResult.BE_SQLITE_ROW);\n const val = JSON.parse(stmt.getValue(0).getString());\n expect(val.major).equal(4, \"read major version\");\n expect(val.minor).equal(0, \"read minor version\");\n });\n });\n });\n\n});\n"]}
1
+ {"version":3,"file":"SQLiteDb.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/SQLiteDb.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport { BeDuration, DbResult, OpenMode } from \"@itwin/core-bentley\";\r\nimport { SQLiteDb } from \"../../SQLiteDb\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\n\r\ndescribe(\"SQLiteDb\", () => {\r\n\r\n it(\"should create new SQLiteDb\", async () => {\r\n const fileName = IModelTestUtils.prepareOutputFile(\"SQLiteDb\", \"db1.db\");\r\n const db = new SQLiteDb();\r\n db.createDb(fileName, undefined, { rawSQLite: true, pageSize: 8 * 1024 });\r\n db.executeSQL(\"CREATE TABLE test1(id INTEGER PRIMARY KEY,val TEXT)\");\r\n db.executeSQL(`INSERT INTO test1(id,val) VALUES (1,\"val1\")`);\r\n db.executeSQL(`INSERT INTO test1(id,val) VALUES (2,\"val2\")`);\r\n db.saveChanges();\r\n\r\n const testDb = () => {\r\n db.withSqliteStatement(\"SELECT id,val from test1\", (stmt) => {\r\n stmt.step();\r\n expect(stmt.getValue(0).getInteger()).equal(1);\r\n expect(stmt.getValue(1).getString()).equal(\"val1\");\r\n stmt.step();\r\n expect(stmt.getValue(0).getInteger()).equal(2);\r\n expect(stmt.getValue(1).getString()).equal(\"val2\");\r\n });\r\n db.closeDb();\r\n };\r\n testDb();\r\n\r\n // now test immutable flag\r\n db.openDb(fileName, { openMode: OpenMode.Readonly, skipFileCheck: true, immutable: true, defaultTxn: SQLiteDb.DefaultTxnMode.None, rawSQLite: true });\r\n testDb();\r\n\r\n expect(db.isOpen).false;\r\n expect(() => db.vacuum()).throws(\"not open\");\r\n\r\n let val = db.withOpenDb({ dbName: fileName, openMode: { openMode: OpenMode.ReadWrite, rawSQLite: true } }, () => {\r\n expect(db.isOpen);\r\n db.vacuum();\r\n return 22;\r\n });\r\n expect(val).equal(22);\r\n expect(db.isOpen).false;\r\n\r\n val = await db.withOpenDb({ dbName: fileName, openMode: { openMode: OpenMode.ReadWrite, rawSQLite: true } }, async () => {\r\n expect(db.isOpen);\r\n await BeDuration.fromMilliseconds(10).wait();\r\n return 100;\r\n });\r\n expect(val).equal(100);\r\n expect(db.isOpen).false;\r\n });\r\n\r\n it(\"should be able to open existing .bim file with SQLiteDb\", () => {\r\n const testFileName = IModelTestUtils.resolveAssetFile(\"test.bim\");\r\n const db = new SQLiteDb();\r\n db.withOpenDb({ dbName: testFileName }, () => {\r\n db.withSqliteStatement(`SELECT StrData FROM be_Prop WHERE Namespace=\"ec_Db\" AND Name=\"SchemaVersion\"`, (stmt) => {\r\n expect(stmt.step()).equal(DbResult.BE_SQLITE_ROW);\r\n const val = JSON.parse(stmt.getValue(0).getString());\r\n expect(val.major).equal(4, \"read major version\");\r\n expect(val.minor).equal(0, \"read minor version\");\r\n });\r\n });\r\n });\r\n\r\n});\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts","sourceRoot":"","sources":["../../../../src/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.ts"],"names":[],"mappings":""}