@itwin/core-backend 4.10.0-dev.0 → 4.10.0-dev.10

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 (46) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/lib/cjs/BriefcaseManager.d.ts +16 -1
  3. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  4. package/lib/cjs/BriefcaseManager.js +46 -1
  5. package/lib/cjs/BriefcaseManager.js.map +1 -1
  6. package/lib/cjs/ChangedElementsManager.d.ts +4 -2
  7. package/lib/cjs/ChangedElementsManager.d.ts.map +1 -1
  8. package/lib/cjs/ChangedElementsManager.js +4 -2
  9. package/lib/cjs/ChangedElementsManager.js.map +1 -1
  10. package/lib/cjs/Element.d.ts +7 -0
  11. package/lib/cjs/Element.d.ts.map +1 -1
  12. package/lib/cjs/Element.js +10 -2
  13. package/lib/cjs/Element.js.map +1 -1
  14. package/lib/cjs/IModelDb.d.ts +18 -3
  15. package/lib/cjs/IModelDb.d.ts.map +1 -1
  16. package/lib/cjs/IModelDb.js +78 -1
  17. package/lib/cjs/IModelDb.js.map +1 -1
  18. package/lib/cjs/IModelHost.js +1 -1
  19. package/lib/cjs/IModelHost.js.map +1 -1
  20. package/lib/cjs/Model.d.ts +14 -0
  21. package/lib/cjs/Model.d.ts.map +1 -1
  22. package/lib/cjs/Model.js +28 -1
  23. package/lib/cjs/Model.js.map +1 -1
  24. package/lib/cjs/NavigationRelationship.d.ts +28 -0
  25. package/lib/cjs/NavigationRelationship.d.ts.map +1 -1
  26. package/lib/cjs/NavigationRelationship.js +41 -1
  27. package/lib/cjs/NavigationRelationship.js.map +1 -1
  28. package/lib/cjs/SchemaSync.d.ts +1 -0
  29. package/lib/cjs/SchemaSync.d.ts.map +1 -1
  30. package/lib/cjs/SchemaSync.js +3 -0
  31. package/lib/cjs/SchemaSync.js.map +1 -1
  32. package/lib/cjs/SheetIndex.d.ts +148 -0
  33. package/lib/cjs/SheetIndex.d.ts.map +1 -0
  34. package/lib/cjs/SheetIndex.js +230 -0
  35. package/lib/cjs/SheetIndex.js.map +1 -0
  36. package/lib/cjs/core-backend.d.ts +1 -0
  37. package/lib/cjs/core-backend.d.ts.map +1 -1
  38. package/lib/cjs/core-backend.js +1 -0
  39. package/lib/cjs/core-backend.js.map +1 -1
  40. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +1 -1
  41. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  42. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +1 -0
  43. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts.map +1 -1
  44. package/lib/cjs/rpc-impl/WipRpcImpl.js +2 -0
  45. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  46. package/package.json +12 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SheetIndex.js","sourceRoot":"","sources":["../../src/SheetIndex.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 { BisCodeSpec, Code, CodeScopeProps, CodeSpec, ElementProps, EntityReferenceSet, IModelError, RelatedElementProps, SheetIndexEntryProps, SheetIndexFolderProps, SheetIndexReferenceProps, SheetReferenceProps } from \"@itwin/core-common\";\r\nimport { InformationReferenceElement, Sheet } from \"./Element\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { SheetIndexFolderOwnsEntries, SheetIndexOwnsEntries, SheetIndexReferenceRefersToSheetIndex, SheetReferenceRefersToSheet } from \"./NavigationRelationship\";\r\n\r\n/** Arguments used to create a [[SheetIndexEntry]].\r\n * @beta\r\n */\r\nexport interface SheetIndexEntryCreateArgs {\r\n /** The iModel that will contain the sheet index entry. */\r\n iModelDb: IModelDb;\r\n /** The Id of the [[SheetIndexModel]] that will contain the sheet index entry. */\r\n sheetIndexModelId: Id64String;\r\n /** The [[SheetIndex]] or [[SheetIndexFolder]] that is parent to this SheetIndexEntry */\r\n parentId: Id64String;\r\n /** The name of the SheetIndexEntry */\r\n name: string;\r\n /** The priority of the SheetIndexEntry */\r\n priority: number;\r\n}\r\n\r\n/** Arguments supplied when creating a [[SheetIndexReference]].\r\n * @beta\r\n */\r\nexport interface SheetIndexReferenceCreateArgs extends SheetIndexEntryCreateArgs {\r\n /** The [[SheetIndex]] to which the reference refers. */\r\n sheetIndexId?: Id64String;\r\n}\r\n\r\n/** Arguments supplied when creating a [[SheetReference]].\r\n * @beta\r\n */\r\nexport interface SheetReferenceCreateArgs extends SheetIndexEntryCreateArgs {\r\n /** The [[Sheet]] to which the reference refers. */\r\n sheetId?: Id64String;\r\n}\r\n\r\n/** A [structured collection]($docs/bis/domains/drawings-sheets#sheet-index) of [[SheetIndexEntry]]s.\r\n * The sheet index is a tree whose leaf nodes refer to [[Sheet]]s, optionally grouped by [[SheetIndexFolder]]s and/or incorporating\r\n * sub-trees via [[SheetIndexReference]]s.\r\n * @beta\r\n */\r\nexport class SheetIndex extends InformationReferenceElement {\r\n public static override get className(): string { return \"SheetIndex\"; }\r\n\r\n /** Create a Code for a SheetIndex given a name that is meant to be unique within the scope of the specified SheetIndexModel.\r\n * @param iModel The IModelDb\r\n * @param scopeSheetIndexModelId The Id of the Model that contains the LinkElement and provides the scope for its name.\r\n * @param codeValue The SheetIndex name\r\n */\r\n public static createCode(iModel: IModelDb, scopeSheetIndexModelId: CodeScopeProps, codeValue: string): Code {\r\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.sheetIndex);\r\n return new Code({ spec: codeSpec.id, scope: scopeSheetIndexModelId, value: codeValue });\r\n }\r\n\r\n /** Create a SheetIndex\r\n * @param iModelDb The IModelDb\r\n * @param modelId The Id of the Model that contains the SheetIndex and provides the scope for its name.\r\n * @param name The name (codeValue) of the SheetIndex\r\n * @returns The newly constructed SheetIndex\r\n * @throws [[IModelError]] if there is a problem creating the SheetIndex\r\n */\r\n public static create(iModelDb: IModelDb, modelId: Id64String, name: string): SheetIndex {\r\n const props: ElementProps = {\r\n classFullName: this.classFullName,\r\n code: this.createCode(iModelDb, modelId, name).toJSON(),\r\n model: modelId,\r\n };\r\n return new this(props, iModelDb);\r\n }\r\n\r\n /** Insert a SheetIndex\r\n * @param iModelDb The IModelDb\r\n * @param modelId The Id of the Model that contains the SheetIndex and provides the scope for its name.\r\n * @param name The name (codeValue) of the SheetIndex\r\n * @returns The Id of the newly inserted SheetIndex\r\n * @throws [[IModelError]] if there is a problem inserting the SheetIndex\r\n */\r\n public static insert(iModelDb: IModelDb, modelId: Id64String, name: string): Id64String {\r\n const instance = this.create(iModelDb, modelId, name);\r\n const elements = iModelDb.elements;\r\n instance.id = elements.insertElement(instance.toJSON());\r\n return instance.id;\r\n }\r\n}\r\n\r\n/** The base class for all elements that can participate in a [[SheetIndex]] hierarchy.\r\n * @beta\r\n*/\r\nexport abstract class SheetIndexEntry extends InformationReferenceElement {\r\n public static override get className(): string { return \"SheetIndexEntry\"; }\r\n /** Can be used to prioritize or order members within a SheetIndex or SheetIndexFolder. */\r\n public entryPriority: number;\r\n\r\n protected constructor(props: SheetIndexEntryProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n this.entryPriority = props.entryPriority;\r\n }\r\n\r\n public override toJSON(): SheetIndexEntryProps {\r\n return { ...super.toJSON(), entryPriority: this.entryPriority };\r\n }\r\n\r\n /** Create a Code for a Sheet Index Entry given a name that is meant to be unique within the scope of the specified SheetIndexModel.\r\n * @param iModel The IModel\r\n * @param scopeModelId The Id of the [[SheetIndexModel]] that contains the [[SheetIndexEntry]] and provides the scope for its name.\r\n * @param codeValue The name of the entry\r\n */\r\n public static createCode(iModelDb: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code {\r\n const codeSpec: CodeSpec = iModelDb.codeSpecs.getByName(BisCodeSpec.sheetIndexEntry);\r\n return new Code({ spec: codeSpec.id, scope: scopeModelId, value: codeValue });\r\n }\r\n\r\n protected static createParentRelationshipProps(iModelDb: IModelDb, id: Id64String): RelatedElementProps {\r\n const parentElementProps = iModelDb.elements.getElementProps(id);\r\n const isFolder = parentElementProps.classFullName === SheetIndexFolder.classFullName;\r\n const relClass = isFolder ? SheetIndexFolderOwnsEntries : SheetIndexOwnsEntries;\r\n return { id, relClassName: relClass.classFullName };\r\n }\r\n\r\n protected static createProps(arg: SheetIndexEntryCreateArgs) {\r\n const parent = this.createParentRelationshipProps(arg.iModelDb, arg.parentId);\r\n const props: SheetIndexEntryProps = {\r\n classFullName: this.classFullName,\r\n model: arg.sheetIndexModelId,\r\n code: this.createCode(arg.iModelDb, arg.sheetIndexModelId, arg.name),\r\n entryPriority: arg.priority,\r\n parent,\r\n };\r\n return props;\r\n }\r\n}\r\n\r\n/** A container used to group [[SheetIndexEntry]]s within a [[SheetIndex]].\r\n * @beta\r\n */\r\nexport class SheetIndexFolder extends SheetIndexEntry {\r\n public static override get className(): string { return \"SheetIndexFolder\"; }\r\n\r\n /** Create a new SheetIndexFolder\r\n * @returns The newly constructed SheetIndexFolder element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static create(arg: SheetIndexEntryCreateArgs) {\r\n const props: SheetIndexFolderProps = this.createProps(arg);\r\n return new this(props, arg.iModelDb);\r\n }\r\n\r\n /** Create a new SheetIndexFolder\r\n * @returns The Id of the newly inserted SheetIndexFolder element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static insert(arg: SheetIndexEntryCreateArgs): Id64String {\r\n const instance = this.create(arg);\r\n const elements = arg.iModelDb.elements;\r\n instance.id = elements.insertElement(instance.toJSON());\r\n return instance.id;\r\n }\r\n}\r\n\r\n/** A node within one [[SheetIndex]] that incorporates another [[SheetIndex]] as a sub-tree.\r\n * @beta\r\n*/\r\nexport class SheetIndexReference extends SheetIndexEntry {\r\n public static override get className(): string { return \"SheetIndexReference\"; }\r\n\r\n /** The bis:SheetIndex that this bis:SheetIndexReference is pointing to. */\r\n public sheetIndex?: SheetIndexReferenceRefersToSheetIndex;\r\n\r\n protected constructor(props: SheetIndexReferenceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.sheetIndex) {\r\n const sheetIndex = iModel.elements.tryGetElement<SheetIndex>(props.sheetIndex.id);\r\n if (!sheetIndex)\r\n throw new IModelError(IModelStatus.NotFound, \"SheetIndex not found\");\r\n\r\n this.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(props.sheetIndex.id);\r\n }\r\n }\r\n\r\n protected static createReferenceRelationshipProps(id: Id64String): RelatedElementProps {\r\n return { id, relClassName: SheetIndexReferenceRefersToSheetIndex.classFullName };\r\n }\r\n\r\n public override toJSON(): SheetIndexReferenceProps { // This override only specializes the return type\r\n return {\r\n ...super.toJSON(),\r\n sheetIndex: this.sheetIndex ? this.sheetIndex.toJSON() : undefined,\r\n } as SheetIndexReferenceProps;\r\n }\r\n\r\n /** Create a new SheetIndexReference\r\n * @returns The newly constructed SheetIndexReference element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static create(arg: SheetIndexReferenceCreateArgs) {\r\n const props: SheetIndexReferenceProps = {\r\n ...this.createProps(arg),\r\n sheetIndex: arg.sheetIndexId ? this.createReferenceRelationshipProps(arg.sheetIndexId) : undefined,\r\n };\r\n return new this(props, arg.iModelDb);\r\n }\r\n\r\n /** Create a new SheetIndexReference\r\n * @returns The Id of the newly inserted SheetIndexReference element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static insert(arg: SheetIndexReferenceCreateArgs): Id64String {\r\n const instance = this.create(arg);\r\n const elements = arg.iModelDb.elements;\r\n instance.id = elements.insertElement(instance.toJSON());\r\n return instance.id;\r\n }\r\n\r\n /** @alpha */\r\n protected override collectReferenceIds(referenceIds: EntityReferenceSet): void {\r\n super.collectReferenceIds(referenceIds);\r\n if (this.sheetIndex)\r\n referenceIds.addElement(this.sheetIndex.id);\r\n }\r\n}\r\n\r\n/** A leaf node in a [[SheetIndex]] that refers to a specific [[Sheet]].\r\n * @beta\r\n*/\r\nexport class SheetReference extends SheetIndexEntry {\r\n public static override get className(): string { return \"SheetReference\"; }\r\n\r\n /** The bis:Sheet that this bis:SheetReference is pointing to. */\r\n public sheet: SheetReferenceRefersToSheet | undefined;\r\n\r\n protected constructor(props: SheetReferenceProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n if (props.sheet) {\r\n const sheet = iModel.elements.tryGetElement<Sheet>(props.sheet.id);\r\n if (!sheet)\r\n throw new IModelError(IModelStatus.NotFound, \"Sheet not found\");\r\n\r\n this.sheet = new SheetReferenceRefersToSheet(sheet.id);\r\n }\r\n }\r\n\r\n protected static createReferenceRelationshipProps(id: Id64String): RelatedElementProps {\r\n return { id, relClassName: SheetIndexReferenceRefersToSheetIndex.classFullName };\r\n }\r\n\r\n public override toJSON(): SheetReferenceProps { // This override only specializes the return type\r\n return {\r\n ...super.toJSON(),\r\n sheet: this.sheet ? this.sheet.toJSON() : undefined,\r\n } as SheetReferenceProps;\r\n }\r\n\r\n /** Create a new SheetReference\r\n * @returns The newly constructed SheetReference element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static create(arg: SheetReferenceCreateArgs) {\r\n const props: SheetReferenceProps = {\r\n ...this.createProps(arg),\r\n sheet: arg.sheetId ? this.createReferenceRelationshipProps(arg.sheetId) : undefined,\r\n };\r\n return new this(props, arg.iModelDb);\r\n }\r\n\r\n /** Insert a new SheetReference\r\n * @returns The Id of the newly inserted SheetReference element.\r\n * @throws [[IModelError]] if unable to create the element.\r\n */\r\n public static insert(arg: SheetReferenceCreateArgs): Id64String {\r\n const instance = this.create(arg);\r\n const elements = arg.iModelDb.elements;\r\n instance.id = elements.insertElement(instance.toJSON());\r\n return instance.id;\r\n }\r\n\r\n /** @alpha */\r\n protected override collectReferenceIds(referenceIds: EntityReferenceSet): void {\r\n super.collectReferenceIds(referenceIds);\r\n if (this.sheet)\r\n referenceIds.addModel(this.sheet.id);\r\n }\r\n}\r\n"]}
@@ -53,6 +53,7 @@ export * from "./Relationship";
53
53
  export * from "./rpc/tracing";
54
54
  export * from "./Schema";
55
55
  export * from "./SchemaUtils";
56
+ export * from "./SheetIndex";
56
57
  export * from "./SQLiteDb";
57
58
  export * from "./SqliteStatement";
58
59
  export * from "./TextAnnotationElement";
@@ -1 +1 @@
1
- {"version":3,"file":"core-backend.d.ts","sourceRoot":"","sources":["../../src/core-backend.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,cAAc,0BAA0B,CAAC;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"}
1
+ {"version":3,"file":"core-backend.d.ts","sourceRoot":"","sources":["../../src/core-backend.ts"],"names":[],"mappings":"AAKA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,cAAc,0BAA0B,CAAC;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"}
@@ -74,6 +74,7 @@ __exportStar(require("./Relationship"), exports);
74
74
  __exportStar(require("./rpc/tracing"), exports);
75
75
  __exportStar(require("./Schema"), exports);
76
76
  __exportStar(require("./SchemaUtils"), exports);
77
+ __exportStar(require("./SheetIndex"), exports);
77
78
  __exportStar(require("./SQLiteDb"), exports);
78
79
  __exportStar(require("./SqliteStatement"), exports);
79
80
  __exportStar(require("./TextAnnotationElement"), exports);
@@ -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,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 \"./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,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"]}
@@ -103,7 +103,7 @@ async function getTileContent(props) {
103
103
  tileGenerationTime: tile.elapsedSeconds.toString(),
104
104
  tileSize: tile.content.byteLength.toString(),
105
105
  };
106
- await IModelHost_1.IModelHost.tileStorage?.uploadTile(db.iModelId, db.changeset.id, props.treeId, props.contentId, tile.content, props.guid, tileMetadata);
106
+ await IModelHost_1.IModelHost.tileStorage?.uploadTile(props.tokenProps.iModelId ?? db.iModelId, props.tokenProps.changeset?.id ?? db.changeset.id, props.treeId, props.contentId, tile.content, props.guid, tileMetadata);
107
107
  const { accessToken: _, ...safeProps } = props;
108
108
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.IModelTileRequestRpc, "Generated and uploaded tile", { tileMetadata, ...safeProps });
109
109
  return core_common_1.TileContentSource.ExternalCache;
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/IModelTileRpcImpl.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 RpcInterface\r\n */\r\n\r\nimport { AccessToken, assert, BeDuration, Id64Array, Logger } from \"@itwin/core-bentley\";\r\nimport { ElementGraphicsRequestProps, IModelRpcProps, IModelTileRpcInterface, IModelTileTreeProps, RpcInterface, RpcManager, RpcPendingResponse, TileContentIdentifier, TileContentSource, TileTreeContentIds, TileVersionInfo } from \"@itwin/core-common\";\r\nimport type { Metadata, TransferConfig } from \"@itwin/object-storage-core\";\r\nimport { BackendLoggerCategory } from \"../BackendLoggerCategory\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { IModelHost } from \"../IModelHost\";\r\nimport { PromiseMemoizer, QueryablePromise } from \"../PromiseMemoizer\";\r\nimport { RpcTrace } from \"../rpc/tracing\";\r\nimport { RpcBriefcaseUtility } from \"./RpcBriefcaseUtility\";\r\nimport { IModelNative } from \"../internal/NativePlatform\";\r\nimport { _nativeDb } from \"../internal/Symbols\";\r\n\r\ninterface TileRequestProps {\r\n accessToken?: AccessToken;\r\n tokenProps: IModelRpcProps;\r\n treeId: string;\r\n}\r\n\r\nfunction generateTileRequestKey(props: TileRequestProps): string {\r\n const token = props.tokenProps;\r\n return `${JSON.stringify({\r\n key: token.key,\r\n iTwinId: token.iTwinId,\r\n iModelId: token.iModelId,\r\n changesetId: token.changeset?.id,\r\n })}:${props.treeId}`;\r\n}\r\n\r\nabstract class TileRequestMemoizer<Result, Props extends TileRequestProps> extends PromiseMemoizer<Result> {\r\n private readonly _loggerCategory = BackendLoggerCategory.IModelTileRequestRpc;\r\n protected abstract get _operationName(): string;\r\n protected abstract addMetadata(metadata: any, props: Props): void;\r\n protected abstract stringify(props: Props): string;\r\n protected abstract get _timeoutMilliseconds(): number;\r\n\r\n private makeMetadata(props: Props): any {\r\n const meta = { ...props.tokenProps };\r\n this.addMetadata(meta, props);\r\n return meta;\r\n }\r\n\r\n protected constructor(memoizeFn: (props: Props) => Promise<Result>, generateKeyFn: (props: Props) => string) {\r\n super(memoizeFn, generateKeyFn);\r\n }\r\n\r\n public override memoize(props: Props): QueryablePromise<Result> {\r\n return super.memoize(props);\r\n }\r\n\r\n public override deleteMemoized(props: Props) {\r\n super.deleteMemoized(props);\r\n }\r\n\r\n private log(status: string, props: Props): void {\r\n const descr = `${this._operationName}(${this.stringify(props)})`;\r\n Logger.logTrace(this._loggerCategory, `Backend ${status} ${descr}`, () => this.makeMetadata(props));\r\n }\r\n\r\n protected async perform(props: Props): Promise<Result> {\r\n this.log(\"received\", props);\r\n\r\n const tileQP = this.memoize(props);\r\n\r\n await BeDuration.race(this._timeoutMilliseconds, tileQP.promise).catch(() => { });\r\n // Note: Rejections must be caught so that the memoization entry can be deleted\r\n\r\n if (tileQP.isPending) {\r\n this.log(\"issuing pending status for\", props);\r\n throw new RpcPendingResponse(); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n this.deleteMemoized(props);\r\n\r\n if (tileQP.isFulfilled) {\r\n this.log(\"completed\", props);\r\n assert(undefined !== tileQP.result);\r\n return tileQP.result;\r\n }\r\n\r\n assert(tileQP.isRejected);\r\n this.log(\"rejected\", props);\r\n throw tileQP.error; // eslint-disable-line no-throw-literal\r\n }\r\n}\r\n\r\nasync function getTileTreeProps(props: TileRequestProps): Promise<IModelTileTreeProps> {\r\n assert(undefined !== props.accessToken);\r\n const db = await RpcBriefcaseUtility.findOpenIModel(props.accessToken, props.tokenProps);\r\n return db.tiles.requestTileTreeProps(props.treeId);\r\n}\r\n\r\nclass RequestTileTreePropsMemoizer extends TileRequestMemoizer<IModelTileTreeProps, TileRequestProps> {\r\n protected get _timeoutMilliseconds() { return IModelHost.tileTreeRequestTimeout; }\r\n protected get _operationName() { return \"requestTileTreeProps\"; }\r\n protected stringify(props: TileRequestProps): string { return props.treeId; }\r\n protected addMetadata(meta: any, props: TileRequestProps): void {\r\n meta.treeId = props.treeId;\r\n }\r\n\r\n private static _instance?: RequestTileTreePropsMemoizer;\r\n\r\n private constructor() {\r\n super(getTileTreeProps, generateTileRequestKey);\r\n IModelHost.onBeforeShutdown.addOnce(() => {\r\n this.dispose();\r\n RequestTileTreePropsMemoizer._instance = undefined;\r\n });\r\n }\r\n\r\n public static async perform(props: TileRequestProps): Promise<IModelTileTreeProps> {\r\n if (undefined === this._instance)\r\n this._instance = new RequestTileTreePropsMemoizer();\r\n\r\n return this._instance.perform(props);\r\n }\r\n}\r\n\r\ninterface TileContentRequestProps extends TileRequestProps {\r\n contentId: string;\r\n guid?: string;\r\n}\r\n\r\nasync function getTileContent(props: TileContentRequestProps): Promise<TileContentSource> {\r\n assert(undefined !== props.accessToken);\r\n const db = await RpcBriefcaseUtility.findOpenIModel(props.accessToken, props.tokenProps);\r\n const tile = await db.tiles.requestTileContent(props.treeId, props.contentId);\r\n\r\n // ###TODO: Verify the guid supplied by the front-end matches the guid stored in the model?\r\n if (IModelHost.usingExternalTileCache) {\r\n const tileMetadata: Metadata = {\r\n backendName: IModelHost.applicationId,\r\n tileGenerationTime: tile.elapsedSeconds.toString(),\r\n tileSize: tile.content.byteLength.toString(),\r\n };\r\n await IModelHost.tileStorage?.uploadTile(db.iModelId, db.changeset.id, props.treeId, props.contentId, tile.content, props.guid, tileMetadata);\r\n const { accessToken: _, ...safeProps } = props;\r\n Logger.logInfo(BackendLoggerCategory.IModelTileRequestRpc, \"Generated and uploaded tile\", { tileMetadata, ...safeProps });\r\n\r\n return TileContentSource.ExternalCache;\r\n }\r\n\r\n return TileContentSource.Backend;\r\n}\r\n\r\nfunction generateTileContentKey(props: TileContentRequestProps): string {\r\n return `${generateTileRequestKey(props)}:${props.contentId}`;\r\n}\r\n\r\nclass RequestTileContentMemoizer extends TileRequestMemoizer<TileContentSource, TileContentRequestProps> {\r\n protected get _timeoutMilliseconds() { return IModelHost.tileContentRequestTimeout; }\r\n protected get _operationName() { return \"requestTileContent\"; }\r\n protected stringify(props: TileContentRequestProps): string { return `${props.treeId}:${props.contentId}`; }\r\n protected addMetadata(meta: any, props: TileContentRequestProps): void {\r\n meta.treeId = props.treeId;\r\n meta.contentId = props.contentId;\r\n }\r\n\r\n private static _instance?: RequestTileContentMemoizer;\r\n\r\n private constructor() {\r\n super(getTileContent, generateTileContentKey);\r\n IModelHost.onBeforeShutdown.addOnce(() => {\r\n this.dispose();\r\n RequestTileContentMemoizer._instance = undefined;\r\n });\r\n }\r\n\r\n public static get instance() {\r\n if (undefined === this._instance)\r\n this._instance = new RequestTileContentMemoizer();\r\n\r\n return this._instance;\r\n }\r\n\r\n public static async perform(props: TileContentRequestProps): Promise<TileContentSource> {\r\n return this.instance.perform(props);\r\n }\r\n}\r\n\r\nfunction currentActivity() {\r\n return RpcTrace.expectCurrentActivity; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** @internal */\r\nexport class IModelTileRpcImpl extends RpcInterface implements IModelTileRpcInterface { // eslint-disable-line deprecation/deprecation\r\n public static register() { RpcManager.registerImpl(IModelTileRpcInterface, IModelTileRpcImpl); }\r\n\r\n public async requestTileTreeProps(tokenProps: IModelRpcProps, treeId: string): Promise<IModelTileTreeProps> {\r\n return RequestTileTreePropsMemoizer.perform({ accessToken: currentActivity().accessToken, tokenProps, treeId });\r\n }\r\n\r\n public async purgeTileTrees(tokenProps: IModelRpcProps, modelIds: Id64Array | undefined): Promise<void> {\r\n // `undefined` gets forwarded as `null`...\r\n if (null === modelIds)\r\n modelIds = undefined;\r\n\r\n const db = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps);\r\n if (!db.isOpen) {\r\n return;\r\n }\r\n\r\n return db[_nativeDb].purgeTileTrees(modelIds);\r\n }\r\n\r\n public async generateTileContent(tokenProps: IModelRpcProps, treeId: string, contentId: string, guid: string | undefined): Promise<TileContentSource> {\r\n return RequestTileContentMemoizer.perform({ accessToken: currentActivity().accessToken, tokenProps, treeId, contentId, guid });\r\n }\r\n\r\n public async retrieveTileContent(tokenProps: IModelRpcProps, key: TileContentIdentifier): Promise<Uint8Array> {\r\n const db = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps);\r\n return db.tiles.getTileContent(key.treeId, key.contentId);\r\n }\r\n\r\n public async getTileCacheConfig(tokenProps: IModelRpcProps): Promise<TransferConfig | undefined> {\r\n if (IModelHost.tileStorage === undefined)\r\n return undefined;\r\n const iModelId = tokenProps.iModelId ?? (await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps)).iModelId;\r\n return IModelHost.tileStorage.getDownloadConfig(iModelId);\r\n }\r\n\r\n public async queryVersionInfo(): Promise<TileVersionInfo> {\r\n return IModelNative.platform.getTileVersionInfo();\r\n }\r\n\r\n /** @internal */\r\n public async requestElementGraphics(rpcProps: IModelRpcProps, request: ElementGraphicsRequestProps): Promise<Uint8Array | undefined> {\r\n const iModel = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, rpcProps);\r\n return iModel.generateElementGraphics(request);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport async function cancelTileContentRequests(tokenProps: IModelRpcProps, contentIds: TileTreeContentIds[]): Promise<void> {\r\n const iModel = IModelDb.findByKey(tokenProps.key);\r\n const props: TileContentRequestProps = { tokenProps, treeId: \"\", contentId: \"\" };\r\n\r\n for (const entry of contentIds) {\r\n props.treeId = entry.treeId;\r\n for (const contentId of entry.contentIds) {\r\n props.contentId = contentId;\r\n RequestTileContentMemoizer.instance.deleteMemoized(props);\r\n }\r\n\r\n iModel[_nativeDb].cancelTileContentRequests(entry.treeId, entry.contentIds);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTileRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/IModelTileRpcImpl.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 RpcInterface\r\n */\r\n\r\nimport { AccessToken, assert, BeDuration, Id64Array, Logger } from \"@itwin/core-bentley\";\r\nimport { ElementGraphicsRequestProps, IModelRpcProps, IModelTileRpcInterface, IModelTileTreeProps, RpcInterface, RpcManager, RpcPendingResponse, TileContentIdentifier, TileContentSource, TileTreeContentIds, TileVersionInfo } from \"@itwin/core-common\";\r\nimport type { Metadata, TransferConfig } from \"@itwin/object-storage-core\";\r\nimport { BackendLoggerCategory } from \"../BackendLoggerCategory\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { IModelHost } from \"../IModelHost\";\r\nimport { PromiseMemoizer, QueryablePromise } from \"../PromiseMemoizer\";\r\nimport { RpcTrace } from \"../rpc/tracing\";\r\nimport { RpcBriefcaseUtility } from \"./RpcBriefcaseUtility\";\r\nimport { IModelNative } from \"../internal/NativePlatform\";\r\nimport { _nativeDb } from \"../internal/Symbols\";\r\n\r\ninterface TileRequestProps {\r\n accessToken?: AccessToken;\r\n tokenProps: IModelRpcProps;\r\n treeId: string;\r\n}\r\n\r\nfunction generateTileRequestKey(props: TileRequestProps): string {\r\n const token = props.tokenProps;\r\n return `${JSON.stringify({\r\n key: token.key,\r\n iTwinId: token.iTwinId,\r\n iModelId: token.iModelId,\r\n changesetId: token.changeset?.id,\r\n })}:${props.treeId}`;\r\n}\r\n\r\nabstract class TileRequestMemoizer<Result, Props extends TileRequestProps> extends PromiseMemoizer<Result> {\r\n private readonly _loggerCategory = BackendLoggerCategory.IModelTileRequestRpc;\r\n protected abstract get _operationName(): string;\r\n protected abstract addMetadata(metadata: any, props: Props): void;\r\n protected abstract stringify(props: Props): string;\r\n protected abstract get _timeoutMilliseconds(): number;\r\n\r\n private makeMetadata(props: Props): any {\r\n const meta = { ...props.tokenProps };\r\n this.addMetadata(meta, props);\r\n return meta;\r\n }\r\n\r\n protected constructor(memoizeFn: (props: Props) => Promise<Result>, generateKeyFn: (props: Props) => string) {\r\n super(memoizeFn, generateKeyFn);\r\n }\r\n\r\n public override memoize(props: Props): QueryablePromise<Result> {\r\n return super.memoize(props);\r\n }\r\n\r\n public override deleteMemoized(props: Props) {\r\n super.deleteMemoized(props);\r\n }\r\n\r\n private log(status: string, props: Props): void {\r\n const descr = `${this._operationName}(${this.stringify(props)})`;\r\n Logger.logTrace(this._loggerCategory, `Backend ${status} ${descr}`, () => this.makeMetadata(props));\r\n }\r\n\r\n protected async perform(props: Props): Promise<Result> {\r\n this.log(\"received\", props);\r\n\r\n const tileQP = this.memoize(props);\r\n\r\n await BeDuration.race(this._timeoutMilliseconds, tileQP.promise).catch(() => { });\r\n // Note: Rejections must be caught so that the memoization entry can be deleted\r\n\r\n if (tileQP.isPending) {\r\n this.log(\"issuing pending status for\", props);\r\n throw new RpcPendingResponse(); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n this.deleteMemoized(props);\r\n\r\n if (tileQP.isFulfilled) {\r\n this.log(\"completed\", props);\r\n assert(undefined !== tileQP.result);\r\n return tileQP.result;\r\n }\r\n\r\n assert(tileQP.isRejected);\r\n this.log(\"rejected\", props);\r\n throw tileQP.error; // eslint-disable-line no-throw-literal\r\n }\r\n}\r\n\r\nasync function getTileTreeProps(props: TileRequestProps): Promise<IModelTileTreeProps> {\r\n assert(undefined !== props.accessToken);\r\n const db = await RpcBriefcaseUtility.findOpenIModel(props.accessToken, props.tokenProps);\r\n return db.tiles.requestTileTreeProps(props.treeId);\r\n}\r\n\r\nclass RequestTileTreePropsMemoizer extends TileRequestMemoizer<IModelTileTreeProps, TileRequestProps> {\r\n protected get _timeoutMilliseconds() { return IModelHost.tileTreeRequestTimeout; }\r\n protected get _operationName() { return \"requestTileTreeProps\"; }\r\n protected stringify(props: TileRequestProps): string { return props.treeId; }\r\n protected addMetadata(meta: any, props: TileRequestProps): void {\r\n meta.treeId = props.treeId;\r\n }\r\n\r\n private static _instance?: RequestTileTreePropsMemoizer;\r\n\r\n private constructor() {\r\n super(getTileTreeProps, generateTileRequestKey);\r\n IModelHost.onBeforeShutdown.addOnce(() => {\r\n this.dispose();\r\n RequestTileTreePropsMemoizer._instance = undefined;\r\n });\r\n }\r\n\r\n public static async perform(props: TileRequestProps): Promise<IModelTileTreeProps> {\r\n if (undefined === this._instance)\r\n this._instance = new RequestTileTreePropsMemoizer();\r\n\r\n return this._instance.perform(props);\r\n }\r\n}\r\n\r\ninterface TileContentRequestProps extends TileRequestProps {\r\n contentId: string;\r\n guid?: string;\r\n}\r\n\r\nasync function getTileContent(props: TileContentRequestProps): Promise<TileContentSource> {\r\n assert(undefined !== props.accessToken);\r\n const db = await RpcBriefcaseUtility.findOpenIModel(props.accessToken, props.tokenProps);\r\n const tile = await db.tiles.requestTileContent(props.treeId, props.contentId);\r\n\r\n // ###TODO: Verify the guid supplied by the front-end matches the guid stored in the model?\r\n if (IModelHost.usingExternalTileCache) {\r\n const tileMetadata: Metadata = {\r\n backendName: IModelHost.applicationId,\r\n tileGenerationTime: tile.elapsedSeconds.toString(),\r\n tileSize: tile.content.byteLength.toString(),\r\n };\r\n await IModelHost.tileStorage?.uploadTile(props.tokenProps.iModelId ?? db.iModelId, props.tokenProps.changeset?.id ?? db.changeset.id, props.treeId, props.contentId, tile.content, props.guid, tileMetadata);\r\n const { accessToken: _, ...safeProps } = props;\r\n Logger.logInfo(BackendLoggerCategory.IModelTileRequestRpc, \"Generated and uploaded tile\", { tileMetadata, ...safeProps });\r\n\r\n return TileContentSource.ExternalCache;\r\n }\r\n\r\n return TileContentSource.Backend;\r\n}\r\n\r\nfunction generateTileContentKey(props: TileContentRequestProps): string {\r\n return `${generateTileRequestKey(props)}:${props.contentId}`;\r\n}\r\n\r\nclass RequestTileContentMemoizer extends TileRequestMemoizer<TileContentSource, TileContentRequestProps> {\r\n protected get _timeoutMilliseconds() { return IModelHost.tileContentRequestTimeout; }\r\n protected get _operationName() { return \"requestTileContent\"; }\r\n protected stringify(props: TileContentRequestProps): string { return `${props.treeId}:${props.contentId}`; }\r\n protected addMetadata(meta: any, props: TileContentRequestProps): void {\r\n meta.treeId = props.treeId;\r\n meta.contentId = props.contentId;\r\n }\r\n\r\n private static _instance?: RequestTileContentMemoizer;\r\n\r\n private constructor() {\r\n super(getTileContent, generateTileContentKey);\r\n IModelHost.onBeforeShutdown.addOnce(() => {\r\n this.dispose();\r\n RequestTileContentMemoizer._instance = undefined;\r\n });\r\n }\r\n\r\n public static get instance() {\r\n if (undefined === this._instance)\r\n this._instance = new RequestTileContentMemoizer();\r\n\r\n return this._instance;\r\n }\r\n\r\n public static async perform(props: TileContentRequestProps): Promise<TileContentSource> {\r\n return this.instance.perform(props);\r\n }\r\n}\r\n\r\nfunction currentActivity() {\r\n return RpcTrace.expectCurrentActivity; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** @internal */\r\nexport class IModelTileRpcImpl extends RpcInterface implements IModelTileRpcInterface { // eslint-disable-line deprecation/deprecation\r\n public static register() { RpcManager.registerImpl(IModelTileRpcInterface, IModelTileRpcImpl); }\r\n\r\n public async requestTileTreeProps(tokenProps: IModelRpcProps, treeId: string): Promise<IModelTileTreeProps> {\r\n return RequestTileTreePropsMemoizer.perform({ accessToken: currentActivity().accessToken, tokenProps, treeId });\r\n }\r\n\r\n public async purgeTileTrees(tokenProps: IModelRpcProps, modelIds: Id64Array | undefined): Promise<void> {\r\n // `undefined` gets forwarded as `null`...\r\n if (null === modelIds)\r\n modelIds = undefined;\r\n\r\n const db = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps);\r\n if (!db.isOpen) {\r\n return;\r\n }\r\n\r\n return db[_nativeDb].purgeTileTrees(modelIds);\r\n }\r\n\r\n public async generateTileContent(tokenProps: IModelRpcProps, treeId: string, contentId: string, guid: string | undefined): Promise<TileContentSource> {\r\n return RequestTileContentMemoizer.perform({ accessToken: currentActivity().accessToken, tokenProps, treeId, contentId, guid });\r\n }\r\n\r\n public async retrieveTileContent(tokenProps: IModelRpcProps, key: TileContentIdentifier): Promise<Uint8Array> {\r\n const db = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps);\r\n return db.tiles.getTileContent(key.treeId, key.contentId);\r\n }\r\n\r\n public async getTileCacheConfig(tokenProps: IModelRpcProps): Promise<TransferConfig | undefined> {\r\n if (IModelHost.tileStorage === undefined)\r\n return undefined;\r\n const iModelId = tokenProps.iModelId ?? (await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, tokenProps)).iModelId;\r\n return IModelHost.tileStorage.getDownloadConfig(iModelId);\r\n }\r\n\r\n public async queryVersionInfo(): Promise<TileVersionInfo> {\r\n return IModelNative.platform.getTileVersionInfo();\r\n }\r\n\r\n /** @internal */\r\n public async requestElementGraphics(rpcProps: IModelRpcProps, request: ElementGraphicsRequestProps): Promise<Uint8Array | undefined> {\r\n const iModel = await RpcBriefcaseUtility.findOpenIModel(currentActivity().accessToken, rpcProps);\r\n return iModel.generateElementGraphics(request);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport async function cancelTileContentRequests(tokenProps: IModelRpcProps, contentIds: TileTreeContentIds[]): Promise<void> {\r\n const iModel = IModelDb.findByKey(tokenProps.key);\r\n const props: TileContentRequestProps = { tokenProps, treeId: \"\", contentId: \"\" };\r\n\r\n for (const entry of contentIds) {\r\n props.treeId = entry.treeId;\r\n for (const contentId of entry.contentIds) {\r\n props.contentId = contentId;\r\n RequestTileContentMemoizer.instance.deleteMemoized(props);\r\n }\r\n\r\n iModel[_nativeDb].cancelTileContentRequests(entry.treeId, entry.contentIds);\r\n }\r\n}\r\n"]}
@@ -4,6 +4,7 @@
4
4
  import { ChangedElements, IModelRpcProps, RpcInterface, WipRpcInterface } from "@itwin/core-common";
5
5
  /** The backend implementation of WipRpcInterface.
6
6
  * @internal
7
+ * @deprecated in 4.10. If any of these methods are needed in the frontend, they should be rewritten using IPC or HTTP protocol.
7
8
  */
8
9
  export declare class WipRpcImpl extends RpcInterface implements WipRpcInterface {
9
10
  static register(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WipRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/WipRpcImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAc,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKhH;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,eAAe;WAEvD,QAAQ;IACT,WAAW,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzD,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAInE,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAKtI,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrG"}
1
+ {"version":3,"file":"WipRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/WipRpcImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAc,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKhH;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,eAAe;WAEvD,QAAQ;IACT,WAAW,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzD,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAInE,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAKtI,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrG"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.WipRpcImpl = void 0;
11
+ /* eslint-disable deprecation/deprecation */
11
12
  const core_bentley_1 = require("@itwin/core-bentley");
12
13
  const core_common_1 = require("@itwin/core-common");
13
14
  const ChangedElementsManager_1 = require("../ChangedElementsManager");
@@ -15,6 +16,7 @@ const ChangeSummaryManager_1 = require("../ChangeSummaryManager");
15
16
  const IModelDb_1 = require("../IModelDb");
16
17
  /** The backend implementation of WipRpcInterface.
17
18
  * @internal
19
+ * @deprecated in 4.10. If any of these methods are needed in the frontend, they should be rewritten using IPC or HTTP protocol.
18
20
  */
19
21
  class WipRpcImpl extends core_common_1.RpcInterface {
20
22
  static register() { core_common_1.RpcManager.registerImpl(core_common_1.WipRpcInterface, WipRpcImpl); }
@@ -1 +1 @@
1
- {"version":3,"file":"WipRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/WipRpcImpl.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AAC7C,oDAAgH;AAChH,sEAAmE;AACnE,kEAA+D;AAC/D,0CAA0C;AAE1C;;GAEG;AACH,MAAa,UAAW,SAAQ,0BAAY;IAEnC,MAAM,CAAC,QAAQ,KAAK,wBAAU,CAAC,YAAY,CAAC,6BAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,WAAW,CAAC,WAA2B,IAAqB,OAAO,aAAa,CAAC,CAAC,CAAC;IAEzF,KAAK,CAAC,qBAAqB,CAAC,UAA0B;QAC3D,OAAO,2CAAoB,CAAC,qBAAqB,CAAC,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAA0B;QACvD,2CAAoB,CAAC,iBAAiB,CAAC,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,UAA0B,EAAE,gBAAwB,EAAE,cAAsB;QAC1G,IAAA,qBAAM,EAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,+CAAsB,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC1G,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,UAA0B,EAAE,WAAmB;QAC/E,IAAA,qBAAM,EAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,+CAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF;AAtBD,gCAsBC","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 RpcInterface\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ChangedElements, IModelRpcProps, RpcInterface, RpcManager, WipRpcInterface } from \"@itwin/core-common\";\r\nimport { ChangedElementsManager } from \"../ChangedElementsManager\";\r\nimport { ChangeSummaryManager } from \"../ChangeSummaryManager\";\r\nimport { BriefcaseDb } from \"../IModelDb\";\r\n\r\n/** The backend implementation of WipRpcInterface.\r\n * @internal\r\n */\r\nexport class WipRpcImpl extends RpcInterface implements WipRpcInterface { // eslint-disable-line deprecation/deprecation\r\n\r\n public static register() { RpcManager.registerImpl(WipRpcInterface, WipRpcImpl); }\r\n public async placeholder(_tokenProps: IModelRpcProps): Promise<string> { return \"placeholder\"; }\r\n\r\n public async isChangeCacheAttached(tokenProps: IModelRpcProps): Promise<boolean> {\r\n return ChangeSummaryManager.isChangeCacheAttached(BriefcaseDb.findByKey(tokenProps.key));\r\n }\r\n\r\n public async attachChangeCache(tokenProps: IModelRpcProps): Promise<void> {\r\n ChangeSummaryManager.attachChangeCache(BriefcaseDb.findByKey(tokenProps.key));\r\n }\r\n\r\n public async getChangedElements(tokenProps: IModelRpcProps, startChangesetId: string, endChangesetId: string): Promise<ChangedElements | undefined> {\r\n assert(undefined !== tokenProps.iModelId);\r\n return ChangedElementsManager.getChangedElements(tokenProps.iModelId, startChangesetId, endChangesetId);\r\n }\r\n\r\n public async isChangesetProcessed(tokenProps: IModelRpcProps, changesetId: string): Promise<boolean> {\r\n assert(undefined !== tokenProps.iModelId);\r\n return ChangedElementsManager.isProcessed(tokenProps.iModelId, changesetId);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WipRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/WipRpcImpl.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4CAA4C;AAE5C,sDAA6C;AAC7C,oDAAgH;AAChH,sEAAmE;AACnE,kEAA+D;AAC/D,0CAA0C;AAE1C;;;GAGG;AACH,MAAa,UAAW,SAAQ,0BAAY;IAEnC,MAAM,CAAC,QAAQ,KAAK,wBAAU,CAAC,YAAY,CAAC,6BAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,WAAW,CAAC,WAA2B,IAAqB,OAAO,aAAa,CAAC,CAAC,CAAC;IAEzF,KAAK,CAAC,qBAAqB,CAAC,UAA0B;QAC3D,OAAO,2CAAoB,CAAC,qBAAqB,CAAC,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAA0B;QACvD,2CAAoB,CAAC,iBAAiB,CAAC,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,UAA0B,EAAE,gBAAwB,EAAE,cAAsB;QAC1G,IAAA,qBAAM,EAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,+CAAsB,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC1G,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,UAA0B,EAAE,WAAmB;QAC/E,IAAA,qBAAM,EAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,+CAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;CACF;AAtBD,gCAsBC","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 RpcInterface\r\n */\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { ChangedElements, IModelRpcProps, RpcInterface, RpcManager, WipRpcInterface } from \"@itwin/core-common\";\r\nimport { ChangedElementsManager } from \"../ChangedElementsManager\";\r\nimport { ChangeSummaryManager } from \"../ChangeSummaryManager\";\r\nimport { BriefcaseDb } from \"../IModelDb\";\r\n\r\n/** The backend implementation of WipRpcInterface.\r\n * @internal\r\n * @deprecated in 4.10. If any of these methods are needed in the frontend, they should be rewritten using IPC or HTTP protocol.\r\n */\r\nexport class WipRpcImpl extends RpcInterface implements WipRpcInterface {\r\n\r\n public static register() { RpcManager.registerImpl(WipRpcInterface, WipRpcImpl); }\r\n public async placeholder(_tokenProps: IModelRpcProps): Promise<string> { return \"placeholder\"; }\r\n\r\n public async isChangeCacheAttached(tokenProps: IModelRpcProps): Promise<boolean> {\r\n return ChangeSummaryManager.isChangeCacheAttached(BriefcaseDb.findByKey(tokenProps.key));\r\n }\r\n\r\n public async attachChangeCache(tokenProps: IModelRpcProps): Promise<void> {\r\n ChangeSummaryManager.attachChangeCache(BriefcaseDb.findByKey(tokenProps.key));\r\n }\r\n\r\n public async getChangedElements(tokenProps: IModelRpcProps, startChangesetId: string, endChangesetId: string): Promise<ChangedElements | undefined> {\r\n assert(undefined !== tokenProps.iModelId);\r\n return ChangedElementsManager.getChangedElements(tokenProps.iModelId, startChangesetId, endChangesetId);\r\n }\r\n\r\n public async isChangesetProcessed(tokenProps: IModelRpcProps, changesetId: string): Promise<boolean> {\r\n assert(undefined !== tokenProps.iModelId);\r\n return ChangedElementsManager.isProcessed(tokenProps.iModelId, changesetId);\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/core-backend",
3
- "version": "4.10.0-dev.0",
3
+ "version": "4.10.0-dev.10",
4
4
  "description": "iTwin.js backend components",
5
5
  "main": "lib/cjs/core-backend.js",
6
6
  "typings": "lib/cjs/core-backend",
@@ -25,9 +25,9 @@
25
25
  "url": "http://www.bentley.com"
26
26
  },
27
27
  "peerDependencies": {
28
- "@itwin/core-bentley": "^4.10.0-dev.0",
29
- "@itwin/core-common": "^4.10.0-dev.0",
30
- "@itwin/core-geometry": "^4.10.0-dev.0",
28
+ "@itwin/core-bentley": "^4.10.0-dev.10",
29
+ "@itwin/core-common": "^4.10.0-dev.10",
30
+ "@itwin/core-geometry": "^4.10.0-dev.10",
31
31
  "@opentelemetry/api": "^1.0.4"
32
32
  },
33
33
  "peerDependenciesMeta": {
@@ -69,16 +69,16 @@
69
69
  "ts-node": "^10.8.2",
70
70
  "typescript": "~5.3.3",
71
71
  "webpack": "^5.76.0",
72
- "@itwin/core-bentley": "4.10.0-dev.0",
73
- "@itwin/build-tools": "4.10.0-dev.0",
74
- "@itwin/core-common": "4.10.0-dev.0",
75
- "@itwin/core-geometry": "4.10.0-dev.0",
76
- "@itwin/core-webpack-tools": "4.10.0-dev.0",
77
- "@itwin/ecsql-common": "4.10.0-dev.0",
72
+ "@itwin/core-bentley": "4.10.0-dev.10",
73
+ "@itwin/build-tools": "4.10.0-dev.10",
74
+ "@itwin/core-common": "4.10.0-dev.10",
75
+ "@itwin/core-geometry": "4.10.0-dev.10",
76
+ "@itwin/core-webpack-tools": "4.10.0-dev.10",
77
+ "@itwin/ecsql-common": "4.10.0-dev.10",
78
78
  "internal-tools": "3.0.0-dev.69"
79
79
  },
80
80
  "dependencies": {
81
- "@bentley/imodeljs-native": "4.9.27",
81
+ "@bentley/imodeljs-native": "4.10.6",
82
82
  "@itwin/cloud-agnostic-core": "^2.2.4",
83
83
  "@itwin/object-storage-azure": "^2.2.5",
84
84
  "@itwin/object-storage-core": "^2.2.5",
@@ -92,7 +92,7 @@
92
92
  "semver": "^7.5.2",
93
93
  "touch": "^3.1.0",
94
94
  "ws": "^7.5.10",
95
- "@itwin/core-telemetry": "4.10.0-dev.0"
95
+ "@itwin/core-telemetry": "4.10.0-dev.10"
96
96
  },
97
97
  "nyc": {
98
98
  "extends": "./node_modules/@itwin/build-tools/.nycrc"