@itwin/ecschema-rpcinterface-common 5.7.0-dev.8 → 5.8.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 CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log - @itwin/ecschema-rpcinterface-common
2
2
 
3
- This log was last generated on Thu, 05 Feb 2026 16:14:10 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 13 Feb 2026 17:13:15 GMT and should not be manually modified.
4
+
5
+ ## 5.6.1
6
+ Fri, 13 Feb 2026 17:11:47 GMT
7
+
8
+ _Version update only_
4
9
 
5
10
  ## 5.6.0
6
11
  Thu, 05 Feb 2026 16:12:37 GMT
@@ -57,13 +57,12 @@ describe("RpcIncrementalSchemaLocater Tests", () => {
57
57
  { name: schemaKey.name, version: schemaKey.version.toString(), references: "[]", alias: "ts" },
58
58
  { name: "ECDbMeta", version: "4.0.3", references: "[]", alias: "ecdb" },
59
59
  ]))
60
- .onCall(1).returns(toQueryResult(["name", "version", "alias", "references", "items"], [
60
+ .onCall(1).returns(toQueryResult(["item"], [
61
61
  {
62
- name: schemaKey.name,
63
- version: schemaKey.version.toString(),
64
- alias: "ts",
65
- references: "[]",
66
- items: "[]",
62
+ item: JSON.stringify({
63
+ name: schemaKey.name,
64
+ schemaItemType: "EntityClass",
65
+ }),
67
66
  }
68
67
  ]))
69
68
  .returns(toQueryResult(["schema", "items"], [
@@ -1 +1 @@
1
- {"version":3,"file":"RpcIncrementalSchemaLocater.test.js","sourceRoot":"","sources":["../../../src/test/RpcIncrementalSchemaLocater.test.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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\nimport { ECSchemaNamespaceUris, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { RpcIncrementalSchemaLocater } from \"../RpcIncrementalSchemaLocater\";\r\nimport { DbQueryResponse, DbResponseKind, DbResponseStatus, IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { ECSchemaRpcInterface } from \"../ECSchemaRpcInterface\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\n\r\n// RpcIncrementalSchemaLocater derives from IncrementalSchemaLocater and ECSqlSchemaLocater, so\r\n// the basic functionality is already tested in their tests. This test suite verifies the expected\r\n// behaviour of the RPC specific implementation.\r\ndescribe(\"RpcIncrementalSchemaLocater Tests\", () => {\r\n\r\n let imodelReadInterface: IModelReadRpcInterface;\r\n let ecschemaRpcInterface: ECSchemaRpcInterface;\r\n\r\n const schemaInfoColumns = [\"name\", \"version\", \"references\", \"alias\"];\r\n\r\n beforeEach(() => {\r\n sinon.stub(IModelReadRpcInterface, \"getClient\").returns(imodelReadInterface = {\r\n queryRows: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n sinon.stub(ECSchemaRpcInterface, \"getClient\").returns(ecschemaRpcInterface = {\r\n getSchemaJSON: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n });\r\n\r\n afterEach(() => {\r\n sinon.restore();\r\n });\r\n\r\n it(\"get schema info, schema found\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" }\r\n ]));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).is.not.undefined;\r\n expect(schemaInfo).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schemaInfo).has.property(\"alias\").that.equals(\"ts\");\r\n expect(schemaInfo).has.property(\"references\").that.is.empty;\r\n });\r\n\r\n it(\"get schema info, schema not found, return undefined\", async () => {\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).to.be.undefined;\r\n });\r\n\r\n it(\"get schema, incrementally\", async () => {\r\n const context = new SchemaContext();\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n context.addLocater(locater);\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\")\r\n .onCall(0).returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.3\", references: \"[]\", alias: \"ecdb\" },\r\n ]))\r\n .onCall(1).returns(toQueryResult([\"name\", \"version\", \"alias\", \"references\", \"items\"], [\r\n {\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\",\r\n references: \"[]\",\r\n items: \"[]\",\r\n }\r\n ]))\r\n .returns(toQueryResult([\"schema\", \"items\"], [\r\n {\r\n schema: `{\r\n \"name\": \"${schemaKey.name}\",\r\n \"version\": \"${schemaKey.version.toString()}\",\r\n \"alias\": \"ts\",\r\n \"label\": \"Test Schema\",\r\n \"description\": \"This is a test schema.\"\r\n }`,\r\n }\r\n ]));\r\n\r\n const schema = await context.getSchema(schemaKey, SchemaMatchType.Latest);\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n\r\n expect(schema).has.property(\"loadingController\").that.is.not.undefined;\r\n expect(schema).has.a.nested.property(\"loadingController.inProgress\").that.is.true;\r\n await schema!.loadingController?.wait();\r\n\r\n expect(schema).has.property(\"label\", \"Test Schema\");\r\n expect(schema).has.property(\"description\", \"This is a test schema.\");\r\n });\r\n\r\n it(\"get schema, unsupported metaschema\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.1\", references: \"[]\", alias: \"ecdb\" },\r\n ]));\r\n\r\n sinon.stub(ecschemaRpcInterface, \"getSchemaJSON\").returns(Promise.resolve({\r\n $schema: ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\"\r\n }));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n });\r\n\r\n it(\"get schema, schema not found, return undefined\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.undefined;\r\n });\r\n});\r\n\r\n/**\r\n * This is a very simple helper function to translate a set of rows into a DbQueryResponse.\r\n * It does not handle different row formats or property order.\r\n */\r\nasync function toQueryResult(columns: Array<string>, rows: Array<{ [column: string]: any }>): Promise<DbQueryResponse> {\r\n return {\r\n kind: DbResponseKind.ECSql,\r\n status: DbResponseStatus.Done,\r\n stats: {} as any,\r\n rowCount: rows.length,\r\n meta: columns.map((column, i) => ({ name: column, jsonName: column, index: i } as any)),\r\n data: rows.map(row => columns.map(k => row[k])),\r\n };\r\n}"]}
1
+ {"version":3,"file":"RpcIncrementalSchemaLocater.test.js","sourceRoot":"","sources":["../../../src/test/RpcIncrementalSchemaLocater.test.ts"],"names":[],"mappings":";;AACA;;;+FAG+F;AAC/F,gEAA4G;AAC5G,gFAA6E;AAC7E,oDAA+G;AAC/G,kEAA+D;AAC/D,+BAA8B;AAC9B,+BAA+B;AAE/B,+FAA+F;AAC/F,kGAAkG;AAClG,gDAAgD;AAChD,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAEjD,IAAI,mBAA2C,CAAC;IAChD,IAAI,oBAA0C,CAAC;IAE/C,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAErE,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,IAAI,CAAC,oCAAsB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,GAAG;YAC5E,SAAS,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,2CAAoB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,oBAAoB,GAAG;YAC3E,aAAa,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC;SACrF,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACpF,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SAC/F,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,IAAI,yDAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,mCAAe,CAAC,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;QAEvG,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QACpC,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACxG,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,yDAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,mCAAe,CAAC,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;QAEvG,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,iCAAa,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,yDAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE;YAClD,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;SACxE,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE;YACzC;gBACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,cAAc,EAAE,aAAa;iBAC9B,CAAC;aACH;SACF,CAAC,CAAC;aACF,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YAC1C;gBACE,MAAM,EAAE;uBACK,SAAS,CAAC,IAAI;0BACX,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;;;;YAI1C;aACH;SACF,CAAC,CAAC,CAAC;QAEN,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,mCAAe,CAAC,MAAM,CAAC,CAAC;QAE1E,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACpG,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QACvE,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAClF,MAAM,MAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;QAExC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACpF,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;SACxE,CAAC,CAAC,CAAC;QAEJ,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACxE,OAAO,EAAE,yCAAqB,CAAC,iBAAiB;YAChD,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,IAAI,yDAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,mCAAe,CAAC,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;QAE/F,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;QAChC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACpG,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;QAE3F,MAAM,OAAO,GAAG,IAAI,yDAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,mCAAe,CAAC,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;QAE/F,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,OAAsB,EAAE,IAAsC;IACzF,OAAO;QACL,IAAI,EAAE,4BAAc,CAAC,KAAK;QAC1B,MAAM,EAAE,8BAAgB,CAAC,IAAI;QAC7B,KAAK,EAAE,EAAS;QAChB,QAAQ,EAAE,IAAI,CAAC,MAAM;QACrB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAU,CAAA,CAAC;QACvF,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD,CAAC;AACJ,CAAC","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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\nimport { ECSchemaNamespaceUris, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { RpcIncrementalSchemaLocater } from \"../RpcIncrementalSchemaLocater\";\r\nimport { DbQueryResponse, DbResponseKind, DbResponseStatus, IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { ECSchemaRpcInterface } from \"../ECSchemaRpcInterface\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\n\r\n// RpcIncrementalSchemaLocater derives from IncrementalSchemaLocater and ECSqlSchemaLocater, so\r\n// the basic functionality is already tested in their tests. This test suite verifies the expected\r\n// behaviour of the RPC specific implementation.\r\ndescribe(\"RpcIncrementalSchemaLocater Tests\", () => {\r\n\r\n let imodelReadInterface: IModelReadRpcInterface;\r\n let ecschemaRpcInterface: ECSchemaRpcInterface;\r\n\r\n const schemaInfoColumns = [\"name\", \"version\", \"references\", \"alias\"];\r\n\r\n beforeEach(() => {\r\n sinon.stub(IModelReadRpcInterface, \"getClient\").returns(imodelReadInterface = {\r\n queryRows: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n sinon.stub(ECSchemaRpcInterface, \"getClient\").returns(ecschemaRpcInterface = {\r\n getSchemaJSON: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n });\r\n\r\n afterEach(() => {\r\n sinon.restore();\r\n });\r\n\r\n it(\"get schema info, schema found\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" }\r\n ]));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).is.not.undefined;\r\n expect(schemaInfo).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schemaInfo).has.property(\"alias\").that.equals(\"ts\");\r\n expect(schemaInfo).has.property(\"references\").that.is.empty;\r\n });\r\n\r\n it(\"get schema info, schema not found, return undefined\", async () => {\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).to.be.undefined;\r\n });\r\n\r\n it(\"get schema, incrementally\", async () => {\r\n const context = new SchemaContext();\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n context.addLocater(locater);\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\")\r\n .onCall(0).returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.3\", references: \"[]\", alias: \"ecdb\" },\r\n ]))\r\n .onCall(1).returns(toQueryResult([\"item\"], [\r\n {\r\n item: JSON.stringify({\r\n name: schemaKey.name,\r\n schemaItemType: \"EntityClass\",\r\n }),\r\n }\r\n ]))\r\n .returns(toQueryResult([\"schema\", \"items\"], [\r\n {\r\n schema: `{\r\n \"name\": \"${schemaKey.name}\",\r\n \"version\": \"${schemaKey.version.toString()}\",\r\n \"alias\": \"ts\",\r\n \"label\": \"Test Schema\",\r\n \"description\": \"This is a test schema.\"\r\n }`,\r\n }\r\n ]));\r\n\r\n const schema = await context.getSchema(schemaKey, SchemaMatchType.Latest);\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n\r\n expect(schema).has.property(\"loadingController\").that.is.not.undefined;\r\n expect(schema).has.a.nested.property(\"loadingController.inProgress\").that.is.true;\r\n await schema!.loadingController?.wait();\r\n\r\n expect(schema).has.property(\"label\", \"Test Schema\");\r\n expect(schema).has.property(\"description\", \"This is a test schema.\");\r\n });\r\n\r\n it(\"get schema, unsupported metaschema\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.1\", references: \"[]\", alias: \"ecdb\" },\r\n ]));\r\n\r\n sinon.stub(ecschemaRpcInterface, \"getSchemaJSON\").returns(Promise.resolve({\r\n $schema: ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\"\r\n }));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n });\r\n\r\n it(\"get schema, schema not found, return undefined\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.undefined;\r\n });\r\n});\r\n\r\n/**\r\n * This is a very simple helper function to translate a set of rows into a DbQueryResponse.\r\n * It does not handle different row formats or property order.\r\n */\r\nasync function toQueryResult(columns: Array<string>, rows: Array<{ [column: string]: any }>): Promise<DbQueryResponse> {\r\n return {\r\n kind: DbResponseKind.ECSql,\r\n status: DbResponseStatus.Done,\r\n stats: {} as any,\r\n rowCount: rows.length,\r\n meta: columns.map((column, i) => ({ name: column, jsonName: column, index: i } as any)),\r\n data: rows.map(row => columns.map(k => row[k])),\r\n };\r\n}"]}
@@ -55,13 +55,12 @@ describe("RpcIncrementalSchemaLocater Tests", () => {
55
55
  { name: schemaKey.name, version: schemaKey.version.toString(), references: "[]", alias: "ts" },
56
56
  { name: "ECDbMeta", version: "4.0.3", references: "[]", alias: "ecdb" },
57
57
  ]))
58
- .onCall(1).returns(toQueryResult(["name", "version", "alias", "references", "items"], [
58
+ .onCall(1).returns(toQueryResult(["item"], [
59
59
  {
60
- name: schemaKey.name,
61
- version: schemaKey.version.toString(),
62
- alias: "ts",
63
- references: "[]",
64
- items: "[]",
60
+ item: JSON.stringify({
61
+ name: schemaKey.name,
62
+ schemaItemType: "EntityClass",
63
+ }),
65
64
  }
66
65
  ]))
67
66
  .returns(toQueryResult(["schema", "items"], [
@@ -1 +1 @@
1
- {"version":3,"file":"RpcIncrementalSchemaLocater.test.js","sourceRoot":"","sources":["../../../src/test/RpcIncrementalSchemaLocater.test.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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\nimport { ECSchemaNamespaceUris, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { RpcIncrementalSchemaLocater } from \"../RpcIncrementalSchemaLocater\";\r\nimport { DbQueryResponse, DbResponseKind, DbResponseStatus, IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { ECSchemaRpcInterface } from \"../ECSchemaRpcInterface\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\n\r\n// RpcIncrementalSchemaLocater derives from IncrementalSchemaLocater and ECSqlSchemaLocater, so\r\n// the basic functionality is already tested in their tests. This test suite verifies the expected\r\n// behaviour of the RPC specific implementation.\r\ndescribe(\"RpcIncrementalSchemaLocater Tests\", () => {\r\n\r\n let imodelReadInterface: IModelReadRpcInterface;\r\n let ecschemaRpcInterface: ECSchemaRpcInterface;\r\n\r\n const schemaInfoColumns = [\"name\", \"version\", \"references\", \"alias\"];\r\n\r\n beforeEach(() => {\r\n sinon.stub(IModelReadRpcInterface, \"getClient\").returns(imodelReadInterface = {\r\n queryRows: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n sinon.stub(ECSchemaRpcInterface, \"getClient\").returns(ecschemaRpcInterface = {\r\n getSchemaJSON: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n });\r\n\r\n afterEach(() => {\r\n sinon.restore();\r\n });\r\n\r\n it(\"get schema info, schema found\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" }\r\n ]));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).is.not.undefined;\r\n expect(schemaInfo).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schemaInfo).has.property(\"alias\").that.equals(\"ts\");\r\n expect(schemaInfo).has.property(\"references\").that.is.empty;\r\n });\r\n\r\n it(\"get schema info, schema not found, return undefined\", async () => {\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).to.be.undefined;\r\n });\r\n\r\n it(\"get schema, incrementally\", async () => {\r\n const context = new SchemaContext();\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n context.addLocater(locater);\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\")\r\n .onCall(0).returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.3\", references: \"[]\", alias: \"ecdb\" },\r\n ]))\r\n .onCall(1).returns(toQueryResult([\"name\", \"version\", \"alias\", \"references\", \"items\"], [\r\n {\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\",\r\n references: \"[]\",\r\n items: \"[]\",\r\n }\r\n ]))\r\n .returns(toQueryResult([\"schema\", \"items\"], [\r\n {\r\n schema: `{\r\n \"name\": \"${schemaKey.name}\",\r\n \"version\": \"${schemaKey.version.toString()}\",\r\n \"alias\": \"ts\",\r\n \"label\": \"Test Schema\",\r\n \"description\": \"This is a test schema.\"\r\n }`,\r\n }\r\n ]));\r\n\r\n const schema = await context.getSchema(schemaKey, SchemaMatchType.Latest);\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n\r\n expect(schema).has.property(\"loadingController\").that.is.not.undefined;\r\n expect(schema).has.a.nested.property(\"loadingController.inProgress\").that.is.true;\r\n await schema!.loadingController?.wait();\r\n\r\n expect(schema).has.property(\"label\", \"Test Schema\");\r\n expect(schema).has.property(\"description\", \"This is a test schema.\");\r\n });\r\n\r\n it(\"get schema, unsupported metaschema\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.1\", references: \"[]\", alias: \"ecdb\" },\r\n ]));\r\n\r\n sinon.stub(ecschemaRpcInterface, \"getSchemaJSON\").returns(Promise.resolve({\r\n $schema: ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\"\r\n }));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n });\r\n\r\n it(\"get schema, schema not found, return undefined\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.undefined;\r\n });\r\n});\r\n\r\n/**\r\n * This is a very simple helper function to translate a set of rows into a DbQueryResponse.\r\n * It does not handle different row formats or property order.\r\n */\r\nasync function toQueryResult(columns: Array<string>, rows: Array<{ [column: string]: any }>): Promise<DbQueryResponse> {\r\n return {\r\n kind: DbResponseKind.ECSql,\r\n status: DbResponseStatus.Done,\r\n stats: {} as any,\r\n rowCount: rows.length,\r\n meta: columns.map((column, i) => ({ name: column, jsonName: column, index: i } as any)),\r\n data: rows.map(row => columns.map(k => row[k])),\r\n };\r\n}"]}
1
+ {"version":3,"file":"RpcIncrementalSchemaLocater.test.js","sourceRoot":"","sources":["../../../src/test/RpcIncrementalSchemaLocater.test.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n/*---------------------------------------------------------------------------------------------\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\nimport { ECSchemaNamespaceUris, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { RpcIncrementalSchemaLocater } from \"../RpcIncrementalSchemaLocater\";\r\nimport { DbQueryResponse, DbResponseKind, DbResponseStatus, IModelReadRpcInterface } from \"@itwin/core-common\";\r\nimport { ECSchemaRpcInterface } from \"../ECSchemaRpcInterface\";\r\nimport { expect } from \"chai\";\r\nimport * as sinon from \"sinon\";\r\n\r\n// RpcIncrementalSchemaLocater derives from IncrementalSchemaLocater and ECSqlSchemaLocater, so\r\n// the basic functionality is already tested in their tests. This test suite verifies the expected\r\n// behaviour of the RPC specific implementation.\r\ndescribe(\"RpcIncrementalSchemaLocater Tests\", () => {\r\n\r\n let imodelReadInterface: IModelReadRpcInterface;\r\n let ecschemaRpcInterface: ECSchemaRpcInterface;\r\n\r\n const schemaInfoColumns = [\"name\", \"version\", \"references\", \"alias\"];\r\n\r\n beforeEach(() => {\r\n sinon.stub(IModelReadRpcInterface, \"getClient\").returns(imodelReadInterface = {\r\n queryRows: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n sinon.stub(ECSchemaRpcInterface, \"getClient\").returns(ecschemaRpcInterface = {\r\n getSchemaJSON: async () => { throw new Error(\"Method must be implemented in the tests.\"); },\r\n } as any);\r\n });\r\n\r\n afterEach(() => {\r\n sinon.restore();\r\n });\r\n\r\n it(\"get schema info, schema found\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" }\r\n ]));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).is.not.undefined;\r\n expect(schemaInfo).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schemaInfo).has.property(\"alias\").that.equals(\"ts\");\r\n expect(schemaInfo).has.property(\"references\").that.is.empty;\r\n });\r\n\r\n it(\"get schema info, schema not found, return undefined\", async () => {\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schemaInfo = await locater.getSchemaInfo(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schemaInfo).to.be.undefined;\r\n });\r\n\r\n it(\"get schema, incrementally\", async () => {\r\n const context = new SchemaContext();\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n context.addLocater(locater);\r\n\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\")\r\n .onCall(0).returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.3\", references: \"[]\", alias: \"ecdb\" },\r\n ]))\r\n .onCall(1).returns(toQueryResult([\"item\"], [\r\n {\r\n item: JSON.stringify({\r\n name: schemaKey.name,\r\n schemaItemType: \"EntityClass\",\r\n }),\r\n }\r\n ]))\r\n .returns(toQueryResult([\"schema\", \"items\"], [\r\n {\r\n schema: `{\r\n \"name\": \"${schemaKey.name}\",\r\n \"version\": \"${schemaKey.version.toString()}\",\r\n \"alias\": \"ts\",\r\n \"label\": \"Test Schema\",\r\n \"description\": \"This is a test schema.\"\r\n }`,\r\n }\r\n ]));\r\n\r\n const schema = await context.getSchema(schemaKey, SchemaMatchType.Latest);\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n\r\n expect(schema).has.property(\"loadingController\").that.is.not.undefined;\r\n expect(schema).has.a.nested.property(\"loadingController.inProgress\").that.is.true;\r\n await schema!.loadingController?.wait();\r\n\r\n expect(schema).has.property(\"label\", \"Test Schema\");\r\n expect(schema).has.property(\"description\", \"This is a test schema.\");\r\n });\r\n\r\n it(\"get schema, unsupported metaschema\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, [\r\n { name: schemaKey.name, version: schemaKey.version.toString(), references: \"[]\", alias: \"ts\" },\r\n { name: \"ECDbMeta\", version: \"4.0.1\", references: \"[]\", alias: \"ecdb\" },\r\n ]));\r\n\r\n sinon.stub(ecschemaRpcInterface, \"getSchemaJSON\").returns(Promise.resolve({\r\n $schema: ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\r\n name: schemaKey.name,\r\n version: schemaKey.version.toString(),\r\n alias: \"ts\"\r\n }));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.not.undefined;\r\n expect(schema).has.property(\"schemaKey\").that.satisfies((key: SchemaKey) => key.matches(schemaKey));\r\n expect(schema).has.property(\"alias\").that.equals(\"ts\");\r\n });\r\n\r\n it(\"get schema, schema not found, return undefined\", async () => {\r\n const schemaKey = SchemaKey.parseString(\"TestSchema.1.0.0\");\r\n sinon.stub(imodelReadInterface, \"queryRows\").returns(toQueryResult(schemaInfoColumns, []));\r\n\r\n const locater = new RpcIncrementalSchemaLocater({ key: \"rpc-test-imodel\" });\r\n const schema = await locater.getSchema(schemaKey, SchemaMatchType.Latest, new SchemaContext());\r\n\r\n expect(schema).is.undefined;\r\n });\r\n});\r\n\r\n/**\r\n * This is a very simple helper function to translate a set of rows into a DbQueryResponse.\r\n * It does not handle different row formats or property order.\r\n */\r\nasync function toQueryResult(columns: Array<string>, rows: Array<{ [column: string]: any }>): Promise<DbQueryResponse> {\r\n return {\r\n kind: DbResponseKind.ECSql,\r\n status: DbResponseStatus.Done,\r\n stats: {} as any,\r\n rowCount: rows.length,\r\n meta: columns.map((column, i) => ({ name: column, jsonName: column, index: i } as any)),\r\n data: rows.map(row => columns.map(k => row[k])),\r\n };\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/ecschema-rpcinterface-common",
3
- "version": "5.7.0-dev.8",
3
+ "version": "5.8.0-dev.1",
4
4
  "description": "Schema RPC Interface common interface",
5
5
  "main": "lib/cjs/ecschema-rpc-interface.js",
6
6
  "module": "lib/esm/ecschema-rpc-interface.js",
@@ -22,10 +22,10 @@
22
22
  "url": "http://www.bentley.com"
23
23
  },
24
24
  "peerDependencies": {
25
- "@itwin/core-bentley": "5.7.0-dev.8",
26
- "@itwin/core-common": "5.7.0-dev.8",
27
- "@itwin/core-geometry": "5.7.0-dev.8",
28
- "@itwin/ecschema-metadata": "5.7.0-dev.8"
25
+ "@itwin/core-bentley": "5.8.0-dev.1",
26
+ "@itwin/ecschema-metadata": "5.8.0-dev.1",
27
+ "@itwin/core-common": "5.8.0-dev.1",
28
+ "@itwin/core-geometry": "5.8.0-dev.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@itwin/eslint-plugin": "^6.0.0",
@@ -35,21 +35,22 @@
35
35
  "chai": "^4.3.10",
36
36
  "eslint": "^9.31.0",
37
37
  "mocha": "^11.1.0",
38
+ "nyc": "^17.1.0",
38
39
  "sinon": "^17.0.2",
39
40
  "rimraf": "^6.0.1",
40
41
  "typescript": "~5.6.2",
41
- "@itwin/build-tools": "5.7.0-dev.8",
42
- "@itwin/core-bentley": "5.7.0-dev.8",
43
- "@itwin/core-common": "5.7.0-dev.8",
44
- "@itwin/core-geometry": "5.7.0-dev.8",
45
- "@itwin/ecschema-metadata": "5.7.0-dev.8"
42
+ "@itwin/build-tools": "5.8.0-dev.1",
43
+ "@itwin/core-bentley": "5.8.0-dev.1",
44
+ "@itwin/core-geometry": "5.8.0-dev.1",
45
+ "@itwin/ecschema-metadata": "5.8.0-dev.1",
46
+ "@itwin/core-common": "5.8.0-dev.1"
46
47
  },
47
48
  "scripts": {
48
49
  "build": "npm run -s build:cjs && npm run -s build:esm",
49
50
  "build:cjs": "tsc 1>&2 --outDir lib/cjs",
50
51
  "build:esm": "tsc 1>&2 --module ES2022 --outDir lib/esm",
51
52
  "clean": "rimraf -g lib .rush/temp/package-deps*.json",
52
- "cover": "",
53
+ "cover": "nyc npm -s test",
53
54
  "docs": "",
54
55
  "extract-api": "betools extract-api --entry=ecschema-rpc-interface",
55
56
  "lint": "eslint \"./src/**/*.ts\" 1>&2",