@itwin/rpcinterface-full-stack-tests 4.4.0-dev.25 → 4.4.0-dev.26

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.
@@ -196235,7 +196235,7 @@ class Loop extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
196235
196235
  dgnBoundaryType() {
196236
196236
  /**
196237
196237
  * All "Loop" become "outer". TypeScript Loop object is equivalent to a native CurveVector with
196238
- * boundaryType = BOUNDARY_TYPE_Outer. In other words, TypeScript has no flavor of Loop that
196238
+ * boundaryType = BOUNDARY_TYPE_Outer. In other words, TypeScript has no flavor of Loop that
196239
196239
  * carries "hole" semantics.
196240
196240
  */
196241
196241
  return 2;
@@ -263602,7 +263602,10 @@ __webpack_require__.r(__webpack_exports__);
263602
263602
 
263603
263603
 
263604
263604
 
263605
- /** Class to test match of half edge mask. */
263605
+ /**
263606
+ * Class to test match of half edge mask.
263607
+ * @internal
263608
+ */
263606
263609
  class HalfEdgeMaskTester {
263607
263610
  /**
263608
263611
  * Constructor
@@ -263618,7 +263621,10 @@ class HalfEdgeMaskTester {
263618
263621
  return edge.isMaskSet(this._targetMask) === this._targetValue;
263619
263622
  }
263620
263623
  }
263621
- /** Class for different types of searches for HalfEdgeGraph. */
263624
+ /**
263625
+ * Class for different types of searches for HalfEdgeGraph.
263626
+ * @internal
263627
+ */
263622
263628
  class HalfEdgeGraphSearch {
263623
263629
  /**
263624
263630
  * Static method for face area computation -- useful as function parameter in `collectFaceAreaSummary`.
@@ -263810,6 +263816,99 @@ class HalfEdgeGraphSearch {
263810
263816
  HalfEdgeGraphSearch.correctParityInComponentArrays(parityMask, components);
263811
263817
  return components;
263812
263818
  }
263819
+ /**
263820
+ * Breadth First Search through connected component of a graph.
263821
+ * @param component vector of nodes, one per face.
263822
+ * @param seed seed node in component.
263823
+ * @param visitMask mask to apply to visited nodes. Assumed cleared throughout component.
263824
+ * @param ignoreMask (optional) mask preset on faces to ignore. Default value is `HalfEdgeMask.EXTERIOR` to
263825
+ * ignore exterior faces. Pass `HalfEdgeMask.NULL_MASK` to process all faces.
263826
+ * @param maxFaceCount (optional) maximum number of faces in the component. Should be positive; otherwise
263827
+ * `Infinity` is used.
263828
+ * @returns node at which to start next component if maximum face count exceeded, or undefined.
263829
+ */
263830
+ static exploreComponent(component, seed, visitMask, ignoreMask = _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeMask.EXTERIOR, maxFaceCount = Infinity) {
263831
+ if (maxFaceCount <= 0)
263832
+ maxFaceCount = Infinity;
263833
+ const boundaryMask = visitMask | ignoreMask;
263834
+ let numFaces = 0;
263835
+ const candidates = []; // the queue
263836
+ candidates.push(seed);
263837
+ while (candidates.length !== 0 && numFaces < maxFaceCount) {
263838
+ // shift is O(n) and may be inefficient for large queues; if needed, we can replace
263839
+ // queue by circular array or implement the queue using 2 stacks; both are O(1)
263840
+ const node = candidates.shift();
263841
+ if (node.isMaskSet(boundaryMask))
263842
+ continue;
263843
+ component.push(node);
263844
+ ++numFaces;
263845
+ const enqueueNeighboringFaces = (heNode) => {
263846
+ heNode.setMask(visitMask);
263847
+ const neighbor = heNode.vertexSuccessor;
263848
+ if (!neighbor.isMaskSet(boundaryMask))
263849
+ candidates.push(neighbor);
263850
+ };
263851
+ node.collectAroundFace(enqueueNeighboringFaces);
263852
+ }
263853
+ if (candidates.length === 0)
263854
+ return undefined;
263855
+ else {
263856
+ const front = candidates[0];
263857
+ while (candidates.length !== 0) {
263858
+ // try to find a node at the boundary of both the geometry and previous component
263859
+ const node = candidates.shift(); // shift may be inefficient for large queues
263860
+ if (node.vertexSuccessor.isMaskSet(ignoreMask))
263861
+ return node;
263862
+ if (node.edgeMate.isMaskSet(ignoreMask))
263863
+ return node;
263864
+ }
263865
+ return front;
263866
+ }
263867
+ }
263868
+ /**
263869
+ * Collect connected components of the graph (via Breadth First Search).
263870
+ * @param graph graph to inspect.
263871
+ * @param maxFaceCount (optional) maximum number of faces in each component. Should be positive; otherwise
263872
+ * `Infinity` is used.
263873
+ * @param ignoreMask (optional) mask preset on faces to ignore. Default value is `HalfEdgeMask.EXTERIOR` to ignore
263874
+ * exterior faces. Pass `HalfEdgeMask.NULL_MASK` to process all faces.
263875
+ * @returns the components of the graph, each component represented by an array of nodes, one node per face
263876
+ * of the component. In other words, entry [i][j] is a HalfEdge in the j_th face loop of the i_th component.
263877
+ */
263878
+ static collectConnectedComponents(graph, maxFaceCount = Infinity, ignoreMask = _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeMask.EXTERIOR) {
263879
+ const components = [];
263880
+ if (graph.countMask(ignoreMask) === 0)
263881
+ ignoreMask = _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeMask.NULL_MASK;
263882
+ const visitMask = _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdgeMask.VISITED;
263883
+ const boundaryMask = visitMask | ignoreMask;
263884
+ // Starting with the input node, look ahead for a boundary face. Failing that, return the input node.
263885
+ // Starting all floods at the boundary reduces the chance of ending up with a ring-shaped component at the boundary.
263886
+ const findNextFloodSeed = (index) => {
263887
+ for (let i = index; i < graph.countNodes(); ++i) {
263888
+ if (!graph.allHalfEdges[i].isMaskSet(boundaryMask)
263889
+ && graph.allHalfEdges[i].edgeMate.isMaskSet(boundaryMask)) {
263890
+ index = i;
263891
+ break;
263892
+ }
263893
+ }
263894
+ return index;
263895
+ };
263896
+ for (let i = 0; i < graph.countNodes(); ++i) {
263897
+ if (graph.allHalfEdges[i].isMaskSet(boundaryMask))
263898
+ continue;
263899
+ const i0 = findNextFloodSeed(i);
263900
+ let seed = graph.allHalfEdges[i0];
263901
+ do { // flood this component
263902
+ const component = [];
263903
+ seed = HalfEdgeGraphSearch.exploreComponent(component, seed, visitMask, ignoreMask, maxFaceCount);
263904
+ if (component.length !== 0)
263905
+ components.push(component);
263906
+ } while (seed !== undefined);
263907
+ if (!graph.allHalfEdges[i].isMaskSet(visitMask))
263908
+ --i; // reprocess this node
263909
+ }
263910
+ return components;
263911
+ }
263813
263912
  /**
263814
263913
  * Test if test point (xTest,yTest) is inside/outside a face or on an edge.
263815
263914
  * @param seedNode any node on the face loop.
@@ -288314,7 +288413,7 @@ class TestContext {
288314
288413
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
288315
288414
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
288316
288415
  await core_frontend_1.NoRenderApp.startup({
288317
- applicationVersion: "4.4.0-dev.25",
288416
+ applicationVersion: "4.4.0-dev.26",
288318
288417
  applicationId: this.settings.gprid,
288319
288418
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
288320
288419
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -307126,7 +307225,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
307126
307225
  /***/ ((module) => {
307127
307226
 
307128
307227
  "use strict";
307129
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.4.0-dev.25","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.4.0-dev.25","@itwin/core-bentley":"workspace:^4.4.0-dev.25","@itwin/core-common":"workspace:^4.4.0-dev.25","@itwin/core-geometry":"workspace:^4.4.0-dev.25","@itwin/core-orbitgt":"workspace:^4.4.0-dev.25","@itwin/core-quantity":"workspace:^4.4.0-dev.25"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.2.2","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
307228
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.4.0-dev.26","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.4.0-dev.26","@itwin/core-bentley":"workspace:^4.4.0-dev.26","@itwin/core-common":"workspace:^4.4.0-dev.26","@itwin/core-geometry":"workspace:^4.4.0-dev.26","@itwin/core-orbitgt":"workspace:^4.4.0-dev.26","@itwin/core-quantity":"workspace:^4.4.0-dev.26"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.2.2","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
307130
307229
 
307131
307230
  /***/ }),
307132
307231