@itwin/core-backend 5.7.0-dev.12 → 5.7.0-dev.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/cjs/BriefcaseManager.d.ts +138 -1
  2. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  3. package/lib/cjs/BriefcaseManager.js +336 -1
  4. package/lib/cjs/BriefcaseManager.js.map +1 -1
  5. package/lib/cjs/CloudSqlite.js +1 -1
  6. package/lib/cjs/CloudSqlite.js.map +1 -1
  7. package/lib/cjs/IModelDb.d.ts +14 -0
  8. package/lib/cjs/IModelDb.d.ts.map +1 -1
  9. package/lib/cjs/IModelDb.js +71 -6
  10. package/lib/cjs/IModelDb.js.map +1 -1
  11. package/lib/cjs/IModelHost.d.ts +15 -0
  12. package/lib/cjs/IModelHost.d.ts.map +1 -1
  13. package/lib/cjs/IModelHost.js +12 -0
  14. package/lib/cjs/IModelHost.js.map +1 -1
  15. package/lib/cjs/IModelJsFs.d.ts +2 -0
  16. package/lib/cjs/IModelJsFs.d.ts.map +1 -1
  17. package/lib/cjs/IModelJsFs.js +2 -0
  18. package/lib/cjs/IModelJsFs.js.map +1 -1
  19. package/lib/cjs/TxnManager.d.ts +39 -0
  20. package/lib/cjs/TxnManager.d.ts.map +1 -1
  21. package/lib/cjs/TxnManager.js +149 -0
  22. package/lib/cjs/TxnManager.js.map +1 -1
  23. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  24. package/lib/cjs/ViewDefinition.js +2 -0
  25. package/lib/cjs/ViewDefinition.js.map +1 -1
  26. package/lib/esm/BriefcaseManager.d.ts +138 -1
  27. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  28. package/lib/esm/BriefcaseManager.js +336 -1
  29. package/lib/esm/BriefcaseManager.js.map +1 -1
  30. package/lib/esm/CloudSqlite.js +1 -1
  31. package/lib/esm/CloudSqlite.js.map +1 -1
  32. package/lib/esm/IModelDb.d.ts +14 -0
  33. package/lib/esm/IModelDb.d.ts.map +1 -1
  34. package/lib/esm/IModelDb.js +71 -6
  35. package/lib/esm/IModelDb.js.map +1 -1
  36. package/lib/esm/IModelHost.d.ts +15 -0
  37. package/lib/esm/IModelHost.d.ts.map +1 -1
  38. package/lib/esm/IModelHost.js +12 -0
  39. package/lib/esm/IModelHost.js.map +1 -1
  40. package/lib/esm/IModelJsFs.d.ts +2 -0
  41. package/lib/esm/IModelJsFs.d.ts.map +1 -1
  42. package/lib/esm/IModelJsFs.js +2 -0
  43. package/lib/esm/IModelJsFs.js.map +1 -1
  44. package/lib/esm/TxnManager.d.ts +39 -0
  45. package/lib/esm/TxnManager.d.ts.map +1 -1
  46. package/lib/esm/TxnManager.js +150 -1
  47. package/lib/esm/TxnManager.js.map +1 -1
  48. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  49. package/lib/esm/ViewDefinition.js +2 -0
  50. package/lib/esm/ViewDefinition.js.map +1 -1
  51. package/lib/esm/test/SquashSchemaAndDataChanges.test.d.ts +2 -0
  52. package/lib/esm/test/SquashSchemaAndDataChanges.test.d.ts.map +1 -0
  53. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +241 -0
  54. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -0
  55. package/lib/esm/test/hubaccess/Rebase.test.js +1575 -1568
  56. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  57. package/lib/esm/test/hubaccess/SemanticRebase.test.d.ts +2 -0
  58. package/lib/esm/test/hubaccess/SemanticRebase.test.d.ts.map +1 -0
  59. package/lib/esm/test/hubaccess/SemanticRebase.test.js +1206 -0
  60. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -0
  61. package/lib/esm/test/standalone/ViewDefinition.test.js +14 -2
  62. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  63. package/lib/esm/test/standalone/Workspace.test.js +5 -0
  64. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  65. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"Workspace.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/Workspace.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport * as fs from \"fs-extra\";\r\nimport { extname } from \"path\";\r\nimport * as sinon from \"sinon\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { SettingsPriority } from \"../../workspace/Settings\";\r\nimport { Workspace, WorkspaceContainerProps, WorkspaceDbManifest, WorkspaceDbProps } from \"../../workspace/Workspace\";\r\nimport { EditableWorkspaceDb, WorkspaceEditor } from \"../../workspace/WorkspaceEditor\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { validateWorkspaceContainerId } from \"../../internal/workspace/WorkspaceImpl\";\r\nimport { _nativeDb } from \"../../internal/Symbols\";\r\nimport { CloudSqlite } from \"../../CloudSqlite\";\r\n\r\ndescribe(\"WorkspaceFile\", () => {\r\n\r\n let editor: WorkspaceEditor;\r\n let workspace: Workspace;\r\n\r\n before(() => {\r\n editor = WorkspaceEditor.construct();\r\n workspace = editor.workspace;\r\n });\r\n after(() => {\r\n editor.close();\r\n });\r\n\r\n async function makeEditableDb(props: WorkspaceDbProps & WorkspaceContainerProps, manifest: WorkspaceDbManifest): Promise<EditableWorkspaceDb> {\r\n const container = editor.getContainer({ ...props, accessToken: \"\" });\r\n const wsFile = await container.createDb({ ...props, manifest });\r\n wsFile.open();\r\n return wsFile;\r\n }\r\n\r\n function compareFiles(file1: string, file2: string) {\r\n expect(fs.lstatSync(file1).size).equal(fs.lstatSync(file2).size);\r\n expect(fs.readFileSync(file1)).to.deep.equal(fs.readFileSync(file2));\r\n }\r\n\r\n it(\"WorkspaceContainer names\", () => {\r\n const expectBadName = (names: string[]) => {\r\n names.forEach((containerId) => {\r\n expect(() => validateWorkspaceContainerId(containerId), containerId).to.throw(\"containerId\");\r\n });\r\n };\r\n\r\n expectBadName([\r\n \"\",\r\n \" \",\r\n \"12\", // too short\r\n \"a\\\\b\",\r\n `a\"b`,\r\n \"a:b\",\r\n \"a.b\",\r\n \"a?b\",\r\n \"a*b\",\r\n \"a|b\",\r\n \"123--4\",\r\n \"Abc\",\r\n \"return\\r\",\r\n \"newline\\n\",\r\n \"a\".repeat(64), // too long\r\n \"-leading-dash\",\r\n \"trailing-dash-\"]);\r\n\r\n validateWorkspaceContainerId(Guid.createValue()); // guids should be valid\r\n });\r\n\r\n it(\"WorkspaceDbNames\", () => {\r\n const expectBadName = (names: string[]) => {\r\n names.forEach((dbName) => {\r\n expect(() => CloudSqlite.validateDbName(dbName)).to.throw(\"dbName\");\r\n });\r\n };\r\n\r\n expectBadName([\r\n \"\",\r\n \" \",\r\n \"1/2\",\r\n \"a\\\\b\",\r\n `a\"b`,\r\n \"base:1.2.3\",\r\n \"a:b\",\r\n \"a.b\",\r\n \"a?b\",\r\n \"a*b\",\r\n \"a|b\",\r\n \"con\",\r\n \"prn\",\r\n \"return\\r\",\r\n \"newline\\n\",\r\n \"a\".repeat(256), // too long\r\n \" leading space\",\r\n \"trailing space \",\r\n \"per.iod\",\r\n \"hash#tag\",\r\n \"back`tick\",\r\n \"single'quote\",\r\n ]);\r\n\r\n CloudSqlite.validateDbName(Guid.createValue()); // guids should be valid\r\n });\r\n\r\n it(\"create new WorkspaceDb\", async () => {\r\n const manifest: WorkspaceDbManifest = { workspaceName: \"resources for acme users\", contactName: \"contact me\" };\r\n const wsFile = await makeEditableDb({ containerId: \"acme-engineering-inc-2\", dbName: \"db1\", baseUri: \"\", storageType: \"azure\" }, manifest);\r\n const inFile = IModelTestUtils.resolveAssetFile(\"test.setting.json5\");\r\n const testRange = new Range3d(1.2, 2.3, 3.4, 4.5, 5.6, 6.7);\r\n let blobVal = new Uint8Array(testRange.toFloat64Array().buffer);\r\n let strVal = \"this is test1\";\r\n const strRscName = \"string-resource/1\";\r\n const blobRscName = \"blob.resource:1\";\r\n const fileRscName = \"settings files/my settings/a.json5\";\r\n\r\n let testManifest = wsFile.manifest;\r\n expect(testManifest.workspaceName).equals(manifest.workspaceName);\r\n expect(testManifest.contactName).equals(manifest.contactName);\r\n\r\n wsFile.updateManifest({ ...testManifest, contactName: \"new contact\" });\r\n testManifest = wsFile.manifest;\r\n expect(testManifest.workspaceName).equals(manifest.workspaceName);\r\n expect(testManifest.contactName).equals(\"new contact\");\r\n\r\n expect(() => wsFile.addFile(fileRscName, \"bad file name\")).to.throw(\"no such file\");\r\n expect(() => wsFile.updateFile(fileRscName, inFile)).to.throw(\"error replacing\");\r\n expect(() => wsFile.removeFile(fileRscName)).to.throw(\"does not exist\");\r\n\r\n wsFile.addBlob(blobRscName, blobVal);\r\n wsFile.addString(strRscName, strVal);\r\n expect(wsFile.getString(strRscName)).equals(strVal);\r\n expect(wsFile.getBlob(blobRscName)).to.deep.equal(blobVal);\r\n strVal = \"updated string\";\r\n blobVal = Uint8Array.from([0, 1, 2, 3]);\r\n wsFile.updateString(strRscName, strVal);\r\n wsFile.updateBlob(blobRscName, blobVal);\r\n expect(wsFile.getString(strRscName)).equals(strVal);\r\n expect(wsFile.getBlob(blobRscName)).to.deep.equal(blobVal);\r\n\r\n wsFile.removeBlob(blobRscName);\r\n wsFile.removeString(strRscName);\r\n expect(wsFile.getString(strRscName)).to.be.undefined;\r\n expect(wsFile.getBlob(blobRscName)).to.be.undefined;\r\n\r\n wsFile.addFile(fileRscName, inFile);\r\n const writeFile = sinon.spy(wsFile.sqliteDb[_nativeDb], \"extractEmbeddedFile\");\r\n expect(writeFile.callCount).eq(0);\r\n const outFile = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(1);\r\n expect(extname(outFile)).equals(\".json5\");\r\n compareFiles(inFile, outFile);\r\n\r\n let outFile2 = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(1);\r\n expect(outFile).eq(outFile2);\r\n\r\n const inFile2 = IModelTestUtils.resolveAssetFile(\"TestSettings.schema.json\");\r\n wsFile.updateFile(fileRscName, inFile2);\r\n outFile2 = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(2);\r\n expect(outFile).eq(outFile2);\r\n compareFiles(inFile2, outFile);\r\n });\r\n\r\n it(\"load workspace settings\", async () => {\r\n const settingsFile = IModelTestUtils.resolveAssetFile(\"test.setting.json5\");\r\n const defaultDb = await makeEditableDb({ containerId: \"default\", dbName: \"db1\", baseUri: \"\", storageType: \"azure\" }, { workspaceName: \"default resources\", contactName: \"contact 123\" });\r\n defaultDb.addString(\"default-settings\", fs.readFileSync(settingsFile, \"utf-8\"));\r\n defaultDb.close();\r\n\r\n const settings = workspace.settings;\r\n await workspace.loadSettingsDictionary(\r\n { dbName: \"db1\", containerId: \"default\", baseUri: \"\", storageType: \"azure\", resourceName: \"default-settings\", priority: SettingsPriority.defaults });\r\n expect(settings.getSetting(\"editor/renderWhitespace\")).equals(\"selection\");\r\n\r\n const workspaceName = \"all fonts workspace\";\r\n const schemaFile = IModelTestUtils.resolveAssetFile(\"TestSettings.schema.json\");\r\n const fontsDb = await makeEditableDb({ containerId: \"fonts\", dbName: \"fonts\", baseUri: \"\", storageType: \"azure\" }, { workspaceName, contactName: \"font guy\" });\r\n\r\n fontsDb.addFile(\"Helvetica.ttf\", schemaFile, \"ttf\");\r\n fontsDb.close();\r\n });\r\n\r\n});\r\n"]}
1
+ {"version":3,"file":"Workspace.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/Workspace.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport * as fs from \"fs-extra\";\r\nimport { extname } from \"path\";\r\nimport * as sinon from \"sinon\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { SettingsPriority } from \"../../workspace/Settings\";\r\nimport { Workspace, WorkspaceContainerProps, WorkspaceDbManifest, WorkspaceDbProps } from \"../../workspace/Workspace\";\r\nimport { EditableWorkspaceDb, WorkspaceEditor } from \"../../workspace/WorkspaceEditor\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { validateWorkspaceContainerId } from \"../../internal/workspace/WorkspaceImpl\";\r\nimport { _nativeDb } from \"../../internal/Symbols\";\r\nimport { CloudSqlite } from \"../../CloudSqlite\";\r\n\r\ndescribe(\"WorkspaceFile\", () => {\r\n\r\n let editor: WorkspaceEditor;\r\n let workspace: Workspace;\r\n\r\n before(() => {\r\n editor = WorkspaceEditor.construct();\r\n workspace = editor.workspace;\r\n });\r\n after(() => {\r\n editor.close();\r\n });\r\n\r\n async function makeEditableDb(props: WorkspaceDbProps & WorkspaceContainerProps, manifest: WorkspaceDbManifest): Promise<EditableWorkspaceDb> {\r\n const container = editor.getContainer({ ...props, accessToken: \"\" });\r\n const wsFile = await container.createDb({ ...props, manifest });\r\n wsFile.open();\r\n return wsFile;\r\n }\r\n\r\n function compareFiles(file1: string, file2: string) {\r\n expect(fs.lstatSync(file1).size).equal(fs.lstatSync(file2).size);\r\n expect(fs.readFileSync(file1)).to.deep.equal(fs.readFileSync(file2));\r\n }\r\n\r\n it(\"WorkspaceContainer names\", () => {\r\n const expectBadName = (names: string[]) => {\r\n names.forEach((containerId) => {\r\n expect(() => validateWorkspaceContainerId(containerId), containerId).to.throw(\"containerId\");\r\n });\r\n };\r\n\r\n expectBadName([\r\n \"\",\r\n \" \",\r\n \"12\", // too short\r\n \"a\\\\b\",\r\n `a\"b`,\r\n \"a:b\",\r\n \"a.b\",\r\n \"a?b\",\r\n \"a*b\",\r\n \"a|b\",\r\n \"123--4\",\r\n \"Abc\",\r\n \"return\\r\",\r\n \"newline\\n\",\r\n \"a\".repeat(64), // too long\r\n \"-leading-dash\",\r\n \"trailing-dash-\"]);\r\n\r\n validateWorkspaceContainerId(Guid.createValue()); // guids should be valid\r\n });\r\n\r\n it(\"WorkspaceDbNames\", () => {\r\n const expectBadName = (names: string[]) => {\r\n names.forEach((dbName) => {\r\n expect(() => CloudSqlite.validateDbName(dbName)).to.throw(\"dbName\");\r\n });\r\n };\r\n\r\n expectBadName([\r\n \"\",\r\n \" \",\r\n \"1/2\",\r\n \"a\\\\b\",\r\n `a\"b`,\r\n \"base:1.2.3\",\r\n \"a:b\",\r\n \"a.b\",\r\n \"a?b\",\r\n \"a*b\",\r\n \"a|b\",\r\n \"con\",\r\n \"prn\",\r\n \"return\\r\",\r\n \"newline\\n\",\r\n \"a\".repeat(256), // too long\r\n \" leading space\",\r\n \"trailing space \",\r\n \"per.iod\",\r\n \"hash#tag\",\r\n \"back`tick\",\r\n \"single'quote\",\r\n ]);\r\n\r\n CloudSqlite.validateDbName(Guid.createValue()); // guids should be valid\r\n });\r\n\r\n it(\"WorkspaceDb version fallback\", () => {\r\n expect(CloudSqlite.validateDbVersion(\"\" as CloudSqlite.DbVersion)).equals(\"0.0.0\");\r\n expect(CloudSqlite.makeSemverName(\"db1\", \"\" as CloudSqlite.DbVersion)).equals(\"db1:0.0.0\");\r\n expect(() => CloudSqlite.validateDbVersion(\" \" as CloudSqlite.DbVersion)).to.throw(\"invalid version specification\");\r\n });\r\n\r\n it(\"create new WorkspaceDb\", async () => {\r\n const manifest: WorkspaceDbManifest = { workspaceName: \"resources for acme users\", contactName: \"contact me\" };\r\n const wsFile = await makeEditableDb({ containerId: \"acme-engineering-inc-2\", dbName: \"db1\", baseUri: \"\", storageType: \"azure\" }, manifest);\r\n const inFile = IModelTestUtils.resolveAssetFile(\"test.setting.json5\");\r\n const testRange = new Range3d(1.2, 2.3, 3.4, 4.5, 5.6, 6.7);\r\n let blobVal = new Uint8Array(testRange.toFloat64Array().buffer);\r\n let strVal = \"this is test1\";\r\n const strRscName = \"string-resource/1\";\r\n const blobRscName = \"blob.resource:1\";\r\n const fileRscName = \"settings files/my settings/a.json5\";\r\n\r\n let testManifest = wsFile.manifest;\r\n expect(testManifest.workspaceName).equals(manifest.workspaceName);\r\n expect(testManifest.contactName).equals(manifest.contactName);\r\n\r\n wsFile.updateManifest({ ...testManifest, contactName: \"new contact\" });\r\n testManifest = wsFile.manifest;\r\n expect(testManifest.workspaceName).equals(manifest.workspaceName);\r\n expect(testManifest.contactName).equals(\"new contact\");\r\n\r\n expect(() => wsFile.addFile(fileRscName, \"bad file name\")).to.throw(\"no such file\");\r\n expect(() => wsFile.updateFile(fileRscName, inFile)).to.throw(\"error replacing\");\r\n expect(() => wsFile.removeFile(fileRscName)).to.throw(\"does not exist\");\r\n\r\n wsFile.addBlob(blobRscName, blobVal);\r\n wsFile.addString(strRscName, strVal);\r\n expect(wsFile.getString(strRscName)).equals(strVal);\r\n expect(wsFile.getBlob(blobRscName)).to.deep.equal(blobVal);\r\n strVal = \"updated string\";\r\n blobVal = Uint8Array.from([0, 1, 2, 3]);\r\n wsFile.updateString(strRscName, strVal);\r\n wsFile.updateBlob(blobRscName, blobVal);\r\n expect(wsFile.getString(strRscName)).equals(strVal);\r\n expect(wsFile.getBlob(blobRscName)).to.deep.equal(blobVal);\r\n\r\n wsFile.removeBlob(blobRscName);\r\n wsFile.removeString(strRscName);\r\n expect(wsFile.getString(strRscName)).to.be.undefined;\r\n expect(wsFile.getBlob(blobRscName)).to.be.undefined;\r\n\r\n wsFile.addFile(fileRscName, inFile);\r\n const writeFile = sinon.spy(wsFile.sqliteDb[_nativeDb], \"extractEmbeddedFile\");\r\n expect(writeFile.callCount).eq(0);\r\n const outFile = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(1);\r\n expect(extname(outFile)).equals(\".json5\");\r\n compareFiles(inFile, outFile);\r\n\r\n let outFile2 = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(1);\r\n expect(outFile).eq(outFile2);\r\n\r\n const inFile2 = IModelTestUtils.resolveAssetFile(\"TestSettings.schema.json\");\r\n wsFile.updateFile(fileRscName, inFile2);\r\n outFile2 = wsFile.getFile(fileRscName)!;\r\n expect(writeFile.callCount).eq(2);\r\n expect(outFile).eq(outFile2);\r\n compareFiles(inFile2, outFile);\r\n });\r\n\r\n it(\"load workspace settings\", async () => {\r\n const settingsFile = IModelTestUtils.resolveAssetFile(\"test.setting.json5\");\r\n const defaultDb = await makeEditableDb({ containerId: \"default\", dbName: \"db1\", baseUri: \"\", storageType: \"azure\" }, { workspaceName: \"default resources\", contactName: \"contact 123\" });\r\n defaultDb.addString(\"default-settings\", fs.readFileSync(settingsFile, \"utf-8\"));\r\n defaultDb.close();\r\n\r\n const settings = workspace.settings;\r\n await workspace.loadSettingsDictionary(\r\n { dbName: \"db1\", containerId: \"default\", baseUri: \"\", storageType: \"azure\", resourceName: \"default-settings\", priority: SettingsPriority.defaults });\r\n expect(settings.getSetting(\"editor/renderWhitespace\")).equals(\"selection\");\r\n\r\n const workspaceName = \"all fonts workspace\";\r\n const schemaFile = IModelTestUtils.resolveAssetFile(\"TestSettings.schema.json\");\r\n const fontsDb = await makeEditableDb({ containerId: \"fonts\", dbName: \"fonts\", baseUri: \"\", storageType: \"azure\" }, { workspaceName, contactName: \"font guy\" });\r\n\r\n fontsDb.addFile(\"Helvetica.ttf\", schemaFile, \"ttf\");\r\n fontsDb.close();\r\n });\r\n\r\n});\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/core-backend",
3
- "version": "5.7.0-dev.12",
3
+ "version": "5.7.0-dev.14",
4
4
  "description": "iTwin.js backend components",
5
5
  "main": "lib/cjs/core-backend.js",
6
6
  "module": "lib/esm/core-backend.js",
@@ -27,10 +27,10 @@
27
27
  },
28
28
  "peerDependencies": {
29
29
  "@opentelemetry/api": "^1.0.4",
30
- "@itwin/core-bentley": "5.7.0-dev.12",
31
- "@itwin/core-common": "5.7.0-dev.12",
32
- "@itwin/core-geometry": "5.7.0-dev.12",
33
- "@itwin/ecschema-metadata": "5.7.0-dev.12"
30
+ "@itwin/core-bentley": "5.7.0-dev.14",
31
+ "@itwin/core-geometry": "5.7.0-dev.14",
32
+ "@itwin/core-common": "5.7.0-dev.14",
33
+ "@itwin/ecschema-metadata": "5.7.0-dev.14"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@opentelemetry/api": {
@@ -77,17 +77,17 @@
77
77
  "marked": "^14.1.3",
78
78
  "sql-formatter": "^15.4.6",
79
79
  "webpack": "^5.97.1",
80
- "@itwin/core-bentley": "5.7.0-dev.12",
81
- "@itwin/ecschema-locaters": "5.7.0-dev.12",
82
- "@itwin/ecsql-common": "5.7.0-dev.12",
83
- "@itwin/core-common": "5.7.0-dev.12",
84
- "@itwin/build-tools": "5.7.0-dev.12",
85
- "@itwin/ecschema-metadata": "5.7.0-dev.12",
80
+ "@itwin/build-tools": "5.7.0-dev.14",
81
+ "@itwin/ecschema-metadata": "5.7.0-dev.14",
82
+ "@itwin/core-geometry": "5.7.0-dev.14",
83
+ "@itwin/core-bentley": "5.7.0-dev.14",
84
+ "@itwin/core-common": "5.7.0-dev.14",
85
+ "@itwin/ecschema-locaters": "5.7.0-dev.14",
86
86
  "internal-tools": "3.0.0-dev.69",
87
- "@itwin/core-geometry": "5.7.0-dev.12"
87
+ "@itwin/ecsql-common": "5.7.0-dev.14"
88
88
  },
89
89
  "dependencies": {
90
- "@bentley/imodeljs-native": "5.7.5",
90
+ "@bentley/imodeljs-native": "5.7.8",
91
91
  "@itwin/object-storage-azure": "^3.0.4",
92
92
  "@azure/storage-blob": "^12.28.0",
93
93
  "form-data": "^4.0.4",