@itwin/core-backend 5.15.0-dev.1 → 5.15.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/lib/cjs/BriefcaseManager.d.ts +2 -2
  3. package/lib/cjs/BriefcaseManager.js.map +1 -1
  4. package/lib/cjs/ChangesetReaderTypes.d.ts +1 -1
  5. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  6. package/lib/cjs/ECSqlRowExecutor.d.ts +3 -3
  7. package/lib/cjs/ECSqlRowExecutor.d.ts.map +1 -1
  8. package/lib/cjs/ECSqlRowExecutor.js +2 -2
  9. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  10. package/lib/cjs/ECSqlStatement.d.ts +5 -0
  11. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  12. package/lib/cjs/ECSqlStatement.js +15 -2
  13. package/lib/cjs/ECSqlStatement.js.map +1 -1
  14. package/lib/cjs/ECSqlSyncReader.d.ts.map +1 -1
  15. package/lib/cjs/ECSqlSyncReader.js +2 -2
  16. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  17. package/lib/cjs/Element.d.ts +29 -2
  18. package/lib/cjs/Element.d.ts.map +1 -1
  19. package/lib/cjs/Element.js +38 -2
  20. package/lib/cjs/Element.js.map +1 -1
  21. package/lib/cjs/GeographicCRSServices.d.ts +50 -2
  22. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  23. package/lib/cjs/GeographicCRSServices.js +11 -1
  24. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  25. package/lib/cjs/ViewStore.d.ts.map +1 -1
  26. package/lib/cjs/ViewStore.js +62 -19
  27. package/lib/cjs/ViewStore.js.map +1 -1
  28. package/lib/esm/BriefcaseManager.d.ts +2 -2
  29. package/lib/esm/BriefcaseManager.js.map +1 -1
  30. package/lib/esm/ChangesetReaderTypes.d.ts +1 -1
  31. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  32. package/lib/esm/ECSqlRowExecutor.d.ts +3 -3
  33. package/lib/esm/ECSqlRowExecutor.d.ts.map +1 -1
  34. package/lib/esm/ECSqlRowExecutor.js +2 -2
  35. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  36. package/lib/esm/ECSqlStatement.d.ts +5 -0
  37. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  38. package/lib/esm/ECSqlStatement.js +15 -2
  39. package/lib/esm/ECSqlStatement.js.map +1 -1
  40. package/lib/esm/ECSqlSyncReader.d.ts.map +1 -1
  41. package/lib/esm/ECSqlSyncReader.js +3 -3
  42. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  43. package/lib/esm/Element.d.ts +29 -2
  44. package/lib/esm/Element.d.ts.map +1 -1
  45. package/lib/esm/Element.js +41 -5
  46. package/lib/esm/Element.js.map +1 -1
  47. package/lib/esm/GeographicCRSServices.d.ts +50 -2
  48. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  49. package/lib/esm/GeographicCRSServices.js +10 -1
  50. package/lib/esm/GeographicCRSServices.js.map +1 -1
  51. package/lib/esm/ViewStore.d.ts.map +1 -1
  52. package/lib/esm/ViewStore.js +62 -19
  53. package/lib/esm/ViewStore.js.map +1 -1
  54. package/lib/esm/test/ecdb/ECSqlQuery.test.js +17 -11
  55. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  56. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +140 -0
  57. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  58. package/lib/esm/test/element/ElementSubModelInsert.test.d.ts +2 -0
  59. package/lib/esm/test/element/ElementSubModelInsert.test.d.ts.map +1 -0
  60. package/lib/esm/test/element/ElementSubModelInsert.test.js +183 -0
  61. package/lib/esm/test/element/ElementSubModelInsert.test.js.map +1 -0
  62. package/lib/esm/test/hubaccess/CodeSwap.test.js +78 -0
  63. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  64. package/lib/esm/test/hubaccess/SchemaImportOrphanColumns.test.d.ts +2 -0
  65. package/lib/esm/test/hubaccess/SchemaImportOrphanColumns.test.d.ts.map +1 -0
  66. package/lib/esm/test/hubaccess/SchemaImportOrphanColumns.test.js +142 -0
  67. package/lib/esm/test/hubaccess/SchemaImportOrphanColumns.test.js.map +1 -0
  68. package/lib/esm/test/imodel/IModelGeolocation.test.js +5 -5
  69. package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -1
  70. package/lib/esm/test/standalone/ChangesetReader.test.js +5 -5
  71. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  72. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +2 -2
  73. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  74. package/lib/esm/test/standalone/SessionApplyIndirect.test.d.ts +2 -0
  75. package/lib/esm/test/standalone/SessionApplyIndirect.test.d.ts.map +1 -0
  76. package/lib/esm/test/standalone/SessionApplyIndirect.test.js +211 -0
  77. package/lib/esm/test/standalone/SessionApplyIndirect.test.js.map +1 -0
  78. package/lib/esm/test/standalone/ViewStoreDb.test.js +53 -0
  79. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  80. package/package.json +15 -15
@@ -89,7 +89,7 @@ class ECSqlSyncReader extends core_common_1.ECSqlReaderBase {
89
89
  }
90
90
  // Fetch metadata once on the first call.
91
91
  if (this._props.length === 0) {
92
- this._props = new core_common_1.PropertyMetaDataMap(this._executor.fetchMetadata(this._cachedRowOptions));
92
+ this._props = this._executor.fetchMetadata(this._cachedRowOptions);
93
93
  }
94
94
  return this.stepWithRetry();
95
95
  }
@@ -118,7 +118,7 @@ class ECSqlSyncReader extends core_common_1.ECSqlReaderBase {
118
118
  */
119
119
  getMetaData() {
120
120
  if (this._props.length === 0) {
121
- this._props = new core_common_1.PropertyMetaDataMap(this._executor.fetchMetadata(this._cachedRowOptions));
121
+ this._props = this._executor.fetchMetadata(this._cachedRowOptions);
122
122
  }
123
123
  return this._props.properties;
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlSyncReader.js","sourceRoot":"","sources":["../../src/ECSqlSyncReader.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,oDAK4B;AAE5B,sDAA+C;AAK/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,eAAgB,SAAQ,6BAAe;IASvB;IAA6C;IARhE,WAAW,CAAM;IACjB,QAAQ,CAA0B;IAC1C,+EAA+E;IACvE,iBAAiB,CAAM;IAE/B;;OAEG;IACH,YAA2B,SAA2B,EAAkB,KAAa,EAAE,KAAmB,EAAE,OAAiC;QAC3I,MAAM,eAAe,GAAG,OAAO,IAAI,IAAI,iCAAmB,EAAE,CAAC,UAAU,EAAE,CAAC;QAC1E,IAAI,OAAO,eAAe,CAAC,SAAS,KAAK,WAAW;YAClD,eAAe,CAAC,SAAS,GAAG,4BAAc,CAAC,uBAAuB,CAAC;QAErE,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QALR,cAAS,GAAT,SAAS,CAAkB;QAAkB,UAAK,GAAL,KAAK,CAAQ;QAOnF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,yBAAW,CAAC,uBAAQ,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;QAChC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,yBAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QAElF,iGAAiG;QACjG,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhD,+EAA+E;QAC/E,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,4BAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAAa,CAAC,OAAO,CAAC,CAAC,CAAC,2BAAa,CAAC,UAAU,CAAC;QACrI,IAAI,CAAC,iBAAiB,GAAG;YACvB,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,KAAK;YACvD,4DAA4D;YAC5D,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,IAAI,KAAK;YACxE,SAAS,EAAE,WAAW,KAAK,2BAAa,CAAC,OAAO;YAChD,2CAA2C,EAAE,IAAI;SAClD,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACgB,cAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,yBAAW,CAAC,uBAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,WAAoB,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACK,OAAO;QACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,iCAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,aAAa;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,eAAe,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,+BAA+B;IACnD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,iCAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACI,IAAI;QACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,OAAO;QACZ,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI,CAAC,OAAO;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAxKD,0CAwKC","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 ECSQL\r\n */\r\nimport {\r\n DbValueFormat,\r\n ECSqlReaderBase,\r\n IModelError,\r\n PropertyMetaDataMap, QueryBinder, QueryOptions, QueryOptionsBuilder, QueryPropertyMetaData, QueryRowFormat, QueryRowProxy,\r\n} from \"@itwin/core-common\";\r\nimport { ECSqlRowExecutor } from \"./ECSqlRowExecutor\";\r\nimport { DbResult } from \"@itwin/core-bentley\";\r\n\r\n/** @beta */\r\nexport type SynchronousQueryOptions = Omit<QueryOptions, \"suppressLogErrors\" | \"includeMetaData\" | \"limit\" | \"priority\" | \"restartToken\" | \"delay\" | \"usePrimaryConn\" | \"quota\">;\r\n\r\n/**\r\n * Execute ECSQL statements synchronously and read the results one row at a time.\r\n *\r\n * This is the synchronous counterpart of [[ECSqlReader]] from `@itwin/core-common`.\r\n * It uses [[ECSqlRowExecutor]] directly — each call to [[step]] fetches exactly one row\r\n * with no internal caching, paging, or offset tracking.\r\n *\r\n * The query results are returned one row at a time. The format of the row is dictated by the\r\n * `rowFormat` specified in the `options` parameter of the constructed ECSqlSyncReader object.\r\n * Defaults to [[QueryRowFormat.UseECSqlPropertyIndexes]] when no `rowFormat` is defined.\r\n *\r\n * There are three primary ways to interact with and read the results:\r\n * - Iterate using ECSqlSyncReader as a synchronous iterator.\r\n * - Step manually using [[ECSqlSyncReader.step]].\r\n * - Capture all results at once using [[ECSqlSyncReader.toArray]].\r\n *\r\n * @note When iterating over the results, the current row is a [[QueryRowProxy]] object.\r\n * To get the row as a basic JavaScript object, call [[QueryRowProxy.toRow]] on it.\r\n * @beta\r\n */\r\nexport class ECSqlSyncReader extends ECSqlReaderBase implements IterableIterator<QueryRowProxy> {\r\n private _currentRow: any;\r\n private _options: SynchronousQueryOptions;\r\n /** Cached native row-adaptor options — built once and reused for every row. */\r\n private _cachedRowOptions: any;\r\n\r\n /**\r\n * @internal\r\n */\r\n public constructor(private _executor: ECSqlRowExecutor, public readonly query: string, param?: QueryBinder, options?: SynchronousQueryOptions) {\r\n const resolvedOptions = options ?? new QueryOptionsBuilder().getOptions();\r\n if (typeof resolvedOptions.rowFormat === \"undefined\")\r\n resolvedOptions.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;\r\n\r\n super(resolvedOptions.rowFormat);\r\n\r\n if (query.trim().length === 0) {\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"expecting non-empty ecsql statement\");\r\n }\r\n\r\n this._options = resolvedOptions;\r\n const serializedParam = param ? param.serialize() : new QueryBinder().serialize();\r\n\r\n // Prepare the statement and bind parameters once — avoids per-row ensureStatementReady overhead.\r\n const args = Object.keys(serializedParam).length > 0 ? serializedParam : undefined;\r\n this._executor.prepareAndBind(this.query, args);\r\n\r\n // Build and cache the native row-adaptor options — reused for every step call.\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? DbValueFormat.JsNames : DbValueFormat.ECSqlNames;\r\n this._cachedRowOptions = {\r\n abbreviateBlobs: this._options.abbreviateBlobs ?? false,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n classIdsToClassNames: this._options.convertClassIdsToClassNames ?? false,\r\n useJsName: valueFormat === DbValueFormat.JsNames,\r\n doNotConvertClassIdsToClassNamesWhenAliased: true,\r\n };\r\n this._currentRow = undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n protected override getRowInternal(): any[] {\r\n if (!this._currentRow)\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"no current row\");\r\n return this._currentRow as any[];\r\n }\r\n\r\n /**\r\n * Reads a single row from the executor. Returns the row data or `undefined` when the\r\n * result set is exhausted.\r\n *\r\n * Uses the fast-path `stepNextRow` method on the executor, which calls `stmt.step()`\r\n * and `stmt.toRow()` directly — no intermediate request/response objects are allocated per row.\r\n * @internal\r\n */\r\n private readRow(): any {\r\n if (this._done) {\r\n return undefined;\r\n }\r\n\r\n // Fetch metadata once on the first call.\r\n if (this._props.length === 0) {\r\n this._props = new PropertyMetaDataMap(this._executor.fetchMetadata(this._cachedRowOptions));\r\n }\r\n\r\n return this.stepWithRetry();\r\n }\r\n\r\n /**\r\n * Steps the cursor with retry logic for transient busy/interrupt conditions.\r\n * Returns the row data array, or `undefined` when the result set is exhausted.\r\n * @internal\r\n */\r\n private stepWithRetry(): any {\r\n const result = this._executor.stepNextRow(this._cachedRowOptions);\r\n if (result) {\r\n ECSqlSyncReader.replaceBase64WithUint8Array(result);\r\n return result;\r\n }\r\n return undefined; // undefined (done) → undefined\r\n }\r\n\r\n /**\r\n * Get the metadata for each column in the query result.\r\n *\r\n * If metadata has not been retrieved yet, fetches it directly from the prepared\r\n * statement. If a step has not yet occurred, executes a single step to ensure\r\n * the statement cursor is positioned, preserving the row for the next [[step]] call.\r\n *\r\n * @returns An array of [[QueryPropertyMetaData]].\r\n * @beta\r\n */\r\n public getMetaData(): QueryPropertyMetaData[] {\r\n if (this._props.length === 0) {\r\n this._props = new PropertyMetaDataMap(this._executor.fetchMetadata(this._cachedRowOptions));\r\n }\r\n return this._props.properties;\r\n }\r\n\r\n /**\r\n * Step to the next row of the query result.\r\n *\r\n * Each call executes exactly one step on the underlying statement — there is no\r\n * internal row caching or offset tracking.\r\n *\r\n * @returns `true` if a row can be read from `current`.<br/>\r\n * `false` if there are no more rows; i.e., all rows have been stepped through already.\r\n * @beta\r\n */\r\n public step(): boolean {\r\n if (this._done) {\r\n return false;\r\n }\r\n this._currentRow = this.readRow();\r\n if (!this._currentRow) {\r\n this._done = true;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Get all remaining rows from the query result.\r\n *\r\n * @returns An array of all remaining rows from the query result.\r\n * @beta\r\n */\r\n public toArray(): any[] {\r\n const rows = [];\r\n while (this.step()) {\r\n rows.push(this.formatCurrentRow());\r\n }\r\n return rows;\r\n }\r\n\r\n /**\r\n * Accessor for using ECSqlSyncReader as a synchronous iterator.\r\n *\r\n * @returns A synchronous iterator over the rows returned by the executed ECSQL query.\r\n * @beta\r\n */\r\n public [Symbol.iterator](): IterableIterator<QueryRowProxy> {\r\n return this;\r\n }\r\n\r\n /**\r\n * Calls step when called as an iterator.\r\n *\r\n * Returns the row alongside a `done` boolean to indicate if there are any more rows for an iterator to step to.\r\n *\r\n * @returns An object with the keys: `value` which contains the row and `done` which contains a boolean.\r\n * @beta\r\n */\r\n public next(): IteratorResult<QueryRowProxy, any> {\r\n if (this.step()) {\r\n return {\r\n done: false,\r\n value: this.current,\r\n };\r\n } else {\r\n return {\r\n done: true,\r\n value: this.current,\r\n };\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ECSqlSyncReader.js","sourceRoot":"","sources":["../../src/ECSqlSyncReader.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 ECSQL\r\n */\r\nimport {\r\n DbValueFormat,\r\n ECSqlReaderBase,\r\n IModelError,\r\n QueryBinder, QueryOptions, QueryOptionsBuilder, QueryPropertyMetaData, QueryRowFormat, QueryRowProxy,\r\n} from \"@itwin/core-common\";\r\nimport { ECSqlRowExecutor } from \"./ECSqlRowExecutor\";\r\nimport { DbResult } from \"@itwin/core-bentley\";\r\n\r\n/** @beta */\r\nexport type SynchronousQueryOptions = Omit<QueryOptions, \"suppressLogErrors\" | \"includeMetaData\" | \"limit\" | \"priority\" | \"restartToken\" | \"delay\" | \"usePrimaryConn\" | \"quota\">;\r\n\r\n/**\r\n * Execute ECSQL statements synchronously and read the results one row at a time.\r\n *\r\n * This is the synchronous counterpart of [[ECSqlReader]] from `@itwin/core-common`.\r\n * It uses [[ECSqlRowExecutor]] directly — each call to [[step]] fetches exactly one row\r\n * with no internal caching, paging, or offset tracking.\r\n *\r\n * The query results are returned one row at a time. The format of the row is dictated by the\r\n * `rowFormat` specified in the `options` parameter of the constructed ECSqlSyncReader object.\r\n * Defaults to [[QueryRowFormat.UseECSqlPropertyIndexes]] when no `rowFormat` is defined.\r\n *\r\n * There are three primary ways to interact with and read the results:\r\n * - Iterate using ECSqlSyncReader as a synchronous iterator.\r\n * - Step manually using [[ECSqlSyncReader.step]].\r\n * - Capture all results at once using [[ECSqlSyncReader.toArray]].\r\n *\r\n * @note When iterating over the results, the current row is a [[QueryRowProxy]] object.\r\n * To get the row as a basic JavaScript object, call [[QueryRowProxy.toRow]] on it.\r\n * @beta\r\n */\r\nexport class ECSqlSyncReader extends ECSqlReaderBase implements IterableIterator<QueryRowProxy> {\r\n private _currentRow: any;\r\n private _options: SynchronousQueryOptions;\r\n /** Cached native row-adaptor options — built once and reused for every row. */\r\n private _cachedRowOptions: any;\r\n\r\n /**\r\n * @internal\r\n */\r\n public constructor(private _executor: ECSqlRowExecutor, public readonly query: string, param?: QueryBinder, options?: SynchronousQueryOptions) {\r\n const resolvedOptions = options ?? new QueryOptionsBuilder().getOptions();\r\n if (typeof resolvedOptions.rowFormat === \"undefined\")\r\n resolvedOptions.rowFormat = QueryRowFormat.UseECSqlPropertyIndexes;\r\n\r\n super(resolvedOptions.rowFormat);\r\n\r\n if (query.trim().length === 0) {\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"expecting non-empty ecsql statement\");\r\n }\r\n\r\n this._options = resolvedOptions;\r\n const serializedParam = param ? param.serialize() : new QueryBinder().serialize();\r\n\r\n // Prepare the statement and bind parameters once — avoids per-row ensureStatementReady overhead.\r\n const args = Object.keys(serializedParam).length > 0 ? serializedParam : undefined;\r\n this._executor.prepareAndBind(this.query, args);\r\n\r\n // Build and cache the native row-adaptor options — reused for every step call.\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const valueFormat = this._options.rowFormat === QueryRowFormat.UseJsPropertyNames ? DbValueFormat.JsNames : DbValueFormat.ECSqlNames;\r\n this._cachedRowOptions = {\r\n abbreviateBlobs: this._options.abbreviateBlobs ?? false,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n classIdsToClassNames: this._options.convertClassIdsToClassNames ?? false,\r\n useJsName: valueFormat === DbValueFormat.JsNames,\r\n doNotConvertClassIdsToClassNamesWhenAliased: true,\r\n };\r\n this._currentRow = undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n protected override getRowInternal(): any[] {\r\n if (!this._currentRow)\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"no current row\");\r\n return this._currentRow as any[];\r\n }\r\n\r\n /**\r\n * Reads a single row from the executor. Returns the row data or `undefined` when the\r\n * result set is exhausted.\r\n *\r\n * Uses the fast-path `stepNextRow` method on the executor, which calls `stmt.step()`\r\n * and `stmt.toRow()` directly — no intermediate request/response objects are allocated per row.\r\n * @internal\r\n */\r\n private readRow(): any {\r\n if (this._done) {\r\n return undefined;\r\n }\r\n\r\n // Fetch metadata once on the first call.\r\n if (this._props.length === 0) {\r\n this._props = this._executor.fetchMetadata(this._cachedRowOptions);\r\n }\r\n\r\n return this.stepWithRetry();\r\n }\r\n\r\n /**\r\n * Steps the cursor with retry logic for transient busy/interrupt conditions.\r\n * Returns the row data array, or `undefined` when the result set is exhausted.\r\n * @internal\r\n */\r\n private stepWithRetry(): any {\r\n const result = this._executor.stepNextRow(this._cachedRowOptions);\r\n if (result) {\r\n ECSqlSyncReader.replaceBase64WithUint8Array(result);\r\n return result;\r\n }\r\n return undefined; // undefined (done) → undefined\r\n }\r\n\r\n /**\r\n * Get the metadata for each column in the query result.\r\n *\r\n * If metadata has not been retrieved yet, fetches it directly from the prepared\r\n * statement. If a step has not yet occurred, executes a single step to ensure\r\n * the statement cursor is positioned, preserving the row for the next [[step]] call.\r\n *\r\n * @returns An array of [[QueryPropertyMetaData]].\r\n * @beta\r\n */\r\n public getMetaData(): QueryPropertyMetaData[] {\r\n if (this._props.length === 0) {\r\n this._props = this._executor.fetchMetadata(this._cachedRowOptions);\r\n }\r\n return this._props.properties;\r\n }\r\n\r\n /**\r\n * Step to the next row of the query result.\r\n *\r\n * Each call executes exactly one step on the underlying statement — there is no\r\n * internal row caching or offset tracking.\r\n *\r\n * @returns `true` if a row can be read from `current`.<br/>\r\n * `false` if there are no more rows; i.e., all rows have been stepped through already.\r\n * @beta\r\n */\r\n public step(): boolean {\r\n if (this._done) {\r\n return false;\r\n }\r\n this._currentRow = this.readRow();\r\n if (!this._currentRow) {\r\n this._done = true;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Get all remaining rows from the query result.\r\n *\r\n * @returns An array of all remaining rows from the query result.\r\n * @beta\r\n */\r\n public toArray(): any[] {\r\n const rows = [];\r\n while (this.step()) {\r\n rows.push(this.formatCurrentRow());\r\n }\r\n return rows;\r\n }\r\n\r\n /**\r\n * Accessor for using ECSqlSyncReader as a synchronous iterator.\r\n *\r\n * @returns A synchronous iterator over the rows returned by the executed ECSQL query.\r\n * @beta\r\n */\r\n public [Symbol.iterator](): IterableIterator<QueryRowProxy> {\r\n return this;\r\n }\r\n\r\n /**\r\n * Calls step when called as an iterator.\r\n *\r\n * Returns the row alongside a `done` boolean to indicate if there are any more rows for an iterator to step to.\r\n *\r\n * @returns An object with the keys: `value` which contains the row and `done` which contains a boolean.\r\n * @beta\r\n */\r\n public next(): IteratorResult<QueryRowProxy, any> {\r\n if (this.step()) {\r\n return {\r\n done: false,\r\n value: this.current,\r\n };\r\n } else {\r\n return {\r\n done: true,\r\n value: this.current,\r\n };\r\n }\r\n }\r\n}\r\n"]}
@@ -4,10 +4,11 @@
4
4
  import { GuidString, Id64String } from "@itwin/core-bentley";
5
5
  import { AxisAlignedBox3d, Code, CodeScopeProps, ConcreteEntityTypes, DefinitionElementProps, DefinitionSetProps, DrawingProps, ElementAlignedBox3d, ElementProps, EntityMetaData, EntityReferenceSet, GeometricElement2dProps, GeometricElement3dProps, GeometricElementProps, GeometryPartProps, GeometryStreamProps, InformationPartitionElementProps, LineStyleProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, Placement2d, Placement3d, ProjectInformation, ProjectInformationRecordProps, Rank, RelatedElement, RenderSchedule, RenderTimelineProps, RepositoryLinkProps, SectionDrawingLocationProps, SectionDrawingProps, SectionType, SheetBorderTemplateProps, SheetProps, SheetTemplateProps, SubjectProps, TypeDefinition, TypeDefinitionElementProps, UrlLinkProps } from "@itwin/core-common";
6
6
  import { ClipVector, Transform } from "@itwin/core-geometry";
7
- import { CustomHandledProperty, DeserializeEntityArgs, ECSqlRow, Entity } from "./Entity";
7
+ import { CustomHandledProperty, DeserializeEntityArgs, ECSqlRow, Entity, EntityClassType } from "./Entity";
8
8
  import { EditTxn } from "./EditTxn";
9
9
  import { IModelDb, InsertElementOptions } from "./IModelDb";
10
10
  import { IModelElementCloneContext } from "./IModelElementCloneContext";
11
+ import { Model } from "./Model";
11
12
  import { EntityClass } from "@itwin/ecschema-metadata";
12
13
  /** Argument for the `Element.onXxx` static methods
13
14
  * @beta
@@ -309,12 +310,22 @@ export declare class Element extends Entity {
309
310
  * @beta
310
311
  */
311
312
  protected static onChildDropped(arg: OnChildElementIdArg): void;
313
+ /** The [[Model]] classes that may *sub-model* an instance of this class.
314
+ * A sub-model is accepted if its class is, or derives from, one of these classes, including generated JavaScript classes for unregistered EC subclasses.
315
+ * The default is `undefined`, which permits any Model class.
316
+ * Domain classes implementing `bis:ISubModeledElement` should override this to restrict their sub-model class.
317
+ * @note `this` is the class of Element to be sub-modeled.
318
+ * @beta
319
+ */
320
+ protected static get allowedSubModelClasses(): Array<EntityClassType<Model>> | undefined;
312
321
  /** Called when an instance of this class is being *sub-modeled* by a new Model.
322
+ * The default implementation rejects the model unless its class is one of [[allowedSubModelClasses]] or [[allowedSubModelClasses]] returns undefined.
313
323
  * @note throw an exception if model should not be inserted
314
324
  * @note `this` is the class of Element to be sub-modeled.
325
+ * @note Overrides must call `super.onSubModelInsert(arg)` to retain inherited class validation.
315
326
  * @beta
316
327
  */
317
- protected static onSubModelInsert(_arg: OnSubModelPropsArg): void;
328
+ protected static onSubModelInsert(arg: OnSubModelPropsArg): void;
318
329
  /** Called after an instance of this class was *sub-modeled* by a new Model.
319
330
  * @note `this` is the class of Element that is now sub-modeled.
320
331
  * @beta
@@ -746,6 +757,10 @@ export declare class Drawing extends Document {
746
757
  toJSON(): DrawingProps;
747
758
  /** The name of the DrawingModel class modeled by this element type. */
748
759
  protected static get drawingModelFullClassName(): string;
760
+ /** A Drawing must be sub-modeled by a [[DrawingModel]].
761
+ * @beta
762
+ */
763
+ protected static get allowedSubModelClasses(): Array<EntityClassType<Model>>;
749
764
  /** Create a Code for a Drawing given a name that is meant to be unique within the scope of the specified DocumentListModel.
750
765
  * @param iModel The IModelDb
751
766
  * @param scopeModelId The Id of the DocumentListModel that contains the Drawing and provides the scope for its name.
@@ -789,6 +804,10 @@ export declare class SectionDrawing extends Drawing {
789
804
  displaySpatialView: boolean;
790
805
  static get className(): string;
791
806
  protected static get drawingModelFullClassName(): string;
807
+ /** A SectionDrawing may be sub-modeled by a [[DrawingModel]] (including [[SectionDrawingModel]]) or a [[GraphicalModel3d]].
808
+ * @beta
809
+ */
810
+ protected static get allowedSubModelClasses(): Array<EntityClassType<Model>>;
792
811
  protected constructor(props: SectionDrawingProps, iModel: IModelDb);
793
812
  toJSON(): SectionDrawingProps;
794
813
  }
@@ -823,6 +842,10 @@ export declare class Sheet extends Document {
823
842
  sheetTemplate?: Id64String;
824
843
  protected constructor(props: SheetProps, iModel: IModelDb);
825
844
  protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
845
+ /** A Sheet must be sub-modeled by a [[SheetModel]].
846
+ * @beta
847
+ */
848
+ protected static get allowedSubModelClasses(): Array<EntityClassType<Model>>;
826
849
  /** Create a Code for a Sheet given a name that is meant to be unique within the scope of the specified DocumentListModel.
827
850
  * @param iModel The IModelDb
828
851
  * @param scopeModelId The Id of the DocumentListModel that contains the Sheet and provides the scope for its name.
@@ -1041,6 +1064,10 @@ export declare abstract class GraphicalType2d extends TypeDefinitionElement {
1041
1064
  export declare class TemplateRecipe2d extends RecipeDefinitionElement {
1042
1065
  static get className(): string;
1043
1066
  protected constructor(props: ElementProps, iModel: IModelDb);
1067
+ /** A TemplateRecipe2d must be sub-modeled by a [[DrawingModel]].
1068
+ * @beta
1069
+ */
1070
+ protected static get allowedSubModelClasses(): Array<EntityClassType<Model>>;
1044
1071
  /** Create a Code for a TemplateRecipe2d given a name that is meant to be unique within the scope of its Model.
1045
1072
  * @param iModelDb The IModelDb
1046
1073
  * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.
@@ -1 +1 @@
1
- {"version":3,"file":"Element.d.ts","sourceRoot":"","sources":["../../src/Element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Element.d.ts","sourceRoot":"","sources":["../../src/Element.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ function escapeHtml(text) {
48
48
  class Element extends Entity_1.Entity {
49
49
  static get className() { return "Element"; }
50
50
  /** @internal */
51
- static get protectedOperations() { return ["onInsert", "onUpdate", "onDelete"]; }
51
+ static get protectedOperations() { return ["onInsert", "onUpdate", "onDelete", "onSubModelInsert"]; }
52
52
  /** The ModelId of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */
53
53
  model;
54
54
  /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */
@@ -289,12 +289,32 @@ class Element extends Entity_1.Entity {
289
289
  static onChildDropped(arg) {
290
290
  arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
291
291
  }
292
+ /** The [[Model]] classes that may *sub-model* an instance of this class.
293
+ * A sub-model is accepted if its class is, or derives from, one of these classes, including generated JavaScript classes for unregistered EC subclasses.
294
+ * The default is `undefined`, which permits any Model class.
295
+ * Domain classes implementing `bis:ISubModeledElement` should override this to restrict their sub-model class.
296
+ * @note `this` is the class of Element to be sub-modeled.
297
+ * @beta
298
+ */
299
+ static get allowedSubModelClasses() { return undefined; }
292
300
  /** Called when an instance of this class is being *sub-modeled* by a new Model.
301
+ * The default implementation rejects the model unless its class is one of [[allowedSubModelClasses]] or [[allowedSubModelClasses]] returns undefined.
293
302
  * @note throw an exception if model should not be inserted
294
303
  * @note `this` is the class of Element to be sub-modeled.
304
+ * @note Overrides must call `super.onSubModelInsert(arg)` to retain inherited class validation.
295
305
  * @beta
296
306
  */
297
- static onSubModelInsert(_arg) { }
307
+ static onSubModelInsert(arg) {
308
+ const allowed = this.allowedSubModelClasses;
309
+ if (!allowed)
310
+ return;
311
+ const modelClassName = arg.subModelProps.classFullName.replace(".", ":");
312
+ const modelClass = arg.iModel.getJsClass(modelClassName);
313
+ if (!allowed.some((allowedClass) => modelClass === allowedClass || modelClass.prototype instanceof allowedClass)) {
314
+ const allowedNames = allowed.map((allowedClass) => allowedClass.name).join(" or ");
315
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.WrongModel, `A ${this.className} must be sub-modeled by a ${allowedNames}, not a ${modelClassName}`);
316
+ }
317
+ }
298
318
  /** Called after an instance of this class was *sub-modeled* by a new Model.
299
319
  * @note `this` is the class of Element that is now sub-modeled.
300
320
  * @beta
@@ -1107,6 +1127,10 @@ class Drawing extends Document {
1107
1127
  }
1108
1128
  /** The name of the DrawingModel class modeled by this element type. */
1109
1129
  static get drawingModelFullClassName() { return Model_1.DrawingModel.classFullName; }
1130
+ /** A Drawing must be sub-modeled by a [[DrawingModel]].
1131
+ * @beta
1132
+ */
1133
+ static get allowedSubModelClasses() { return [Model_1.DrawingModel]; }
1110
1134
  /** Create a Code for a Drawing given a name that is meant to be unique within the scope of the specified DocumentListModel.
1111
1135
  * @param iModel The IModelDb
1112
1136
  * @param scopeModelId The Id of the DocumentListModel that contains the Drawing and provides the scope for its name.
@@ -1161,6 +1185,10 @@ class SectionDrawing extends Drawing {
1161
1185
  displaySpatialView;
1162
1186
  static get className() { return "SectionDrawing"; }
1163
1187
  static get drawingModelFullClassName() { return Model_1.SectionDrawingModel.classFullName; }
1188
+ /** A SectionDrawing may be sub-modeled by a [[DrawingModel]] (including [[SectionDrawingModel]]) or a [[GraphicalModel3d]].
1189
+ * @beta
1190
+ */
1191
+ static get allowedSubModelClasses() { return [Model_1.DrawingModel, Model_1.GraphicalModel3d]; }
1164
1192
  constructor(props, iModel) {
1165
1193
  super(props, iModel);
1166
1194
  this.sectionType = core_bentley_1.JsonUtils.asInt(props.sectionType, core_common_1.SectionType.Section);
@@ -1248,6 +1276,10 @@ class Sheet extends Document {
1248
1276
  if (undefined !== this.sheetTemplate)
1249
1277
  referenceIds.addElement(this.sheetTemplate);
1250
1278
  }
1279
+ /** A Sheet must be sub-modeled by a [[SheetModel]].
1280
+ * @beta
1281
+ */
1282
+ static get allowedSubModelClasses() { return [Model_1.SheetModel]; }
1251
1283
  /** Create a Code for a Sheet given a name that is meant to be unique within the scope of the specified DocumentListModel.
1252
1284
  * @param iModel The IModelDb
1253
1285
  * @param scopeModelId The Id of the DocumentListModel that contains the Sheet and provides the scope for its name.
@@ -1572,6 +1604,10 @@ exports.GraphicalType2d = GraphicalType2d;
1572
1604
  class TemplateRecipe2d extends RecipeDefinitionElement {
1573
1605
  static get className() { return "TemplateRecipe2d"; }
1574
1606
  constructor(props, iModel) { super(props, iModel); }
1607
+ /** A TemplateRecipe2d must be sub-modeled by a [[DrawingModel]].
1608
+ * @beta
1609
+ */
1610
+ static get allowedSubModelClasses() { return [Model_1.DrawingModel]; }
1575
1611
  /** Create a Code for a TemplateRecipe2d given a name that is meant to be unique within the scope of its Model.
1576
1612
  * @param iModelDb The IModelDb
1577
1613
  * @param definitionModelId The Id of the [DefinitionModel]($backend) that contains this TemplateRecipe2d element.