@itwin/core-common 5.9.0-dev.8 → 5.10.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -1
- package/lib/cjs/BriefcaseTypes.d.ts +1 -1
- package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
- package/lib/cjs/BriefcaseTypes.js +1 -1
- package/lib/cjs/BriefcaseTypes.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/DisplayStyleSettings.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleSettings.js.map +1 -1
- package/lib/cjs/HiddenLine.d.ts.map +1 -1
- package/lib/cjs/HiddenLine.js +1 -2
- package/lib/cjs/HiddenLine.js.map +1 -1
- package/lib/cjs/ITwinCoreErrors.d.ts +21 -0
- package/lib/cjs/ITwinCoreErrors.d.ts.map +1 -1
- package/lib/cjs/ITwinCoreErrors.js +19 -1
- package/lib/cjs/ITwinCoreErrors.js.map +1 -1
- package/lib/cjs/IpcAppProps.d.ts +4 -1
- package/lib/cjs/IpcAppProps.d.ts.map +1 -1
- package/lib/cjs/IpcAppProps.js.map +1 -1
- package/lib/cjs/TxnProps.d.ts +16 -0
- package/lib/cjs/TxnProps.d.ts.map +1 -1
- package/lib/cjs/TxnProps.js.map +1 -1
- package/lib/cjs/ViewDetails.js.map +1 -1
- package/lib/cjs/ViewProps.d.ts +44 -10
- package/lib/cjs/ViewProps.d.ts.map +1 -1
- package/lib/cjs/ViewProps.js +20 -0
- package/lib/cjs/ViewProps.js.map +1 -1
- package/lib/cjs/tile/TileIO.js.map +1 -1
- package/lib/esm/BriefcaseTypes.d.ts +1 -1
- package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
- package/lib/esm/BriefcaseTypes.js +1 -1
- package/lib/esm/BriefcaseTypes.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/DisplayStyleSettings.d.ts.map +1 -1
- package/lib/esm/DisplayStyleSettings.js.map +1 -1
- package/lib/esm/HiddenLine.d.ts.map +1 -1
- package/lib/esm/HiddenLine.js +1 -2
- package/lib/esm/HiddenLine.js.map +1 -1
- package/lib/esm/ITwinCoreErrors.d.ts +21 -0
- package/lib/esm/ITwinCoreErrors.d.ts.map +1 -1
- package/lib/esm/ITwinCoreErrors.js +18 -0
- package/lib/esm/ITwinCoreErrors.js.map +1 -1
- package/lib/esm/IpcAppProps.d.ts +4 -1
- package/lib/esm/IpcAppProps.d.ts.map +1 -1
- package/lib/esm/IpcAppProps.js.map +1 -1
- package/lib/esm/TxnProps.d.ts +16 -0
- package/lib/esm/TxnProps.d.ts.map +1 -1
- package/lib/esm/TxnProps.js.map +1 -1
- package/lib/esm/ViewDetails.js.map +1 -1
- package/lib/esm/ViewProps.d.ts +44 -10
- package/lib/esm/ViewProps.d.ts.map +1 -1
- package/lib/esm/ViewProps.js +18 -0
- package/lib/esm/ViewProps.js.map +1 -1
- package/lib/esm/tile/TileIO.js.map +1 -1
- package/package.json +6 -6
package/lib/cjs/ViewProps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewProps.js","sourceRoot":"","sources":["../../src/ViewProps.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AA4OH;;;GAGG;AACH,IAAiB,YAAY,CA0W5B;AA1WD,WAAiB,YAAY;IAE3B;;;;OAIG;IACU,oBAAO,GAAG,OAAO,CAAC;IAkC/B,qGAAqG;IACxF,0BAAa,GAAG,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAgUnF,CAAC,EA1WgB,YAAY,4BAAZ,YAAY,QA0W5B","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 Views\r\n */\r\n\r\nimport { CompressedId64Set, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { AngleProps, Range3dProps, TransformProps, XYProps, XYZProps, YawPitchRollProps } from \"@itwin/core-geometry\";\r\nimport { CameraProps } from \"./Camera\";\r\nimport { DisplayStyleProps, DisplayStyleSettingsProps } from \"./DisplayStyleSettings\";\r\nimport { DefinitionElementProps, DisplayStyleLoadProps, ElementProps, RenderTimelineProps, SheetProps, ViewAttachmentProps } from \"./ElementProps\";\r\nimport { EntityQueryParams } from \"./EntityProps\";\r\nimport { ModelProps } from \"./ModelProps\";\r\nimport { SubCategoryAppearance } from \"./SubCategoryAppearance\";\r\nimport { ViewDetails3dProps, ViewDetailsProps } from \"./ViewDetails\";\r\nimport { ThumbnailProps } from \"./Thumbnail\";\r\nimport { RenderSchedule } from \"./RenderSchedule\";\r\n\r\n/** The id of either an element or an entry in a ViewStore.\r\n * @public\r\n */\r\nexport type ViewIdString = Id64String; // should also include ViewStoreRpc.IdString when that's @public\r\n\r\n/** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated.\r\n * @see [[SectionDrawingProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SectionDrawingViewProps {\r\n /** The Id of the spatial view from which the SectionDrawing was generated. */\r\n spatialView: Id64String;\r\n /** If true, the spatial view should be displayed in the context of the drawing view. */\r\n displaySpatialView: boolean;\r\n /** Transform from drawing coordinates to spatial coordinates. If undefined, use identity transform. */\r\n drawingToSpatialTransform?: TransformProps;\r\n}\r\n\r\n/** The response props from the getCustomViewState3dData RPC endpoint\r\n * @internal\r\n */\r\nexport interface CustomViewState3dProps {\r\n modelIds: CompressedId64Set;\r\n modelExtents: Range3dProps;\r\n categoryIds: CompressedId64Set;\r\n}\r\n\r\n/**\r\n * The options passed to the getCustomViewState3dData RPC endpoint.\r\n * @internal\r\n */\r\nexport interface CustomViewState3dCreatorOptions {\r\n modelIds?: CompressedId64Set;\r\n}\r\n\r\n/**\r\n * A result row from querying for subcategories\r\n * @internal\r\n */\r\nexport interface SubCategoryResultRow {\r\n parentId: Id64String;\r\n id: Id64String;\r\n appearance: SubCategoryAppearance.Props;\r\n}\r\n\r\n/**\r\n * Request props for the hydrateViewState RPC endpoint.\r\n * @internal\r\n */\r\nexport interface HydrateViewStateRequestProps {\r\n acsId?: string;\r\n notLoadedModelSelectorStateModels?: CompressedId64Set;\r\n sheetViewAttachmentIds?: CompressedId64Set;\r\n viewStateLoadProps?: ViewStateLoadProps;\r\n baseModelId?: Id64String;\r\n spatialViewId?: Id64String;\r\n}\r\n\r\n/** Response props from the hydrateViewState RPC endpoint.\r\n * @internal\r\n */\r\nexport interface HydrateViewStateResponseProps {\r\n acsElementProps?: ElementProps;\r\n modelSelectorStateModels?: ModelProps[];\r\n // cast this to viewAttachmentInfo[] on the frontend.\r\n sheetViewAttachmentProps?: ViewAttachmentProps[];\r\n sheetViewViews?: (ViewStateProps | undefined)[];\r\n baseModelProps?: ModelProps;\r\n spatialViewProps?: ViewStateProps;\r\n}\r\n\r\n/** Returned from [IModelDb.Views.getViewStateProps]($backend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewStateProps {\r\n viewDefinitionProps: ViewDefinitionProps;\r\n categorySelectorProps: CategorySelectorProps;\r\n modelSelectorProps?: ModelSelectorProps;\r\n displayStyleProps: DisplayStyleProps;\r\n /** Sheet-specific properties, if this is a view of a [SheetModel]($backend). */\r\n sheetProps?: SheetProps;\r\n /** The Ids of the [ViewAttachment]($backend)s contained within the [SheetModel]($backend), if this is a sheet view. */\r\n sheetAttachments?: Id64Array;\r\n /** For a [DrawingViewState]($frontend), the extents of the [DrawingModel]($backend), used for determining the upper limits of the view's extents. */\r\n modelExtents?: Range3dProps;\r\n /** Information about the [SectionDrawing]($backend) relevant to displaying a drawing view. */\r\n sectionDrawing?: SectionDrawingViewProps;\r\n}\r\n\r\n/** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateProps]($backend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewStateLoadProps {\r\n /** Options for loading the view's [[DisplayStyleProps]]. */\r\n displayStyle?: DisplayStyleLoadProps;\r\n\r\n /**\r\n * bindings for query-based selectors\r\n * @beta\r\n */\r\n queryBindings?: {\r\n modelSelector?: ViewStoreRpc.QueryBindings;\r\n categorySelector?: ViewStoreRpc.QueryBindings;\r\n };\r\n}\r\n\r\n/** Properties that define a ModelSelector\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ModelSelectorProps extends DefinitionElementProps {\r\n models: Id64Array;\r\n}\r\n\r\n/** Properties that define a CategorySelector\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CategorySelectorProps extends DefinitionElementProps {\r\n categories: Id64Array;\r\n}\r\n\r\n/** Parameters for performing a query on [ViewDefinition]($backend) classes.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewQueryParams extends EntityQueryParams {\r\n wantPrivate?: boolean;\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinitionProps extends DefinitionElementProps {\r\n categorySelectorId: ViewIdString;\r\n displayStyleId: ViewIdString;\r\n description?: string;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetailsProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a ViewDefinition3d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinition3dProps extends ViewDefinitionProps {\r\n /** if true, camera is valid. */\r\n cameraOn: boolean;\r\n /** The lower left back corner of the view frustum. */\r\n origin: XYZProps;\r\n /** The extent of the view frustum. */\r\n extents: XYZProps;\r\n /** Rotation of the view frustum (could be undefined if going Matrix3d -> YawPitchRoll). */\r\n angles?: YawPitchRollProps;\r\n /** The camera used for this view. */\r\n camera: CameraProps;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetails3dProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a SpatialViewDefinition\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SpatialViewDefinitionProps extends ViewDefinition3dProps {\r\n modelSelectorId: ViewIdString;\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition2d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinition2dProps extends ViewDefinitionProps {\r\n baseModelId: Id64String;\r\n origin: XYProps;\r\n delta: XYProps;\r\n angle: AngleProps;\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystemProps extends ElementProps {\r\n type?: number;\r\n description?: string;\r\n}\r\n\r\n/** Properties of AuxCoordSystem2d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystem2dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem2d */\r\n origin?: XYProps;\r\n /** Rotation angle */\r\n angle?: AngleProps;\r\n}\r\n\r\n/** Properties of AuxCoordSystem3d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystem3dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem3d */\r\n origin?: XYZProps;\r\n /** Yaw angle */\r\n yaw?: AngleProps;\r\n /** Pitch angle */\r\n pitch?: AngleProps;\r\n /** Roll angle */\r\n roll?: AngleProps;\r\n}\r\n\r\n/**\r\n * Access to a ViewStore from the frontend.\r\n * @beta\r\n */\r\nexport namespace ViewStoreRpc {\r\n\r\n /**\r\n * Version of the Rpc interface. If any methods or interfaces of this API change, this number should\r\n * be incremented according to the rules of semantic versioning. See .\\rpc\\README-RpcInterfaceVersioning.md for more information.\r\n * @internal\r\n */\r\n export const version = \"4.0.0\";\r\n\r\n /** an Id of a View, DisplayStyle, ModelSelector, CategorySelector, or Timeline in a ViewStore.\r\n * Will be a base-36 number with a leading \"@\".\r\n * @public\r\n */\r\n export type IdString = string;\r\n\r\n /**\r\n * A string identifying a group. This may either be a \"group name path\" or the RowString of a group (e.g. either \"group1/design/issues\" or \"@4e3\")\r\n * The syntax is not ambiguous because ViewStoreIdStrings always start with \"@\" and Group names can never contain \"@\".\r\n */\r\n export type ViewGroupSpec = IdString | ViewGroupPath;\r\n\r\n /** The name for a view. */\r\n export type ViewName = string;\r\n\r\n /** The name for a Tag. */\r\n export type TagName = string;\r\n\r\n /** The name of an \"owner\". Should come from the authentication system, so it will be guaranteed unique.\r\n * This name should be chosen by the user rather than their email address.\r\n */\r\n export type OwnerName = string;\r\n\r\n /** The path name of a view group (e.g. \"group1/design/issues\"). Does not include the \"root\" group. */\r\n export type ViewGroupPath = string;\r\n\r\n /** The name for a view group. */\r\n export type ViewGroupName = string;\r\n\r\n /** The name for a view group. */\r\n export type ClassFullName = string;\r\n\r\n /** Determine if a string is an Id of an entry in a ViewStore (base-36 integer with a leading \"@\") */\r\n export const isViewStoreId = (id?: ViewIdString) => true === id?.startsWith(\"@\");\r\n\r\n /** Parameters for querying for views in a ViewStore. */\r\n export interface QueryParams {\r\n /** a list of classFullNames to accept. If not present, all classes are returned. */\r\n readonly classNames?: ClassFullName[];\r\n /** Optional \"LIMIT\" clause to limit the number of views returned. */\r\n readonly limit?: number;\r\n /** Optional \"OFFSET\" clause. Only valid if Limit is also present. */\r\n readonly offset?: number;\r\n /** A string to filter view names. May include wildcards if the `nameCompare` uses LIKE or GLOB (see SQLite documentation for LIKE and GLOB). */\r\n readonly nameSearch?: string;\r\n /** The comparison operator for `nameSearch`. Default is `=` */\r\n readonly nameCompare?: \"GLOB\" | \"LIKE\" | \"NOT GLOB\" | \"NOT LIKE\" | \"=\" | \"<\" | \">\";\r\n /* the Id of the view group to query. If not present, the root group is used. There is no way to query for views from multiple view groups in one request. */\r\n readonly group?: IdString;\r\n /** A list of tags to filter views. If present, only views that have one or more of the tags will be returned. */\r\n readonly tags?: TagName[];\r\n /* The name of an owner for private views. If present, private views owned by the owner will also be returned. Shared views are always returned. */\r\n readonly owner?: OwnerName;\r\n }\r\n\r\n /** Parameters for specifying a Query to select Categories or Models. */\r\n export interface SelectorQuery {\r\n /**\r\n * The full ClassName from which to select. If this SelectorQuery is for Categories, this must be or derive from \"BisCore:Category\".\r\n * If this SelectorQuery is for Models, this must be or derive from \"BisCore:Model\".\r\n */\r\n from: ClassFullName;\r\n /** If true, only return instances of `from`. Otherwise, return instances of `from` and any subclasses of `from`. */\r\n only?: boolean;\r\n /**\r\n * filter for query. If present, only instances of `from` that satisfy the filter will be returned.\r\n * If not supplied, all instances of `from` are returned.\r\n * @note\r\n * This value is used into the ECQuery:`SELECT ECInstanceId FROM ${query.from} WHERE ${query.where}`.\r\n */\r\n where?: string;\r\n /** List of Model or Category ids to add to the query results.\r\n * @note This is only valid if there is a `where` clause. Otherwise all instances of `from` will be returned so there is no value in adding ids.\r\n */\r\n adds?: Id64Array | CompressedId64Set;\r\n /** List of Model or Category Ids to remove from the query results. */\r\n removes?: Id64Array | CompressedId64Set;\r\n }\r\n\r\n /** A Model or Category selector may either be a query or a list of Ids. */\r\n export type SelectorProps = { query: SelectorQuery, ids?: never } | { query?: never, ids: Id64Array | CompressedId64Set };\r\n\r\n /** Information about a View in a ViewStore. */\r\n export interface ViewInfo {\r\n /** The Id of the view. */\r\n id: IdString;\r\n /** The name of the view. */\r\n name?: ViewName;\r\n /** The name of the owner of the view. */\r\n owner?: OwnerName;\r\n /** The className of the view. */\r\n className: ClassFullName;\r\n /** The Id of the view group containing the view. */\r\n groupId: IdString;\r\n /** If true, the view is private (unshared) and will only be returned by queries that specify the owner's name. */\r\n isPrivate: boolean;\r\n /** The Id of a ModelSelector, if the view has one. */\r\n modelSelectorId?: IdString;\r\n /** The Id of the CategorySelector for this view. */\r\n categorySelectorId: IdString;\r\n /** The Id of a DisplayStyle for the view. */\r\n displayStyleId: IdString;\r\n /** a list of tags for the view. */\r\n tags?: TagName[];\r\n }\r\n\r\n /** Information about a ViewGroup in a ViewStore. */\r\n export interface ViewGroupInfo {\r\n /** The Id of this view group. */\r\n id: IdString;\r\n /** The name of this view group. */\r\n name: ViewGroupName;\r\n /** The Id of the parent of this view group. If undefined, this is the root group. */\r\n parent?: IdString;\r\n /** The Id of the default view for this view group. */\r\n defaultView?: IdString;\r\n }\r\n\r\n /** Arguments for adding a new view to a ViewStore. */\r\n export interface AddViewArgs {\r\n /** the properties of the ViewDefinition for the new view. */\r\n readonly viewDefinition: ViewDefinitionProps;\r\n\r\n /**\r\n * The properties of a category selector for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.categorySelectorId` **not** a valid\r\n * `IdString`. In that case, a new category selector will be created with these properties and its Id will be used.\r\n * Otherwise, the categorySelectorId from the ViewDefinition is used. If it does not represent a valid category\r\n * selector, an error is thrown.\r\n */\r\n readonly categorySelectorProps?: CategorySelectorProps;\r\n\r\n /** The properties of a model selector for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.modelSelectorId` **not** a valid\r\n * `IdString`. In that case, a new model selector will be created with these properties and its Id will be used.\r\n * Otherwise, the modelSelectorId from the ViewDefinition is used. If it does not represent a valid model selector,\r\n * an error is thrown.\r\n */\r\n readonly modelSelectorProps?: ModelSelectorProps;\r\n\r\n /** The properties of a display style for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.displayStyleId` **not** a valid\r\n * `IdString`. In that case, a new display style will be created with these properties and its Id will be used.\r\n * Otherwise, the displayStyleId from the ViewDefinition is used. If it does not represent a valid display style, an\r\n * error is thrown.\r\n */\r\n readonly displayStyleProps?: DisplayStyleProps;\r\n\r\n /* the owner of the view. Must be present if isPrivate is true. */\r\n readonly owner?: OwnerName;\r\n\r\n /* the Id of the view group for the view. If not present, the view is added to the root group. */\r\n readonly group?: IdString;\r\n\r\n /* if true, the view is private (unshared). */\r\n readonly isPrivate?: boolean;\r\n\r\n /* an optional list of tags for the view. */\r\n readonly tags?: TagName[];\r\n\r\n /** optional thumbnail for the view. */\r\n readonly thumbnail?: ThumbnailProps;\r\n }\r\n\r\n /** Argument for finding a category selector, model selector, display style, or timeline by name or Id. */\r\n export type NameOrId = { name: string, id?: never } | { id: IdString, name?: never };\r\n\r\n /** Bindings for parameterized values in where clause of SelectorQuery\r\n * @see[[ECSqlStatement.bindValues]]\r\n */\r\n export interface QueryBindings {\r\n bindings?: any[] | object;\r\n }\r\n\r\n /**\r\n * Methods for reading from a ViewStore via Rpc from a frontend via `IModelConnection.views.viewsStoreReader`. These\r\n * methods use the *current* ViewStore for the iModel, and attempt to load the default ViewStore if no ViewStore is\r\n * currently loaded. They will throw exceptions if the request cannot be fulfilled.\r\n * @note The user's accessToken is validated against the ViewStore for every request. For each of these methods, the\r\n * user only needs read permission to the ViewStore.\r\n */\r\n export interface Reader {\r\n /** Find all views owned by the supplied owner name. */\r\n findViewsByOwner(args: { owner: OwnerName }): Promise<ViewInfo[]>;\r\n\r\n /** Get a category selector by Id. Throws if it does not exist. */\r\n getCategorySelector(args: NameOrId & QueryBindings): Promise<CategorySelectorProps>;\r\n\r\n /** Get a display style by Id. Throws if it does not exist. */\r\n getDisplayStyle(args: NameOrId & { opts?: DisplayStyleLoadProps }): Promise<DisplayStyleProps>;\r\n\r\n /** Get a model selector by Id. Throws if it does not exist. */\r\n getModelSelector(args: NameOrId & QueryBindings): Promise<ModelSelectorProps>;\r\n\r\n /** Get a thumbnail for a view. */\r\n getThumbnail(args: { viewId: IdString }): Promise<ThumbnailProps | undefined>;\r\n\r\n /** Get a render timeline by Id. Throws if it does not exist. */\r\n getTimeline(args: NameOrId): Promise<RenderTimelineProps>;\r\n\r\n /** Get a view by name. The name can include the *view group path*, if no `groupId` is supplied. */\r\n getViewByName(arg: { name: ViewName, groupId?: IdString }): Promise<ViewInfo | undefined>;\r\n\r\n /** Get a view definition by viewId. Throws if it does not exist. */\r\n getViewDefinition(args: { viewId: IdString }): Promise<ViewDefinitionProps>;\r\n\r\n /** get the properties of a ViewGroup by id. This will include the defaultViewId, if one exists. */\r\n getViewGroupInfo(args: { groupId?: IdString }): Promise<ViewGroupInfo | undefined>;\r\n\r\n /** Get a list of ViewGroups that are children of the supplied parent. If no parent is supplied, the root group is used.\r\n * Each entry in the list includes the id and name of the ViewGroup.\r\n */\r\n getViewGroups(args: { parent?: ViewGroupSpec }): Promise<{ id: IdString, name: string }[]>;\r\n\r\n /** Get the ViewInfo for a view by Id. Returns undefined if the view does not exist. */\r\n getViewInfo(args: { viewId: IdString }): Promise<ViewInfo | undefined>;\r\n\r\n /** Query for a list of ViewInfos for views that match the supplied [[QueryParams]].\r\n * @note The array will be sorted by name, ascending. To limit the size of the array, supply `limit` and `offset` in the QueryParams.\r\n */\r\n queryViews(queryParams: QueryParams): Promise<ViewInfo[]>;\r\n }\r\n\r\n /**\r\n * Methods for writing to a ViewStore via Rpc from a frontend via `IModelConnection.views.viewsStoreWriter`. These\r\n * methods use the *current* ViewStore for the iModel, and attempt to load the default ViewStore if no ViewStore is\r\n * currently loaded. They will throw exceptions if the request cannot be fulfilled.\r\n * @note The user's accessToken is validated against the ViewStore for every request. For each of these methods, the\r\n * user must have write permission to the ViewStore.\r\n */\r\n export interface Writer {\r\n /**\r\n * Add a category selector to a ViewStore.\r\n * @returns The IdString of the new category selector.\r\n */\r\n addCategorySelector(args: { name?: string, selector: SelectorProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Add a display style to a ViewStore.\r\n * @returns The IdString of the new display style.\r\n */\r\n addDisplayStyle(args: { name?: string, className: string, settings: DisplayStyleSettingsProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /**\r\n * Add a model selector to a ViewStore.\r\n * @returns The IdString of the new model selector.\r\n */\r\n addModelSelector(args: { name?: string, selector: SelectorProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /**\r\n * Add a thumbnail for a view. If the view already has a thumbnail, it is replaced.\r\n * If a view is deleted, its thumbnail is also deleted.\r\n * @note The thumbnail must be a valid image in PNG or JPEG format.\r\n */\r\n addOrReplaceThumbnail(args: { viewId: IdString, thumbnail: ThumbnailProps }): Promise<void>;\r\n\r\n /** Add tags to a view. If the view already has tags, the new tags are appended to the existing tags. */\r\n addTagsToView(args: { viewId: IdString, tags: TagName[] }): Promise<void>;\r\n\r\n /** Add a render timeline to a ViewStore.\r\n * @returns The IdString of the new timeline.\r\n */\r\n addTimeline(args: { name?: string, timeline: RenderSchedule.ScriptProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Add a view to a ViewStore. If no group is supplied, the new view is added to the root view group.\r\n * @returns The IdString of the new view\r\n */\r\n addView(args: AddViewArgs): Promise<IdString>;\r\n\r\n /** Add a view group to a ViewStore. If no parent is supplied, the new group is added to the root view group.\r\n * @returns the IdString of new view group\r\n */\r\n addViewGroup(args: { name: string, parentId?: IdString, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Change the default view for a view group. If no group is supplied, this changes the default view for the root view group. */\r\n changeDefaultViewId(args: { defaultView: IdString, group?: ViewGroupSpec }): Promise<void>;\r\n\r\n /** Delete the thumbnail for a view. */\r\n deleteThumbnail(args: { viewId: IdString }): Promise<void>;\r\n\r\n /**\r\n * Delete a view from a ViewStore. If this is the default view for a view group, it cannot be deleted until another\r\n * view is set as the default.\r\n * @note If this view references a category selector, model selector, or display style that is not referenced by any\r\n * other view, *and do not have a name*, they will each also be deleted. If the view has a thumbnail, it is also\r\n * deleted.\r\n */\r\n deleteView(args: { viewId: IdString }): Promise<void>;\r\n\r\n /** Delete a view group from a ViewStore. This will also delete all views in the group. */\r\n deleteViewGroup(args: { name: ViewGroupSpec }): Promise<void>;\r\n\r\n /** Delete a display style from a ViewStore. If the display style is referenced by any view, it cannot be deleted\r\n * and an exception will be thrown.\r\n */\r\n deleteDisplayStyle(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a model selector from a ViewStore. If the model selector is referenced by any view, it cannot be deleted\r\n * and an exception will be thrown. */\r\n deleteModelSelector(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a category selector from a ViewStore. If the category selector is referenced by any view, it cannot be\r\n * deleted and an exception will be thrown.\r\n */\r\n deleteCategorySelector(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a render timeline from a ViewStore. */\r\n deleteTimeline(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a tag. This removes it from all views where it was used. */\r\n deleteTag(args: { name: TagName }): Promise<void>;\r\n\r\n /** remove a tag from a view. */\r\n removeTagFromView(args: { viewId: IdString, tag: TagName }): Promise<void>;\r\n\r\n /** Update the properties of a category selector. */\r\n updateCategorySelector(args: NameOrId & { selector: SelectorProps }): Promise<void>;\r\n\r\n /** Update the properties of a display style. */\r\n updateDisplayStyle(args: NameOrId & { className: string, settings: DisplayStyleSettingsProps }): Promise<void>;\r\n\r\n /** Update the properties of a model selector. */\r\n updateModelSelector(args: NameOrId & { selector: SelectorProps }): Promise<void>;\r\n\r\n /** Update the properties of a render timeline. */\r\n updateTimeline(args: NameOrId & { timeline: RenderSchedule.ScriptProps }): Promise<void>;\r\n\r\n /** Update the properties of a view definition. */\r\n updateViewDefinition(args: { viewId: IdString, viewDefinition: ViewDefinitionProps }): Promise<void>;\r\n\r\n /** Change a view from shared to private, or vice versa. If changing to private, the owner must be supplied. */\r\n updateViewShared(arg: { viewId: IdString, isShared: boolean, owner?: string }): Promise<void>;\r\n\r\n /** Set the name of a category selector. */\r\n renameCategorySelector(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a display style. */\r\n renameDisplayStyle(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a model selector. */\r\n renameModelSelector(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a render timeline. */\r\n renameTimeline(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a view. */\r\n renameView(args: { viewId: IdString, name: string }): Promise<void>;\r\n\r\n /** Set the name of a view group. */\r\n renameViewGroup(args: { groupId: IdString, name: string }): Promise<void>;\r\n\r\n /** rename an existing tag. */\r\n renameTag(args: { oldName: TagName, newName: TagName }): Promise<void>;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ViewProps.js","sourceRoot":"","sources":["../../src/ViewProps.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAyJH,4CAEC;AAQD,wCAEC;AAlBD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAwC,EAAE,mBAA+B;IACxG,OAAO,OAAO,EAAE,EAAE,IAAI,mBAAmB,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,OAAwC,EAAE,mBAA+B;IACtG,OAAO,OAAO,IAAI,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;AAChD,CAAC;AAmHD;;;GAGG;AACH,IAAiB,YAAY,CA0W5B;AA1WD,WAAiB,YAAY;IAE3B;;;;OAIG;IACU,oBAAO,GAAG,OAAO,CAAC;IAkC/B,qGAAqG;IACxF,0BAAa,GAAG,CAAC,EAAiB,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAgUnF,CAAC,EA1WgB,YAAY,4BAAZ,YAAY,QA0W5B","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 Views\r\n */\r\n\r\nimport { CompressedId64Set, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { AngleProps, Range3dProps, TransformProps, XYProps, XYZProps, YawPitchRollProps } from \"@itwin/core-geometry\";\r\nimport { CameraProps } from \"./Camera\";\r\nimport { DisplayStyleProps, DisplayStyleSettingsProps } from \"./DisplayStyleSettings\";\r\nimport { DefinitionElementProps, DisplayStyleLoadProps, ElementProps, RelatedElementProps, RenderTimelineProps, SheetProps, ViewAttachmentProps } from \"./ElementProps\";\r\nimport { EntityQueryParams } from \"./EntityProps\";\r\nimport { ModelProps } from \"./ModelProps\";\r\nimport { SubCategoryAppearance } from \"./SubCategoryAppearance\";\r\nimport { ViewDetails3dProps, ViewDetailsProps } from \"./ViewDetails\";\r\nimport { ThumbnailProps } from \"./Thumbnail\";\r\nimport { RenderSchedule } from \"./RenderSchedule\";\r\n\r\n/** The id of either an element or an entry in a ViewStore.\r\n * @public\r\n */\r\nexport type ViewIdString = Id64String; // should also include ViewStoreRpc.IdString when that's @public\r\n\r\n/** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated.\r\n * @see [[SectionDrawingProps]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SectionDrawingViewProps {\r\n /** The Id of the spatial view from which the SectionDrawing was generated. */\r\n spatialView: Id64String;\r\n /** If true, the spatial view should be displayed in the context of the drawing view. */\r\n displaySpatialView: boolean;\r\n /** Transform from drawing coordinates to spatial coordinates. If undefined, use identity transform. */\r\n drawingToSpatialTransform?: TransformProps;\r\n}\r\n\r\n/** The response props from the getCustomViewState3dData RPC endpoint\r\n * @internal\r\n */\r\nexport interface CustomViewState3dProps {\r\n modelIds: CompressedId64Set;\r\n modelExtents: Range3dProps;\r\n categoryIds: CompressedId64Set;\r\n}\r\n\r\n/**\r\n * The options passed to the getCustomViewState3dData RPC endpoint.\r\n * @internal\r\n */\r\nexport interface CustomViewState3dCreatorOptions {\r\n modelIds?: CompressedId64Set;\r\n}\r\n\r\n/**\r\n * A result row from querying for subcategories\r\n * @internal\r\n */\r\nexport interface SubCategoryResultRow {\r\n parentId: Id64String;\r\n id: Id64String;\r\n appearance: SubCategoryAppearance.Props;\r\n}\r\n\r\n/**\r\n * Request props for the hydrateViewState RPC endpoint.\r\n * @internal\r\n */\r\nexport interface HydrateViewStateRequestProps {\r\n acsId?: string;\r\n notLoadedModelSelectorStateModels?: CompressedId64Set;\r\n sheetViewAttachmentIds?: CompressedId64Set;\r\n viewStateLoadProps?: ViewStateLoadProps;\r\n baseModelId?: Id64String;\r\n spatialViewId?: Id64String;\r\n}\r\n\r\n/** Response props from the hydrateViewState RPC endpoint.\r\n * @internal\r\n */\r\nexport interface HydrateViewStateResponseProps {\r\n acsElementProps?: ElementProps;\r\n modelSelectorStateModels?: ModelProps[];\r\n // cast this to viewAttachmentInfo[] on the frontend.\r\n sheetViewAttachmentProps?: ViewAttachmentProps[];\r\n sheetViewViews?: (ViewStateProps | undefined)[];\r\n baseModelProps?: ModelProps;\r\n spatialViewProps?: ViewStateProps;\r\n}\r\n\r\n/** Returned from [IModelDb.Views.getViewStateProps]($backend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewStateProps {\r\n viewDefinitionProps: ViewDefinitionProps;\r\n categorySelectorProps: CategorySelectorProps;\r\n modelSelectorProps?: ModelSelectorProps;\r\n displayStyleProps: DisplayStyleProps;\r\n /** Sheet-specific properties, if this is a view of a [SheetModel]($backend). */\r\n sheetProps?: SheetProps;\r\n /** The Ids of the [ViewAttachment]($backend)s contained within the [SheetModel]($backend), if this is a sheet view. */\r\n sheetAttachments?: Id64Array;\r\n /** For a [DrawingViewState]($frontend), the extents of the [DrawingModel]($backend), used for determining the upper limits of the view's extents. */\r\n modelExtents?: Range3dProps;\r\n /** Information about the [SectionDrawing]($backend) relevant to displaying a drawing view. */\r\n sectionDrawing?: SectionDrawingViewProps;\r\n}\r\n\r\n/** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateProps]($backend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewStateLoadProps {\r\n /** Options for loading the view's [[DisplayStyleProps]]. */\r\n displayStyle?: DisplayStyleLoadProps;\r\n\r\n /**\r\n * bindings for query-based selectors\r\n * @beta\r\n */\r\n queryBindings?: {\r\n modelSelector?: ViewStoreRpc.QueryBindings;\r\n categorySelector?: ViewStoreRpc.QueryBindings;\r\n };\r\n}\r\n\r\n/** Properties that define a ModelSelector\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ModelSelectorProps extends DefinitionElementProps {\r\n models: Id64Array;\r\n}\r\n\r\n/** Properties that define a CategorySelector\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CategorySelectorProps extends DefinitionElementProps {\r\n categories: Id64Array;\r\n}\r\n\r\n/** Parameters for performing a query on [ViewDefinition]($backend) classes.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewQueryParams extends EntityQueryParams {\r\n wantPrivate?: boolean;\r\n}\r\n\r\n/**\r\n * Helper to resolve navigation property ids represented as independent Id64Strings.\r\n * @internal\r\n *\r\n * @note This function will be redundant once all deprecated fields are removed. All calls to this function will need to be removed as well.\r\n */\r\nexport function resolveNavPropId(navProp: RelatedElementProps | undefined, deprecatedNavPropId: Id64String): Id64String {\r\n return navProp?.id ?? deprecatedNavPropId;\r\n}\r\n\r\n/**\r\n * Helper to resolve navigation properties represented as Id64Strings.\r\n * @internal\r\n *\r\n * @note This function will be redundant once all deprecated fields are removed. All calls to this function will need to be removed as well.\r\n */\r\nexport function resolveNavProp(navProp: RelatedElementProps | undefined, deprecatedNavPropId: Id64String): RelatedElementProps {\r\n return navProp ?? { id: deprecatedNavPropId };\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinitionProps extends DefinitionElementProps {\r\n /** The [[CategorySelector]] for this view. */\r\n categorySelector?: RelatedElementProps;\r\n\r\n /** The [[DisplayStyle]] for this view. */\r\n displayStyle?: RelatedElementProps;\r\n\r\n /** The Id of the [[CategorySelector]] for this view.\r\n * @deprecated in 5.9. Use `categorySelector` instead.\r\n */\r\n categorySelectorId: ViewIdString;\r\n /** The Id of the [[DisplayStyle]] for this view.\r\n * @deprecated in 5.9. Use `displayStyle` instead.\r\n */\r\n displayStyleId: ViewIdString;\r\n description?: string;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetailsProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a ViewDefinition3d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinition3dProps extends ViewDefinitionProps {\r\n /** if true, camera is valid. */\r\n cameraOn: boolean;\r\n /** The lower left back corner of the view frustum. */\r\n origin: XYZProps;\r\n /** The extent of the view frustum. */\r\n extents: XYZProps;\r\n /** Rotation of the view frustum (could be undefined if going Matrix3d -> YawPitchRoll). */\r\n angles?: YawPitchRollProps;\r\n /** The camera used for this view. */\r\n camera: CameraProps;\r\n jsonProperties?: {\r\n /** Additional properties of the view. */\r\n viewDetails?: ViewDetails3dProps;\r\n };\r\n}\r\n\r\n/** Parameters to construct a SpatialViewDefinition\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SpatialViewDefinitionProps extends ViewDefinition3dProps {\r\n /** The [[ModelSelector]] for this view. */\r\n modelSelector?: RelatedElementProps;\r\n\r\n /** The Id of the [[ModelSelector]] for this view.\r\n * @deprecated in 5.9. Use `modelSelector` instead.\r\n */\r\n modelSelectorId: ViewIdString;\r\n}\r\n\r\n/** Parameters used to construct a ViewDefinition2d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewDefinition2dProps extends ViewDefinitionProps {\r\n /** The base model displayed by this view. */\r\n baseModel?: RelatedElementProps;\r\n\r\n /** The Id of the base model displayed by this view.\r\n * @deprecated in 5.9. Use `baseModel` instead.\r\n */\r\n baseModelId: Id64String;\r\n origin: XYProps;\r\n delta: XYProps;\r\n angle: AngleProps;\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystemProps extends ElementProps {\r\n type?: number;\r\n description?: string;\r\n}\r\n\r\n/** Properties of AuxCoordSystem2d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystem2dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem2d */\r\n origin?: XYProps;\r\n /** Rotation angle */\r\n angle?: AngleProps;\r\n}\r\n\r\n/** Properties of AuxCoordSystem3d\r\n * @public\r\n * @extensions\r\n */\r\nexport interface AuxCoordSystem3dProps extends AuxCoordSystemProps {\r\n /** Origin of the AuxCoordSystem3d */\r\n origin?: XYZProps;\r\n /** Yaw angle */\r\n yaw?: AngleProps;\r\n /** Pitch angle */\r\n pitch?: AngleProps;\r\n /** Roll angle */\r\n roll?: AngleProps;\r\n}\r\n\r\n/**\r\n * Access to a ViewStore from the frontend.\r\n * @beta\r\n */\r\nexport namespace ViewStoreRpc {\r\n\r\n /**\r\n * Version of the Rpc interface. If any methods or interfaces of this API change, this number should\r\n * be incremented according to the rules of semantic versioning. See .\\rpc\\README-RpcInterfaceVersioning.md for more information.\r\n * @internal\r\n */\r\n export const version = \"4.0.0\";\r\n\r\n /** an Id of a View, DisplayStyle, ModelSelector, CategorySelector, or Timeline in a ViewStore.\r\n * Will be a base-36 number with a leading \"@\".\r\n * @public\r\n */\r\n export type IdString = string;\r\n\r\n /**\r\n * A string identifying a group. This may either be a \"group name path\" or the RowString of a group (e.g. either \"group1/design/issues\" or \"@4e3\")\r\n * The syntax is not ambiguous because ViewStoreIdStrings always start with \"@\" and Group names can never contain \"@\".\r\n */\r\n export type ViewGroupSpec = IdString | ViewGroupPath;\r\n\r\n /** The name for a view. */\r\n export type ViewName = string;\r\n\r\n /** The name for a Tag. */\r\n export type TagName = string;\r\n\r\n /** The name of an \"owner\". Should come from the authentication system, so it will be guaranteed unique.\r\n * This name should be chosen by the user rather than their email address.\r\n */\r\n export type OwnerName = string;\r\n\r\n /** The path name of a view group (e.g. \"group1/design/issues\"). Does not include the \"root\" group. */\r\n export type ViewGroupPath = string;\r\n\r\n /** The name for a view group. */\r\n export type ViewGroupName = string;\r\n\r\n /** The name for a view group. */\r\n export type ClassFullName = string;\r\n\r\n /** Determine if a string is an Id of an entry in a ViewStore (base-36 integer with a leading \"@\") */\r\n export const isViewStoreId = (id?: ViewIdString) => true === id?.startsWith(\"@\");\r\n\r\n /** Parameters for querying for views in a ViewStore. */\r\n export interface QueryParams {\r\n /** a list of classFullNames to accept. If not present, all classes are returned. */\r\n readonly classNames?: ClassFullName[];\r\n /** Optional \"LIMIT\" clause to limit the number of views returned. */\r\n readonly limit?: number;\r\n /** Optional \"OFFSET\" clause. Only valid if Limit is also present. */\r\n readonly offset?: number;\r\n /** A string to filter view names. May include wildcards if the `nameCompare` uses LIKE or GLOB (see SQLite documentation for LIKE and GLOB). */\r\n readonly nameSearch?: string;\r\n /** The comparison operator for `nameSearch`. Default is `=` */\r\n readonly nameCompare?: \"GLOB\" | \"LIKE\" | \"NOT GLOB\" | \"NOT LIKE\" | \"=\" | \"<\" | \">\";\r\n /* the Id of the view group to query. If not present, the root group is used. There is no way to query for views from multiple view groups in one request. */\r\n readonly group?: IdString;\r\n /** A list of tags to filter views. If present, only views that have one or more of the tags will be returned. */\r\n readonly tags?: TagName[];\r\n /* The name of an owner for private views. If present, private views owned by the owner will also be returned. Shared views are always returned. */\r\n readonly owner?: OwnerName;\r\n }\r\n\r\n /** Parameters for specifying a Query to select Categories or Models. */\r\n export interface SelectorQuery {\r\n /**\r\n * The full ClassName from which to select. If this SelectorQuery is for Categories, this must be or derive from \"BisCore:Category\".\r\n * If this SelectorQuery is for Models, this must be or derive from \"BisCore:Model\".\r\n */\r\n from: ClassFullName;\r\n /** If true, only return instances of `from`. Otherwise, return instances of `from` and any subclasses of `from`. */\r\n only?: boolean;\r\n /**\r\n * filter for query. If present, only instances of `from` that satisfy the filter will be returned.\r\n * If not supplied, all instances of `from` are returned.\r\n * @note\r\n * This value is used into the ECQuery:`SELECT ECInstanceId FROM ${query.from} WHERE ${query.where}`.\r\n */\r\n where?: string;\r\n /** List of Model or Category ids to add to the query results.\r\n * @note This is only valid if there is a `where` clause. Otherwise all instances of `from` will be returned so there is no value in adding ids.\r\n */\r\n adds?: Id64Array | CompressedId64Set;\r\n /** List of Model or Category Ids to remove from the query results. */\r\n removes?: Id64Array | CompressedId64Set;\r\n }\r\n\r\n /** A Model or Category selector may either be a query or a list of Ids. */\r\n export type SelectorProps = { query: SelectorQuery, ids?: never } | { query?: never, ids: Id64Array | CompressedId64Set };\r\n\r\n /** Information about a View in a ViewStore. */\r\n export interface ViewInfo {\r\n /** The Id of the view. */\r\n id: IdString;\r\n /** The name of the view. */\r\n name?: ViewName;\r\n /** The name of the owner of the view. */\r\n owner?: OwnerName;\r\n /** The className of the view. */\r\n className: ClassFullName;\r\n /** The Id of the view group containing the view. */\r\n groupId: IdString;\r\n /** If true, the view is private (unshared) and will only be returned by queries that specify the owner's name. */\r\n isPrivate: boolean;\r\n /** The Id of a ModelSelector, if the view has one. */\r\n modelSelectorId?: IdString;\r\n /** The Id of the CategorySelector for this view. */\r\n categorySelectorId: IdString;\r\n /** The Id of a DisplayStyle for the view. */\r\n displayStyleId: IdString;\r\n /** a list of tags for the view. */\r\n tags?: TagName[];\r\n }\r\n\r\n /** Information about a ViewGroup in a ViewStore. */\r\n export interface ViewGroupInfo {\r\n /** The Id of this view group. */\r\n id: IdString;\r\n /** The name of this view group. */\r\n name: ViewGroupName;\r\n /** The Id of the parent of this view group. If undefined, this is the root group. */\r\n parent?: IdString;\r\n /** The Id of the default view for this view group. */\r\n defaultView?: IdString;\r\n }\r\n\r\n /** Arguments for adding a new view to a ViewStore. */\r\n export interface AddViewArgs {\r\n /** the properties of the ViewDefinition for the new view. */\r\n readonly viewDefinition: ViewDefinitionProps;\r\n\r\n /**\r\n * The properties of a category selector for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.categorySelector.id` is **not** a valid `IdString`.\r\n * In that case, a new category selector will be created with these properties and its Id will be used.\r\n * Otherwise, the categorySelector from the ViewDefinition is used. If it does not represent a valid category\r\n * selector, an error is thrown.\r\n */\r\n readonly categorySelectorProps?: CategorySelectorProps;\r\n\r\n /** The properties of a model selector for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.modelSelector.id` is **not** a valid `IdString`.\r\n * In that case, a new model selector will be created with these properties and its Id will be used.\r\n * Otherwise, the modelSelector from the ViewDefinition is used. If it does not represent a valid model selector,\r\n * an error is thrown.\r\n */\r\n readonly modelSelectorProps?: ModelSelectorProps;\r\n\r\n /** The properties of a display style for the new view.\r\n * @note This value is only used, and should only be present if `viewDefinition.displayStyle.id` is **not** a valid `IdString`.\r\n * In that case, a new display style will be created with these properties and its Id will be used.\r\n * Otherwise, the displayStyle from the ViewDefinition is used. If it does not represent a valid display style, an\r\n * error is thrown.\r\n */\r\n readonly displayStyleProps?: DisplayStyleProps;\r\n\r\n /* the owner of the view. Must be present if isPrivate is true. */\r\n readonly owner?: OwnerName;\r\n\r\n /* the Id of the view group for the view. If not present, the view is added to the root group. */\r\n readonly group?: IdString;\r\n\r\n /* if true, the view is private (unshared). */\r\n readonly isPrivate?: boolean;\r\n\r\n /* an optional list of tags for the view. */\r\n readonly tags?: TagName[];\r\n\r\n /** optional thumbnail for the view. */\r\n readonly thumbnail?: ThumbnailProps;\r\n }\r\n\r\n /** Argument for finding a category selector, model selector, display style, or timeline by name or Id. */\r\n export type NameOrId = { name: string, id?: never } | { id: IdString, name?: never };\r\n\r\n /** Bindings for parameterized values in where clause of SelectorQuery\r\n * @see[[ECSqlStatement.bindValues]]\r\n */\r\n export interface QueryBindings {\r\n bindings?: any[] | object;\r\n }\r\n\r\n /**\r\n * Methods for reading from a ViewStore via Rpc from a frontend via `IModelConnection.views.viewsStoreReader`. These\r\n * methods use the *current* ViewStore for the iModel, and attempt to load the default ViewStore if no ViewStore is\r\n * currently loaded. They will throw exceptions if the request cannot be fulfilled.\r\n * @note The user's accessToken is validated against the ViewStore for every request. For each of these methods, the\r\n * user only needs read permission to the ViewStore.\r\n */\r\n export interface Reader {\r\n /** Find all views owned by the supplied owner name. */\r\n findViewsByOwner(args: { owner: OwnerName }): Promise<ViewInfo[]>;\r\n\r\n /** Get a category selector by Id. Throws if it does not exist. */\r\n getCategorySelector(args: NameOrId & QueryBindings): Promise<CategorySelectorProps>;\r\n\r\n /** Get a display style by Id. Throws if it does not exist. */\r\n getDisplayStyle(args: NameOrId & { opts?: DisplayStyleLoadProps }): Promise<DisplayStyleProps>;\r\n\r\n /** Get a model selector by Id. Throws if it does not exist. */\r\n getModelSelector(args: NameOrId & QueryBindings): Promise<ModelSelectorProps>;\r\n\r\n /** Get a thumbnail for a view. */\r\n getThumbnail(args: { viewId: IdString }): Promise<ThumbnailProps | undefined>;\r\n\r\n /** Get a render timeline by Id. Throws if it does not exist. */\r\n getTimeline(args: NameOrId): Promise<RenderTimelineProps>;\r\n\r\n /** Get a view by name. The name can include the *view group path*, if no `groupId` is supplied. */\r\n getViewByName(arg: { name: ViewName, groupId?: IdString }): Promise<ViewInfo | undefined>;\r\n\r\n /** Get a view definition by viewId. Throws if it does not exist. */\r\n getViewDefinition(args: { viewId: IdString }): Promise<ViewDefinitionProps>;\r\n\r\n /** get the properties of a ViewGroup by id. This will include the defaultViewId, if one exists. */\r\n getViewGroupInfo(args: { groupId?: IdString }): Promise<ViewGroupInfo | undefined>;\r\n\r\n /** Get a list of ViewGroups that are children of the supplied parent. If no parent is supplied, the root group is used.\r\n * Each entry in the list includes the id and name of the ViewGroup.\r\n */\r\n getViewGroups(args: { parent?: ViewGroupSpec }): Promise<{ id: IdString, name: string }[]>;\r\n\r\n /** Get the ViewInfo for a view by Id. Returns undefined if the view does not exist. */\r\n getViewInfo(args: { viewId: IdString }): Promise<ViewInfo | undefined>;\r\n\r\n /** Query for a list of ViewInfos for views that match the supplied [[QueryParams]].\r\n * @note The array will be sorted by name, ascending. To limit the size of the array, supply `limit` and `offset` in the QueryParams.\r\n */\r\n queryViews(queryParams: QueryParams): Promise<ViewInfo[]>;\r\n }\r\n\r\n /**\r\n * Methods for writing to a ViewStore via Rpc from a frontend via `IModelConnection.views.viewsStoreWriter`. These\r\n * methods use the *current* ViewStore for the iModel, and attempt to load the default ViewStore if no ViewStore is\r\n * currently loaded. They will throw exceptions if the request cannot be fulfilled.\r\n * @note The user's accessToken is validated against the ViewStore for every request. For each of these methods, the\r\n * user must have write permission to the ViewStore.\r\n */\r\n export interface Writer {\r\n /**\r\n * Add a category selector to a ViewStore.\r\n * @returns The IdString of the new category selector.\r\n */\r\n addCategorySelector(args: { name?: string, selector: SelectorProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Add a display style to a ViewStore.\r\n * @returns The IdString of the new display style.\r\n */\r\n addDisplayStyle(args: { name?: string, className: string, settings: DisplayStyleSettingsProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /**\r\n * Add a model selector to a ViewStore.\r\n * @returns The IdString of the new model selector.\r\n */\r\n addModelSelector(args: { name?: string, selector: SelectorProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /**\r\n * Add a thumbnail for a view. If the view already has a thumbnail, it is replaced.\r\n * If a view is deleted, its thumbnail is also deleted.\r\n * @note The thumbnail must be a valid image in PNG or JPEG format.\r\n */\r\n addOrReplaceThumbnail(args: { viewId: IdString, thumbnail: ThumbnailProps }): Promise<void>;\r\n\r\n /** Add tags to a view. If the view already has tags, the new tags are appended to the existing tags. */\r\n addTagsToView(args: { viewId: IdString, tags: TagName[] }): Promise<void>;\r\n\r\n /** Add a render timeline to a ViewStore.\r\n * @returns The IdString of the new timeline.\r\n */\r\n addTimeline(args: { name?: string, timeline: RenderSchedule.ScriptProps, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Add a view to a ViewStore. If no group is supplied, the new view is added to the root view group.\r\n * @returns The IdString of the new view\r\n */\r\n addView(args: AddViewArgs): Promise<IdString>;\r\n\r\n /** Add a view group to a ViewStore. If no parent is supplied, the new group is added to the root view group.\r\n * @returns the IdString of new view group\r\n */\r\n addViewGroup(args: { name: string, parentId?: IdString, owner?: OwnerName }): Promise<IdString>;\r\n\r\n /** Change the default view for a view group. If no group is supplied, this changes the default view for the root view group. */\r\n changeDefaultViewId(args: { defaultView: IdString, group?: ViewGroupSpec }): Promise<void>;\r\n\r\n /** Delete the thumbnail for a view. */\r\n deleteThumbnail(args: { viewId: IdString }): Promise<void>;\r\n\r\n /**\r\n * Delete a view from a ViewStore. If this is the default view for a view group, it cannot be deleted until another\r\n * view is set as the default.\r\n * @note If this view references a category selector, model selector, or display style that is not referenced by any\r\n * other view, *and do not have a name*, they will each also be deleted. If the view has a thumbnail, it is also\r\n * deleted.\r\n */\r\n deleteView(args: { viewId: IdString }): Promise<void>;\r\n\r\n /** Delete a view group from a ViewStore. This will also delete all views in the group. */\r\n deleteViewGroup(args: { name: ViewGroupSpec }): Promise<void>;\r\n\r\n /** Delete a display style from a ViewStore. If the display style is referenced by any view, it cannot be deleted\r\n * and an exception will be thrown.\r\n */\r\n deleteDisplayStyle(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a model selector from a ViewStore. If the model selector is referenced by any view, it cannot be deleted\r\n * and an exception will be thrown. */\r\n deleteModelSelector(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a category selector from a ViewStore. If the category selector is referenced by any view, it cannot be\r\n * deleted and an exception will be thrown.\r\n */\r\n deleteCategorySelector(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a render timeline from a ViewStore. */\r\n deleteTimeline(args: { id: IdString }): Promise<void>;\r\n\r\n /** Delete a tag. This removes it from all views where it was used. */\r\n deleteTag(args: { name: TagName }): Promise<void>;\r\n\r\n /** remove a tag from a view. */\r\n removeTagFromView(args: { viewId: IdString, tag: TagName }): Promise<void>;\r\n\r\n /** Update the properties of a category selector. */\r\n updateCategorySelector(args: NameOrId & { selector: SelectorProps }): Promise<void>;\r\n\r\n /** Update the properties of a display style. */\r\n updateDisplayStyle(args: NameOrId & { className: string, settings: DisplayStyleSettingsProps }): Promise<void>;\r\n\r\n /** Update the properties of a model selector. */\r\n updateModelSelector(args: NameOrId & { selector: SelectorProps }): Promise<void>;\r\n\r\n /** Update the properties of a render timeline. */\r\n updateTimeline(args: NameOrId & { timeline: RenderSchedule.ScriptProps }): Promise<void>;\r\n\r\n /** Update the properties of a view definition. */\r\n updateViewDefinition(args: { viewId: IdString, viewDefinition: ViewDefinitionProps }): Promise<void>;\r\n\r\n /** Change a view from shared to private, or vice versa. If changing to private, the owner must be supplied. */\r\n updateViewShared(arg: { viewId: IdString, isShared: boolean, owner?: string }): Promise<void>;\r\n\r\n /** Set the name of a category selector. */\r\n renameCategorySelector(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a display style. */\r\n renameDisplayStyle(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a model selector. */\r\n renameModelSelector(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a render timeline. */\r\n renameTimeline(args: { id: IdString, name?: string }): Promise<void>;\r\n\r\n /** Set the name of a view. */\r\n renameView(args: { viewId: IdString, name: string }): Promise<void>;\r\n\r\n /** Set the name of a view group. */\r\n renameViewGroup(args: { groupId: IdString, name: string }): Promise<void>;\r\n\r\n /** rename an existing tag. */\r\n renameTag(args: { oldName: TagName, newName: TagName }): Promise<void>;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileIO.js","sourceRoot":"","sources":["../../../src/tile/TileIO.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAsBH,8CAcC;AAKD,oDAGC;AAsED,kEAUC;AA1HD,sDAA+D;AAC/D,wDAA+C;AAE/C;;GAEG;AACH,IAAY,UASX;AATD,WAAY,UAAU;IACpB,iDAAW,CAAA;IACX,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,wDAAmB,CAAA;IACnB,oDAAiB,CAAA;IACjB,oDAAiB,CAAA;IACjB,+CAAc,CAAA;AAChB,CAAC,EATW,UAAU,0BAAV,UAAU,QASrB;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC,OAAO,CAAC;QACxB,KAAK,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,UAAU,CAAC,MAAM,CAAC;QACvB,KAAK,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,UAAU,CAAC,IAAI,CAAC;QACrB,KAAK,UAAU,CAAC,GAAG;YACjB,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,YAAoB;IACvD,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"TileIO.js","sourceRoot":"","sources":["../../../src/tile/TileIO.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 Tile\r\n */\r\n\r\nimport { BentleyError, ByteStream } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\n\r\n/** Type codes for various tile formats. Often these are embedded as 32-bit 'magic numbers' in a binary stream to indicate the format.\r\n * @internal\r\n */\r\nexport enum TileFormat {\r\n Unknown = 0,\r\n B3dm = 0x6d643362, // \"b3dm\"\r\n Gltf = 0x46546c67, // \"glTF\"\r\n Pnts = 0x73746e70, // \"pnts\"\r\n IModel = 0x6c644d69, // \"iMdl\"\r\n Cmpt = 0x74706d63, // cmpt\r\n I3dm = 0x6d643369, // i3dm\r\n A3x = 0x583341, // A3X0 (numeric 0 not char '0')\r\n}\r\n\r\n/** Given a magic number, return whether it identifies a known tile format.\r\n * @internal\r\n */\r\nexport function isKnownTileFormat(format: number) {\r\n switch (format) {\r\n case TileFormat.Unknown:\r\n case TileFormat.B3dm:\r\n case TileFormat.Gltf:\r\n case TileFormat.IModel:\r\n case TileFormat.Pnts:\r\n case TileFormat.Cmpt:\r\n case TileFormat.I3dm:\r\n case TileFormat.A3x:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a magic number, attempt to convert it to a known TileFormat.\r\n * @internal\r\n */\r\nexport function tileFormatFromNumber(formatNumber: number): TileFormat {\r\n const format = formatNumber;\r\n return isKnownTileFormat(format) ? format : TileFormat.Unknown;\r\n}\r\n\r\n/** Status codes for tile reading operations\r\n * @internal\r\n */\r\nexport enum TileReadStatus {\r\n Success = 0,\r\n InvalidTileData,\r\n InvalidHeader,\r\n InvalidBatchTable,\r\n InvalidScene,\r\n InvalidFeatureTable,\r\n NewerMajorVersion,\r\n Canceled,\r\n}\r\n\r\nconst readStatusMessages = [\r\n \"Success\",\r\n \"Invalid tile data\",\r\n \"Invalid tile header\",\r\n \"Invalid batch table\",\r\n \"Invalid scene\",\r\n \"Invalid feature table\",\r\n \"Major version too new\",\r\n \"Canceled\",\r\n];\r\n\r\n/** Exception thrown by functions that deserialize tiles.\r\n * @internal\r\n */\r\nexport class TileReadError extends BentleyError {\r\n public constructor(status: TileReadStatus, message?: string) {\r\n if (undefined === message)\r\n message = readStatusMessages[status];\r\n\r\n super(status, message);\r\n }\r\n\r\n public get wasCanceled(): boolean { return TileReadStatus.Canceled === this.errorNumber; }\r\n}\r\n\r\n/** The base header preceding tile data of most formats, identifying the tile format and version of that format.\r\n * Specific tile formats may define their own headers as sub-types of this Header, appending\r\n * additional format-specific data.\r\n * @internal\r\n */\r\nexport abstract class TileHeader {\r\n private _format: TileFormat;\r\n public version: number;\r\n\r\n /** Construct a Header from the binary data at the supplied stream's current read position */\r\n public constructor(stream: ByteStream) {\r\n this._format = tileFormatFromNumber(stream.readUint32());\r\n this.version = stream.readUint32();\r\n }\r\n\r\n public get format(): TileFormat { return this._format; }\r\n\r\n /** Returns whether the header represents valid data */\r\n public abstract get isValid(): boolean;\r\n\r\n /** Mark the header as representing invalid data */\r\n protected invalidate(): void {\r\n this._format = TileFormat.Unknown;\r\n }\r\n}\r\n\r\n/** Read 3 64-bit floating point numbers at the byte stream's current read position, advance by 24 bytes, and return a Point3d constructed from the 3 numbers.\r\n * @internal\r\n */\r\nexport function nextPoint3d64FromByteStream(stream: ByteStream, result?: Point3d): Point3d {\r\n const x = stream.readFloat64(),\r\n y = stream.readFloat64(),\r\n z = stream.readFloat64();\r\n\r\n if (undefined === result)\r\n return new Point3d(x, y, z);\r\n\r\n result.set(x, y, z);\r\n return result;\r\n}\r\n"]}
|
|
@@ -45,7 +45,7 @@ export declare enum SyncMode {
|
|
|
45
45
|
FixedVersion = 1,
|
|
46
46
|
/** A briefcase that can be edited. A unique briefcaseId must be assigned by iModelHub. */
|
|
47
47
|
PullAndPush = 2,
|
|
48
|
-
/** use [BriefcaseIdValue.Unassigned]
|
|
48
|
+
/** use [[BriefcaseIdValue.Unassigned]]. This makes a briefcase that can accept changesets from iModelHub but can never create changesets. */
|
|
49
49
|
PullOnly = 3
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BriefcaseTypes.d.ts","sourceRoot":"","sources":["../../src/BriefcaseTypes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,oBAAY,gBAAgB;IAC1B,+CAA+C;IAC/C,OAAO,aAAa;IAEpB,gDAAgD;IAChD,GAAG,WAAU;IAEb,gFAAgF;IAChF,UAAU,IAAI;IAEd,+EAA+E;IAC/E,SAAS,WAA4B;IAErC;;;;;;;;;;OAUG;IACH,UAAU,IAAI;CACf;AAED;;;GAGG;AACH,oBAAY,QAAQ;IAClB,mIAAmI;IACnI,YAAY,IAAI;IAChB,0FAA0F;IAC1F,WAAW,IAAI;IACf,
|
|
1
|
+
{"version":3,"file":"BriefcaseTypes.d.ts","sourceRoot":"","sources":["../../src/BriefcaseTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export var SyncMode;
|
|
|
42
42
|
SyncMode[SyncMode["FixedVersion"] = 1] = "FixedVersion";
|
|
43
43
|
/** A briefcase that can be edited. A unique briefcaseId must be assigned by iModelHub. */
|
|
44
44
|
SyncMode[SyncMode["PullAndPush"] = 2] = "PullAndPush";
|
|
45
|
-
/** use [BriefcaseIdValue.Unassigned]
|
|
45
|
+
/** use [[BriefcaseIdValue.Unassigned]]. This makes a briefcase that can accept changesets from iModelHub but can never create changesets. */
|
|
46
46
|
SyncMode[SyncMode["PullOnly"] = 3] = "PullOnly";
|
|
47
47
|
})(SyncMode || (SyncMode = {}));
|
|
48
48
|
/** Option to control the validation and upgrade of domain schemas in the Db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BriefcaseTypes.js","sourceRoot":"","sources":["../../src/BriefcaseTypes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAaH;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAyBX;AAzBD,WAAY,gBAAgB;IAC1B,+CAA+C;IAC/C,sEAAoB,CAAA;IAEpB,gDAAgD;IAChD,4DAAa,CAAA;IAEb,gFAAgF;IAChF,mEAAc,CAAA;IAEd,+EAA+E;IAC/E,wEAAqC,CAAA;IAErC;;;;;;;;;;OAUG;IACH,mEAAc,CAAA;AAChB,CAAC,EAzBW,gBAAgB,KAAhB,gBAAgB,QAyB3B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,mIAAmI;IACnI,uDAAgB,CAAA;IAChB,0FAA0F;IAC1F,qDAAe,CAAA;IACf,qJAAqJ;IACrJ,+CAAY,CAAA;AACd,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AA2ID;;GAEG;AACH,MAAM,CAAN,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,qJAAqJ;IACrJ,mFAAyB,CAAA;IAEzB,iKAAiK;IACjK,yFAA4B,CAAA;IAE5B,sMAAsM;IACtM,uDAAW,CAAA;IAEX,qFAAqF;IACrF,2DAAa,CAAA;AACf,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,0GAA0G;IAC1G,mDAAQ,CAAA;IAER,qDAAqD;IACrD,yDAAW,CAAA;AACb,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAgBD;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACrB,sIAAsI;IACtI,qDAAQ,CAAA;IAER;;;OAGG;IACH,mEAAe,CAAA;IAEf,4IAA4I;IAC5I,yEAAkB,CAAA;IAElB,oIAAoI;IACpI,iDAAM,CAAA;IAEN,4FAA4F;IAC5F,iDAAM,CAAA;AACR,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB","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 iModels\r\n */\r\n\r\nimport { GuidString } from \"@itwin/core-bentley\";\r\nimport { ChangesetIdWithIndex, ChangesetIndexOrId, LocalFileName } from \"./ChangesetProps\";\r\nimport { OpenDbKey } from \"./IModel\";\r\nimport { IModelVersionProps } from \"./IModelVersion\";\r\n\r\n/** The Id assigned to a briefcase by iModelHub, or [[BriefcaseIdValue.Unassigned]] .\r\n * @public\r\n * @extensions\r\n */\r\nexport type BriefcaseId = number;\r\n\r\n/** Values of [[BriefcaseId]] that have special meaning.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum BriefcaseIdValue {\r\n /** Indicates an invalid/illegal BriefcaseId */\r\n Illegal = 0xffffffff,\r\n\r\n /** BriefcaseIds must be less than this value */\r\n Max = 1 << 24,\r\n\r\n /** All valid iModelHub issued BriefcaseIds will be equal or higher than this */\r\n FirstValid = 2,\r\n\r\n /** All valid iModelHub issued BriefcaseIds will be equal or lower than this */\r\n LastValid = BriefcaseIdValue.Max - 11,\r\n\r\n /**\r\n * The briefcase has not been assigned a unique Id by iModelHub. Only briefcases that have been assigned a unique BriefcaseId may create changesets,\r\n * because BriefcaseId is used to create unique ElementIds for new elements.\r\n *\r\n * The `Unassigned` briefcaseId is used for several purposes:\r\n * - **Snapshots**. Snapshot files are immutable copies of an iModel for archival or data exchange purposes. They can neither generate nor accept new changesets.\r\n * - **Checkpoints**. Checkpoints are Snapshots that represent a specific version on an iModel's timeline.\r\n * - **PullOnly**. A local briefcase file that may be used to \"slide\" along a timeline by applying incoming changesets.\r\n * They are always opened readonly except to apply changesets.\r\n * - **Standalone**. Standalone iModels are local files that are not connected to iModelHub, and therefore cannot accept or create changesets.\r\n */\r\n Unassigned = 0,\r\n}\r\n\r\n/** Whether a briefcase is editable or may only accept incoming changesets from iModelHub\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SyncMode {\r\n /** Use a fixed version (i.e. a checkpoint). See [CheckpointManager]($backend) for preferred approach to using checkpoint files. */\r\n FixedVersion = 1,\r\n /** A briefcase that can be edited. A unique briefcaseId must be assigned by iModelHub. */\r\n PullAndPush = 2,\r\n /** use [BriefcaseIdValue.Unassigned](%backend). This makes a briefcase that can accept changesets from iModelHub but can never create changesets. */\r\n PullOnly = 3,\r\n}\r\n\r\n/**\r\n * Options to open a previously downloaded briefcase\r\n * @public\r\n */\r\nexport interface OpenBriefcaseOptions {\r\n /** open briefcase Readonly */\r\n readonly openAsReadOnly?: boolean;\r\n}\r\n\r\n/**\r\n * Properties that specify a briefcase within the local briefcase cache.\r\n * @see BriefcaseManager.getFileName\r\n * @public\r\n */\r\nexport interface BriefcaseProps {\r\n /** Id of the iModel */\r\n readonly iModelId: GuidString;\r\n\r\n /** BriefcaseId of the briefcase */\r\n readonly briefcaseId: BriefcaseId;\r\n}\r\n\r\n/** Properties for opening a local briefcase file via [BriefcaseDb.open]($backend)\r\n * @public\r\n */\r\nexport interface OpenBriefcaseProps extends OpenDbKey {\r\n /** the full path to the briefcase file */\r\n readonly fileName: LocalFileName;\r\n /**\r\n * If true, open the briefcase readonly.\r\n * @note Readonly connections always hold a read transaction against the briefcase. That can cause the WAL file size to grow\r\n * unbounded if changes happen while they're open (see [Checkpoint starvation](https://www.sqlite.org/wal.html#avoiding_excessively_large_wal_files))\r\n * It is a good idea to close the readonly connection *before* closing the writeable connection so the WAL file will be deleted.\r\n */\r\n readonly readonly?: boolean;\r\n /** If true, open the briefcase readonly and monitor it for changes originating from another connection.\r\n * When such changes are detected, the default txn will be restarted.\r\n * The restart occurs only after the next iteration of the backend event loop, and will generate events that reflect the changes from the other connection.\r\n * This can be useful in contexts where the read-only connection is displaying a view of the contents of the briefcase while another, non-interactive program\r\n * is adding txns to the briefcase. It may not be reliable if the writable connection is undoing or redoing txns.\r\n * @note This cannot be used with cloud-based briefcases.\r\n */\r\n readonly watchForChanges?: boolean;\r\n}\r\n\r\n/** Properties of a local briefcase file, returned by [BriefcaseManager.getCachedBriefcases]($backend) and [BriefcaseManager.downloadBriefcase]($backend)\r\n * @public\r\n * @extensions\r\n */\r\nexport interface LocalBriefcaseProps {\r\n /** Full path of local file. */\r\n readonly fileName: LocalFileName;\r\n\r\n /** The iTwin containing the iModel. */\r\n readonly iTwinId: GuidString;\r\n\r\n /** The iModelId. */\r\n readonly iModelId: GuidString;\r\n\r\n /** The briefcaseId. */\r\n readonly briefcaseId: BriefcaseId;\r\n\r\n /** The current changesetId.\r\n * @note ChangeSet Ids are string hash values based on the ChangeSet's content and parent.\r\n */\r\n readonly changeset: ChangesetIdWithIndex;\r\n\r\n /** Size of the briefcase file in bytes */\r\n readonly fileSize: number;\r\n}\r\n\r\n/** Properties for downloading a briefcase to a local file, from iModelHub.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface RequestNewBriefcaseProps {\r\n /** iTwin that the iModel belongs to. */\r\n readonly iTwinId: GuidString;\r\n\r\n /** The iModelId for the new briefcase. */\r\n readonly iModelId: GuidString;\r\n\r\n /** Full path of local file to store the briefcase. If undefined, a file will be created in the briefcase cache, and this member will be filled with the full path to the file.\r\n * Callers can use this to open the briefcase after the download completes.\r\n * @note this member is both an input and an output.\r\n */\r\n readonly fileName?: LocalFileName;\r\n\r\n /**\r\n * The BriefcaseId for the new briefcase. If undefined, a new BriefcaseId will be acquired from iModelHub before the download, and is returned in this member.\r\n * @note To download a briefcase that can accept but not create new changesets (sometimes referred to as \"pull only\" briefcases), set this value to [[BriefcaseIdValue.Unassigned]].\r\n * After downloading, you can merely delete unassigned briefcase files when they are no longer needed. Assigned BriefcaseIds should be released (via [BriefcaseManager.releaseBriefcase]($backend) )\r\n * when you are done with them.\r\n * @note this member is both an input and an output.\r\n *\r\n */\r\n briefcaseId?: BriefcaseId;\r\n\r\n /** Id of the change set of the new briefcase. If undefined, use latest. */\r\n asOf?: IModelVersionProps;\r\n\r\n /** A string to represent the device that holds the briefcase. */\r\n deviceName?: string;\r\n}\r\n\r\n/**\r\n * Arguments to open a Checkpoint directly from its cloud container\r\n * @beta\r\n */\r\nexport interface OpenCheckpointArgs {\r\n readonly iTwinId: GuidString;\r\n\r\n /** Id of the iModel */\r\n readonly iModelId: GuidString;\r\n\r\n /** changeset for the checkpoint. If undefined, attempt to open the checkpoint for the latest changeset. */\r\n readonly changeset?: ChangesetIndexOrId;\r\n}\r\n\r\n/**\r\n * Manages the download of a briefcase\r\n * @public\r\n */\r\nexport interface BriefcaseDownloader {\r\n /** Id of the briefcase being downloaded */\r\n readonly briefcaseId: BriefcaseId;\r\n\r\n /** the name of the local file for the briefcase */\r\n readonly fileName: LocalFileName;\r\n\r\n /** Promise that resolves when the download completes. await this to complete the download */\r\n readonly downloadPromise: Promise<void>;\r\n\r\n /** Request cancellation of the download */\r\n readonly requestCancel: () => Promise<boolean>;\r\n}\r\n\r\n/** Option to control the validation and upgrade of domain schemas in the Db\r\n * @beta\r\n */\r\nexport enum DomainOptions {\r\n /** Domain schemas will be validated for any required upgrades. Any errors will be reported back, and cause the application to fail opening the Db */\r\n CheckRequiredUpgrades = 0,\r\n\r\n /** Domain schemas will be validated for any required or optional upgrades. Any errors will be reported back, and cause the application to fail opening the Db */\r\n CheckRecommendedUpgrades = 1,\r\n\r\n /** Domain schemas will be upgraded if necessary. However, only compatible schema upgrades will be allowed - these are typically additions of classes, properties, and changes to custom attributes */\r\n Upgrade = 2,\r\n\r\n /** Domain schemas will neither be validated nor be upgraded. Used only internally */\r\n SkipCheck = 3,\r\n}\r\n\r\n/** Options that control whether a profile upgrade should be performed when opening a Db\r\n * @beta\r\n */\r\nexport enum ProfileOptions {\r\n /** No profile upgrade will be performed. If a profile upgrade was required, opening the file will fail */\r\n None = 0,\r\n\r\n /** Profile upgrade will be performed if necessary */\r\n Upgrade = 1,\r\n}\r\n\r\n/** Arguments to validate and update the profile and domain schemas when opening a Db\r\n * @beta\r\n */\r\nexport interface UpgradeOptions {\r\n /** Option to control the validation and upgrade of domain schemas in the Db */\r\n readonly domain?: DomainOptions;\r\n\r\n /** Options that control whether a profile upgrade should be performed when opening a file */\r\n readonly profile?: ProfileOptions;\r\n\r\n /** Options that will allow data transform during Profile/Domain schema upgrade */\r\n readonly schemaLockHeld?: boolean;\r\n}\r\n\r\n/**\r\n * The state of the schemas in the Db compared with what the current version of the software expects\r\n * Note: The state may vary depending on whether the Db is to be opened ReadOnly or ReadWrite.\r\n * @public\r\n */\r\nexport enum SchemaState {\r\n /** The schemas in the Db are up-to-date, and do not need to be upgraded before opening it with the current version of the software */\r\n UpToDate,\r\n\r\n /** It's required that the schemas in the Db be upgraded before it can be opened with the current version of the software.\r\n * This may happen in read-write scenarios where the application requires a newer version of the schemas to be in place before\r\n * it can write data based on that new schema.\r\n */\r\n UpgradeRequired,\r\n\r\n /** It's recommended, but not necessary that the schemas in the Db be upgraded before opening it with the current version of the software */\r\n UpgradeRecommended,\r\n\r\n /** The schemas in the Db are too old to be opened by the current version of the software. Upgrade using the API is not possible. */\r\n TooOld,\r\n\r\n /** The schemas in the Db are too new to be opened by the current version of the software */\r\n TooNew,\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"BriefcaseTypes.js","sourceRoot":"","sources":["../../src/BriefcaseTypes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAaH;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAyBX;AAzBD,WAAY,gBAAgB;IAC1B,+CAA+C;IAC/C,sEAAoB,CAAA;IAEpB,gDAAgD;IAChD,4DAAa,CAAA;IAEb,gFAAgF;IAChF,mEAAc,CAAA;IAEd,+EAA+E;IAC/E,wEAAqC,CAAA;IAErC;;;;;;;;;;OAUG;IACH,mEAAc,CAAA;AAChB,CAAC,EAzBW,gBAAgB,KAAhB,gBAAgB,QAyB3B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,mIAAmI;IACnI,uDAAgB,CAAA;IAChB,0FAA0F;IAC1F,qDAAe,CAAA;IACf,6IAA6I;IAC7I,+CAAY,CAAA;AACd,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB;AA2ID;;GAEG;AACH,MAAM,CAAN,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,qJAAqJ;IACrJ,mFAAyB,CAAA;IAEzB,iKAAiK;IACjK,yFAA4B,CAAA;IAE5B,sMAAsM;IACtM,uDAAW,CAAA;IAEX,qFAAqF;IACrF,2DAAa,CAAA;AACf,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,0GAA0G;IAC1G,mDAAQ,CAAA;IAER,qDAAqD;IACrD,yDAAW,CAAA;AACb,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAgBD;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACrB,sIAAsI;IACtI,qDAAQ,CAAA;IAER;;;OAGG;IACH,mEAAe,CAAA;IAEf,4IAA4I;IAC5I,yEAAkB,CAAA;IAElB,oIAAoI;IACpI,iDAAM,CAAA;IAEN,4FAA4F;IAC5F,iDAAM,CAAA;AACR,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB","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 iModels\r\n */\r\n\r\nimport { GuidString } from \"@itwin/core-bentley\";\r\nimport { ChangesetIdWithIndex, ChangesetIndexOrId, LocalFileName } from \"./ChangesetProps\";\r\nimport { OpenDbKey } from \"./IModel\";\r\nimport { IModelVersionProps } from \"./IModelVersion\";\r\n\r\n/** The Id assigned to a briefcase by iModelHub, or [[BriefcaseIdValue.Unassigned]] .\r\n * @public\r\n * @extensions\r\n */\r\nexport type BriefcaseId = number;\r\n\r\n/** Values of [[BriefcaseId]] that have special meaning.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum BriefcaseIdValue {\r\n /** Indicates an invalid/illegal BriefcaseId */\r\n Illegal = 0xffffffff,\r\n\r\n /** BriefcaseIds must be less than this value */\r\n Max = 1 << 24,\r\n\r\n /** All valid iModelHub issued BriefcaseIds will be equal or higher than this */\r\n FirstValid = 2,\r\n\r\n /** All valid iModelHub issued BriefcaseIds will be equal or lower than this */\r\n LastValid = BriefcaseIdValue.Max - 11,\r\n\r\n /**\r\n * The briefcase has not been assigned a unique Id by iModelHub. Only briefcases that have been assigned a unique BriefcaseId may create changesets,\r\n * because BriefcaseId is used to create unique ElementIds for new elements.\r\n *\r\n * The `Unassigned` briefcaseId is used for several purposes:\r\n * - **Snapshots**. Snapshot files are immutable copies of an iModel for archival or data exchange purposes. They can neither generate nor accept new changesets.\r\n * - **Checkpoints**. Checkpoints are Snapshots that represent a specific version on an iModel's timeline.\r\n * - **PullOnly**. A local briefcase file that may be used to \"slide\" along a timeline by applying incoming changesets.\r\n * They are always opened readonly except to apply changesets.\r\n * - **Standalone**. Standalone iModels are local files that are not connected to iModelHub, and therefore cannot accept or create changesets.\r\n */\r\n Unassigned = 0,\r\n}\r\n\r\n/** Whether a briefcase is editable or may only accept incoming changesets from iModelHub\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SyncMode {\r\n /** Use a fixed version (i.e. a checkpoint). See [CheckpointManager]($backend) for preferred approach to using checkpoint files. */\r\n FixedVersion = 1,\r\n /** A briefcase that can be edited. A unique briefcaseId must be assigned by iModelHub. */\r\n PullAndPush = 2,\r\n /** use [[BriefcaseIdValue.Unassigned]]. This makes a briefcase that can accept changesets from iModelHub but can never create changesets. */\r\n PullOnly = 3,\r\n}\r\n\r\n/**\r\n * Options to open a previously downloaded briefcase\r\n * @public\r\n */\r\nexport interface OpenBriefcaseOptions {\r\n /** open briefcase Readonly */\r\n readonly openAsReadOnly?: boolean;\r\n}\r\n\r\n/**\r\n * Properties that specify a briefcase within the local briefcase cache.\r\n * @see BriefcaseManager.getFileName\r\n * @public\r\n */\r\nexport interface BriefcaseProps {\r\n /** Id of the iModel */\r\n readonly iModelId: GuidString;\r\n\r\n /** BriefcaseId of the briefcase */\r\n readonly briefcaseId: BriefcaseId;\r\n}\r\n\r\n/** Properties for opening a local briefcase file via [BriefcaseDb.open]($backend)\r\n * @public\r\n */\r\nexport interface OpenBriefcaseProps extends OpenDbKey {\r\n /** the full path to the briefcase file */\r\n readonly fileName: LocalFileName;\r\n /**\r\n * If true, open the briefcase readonly.\r\n * @note Readonly connections always hold a read transaction against the briefcase. That can cause the WAL file size to grow\r\n * unbounded if changes happen while they're open (see [Checkpoint starvation](https://www.sqlite.org/wal.html#avoiding_excessively_large_wal_files))\r\n * It is a good idea to close the readonly connection *before* closing the writeable connection so the WAL file will be deleted.\r\n */\r\n readonly readonly?: boolean;\r\n /** If true, open the briefcase readonly and monitor it for changes originating from another connection.\r\n * When such changes are detected, the default txn will be restarted.\r\n * The restart occurs only after the next iteration of the backend event loop, and will generate events that reflect the changes from the other connection.\r\n * This can be useful in contexts where the read-only connection is displaying a view of the contents of the briefcase while another, non-interactive program\r\n * is adding txns to the briefcase. It may not be reliable if the writable connection is undoing or redoing txns.\r\n * @note This cannot be used with cloud-based briefcases.\r\n */\r\n readonly watchForChanges?: boolean;\r\n}\r\n\r\n/** Properties of a local briefcase file, returned by [BriefcaseManager.getCachedBriefcases]($backend) and [BriefcaseManager.downloadBriefcase]($backend)\r\n * @public\r\n * @extensions\r\n */\r\nexport interface LocalBriefcaseProps {\r\n /** Full path of local file. */\r\n readonly fileName: LocalFileName;\r\n\r\n /** The iTwin containing the iModel. */\r\n readonly iTwinId: GuidString;\r\n\r\n /** The iModelId. */\r\n readonly iModelId: GuidString;\r\n\r\n /** The briefcaseId. */\r\n readonly briefcaseId: BriefcaseId;\r\n\r\n /** The current changesetId.\r\n * @note ChangeSet Ids are string hash values based on the ChangeSet's content and parent.\r\n */\r\n readonly changeset: ChangesetIdWithIndex;\r\n\r\n /** Size of the briefcase file in bytes */\r\n readonly fileSize: number;\r\n}\r\n\r\n/** Properties for downloading a briefcase to a local file, from iModelHub.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface RequestNewBriefcaseProps {\r\n /** iTwin that the iModel belongs to. */\r\n readonly iTwinId: GuidString;\r\n\r\n /** The iModelId for the new briefcase. */\r\n readonly iModelId: GuidString;\r\n\r\n /** Full path of local file to store the briefcase. If undefined, a file will be created in the briefcase cache, and this member will be filled with the full path to the file.\r\n * Callers can use this to open the briefcase after the download completes.\r\n * @note this member is both an input and an output.\r\n */\r\n readonly fileName?: LocalFileName;\r\n\r\n /**\r\n * The BriefcaseId for the new briefcase. If undefined, a new BriefcaseId will be acquired from iModelHub before the download, and is returned in this member.\r\n * @note To download a briefcase that can accept but not create new changesets (sometimes referred to as \"pull only\" briefcases), set this value to [[BriefcaseIdValue.Unassigned]].\r\n * After downloading, you can merely delete unassigned briefcase files when they are no longer needed. Assigned BriefcaseIds should be released (via [BriefcaseManager.releaseBriefcase]($backend) )\r\n * when you are done with them.\r\n * @note this member is both an input and an output.\r\n *\r\n */\r\n briefcaseId?: BriefcaseId;\r\n\r\n /** Id of the change set of the new briefcase. If undefined, use latest. */\r\n asOf?: IModelVersionProps;\r\n\r\n /** A string to represent the device that holds the briefcase. */\r\n deviceName?: string;\r\n}\r\n\r\n/**\r\n * Arguments to open a Checkpoint directly from its cloud container\r\n * @beta\r\n */\r\nexport interface OpenCheckpointArgs {\r\n readonly iTwinId: GuidString;\r\n\r\n /** Id of the iModel */\r\n readonly iModelId: GuidString;\r\n\r\n /** changeset for the checkpoint. If undefined, attempt to open the checkpoint for the latest changeset. */\r\n readonly changeset?: ChangesetIndexOrId;\r\n}\r\n\r\n/**\r\n * Manages the download of a briefcase\r\n * @public\r\n */\r\nexport interface BriefcaseDownloader {\r\n /** Id of the briefcase being downloaded */\r\n readonly briefcaseId: BriefcaseId;\r\n\r\n /** the name of the local file for the briefcase */\r\n readonly fileName: LocalFileName;\r\n\r\n /** Promise that resolves when the download completes. await this to complete the download */\r\n readonly downloadPromise: Promise<void>;\r\n\r\n /** Request cancellation of the download */\r\n readonly requestCancel: () => Promise<boolean>;\r\n}\r\n\r\n/** Option to control the validation and upgrade of domain schemas in the Db\r\n * @beta\r\n */\r\nexport enum DomainOptions {\r\n /** Domain schemas will be validated for any required upgrades. Any errors will be reported back, and cause the application to fail opening the Db */\r\n CheckRequiredUpgrades = 0,\r\n\r\n /** Domain schemas will be validated for any required or optional upgrades. Any errors will be reported back, and cause the application to fail opening the Db */\r\n CheckRecommendedUpgrades = 1,\r\n\r\n /** Domain schemas will be upgraded if necessary. However, only compatible schema upgrades will be allowed - these are typically additions of classes, properties, and changes to custom attributes */\r\n Upgrade = 2,\r\n\r\n /** Domain schemas will neither be validated nor be upgraded. Used only internally */\r\n SkipCheck = 3,\r\n}\r\n\r\n/** Options that control whether a profile upgrade should be performed when opening a Db\r\n * @beta\r\n */\r\nexport enum ProfileOptions {\r\n /** No profile upgrade will be performed. If a profile upgrade was required, opening the file will fail */\r\n None = 0,\r\n\r\n /** Profile upgrade will be performed if necessary */\r\n Upgrade = 1,\r\n}\r\n\r\n/** Arguments to validate and update the profile and domain schemas when opening a Db\r\n * @beta\r\n */\r\nexport interface UpgradeOptions {\r\n /** Option to control the validation and upgrade of domain schemas in the Db */\r\n readonly domain?: DomainOptions;\r\n\r\n /** Options that control whether a profile upgrade should be performed when opening a file */\r\n readonly profile?: ProfileOptions;\r\n\r\n /** Options that will allow data transform during Profile/Domain schema upgrade */\r\n readonly schemaLockHeld?: boolean;\r\n}\r\n\r\n/**\r\n * The state of the schemas in the Db compared with what the current version of the software expects\r\n * Note: The state may vary depending on whether the Db is to be opened ReadOnly or ReadWrite.\r\n * @public\r\n */\r\nexport enum SchemaState {\r\n /** The schemas in the Db are up-to-date, and do not need to be upgraded before opening it with the current version of the software */\r\n UpToDate,\r\n\r\n /** It's required that the schemas in the Db be upgraded before it can be opened with the current version of the software.\r\n * This may happen in read-write scenarios where the application requires a newer version of the schemas to be in place before\r\n * it can write data based on that new schema.\r\n */\r\n UpgradeRequired,\r\n\r\n /** It's recommended, but not necessary that the schemas in the Db be upgraded before opening it with the current version of the software */\r\n UpgradeRecommended,\r\n\r\n /** The schemas in the Db are too old to be opened by the current version of the software. Upgrade using the API is not possible. */\r\n TooOld,\r\n\r\n /** The schemas in the Db are too new to be opened by the current version of the software */\r\n TooNew,\r\n}\r\n"]}
|
|
@@ -602,7 +602,7 @@ export class DbQueryError extends BentleyError {
|
|
|
602
602
|
this.request = request;
|
|
603
603
|
}
|
|
604
604
|
static throwIfError(response, request) {
|
|
605
|
-
if (response.status >= DbResponseStatus.Error) {
|
|
605
|
+
if (response.status >= (DbResponseStatus.Error)) {
|
|
606
606
|
throw new DbQueryError(response, request);
|
|
607
607
|
}
|
|
608
608
|
if (response.status === DbResponseStatus.Cancel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcurrentQuery.js","sourceRoot":"","sources":["../../src/ConcurrentQuery.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 iModels\r\n */\r\nimport { BentleyError, CompressedId64Set, DbResult, Id64, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { Base64 } from \"js-base64\";\r\n\r\n/**\r\n * Specifies the format of the rows returned by the `query` and `restartQuery` methods of\r\n * [IModelConnection]($frontend), [IModelDb]($backend), and [ECDb]($backend).\r\n *\r\n * @public\r\n * @extensions\r\n */\r\nexport enum QueryRowFormat {\r\n /** Each row is an object in which each non-null column value can be accessed by its name as defined in the ECSql.\r\n * Null values are omitted.\r\n */\r\n UseECSqlPropertyNames,\r\n /** Each row is an array of values accessed by an index corresponding to the property's position in the ECSql SELECT statement.\r\n * Null values are included if they are followed by a non-null column, but trailing null values at the end of the array are omitted.\r\n */\r\n UseECSqlPropertyIndexes,\r\n /** Each row is an object in which each non-null column value can be accessed by a [remapped property name]($docs/learning/ECSqlRowFormat.md).\r\n * This format is backwards-compatible with the format produced by iTwin.js 2.x. Null values are omitted.\r\n * @depreacted in 4.11. Switch to UseECSqlPropertyIndexes for best performance, and UseECSqlPropertyNames if you want a JSON object as the result.\r\n */\r\n UseJsPropertyNames,\r\n}\r\n\r\n/**\r\n * Specify limit or range of rows to return\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryLimit {\r\n /** Number of rows to return */\r\n count?: number;\r\n /** Offset from which to return rows */\r\n offset?: number;\r\n}\r\n\r\n/** @public */\r\nexport interface QueryPropertyMetaData {\r\n /** The class name is set to empty if the property is a generated one, otherwise, it is the name of the ECClass that the property is contained within. */\r\n className: string;\r\n /** Access string is the property's alias if the property is a generated one, otherwise it is the ECSQL property path. */\r\n accessString?: string;\r\n /** True if the property is a generated one. False, if the property directly refers to one of the classes in the FROM or JOIN clauses.\r\n * Note: Using a column alias always generates a property. So in the ECSQL <c>SELECT AssetID, Length * Breadth AS Area FROM myschema.Cubicle</c> the first column (AssetID) would not be a generated property, but the second (Area) would be.\r\n */\r\n generated: boolean;\r\n /** The index of the property value if the result is formatted as an array */\r\n index: number;\r\n /** The JSON name is the property's alias if the property is a generated one, otherwise, it is the ECSQL property path for the system property.\r\n * The JSON names are unique and _%d is added for duplicate property JSON names to make them unique.\r\n */\r\n jsonName: string;\r\n /** The name is the property's alias if the property is a generated one, otherwise, it is the name of the property. */\r\n name: string;\r\n /** If this property is a PrimitiveECProperty, extend type is the extended type name of this property, if it is not defined locally will be inherited from base property if one exists, otherwise extend type is set to an empty string.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use extendedType instead\r\n */\r\n extendType: string;\r\n /** If this property is a PrimitiveECProperty, extended type is the extended type name of this property, if it is not defined locally will be inherited from base property if one exists, otherwise extended type will be undefined. */\r\n extendedType?: string;\r\n /** The type name is set to 'navigation' if the property is a navigation property, otherwise, it is the type name for the property. */\r\n typeName: string;\r\n}\r\n\r\n/** @beta */\r\nexport interface DbRuntimeStats {\r\n /** In microseconds */\r\n cpuTime: number;\r\n /** In milliseconds */\r\n totalTime: number;\r\n /** In milliseconds */\r\n timeLimit: number;\r\n /** In bytes */\r\n memLimit: number;\r\n /** In bytes */\r\n memUsed: number;\r\n /** In milliseconds */\r\n prepareTime: number;\r\n}\r\n\r\n/**\r\n * Quota hint for the query.\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryQuota {\r\n /** Max time allowed in seconds. This is hint and may not be honoured but help in prioritize request */\r\n time?: number;\r\n /** Max memory allowed in bytes. This is hint and may not be honoured but help in prioritize request */\r\n memory?: number;\r\n}\r\n\r\n/**\r\n * Config for all request made to concurrent query engine.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface BaseReaderOptions {\r\n /** Determine priority of this query default to 0, used as hint and can be overriden by backend. */\r\n priority?: number;\r\n /** If specified cancel last query (if any) with same restart token and queue the new query */\r\n restartToken?: string;\r\n /** For editing apps this can be set to true and all query will run on primary connection\r\n * his may cause slow queries execution but the most recent data changes will be visitable via query\r\n */\r\n usePrimaryConn?: boolean;\r\n /** Restrict time or memory for query but use as hint and may be changed base on backend settings */\r\n quota?: QueryQuota;\r\n /**\r\n * @internal\r\n * Allow query to be be deferred by milliseconds specified. This parameter is ignore by default unless\r\n * concurrent query is configure to honour it.\r\n */\r\n delay?: number;\r\n}\r\n\r\n/**\r\n * ECSql query config\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryOptions extends BaseReaderOptions {\r\n /**\r\n * default to false. It abbreviate blobs to single bytes. This help cases where wildcard is\r\n * used in select clause. Use BlobReader api to read individual blob specially if its of large size.\r\n * */\r\n abbreviateBlobs?: boolean;\r\n /**\r\n * default to false. It will suppress error and will not log it. Useful in cases where we expect query\r\n * can fail.\r\n */\r\n suppressLogErrors?: boolean;\r\n /** This is used internally. If true it query will return meta data about query. */\r\n includeMetaData?: boolean;\r\n /** Limit range of rows returned by query*/\r\n limit?: QueryLimit;\r\n /**\r\n * Convert ECClassId, SourceECClassId, TargetECClassId and RelClassId to respective name.\r\n * When true, XXXXClassId property will be returned as className.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use ecsql function ec_classname to get class name instead.\r\n * */\r\n convertClassIdsToClassNames?: boolean;\r\n /**\r\n * Determine row format.\r\n */\r\n rowFormat?: QueryRowFormat;\r\n}\r\n\r\n/** @beta */\r\nexport type BlobRange = QueryLimit;\r\n\r\n/** @beta */\r\nexport interface BlobOptions extends BaseReaderOptions {\r\n range?: BlobRange;\r\n}\r\n\r\n/** @public */\r\nexport class QueryOptionsBuilder {\r\n public constructor(private _options: QueryOptions = {}) { }\r\n public getOptions(): QueryOptions { return this._options; }\r\n /**\r\n * @internal\r\n * Allow to set priority of query. Query will be inserted int queue base on priority value. This value will be ignored if concurrent query is configured with ignored priority is true.\r\n * @param val integer value which can be negative as well. By default its zero.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setPriority(val: number) {\r\n this._options.priority = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set restart token. If restart token is set then any other query(s) in queue with same token is cancelled if its not already executed.\r\n * @param val A string token identifying a use case in which previous query with same token is cancelled.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setRestartToken(val: string) {\r\n this._options.restartToken = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set quota restriction for query. Its a hint and may be overriden or ignored by concurrent query manager.\r\n * @param val @type QueryQuota Specify time and memory that can be used by a query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setQuota(val: QueryQuota) {\r\n this._options.quota = val;\r\n return this;\r\n }\r\n /**\r\n * Force a query to be executed synchronously against primary connection. This option is ignored if provided by frontend.\r\n * @param val A boolean value to force use primary connection on main thread to execute query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setUsePrimaryConnection(val: boolean) {\r\n this._options.usePrimaryConn = val;\r\n return this;\r\n }\r\n /**\r\n * By default all blobs are abbreviated to save memory and network bandwidth. If set to false, all blob data will be returned by query as is.\r\n * Use @type BlobReader to access blob data more efficiently.\r\n * @param val A boolean value, if set to false will return complete blob type property data. This could cost time and network bandwidth.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setAbbreviateBlobs(val: boolean) {\r\n this._options.abbreviateBlobs = val;\r\n return this;\r\n }\r\n /**\r\n * When query fail to prepare it will log error. This setting will suppress log errors in case where query come from user typing it and its expected to fail often.\r\n * @param val A boolean value, if set to true, any error logging will be suppressed.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setSuppressLogErrors(val: boolean) {\r\n this._options.suppressLogErrors = val;\r\n return this;\r\n }\r\n /**\r\n * If set ECClassId, SourceECClassId and TargetECClassId system properties will return qualified name of class instead of a @typedef Id64String.\r\n * @param val A boolean value.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use ecsql function ec_classname to get class name instead.\r\n */\r\n public setConvertClassIdsToNames(val: boolean) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n this._options.convertClassIdsToClassNames = val;\r\n return this;\r\n }\r\n /**\r\n * Specify limit for query. Limit determine number of rows and offset in result-set.\r\n * @param val Specify count and offset from within the result-set of a ECSQL query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setLimit(val: QueryLimit) {\r\n this._options.limit = val;\r\n return this;\r\n }\r\n /**\r\n * Specify row format returned by concurrent query manager.\r\n * @param val @enum QueryRowFormat specifying format for result.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setRowFormat(val: QueryRowFormat) {\r\n this._options.rowFormat = val;\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * Defers execution of query in queue by specified milliseconds. This parameter is ignored by default unless concurrent query is configure to not ignore it.\r\n * @param val Number of milliseconds.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setDelay(val: number) {\r\n this._options.delay = val;\r\n return this;\r\n }\r\n}\r\n/** @beta */\r\nexport class BlobOptionsBuilder {\r\n public constructor(private _options: BlobOptions = {}) { }\r\n public getOptions(): BlobOptions { return this._options; }\r\n /**\r\n * @internal\r\n * Allow to set priority of blob request. Blob request will be inserted int queue base on priority value. This value will be ignored if concurrent query is configured with ignored priority is true.\r\n * @param val integer value which can be negative as well. By default its zero.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setPriority(val: number) {\r\n this._options.priority = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set restart token. If restart token is set then any other blob request in queue with same token is cancelled if its not already executed.\r\n * @param val A string token identifying a use case in which previous blob request with same token is cancelled.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setRestartToken(val: string) {\r\n this._options.restartToken = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set quota restriction for blob request. Its a hint and may be overriden or ignored by concurrent query manager.\r\n * @param val @type QueryQuota Specify time and memory that can be used by a query.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setQuota(val: QueryQuota) {\r\n this._options.quota = val;\r\n return this;\r\n }\r\n /**\r\n * Force a blob request to be executed synchronously against primary connection. This option is ignored if provided by frontend.\r\n * @param val A boolean value to force use primary connection on main thread to execute blob request.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setUsePrimaryConnection(val: boolean) {\r\n this._options.usePrimaryConn = val;\r\n return this;\r\n }\r\n /**\r\n * Specify range with in the blob that need to be returned.\r\n * @param val Specify offset and count of bytes that need to be returned.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setRange(val: BlobRange) {\r\n this._options.range = val;\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * Defers execution of blob request in queue by specified milliseconds. This parameter is ignored by default unless concurrent query is configure to not ignore it.\r\n * @param val Number of milliseconds.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setDelay(val: number) {\r\n this._options.delay = val;\r\n return this;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum QueryParamType {\r\n Boolean = 0,\r\n Double = 1,\r\n Id = 2,\r\n IdSet = 3,\r\n Integer = 4,\r\n Long = 5,\r\n Null = 6,\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n Point2d = 7,\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n Point3d = 8,\r\n String = 9,\r\n Blob = 10,\r\n Struct = 11,\r\n}\r\n\r\n/**\r\n * Bind values to an ECSQL query.\r\n *\r\n * All binding class methods accept an `indexOrName` parameter as a `string | number` type and a value to bind to it.\r\n * A binding must be mapped either by a positional index or a string/name. See the examples below.\r\n *\r\n * @example\r\n * Parameter By Index:\r\n * ```ts\r\n * const binder = new QueryBinder();\r\n * binder.bindString(1, \"MyCode\");\r\n * binder.bindInt(2, 42);\r\n *\r\n * const reader = iModel.createQueryReader(\"SELECT a, v FROM test.Foo WHERE a=? AND b=?\", binder);\r\n * for await (const row of reader) {\r\n * // do something with the query result\r\n * }\r\n * ```\r\n * The first `?` is index 1 and the second `?` is index 2. The parameter index starts with 1 and not 0.\r\n *\r\n * @example\r\n * Parameter By Name:\r\n * ```ts\r\n * const binder = new QueryBinder();\r\n * binder.bindString(\"name_a\", \"A\");\r\n * binder.bindString(\"name_b\", \"B\");\r\n *\r\n * const reader = iModel.createQueryReader(\"SELECT a, v FROM test.Foo WHERE a=:name_a AND b=:name_b\", binder);\r\n * for await (const row of reader) {\r\n * // do something with the query result\r\n * }\r\n * ```\r\n * Using \"name_a\" as the `indexOrName` will bind the provided value to `name_a` in the query. And the same goes for\r\n * using \"name_b\" and the `name_b` binding respectively.\r\n *\r\n * @see\r\n * - [ECSQL Parameters]($docs/learning/ECSQL.md#ecsql-parameters)\r\n * - [ECSQL Parameter Types]($docs/learning/ECSQLParameterTypes)\r\n * - [ECSQL Code Examples]($docs/learning/backend/ECSQLCodeExamples#parameter-bindings)\r\n *\r\n * @public\r\n */\r\nexport class QueryBinder {\r\n private _args = {};\r\n private verify(indexOrName: string | number) {\r\n if (typeof indexOrName === \"number\") {\r\n if (indexOrName < 1)\r\n throw new Error(\"expect index to be >= 1\");\r\n return;\r\n }\r\n if (!/^[a-zA-Z_]+\\w*$/i.test(indexOrName)) {\r\n throw new Error(\"expect named parameter to meet identifier specification\");\r\n }\r\n }\r\n\r\n /**\r\n * Bind boolean value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Boolean value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindBoolean(indexOrName: string | number, val: boolean) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true,\r\n value: {\r\n type: QueryParamType.Boolean,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind blob value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Blob value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindBlob(indexOrName: string | number, val: Uint8Array) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n const base64 = Base64.fromUint8Array(val);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Blob,\r\n value: base64,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind double value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Double value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindDouble(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Double,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @typedef Id64String value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @typedef Id64String value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindId(indexOrName: string | number, val: Id64String) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Id,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type OrderedId64Iterable to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type OrderedId64Iterable value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindIdSet(indexOrName: string | number, val: OrderedId64Iterable) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n OrderedId64Iterable.uniqueIterator(val);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.IdSet,\r\n value: CompressedId64Set.sortAndCompress(OrderedId64Iterable.uniqueIterator(val)),\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind integer to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Integer value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindInt(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Integer,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind struct to ECSQL statement. Struct specified as object.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val struct value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindStruct(indexOrName: string | number, val: object) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Struct,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind long to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Long value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindLong(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Long,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind string to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val String value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindString(indexOrName: string | number, val: string) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.String,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind null to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindNull(indexOrName: string | number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Null,\r\n value: null,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type Point2d to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type Point2d value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindPoint2d(indexOrName: string | number, val: Point2d) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Point2d,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type Point3d to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type Point3d value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindPoint3d(indexOrName: string | number, val: Point3d) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Point3d,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind range3d value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindRange3d(indexOrName: string | number, val: LowAndHighXYZ) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n const buffer = new Uint8Array(Range3d.toFloat64Array(val).buffer);\r\n const base64 = Base64.fromUint8Array(buffer);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Blob,\r\n value: base64,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n private static bind(params: QueryBinder, nameOrId: string | number, val: any) {\r\n if (typeof val === \"boolean\") {\r\n params.bindBoolean(nameOrId, val);\r\n } else if (typeof val === \"number\") {\r\n params.bindDouble(nameOrId, val);\r\n } else if (typeof val === \"string\") {\r\n params.bindString(nameOrId, val);\r\n } else if (val instanceof Uint8Array) {\r\n params.bindBlob(nameOrId, val);\r\n } else if (val instanceof Point2d) {\r\n params.bindPoint2d(nameOrId, val);\r\n } else if (val instanceof Point3d) {\r\n params.bindPoint3d(nameOrId, val);\r\n } else if (val instanceof Range3d) {\r\n params.bindRange3d(nameOrId, val);\r\n } else if (val instanceof Array && (val.length === 0 || (val.every((item) => typeof item === \"string\" && Id64.isValidId64(item))))) {\r\n params.bindIdSet(nameOrId, val);\r\n } else if (typeof val === \"undefined\" || val === null) {\r\n params.bindNull(nameOrId);\r\n } else if (typeof val === \"object\" && !Array.isArray(val)) {\r\n params.bindStruct(nameOrId, val);\r\n } else {\r\n throw new Error(\"unsupported type\");\r\n }\r\n }\r\n\r\n /**\r\n * Allow bulk bind either parameters by index as value array or by parameter names as object.\r\n * @param args if array of values is provided then array index is used as index. If object is provided then object property name is used as parameter name of reach value.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public static from(args: any[] | object | undefined): QueryBinder {\r\n const params = new QueryBinder();\r\n if (typeof args === \"undefined\")\r\n return params;\r\n\r\n if (Array.isArray(args)) {\r\n let i = 1;\r\n for (const val of args) {\r\n this.bind(params, i++, val);\r\n }\r\n } else {\r\n for (const prop of Object.getOwnPropertyNames(args)) {\r\n this.bind(params, prop, (args as any)[prop]);\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n public serialize(): object {\r\n return this._args;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum DbRequestKind {\r\n BlobIO = 0,\r\n ECSql = 1\r\n}\r\n\r\n/** @internal */\r\nexport enum DbResponseKind {\r\n BlobIO = DbRequestKind.BlobIO,\r\n ECSql = DbRequestKind.ECSql,\r\n NoResult = 2\r\n}\r\n\r\n/** @internal */\r\nexport enum DbResponseStatus {\r\n Done = 1, /* query ran to completion. */\r\n Cancel = 2, /* Requested by user.*/\r\n Partial = 3, /* query was running but ran out of quota.*/\r\n Timeout = 4, /* query time quota expired while it was in queue.*/\r\n QueueFull = 5, /* could not submit the query as queue was full.*/\r\n ShuttingDown = 6, /* Shutdown is in progress. */\r\n Error = 100, /* generic error*/\r\n Error_ECSql_PreparedFailed = Error + 1, /* ecsql prepared failed*/\r\n Error_ECSql_StepFailed = Error + 2, /* ecsql step failed*/\r\n Error_ECSql_RowToJsonFailed = Error + 3, /* ecsql failed to serialized row to json.*/\r\n Error_ECSql_BindingFailed = Error + 4, /* ecsql binding failed.*/\r\n Error_BlobIO_OpenFailed = Error + 5, /* class or property or instance specified was not found or property as not of type blob.*/\r\n Error_BlobIO_OutOfRange = Error + 6, /* range specified is invalid based on size of blob.*/\r\n}\r\n\r\n/** @internal */\r\nexport enum DbValueFormat {\r\n ECSqlNames = 0,\r\n JsNames = 1\r\n}\r\n\r\n/** @internal */\r\nexport interface DbRequest extends BaseReaderOptions {\r\n kind?: DbRequestKind;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryRequest extends DbRequest, QueryOptions {\r\n valueFormat?: DbValueFormat;\r\n query: string;\r\n args?: object;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbBlobRequest extends DbRequest, BlobOptions {\r\n className: string;\r\n accessString: string;\r\n instanceId: Id64String;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbResponse {\r\n stats: DbRuntimeStats;\r\n status: DbResponseStatus;\r\n kind: DbResponseKind;\r\n error?: string;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryResponse extends DbResponse {\r\n meta: QueryPropertyMetaData[];\r\n data: any[];\r\n rowCount: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbBlobResponse extends DbResponse {\r\n data?: Uint8Array;\r\n rawBlobSize: number;\r\n}\r\n\r\n/** @public */\r\nexport class DbQueryError extends BentleyError {\r\n public constructor(public readonly response: any, public readonly request?: any, rc?: DbResult) {\r\n super(rc ?? DbResult.BE_SQLITE_ERROR, response.error, { response, request });\r\n }\r\n public static throwIfError(response: any, request?: any) {\r\n if ((response.status as number) >= (DbResponseStatus.Error as number)) {\r\n throw new DbQueryError(response, request);\r\n }\r\n if (response.status === DbResponseStatus.Cancel) {\r\n throw new DbQueryError(response, request, DbResult.BE_SQLITE_INTERRUPT);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface DbRequestExecutor<TRequest extends DbRequest, TResponse extends DbResponse> {\r\n execute(request: TRequest): Promise<TResponse>;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryConfig {\r\n globalQuota?: QueryQuota;\r\n /** For testing */\r\n ignoreDelay?: boolean;\r\n /** Priority of request is ignored */\r\n ignorePriority?: boolean;\r\n /** Max queue size after which queries are rejected with error QueueFull */\r\n requestQueueSize?: number;\r\n /** Number of worker thread, default to 4 */\r\n workerThreads?: number;\r\n /** Use thread connection to prepare the statement */\r\n doNotUsePrimaryConnToPrepare?: boolean;\r\n /** After no activity for given time concurrent query will automatically shutdown */\r\n autoShutdownWhenIdleForSeconds?: number;\r\n /** Maximum number of statement cache per worker. Default to 40 */\r\n statementCacheSizePerWorker?: number;\r\n /* Monitor poll interval in milliseconds. Its responsible for cancelling queries that pass quota. It can be set between 1000 and Max time quota for query */\r\n monitorPollInterval?: number;\r\n /** Set memory map io for each worker connection size in bytes. Default to zero mean do not use mmap io */\r\n memoryMapFileSize?: number;\r\n /** How often to measure progress of a running ECSql statement which is used to enforced time limit */\r\n progressOpCount?: number;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ConcurrentQuery.js","sourceRoot":"","sources":["../../src/ConcurrentQuery.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 iModels\r\n */\r\nimport { BentleyError, CompressedId64Set, DbResult, Id64, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, Point2d, Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { Base64 } from \"js-base64\";\r\n\r\n/**\r\n * Specifies the format of the rows returned by the `query` and `restartQuery` methods of\r\n * [IModelConnection]($frontend), [IModelDb]($backend), and [ECDb]($backend).\r\n *\r\n * @public\r\n * @extensions\r\n */\r\nexport enum QueryRowFormat {\r\n /** Each row is an object in which each non-null column value can be accessed by its name as defined in the ECSql.\r\n * Null values are omitted.\r\n */\r\n UseECSqlPropertyNames,\r\n /** Each row is an array of values accessed by an index corresponding to the property's position in the ECSql SELECT statement.\r\n * Null values are included if they are followed by a non-null column, but trailing null values at the end of the array are omitted.\r\n */\r\n UseECSqlPropertyIndexes,\r\n /** Each row is an object in which each non-null column value can be accessed by a [remapped property name]($docs/learning/ECSqlRowFormat.md).\r\n * This format is backwards-compatible with the format produced by iTwin.js 2.x. Null values are omitted.\r\n * @depreacted in 4.11. Switch to UseECSqlPropertyIndexes for best performance, and UseECSqlPropertyNames if you want a JSON object as the result.\r\n */\r\n UseJsPropertyNames,\r\n}\r\n\r\n/**\r\n * Specify limit or range of rows to return\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryLimit {\r\n /** Number of rows to return */\r\n count?: number;\r\n /** Offset from which to return rows */\r\n offset?: number;\r\n}\r\n\r\n/** @public */\r\nexport interface QueryPropertyMetaData {\r\n /** The class name is set to empty if the property is a generated one, otherwise, it is the name of the ECClass that the property is contained within. */\r\n className: string;\r\n /** Access string is the property's alias if the property is a generated one, otherwise it is the ECSQL property path. */\r\n accessString?: string;\r\n /** True if the property is a generated one. False, if the property directly refers to one of the classes in the FROM or JOIN clauses.\r\n * Note: Using a column alias always generates a property. So in the ECSQL <c>SELECT AssetID, Length * Breadth AS Area FROM myschema.Cubicle</c> the first column (AssetID) would not be a generated property, but the second (Area) would be.\r\n */\r\n generated: boolean;\r\n /** The index of the property value if the result is formatted as an array */\r\n index: number;\r\n /** The JSON name is the property's alias if the property is a generated one, otherwise, it is the ECSQL property path for the system property.\r\n * The JSON names are unique and _%d is added for duplicate property JSON names to make them unique.\r\n */\r\n jsonName: string;\r\n /** The name is the property's alias if the property is a generated one, otherwise, it is the name of the property. */\r\n name: string;\r\n /** If this property is a PrimitiveECProperty, extend type is the extended type name of this property, if it is not defined locally will be inherited from base property if one exists, otherwise extend type is set to an empty string.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use extendedType instead\r\n */\r\n extendType: string;\r\n /** If this property is a PrimitiveECProperty, extended type is the extended type name of this property, if it is not defined locally will be inherited from base property if one exists, otherwise extended type will be undefined. */\r\n extendedType?: string;\r\n /** The type name is set to 'navigation' if the property is a navigation property, otherwise, it is the type name for the property. */\r\n typeName: string;\r\n}\r\n\r\n/** @beta */\r\nexport interface DbRuntimeStats {\r\n /** In microseconds */\r\n cpuTime: number;\r\n /** In milliseconds */\r\n totalTime: number;\r\n /** In milliseconds */\r\n timeLimit: number;\r\n /** In bytes */\r\n memLimit: number;\r\n /** In bytes */\r\n memUsed: number;\r\n /** In milliseconds */\r\n prepareTime: number;\r\n}\r\n\r\n/**\r\n * Quota hint for the query.\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryQuota {\r\n /** Max time allowed in seconds. This is hint and may not be honoured but help in prioritize request */\r\n time?: number;\r\n /** Max memory allowed in bytes. This is hint and may not be honoured but help in prioritize request */\r\n memory?: number;\r\n}\r\n\r\n/**\r\n * Config for all request made to concurrent query engine.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface BaseReaderOptions {\r\n /** Determine priority of this query default to 0, used as hint and can be overriden by backend. */\r\n priority?: number;\r\n /** If specified cancel last query (if any) with same restart token and queue the new query */\r\n restartToken?: string;\r\n /** For editing apps this can be set to true and all query will run on primary connection\r\n * his may cause slow queries execution but the most recent data changes will be visitable via query\r\n */\r\n usePrimaryConn?: boolean;\r\n /** Restrict time or memory for query but use as hint and may be changed base on backend settings */\r\n quota?: QueryQuota;\r\n /**\r\n * @internal\r\n * Allow query to be be deferred by milliseconds specified. This parameter is ignore by default unless\r\n * concurrent query is configure to honour it.\r\n */\r\n delay?: number;\r\n}\r\n\r\n/**\r\n * ECSql query config\r\n * @public\r\n * @extensions\r\n * */\r\nexport interface QueryOptions extends BaseReaderOptions {\r\n /**\r\n * default to false. It abbreviate blobs to single bytes. This help cases where wildcard is\r\n * used in select clause. Use BlobReader api to read individual blob specially if its of large size.\r\n * */\r\n abbreviateBlobs?: boolean;\r\n /**\r\n * default to false. It will suppress error and will not log it. Useful in cases where we expect query\r\n * can fail.\r\n */\r\n suppressLogErrors?: boolean;\r\n /** This is used internally. If true it query will return meta data about query. */\r\n includeMetaData?: boolean;\r\n /** Limit range of rows returned by query*/\r\n limit?: QueryLimit;\r\n /**\r\n * Convert ECClassId, SourceECClassId, TargetECClassId and RelClassId to respective name.\r\n * When true, XXXXClassId property will be returned as className.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use ecsql function ec_classname to get class name instead.\r\n * */\r\n convertClassIdsToClassNames?: boolean;\r\n /**\r\n * Determine row format.\r\n */\r\n rowFormat?: QueryRowFormat;\r\n}\r\n\r\n/** @beta */\r\nexport type BlobRange = QueryLimit;\r\n\r\n/** @beta */\r\nexport interface BlobOptions extends BaseReaderOptions {\r\n range?: BlobRange;\r\n}\r\n\r\n/** @public */\r\nexport class QueryOptionsBuilder {\r\n public constructor(private _options: QueryOptions = {}) { }\r\n public getOptions(): QueryOptions { return this._options; }\r\n /**\r\n * @internal\r\n * Allow to set priority of query. Query will be inserted int queue base on priority value. This value will be ignored if concurrent query is configured with ignored priority is true.\r\n * @param val integer value which can be negative as well. By default its zero.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setPriority(val: number) {\r\n this._options.priority = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set restart token. If restart token is set then any other query(s) in queue with same token is cancelled if its not already executed.\r\n * @param val A string token identifying a use case in which previous query with same token is cancelled.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setRestartToken(val: string) {\r\n this._options.restartToken = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set quota restriction for query. Its a hint and may be overriden or ignored by concurrent query manager.\r\n * @param val @type QueryQuota Specify time and memory that can be used by a query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setQuota(val: QueryQuota) {\r\n this._options.quota = val;\r\n return this;\r\n }\r\n /**\r\n * Force a query to be executed synchronously against primary connection. This option is ignored if provided by frontend.\r\n * @param val A boolean value to force use primary connection on main thread to execute query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setUsePrimaryConnection(val: boolean) {\r\n this._options.usePrimaryConn = val;\r\n return this;\r\n }\r\n /**\r\n * By default all blobs are abbreviated to save memory and network bandwidth. If set to false, all blob data will be returned by query as is.\r\n * Use @type BlobReader to access blob data more efficiently.\r\n * @param val A boolean value, if set to false will return complete blob type property data. This could cost time and network bandwidth.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setAbbreviateBlobs(val: boolean) {\r\n this._options.abbreviateBlobs = val;\r\n return this;\r\n }\r\n /**\r\n * When query fail to prepare it will log error. This setting will suppress log errors in case where query come from user typing it and its expected to fail often.\r\n * @param val A boolean value, if set to true, any error logging will be suppressed.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setSuppressLogErrors(val: boolean) {\r\n this._options.suppressLogErrors = val;\r\n return this;\r\n }\r\n /**\r\n * If set ECClassId, SourceECClassId and TargetECClassId system properties will return qualified name of class instead of a @typedef Id64String.\r\n * @param val A boolean value.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use ecsql function ec_classname to get class name instead.\r\n */\r\n public setConvertClassIdsToNames(val: boolean) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n this._options.convertClassIdsToClassNames = val;\r\n return this;\r\n }\r\n /**\r\n * Specify limit for query. Limit determine number of rows and offset in result-set.\r\n * @param val Specify count and offset from within the result-set of a ECSQL query.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setLimit(val: QueryLimit) {\r\n this._options.limit = val;\r\n return this;\r\n }\r\n /**\r\n * Specify row format returned by concurrent query manager.\r\n * @param val @enum QueryRowFormat specifying format for result.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setRowFormat(val: QueryRowFormat) {\r\n this._options.rowFormat = val;\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * Defers execution of query in queue by specified milliseconds. This parameter is ignored by default unless concurrent query is configure to not ignore it.\r\n * @param val Number of milliseconds.\r\n * @returns @type QueryOptionsBuilder for fluent interface.\r\n */\r\n public setDelay(val: number) {\r\n this._options.delay = val;\r\n return this;\r\n }\r\n}\r\n/** @beta */\r\nexport class BlobOptionsBuilder {\r\n public constructor(private _options: BlobOptions = {}) { }\r\n public getOptions(): BlobOptions { return this._options; }\r\n /**\r\n * @internal\r\n * Allow to set priority of blob request. Blob request will be inserted int queue base on priority value. This value will be ignored if concurrent query is configured with ignored priority is true.\r\n * @param val integer value which can be negative as well. By default its zero.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setPriority(val: number) {\r\n this._options.priority = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set restart token. If restart token is set then any other blob request in queue with same token is cancelled if its not already executed.\r\n * @param val A string token identifying a use case in which previous blob request with same token is cancelled.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setRestartToken(val: string) {\r\n this._options.restartToken = val;\r\n return this;\r\n }\r\n /**\r\n * Allow to set quota restriction for blob request. Its a hint and may be overriden or ignored by concurrent query manager.\r\n * @param val @type QueryQuota Specify time and memory that can be used by a query.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setQuota(val: QueryQuota) {\r\n this._options.quota = val;\r\n return this;\r\n }\r\n /**\r\n * Force a blob request to be executed synchronously against primary connection. This option is ignored if provided by frontend.\r\n * @param val A boolean value to force use primary connection on main thread to execute blob request.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setUsePrimaryConnection(val: boolean) {\r\n this._options.usePrimaryConn = val;\r\n return this;\r\n }\r\n /**\r\n * Specify range with in the blob that need to be returned.\r\n * @param val Specify offset and count of bytes that need to be returned.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setRange(val: BlobRange) {\r\n this._options.range = val;\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * Defers execution of blob request in queue by specified milliseconds. This parameter is ignored by default unless concurrent query is configure to not ignore it.\r\n * @param val Number of milliseconds.\r\n * @returns @type BlobOptionsBuilder for fluent interface.\r\n */\r\n public setDelay(val: number) {\r\n this._options.delay = val;\r\n return this;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum QueryParamType {\r\n Boolean = 0,\r\n Double = 1,\r\n Id = 2,\r\n IdSet = 3,\r\n Integer = 4,\r\n Long = 5,\r\n Null = 6,\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n Point2d = 7,\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n Point3d = 8,\r\n String = 9,\r\n Blob = 10,\r\n Struct = 11,\r\n}\r\n\r\n/**\r\n * Bind values to an ECSQL query.\r\n *\r\n * All binding class methods accept an `indexOrName` parameter as a `string | number` type and a value to bind to it.\r\n * A binding must be mapped either by a positional index or a string/name. See the examples below.\r\n *\r\n * @example\r\n * Parameter By Index:\r\n * ```ts\r\n * const binder = new QueryBinder();\r\n * binder.bindString(1, \"MyCode\");\r\n * binder.bindInt(2, 42);\r\n *\r\n * const reader = iModel.createQueryReader(\"SELECT a, v FROM test.Foo WHERE a=? AND b=?\", binder);\r\n * for await (const row of reader) {\r\n * // do something with the query result\r\n * }\r\n * ```\r\n * The first `?` is index 1 and the second `?` is index 2. The parameter index starts with 1 and not 0.\r\n *\r\n * @example\r\n * Parameter By Name:\r\n * ```ts\r\n * const binder = new QueryBinder();\r\n * binder.bindString(\"name_a\", \"A\");\r\n * binder.bindString(\"name_b\", \"B\");\r\n *\r\n * const reader = iModel.createQueryReader(\"SELECT a, v FROM test.Foo WHERE a=:name_a AND b=:name_b\", binder);\r\n * for await (const row of reader) {\r\n * // do something with the query result\r\n * }\r\n * ```\r\n * Using \"name_a\" as the `indexOrName` will bind the provided value to `name_a` in the query. And the same goes for\r\n * using \"name_b\" and the `name_b` binding respectively.\r\n *\r\n * @see\r\n * - [ECSQL Parameters]($docs/learning/ECSQL.md#ecsql-parameters)\r\n * - [ECSQL Parameter Types]($docs/learning/ECSQLParameterTypes)\r\n * - [ECSQL Code Examples]($docs/learning/backend/ECSQLCodeExamples#parameter-bindings)\r\n *\r\n * @public\r\n */\r\nexport class QueryBinder {\r\n private _args = {};\r\n private verify(indexOrName: string | number) {\r\n if (typeof indexOrName === \"number\") {\r\n if (indexOrName < 1)\r\n throw new Error(\"expect index to be >= 1\");\r\n return;\r\n }\r\n if (!/^[a-zA-Z_]+\\w*$/i.test(indexOrName)) {\r\n throw new Error(\"expect named parameter to meet identifier specification\");\r\n }\r\n }\r\n\r\n /**\r\n * Bind boolean value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Boolean value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindBoolean(indexOrName: string | number, val: boolean) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true,\r\n value: {\r\n type: QueryParamType.Boolean,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind blob value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Blob value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindBlob(indexOrName: string | number, val: Uint8Array) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n const base64 = Base64.fromUint8Array(val);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Blob,\r\n value: base64,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind double value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Double value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindDouble(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Double,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @typedef Id64String value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @typedef Id64String value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindId(indexOrName: string | number, val: Id64String) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Id,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type OrderedId64Iterable to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type OrderedId64Iterable value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindIdSet(indexOrName: string | number, val: OrderedId64Iterable) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n OrderedId64Iterable.uniqueIterator(val);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.IdSet,\r\n value: CompressedId64Set.sortAndCompress(OrderedId64Iterable.uniqueIterator(val)),\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind integer to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Integer value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindInt(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Integer,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind struct to ECSQL statement. Struct specified as object.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val struct value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindStruct(indexOrName: string | number, val: object) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Struct,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind long to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Long value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindLong(indexOrName: string | number, val: number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Long,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind string to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val String value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindString(indexOrName: string | number, val: string) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.String,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind null to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindNull(indexOrName: string | number) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Null,\r\n value: null,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type Point2d to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type Point2d value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindPoint2d(indexOrName: string | number, val: Point2d) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Point2d,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind @type Point3d to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val @type Point3d value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindPoint3d(indexOrName: string | number, val: Point3d) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Point3d,\r\n value: val,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n /**\r\n * Bind range3d value to ECSQL statement.\r\n * @param indexOrName Specify parameter index or its name used in ECSQL statement.\r\n * @param val Value to bind to ECSQL statement.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public bindRange3d(indexOrName: string | number, val: LowAndHighXYZ) {\r\n this.verify(indexOrName);\r\n const name = String(indexOrName);\r\n const buffer = new Uint8Array(Range3d.toFloat64Array(val).buffer);\r\n const base64 = Base64.fromUint8Array(buffer);\r\n Object.defineProperty(this._args, name, {\r\n enumerable: true, value: {\r\n type: QueryParamType.Blob,\r\n value: base64,\r\n },\r\n });\r\n return this;\r\n }\r\n\r\n private static bind(params: QueryBinder, nameOrId: string | number, val: any) {\r\n if (typeof val === \"boolean\") {\r\n params.bindBoolean(nameOrId, val);\r\n } else if (typeof val === \"number\") {\r\n params.bindDouble(nameOrId, val);\r\n } else if (typeof val === \"string\") {\r\n params.bindString(nameOrId, val);\r\n } else if (val instanceof Uint8Array) {\r\n params.bindBlob(nameOrId, val);\r\n } else if (val instanceof Point2d) {\r\n params.bindPoint2d(nameOrId, val);\r\n } else if (val instanceof Point3d) {\r\n params.bindPoint3d(nameOrId, val);\r\n } else if (val instanceof Range3d) {\r\n params.bindRange3d(nameOrId, val);\r\n } else if (val instanceof Array && (val.length === 0 || (val.every((item) => typeof item === \"string\" && Id64.isValidId64(item))))) {\r\n params.bindIdSet(nameOrId, val);\r\n } else if (typeof val === \"undefined\" || val === null) {\r\n params.bindNull(nameOrId);\r\n } else if (typeof val === \"object\" && !Array.isArray(val)) {\r\n params.bindStruct(nameOrId, val);\r\n } else {\r\n throw new Error(\"unsupported type\");\r\n }\r\n }\r\n\r\n /**\r\n * Allow bulk bind either parameters by index as value array or by parameter names as object.\r\n * @param args if array of values is provided then array index is used as index. If object is provided then object property name is used as parameter name of reach value.\r\n * @returns @type QueryBinder to allow fluent interface.\r\n */\r\n public static from(args: any[] | object | undefined): QueryBinder {\r\n const params = new QueryBinder();\r\n if (typeof args === \"undefined\")\r\n return params;\r\n\r\n if (Array.isArray(args)) {\r\n let i = 1;\r\n for (const val of args) {\r\n this.bind(params, i++, val);\r\n }\r\n } else {\r\n for (const prop of Object.getOwnPropertyNames(args)) {\r\n this.bind(params, prop, (args as any)[prop]);\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n public serialize(): object {\r\n return this._args;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum DbRequestKind {\r\n BlobIO = 0,\r\n ECSql = 1\r\n}\r\n\r\n/** @internal */\r\nexport enum DbResponseKind {\r\n BlobIO = DbRequestKind.BlobIO,\r\n ECSql = DbRequestKind.ECSql,\r\n NoResult = 2\r\n}\r\n\r\n/** @internal */\r\nexport enum DbResponseStatus {\r\n Done = 1, /* query ran to completion. */\r\n Cancel = 2, /* Requested by user.*/\r\n Partial = 3, /* query was running but ran out of quota.*/\r\n Timeout = 4, /* query time quota expired while it was in queue.*/\r\n QueueFull = 5, /* could not submit the query as queue was full.*/\r\n ShuttingDown = 6, /* Shutdown is in progress. */\r\n Error = 100, /* generic error*/\r\n Error_ECSql_PreparedFailed = Error + 1, /* ecsql prepared failed*/\r\n Error_ECSql_StepFailed = Error + 2, /* ecsql step failed*/\r\n Error_ECSql_RowToJsonFailed = Error + 3, /* ecsql failed to serialized row to json.*/\r\n Error_ECSql_BindingFailed = Error + 4, /* ecsql binding failed.*/\r\n Error_BlobIO_OpenFailed = Error + 5, /* class or property or instance specified was not found or property as not of type blob.*/\r\n Error_BlobIO_OutOfRange = Error + 6, /* range specified is invalid based on size of blob.*/\r\n}\r\n\r\n/** @internal */\r\nexport enum DbValueFormat {\r\n ECSqlNames = 0,\r\n JsNames = 1\r\n}\r\n\r\n/** @internal */\r\nexport interface DbRequest extends BaseReaderOptions {\r\n kind?: DbRequestKind;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryRequest extends DbRequest, QueryOptions {\r\n valueFormat?: DbValueFormat;\r\n query: string;\r\n args?: object;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbBlobRequest extends DbRequest, BlobOptions {\r\n className: string;\r\n accessString: string;\r\n instanceId: Id64String;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbResponse {\r\n stats: DbRuntimeStats;\r\n status: DbResponseStatus;\r\n kind: DbResponseKind;\r\n error?: string;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryResponse extends DbResponse {\r\n meta: QueryPropertyMetaData[];\r\n data: any[];\r\n rowCount: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbBlobResponse extends DbResponse {\r\n data?: Uint8Array;\r\n rawBlobSize: number;\r\n}\r\n\r\n/** @public */\r\nexport class DbQueryError extends BentleyError {\r\n public constructor(public readonly response: any, public readonly request?: any, rc?: DbResult) {\r\n super(rc ?? DbResult.BE_SQLITE_ERROR, response.error, { response, request });\r\n }\r\n public static throwIfError(response: any, request?: any) {\r\n if ((response.status as number) >= (DbResponseStatus.Error)) {\r\n throw new DbQueryError(response, request);\r\n }\r\n if (response.status === DbResponseStatus.Cancel) {\r\n throw new DbQueryError(response, request, DbResult.BE_SQLITE_INTERRUPT);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface DbRequestExecutor<TRequest extends DbRequest, TResponse extends DbResponse> {\r\n execute(request: TRequest): Promise<TResponse>;\r\n}\r\n\r\n/** @internal */\r\nexport interface DbQueryConfig {\r\n globalQuota?: QueryQuota;\r\n /** For testing */\r\n ignoreDelay?: boolean;\r\n /** Priority of request is ignored */\r\n ignorePriority?: boolean;\r\n /** Max queue size after which queries are rejected with error QueueFull */\r\n requestQueueSize?: number;\r\n /** Number of worker thread, default to 4 */\r\n workerThreads?: number;\r\n /** Use thread connection to prepare the statement */\r\n doNotUsePrimaryConnToPrepare?: boolean;\r\n /** After no activity for given time concurrent query will automatically shutdown */\r\n autoShutdownWhenIdleForSeconds?: number;\r\n /** Maximum number of statement cache per worker. Default to 40 */\r\n statementCacheSizePerWorker?: number;\r\n /* Monitor poll interval in milliseconds. Its responsible for cancelling queries that pass quota. It can be set between 1000 and Max time quota for query */\r\n monitorPollInterval?: number;\r\n /** Set memory map io for each worker connection size in bytes. Default to zero mean do not use mmap io */\r\n memoryMapFileSize?: number;\r\n /** How often to measure progress of a running ECSql statement which is used to enforced time limit */\r\n progressOpCount?: number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayStyleSettings.d.ts","sourceRoot":"","sources":["../../src/DisplayStyleSettings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DisplayStyleSettings.d.ts","sourceRoot":"","sources":["../../src/DisplayStyleSettings.ts"],"names":[],"mappings":"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"}
|