@itwin/core-backend 3.0.0-dev.87 → 3.0.0-dev.91
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/lib/cjs/BackendHubAccess.d.ts +14 -11
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -3
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CheckpointManager.js +2 -2
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +2 -2
- package/lib/cjs/ECDb.js +3 -3
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +0 -1
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +0 -2
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +6 -5
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +7 -10
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/core-backend.d.ts +2 -2
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +2 -2
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/package.json +18 -53
- package/lib/cjs/IModelHubBackend.d.ts +0 -66
- package/lib/cjs/IModelHubBackend.d.ts.map +0 -1
- package/lib/cjs/IModelHubBackend.js +0 -359
- package/lib/cjs/IModelHubBackend.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IModelHubBackend.js","sourceRoot":"","sources":["../../src/IModelHubBackend.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 HubAccess\r\n */\r\n\r\nimport { join } from \"path\";\r\nimport { AzureFileHandler } from \"@bentley/backend-itwin-client\";\r\nimport { BentleyError, BriefcaseStatus, GuidString, IModelHubStatus, IModelStatus, Logger, OpenMode } from \"@itwin/core-bentley\";\r\nimport {\r\n BriefcaseQuery, ChangeSet, ChangeSetQuery, ChangesType, CheckpointQuery, CheckpointV2, CheckpointV2Query, CodeQuery, IModelBankClient, IModelClient,\r\n IModelHubClient, IModelQuery, Lock, LockQuery, LockType, VersionQuery,\r\n} from \"@bentley/imodelhub-client\";\r\nimport {\r\n BriefcaseIdValue, ChangesetFileProps, ChangesetId, ChangesetIndex, ChangesetProps, CodeProps, IModelError, IModelVersion, LocalDirName,\r\n} from \"@itwin/core-common\";\r\nimport { ProgressCallback, UserCancelledError } from \"@bentley/itwin-client\";\r\nimport {\r\n AcquireNewBriefcaseIdArg, BriefcaseDbArg, BriefcaseIdArg, ChangesetArg, ChangesetRangeArg, CheckPointArg, CreateNewIModelProps, IModelIdArg,\r\n IModelNameArg, ITwinIdArg, LockProps, V2CheckpointAccessProps,\r\n} from \"./BackendHubAccess\";\r\nimport { BriefcaseManager } from \"./BriefcaseManager\";\r\nimport { CheckpointProps } from \"./CheckpointManager\";\r\nimport { BriefcaseLocalValue, IModelDb, SnapshotDb, TokenArg } from \"./IModelDb\";\r\nimport { IModelHost } from \"./IModelHost\";\r\nimport { IModelJsFs } from \"./IModelJsFs\";\r\n\r\n/** @internal */\r\nexport class IModelHubBackend {\r\n\r\n private static _imodelClient?: IModelClient;\r\n private static _isIModelBankClient = false;\r\n private static changeSet0 = { id: \"\", changesType: 0, description: \"revision0\", parentId: \"\", briefcaseId: 0, pushDate: \"\", userCreated: \"\", index: 0 };\r\n\r\n public static setIModelClient(client?: IModelClient) {\r\n this._imodelClient = client;\r\n this._isIModelBankClient = client instanceof IModelBankClient;\r\n }\r\n\r\n public static get isUsingIModelBankClient(): boolean {\r\n return this._isIModelBankClient;\r\n }\r\n\r\n public static get iModelClient(): IModelClient {\r\n if (!this._imodelClient)\r\n this._imodelClient = new IModelHubClient(new AzureFileHandler());\r\n\r\n return this._imodelClient;\r\n }\r\n\r\n private static async getAccessToken(arg: TokenArg) {\r\n return arg.accessToken ?? await IModelHost.getAccessToken();\r\n }\r\n public static async getLatestChangeset(arg: IModelIdArg): Promise<ChangesetProps> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const changeSets: ChangeSet[] = await this.iModelClient.changeSets.get(accessToken, arg.iModelId, new ChangeSetQuery().top(1).latest());\r\n return (changeSets.length === 0) ? this.changeSet0 : this.toChangeSetProps(changeSets[changeSets.length - 1]);\r\n }\r\n\r\n public static async getChangesetFromNamedVersion(arg: IModelIdArg & { versionName: string }): Promise<ChangesetProps> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const versions = await this.iModelClient.versions.get(accessToken, arg.iModelId, new VersionQuery().select(\"ChangeSetId\").byName(arg.versionName));\r\n if (!versions[0] || !versions[0].changeSetId)\r\n throw new IModelError(IModelStatus.NotFound, `Named version ${arg.versionName} not found`);\r\n\r\n return this.queryChangeset({ ...arg, changeset: { id: versions[0].changeSetId } });\r\n }\r\n\r\n public static async getChangesetFromVersion(arg: IModelIdArg & { version: IModelVersion }): Promise<ChangesetProps> {\r\n const version = arg.version;\r\n if (version.isFirst)\r\n return this.queryChangeset({ ...arg, changeset: { index: 0 } });\r\n\r\n const asOf = version.getAsOfChangeSet();\r\n if (asOf)\r\n return this.queryChangeset({ ...arg, changeset: { id: asOf } });\r\n\r\n const versionName = version.getName();\r\n if (versionName)\r\n return this.getChangesetFromNamedVersion({ ...arg, versionName });\r\n\r\n return this.getLatestChangeset(arg);\r\n }\r\n\r\n public static async createNewIModel(arg: CreateNewIModelProps): Promise<GuidString> {\r\n if (this.isUsingIModelBankClient)\r\n throw new IModelError(IModelStatus.BadRequest, \"This is a iModelHub only operation\");\r\n\r\n const revision0 = join(IModelHost.cacheDir, \"temp-revision0.bim\");\r\n IModelJsFs.removeSync(revision0);\r\n if (!arg.revision0) { // if they didn't supply a revision0 file, create a blank one.\r\n const blank = SnapshotDb.createEmpty(revision0, { rootSubject: { name: arg.description ?? arg.iModelName } });\r\n blank.saveChanges();\r\n blank.close();\r\n } else {\r\n IModelJsFs.copySync(revision0, arg.revision0);\r\n }\r\n\r\n const nativeDb = IModelDb.openDgnDb({ path: revision0 }, OpenMode.ReadWrite);\r\n try {\r\n nativeDb.setITwinId(arg.iTwinId);\r\n // nativeDb.setDbGuid(this.iModelId); NEEDS_WORK - iModelHub should accept this value, not create it.\r\n nativeDb.saveChanges();\r\n nativeDb.deleteAllTxns(); // necessary before resetting briefcaseId\r\n nativeDb.resetBriefcaseId(BriefcaseIdValue.Unassigned);\r\n nativeDb.saveLocalValue(BriefcaseLocalValue.NoLocking, arg.noLocks ? \"true\" : undefined);\r\n nativeDb.saveChanges();\r\n } finally {\r\n nativeDb.closeIModel();\r\n }\r\n\r\n const accessToken = await this.getAccessToken(arg);\r\n const hubIModel = await this.iModelClient.iModels.create(accessToken, arg.iTwinId, arg.iModelName, { path: revision0, description: arg.description });\r\n IModelJsFs.removeSync(revision0);\r\n return hubIModel.wsgId;\r\n }\r\n\r\n public static async deleteIModel(arg: IModelIdArg & ITwinIdArg): Promise<void> {\r\n const dirName = BriefcaseManager.getIModelPath(arg.iModelId);\r\n if (IModelJsFs.existsSync(dirName)) {\r\n IModelJsFs.purgeDirSync(dirName);\r\n IModelJsFs.rmdirSync(dirName);\r\n }\r\n\r\n const accessToken = await this.getAccessToken(arg);\r\n return this.iModelClient.iModels.delete(accessToken, arg.iTwinId, arg.iModelId);\r\n }\r\n\r\n public static async queryIModelByName(arg: IModelNameArg): Promise<GuidString | undefined> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const iModels = await this.iModelClient.iModels.get(accessToken, arg.iTwinId, new IModelQuery().byName(arg.iModelName));\r\n return iModels.length === 0 ? undefined : iModels[0].id!;\r\n }\r\n\r\n public static async pushChangeset(arg: IModelIdArg & { changesetProps: ChangesetFileProps }): Promise<ChangesetIndex> {\r\n const changeset = new ChangeSet();\r\n const changesetProps = arg.changesetProps;\r\n changeset.id = changesetProps.id;\r\n changeset.parentId = changesetProps.parentId;\r\n changeset.changesType = changesetProps.changesType as number;\r\n changeset.fileSize = changesetProps.size!.toString();\r\n changeset.description = changesetProps.description;\r\n changeset.briefcaseId = changesetProps.briefcaseId;\r\n if (changeset.description.length >= 255) {\r\n Logger.logWarning(\"imodelhub-access\", `pushChanges - Truncating description to 255 characters. ${changeset.description}`);\r\n changeset.description = changeset.description.slice(0, 254);\r\n }\r\n\r\n const accessToken = await this.getAccessToken(arg);\r\n return +(await this.iModelClient.changeSets.create(accessToken, arg.iModelId, changeset, changesetProps.pathname)).index!;\r\n }\r\n\r\n /** Releases a briefcaseId from iModelHub. After this call it is illegal to generate changesets for the released briefcaseId.\r\n * @note generally, this method should not be called directly. Instead use [[deleteBriefcaseFiles]].\r\n * @see deleteBriefcaseFiles\r\n */\r\n public static async releaseBriefcase(arg: BriefcaseIdArg): Promise<void> {\r\n const { briefcaseId, iModelId } = arg;\r\n const accessToken = await this.getAccessToken(arg);\r\n try {\r\n await this.iModelClient.briefcases.get(accessToken, iModelId, new BriefcaseQuery().byId(briefcaseId));\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n await this.iModelClient.briefcases.delete(accessToken, iModelId, briefcaseId);\r\n }\r\n\r\n public static async getMyBriefcaseIds(arg: IModelIdArg): Promise<number[]> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const myHubBriefcases = await this.iModelClient.briefcases.get(accessToken, arg.iModelId, new BriefcaseQuery().ownedByMe().selectDownloadUrl());\r\n const myBriefcaseIds: number[] = [];\r\n for (const hubBc of myHubBriefcases)\r\n myBriefcaseIds.push(hubBc.briefcaseId!); // save the list of briefcaseIds we already own.\r\n return myBriefcaseIds;\r\n }\r\n\r\n public static async acquireNewBriefcaseId(arg: AcquireNewBriefcaseIdArg): Promise<number> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const briefcase = await this.iModelClient.briefcases.create(accessToken, arg.iModelId);\r\n\r\n if (!briefcase)\r\n throw new IModelError(BriefcaseStatus.CannotAcquire, \"Could not acquire briefcase\");\r\n\r\n return briefcase.briefcaseId!;\r\n }\r\n\r\n public static toChangeSetProps(cs: ChangeSet): ChangesetProps {\r\n return {\r\n id: cs.wsgId, parentId: cs.parentId ? cs.parentId : \"\", briefcaseId: cs.briefcaseId!, pushDate: cs.pushDate!,\r\n description: cs.description ?? \"\", changesType: (cs.changesType ?? ChangesType.Regular) as number, userCreated: cs.userCreated!,\r\n index: +cs.index!,\r\n };\r\n }\r\n private static toChangeSetFileProps(cs: ChangeSet, basePath: string): ChangesetFileProps {\r\n const csProps = this.toChangeSetProps(cs) as ChangesetFileProps;\r\n csProps.pathname = join(basePath, cs.fileName!);\r\n return csProps;\r\n }\r\n\r\n public static async downloadChangeset(arg: ChangesetArg & { targetDir: LocalDirName }): Promise<ChangesetFileProps> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const changeSetsPath = BriefcaseManager.getChangeSetsPath(arg.iModelId);\r\n\r\n // NEEDS_WORK - allow download by index\r\n const cSet = await this.queryChangeset(arg);\r\n const changeSets = await this.iModelClient.changeSets.download(accessToken, arg.iModelId, new ChangeSetQuery().byId(cSet.id), changeSetsPath);\r\n if (undefined === changeSets)\r\n throw new IModelError(IModelStatus.NotFound, `Cannot download changeset`);\r\n\r\n return this.toChangeSetFileProps(changeSets[0], arg.targetDir);\r\n }\r\n\r\n public static async queryChangeset(arg: ChangesetArg): Promise<ChangesetProps> {\r\n const hasIndex = (undefined !== arg.changeset.index);\r\n if ((hasIndex && arg.changeset.index <= 0) || arg.changeset.id === \"\")\r\n return this.changeSet0;\r\n\r\n const query = new ChangeSetQuery();\r\n if (hasIndex)\r\n query.filter(`Index+eq+${arg.changeset.index}`);\r\n else\r\n query.byId(arg.changeset.id);\r\n\r\n const accessToken = await this.getAccessToken(arg);\r\n const changeSets = await this.iModelClient.changeSets.get(accessToken, arg.iModelId, query);\r\n if (undefined === changeSets)\r\n throw new IModelError(IModelStatus.NotFound, `Changeset not found`);\r\n\r\n return this.toChangeSetProps(changeSets[0]);\r\n }\r\n\r\n private static async getQueryFromRange(arg: ChangesetRangeArg): Promise<ChangeSetQuery | undefined> {\r\n const query = new ChangeSetQuery();\r\n if (!arg.range)\r\n return query; // returns all changesets\r\n\r\n const range = arg.range;\r\n const after = range.first === 0 ? \"\" : (await this.queryChangeset({ ...arg, changeset: { index: range.first } })).parentId;\r\n\r\n if (!range.end)\r\n query.fromId(after); //\r\n else {\r\n const last = (await this.queryChangeset({ ...arg, changeset: { index: range.end } })).id;\r\n if (range.end === 0 || after === last)\r\n return undefined;\r\n query.betweenChangeSets(last, after); // note: weird order is necessary because second arg being blank means \"from start\"\r\n }\r\n\r\n return query;\r\n }\r\n\r\n /** queries for change sets in the specified range. */\r\n public static async queryChangesets(arg: ChangesetRangeArg): Promise<ChangesetProps[]> {\r\n const query = await this.getQueryFromRange(arg);\r\n const val: ChangesetProps[] = [];\r\n if (query) {\r\n const accessToken = await this.getAccessToken(arg);\r\n const changeSets = await this.iModelClient.changeSets.get(accessToken, arg.iModelId, query);\r\n\r\n for (const cs of changeSets)\r\n val.push(this.toChangeSetProps(cs));\r\n }\r\n return val;\r\n }\r\n\r\n /** Downloads change sets in the specified range. */\r\n public static async downloadChangesets(arg: ChangesetRangeArg & { targetDir: LocalDirName }): Promise<ChangesetFileProps[]> {\r\n const val: ChangesetFileProps[] = [];\r\n const query = await this.getQueryFromRange(arg);\r\n if (query) {\r\n const accessToken = await this.getAccessToken(arg);\r\n const changeSets = await this.iModelClient.changeSets.download(accessToken, arg.iModelId, query, arg.targetDir);\r\n\r\n for (const cs of changeSets)\r\n val.push(this.toChangeSetFileProps(cs, arg.targetDir));\r\n }\r\n return val;\r\n }\r\n\r\n public static async downloadV1Checkpoint(arg: CheckPointArg): Promise<ChangesetId> {\r\n const checkpoint = arg.checkpoint;\r\n let checkpointQuery = new CheckpointQuery().selectDownloadUrl();\r\n checkpointQuery = checkpointQuery.precedingCheckpoint(checkpoint.changeset.id);\r\n const accessToken = await this.getAccessToken(checkpoint);\r\n const checkpoints = await this.iModelClient.checkpoints.get(accessToken, checkpoint.iModelId, checkpointQuery);\r\n if (checkpoints.length !== 1)\r\n throw new IModelError(BriefcaseStatus.VersionNotFound, \"no checkpoints not found\");\r\n\r\n const cancelRequest: any = {};\r\n const progressCallback: ProgressCallback = (progress) => {\r\n if (arg.onProgress && arg.onProgress(progress.loaded, progress.total!) !== 0)\r\n cancelRequest.cancel?.();\r\n };\r\n\r\n await this.iModelClient.checkpoints.download(accessToken, checkpoints[0], arg.localFile, progressCallback, cancelRequest);\r\n return checkpoints[0].mergedChangeSetId!;\r\n }\r\n\r\n public static async queryV2Checkpoint(arg: CheckpointProps): Promise<V2CheckpointAccessProps | undefined> {\r\n const checkpointQuery = new CheckpointV2Query().byChangeSetId(arg.changeset.id).selectContainerAccessKey();\r\n const accessToken = await this.getAccessToken(arg);\r\n const checkpoints = await this.iModelClient.checkpointsV2.get(accessToken, arg.iModelId, checkpointQuery);\r\n if (checkpoints.length < 1)\r\n return undefined;\r\n\r\n const { containerAccessKeyContainer, containerAccessKeySAS, containerAccessKeyAccount, containerAccessKeyDbName } = checkpoints[0];\r\n if (!containerAccessKeyContainer || !containerAccessKeySAS || !containerAccessKeyAccount || !containerAccessKeyDbName)\r\n throw new Error(\"Invalid V2 checkpoint in iModelHub\");\r\n\r\n return {\r\n container: containerAccessKeyContainer,\r\n auth: containerAccessKeySAS,\r\n user: containerAccessKeyAccount,\r\n dbAlias: containerAccessKeyDbName,\r\n storageType: \"azure?sas=1\",\r\n };\r\n }\r\n\r\n public static async downloadV2Checkpoint(arg: CheckPointArg): Promise<ChangesetId> {\r\n const checkpoint = arg.checkpoint;\r\n let checkpointQuery = new CheckpointV2Query();\r\n checkpointQuery = checkpointQuery.precedingCheckpointV2(checkpoint.changeset.id).selectContainerAccessKey();\r\n const accessToken = await this.getAccessToken(checkpoint);\r\n let checkpoints: CheckpointV2[] = [];\r\n try {\r\n checkpoints = await this.iModelClient.checkpointsV2.get(accessToken, checkpoint.iModelId, checkpointQuery);\r\n } catch (error) {\r\n if (error instanceof BentleyError && error.errorNumber === IModelHubStatus.Unknown)\r\n throw new IModelError(IModelStatus.NotFound, \"V2 checkpoints not supported\");\r\n throw error;\r\n }\r\n\r\n if (checkpoints.length !== 1)\r\n throw new IModelError(IModelStatus.NotFound, \"V2 checkpoint not found\");\r\n\r\n const { containerAccessKeyContainer, containerAccessKeySAS, containerAccessKeyAccount, containerAccessKeyDbName } = checkpoints[0];\r\n if (!containerAccessKeyContainer || !containerAccessKeySAS || !containerAccessKeyAccount || !containerAccessKeyDbName)\r\n throw new IModelError(IModelStatus.NotFound, \"invalid V2 checkpoint\");\r\n\r\n const downloader = new IModelHost.platform.DownloadV2Checkpoint({\r\n container: containerAccessKeyContainer,\r\n auth: containerAccessKeySAS,\r\n storageType: \"azure?sas=1\",\r\n user: containerAccessKeyAccount,\r\n dbAlias: containerAccessKeyDbName,\r\n writeable: false,\r\n localFile: arg.localFile,\r\n });\r\n\r\n let timer: NodeJS.Timeout | undefined;\r\n try {\r\n let total = 0;\r\n const onProgress = arg.onProgress;\r\n if (onProgress) {\r\n timer = setInterval(async () => { // set an interval timer to show progress every 250ms\r\n const progress = downloader.getProgress();\r\n total = progress.total;\r\n if (onProgress(progress.loaded, progress.total))\r\n downloader.cancelDownload();\r\n }, 250);\r\n }\r\n await downloader.downloadPromise;\r\n onProgress?.(total, total); // make sure we call progress func one last time when download completes\r\n } catch (err: any) {\r\n throw (err.message === \"cancelled\") ? new UserCancelledError(BriefcaseStatus.DownloadCancelled, \"download cancelled\") : err;\r\n } finally {\r\n if (timer)\r\n clearInterval(timer);\r\n }\r\n return checkpoints[0].changeSetId!;\r\n }\r\n\r\n public static async releaseAllLocks(arg: BriefcaseDbArg) {\r\n const accessToken = await this.getAccessToken(arg);\r\n return this.iModelClient.locks.deleteAll(accessToken, arg.iModelId, arg.briefcaseId);\r\n }\r\n\r\n public static async releaseAllCodes(arg: BriefcaseDbArg) {\r\n const accessToken = await this.getAccessToken(arg);\r\n return this.iModelClient.codes.deleteAll(accessToken, arg.iModelId, arg.briefcaseId);\r\n }\r\n\r\n public static async queryAllLocks(arg: BriefcaseDbArg): Promise<LockProps[]> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const heldLocks = await this.iModelClient.locks.get(accessToken, arg.iModelId, new LockQuery().byBriefcaseId(arg.briefcaseId));\r\n return heldLocks.map((lock) => ({ id: lock.objectId!, state: lock.lockLevel! as number }));\r\n }\r\n\r\n public static async queryAllCodes(arg: BriefcaseDbArg): Promise<CodeProps[]> {\r\n const accessToken = await this.getAccessToken(arg);\r\n const reservedCodes = await this.iModelClient.codes.get(accessToken, arg.iModelId, new CodeQuery().byBriefcaseId(arg.briefcaseId));\r\n return reservedCodes.map((code) => ({ spec: code.codeSpecId!, scope: code.codeScope!, value: code.value! }));\r\n }\r\n\r\n public static toHubLock(arg: BriefcaseDbArg, reqLock: LockProps): Lock {\r\n const lock = new Lock();\r\n lock.briefcaseId = arg.briefcaseId;\r\n lock.lockLevel = reqLock.state as number;\r\n lock.lockType = LockType.Element;\r\n lock.objectId = reqLock.id;\r\n lock.releasedWithChangeSet = arg.changeset.id;\r\n lock.seedFileId = arg.iModelId;\r\n return lock;\r\n }\r\n\r\n public static toHubLocks(arg: BriefcaseDbArg & { locks: LockProps[] }): Lock[] {\r\n return arg.locks.map((lock) => this.toHubLock(arg, lock));\r\n }\r\n\r\n public static async acquireLocks(arg: BriefcaseDbArg & { locks: LockProps[] }): Promise<void> {\r\n const hubLocks = this.toHubLocks(arg);\r\n const accessToken = await this.getAccessToken(arg);\r\n await this.iModelClient.locks.update(accessToken, arg.iModelId, hubLocks);\r\n }\r\n}\r\n"]}
|