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

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 (233) 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/BisCoreSchema.d.ts.map +1 -1
  7. package/lib/cjs/BisCoreSchema.js +2 -0
  8. package/lib/cjs/BisCoreSchema.js.map +1 -1
  9. package/lib/cjs/BlobContainerService.d.ts +4 -4
  10. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  11. package/lib/cjs/BlobContainerService.js.map +1 -1
  12. package/lib/cjs/BriefcaseManager.d.ts +10 -0
  13. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  14. package/lib/cjs/BriefcaseManager.js +63 -20
  15. package/lib/cjs/BriefcaseManager.js.map +1 -1
  16. package/lib/cjs/Category.js +6 -1
  17. package/lib/cjs/Category.js.map +1 -1
  18. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  19. package/lib/cjs/ChangeSummaryManager.js +90 -22
  20. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  21. package/lib/cjs/ChangedElementsDb.d.ts +3 -3
  22. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
  23. package/lib/cjs/ChangedElementsDb.js +8 -7
  24. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  25. package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
  26. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  27. package/lib/cjs/ChangesetECAdaptor.js +31 -19
  28. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  29. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  30. package/lib/cjs/CheckpointManager.js +15 -12
  31. package/lib/cjs/CheckpointManager.js.map +1 -1
  32. package/lib/cjs/ClassRegistry.js +8 -18
  33. package/lib/cjs/ClassRegistry.js.map +1 -1
  34. package/lib/cjs/CloudSqlite.d.ts +2 -1
  35. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  36. package/lib/cjs/CloudSqlite.js +15 -8
  37. package/lib/cjs/CloudSqlite.js.map +1 -1
  38. package/lib/cjs/CodeService.d.ts +2 -0
  39. package/lib/cjs/CodeService.d.ts.map +1 -1
  40. package/lib/cjs/CodeService.js +4 -0
  41. package/lib/cjs/CodeService.js.map +1 -1
  42. package/lib/cjs/CodeSpecs.js +3 -2
  43. package/lib/cjs/CodeSpecs.js.map +1 -1
  44. package/lib/cjs/CustomViewState3dCreator.js +7 -6
  45. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  46. package/lib/cjs/DevTools.js +16 -16
  47. package/lib/cjs/DevTools.js.map +1 -1
  48. package/lib/cjs/DisplayStyle.js +2 -0
  49. package/lib/cjs/DisplayStyle.js.map +1 -1
  50. package/lib/cjs/ECDb.d.ts +3 -9
  51. package/lib/cjs/ECDb.d.ts.map +1 -1
  52. package/lib/cjs/ECDb.js +10 -9
  53. package/lib/cjs/ECDb.js.map +1 -1
  54. package/lib/cjs/ECSchemaXmlContext.js +1 -0
  55. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  56. package/lib/cjs/ECSqlStatement.d.ts +4 -2
  57. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  58. package/lib/cjs/ECSqlStatement.js +13 -4
  59. package/lib/cjs/ECSqlStatement.js.map +1 -1
  60. package/lib/cjs/Element.d.ts +1 -9
  61. package/lib/cjs/Element.d.ts.map +1 -1
  62. package/lib/cjs/Element.js +122 -31
  63. package/lib/cjs/Element.js.map +1 -1
  64. package/lib/cjs/ElementAspect.js +24 -0
  65. package/lib/cjs/ElementAspect.js.map +1 -1
  66. package/lib/cjs/ElementTreeWalker.js +13 -12
  67. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  68. package/lib/cjs/Entity.d.ts +18 -0
  69. package/lib/cjs/Entity.d.ts.map +1 -1
  70. package/lib/cjs/Entity.js +53 -16
  71. package/lib/cjs/Entity.js.map +1 -1
  72. package/lib/cjs/ExportGraphics.js +4 -0
  73. package/lib/cjs/ExportGraphics.js.map +1 -1
  74. package/lib/cjs/ExternalSource.js +22 -0
  75. package/lib/cjs/ExternalSource.js.map +1 -1
  76. package/lib/cjs/FontFile.d.ts +68 -0
  77. package/lib/cjs/FontFile.d.ts.map +1 -0
  78. package/lib/cjs/FontFile.js +36 -0
  79. package/lib/cjs/FontFile.js.map +1 -0
  80. package/lib/cjs/GeoCoordConfig.js +8 -8
  81. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  82. package/lib/cjs/GeometrySummary.js +6 -3
  83. package/lib/cjs/GeometrySummary.js.map +1 -1
  84. package/lib/cjs/HubMock.d.ts +1 -1
  85. package/lib/cjs/HubMock.d.ts.map +1 -1
  86. package/lib/cjs/HubMock.js +9 -5
  87. package/lib/cjs/HubMock.js.map +1 -1
  88. package/lib/cjs/IModelDb.d.ts +98 -15
  89. package/lib/cjs/IModelDb.d.ts.map +1 -1
  90. package/lib/cjs/IModelDb.js +185 -81
  91. package/lib/cjs/IModelDb.js.map +1 -1
  92. package/lib/cjs/IModelDbFonts.d.ts +54 -0
  93. package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
  94. package/lib/cjs/IModelDbFonts.js +11 -0
  95. package/lib/cjs/IModelDbFonts.js.map +1 -0
  96. package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
  97. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  98. package/lib/cjs/IModelElementCloneContext.js +11 -1
  99. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  100. package/lib/cjs/IModelHost.d.ts +14 -14
  101. package/lib/cjs/IModelHost.d.ts.map +1 -1
  102. package/lib/cjs/IModelHost.js +75 -42
  103. package/lib/cjs/IModelHost.js.map +1 -1
  104. package/lib/cjs/IModelJsFs.d.ts.map +1 -1
  105. package/lib/cjs/IModelJsFs.js +17 -1
  106. package/lib/cjs/IModelJsFs.js.map +1 -1
  107. package/lib/cjs/ImageSourceConversion.d.ts +49 -0
  108. package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
  109. package/lib/cjs/ImageSourceConversion.js +37 -0
  110. package/lib/cjs/ImageSourceConversion.js.map +1 -0
  111. package/lib/cjs/IpcHost.d.ts.map +1 -1
  112. package/lib/cjs/IpcHost.js +8 -8
  113. package/lib/cjs/IpcHost.js.map +1 -1
  114. package/lib/cjs/LocalHub.js +8 -2
  115. package/lib/cjs/LocalHub.js.map +1 -1
  116. package/lib/cjs/LocalhostIpcHost.js +5 -6
  117. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  118. package/lib/cjs/Material.js +40 -0
  119. package/lib/cjs/Material.js.map +1 -1
  120. package/lib/cjs/Model.d.ts +1 -1
  121. package/lib/cjs/Model.d.ts.map +1 -1
  122. package/lib/cjs/Model.js +27 -2
  123. package/lib/cjs/Model.js.map +1 -1
  124. package/lib/cjs/NativeAppStorage.js +5 -3
  125. package/lib/cjs/NativeAppStorage.js.map +1 -1
  126. package/lib/cjs/NativeHost.js +6 -3
  127. package/lib/cjs/NativeHost.js.map +1 -1
  128. package/lib/cjs/NavigationRelationship.js +25 -25
  129. package/lib/cjs/NavigationRelationship.js.map +1 -1
  130. package/lib/cjs/PromiseMemoizer.d.ts +2 -3
  131. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  132. package/lib/cjs/PromiseMemoizer.js +12 -5
  133. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  134. package/lib/cjs/PropertyStore.js +1 -4
  135. package/lib/cjs/PropertyStore.js.map +1 -1
  136. package/lib/cjs/Relationship.d.ts.map +1 -1
  137. package/lib/cjs/Relationship.js +13 -1
  138. package/lib/cjs/Relationship.js.map +1 -1
  139. package/lib/cjs/SQLiteDb.d.ts +6 -4
  140. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  141. package/lib/cjs/SQLiteDb.js +74 -15
  142. package/lib/cjs/SQLiteDb.js.map +1 -1
  143. package/lib/cjs/Schema.d.ts +6 -0
  144. package/lib/cjs/Schema.d.ts.map +1 -1
  145. package/lib/cjs/Schema.js +12 -1
  146. package/lib/cjs/Schema.js.map +1 -1
  147. package/lib/cjs/SchemaSync.js +1 -4
  148. package/lib/cjs/SchemaSync.js.map +1 -1
  149. package/lib/cjs/SheetIndex.js +6 -0
  150. package/lib/cjs/SheetIndex.js.map +1 -1
  151. package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
  152. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  153. package/lib/cjs/SqliteChangesetReader.js +21 -5
  154. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  155. package/lib/cjs/SqliteStatement.d.ts +4 -2
  156. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  157. package/lib/cjs/SqliteStatement.js +13 -1
  158. package/lib/cjs/SqliteStatement.js.map +1 -1
  159. package/lib/cjs/TextAnnotationLayout.d.ts +6 -3
  160. package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
  161. package/lib/cjs/TextAnnotationLayout.js +30 -12
  162. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  163. package/lib/cjs/Texture.js +3 -0
  164. package/lib/cjs/Texture.js.map +1 -1
  165. package/lib/cjs/TileStorage.js +6 -1
  166. package/lib/cjs/TileStorage.js.map +1 -1
  167. package/lib/cjs/TxnManager.d.ts +43 -1
  168. package/lib/cjs/TxnManager.d.ts.map +1 -1
  169. package/lib/cjs/TxnManager.js +218 -55
  170. package/lib/cjs/TxnManager.js.map +1 -1
  171. package/lib/cjs/ViewDefinition.d.ts +6 -6
  172. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  173. package/lib/cjs/ViewDefinition.js +81 -26
  174. package/lib/cjs/ViewDefinition.js.map +1 -1
  175. package/lib/cjs/ViewStateHydrator.d.ts +0 -1
  176. package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
  177. package/lib/cjs/ViewStateHydrator.js +1 -11
  178. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  179. package/lib/cjs/ViewStore.js +3 -1
  180. package/lib/cjs/ViewStore.js.map +1 -1
  181. package/lib/cjs/core-backend.d.ts +7 -0
  182. package/lib/cjs/core-backend.d.ts.map +1 -1
  183. package/lib/cjs/core-backend.js +7 -0
  184. package/lib/cjs/core-backend.js.map +1 -1
  185. package/lib/cjs/domains/FunctionalElements.js +1 -1
  186. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  187. package/lib/cjs/internal/ChangesetConflictArgs.d.ts +40 -2
  188. package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
  189. package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
  190. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  191. package/lib/cjs/internal/ChannelAdmin.js +7 -7
  192. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  193. package/lib/cjs/internal/FontFileImpl.d.ts +34 -0
  194. package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
  195. package/lib/cjs/internal/FontFileImpl.js +143 -0
  196. package/lib/cjs/internal/FontFileImpl.js.map +1 -0
  197. package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
  198. package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
  199. package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
  200. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
  201. package/lib/cjs/internal/NoLocks.js +2 -5
  202. package/lib/cjs/internal/NoLocks.js.map +1 -1
  203. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  204. package/lib/cjs/internal/ServerBasedLocks.js +6 -6
  205. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  206. package/lib/cjs/internal/Symbols.d.ts +7 -0
  207. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  208. package/lib/cjs/internal/Symbols.js +8 -1
  209. package/lib/cjs/internal/Symbols.js.map +1 -1
  210. package/lib/cjs/internal/workspace/SettingsImpl.js +6 -9
  211. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  212. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
  213. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  214. package/lib/cjs/internal/workspace/WorkspaceImpl.js +22 -17
  215. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  216. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
  217. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  218. package/lib/cjs/rpc/multipart.d.ts.map +1 -1
  219. package/lib/cjs/rpc/multipart.js +2 -1
  220. package/lib/cjs/rpc/multipart.js.map +1 -1
  221. package/lib/cjs/rpc/tracing.js +2 -2
  222. package/lib/cjs/rpc/tracing.js.map +1 -1
  223. package/lib/cjs/rpc/web/request.d.ts.map +1 -1
  224. package/lib/cjs/rpc/web/request.js +2 -1
  225. package/lib/cjs/rpc/web/request.js.map +1 -1
  226. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +4 -2
  227. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  228. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
  229. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  230. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  231. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +4 -3
  232. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  233. package/package.json +22 -19
@@ -50,11 +50,14 @@ __exportStar(require("./Entity"), exports);
50
50
  __exportStar(require("./EntityReferences"), exports);
51
51
  __exportStar(require("./ExportGraphics"), exports);
52
52
  __exportStar(require("./ExternalSource"), exports);
53
+ __exportStar(require("./FontFile"), exports);
53
54
  __exportStar(require("./GeoCoordConfig"), exports);
54
55
  __exportStar(require("./GeographicCRSServices"), exports);
55
56
  __exportStar(require("./HubMock"), exports);
57
+ __exportStar(require("./ImageSourceConversion"), exports);
56
58
  __exportStar(require("./IModelCloneContext"), exports);
57
59
  __exportStar(require("./IModelDb"), exports);
60
+ __exportStar(require("./IModelDbFonts"), exports);
58
61
  __exportStar(require("./IModelElementCloneContext"), exports);
59
62
  __exportStar(require("./IModelHost"), exports);
60
63
  __exportStar(require("./IModelJsFs"), exports);
@@ -138,6 +141,10 @@ __exportStar(require("./internal/cross-package"), exports);
138
141
  * @docs-group-description HubAccess
139
142
  * APIs for working with IModelHub
140
143
  */
144
+ /**
145
+ * @docs-group-description Images
146
+ * APIs for encoding and decoding images
147
+ */
141
148
  /**
142
149
  * @docs-group-description IModelHost
143
150
  * Classes for configuring and administering the backend [host]($docs/learning/backend/IModelHost.md).
@@ -1 +1 @@
1
- {"version":3,"file":"core-backend.js","sourceRoot":"","sources":["../../src/core-backend.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;;AAE/F,qDAAmC;AACnC,0DAAwC;AACxC,kDAAgC;AAChC,yDAAuC;AACvC,qDAAmC;AACnC,6CAA2B;AAC3B,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,8CAA4B;AAC5B,6CAA2B;AAC3B,iDAA+B;AAC/B,+DAA6C;AAC7C,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,yCAAuB;AACvB,uDAAqC;AACrC,mDAAiC;AACjC,4CAA0B;AAC1B,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC;AACpC,2CAAyB;AACzB,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,0DAAwC;AACxC,4CAA0B;AAC1B,uDAAqC;AACrC,6CAA2B;AAC3B,8DAA4C;AAC5C,+CAA6B;AAC7B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,8CAA4B;AAC5B,qDAAmC;AACnC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,0CAAwB;AACxB,qDAAmC;AACnC,+CAA6B;AAC7B,2DAAyC;AACzC,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAC9B,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B;AAC7B,6CAA2B;AAC3B,oDAAkC;AAClC,0DAAwC;AACxC,+DAKgC;AAJ9B,8HAAA,sBAAsB,OAAA;AACtB,oIAAA,4BAA4B,OAAA;AAI9B,2DAAyC;AACzC,4CAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,8DAA4C;AAC5C,wDAAsC;AACtC,8DAA4C;AAC5C,0DAAwC;AACxC,uDAAqC;AAErC,2DAAyC;AAEzC;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;IAGI;AAEJ;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;GAEG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG","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\nexport * from \"./BackendHubAccess\";\r\nexport * from \"./BackendLoggerCategory\";\r\nexport * from \"./BisCoreSchema\";\r\nexport * from \"./BlobContainerService\";\r\nexport * from \"./BriefcaseManager\";\r\nexport * from \"./Category\";\r\nexport * from \"./ChangedElementsDb\";\r\nexport * from \"./ChangeSummaryManager\";\r\nexport * from \"./ChannelControl\";\r\nexport * from \"./CheckpointManager\";\r\nexport * from \"./ClassRegistry\";\r\nexport * from \"./CloudSqlite\";\r\nexport * from \"./CodeService\";\r\nexport * from \"./CodeSpecs\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyle\";\r\nexport * from \"./domains/FunctionalElements\";\r\nexport * from \"./domains/FunctionalSchema\";\r\nexport * from \"./domains/GenericElements\";\r\nexport * from \"./domains/GenericSchema\";\r\nexport * from \"./ECDb\";\r\nexport * from \"./ECSchemaXmlContext\";\r\nexport * from \"./ECSqlStatement\";\r\nexport * from \"./Element\";\r\nexport * from \"./ElementAspect\";\r\nexport * from \"./ElementGraphics\";\r\nexport * from \"./ElementTreeWalker\";\r\nexport * from \"./Entity\";\r\nexport * from \"./EntityReferences\";\r\nexport * from \"./ExportGraphics\";\r\nexport * from \"./ExternalSource\";\r\nexport * from \"./GeoCoordConfig\";\r\nexport * from \"./GeographicCRSServices\";\r\nexport * from \"./HubMock\";\r\nexport * from \"./IModelCloneContext\";\r\nexport * from \"./IModelDb\";\r\nexport * from \"./IModelElementCloneContext\";\r\nexport * from \"./IModelHost\";\r\nexport * from \"./IModelJsFs\";\r\nexport * from \"./SchemaSync\";\r\nexport * from \"./IpcHost\";\r\nexport * from \"./LineStyle\";\r\nexport * from \"./LocalhostIpcHost\";\r\nexport * from \"./LocalHub\";\r\nexport * from \"./LockControl\";\r\nexport * from \"./Material\";\r\nexport * from \"./Model\";\r\nexport * from \"./NativeAppStorage\";\r\nexport * from \"./NativeHost\";\r\nexport * from \"./NavigationRelationship\";\r\nexport * from \"./PropertyStore\";\r\nexport * from \"./Relationship\";\r\nexport * from \"./rpc/tracing\";\r\nexport * from \"./Schema\";\r\nexport * from \"./SchemaUtils\";\r\nexport * from \"./SheetIndex\";\r\nexport * from \"./SQLiteDb\";\r\nexport * from \"./SqliteStatement\";\r\nexport * from \"./TextAnnotationElement\";\r\nexport {\r\n computeGraphemeOffsets,\r\n computeLayoutTextBlockResult,\r\n ComputeGraphemeOffsetsArgs,\r\n LayoutTextBlockArgs,\r\n} from \"./TextAnnotationLayout\";\r\nexport * from \"./TextAnnotationGeometry\";\r\nexport * from \"./Texture\";\r\nexport * from \"./TileStorage\";\r\nexport * from \"./TxnManager\";\r\nexport * from \"./ViewDefinition\";\r\nexport * from \"./ViewStore\";\r\nexport * from \"./workspace/Settings\";\r\nexport * from \"./workspace/SettingsSchemas\";\r\nexport * from \"./workspace/Workspace\";\r\nexport * from \"./workspace/WorkspaceEditor\";\r\nexport * from \"./SqliteChangesetReader\";\r\nexport * from \"./ChangesetECAdaptor\";\r\n\r\nexport * from \"./internal/cross-package\";\r\n\r\n/** @docs-package-description\r\n * The core-backend package always runs on the computer with a local Briefcase.\r\n *\r\n * It contains classes that [backend code]($docs/learning/backend/index.md) can use to work with directly with iModels.\r\n */\r\n\r\n/**\r\n * @docs-group-description BlobContainers\r\n * Classes for working with cloud-based blob containers.\r\n */\r\n\r\n/**\r\n * @docs-group-description Codes\r\n * Classes for working with [Codes]($docs/BIS/guide/fundamentals/codes.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ECDb\r\n * Classes for working with ECDb.\r\n */\r\n\r\n/**\r\n * @docs-group-description ECSQL\r\n * Classes for working with [ECSQL]($docs/learning/ECSQL.md)\r\n */\r\n\r\n/**\r\n * @docs-group-description ElementAspects\r\n * Subclasses of [ElementAspects]($docs/bis/guide/fundamentals/elementaspect-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ElementGeometry\r\n * Classes for defining the symbology and geometry of geometric elements\r\n */\r\n\r\n/**\r\n * @docs-group-description Elements\r\n * Subclasses of [Elements]($docs/BIS/guide/fundamentals/element-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ExportGraphics\r\n * APIs for producing low-level graphics primitives from element geometry.\r\n */\r\n\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelHost\r\n * Classes for configuring and administering the backend [host]($docs/learning/backend/IModelHost.md).\r\n * See [the learning article]($docs/learning/backend/IModelHost.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description iModels\r\n * Classes for working with [iModels]($docs/learning/iModels.md).\r\n * See [the learning article]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package.\r\n */\r\n\r\n/**\r\n * @docs-group-description Models\r\n * Subclasses of [Models]($docs/BIS/guide/fundamentals/model-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Mobile/Desktop Application.\r\n */\r\n\r\n/**\r\n * @docs-group-description Portability\r\n */\r\n\r\n/**\r\n * @docs-group-description Relationships\r\n * Classes that describe the [relationships]($docs/bis/guide/fundamentals/relationship-fundamentals.md) between elements.\r\n */\r\n\r\n/**\r\n * @docs-group-description RpcInterface\r\n * Classes for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description Schema\r\n * Classes for working with [ECSchemas]($docs/learning/backend/SchemasAndElementsInTypeScript.md)\r\n */\r\n\r\n/**\r\n * @docs-group-description SQLite\r\n * Classes for working directly with SQLite\r\n */\r\n\r\n/**\r\n * @docs-group-description SQLiteDb\r\n * Classes for working with SQLiteDb.\r\n */\r\n\r\n/**\r\n * @docs-group-description TileStorage\r\n * Class for working with cloud storage using iTwin/object-storage cloud providers\r\n */\r\n\r\n/**\r\n * @docs-group-description ViewDefinitions\r\n * Classes for working with Elements that define what appears in [Views]($docs/learning/frontend/views.md).\r\n * See [the learning articles]($docs/learning/backend/createelements/#orthographicviewdefinition).\r\n */\r\n\r\n/**\r\n * @docs-group-description Workspace\r\n * APIs for loading and using Settings and Workspace resources\r\n */\r\n"]}
1
+ {"version":3,"file":"core-backend.js","sourceRoot":"","sources":["../../src/core-backend.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;;AAE/F,qDAAmC;AACnC,0DAAwC;AACxC,kDAAgC;AAChC,yDAAuC;AACvC,qDAAmC;AACnC,6CAA2B;AAC3B,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,8CAA4B;AAC5B,6CAA2B;AAC3B,iDAA+B;AAC/B,+DAA6C;AAC7C,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,yCAAuB;AACvB,uDAAqC;AACrC,mDAAiC;AACjC,4CAA0B;AAC1B,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC;AACpC,2CAAyB;AACzB,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,6CAA2B;AAC3B,mDAAiC;AACjC,0DAAwC;AACxC,4CAA0B;AAC1B,0DAAwC;AACxC,uDAAqC;AACrC,6CAA2B;AAC3B,kDAAgC;AAChC,8DAA4C;AAC5C,+CAA6B;AAC7B,+CAA6B;AAC7B,+CAA6B;AAC7B,4CAA0B;AAC1B,8CAA4B;AAC5B,qDAAmC;AACnC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,0CAAwB;AACxB,qDAAmC;AACnC,+CAA6B;AAC7B,2DAAyC;AACzC,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAC9B,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B;AAC7B,6CAA2B;AAC3B,oDAAkC;AAClC,0DAAwC;AACxC,+DAKgC;AAJ9B,8HAAA,sBAAsB,OAAA;AACtB,oIAAA,4BAA4B,OAAA;AAI9B,2DAAyC;AACzC,4CAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,8DAA4C;AAC5C,wDAAsC;AACtC,8DAA4C;AAC5C,0DAAwC;AACxC,uDAAqC;AAErC,2DAAyC;AAEzC;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;IAGI;AAEJ;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;GAEG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG","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\nexport * from \"./BackendHubAccess\";\r\nexport * from \"./BackendLoggerCategory\";\r\nexport * from \"./BisCoreSchema\";\r\nexport * from \"./BlobContainerService\";\r\nexport * from \"./BriefcaseManager\";\r\nexport * from \"./Category\";\r\nexport * from \"./ChangedElementsDb\";\r\nexport * from \"./ChangeSummaryManager\";\r\nexport * from \"./ChannelControl\";\r\nexport * from \"./CheckpointManager\";\r\nexport * from \"./ClassRegistry\";\r\nexport * from \"./CloudSqlite\";\r\nexport * from \"./CodeService\";\r\nexport * from \"./CodeSpecs\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyle\";\r\nexport * from \"./domains/FunctionalElements\";\r\nexport * from \"./domains/FunctionalSchema\";\r\nexport * from \"./domains/GenericElements\";\r\nexport * from \"./domains/GenericSchema\";\r\nexport * from \"./ECDb\";\r\nexport * from \"./ECSchemaXmlContext\";\r\nexport * from \"./ECSqlStatement\";\r\nexport * from \"./Element\";\r\nexport * from \"./ElementAspect\";\r\nexport * from \"./ElementGraphics\";\r\nexport * from \"./ElementTreeWalker\";\r\nexport * from \"./Entity\";\r\nexport * from \"./EntityReferences\";\r\nexport * from \"./ExportGraphics\";\r\nexport * from \"./ExternalSource\";\r\nexport * from \"./FontFile\";\r\nexport * from \"./GeoCoordConfig\";\r\nexport * from \"./GeographicCRSServices\";\r\nexport * from \"./HubMock\";\r\nexport * from \"./ImageSourceConversion\";\r\nexport * from \"./IModelCloneContext\";\r\nexport * from \"./IModelDb\";\r\nexport * from \"./IModelDbFonts\";\r\nexport * from \"./IModelElementCloneContext\";\r\nexport * from \"./IModelHost\";\r\nexport * from \"./IModelJsFs\";\r\nexport * from \"./SchemaSync\";\r\nexport * from \"./IpcHost\";\r\nexport * from \"./LineStyle\";\r\nexport * from \"./LocalhostIpcHost\";\r\nexport * from \"./LocalHub\";\r\nexport * from \"./LockControl\";\r\nexport * from \"./Material\";\r\nexport * from \"./Model\";\r\nexport * from \"./NativeAppStorage\";\r\nexport * from \"./NativeHost\";\r\nexport * from \"./NavigationRelationship\";\r\nexport * from \"./PropertyStore\";\r\nexport * from \"./Relationship\";\r\nexport * from \"./rpc/tracing\";\r\nexport * from \"./Schema\";\r\nexport * from \"./SchemaUtils\";\r\nexport * from \"./SheetIndex\";\r\nexport * from \"./SQLiteDb\";\r\nexport * from \"./SqliteStatement\";\r\nexport * from \"./TextAnnotationElement\";\r\nexport {\r\n computeGraphemeOffsets,\r\n computeLayoutTextBlockResult,\r\n ComputeGraphemeOffsetsArgs,\r\n LayoutTextBlockArgs,\r\n} from \"./TextAnnotationLayout\";\r\nexport * from \"./TextAnnotationGeometry\";\r\nexport * from \"./Texture\";\r\nexport * from \"./TileStorage\";\r\nexport * from \"./TxnManager\";\r\nexport * from \"./ViewDefinition\";\r\nexport * from \"./ViewStore\";\r\nexport * from \"./workspace/Settings\";\r\nexport * from \"./workspace/SettingsSchemas\";\r\nexport * from \"./workspace/Workspace\";\r\nexport * from \"./workspace/WorkspaceEditor\";\r\nexport * from \"./SqliteChangesetReader\";\r\nexport * from \"./ChangesetECAdaptor\";\r\n\r\nexport * from \"./internal/cross-package\";\r\n\r\n/** @docs-package-description\r\n * The core-backend package always runs on the computer with a local Briefcase.\r\n *\r\n * It contains classes that [backend code]($docs/learning/backend/index.md) can use to work with directly with iModels.\r\n */\r\n\r\n/**\r\n * @docs-group-description BlobContainers\r\n * Classes for working with cloud-based blob containers.\r\n */\r\n\r\n/**\r\n * @docs-group-description Codes\r\n * Classes for working with [Codes]($docs/BIS/guide/fundamentals/codes.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ECDb\r\n * Classes for working with ECDb.\r\n */\r\n\r\n/**\r\n * @docs-group-description ECSQL\r\n * Classes for working with [ECSQL]($docs/learning/ECSQL.md)\r\n */\r\n\r\n/**\r\n * @docs-group-description ElementAspects\r\n * Subclasses of [ElementAspects]($docs/bis/guide/fundamentals/elementaspect-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ElementGeometry\r\n * Classes for defining the symbology and geometry of geometric elements\r\n */\r\n\r\n/**\r\n * @docs-group-description Elements\r\n * Subclasses of [Elements]($docs/BIS/guide/fundamentals/element-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description ExportGraphics\r\n * APIs for producing low-level graphics primitives from element geometry.\r\n */\r\n\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n\r\n/**\r\n * @docs-group-description Images\r\n * APIs for encoding and decoding images\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelHost\r\n * Classes for configuring and administering the backend [host]($docs/learning/backend/IModelHost.md).\r\n * See [the learning article]($docs/learning/backend/IModelHost.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description iModels\r\n * Classes for working with [iModels]($docs/learning/iModels.md).\r\n * See [the learning article]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package.\r\n */\r\n\r\n/**\r\n * @docs-group-description Models\r\n * Subclasses of [Models]($docs/BIS/guide/fundamentals/model-fundamentals.md).\r\n * See [the learning articles]($docs/learning/backend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Mobile/Desktop Application.\r\n */\r\n\r\n/**\r\n * @docs-group-description Portability\r\n */\r\n\r\n/**\r\n * @docs-group-description Relationships\r\n * Classes that describe the [relationships]($docs/bis/guide/fundamentals/relationship-fundamentals.md) between elements.\r\n */\r\n\r\n/**\r\n * @docs-group-description RpcInterface\r\n * Classes for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description Schema\r\n * Classes for working with [ECSchemas]($docs/learning/backend/SchemasAndElementsInTypeScript.md)\r\n */\r\n\r\n/**\r\n * @docs-group-description SQLite\r\n * Classes for working directly with SQLite\r\n */\r\n\r\n/**\r\n * @docs-group-description SQLiteDb\r\n * Classes for working with SQLiteDb.\r\n */\r\n\r\n/**\r\n * @docs-group-description TileStorage\r\n * Class for working with cloud storage using iTwin/object-storage cloud providers\r\n */\r\n\r\n/**\r\n * @docs-group-description ViewDefinitions\r\n * Classes for working with Elements that define what appears in [Views]($docs/learning/frontend/views.md).\r\n * See [the learning articles]($docs/learning/backend/createelements/#orthographicviewdefinition).\r\n */\r\n\r\n/**\r\n * @docs-group-description Workspace\r\n * APIs for loading and using Settings and Workspace resources\r\n */\r\n"]}
@@ -107,12 +107,12 @@ exports.FunctionalType = FunctionalType;
107
107
  */
108
108
  class FunctionalElementIsOfType extends core_common_1.RelatedElement {
109
109
  static get className() { return "FunctionalElementIsOfType"; }
110
+ static classFullName = "Functional:FunctionalElementIsOfType";
110
111
  constructor(id, relClassName = FunctionalElementIsOfType.classFullName) {
111
112
  super({ id, relClassName });
112
113
  }
113
114
  }
114
115
  exports.FunctionalElementIsOfType = FunctionalElementIsOfType;
115
- FunctionalElementIsOfType.classFullName = "Functional:FunctionalElementIsOfType";
116
116
  /** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.
117
117
  * @public
118
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n FunctionalElementProps, IModel, InformationPartitionElementProps, ModelProps, RelatedElement, TypeDefinitionElementProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationPartitionElement, RoleElement, TypeDefinitionElement } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { RoleModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\nimport { DrawingGraphicRepresentsElement, ElementRefersToElements } from \"../Relationship\";\r\n\r\n/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented\r\n * to a Subject and broken down by a FunctionalModel.\r\n * @public\r\n */\r\nexport class FunctionalPartition extends InformationPartitionElement {\r\n public static override get className(): string { return \"FunctionalPartition\"; }\r\n\r\n protected constructor(props: InformationPartitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A container for persisting FunctionalElements.\r\n * @public\r\n */\r\nexport class FunctionalModel extends RoleModel {\r\n public static override get className(): string { return \"FunctionalModel\"; }\r\n\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n\r\n /** Insert a FunctionalPartition and a FunctionalModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the FunctionalPartition that the new FunctionalModel will break down.\r\n * @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: FunctionalPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: FunctionalPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.\r\n * @public\r\n */\r\nexport abstract class FunctionalElement extends RoleElement {\r\n public static override get className(): string { return \"FunctionalElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalBreakdownElement extends FunctionalElement {\r\n public static override get className(): string { return \"FunctionalBreakdownElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class FunctionalComposite extends FunctionalBreakdownElement {\r\n public static override get className(): string { return \"FunctionalComposite\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalComponentElement is a *leaf* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalComponentElement extends FunctionalElement {\r\n public static override get className(): string { return \"FunctionalComponentElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Defines a set of properties (the 'type') that can be associated with a Functional Element.\r\n * @public\r\n */\r\nexport abstract class FunctionalType extends TypeDefinitionElement {\r\n public static override get className(): string { return \"FunctionalType\"; }\r\n\r\n protected constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Relates a [[FunctionalElement]] to its [[FunctionalType]]\r\n * @public\r\n */\r\nexport class FunctionalElementIsOfType extends RelatedElement {\r\n public static get className(): string { return \"FunctionalElementIsOfType\"; }\r\n public static classFullName = \"Functional:FunctionalElementIsOfType\";\r\n public constructor(id: Id64String, relClassName: string = FunctionalElementIsOfType.classFullName) {\r\n super({ id, relClassName });\r\n }\r\n}\r\n\r\n/** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.\r\n * @public\r\n */\r\nexport class PhysicalElementFulfillsFunction extends ElementRefersToElements {\r\n public static override get className(): string { return \"PhysicalElementFulfillsFunction\"; }\r\n}\r\n\r\n/** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents\r\n * @public\r\n */\r\nexport class DrawingGraphicRepresentsFunctionalElement extends DrawingGraphicRepresentsElement {\r\n public static override get className(): string { return \"DrawingGraphicRepresentsFunctionalElement\"; }\r\n}\r\n"]}
1
+ {"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n FunctionalElementProps, IModel, InformationPartitionElementProps, ModelProps, RelatedElement, TypeDefinitionElementProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationPartitionElement, RoleElement, TypeDefinitionElement } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { RoleModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\nimport { DrawingGraphicRepresentsElement, ElementRefersToElements } from \"../Relationship\";\r\n\r\n/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented\r\n * to a Subject and broken down by a FunctionalModel.\r\n * @public\r\n */\r\nexport class FunctionalPartition extends InformationPartitionElement {\r\n public static override get className(): string { return \"FunctionalPartition\"; }\r\n\r\n protected constructor(props: InformationPartitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A container for persisting FunctionalElements.\r\n * @public\r\n */\r\nexport class FunctionalModel extends RoleModel {\r\n public static override get className(): string { return \"FunctionalModel\"; }\r\n\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n\r\n /** Insert a FunctionalPartition and a FunctionalModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the FunctionalPartition that the new FunctionalModel will break down.\r\n * @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: FunctionalPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: FunctionalPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.\r\n * @public\r\n */\r\nexport abstract class FunctionalElement extends RoleElement {\r\n public static override get className(): string { return \"FunctionalElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalBreakdownElement extends FunctionalElement {\r\n public static override get className(): string { return \"FunctionalBreakdownElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class FunctionalComposite extends FunctionalBreakdownElement {\r\n public static override get className(): string { return \"FunctionalComposite\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalComponentElement is a *leaf* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalComponentElement extends FunctionalElement {\r\n public static override get className(): string { return \"FunctionalComponentElement\"; }\r\n\r\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Defines a set of properties (the 'type') that can be associated with a Functional Element.\r\n * @public\r\n */\r\nexport abstract class FunctionalType extends TypeDefinitionElement {\r\n public static override get className(): string { return \"FunctionalType\"; }\r\n\r\n protected constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Relates a [[FunctionalElement]] to its [[FunctionalType]]\r\n * @public\r\n */\r\nexport class FunctionalElementIsOfType extends RelatedElement {\r\n public static get className(): string { return \"FunctionalElementIsOfType\"; }\r\n public static classFullName = \"Functional:FunctionalElementIsOfType\";\r\n public constructor(id: Id64String, relClassName: string = FunctionalElementIsOfType.classFullName) {\r\n super({ id, relClassName });\r\n }\r\n}\r\n\r\n/** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.\r\n * @public\r\n */\r\nexport class PhysicalElementFulfillsFunction extends ElementRefersToElements {\r\n public static override get className(): string { return \"PhysicalElementFulfillsFunction\"; }\r\n}\r\n\r\n/** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents\r\n * @public\r\n */\r\nexport class DrawingGraphicRepresentsFunctionalElement extends DrawingGraphicRepresentsElement {\r\n public static override get className(): string { return \"DrawingGraphicRepresentsFunctionalElement\"; }\r\n}\r\n"]}
@@ -2,12 +2,13 @@
2
2
  * @module iModels
3
3
  */
4
4
  import { DbChangeStage, DbConflictCause, DbOpcode, DbValueType, Id64String } from "@itwin/core-bentley";
5
- export interface ChangesetConflictArgs {
5
+ import { SqliteChangeOp, SqliteChangesetReader, SqliteValueStage } from "../SqliteChangesetReader";
6
+ import { IModelDb } from "../IModelDb";
7
+ export interface DbChangesetConflictArgs {
6
8
  cause: DbConflictCause;
7
9
  opcode: DbOpcode;
8
10
  indirect: boolean;
9
11
  tableName: string;
10
- changesetFile?: string;
11
12
  columnCount: number;
12
13
  getForeignKeyConflicts: () => number;
13
14
  dump: () => void;
@@ -20,5 +21,42 @@ export interface ChangesetConflictArgs {
20
21
  getValueInteger: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;
21
22
  getValueDouble: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;
22
23
  isValueNull: (columnIndex: number, stage: DbChangeStage) => boolean | undefined;
24
+ getColumnNames(): string[];
25
+ }
26
+ export interface DbMergeChangesetConflictArgs extends DbChangesetConflictArgs {
27
+ changesetFile?: string;
28
+ }
29
+ export interface TxnArgs {
30
+ id: Id64String;
31
+ type: "Data" | "Schema";
32
+ descr: string;
33
+ }
34
+ export interface DbRebaseChangesetConflictArgs extends DbChangesetConflictArgs {
35
+ txn: TxnArgs;
36
+ }
37
+ export type SqliteConflictCause = "Conflict" | "Data" | "Constraint" | "ForeignKey" | "NotFound";
38
+ export declare class RebaseChangesetConflictArgs {
39
+ private _dbConflictArg;
40
+ private _iModel;
41
+ constructor(_dbConflictArg: DbRebaseChangesetConflictArgs, _iModel: IModelDb);
42
+ get cause(): SqliteConflictCause;
43
+ get opcode(): SqliteChangeOp | undefined;
44
+ openTxn(): SqliteChangesetReader;
45
+ get indirect(): boolean;
46
+ get tableName(): string;
47
+ get columnCount(): number;
48
+ getForeignKeyConflicts(): number;
49
+ setLastError(message: string): void;
50
+ getPrimaryKeyColumns(): number[];
51
+ getValueType(columnIndex: number, stage: SqliteValueStage): DbValueType | null | undefined;
52
+ getValueBinary(columnIndex: number, stage: SqliteValueStage): Uint8Array | null | undefined;
53
+ getValueId(columnIndex: number, stage: SqliteValueStage): Id64String | null | undefined;
54
+ getValueText(columnIndex: number, stage: SqliteValueStage): string | null | undefined;
55
+ getValueInteger(columnIndex: number, stage: SqliteValueStage): number | null | undefined;
56
+ getValueDouble(columnIndex: number, stage: SqliteValueStage): number | null | undefined;
57
+ isValueNull(columnIndex: number, stage: SqliteValueStage): boolean | undefined;
58
+ getColumnNames(): string[];
59
+ getPrimaryKeyValues(): (string | number | Uint8Array | null | undefined)[];
60
+ get txn(): TxnArgs;
23
61
  }
24
62
  //# sourceMappingURL=ChangesetConflictArgs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangesetConflictArgs.d.ts","sourceRoot":"","sources":["../../../src/internal/ChangesetConflictArgs.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExG,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oBAAoB,EAAE,MAAM,MAAM,EAAE,CAAC;IACrC,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5F,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7F,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IACzF,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvF,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1F,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzF,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,GAAG,SAAS,CAAC;CACjF"}
1
+ {"version":3,"file":"ChangesetConflictArgs.d.ts","sourceRoot":"","sources":["../../../src/internal/ChangesetConflictArgs.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,105 @@
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RebaseChangesetConflictArgs = void 0;
8
+ /** @packageDocumentation
9
+ * @module iModels
10
+ */
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const SqliteChangesetReader_1 = require("../SqliteChangesetReader");
13
+ class RebaseChangesetConflictArgs {
14
+ _dbConflictArg;
15
+ _iModel;
16
+ constructor(_dbConflictArg, _iModel) {
17
+ this._dbConflictArg = _dbConflictArg;
18
+ this._iModel = _iModel;
19
+ }
20
+ get cause() {
21
+ switch (this._dbConflictArg.cause) {
22
+ case core_bentley_1.DbConflictCause.Conflict: return "Conflict";
23
+ case core_bentley_1.DbConflictCause.Data: return "Data";
24
+ case core_bentley_1.DbConflictCause.Constraint: return "Constraint";
25
+ case core_bentley_1.DbConflictCause.ForeignKey: return "ForeignKey";
26
+ case core_bentley_1.DbConflictCause.NotFound: return "NotFound";
27
+ }
28
+ throw new Error("Invalid value for cause");
29
+ }
30
+ get opcode() {
31
+ switch (this._dbConflictArg.opcode) {
32
+ case core_bentley_1.DbOpcode.Insert: return "Inserted";
33
+ case core_bentley_1.DbOpcode.Update: return "Updated";
34
+ case core_bentley_1.DbOpcode.Delete: return "Deleted";
35
+ }
36
+ }
37
+ openTxn() {
38
+ return SqliteChangesetReader_1.SqliteChangesetReader.openTxn({ txnId: this._dbConflictArg.txn.id, db: this._iModel });
39
+ }
40
+ get indirect() {
41
+ return this._dbConflictArg.indirect;
42
+ }
43
+ get tableName() {
44
+ return this._dbConflictArg.tableName;
45
+ }
46
+ get columnCount() {
47
+ return this._dbConflictArg.columnCount;
48
+ }
49
+ getForeignKeyConflicts() {
50
+ return this._dbConflictArg.getForeignKeyConflicts();
51
+ }
52
+ setLastError(message) {
53
+ this._dbConflictArg.setLastError(message);
54
+ }
55
+ getPrimaryKeyColumns() {
56
+ return this._dbConflictArg.getPrimaryKeyColumns();
57
+ }
58
+ getValueType(columnIndex, stage) {
59
+ return this._dbConflictArg.getValueType(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
60
+ }
61
+ getValueBinary(columnIndex, stage) {
62
+ return this._dbConflictArg.getValueBinary(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
63
+ }
64
+ getValueId(columnIndex, stage) {
65
+ return this._dbConflictArg.getValueId(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
66
+ }
67
+ getValueText(columnIndex, stage) {
68
+ return this._dbConflictArg.getValueText(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
69
+ }
70
+ getValueInteger(columnIndex, stage) {
71
+ return this._dbConflictArg.getValueInteger(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
72
+ }
73
+ getValueDouble(columnIndex, stage) {
74
+ return this._dbConflictArg.getValueDouble(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
75
+ }
76
+ isValueNull(columnIndex, stage) {
77
+ return this._dbConflictArg.isValueNull(columnIndex, stage === "New" ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old);
78
+ }
79
+ getColumnNames() {
80
+ return this._dbConflictArg.getColumnNames();
81
+ }
82
+ getPrimaryKeyValues() {
83
+ const pkv = [];
84
+ if (this.opcode === undefined)
85
+ return pkv;
86
+ const stage = this._dbConflictArg.opcode === core_bentley_1.DbOpcode.Insert ? core_bentley_1.DbChangeStage.New : core_bentley_1.DbChangeStage.Old;
87
+ for (const pk of this._dbConflictArg.getPrimaryKeyColumns()) {
88
+ const type = this._dbConflictArg.getValueType(pk, stage);
89
+ if (type === core_bentley_1.DbValueType.IntegerVal)
90
+ pkv.push(this._dbConflictArg.getValueId(pk, stage));
91
+ else if (type === core_bentley_1.DbValueType.TextVal)
92
+ pkv.push(this._dbConflictArg.getValueText(pk, stage));
93
+ else if (type === core_bentley_1.DbValueType.FloatVal)
94
+ pkv.push(this._dbConflictArg.getValueDouble(pk, stage));
95
+ else if (type === core_bentley_1.DbValueType.BlobVal)
96
+ pkv.push(this._dbConflictArg.getValueBinary(pk, stage));
97
+ else
98
+ pkv.push(null);
99
+ }
100
+ return pkv;
101
+ }
102
+ ;
103
+ get txn() {
104
+ return this._dbConflictArg.txn;
105
+ }
106
+ }
107
+ exports.RebaseChangesetConflictArgs = RebaseChangesetConflictArgs;
7
108
  //# sourceMappingURL=ChangesetConflictArgs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangesetConflictArgs.js","sourceRoot":"","sources":["../../../src/internal/ChangesetConflictArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F","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\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { DbChangeStage, DbConflictCause, DbOpcode, DbValueType, Id64String } from \"@itwin/core-bentley\";\r\n\r\nexport interface ChangesetConflictArgs {\r\n cause: DbConflictCause;\r\n opcode: DbOpcode;\r\n indirect: boolean;\r\n tableName: string;\r\n changesetFile?: string;\r\n columnCount: number;\r\n getForeignKeyConflicts: () => number;\r\n dump: () => void;\r\n setLastError: (message: string) => void;\r\n getPrimaryKeyColumns: () => number[];\r\n getValueType: (columnIndex: number, stage: DbChangeStage) => DbValueType | null | undefined;\r\n getValueBinary: (columnIndex: number, stage: DbChangeStage) => Uint8Array | null | undefined;\r\n getValueId: (columnIndex: number, stage: DbChangeStage) => Id64String | null | undefined;\r\n getValueText: (columnIndex: number, stage: DbChangeStage) => string | null | undefined;\r\n getValueInteger: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;\r\n getValueDouble: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;\r\n isValueNull: (columnIndex: number, stage: DbChangeStage) => boolean | undefined;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"ChangesetConflictArgs.js","sourceRoot":"","sources":["../../../src/internal/ChangesetConflictArgs.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\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { DbChangeStage, DbConflictCause, DbOpcode, DbValueType, Id64String } from \"@itwin/core-bentley\";\r\nimport { SqliteChangeOp, SqliteChangesetReader, SqliteValueStage } from \"../SqliteChangesetReader\";\r\nimport { IModelDb } from \"../IModelDb\";\r\n\r\nexport interface DbChangesetConflictArgs {\r\n cause: DbConflictCause;\r\n opcode: DbOpcode;\r\n indirect: boolean;\r\n tableName: string;\r\n columnCount: number;\r\n getForeignKeyConflicts: () => number;\r\n dump: () => void;\r\n setLastError: (message: string) => void;\r\n getPrimaryKeyColumns: () => number[];\r\n getValueType: (columnIndex: number, stage: DbChangeStage) => DbValueType | null | undefined;\r\n getValueBinary: (columnIndex: number, stage: DbChangeStage) => Uint8Array | null | undefined;\r\n getValueId: (columnIndex: number, stage: DbChangeStage) => Id64String | null | undefined;\r\n getValueText: (columnIndex: number, stage: DbChangeStage) => string | null | undefined;\r\n getValueInteger: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;\r\n getValueDouble: (columnIndex: number, stage: DbChangeStage) => number | null | undefined;\r\n isValueNull: (columnIndex: number, stage: DbChangeStage) => boolean | undefined;\r\n getColumnNames(): string[];\r\n}\r\n\r\nexport interface DbMergeChangesetConflictArgs extends DbChangesetConflictArgs {\r\n changesetFile?: string;\r\n}\r\n\r\nexport interface TxnArgs {\r\n id: Id64String;\r\n type: \"Data\" | \"Schema\";\r\n descr: string;\r\n}\r\n\r\nexport interface DbRebaseChangesetConflictArgs extends DbChangesetConflictArgs {\r\n txn: TxnArgs;\r\n}\r\n\r\nexport type SqliteConflictCause = \"Conflict\" | \"Data\" | \"Constraint\" | \"ForeignKey\" | \"NotFound\";\r\n\r\nexport class RebaseChangesetConflictArgs {\r\n constructor(private _dbConflictArg: DbRebaseChangesetConflictArgs, private _iModel: IModelDb){}\r\n public get cause() : SqliteConflictCause {\r\n switch (this._dbConflictArg.cause) {\r\n case DbConflictCause.Conflict: return \"Conflict\";\r\n case DbConflictCause.Data: return \"Data\";\r\n case DbConflictCause.Constraint: return \"Constraint\";\r\n case DbConflictCause.ForeignKey: return \"ForeignKey\";\r\n case DbConflictCause.NotFound: return \"NotFound\";\r\n }\r\n throw new Error(\"Invalid value for cause\");\r\n }\r\n public get opcode(): SqliteChangeOp | undefined {\r\n switch (this._dbConflictArg.opcode) {\r\n case DbOpcode.Insert: return \"Inserted\";\r\n case DbOpcode.Update: return \"Updated\";\r\n case DbOpcode.Delete: return \"Deleted\";\r\n }\r\n }\r\n public openTxn(): SqliteChangesetReader {\r\n return SqliteChangesetReader.openTxn({txnId: this._dbConflictArg.txn.id, db: this._iModel});\r\n }\r\n public get indirect(): boolean {\r\n return this._dbConflictArg.indirect;\r\n }\r\n public get tableName(): string {\r\n return this._dbConflictArg.tableName;\r\n }\r\n public get columnCount(): number {\r\n return this._dbConflictArg.columnCount;\r\n }\r\n public getForeignKeyConflicts(): number {\r\n return this._dbConflictArg.getForeignKeyConflicts();\r\n }\r\n public setLastError(message: string): void {\r\n this._dbConflictArg.setLastError(message);\r\n }\r\n public getPrimaryKeyColumns(): number[] {\r\n return this._dbConflictArg.getPrimaryKeyColumns();\r\n }\r\n public getValueType(columnIndex: number, stage: SqliteValueStage): DbValueType | null | undefined {\r\n return this._dbConflictArg.getValueType(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getValueBinary(columnIndex: number, stage: SqliteValueStage): Uint8Array | null | undefined {\r\n return this._dbConflictArg.getValueBinary(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getValueId(columnIndex: number, stage: SqliteValueStage): Id64String | null | undefined {\r\n return this._dbConflictArg.getValueId(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getValueText(columnIndex: number, stage: SqliteValueStage): string | null | undefined {\r\n return this._dbConflictArg.getValueText(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getValueInteger(columnIndex: number, stage: SqliteValueStage): number | null | undefined {\r\n return this._dbConflictArg.getValueInteger(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getValueDouble(columnIndex: number, stage: SqliteValueStage): number | null | undefined {\r\n return this._dbConflictArg.getValueDouble(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public isValueNull(columnIndex: number, stage: SqliteValueStage): boolean | undefined {\r\n return this._dbConflictArg.isValueNull(columnIndex, stage=== \"New\" ? DbChangeStage.New : DbChangeStage.Old);\r\n }\r\n public getColumnNames(): string[] {\r\n return this._dbConflictArg.getColumnNames();\r\n }\r\n public getPrimaryKeyValues() {\r\n const pkv: (Uint8Array | number | string | null | undefined)[] = [];\r\n if (this.opcode === undefined)\r\n return pkv;\r\n\r\n const stage = this._dbConflictArg.opcode === DbOpcode.Insert ? DbChangeStage.New : DbChangeStage.Old;\r\n for (const pk of this._dbConflictArg.getPrimaryKeyColumns()) {\r\n const type = this._dbConflictArg.getValueType(pk, stage);\r\n if (type === DbValueType.IntegerVal)\r\n pkv.push(this._dbConflictArg.getValueId(pk, stage));\r\n else if (type === DbValueType.TextVal)\r\n pkv.push(this._dbConflictArg.getValueText(pk, stage));\r\n else if (type === DbValueType.FloatVal)\r\n pkv.push(this._dbConflictArg.getValueDouble(pk, stage));\r\n else if (type === DbValueType.BlobVal)\r\n pkv.push(this._dbConflictArg.getValueBinary(pk, stage));\r\n else\r\n pkv.push(null);\r\n }\r\n return pkv;\r\n };\r\n public get txn() {\r\n return this._dbConflictArg.txn;\r\n }\r\n}\r\n\r\n"]}
@@ -6,7 +6,6 @@
6
6
  /** @packageDocumentation
7
7
  * @module Elements
8
8
  */
9
- var _a;
10
9
  Object.defineProperty(exports, "__esModule", { value: true });
11
10
  exports.createChannelControl = createChannelControl;
12
11
  const core_bentley_1 = require("@itwin/core-bentley");
@@ -16,12 +15,14 @@ const IModelHost_1 = require("../IModelHost");
16
15
  const ChannelControl_1 = require("../ChannelControl");
17
16
  const Symbols_1 = require("./Symbols");
18
17
  class ChannelAdmin {
18
+ _iModel;
19
+ static channelClassName = "bis:ChannelRootAspect";
20
+ [Symbols_1._implementationProhibited] = undefined;
21
+ _allowedChannels = new Set();
22
+ _allowedModels = new Set();
23
+ _deniedModels = new Map();
19
24
  constructor(_iModel) {
20
25
  this._iModel = _iModel;
21
- this[_a] = undefined;
22
- this._allowedChannels = new Set();
23
- this._allowedModels = new Set();
24
- this._deniedModels = new Map();
25
26
  // for backwards compatibility, allow the shared channel unless explicitly turned off in IModelHostOptions.
26
27
  if (IModelHost_1.IModelHost.configuration?.allowSharedChannel !== false)
27
28
  this._allowedChannels.add(ChannelControl_1.ChannelControl.sharedChannelName);
@@ -58,7 +59,7 @@ class ChannelAdmin {
58
59
  });
59
60
  return this.getChannelKey(parentId);
60
61
  }
61
- [(_a = Symbols_1._implementationProhibited, Symbols_1._verifyChannel)](modelId) {
62
+ [Symbols_1._verifyChannel](modelId) {
62
63
  // Note: indirect changes are permitted to change any channel
63
64
  if (this._allowedModels.has(modelId) || this._iModel[Symbols_1._nativeDb].isIndirectChanges())
64
65
  return;
@@ -109,7 +110,6 @@ class ChannelAdmin {
109
110
  }
110
111
  }
111
112
  }
112
- ChannelAdmin.channelClassName = "bis:ChannelRootAspect";
113
113
  function createChannelControl(iModel) {
114
114
  return new ChannelAdmin(iModel);
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelAdmin.js","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { DbResult, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { ChannelRootAspectProps, IModel, IModelError } from \"@itwin/core-common\";\r\nimport { Subject } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { IModelHost } from \"../IModelHost\";\r\nimport { ChannelControl, ChannelKey } from \"../ChannelControl\";\r\nimport { _implementationProhibited, _nativeDb, _verifyChannel } from \"./Symbols\";\r\n\r\nclass ChannelAdmin implements ChannelControl {\r\n public static readonly channelClassName = \"bis:ChannelRootAspect\";\r\n\r\n public readonly [_implementationProhibited] = undefined;\r\n private _allowedChannels = new Set<ChannelKey>();\r\n private _allowedModels = new Set<Id64String>();\r\n private _deniedModels = new Map<Id64String, ChannelKey>();\r\n\r\n public constructor(private _iModel: IModelDb) {\r\n // for backwards compatibility, allow the shared channel unless explicitly turned off in IModelHostOptions.\r\n if (IModelHost.configuration?.allowSharedChannel !== false)\r\n this._allowedChannels.add(ChannelControl.sharedChannelName);\r\n }\r\n\r\n public addAllowedChannel(channelKey: ChannelKey) {\r\n this._allowedChannels.add(channelKey);\r\n this._deniedModels.clear();\r\n }\r\n\r\n public removeAllowedChannel(channelKey: ChannelKey) {\r\n this._allowedChannels.delete(channelKey);\r\n this._allowedModels.clear();\r\n }\r\n\r\n public getChannelKey(elementId: Id64String): ChannelKey {\r\n if (elementId === IModel.rootSubjectId)\r\n return ChannelControl.sharedChannelName;\r\n\r\n try {\r\n const channel = this._iModel.withPreparedStatement(`SELECT Owner FROM ${ChannelAdmin.channelClassName} WHERE Element.Id=?`, (stmt) => {\r\n stmt.bindId(1, elementId);\r\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getString() : undefined;\r\n });\r\n\r\n if (channel !== undefined)\r\n return channel;\r\n } catch {\r\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\r\n // In that case all data in such iModel is assumed to be in the shared channel.\r\n return ChannelControl.sharedChannelName;\r\n }\r\n\r\n const parentId = this._iModel.withPreparedSqliteStatement(\"SELECT ParentId,ModelId FROM bis_Element WHERE id=?\", (stmt) => {\r\n stmt.bindId(1, elementId);\r\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\r\n throw new IModelError(IModelStatus.NotFound, \"Element does not exist\");\r\n return stmt.getValueId(0) ?? stmt.getValueId(1); // if parent is undefined, use modelId\r\n });\r\n\r\n return this.getChannelKey(parentId);\r\n }\r\n\r\n public [_verifyChannel](modelId: Id64String): void {\r\n // Note: indirect changes are permitted to change any channel\r\n if (this._allowedModels.has(modelId) || this._iModel[_nativeDb].isIndirectChanges())\r\n return;\r\n\r\n const deniedChannel = this._deniedModels.get(modelId);\r\n if (undefined !== deniedChannel)\r\n throw new Error(`channel \"${deniedChannel}\" is not allowed`);\r\n\r\n const channel = this.getChannelKey(modelId);\r\n if (this._allowedChannels.has(channel)) {\r\n this._allowedModels.add(modelId);\r\n return;\r\n }\r\n\r\n this._deniedModels.set(modelId, channel);\r\n return this[_verifyChannel](modelId);\r\n }\r\n\r\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey }) {\r\n if (ChannelControl.sharedChannelName !== this.getChannelKey(args.elementId))\r\n throw new Error(\"channels may not nest\");\r\n\r\n if (this.queryChannelRoot(args.channelKey) !== undefined)\r\n throw new Error(\"a channel root for the specified key already exists\");\r\n\r\n const props: ChannelRootAspectProps = { classFullName: ChannelAdmin.channelClassName, element: { id: args.elementId }, owner: args.channelKey };\r\n this._iModel.elements.insertAspect(props);\r\n }\r\n\r\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string }): Id64String {\r\n // Check if channelKey already exists before inserting Subject.\r\n // makeChannelRoot will check that again, but at that point the new Subject is already inserted.\r\n // Prefer to check twice instead of deleting the Subject in the latter option.\r\n if (this.queryChannelRoot(args.channelKey) !== undefined)\r\n throw new Error(\"a channel root for the specified key already exists\");\r\n\r\n const elementId = Subject.insert(this._iModel, args.parentSubjectId ?? IModel.rootSubjectId, args.subjectName, args.description);\r\n this.makeChannelRoot({ elementId, channelKey: args.channelKey });\r\n return elementId;\r\n }\r\n\r\n public queryChannelRoot(channelKey: ChannelKey): Id64String | undefined {\r\n if (channelKey === ChannelControl.sharedChannelName)\r\n // RootSubject acts as the ChannelRoot element of the shared channel\r\n return IModel.rootSubjectId;\r\n\r\n try {\r\n const channelRoot = this._iModel.withPreparedStatement(`SELECT Element.Id FROM ${ChannelAdmin.channelClassName} WHERE Owner=?`, (stmt) => {\r\n stmt.bindString(1, channelKey);\r\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getId() : undefined;\r\n });\r\n\r\n return channelRoot;\r\n } catch {\r\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\r\n // In that case all data in such iModel is assumed to be in the shared channel.\r\n return undefined;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function createChannelControl(iModel: IModelDb): ChannelAdmin {\r\n return new ChannelAdmin(iModel);\r\n}\r\n"]}
1
+ {"version":3,"file":"ChannelAdmin.js","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.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/** @packageDocumentation\r\n * @module Elements\r\n */\r\n\r\nimport { DbResult, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { ChannelRootAspectProps, IModel, IModelError } from \"@itwin/core-common\";\r\nimport { Subject } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { IModelHost } from \"../IModelHost\";\r\nimport { ChannelControl, ChannelKey } from \"../ChannelControl\";\r\nimport { _implementationProhibited, _nativeDb, _verifyChannel } from \"./Symbols\";\r\n\r\nclass ChannelAdmin implements ChannelControl {\r\n public static readonly channelClassName = \"bis:ChannelRootAspect\";\r\n\r\n public readonly [_implementationProhibited] = undefined;\r\n private _allowedChannels = new Set<ChannelKey>();\r\n private _allowedModels = new Set<Id64String>();\r\n private _deniedModels = new Map<Id64String, ChannelKey>();\r\n\r\n public constructor(private _iModel: IModelDb) {\r\n // for backwards compatibility, allow the shared channel unless explicitly turned off in IModelHostOptions.\r\n if (IModelHost.configuration?.allowSharedChannel !== false)\r\n this._allowedChannels.add(ChannelControl.sharedChannelName);\r\n }\r\n\r\n public addAllowedChannel(channelKey: ChannelKey) {\r\n this._allowedChannels.add(channelKey);\r\n this._deniedModels.clear();\r\n }\r\n\r\n public removeAllowedChannel(channelKey: ChannelKey) {\r\n this._allowedChannels.delete(channelKey);\r\n this._allowedModels.clear();\r\n }\r\n\r\n public getChannelKey(elementId: Id64String): ChannelKey {\r\n if (elementId === IModel.rootSubjectId)\r\n return ChannelControl.sharedChannelName;\r\n\r\n try {\r\n const channel = this._iModel.withPreparedStatement(`SELECT Owner FROM ${ChannelAdmin.channelClassName} WHERE Element.Id=?`, (stmt) => {\r\n stmt.bindId(1, elementId);\r\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getString() : undefined;\r\n });\r\n\r\n if (channel !== undefined)\r\n return channel;\r\n } catch {\r\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\r\n // In that case all data in such iModel is assumed to be in the shared channel.\r\n return ChannelControl.sharedChannelName;\r\n }\r\n\r\n const parentId = this._iModel.withPreparedSqliteStatement(\"SELECT ParentId,ModelId FROM bis_Element WHERE id=?\", (stmt) => {\r\n stmt.bindId(1, elementId);\r\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\r\n throw new IModelError(IModelStatus.NotFound, \"Element does not exist\");\r\n return stmt.getValueId(0) ?? stmt.getValueId(1); // if parent is undefined, use modelId\r\n });\r\n\r\n return this.getChannelKey(parentId);\r\n }\r\n\r\n public [_verifyChannel](modelId: Id64String): void {\r\n // Note: indirect changes are permitted to change any channel\r\n if (this._allowedModels.has(modelId) || this._iModel[_nativeDb].isIndirectChanges())\r\n return;\r\n\r\n const deniedChannel = this._deniedModels.get(modelId);\r\n if (undefined !== deniedChannel)\r\n throw new Error(`channel \"${deniedChannel}\" is not allowed`);\r\n\r\n const channel = this.getChannelKey(modelId);\r\n if (this._allowedChannels.has(channel)) {\r\n this._allowedModels.add(modelId);\r\n return;\r\n }\r\n\r\n this._deniedModels.set(modelId, channel);\r\n return this[_verifyChannel](modelId);\r\n }\r\n\r\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey }) {\r\n if (ChannelControl.sharedChannelName !== this.getChannelKey(args.elementId))\r\n throw new Error(\"channels may not nest\");\r\n\r\n if (this.queryChannelRoot(args.channelKey) !== undefined)\r\n throw new Error(\"a channel root for the specified key already exists\");\r\n\r\n const props: ChannelRootAspectProps = { classFullName: ChannelAdmin.channelClassName, element: { id: args.elementId }, owner: args.channelKey };\r\n this._iModel.elements.insertAspect(props);\r\n }\r\n\r\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string }): Id64String {\r\n // Check if channelKey already exists before inserting Subject.\r\n // makeChannelRoot will check that again, but at that point the new Subject is already inserted.\r\n // Prefer to check twice instead of deleting the Subject in the latter option.\r\n if (this.queryChannelRoot(args.channelKey) !== undefined)\r\n throw new Error(\"a channel root for the specified key already exists\");\r\n\r\n const elementId = Subject.insert(this._iModel, args.parentSubjectId ?? IModel.rootSubjectId, args.subjectName, args.description);\r\n this.makeChannelRoot({ elementId, channelKey: args.channelKey });\r\n return elementId;\r\n }\r\n\r\n public queryChannelRoot(channelKey: ChannelKey): Id64String | undefined {\r\n if (channelKey === ChannelControl.sharedChannelName)\r\n // RootSubject acts as the ChannelRoot element of the shared channel\r\n return IModel.rootSubjectId;\r\n\r\n try {\r\n const channelRoot = this._iModel.withPreparedStatement(`SELECT Element.Id FROM ${ChannelAdmin.channelClassName} WHERE Owner=?`, (stmt) => {\r\n stmt.bindString(1, channelKey);\r\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getId() : undefined;\r\n });\r\n\r\n return channelRoot;\r\n } catch {\r\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\r\n // In that case all data in such iModel is assumed to be in the shared channel.\r\n return undefined;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function createChannelControl(iModel: IModelDb): ChannelAdmin {\r\n return new ChannelAdmin(iModel);\r\n}\r\n"]}
@@ -0,0 +1,34 @@
1
+ import { FontFace, FontType, LocalFileName } from "@itwin/core-common";
2
+ import type { IModelJsNative } from "@bentley/imodeljs-native";
3
+ import { CreateFontFileFromRscBlobArgs, CreateFontFileFromShxBlobArgs, FontFile } from "../FontFile";
4
+ import { _faceProps, _getData, _implementationProhibited, _key } from "./Symbols";
5
+ import { IModelDb } from "../IModelDb";
6
+ declare abstract class FontFileImpl implements FontFile {
7
+ readonly [_implementationProhibited]: undefined;
8
+ readonly faces: ReadonlyArray<Readonly<FontFace>>;
9
+ abstract get type(): FontType;
10
+ get isEmbeddable(): boolean;
11
+ readonly [_key]: string;
12
+ readonly [_faceProps]: IModelJsNative.FontFaceProps[];
13
+ protected constructor(faces: IModelJsNative.FontFaceProps[]);
14
+ abstract [_getData](): Uint8Array;
15
+ }
16
+ /** Holds the binary representation of a SHX or RSC font in memory. */
17
+ export declare class CadFontFile extends FontFileImpl {
18
+ #private;
19
+ constructor(data: Uint8Array, type: FontType.Shx | FontType.Rsc, faces: IModelJsNative.FontFaceProps[]);
20
+ get type(): FontType;
21
+ [_getData](): Uint8Array;
22
+ }
23
+ /** Points to a font file in any format embedded in an iModel. */
24
+ export declare class EmbeddedFontFile extends FontFileImpl {
25
+ #private;
26
+ constructor(db: IModelDb, id: number, type: FontType, faces: IModelJsNative.FontFaceProps[]);
27
+ get type(): FontType;
28
+ [_getData](): Uint8Array;
29
+ }
30
+ export declare function shxFontFileFromBlob(args: CreateFontFileFromShxBlobArgs): FontFile;
31
+ export declare function rscFontFileFromBlob(args: CreateFontFileFromRscBlobArgs): FontFile;
32
+ export declare function trueTypeFontFileFromFileName(fileName: LocalFileName): FontFile;
33
+ export {};
34
+ //# sourceMappingURL=FontFileImpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontFileImpl.d.ts","sourceRoot":"","sources":["../../../src/internal/FontFileImpl.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGlF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,uBAAe,YAAa,YAAW,QAAQ;IAC7C,SAAgB,CAAC,yBAAyB,CAAC,YAAa;IAExD,SAAgB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,aAAoB,IAAI,IAAI,QAAQ,CAAC;IACrC,IAAW,YAAY,IAAI,OAAO,CAAiB;IAEnD,SAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC;IAE7D,SAAS,aAAa,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE;aAoB3C,CAAC,QAAQ,CAAC,IAAI,UAAU;CACzC;AAqBD,sEAAsE;AACtE,qBAAa,WAAY,SAAQ,YAAY;;gBAIxB,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE;IAM7G,IAAoB,IAAI,IAAI,QAAQ,CAAuB;IAE3C,CAAC,QAAQ,CAAC,IAAI,UAAU;CACzC;AAED,iEAAiE;AACjE,qBAAa,gBAAiB,SAAQ,YAAY;;gBAM7B,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE;IAOlG,IAAoB,IAAI,IAAI,QAAQ,CAAuB;IAE3C,CAAC,QAAQ,CAAC,IAAI,UAAU;CAazC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,6BAA6B,GAAG,QAAQ,CAmCjF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,6BAA6B,GAAG,QAAQ,CAejF;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAQ9E"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EmbeddedFontFile = exports.CadFontFile = void 0;
8
+ exports.shxFontFileFromBlob = shxFontFileFromBlob;
9
+ exports.rscFontFileFromBlob = rscFontFileFromBlob;
10
+ exports.trueTypeFontFileFromFileName = trueTypeFontFileFromFileName;
11
+ const fs = require("fs");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const Symbols_1 = require("./Symbols");
14
+ const core_bentley_1 = require("@itwin/core-bentley");
15
+ const NativePlatform_1 = require("./NativePlatform");
16
+ class FontFileImpl {
17
+ [Symbols_1._implementationProhibited] = undefined;
18
+ faces;
19
+ get isEmbeddable() { return true; }
20
+ [Symbols_1._key];
21
+ [Symbols_1._faceProps];
22
+ constructor(faces) {
23
+ this.faces = faces.map((face) => {
24
+ return {
25
+ familyName: face.familyName,
26
+ isBold: face.faceName.startsWith("bold"),
27
+ isItalic: face.faceName.endsWith("italic"),
28
+ };
29
+ });
30
+ this[Symbols_1._faceProps] = faces;
31
+ // Sort the face props in canonical order so we can compare FontFiles for equivalent contents.
32
+ this[Symbols_1._faceProps].sort((a, b) => a.familyName.localeCompare(b.familyName) || a.faceName.localeCompare(b.faceName) || (0, core_bentley_1.compareNumbersOrUndefined)(a.subId, b.subId));
33
+ // Stringify the face props so that the key properties (and no other properties) appear in a canonical order. for trivial comparisons.
34
+ this[Symbols_1._key] = JSON.stringify(this[Symbols_1._faceProps], ["familyName", "faceName", "type", "subId"]);
35
+ }
36
+ }
37
+ /** Points to an OpenType font file on disk. */
38
+ class TrueTypeFontFile extends FontFileImpl {
39
+ #fileName;
40
+ #embeddable;
41
+ constructor(fileName, embeddable, faces) {
42
+ super(faces);
43
+ this.#fileName = fileName;
44
+ this.#embeddable = embeddable;
45
+ }
46
+ get type() { return core_common_1.FontType.TrueType; }
47
+ get isEmbeddable() { return this.#embeddable; }
48
+ [Symbols_1._getData]() {
49
+ return fs.readFileSync(this.#fileName);
50
+ }
51
+ }
52
+ /** Holds the binary representation of a SHX or RSC font in memory. */
53
+ class CadFontFile extends FontFileImpl {
54
+ #data;
55
+ #type;
56
+ constructor(data, type, faces) {
57
+ super(faces);
58
+ this.#data = data;
59
+ this.#type = type;
60
+ }
61
+ get type() { return this.#type; }
62
+ [Symbols_1._getData]() { return this.#data; }
63
+ }
64
+ exports.CadFontFile = CadFontFile;
65
+ /** Points to a font file in any format embedded in an iModel. */
66
+ class EmbeddedFontFile extends FontFileImpl {
67
+ // The value of the Id column for the row in the be_Prop table that embeds this font's data.
68
+ #db;
69
+ #id;
70
+ #type;
71
+ constructor(db, id, type, faces) {
72
+ super(faces);
73
+ this.#db = db;
74
+ this.#id = id;
75
+ this.#type = type;
76
+ }
77
+ get type() { return this.#type; }
78
+ [Symbols_1._getData]() {
79
+ const data = this.#db.queryFilePropertyBlob({
80
+ namespace: "dgn_Font",
81
+ name: "EmbeddedFaceData",
82
+ id: this.#id,
83
+ });
84
+ if (!data) {
85
+ throw new Error("Embedded font not found");
86
+ }
87
+ return data;
88
+ }
89
+ }
90
+ exports.EmbeddedFontFile = EmbeddedFontFile;
91
+ function shxFontFileFromBlob(args) {
92
+ if (args.familyName.length === 0) {
93
+ throw new Error("Font family name cannot be empty");
94
+ }
95
+ // An SHX file with fewer than 40 bytes isn't valid.
96
+ const minShxSize = 40;
97
+ const shxHeaders = [
98
+ "AutoCAD-86 unifont 1.0",
99
+ "AutoCAD-86 shapes 1.0",
100
+ "AutoCAD-86 shapes 1.1",
101
+ ].map((shxHeader) => Array.from(shxHeader))
102
+ .map((chars) => new Uint8Array(chars.map((ch) => ch.charCodeAt(0))));
103
+ // See https://github.com/iTwin/imodel-native/blob/91f509c2175dc49ce1efcf5a906c9a9aa193451d/iModelCore/iModelPlatform/DgnCore/ShxFont.cpp#L44
104
+ function validateShx(blob) {
105
+ if (blob.length >= minShxSize) {
106
+ for (const header of shxHeaders) {
107
+ if (header.every((char, index) => char === blob[index])) {
108
+ return;
109
+ }
110
+ }
111
+ }
112
+ throw new Error("Failed to read font file");
113
+ }
114
+ validateShx(args.blob);
115
+ return new CadFontFile(args.blob, core_common_1.FontType.Shx, [{
116
+ faceName: "regular",
117
+ familyName: args.familyName,
118
+ type: core_common_1.FontType.Shx,
119
+ }]);
120
+ }
121
+ function rscFontFileFromBlob(args) {
122
+ if (args.familyName.length === 0) {
123
+ throw new Error("Font family name cannot be empty");
124
+ }
125
+ if (!NativePlatform_1.IModelNative.platform.isRscFontData(args.blob)) {
126
+ throw new Error("Failed to read font file");
127
+ }
128
+ return new CadFontFile(args.blob, core_common_1.FontType.Rsc, [{
129
+ faceName: "regular",
130
+ familyName: args.familyName,
131
+ type: core_common_1.FontType.Rsc,
132
+ encoding: args.encoding,
133
+ }]);
134
+ }
135
+ function trueTypeFontFileFromFileName(fileName) {
136
+ const metadata = NativePlatform_1.IModelNative.platform.getTrueTypeFontMetadata(fileName);
137
+ if (metadata.faces.length === 0) {
138
+ // The input was almost certainly not a TrueType font file.
139
+ throw new Error("Failed to read font file");
140
+ }
141
+ return new TrueTypeFontFile(fileName, metadata.embeddable, metadata.faces);
142
+ }
143
+ //# sourceMappingURL=FontFileImpl.js.map