From fadf532abe07ed8c82213690f90f2b727bd9a129 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 17 Nov 2021 12:59:34 -0600 Subject: [PATCH 01/76] Added extensions project --- .../rush/browser-approved-packages.json | 6 +- common/config/rush/pnpm-lock.yaml | 177 +++------ core/extension/common_types.d.ts | 325 ++++++++++++++++ core/extension/frontend_types.d.ts | 361 ++++++++++++++++++ core/extension/index.d.ts | 28 ++ core/extension/index.js | 144 +++++++ core/extension/itwin-extension.d.ts | 92 +++++ core/extension/package.json | 56 +++ core/extension/tsconfig.json | 14 + rush.json | 9 +- 10 files changed, 1078 insertions(+), 134 deletions(-) create mode 100644 core/extension/common_types.d.ts create mode 100644 core/extension/frontend_types.d.ts create mode 100644 core/extension/index.d.ts create mode 100644 core/extension/index.js create mode 100644 core/extension/itwin-extension.d.ts create mode 100644 core/extension/package.json create mode 100644 core/extension/tsconfig.json diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 4789da5a4c0a..7a23df63a6bc 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -48,7 +48,7 @@ }, { "name": "@itwin/appui-abstract", - "allowedCategories": [ "edit", "extensions", "frontend", "internal", "tools" ] + "allowedCategories": [ "common", "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/appui-layout-react", @@ -116,7 +116,7 @@ }, { "name": "@itwin/core-orbitgt", - "allowedCategories": [ "frontend", "internal" ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@itwin/core-quantity", @@ -240,7 +240,7 @@ }, { "name": "@itwin/webgl-compatibility", - "allowedCategories": [ "frontend", "internal" ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@microsoft/api-extractor", diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 0a03424765bb..d11aa4017da1 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -682,6 +682,39 @@ importers: supertest: 3.4.2 typescript: 4.4.4 + ../../core/extension: + specifiers: + '@bentley/itwin-client': workspace:* + '@itwin/appui-abstract': workspace:* + '@itwin/build-tools': workspace:* + '@itwin/core-bentley': workspace:* + '@itwin/core-common': workspace:* + '@itwin/core-frontend': workspace:* + '@itwin/core-geometry': workspace:* + '@itwin/core-orbitgt': workspace:* + '@itwin/core-quantity': workspace:* + '@itwin/eslint-plugin': workspace:* + '@itwin/webgl-compatibility': workspace:* + eslint: ^7.11.0 + rimraf: ^3.0.2 + typescript: ~4.4.0 + dependencies: + '@bentley/itwin-client': link:../../clients/itwin + '@itwin/appui-abstract': link:../../ui/appui-abstract + '@itwin/core-bentley': link:../bentley + '@itwin/core-common': link:../common + '@itwin/core-frontend': link:../frontend + '@itwin/core-geometry': link:../geometry + '@itwin/core-orbitgt': link:../orbitgt + '@itwin/core-quantity': link:../quantity + '@itwin/webgl-compatibility': link:../webgl-compatibility + devDependencies: + '@itwin/build-tools': link:../../tools/build + '@itwin/eslint-plugin': link:../../tools/eslint-plugin + eslint: 7.32.0 + rimraf: 3.0.2 + typescript: 4.4.4 + ../../core/frontend: specifiers: '@bentley/itwin-client': workspace:* @@ -6280,8 +6313,8 @@ packages: '@bentley/webpack-tools-core': 2.19.21_webpack@4.44.2 '@pmmmwh/react-refresh-webpack-plugin': 0.4.3_9f0995138d24e525eb86c097d82409c0 '@svgr/webpack': 5.5.0 - '@typescript-eslint/eslint-plugin': 4.26.0_254a60bd907cee05fd203cdf9e9086f0 - '@typescript-eslint/parser': 4.26.0_eslint@7.32.0+typescript@4.4.4 + '@typescript-eslint/eslint-plugin': 4.31.2_8f0416aa8ec58a469909c5c0f73069bc + '@typescript-eslint/parser': 4.31.2_eslint@7.32.0+typescript@4.4.4 babel-eslint: 10.1.0_eslint@7.32.0 babel-jest: 26.6.3_@babel+core@7.12.3 babel-loader: 8.1.0_427212bc1158d185e577033f19ca0757 @@ -6296,10 +6329,10 @@ packages: dotenv: 8.2.0 dotenv-expand: 5.1.0 eslint: 7.32.0 - eslint-config-react-app: 6.0.0_587eb56c66291e3ab94b46708696c3be + eslint-config-react-app: 6.0.0_1aeedec7f5157d0e02e45ad499760247 eslint-plugin-flowtype: 5.10.0_eslint@7.32.0 eslint-plugin-import: 2.23.4_eslint@7.32.0 - eslint-plugin-jest: 24.7.0_537c812b64b0470fabb72cea3d22f29e + eslint-plugin-jest: 24.7.0_1597ebf22056641fa858351a9409f475 eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 eslint-plugin-react: 7.24.0_eslint@7.32.0 eslint-plugin-react-hooks: 4.2.0_eslint@7.32.0 @@ -6381,8 +6414,8 @@ packages: '@bentley/webpack-tools-core': 2.19.21_webpack@4.44.2 '@pmmmwh/react-refresh-webpack-plugin': 0.4.3_9f0995138d24e525eb86c097d82409c0 '@svgr/webpack': 5.5.0 - '@typescript-eslint/eslint-plugin': 4.26.0_254a60bd907cee05fd203cdf9e9086f0 - '@typescript-eslint/parser': 4.26.0_eslint@7.32.0+typescript@4.4.4 + '@typescript-eslint/eslint-plugin': 4.31.2_8f0416aa8ec58a469909c5c0f73069bc + '@typescript-eslint/parser': 4.31.2_eslint@7.32.0+typescript@4.4.4 babel-eslint: 10.1.0_eslint@7.32.0 babel-jest: 26.6.3_@babel+core@7.12.3 babel-loader: 8.1.0_427212bc1158d185e577033f19ca0757 @@ -6397,10 +6430,10 @@ packages: dotenv: 8.2.0 dotenv-expand: 5.1.0 eslint: 7.32.0 - eslint-config-react-app: 6.0.0_587eb56c66291e3ab94b46708696c3be + eslint-config-react-app: 6.0.0_1aeedec7f5157d0e02e45ad499760247 eslint-plugin-flowtype: 5.10.0_eslint@7.32.0 eslint-plugin-import: 2.23.4_eslint@7.32.0 - eslint-plugin-jest: 24.7.0_537c812b64b0470fabb72cea3d22f29e + eslint-plugin-jest: 24.7.0_1597ebf22056641fa858351a9409f475 eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 eslint-plugin-react: 7.24.0_eslint@7.32.0 eslint-plugin-react-hooks: 4.2.0_eslint@7.32.0 @@ -6694,9 +6727,6 @@ packages: '@itwin/core-bentley': 3.0.0-extension.1 '@itwin/core-common': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 oidc-client: 1.11.5 - transitivePeerDependencies: - - '@bentley/itwin-client' - - '@itwin/core-geometry' dev: false /@itwin/certa/3.0.0-extension.1: @@ -6898,9 +6928,6 @@ packages: '@itwin/core-bentley': 3.0.0-extension.1 '@itwin/core-common': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 openid-client: 4.9.1 - transitivePeerDependencies: - - '@bentley/itwin-client' - - '@itwin/core-geometry' dev: false /@jest/console/26.6.2: @@ -8263,32 +8290,6 @@ packages: '@types/node': 14.14.31 optional: true - /@typescript-eslint/eslint-plugin/4.26.0_254a60bd907cee05fd203cdf9e9086f0: - resolution: {integrity: sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': 4.26.0_eslint@7.32.0+typescript@4.4.4 - '@typescript-eslint/parser': 4.26.0_eslint@7.32.0+typescript@4.4.4 - '@typescript-eslint/scope-manager': 4.26.0 - debug: 4.3.2 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - lodash: 4.17.21 - regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.4.4 - typescript: 4.4.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/eslint-plugin/4.31.2_8f0416aa8ec58a469909c5c0f73069bc: resolution: {integrity: sha512-w63SCQ4bIwWN/+3FxzpnWrDjQRXVEGiTt9tJTRptRXeFvdZc/wLiz3FQUwNQ2CVoRGI6KUWMNUj/pk63noUfcA==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8312,7 +8313,6 @@ packages: typescript: 4.4.4 transitivePeerDependencies: - supports-color - dev: false /@typescript-eslint/experimental-utils/3.10.1_eslint@7.32.0+typescript@4.4.4: resolution: {integrity: sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==} @@ -8330,24 +8330,6 @@ packages: - supports-color - typescript - /@typescript-eslint/experimental-utils/4.26.0_eslint@7.32.0+typescript@4.4.4: - resolution: {integrity: sha512-TH2FO2rdDm7AWfAVRB5RSlbUhWxGVuxPNzGT7W65zVfl8H/WeXTk1e69IrcEVsBslrQSTDKQSaJD89hwKrhdkw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 4.26.0 - '@typescript-eslint/types': 4.26.0 - '@typescript-eslint/typescript-estree': 4.26.0_typescript@4.4.4 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/experimental-utils/4.31.2_eslint@7.32.0+typescript@4.4.4: resolution: {integrity: sha512-3tm2T4nyA970yQ6R3JZV9l0yilE2FedYg8dcXrTar34zC9r6JB7WyBQbpIVongKPlhEMjhQ01qkwrzWy38Bk1Q==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8364,7 +8346,6 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: false /@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.4.4: resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} @@ -8384,26 +8365,6 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.26.0_eslint@7.32.0+typescript@4.4.4: - resolution: {integrity: sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 4.26.0 - '@typescript-eslint/types': 4.26.0 - '@typescript-eslint/typescript-estree': 4.26.0_typescript@4.4.4 - debug: 4.3.2 - eslint: 7.32.0 - typescript: 4.4.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser/4.31.2_eslint@7.32.0+typescript@4.4.4: resolution: {integrity: sha512-EcdO0E7M/sv23S/rLvenHkb58l3XhuSZzKf6DBvLgHqOYdL6YFMYVtreGFWirxaU2mS1GYDby3Lyxco7X5+Vjw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8422,15 +8383,6 @@ packages: typescript: 4.4.4 transitivePeerDependencies: - supports-color - dev: false - - /@typescript-eslint/scope-manager/4.26.0: - resolution: {integrity: sha512-G6xB6mMo4xVxwMt5lEsNTz3x4qGDt0NSGmTBNBPJxNsrTXJSm21c6raeYroS2OwQsOyIXqKZv266L/Gln1BWqg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.26.0 - '@typescript-eslint/visitor-keys': 4.26.0 - dev: true /@typescript-eslint/scope-manager/4.31.2: resolution: {integrity: sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w==} @@ -8438,7 +8390,6 @@ packages: dependencies: '@typescript-eslint/types': 4.31.2 '@typescript-eslint/visitor-keys': 4.31.2 - dev: false /@typescript-eslint/scope-manager/4.33.0: resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} @@ -8452,11 +8403,6 @@ packages: resolution: {integrity: sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - /@typescript-eslint/types/4.26.0: - resolution: {integrity: sha512-rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - /@typescript-eslint/types/4.31.2: resolution: {integrity: sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -8487,27 +8433,6 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/typescript-estree/4.26.0_typescript@4.4.4: - resolution: {integrity: sha512-GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.26.0 - '@typescript-eslint/visitor-keys': 4.26.0 - debug: 4.3.2 - globby: 11.0.4 - is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.4.4 - typescript: 4.4.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree/4.31.2_typescript@4.4.4: resolution: {integrity: sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8555,14 +8480,6 @@ packages: dependencies: eslint-visitor-keys: 1.3.0 - /@typescript-eslint/visitor-keys/4.26.0: - resolution: {integrity: sha512-cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.26.0 - eslint-visitor-keys: 2.1.0 - dev: true - /@typescript-eslint/visitor-keys/4.31.2: resolution: {integrity: sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -12035,7 +11952,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-react-app/6.0.0_587eb56c66291e3ab94b46708696c3be: + /eslint-config-react-app/6.0.0_1aeedec7f5157d0e02e45ad499760247: resolution: {integrity: sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -12056,14 +11973,14 @@ packages: eslint-plugin-testing-library: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 4.26.0_254a60bd907cee05fd203cdf9e9086f0 - '@typescript-eslint/parser': 4.26.0_eslint@7.32.0+typescript@4.4.4 + '@typescript-eslint/eslint-plugin': 4.31.2_8f0416aa8ec58a469909c5c0f73069bc + '@typescript-eslint/parser': 4.31.2_eslint@7.32.0+typescript@4.4.4 babel-eslint: 10.1.0_eslint@7.32.0 confusing-browser-globals: 1.0.10 eslint: 7.32.0 eslint-plugin-flowtype: 5.10.0_eslint@7.32.0 eslint-plugin-import: 2.23.4_eslint@7.32.0 - eslint-plugin-jest: 24.7.0_537c812b64b0470fabb72cea3d22f29e + eslint-plugin-jest: 24.7.0_1597ebf22056641fa858351a9409f475 eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 eslint-plugin-react: 7.24.0_eslint@7.32.0 eslint-plugin-react-hooks: 4.2.0_eslint@7.32.0 @@ -12160,7 +12077,7 @@ packages: requireindex: 1.1.0 dev: false - /eslint-plugin-jest/24.7.0_537c812b64b0470fabb72cea3d22f29e: + /eslint-plugin-jest/24.7.0_1597ebf22056641fa858351a9409f475: resolution: {integrity: sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==} engines: {node: '>=10'} peerDependencies: @@ -12170,7 +12087,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 4.26.0_254a60bd907cee05fd203cdf9e9086f0 + '@typescript-eslint/eslint-plugin': 4.31.2_8f0416aa8ec58a469909c5c0f73069bc '@typescript-eslint/experimental-utils': 4.33.0_eslint@7.32.0+typescript@4.4.4 eslint: 7.32.0 transitivePeerDependencies: diff --git a/core/extension/common_types.d.ts b/core/extension/common_types.d.ts new file mode 100644 index 000000000000..a1694d67b3be --- /dev/null +++ b/core/extension/common_types.d.ts @@ -0,0 +1,325 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +// Enums (note these are all real!) +export { + BackgroundFill, + BackgroundMapType, + BatchType, + BisCodeSpec, + BriefcaseIdValue, + ChangedValueState, + ChangeOpCode, + ChangesetType, + ColorByName, + CommonLoggerCategory, + ECSqlSystemProperty, + ECSqlValueType, + ElementGeometryOpcode, + FeatureOverrideType, + FillDisplay, + FillFlags, + FontType, + GeoCoordStatus, + GeometryClass, + GeometryStreamFlags, + GeometrySummaryVerbosity, + GlobeMode, + GridOrientationType, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + MonochromeMode, + Npc, + PlanarClipMaskMode, + PlanarClipMaskPriority, + QueryRowFormat, + Rank, + RenderMode, + RpcContentType, + RpcEndpoint, + RpcProtocolEvent, + RpcRequestEvent, + RpcRequestStatus, + RpcResponseCacheControl, + SectionType, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + SyncMode, + TerrainHeightOriginMode, + TextureMapUnits, + ThematicDisplayMode, + ThematicGradientColorScheme, + ThematicGradientMode, + TxnAction, + TypeOfChange, +} from "@itwin/core-common"; + +// Interfaces +export type { + AdditionalTransformProps, + AffineTransformProps, + AmbientLightProps, + AnalysisStyleDisplacementProps, + AnalysisStyleProps, + AnalysisStyleThematicProps, + AppearanceOverrideProps, + AreaFillProps, + AuxCoordSystem2dProps, + AuxCoordSystem3dProps, + AuxCoordSystemProps, + BackgroundMapProps, + BaseReaderOptions, + BRepPrimitive, + BriefcaseDownloader, + BriefcaseProps, + CalloutProps, + CameraProps, + Carto2DDegreesProps, + CartographicProps, + CategoryProps, + CategorySelectorProps, + ChangedElements, + ChangedEntities, + ChangesetIdWithIndex, + ChangesetIndexAndId, + ChangesetRange, + ChannelRootAspectProps, + ClipStyleProps, + CodeProps, + ContextRealityModelProps, + ContextRealityModelsContainer, + CreateIModelProps, + CreateSnapshotIModelProps, + CutStyleProps, + DefinitionElementProps, + DeletedElementGeometryChange, + DeprecatedBackgroundMapProps, + DisplayStyle3dProps, + DisplayStyle3dSettingsProps, + DisplayStyleLoadProps, + DisplayStyleModelAppearanceProps, + DisplayStyleOverridesOptions, + DisplayStylePlanarClipMaskProps, + DisplayStyleProps, + DisplayStyleSettingsOptions, + DisplayStyleSettingsProps, + DisplayStyleSubCategoryProps, + DynamicGraphicsRequest2dProps, + DynamicGraphicsRequest3dProps, + DynamicGraphicsRequestProps, + EcefLocationProps, + ElementAspectProps, + ElementGeometryDataEntry, + ElementIdsAndRangesProps, + ElementLoadOptions, + ElementLoadProps, + ElementProps, + EmphasizeElementsProps, + EntityIdAndClassId, + EntityProps, + EntityQueryParams, + EnvironmentProps, + ExtantElementGeometryChange, + ExternalSourceAspectProps, + FeatureAppearanceProps, + FeatureAppearanceProvider, + FeatureAppearanceSource, + FilePropertyProps, + FlatBufferGeometryStream, + FontMapProps, + FontProps, + FresnelSettingsProps, + FunctionalElementProps, + GeocentricTransformProps, + GeodeticDatumProps, + GeodeticEllipsoidProps, + GeodeticTransformProps, + GeographicCRSProps, + GeometricElement2dProps, + GeometricElement3dProps, + GeometricElementProps, + GeometricModel2dProps, + GeometricModel3dProps, + GeometricModelProps, + GeometryAppearanceProps, + GeometryContainmentRequestProps, + GeometryContainmentResponseProps, + GeometryPartInstanceProps, + GeometryPartProps, + GeometryPrimitive, + GeometryStreamEntryProps, + GeometryStreamHeaderProps, + GeometryStreamIteratorEntry, + GeometrySummaryOptions, + GeometrySummaryRequestProps, + GraphicsRequestProps, + GridFileDefinitionProps, + GridFileTransformProps, + GroundPlaneProps, + Helmert2DWithZOffsetProps, + HemisphereLightsProps, + HorizontalCRSExtentProps, + HorizontalCRSProps, + HttpServerRequest, + HttpServerResponse, + ImageGraphicProps, + ImagePrimitive, + IModelEncryptionProps, + IModelProps, + IModelRpcOpenProps, + IModelRpcProps, + InformationPartitionElementProps, + IpcSocket, + IpcSocketBackend, + IpcSocketFrontend, + JsonGeometryStream, + LightSettingsProps, + LineStyleProps, + LocalBriefcaseProps, + Localization, + MassPropertiesRequestProps, + MassPropertiesResponseProps, + MaterialProps, + ModelClipGroupProps, + ModelGeometryChanges, + ModelGeometryChangesProps, + ModelIdAndGeometryGuid, + ModelLoadProps, + ModelProps, + ModelQueryParams, + ModelSelectorProps, + NavigationBindingValue, + NavigationValue, + OpenAPIInfo, + OpenBriefcaseOptions, + OpenBriefcaseProps, + OpenDbKey, + PartReference, + PersistentGraphicsRequestProps, + PhysicalElementProps, + PhysicalTypeProps, + Placement2dProps, + Placement3dProps, + PlanarClipMaskProps, + PlanProjectionSettingsProps, + PositionalVectorTransformProps, + ProjectionProps, + QueryLimit, + QueryOptions, + QueryQuota, + RelatedElementProps, + RelationshipProps, + RenderMaterialAssetProps, + RenderMaterialProps, + RenderTimelineLoadProps, + RenderTimelineProps, + RepositoryLinkProps, + RequestNewBriefcaseProps, + RgbColorProps, + RootSubjectProps, + RpcActivity, + SectionDrawingLocationProps, + SectionDrawingProps, + SectionDrawingViewProps, + SerializedRpcActivity, + SessionProps, + SheetProps, + SkyBoxImageProps, + SkyBoxProps, + SkyCubeProps, + SnapshotOpenOptions, + SolarLightProps, + SolarShadowSettingsProps, + SourceAndTarget, + SpatialClassifierFlagsProps, + SpatialClassifierProps, + SpatialClassifiersContainer, + SpatialViewDefinitionProps, + SubCategoryProps, + SubjectProps, + TerrainProps, + TextStringPrimitive, + TextStringProps, + TextureData, + TextureLoadProps, + TextureMapProps, + TextureProps, + ThematicDisplayProps, + ThematicDisplaySensorProps, + ThematicDisplaySensorSettingsProps, + ThematicGradientSettingsProps, + ThumbnailFormatProps, + ThumbnailProps, + TileVersionInfo, + TypeDefinitionElementProps, + UrlLinkProps, + VerticalCRSProps, + ViewAttachmentLabelProps, + ViewAttachmentProps, + ViewDefinition2dProps, + ViewDefinition3dProps, + ViewDefinitionProps, + ViewDetails3dProps, + ViewDetailsProps, + ViewFlagProps, + ViewQueryParams, + ViewStateLoadProps, + ViewStateProps, + WhiteOnWhiteReversalProps, + XyzRotationProps, +} from "@itwin/core-common" + +// Types +export { + AxisAlignedBox3d, + AxisAlignedBox3dProps, + BackgroundMapProviderName, + Base64EncodedString, + BriefcaseId, + ChangesetId, + ChangesetIndex, + ChangesetIndexOrId, + CodeScopeProps, + ColorDefProps, + CreateEmptySnapshotIModelProps, + DanishSystem34Region, + EasingFunction, + ElementAlignedBox2d, + ElementAlignedBox3d, + ElementGeometryChange, + ElementGraphicsRequestProps, + EntityIdAndClassIdIterable, + GeodeticTransformMethod, + GeometryStreamPrimitive, + GeometryStreamProps, + GridFileDirection, + GridFileFormat, + HemisphereEnum, + ImageGraphicCornersProps, + IModelConnectionProps, + IModelVersionProps, + InterpolationFunction, + IpcListener, + LocalAlignedBox3d, + LocalDirName, + LocalFileName, + PersistentBackgroundMapProps, + Placement, + PlacementProps, + Point2dProps, + ProjectionMethod, + RemoveFunction, + RgbFactorProps, + StandaloneOpenOptions, + TerrainProviderName, + TweenCallback, + UnitType, + UpdateCallback, + ViewFlagOverrides, + ViewFlagsProperties, +} from "@itwin/core-common" \ No newline at end of file diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts new file mode 100644 index 000000000000..8e72a580a8cf --- /dev/null +++ b/core/extension/frontend_types.d.ts @@ -0,0 +1,361 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +// Interfaces +export type { + Animator, + BatchOptions, + BeButtonEventProps, + BeTouchEventProps, + BeWheelEventProps, + BlankConnectionProps, + CanvasDecoration, + ChangeViewedModel2dOptions, + ComputeChordToleranceArgs, + CreateTextureArgs, + CreateTextureFromSourceArgs, + CustomGraphicBuilderOptions, + Decorator, + DepthPointOptions, + DepthRangeNpc, + ExtentLimits, + FeatureOverrideProvider, + FrontendHubAccess, + FrontendSecurityOptions, + FuzzySearchResult, + GlobalAlignmentOptions, + GlobalLocation, + GlobalLocationArea, + GpuMemoryLimits, + GraphicArc, + GraphicArc2d, + GraphicBranchOptions, + GraphicBuilderOptions, + GraphicLineString, + GraphicLineString2d, + GraphicLoop, + GraphicPath, + GraphicPointString, + GraphicPointString2d, + GraphicPolyface, + GraphicPrimitive2d, + GraphicShape, + GraphicShape2d, + GraphicSolidPrimitive, + HitListHolder, + IModelAppOptions, + IModelIdArg, + IpcAppOptions, + MarginOptions, + NativeAppOpts, + OffScreenViewportOptions, + OnViewExtentsError, + OsmBuildingDisplayOptions, + ParsedKeyin, + ParseKeyinError, + ParticleCollectionBuilder, + ParticleCollectionBuilderParams, + ParticleProps, + PickableGraphicOptions, + ScreenSpaceEffectBuilder, + ScreenSpaceEffectBuilderParams, + ScreenSpaceEffectContext, + ScreenSpaceEffectSource, + SelectAddEvent, + SelectedViewportChangedArgs, + SelectRemoveEvent, + SelectReplaceEvent, + TextureCacheOwnership, + TextureImage, + TileContent, + TiledGraphicsProvider, + TileDrawArgParams, + TileParams, + TileTreeDiscloser, + TileTreeOwner, + TileTreeParams, + TileTreeSupplier, + ToolAssistanceInstruction, + ToolAssistanceInstructions, + ToolAssistanceKeyboardInfo, + ToolAssistanceSection, + ToolTipOptions, + Uniform, + UniformArrayParams, + UniformContext, + UniformParams, + ViewAnimationOptions, + ViewChangeOptions, + ViewClipEventHandler, + ViewCreator2dOptions, + ViewCreator3dOptions, + ViewportDecorator, + ViewportGraphicBuilderOptions, + ZoomToOptions, +} from "@itwin/core-frontend"; + +// Types +export type { + CanvasDecorationList, + DownloadBriefcaseId, + DownloadBriefcaseOptions, + FlashSettingsOptions, + GpuMemoryLimit, + GraphicList, + GraphicPrimitive, + MarkerFillStyle, + MarkerImage, + MarkerTextAlign, + MarkerTextBaseline, + OnFlashedIdChangedEventArgs, + ParseKeyinResult, + SelectionSetEvent, + TextureCacheKey, + TextureImageSource, + TextureOwnership, + ToolList, + ToolType, +} from "@itwin/core-frontend"; + +// Enums (note these are all real!) +export { + ACSDisplayOptions, + ACSType, + ActivityMessageEndReason, + BeButton, + BeModifierKeys, + ClipEventType, + ContextRotationId, + CoordinateLockOverrides, + CoordSource, + CoordSystem, + DepthPointSource, + EventHandled, + FlashMode, + FrontendLoggerCategory, + GraphicType, + HitDetailType, + HitGeomType, + HitParentGeomType, + HitPriority, + HitSource, + InputSource, + KeyinParseError, + LocateAction, + LocateFilterStatus, + ManipulatorToolEvent, + MessageBoxIconType, + MessageBoxType, + MessageBoxValue, + OutputMessageAlert, + OutputMessagePriority, + OutputMessageType, + ParseAndRunResult, + SelectionMethod, + SelectionMode, + SelectionProcessing, + SelectionSetEventType, + SnapHeat, + SnapMode, + SnapStatus, + StandardViewId, + StartOrResume, + TextureTransparency, + TileBoundingBoxes, + TileGraphicType, + TileLoadPriority, + TileLoadStatus, + TileTreeLoadStatus, + TileVisibility, + ToolAssistanceImage, + ToolAssistanceInputMethod, + UniformType, + VaryingType, + ViewStatus, + ViewUndoEvent, +} from "@itwin/core-frontend"; + +// Abstract Classes +export type { + AuxCoordSystemState, + BriefcaseNotificationHandler, + DisplayStyleState, + GeometricModelState, + GraphicBuilder, + IModelConnection, + InputCollector, + // InteractiveTool, @REAL + MarkerSet, + // MeasureElementTool, @TOOL-IMPL + NotificationHandler, + // PrimitiveTool, @REAL + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + RenderSystem, + SkyBox, + Tile, + TileTree, + TileTreeReference, + ViewManip, + Viewport, + ViewPose, + ViewState, + ViewState2d, + ViewState3d, + // ViewTool @REAL +} from "@itwin/core-frontend"; + +// Classes +export type { + // AccuDrawHintBuilder, @REAL + AccuSnap, + ActivityMessageDetails, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + // BeButtonEvent, @REAL + BeButtonState, + BeTouchEvent, + BeWheelEvent, + BingElevationProvider, + BingLocationProvider, + BlankConnection, + BriefcaseConnection, + BriefcaseTxns, + CategorySelectorState, + ChangeFlags, + CheckpointConnection, + Cluster, + ContextRealityModelState, + DecorateContext, + Decorations, + DisclosedTileTreeSet, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingModelState, + DrawingViewState, + DynamicsContext, + ElementLocateManager, + ElementPicker, + ElementState, + // EmphasizeElements, @REAL + EntityState, + Environment, + EventController, + // FitViewTool, @TOOL-IMPL + FlashSettings, + // FlyViewTool, @TOOL-IMPL + FrustumAnimator, + FuzzySearch, + FuzzySearchResults, + GeometricModel2dState, + GeometricModel3dState, + GlobeAnimator, + GraphicalEditingScope, + // GraphicBranch, @REAL + HiliteSet, + HitDetail, + HitList, + IconSprites, + // IdleTool, @TOOL-IMPL + // IModelApp, @BANNED + IModelRoutingContext, + IntersectDetail, + // IpcApp, @BANNED + LocateOptions, + // LocateResponse, @REAL + // LookAndMoveTool, @TOOL-IMPL + // LookViewTool, @TOOL-IMPL + MarginPercent, + Marker, + // MeasureAreaByPointsTool, @TOOL-IMPL + // MeasureAreaTool, @TOOL-IMPL + // MeasureDistanceTool, @TOOL-IMPL + // MeasureLengthTool, @TOOL-IMPL + // MeasureLocationTool, @TOOL-IMPL + // MeasureVolumeTool, @TOOL-IMPL + ModelSelectorState, + ModelState, + NativeApp, + NativeAppAuthorization, + NotificationManager, + NotifyMessageDetails, + OffScreenViewport, + OrthographicViewState, + // PanViewTool, @TOOL-IMPL + PhysicalModelState, + RenderContext, + // RotateViewTool, @TOOL-IMPL + Scene, + SceneContext, + ScreenViewport, + // ScrollViewTool, @TOOL-IMPL + SectionDrawingModelState, + SelectionSet, + // SelectionTool, @TOOL-IMPL + // SetupCameraTool, @TOOL-IMPL + // SetupWalkCameraTool, @TOOL-IMPL + SheetModelState, + SheetViewState, + SkyCube, + SkyGradient, + SkySphere, + SnapDetail, + SnapshotConnection, + SpatialLocationModelState, + SpatialModelState, + SpatialViewState, + Sprite, + SpriteLocation, + StandardView, + // StandardViewTool, @TOOL-IMPL + Storage, + TentativePoint, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannel, + TileRequestChannels, + TileRequestChannelStatistics, + Tiles, + TileUsageMarker, + // Tool, @REAL + ToolAdmin, + // ToolAssistance, @REAL + ToolRegistry, + ToolSettings, + TwoWayViewportSync, + // ViewClipByElementTool, @TOOL-IMPL + // ViewClipByPlaneTool, @TOOL-IMPL + // ViewClipByRangeTool, @TOOL-IMPL + // ViewClipByShapeTool, @TOOL-IMPL + // ViewClipClearTool, @TOOL-IMPL + ViewClipDecorationProvider, + // ViewClipTool, @TOOL-IMPL + ViewCreator2d, + ViewCreator3d, + // ViewGlobeBirdTool, @TOOL-IMPL + // ViewGlobeIModelTool, @TOOL-IMPL + // ViewGlobeLocationTool, @TOOL-IMPL + // ViewGlobeSatelliteTool, @TOOL-IMPL + ViewingSpace, + ViewManager, + // ViewRect, @REAL + // ViewRedoTool, @TOOL-IMPL + // ViewToggleCameraTool, @TOOL-IMPL + // ViewUndoTool, @TOOL-IMPL + // WalkViewTool, @TOOL-IMPL + // WindowAreaTool, @TOOL-IMPL + // ZoomViewTool @TOOL-IMPL +} from "@itwin/core-frontend"; + +// namespaces (minus conflicts) +export type { + // EditManipulator, @REAL + // FeatureSymbology, @REAL + Frustum2d, + PerModelCategoryVisibility, + // Pixel @REAL +} from "@itwin/core-frontend"; diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts new file mode 100644 index 000000000000..adc21ef7e7ed --- /dev/null +++ b/core/extension/index.d.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +export * from "./common_types"; +export * from "./frontend_types"; +export { + InteractiveTool, + PrimitiveTool, + ViewTool, + Tool, + ToolAssistance, + BeButtonEvent, + ViewRect, + Pixel, + LocateResponse, + EditManipulator, + AccuDrawHintBuilder, + EmphasizeElements, + FeatureSymbology, + GraphicBranch, + NotifyMessageDetails, + ExtensionHost, +} from "@itwin/core-frontend"; + +export { ColorDef } from "@itwin/core-common"; + +export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise diff --git a/core/extension/index.js b/core/extension/index.js new file mode 100644 index 000000000000..6d4c939db9e4 --- /dev/null +++ b/core/extension/index.js @@ -0,0 +1,144 @@ +const globalSymbol = Symbol.for("itwin.core.frontend.globals"); +const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); + +// re-export tool stuff +export const { + InteractiveTool, + PrimitiveTool, + ViewTool, + Tool, + + ToolAssistance, + BeButtonEvent, + ViewRect, + Pixel, + LocateResponse, + EditManipulator, + AccuDrawHintBuilder, + EmphasizeElements, + FeatureSymbology, + GraphicBranch, + NotifyMessageDetails, + + // FIXME + ExtensionHost, +} = ext.exports; + +// re-export enums +export const { + // core-frontend: + ACSDisplayOptions, + ACSType, + ActivityMessageEndReason, + BeButton, + BeModifierKeys, + ClipEventType, + ContextRotationId, + CoordinateLockOverrides, + CoordSource, + CoordSystem, + DepthPointSource, + EventHandled, + FlashMode, + FrontendLoggerCategory, + GraphicType, + HitDetailType, + HitGeomType, + HitParentGeomType, + HitPriority, + HitSource, + InputSource, + KeyinParseError, + LocateAction, + LocateFilterStatus, + ManipulatorToolEvent, + MessageBoxIconType, + MessageBoxType, + MessageBoxValue, + OutputMessageAlert, + OutputMessagePriority, + OutputMessageType, + ParseAndRunResult, + SelectionMethod, + SelectionMode, + SelectionProcessing, + SelectionSetEventType, + SnapHeat, + SnapMode, + SnapStatus, + StandardViewId, + StartOrResume, + TextureTransparency, + TileBoundingBoxes, + TileGraphicType, + TileLoadPriority, + TileLoadStatus, + TileTreeLoadStatus, + TileVisibility, + ToolAssistanceImage, + ToolAssistanceInputMethod, + UniformType, + VaryingType, + ViewStatus, + ViewUndoEvent, + // core-common: + BackgroundFill, + BackgroundMapType, + BatchType, + BisCodeSpec, + BriefcaseIdValue, + ChangedValueState, + ChangeOpCode, + ChangesetType, + ColorByName, + CommonLoggerCategory, + ECSqlSystemProperty, + ECSqlValueType, + ElementGeometryOpcode, + FeatureOverrideType, + FillDisplay, + FillFlags, + FontType, + GeoCoordStatus, + GeometryClass, + GeometryStreamFlags, + GeometrySummaryVerbosity, + GlobeMode, + GridOrientationType, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + MonochromeMode, + Npc, + PlanarClipMaskMode, + PlanarClipMaskPriority, + QueryRowFormat, + Rank, + RenderMode, + RpcContentType, + RpcEndpoint, + RpcProtocolEvent, + RpcRequestEvent, + RpcRequestStatus, + RpcResponseCacheControl, + SectionType, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + SyncMode, + TerrainHeightOriginMode, + TextureMapUnits, + ThematicDisplayMode, + ThematicGradientColorScheme, + ThematicGradientMode, + TxnAction, + TypeOfChange, +} = ext.exports; + +// re-export commmon +export const { ColorDef } = ext.exports; + +// export extension stuff +export const { registerTool } = ext.api; diff --git a/core/extension/itwin-extension.d.ts b/core/extension/itwin-extension.d.ts new file mode 100644 index 000000000000..faf3c2224a3e --- /dev/null +++ b/core/extension/itwin-extension.d.ts @@ -0,0 +1,92 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +declare module "itwin-extension" { + /** + * @alpha + */ + export type ActivationEvent = + | "onIModelAppStartup" + | "onIModelAppStartupFinished" + | "onIModelConnected" + | `onCommand:${string}` // key-ins too? + | "onSelectionChanged" + | `onSchemaLoaded:${string}`; // for civil + + /** + * @alpha + */ + export interface ContributionPoint { + commands?: Command[]; + tools?: Tool[]; + } + + /** + * @alpha + */ + export interface ExtensionManifest { + /** The extension name */ + readonly name: string; + /** The extension display name */ + readonly displayName?: string; + /** The extension version */ + readonly version: string; + /** The minimum compatible version of iTwin.js used */ + readonly coreVersion: string; + /** The minimum compatible version of iTwin.js Extension Api used */ + readonly apiVersion: string; + /** The extension description */ + readonly description?: string; + /** The extension author */ + readonly author: string; + /** List of all Activation Events */ + readonly activationEvents: ActivationEvent[]; + /** List of all Contribution Points */ + readonly contributionPoints: ContributionPoint[]; + } + + /** + * @alpha + */ + export interface Command { + name: string; + description?: string; + arguments?: any[]; + execute: (args: any) => void; + } + + export namespace Commands { + export function registerCommand(command: Command): void; + export function executeCommand(command: string, ...args: any[]): void; + } + + /** + * @alpha + */ + export interface Tool { + readonly name: string; + readonly toolId: string; + readonly icon: HTMLElement; + readonly label?: string; + tooltip?: string; + arguments?: any[]; + readonly execute: (...args: any[]) => void; + } + + export namespace Tools { + /** Registers a tool that can be invoked */ + export function registerTool(tool: Tool); + + /** Executes the tool denoted by the identifier. + * + * @param toolId Identifier of the tool to execute + * @param args Parameters passed to the tool when executed. + */ + export function executeTool( + toolId: string, + ...args: any[] + ): Promise; + } +} diff --git a/core/extension/package.json b/core/extension/package.json new file mode 100644 index 000000000000..68aa181c6fc7 --- /dev/null +++ b/core/extension/package.json @@ -0,0 +1,56 @@ +{ + "name": "@itwin/core-extension", + "version": "3.0.0-extension.1", + "description": "", + "typings": "index.d.ts", + "license": "MIT", + "repository": { + "type": "git" + }, + "scripts": { + "compile": "", + "build": "", + "build:ci": "", + "clean": "rimraf .rush/temp/package-deps*.json", + "cover": "", + "docs": "", + "lint": "", + "// lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", + "test": "" + }, + "keywords": [ + "Bentley", + "BIM", + "iModel", + "iTwin", + "Extension" + ], + "author": { + "name": "Bentley Systems, Inc.", + "url": "http://www.bentley.com" + }, + "dependencies": { + "@itwin/core-frontend": "workspace:*", + "@itwin/core-bentley": "workspace:*", + "@itwin/core-geometry": "workspace:*", + "@itwin/core-common": "workspace:*", + "@itwin/core-quantity": "workspace:*", + "@bentley/itwin-client": "workspace:*", + "@itwin/core-orbitgt": "workspace:*", + "@itwin/appui-abstract": "workspace:*", + "@itwin/webgl-compatibility": "workspace:*" + }, + "devDependencies": { + "@itwin/build-tools": "workspace:*", + "@itwin/eslint-plugin": "workspace:*", + "eslint": "^7.11.0", + "rimraf": "^3.0.2", + "typescript": "~4.4.0" + }, + "eslintConfig": { + "plugins": [ + "@bentley" + ], + "extends": "plugin:@bentley/imodeljs-recommended" + } +} \ No newline at end of file diff --git a/core/extension/tsconfig.json b/core/extension/tsconfig.json new file mode 100644 index 000000000000..c81a00de21cb --- /dev/null +++ b/core/extension/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "./node_modules/@itwin/build-tools/tsconfig-base.json", + "compilerOptions": { + "declaration": false, + "declarationMap": false, + "outDir": "./lib", + "module": "ES2020", + "moduleResolution": "node", + "isolatedModules": true, + "skipLibCheck": true, + "allowJs": true + }, + "include": ["./src/**/*.js", "./src/**/*.ts"] +} diff --git a/rush.json b/rush.json index 87a46f220178..6c474ad81135 100644 --- a/rush.json +++ b/rush.json @@ -34,6 +34,13 @@ "url": "https://github.com/iTwin/itwinjs-core" }, "projects": [ + { + "packageName": "@itwin/core-extension", + "projectFolder": "core/extension", + "reviewCategory": "common", + "shouldPublish": true, + "versionPolicyName": "prerelease-monorepo-lockStep" + }, { "packageName": "@itwin/build-tools", "projectFolder": "tools/build", @@ -527,4 +534,4 @@ "versionPolicyName": "prerelease-monorepo-lockStep" } ] -} +} \ No newline at end of file From b092fadf559833dae1ee7492001d81d950c41f15 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 17 Nov 2021 13:09:53 -0600 Subject: [PATCH 02/76] Added extension changes to core-frontend --- core/frontend/src/IModelApp.ts | 14 +- core/frontend/src/core-frontend.ts | 13 +- core/frontend/src/extension/Extension.ts | 84 +++++++++++ core/frontend/src/extension/ExtensionAdmin.ts | 140 ++++++++++++++++++ core/frontend/src/extension/ExtensionHost.ts | 28 ++++ core/frontend/src/extension/ExtensionImpl.ts | 41 +++++ .../frontend/src/extension/ExtensionLoader.ts | 33 +++++ .../src/extension/ExtensionRuntime.ts | 86 +++++++++++ core/frontend/src/extension/extensions.ts | 25 ++++ 9 files changed, 456 insertions(+), 8 deletions(-) create mode 100644 core/frontend/src/extension/Extension.ts create mode 100644 core/frontend/src/extension/ExtensionAdmin.ts create mode 100644 core/frontend/src/extension/ExtensionHost.ts create mode 100644 core/frontend/src/extension/ExtensionImpl.ts create mode 100644 core/frontend/src/extension/ExtensionLoader.ts create mode 100644 core/frontend/src/extension/ExtensionRuntime.ts create mode 100644 core/frontend/src/extension/extensions.ts diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index a43704f6bf08..d3c6b73ebfa5 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -20,6 +20,7 @@ import { AccuDraw } from "./AccuDraw"; import { AccuSnap } from "./AccuSnap"; import * as auxCoordState from "./AuxCoordSys"; import * as categorySelectorState from "./CategorySelectorState"; +import { ExtensionAdmin } from "./extension/ExtensionAdmin"; import * as displayStyleState from "./DisplayStyleState"; import * as drawingViewState from "./DrawingViewState"; import { ElementLocateManager } from "./ElementLocateManager"; @@ -195,6 +196,11 @@ export class IModelApp { /** Event raised just before the frontend IModelApp is to be shut down */ public static readonly onBeforeShutdown = new BeEvent<() => void>(); + /** Event raised after IModelApp is finished starting up. + * @internal + */ + public static readonly onBeforeStartup = new BeEvent<() => void>(); + /** Provides authorization information for various frontend APIs */ public static authorizationClient?: AuthorizationClient; /** The [[ToolRegistry]] for this session. */ @@ -226,7 +232,6 @@ export class IModelApp { public static get accuDraw(): AccuDraw { return this._accuDraw; } /** The [[AccuSnap]] for this session. */ public static get accuSnap(): AccuSnap { return this._accuSnap; } - /** @internal */ public static get locateManager(): ElementLocateManager { return this._locateManager; } /** @internal */ public static get tentativePoint(): TentativePoint { return this._tentativePoint; } @@ -263,6 +268,9 @@ export class IModelApp { */ public static readonly telemetry: TelemetryManager = new TelemetryManager(); + /** */ + public static readonly extensionAdmin = new ExtensionAdmin(); + /** Map of classFullName to EntityState class */ private static _entityClasses = new Map(); @@ -386,7 +394,8 @@ export class IModelApp { this.uiAdmin, ].forEach((sys) => sys.onInitialized()); - return this.quantityFormatter.onInitialized(); + await this.quantityFormatter.onInitialized(); + this.onBeforeStartup.raiseEvent(); } /** Must be called before the application exits to release any held resources. */ @@ -409,6 +418,7 @@ export class IModelApp { this._entityClasses.clear(); this.authorizationClient = undefined; this._initialized = false; + this.onBeforeStartup.clear(); } /** Controls how frequently the application polls for changes that may require a new animation frame to be requested. diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index 363c3416d1a1..fabfe0383bda 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -11,6 +11,7 @@ export * from "./BriefcaseConnection"; export * from "./BriefcaseTxns"; export * from "./CategorySelectorState"; export * from "./ChangeFlags"; +export * from "./CheckpointConnection"; export * from "./ContextRealityModelState"; export * from "./CoordSystem"; export * from "./DecorationsCache"; @@ -30,12 +31,12 @@ export * from "./FrustumAnimator"; export * from "./FuzzySearch"; export * from "./GeoServices"; export * from "./GlobeAnimator"; +export * from "./GraphicalEditingScope"; export * from "./HitDetail"; export * from "./ImageUtil"; export * from "./IModelApp"; export * from "./IModelConnection"; export * from "./IModelRoutingContext"; -export * from "./GraphicalEditingScope"; export * from "./IpcApp"; export * from "./LinePlaneIntersect"; export * from "./MarginPercent"; @@ -48,11 +49,7 @@ export * from "./NoRenderApp"; export * from "./NotificationManager"; export * from "./PerModelCategoryVisibility"; export * from "./PlanarClipMaskState"; -export * from "./quantity-formatting/QuantityFormatter"; -export * from "./quantity-formatting/BaseUnitFormattingSettingsProvider"; -export * from "./quantity-formatting/LocalUnitFormatProvider"; export * from "./RenderScheduleState"; -export * from "./CheckpointConnection"; export * from "./SelectionSet"; export * from "./SheetViewState"; export * from "./SpatialViewState"; @@ -73,9 +70,13 @@ export * from "./ViewPose"; export * from "./ViewRect"; export * from "./ViewState"; export * from "./ViewStatus"; +export * from "./extension/extensions"; export * from "./properties/AngleDescription"; export * from "./properties/FormattedQuantityDescription"; export * from "./properties/LengthDescription"; +export * from "./quantity-formatting/QuantityFormatter"; +export * from "./quantity-formatting/BaseUnitFormattingSettingsProvider"; +export * from "./quantity-formatting/LocalUnitFormatProvider"; export * from "./render/CanvasDecoration"; export * from "./render/Decorations"; export * from "./render/FeatureSymbology"; @@ -101,8 +102,8 @@ export * from "./render/VisibleFeature"; export * from "./render/webgl/PerformanceMetrics"; export * from "./render/webgl/Target"; export * from "./render/webgl/IModelFrameLifecycle"; -export * from "./tools/AccuDrawTool"; export * from "./tile/internal"; +export * from "./tools/AccuDrawTool"; export * from "./tools/ClipViewTool"; export * from "./tools/EditManipulator"; export * from "./tools/ElementSetTool"; diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts new file mode 100644 index 000000000000..ef4851a7c1d4 --- /dev/null +++ b/core/frontend/src/extension/Extension.ts @@ -0,0 +1,84 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ + +type ResolveFunc = (() => Promise); + +/** Defines the format of an Extension manifest */ +export interface ExtensionManifest { + readonly name: string; + readonly displayName?: string; + readonly version: string; + readonly description?: string; + /** The main module file to load. This should be a path to the javascript file + * e.g "./lib/main.js" + */ + readonly main?: string; + /** The version of iTwin.js Core. */ + readonly engines?: { itwinjs: string }; + /** List of activation events this Extension supports. */ + readonly activationEvents?: string[]; + readonly enableProposedApi?: boolean; +} + +export interface BuildExtensionManifest extends ExtensionManifest { + /** Only valid when the Extension is loaded at build-time. + * + * Defines how to load the Extension manifest and + */ + readonly module?: string; +} + +/** Describes an Extension that has already been downloaded and has a location files can be easily executed. */ +export interface LocalExtensionProps { + readonly manifest: ExtensionManifest; + readonly mainFunc?: ResolveFunc; + /** Identifies a location of the Extension that it can be loaded. + * + * WIP: + * - Could be a URL to the location of the Extension + * - Could be a file path to an installed location locally. + */ + // readonly location: string; +} + +/** Represents an Extension that we are attempting to load. + * @beta + */ +// export class PendingExtension { +// public resolve: ResolveFunc | undefined = undefined; +// public reject: RejectFunc | undefined = undefined; +// public promise: Promise; + +// public constructor(private _tarFileUrl: string, public loader: ExtensionLoader, public args?: string[]) { +// this.promise = new Promise(this.executor.bind(this)); +// } + +// public executor(resolve: ResolveFunc, reject: RejectFunc) { +// this.resolve = resolve; +// this.reject = reject; + +// const head = document.getElementsByTagName("head")[0]; +// if (!head) +// reject(new Error("no head element found")); + +// // create the script element. We handle onerror and resolve a ExtensionLoadResult failure in the onerror handler, +// // but we don't resolve success until the loaded extension calls "register" (see Extension.register) +// const scriptElement = document.createElement("script"); + +// scriptElement.onerror = this.cantLoad.bind(this); + +// scriptElement.async = true; +// scriptElement.src = this._tarFileUrl; +// head.insertBefore(scriptElement, head.lastChild); +// } + +// // called when we can't load the URL +// private cantLoad(_ev: string | Event) { +// this.resolve!(IModelApp.i18n.translate("iModelJs:ExtensionErrors.CantFind", { extensionUrl: this._tarFileUrl })); +// } +// } diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts new file mode 100644 index 000000000000..cdf746ee4ca1 --- /dev/null +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -0,0 +1,140 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ + +// import { Extension, ExtensionLoader, ExtensionManifest, LocalExtensionProps, PendingExtension } from "./Extension"; +import { IModelApp } from "../IModelApp"; +import { ExtensionManifest, LocalExtensionProps } from "./Extension"; +import { ExtensionLoader } from "./ExtensionLoader"; + +/** The Extensions loading system has 3 goals: + * 1. Only fetch what is needed when it is required + * 1. Load a manifest file + * 2. Load the the main module when necessary + * 2. Download the needed files from + * + * 3 ways to load an Extension into the system: + * + * 1. At build-time provide the function to load both the Extension Manifest and import the main module of the extension. + * The main module must contain the activate() function. + * 2. A minimum set of ExtensionLoaderProps that provide enough information to get the manifest + * + * An Extension can be in 3 different states: + * - Known + * - The Extension Admin has the minimal information needed to fetch the manifest for the Extension. + * knows the Extension exists but has not yet loaded the manifest + * - Installed + * - The Extension has the full manifest loaded and can be executed on the activation events + * - Disabled + * - The Extension has the full manifest but is not currently enabled and will not be executed based on the + * activation events. + */ + +type ResolveFunc = (() => Promise); +// type RejectFunc = ((arg: Error) => void); + +enum ActivationEvents { + onStartupApp = "onStartupApp", +} + +/** The Extension Admin controls the list of currently known, loaded and executing an Extension. + * Handles the loading of Extensions and maintains a list of the currently loaded Extensions. + * + * On application startup, an initial list of Extensions is gathered by searching in known locations for + * + * @alpha + */ +export class ExtensionAdmin { + /** The list of places to download an Extension. */ + private _extensionLoaders: ExtensionLoader[] = []; + + /** Defines the set of extensions that are currently known and can be invoked during activation events. */ + private _installedExtensions: Map = new Map(); + + /** + * Fired when an Extension has been added or removed. + */ + // public readonly onInstallExtension = new BeEvent<(added: readonly ExtensionProps[], removed: readonly ExtensionProps[]) => void>(); + + public onStartup = async () => { + await this.activateExtensionEvents(ActivationEvents.onStartupApp); + }; + + public constructor() { + IModelApp.onBeforeStartup.addListener(this.onStartup); + } + + /** Adds an ExtensionLoader to the front of the list of extension loaders in use. Extension loaders will be invoked front to back. + * By default, the list consists of public Extension Service context, unless disabled via props. + * @param extensionLoader Extension loader to add + */ + public addExtensionLoaderFront(extensionLoader: ExtensionLoader) { + this._extensionLoaders.unshift(extensionLoader); + } + + /** Adds an ExtensionLoader to the list of extension loaders in use. + * By default, the list consists of public Extension Service context, unless disabled via props. + * @param extensionLoader Extension loader to add + */ + public addExtensionLoader(extensionLoader: ExtensionLoader) { + this._extensionLoaders.push(extensionLoader); + } + + /** Add an Extension to be bundled during compilation. + * @param manifestLoader A function that loads the manifest file. + * @param mainFunc The main function to be executed upon + */ + public async addBuildExtension(manifestPromise: Promise, mainFunc?: ResolveFunc): Promise { + const manifest = await this.getManifest(manifestPromise); + this._installedExtensions.set(manifest.name, { manifest, mainFunc }); + } + + /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */ + private async activateExtensionEvents(event: string) { + for (const extension of this._installedExtensions.values()) { + if (!extension.manifest.activationEvents) + continue; + for (const activationEvent of extension.manifest.activationEvents) { + if (activationEvent === event) { + this.execute(extension); // eslint-disable-line @typescript-eslint/no-floating-promises + } + } + } + } + + /** Resolves an import function provided for build-time Extensions that should return a valid + * Extension Manifest. + */ + private async getManifest(loader: Promise): Promise { + const raw = await loader; + const manifest = this.parseManifest(raw); + return manifest; + } + + private async parseManifest(raw: unknown): Promise { + try { + if ("object" === typeof (raw)) + return raw as ExtensionManifest; + if ("string" === typeof (raw)) + return JSON.parse(raw) as ExtensionManifest; + } catch (err: any) { } + throw new Error("Extension is invalid: package.json is not JSON."); + } + + // Important: The Function constructor is used here to isolate the context in which the Extension javascript has access. + // By using the Function constructor to create and then execute the extension it will only have access to two scopes: + // 1. It's own function scope + // 2. The global scope + // + // The global scope is important for an Extension as that is where the reference to the Extension Implementation is supplied + // from the application side. + private async execute(extension: LocalExtensionProps): Promise { + if (extension.mainFunc) + return extension.mainFunc(); + } + +} diff --git a/core/frontend/src/extension/ExtensionHost.ts b/core/frontend/src/extension/ExtensionHost.ts new file mode 100644 index 000000000000..2fb852b12f73 --- /dev/null +++ b/core/frontend/src/extension/ExtensionHost.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +import { IModelApp } from "../IModelApp"; +import type { ToolAdmin } from "../tools/ToolAdmin"; +import type { AccuSnap } from "../AccuSnap"; +import type { NotificationManager } from "../NotificationManager"; +import type { ViewManager } from "../ViewManager"; +import type { ElementLocateManager } from "../ElementLocateManager"; +import type { Localization } from "@itwin/core-common"; +import type { RenderSystem } from "../render/RenderSystem"; + +/** + * Subset of IModelApp exposed to Extensions + * @beta + */ +export class ExtensionHost { + protected constructor() { } + + public static get toolAdmin(): ToolAdmin { return IModelApp.toolAdmin; } + public static get notifications(): NotificationManager { return IModelApp.notifications; } + public static get viewManager(): ViewManager { return IModelApp.viewManager; } + public static get locateManager(): ElementLocateManager { return IModelApp.locateManager; } // internal ? + public static get accuSnap(): AccuSnap { return IModelApp.accuSnap; } + public static get localization(): Localization { return IModelApp.localization; } // re think this, should be contribution point + public static get renderSystem(): RenderSystem { return IModelApp.renderSystem; } // re think this, should be smaller interface +} diff --git a/core/frontend/src/extension/ExtensionImpl.ts b/core/frontend/src/extension/ExtensionImpl.ts new file mode 100644 index 000000000000..6cfe508c7a40 --- /dev/null +++ b/core/frontend/src/extension/ExtensionImpl.ts @@ -0,0 +1,41 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +import { ToolType } from "../tools/Tool"; +import { IModelApp } from "../IModelApp"; +import { CommonToolbarItem, StageUsage, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from "@itwin/appui-abstract"; + +export class ToolProvider implements UiItemsProvider { + public readonly id; + private _toolId = ""; + private _toolIcon; + private _toolLabel; + + public constructor(tool: ToolType) { + this.id = `ToolProvider:${tool.toolId}`; + this._toolId = tool.toolId; + this._toolIcon = tool.iconSpec; + this._toolLabel = tool.description; + } + + public provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[] { + const toolbarItem = ToolbarItemUtilities.createActionButton(this._toolId, 0, this._toolIcon, this._toolLabel, async () => { await IModelApp.tools.run(this._toolId); }); + return stageUsage === StageUsage.General && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal ? [toolbarItem] : []; + } +} + +export class ExtensionImpl { + constructor(private _id: string) { } + + public async registerTool(tool: ToolType, onRegistered?: () => any): Promise { + try { + IModelApp.tools.register(tool); + UiItemsManager.register(new ToolProvider(tool)); + onRegistered?.(); + } catch (e: any) { + console.log(`Error registering tool: ${e}`); // eslint-disable-line + } + } +} diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts new file mode 100644 index 000000000000..eaf80462f409 --- /dev/null +++ b/core/frontend/src/extension/ExtensionLoader.ts @@ -0,0 +1,33 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +import { ExtensionManifest, LocalExtensionProps } from "./Extension"; + +/** THe minimum information required to download an Extension */ +export interface ExtensionLoaderProps { + name: string; + version: string; +} + +export interface BuiltInExtensionLoaderProps { + manifest: Promise; + loader: (() => Promise); +} + +/** Describes what is needed in order to write an Extension Loader. + * @alpha + */ +export interface ExtensionLoader { + /** Retrieves an Extension manifest for the provided Extension identifier */ + getManifest(arg: ExtensionLoaderProps): Promise; + /** Downloads an Extension provided the name of the Extension */ + downloadExtension(arg: ExtensionLoaderProps): Promise; +} + +// export class BuiltInExtensionLoader { +// public async getManifest(name: string): Promise { + +// } +// } diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts new file mode 100644 index 000000000000..0432872964c5 --- /dev/null +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -0,0 +1,86 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +/* eslint-disable @typescript-eslint/naming-convention */ + +import { AccuDrawHintBuilder, ContextRotationId } from "../AccuDraw"; +import { ACSDisplayOptions, ACSType } from "../AuxCoordSys"; +import { CoordSystem } from "../CoordSystem"; +import { LocateAction, LocateFilterStatus, LocateResponse, SnapStatus } from "../ElementLocateManager"; +import { FlashMode } from "../FlashSettings"; +import { FrontendLoggerCategory } from "../FrontendLoggerCategory"; +import { HitDetailType, HitGeomType, HitParentGeomType, HitPriority, HitSource, SnapHeat, SnapMode } from "../HitDetail"; +import { ActivityMessageEndReason, MessageBoxIconType, MessageBoxType, MessageBoxValue, NotifyMessageDetails, OutputMessageAlert, OutputMessagePriority, OutputMessageType } from "../NotificationManager"; +import { SelectionSetEventType } from "../SelectionSet"; +import { StandardViewId } from "../StandardView"; +import { ViewRect } from "../ViewRect"; +import { ViewStatus } from "../ViewStatus"; +import { DepthPointSource, ViewUndoEvent } from "../Viewport"; +import { GraphicType } from "../render/GraphicBuilder"; +import { Pixel } from "../render/Pixel"; +import { TextureTransparency } from "../render/RenderTexture"; +import { UniformType, VaryingType } from "../render/ScreenSpaceEffectBuilder"; +import { TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility } from "../tile/internal"; +import { ClipEventType } from "../tools/ClipViewTool"; +import { PrimitiveTool } from "../tools/PrimitiveTool"; +import { SelectionMethod, SelectionMode, SelectionProcessing } from "../tools/SelectTool"; +import { BeButton, BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, CoordSource, EventHandled, InputSource, InteractiveTool, KeyinParseError, ParseAndRunResult, Tool } from "../tools/Tool"; +import { ManipulatorToolEvent, StartOrResume } from "../tools/ToolAdmin"; +import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod } from "../tools/ToolAssistance"; +import { ViewTool } from "../tools/ViewTool"; +import { EditManipulator } from "../tools/EditManipulator"; +import { EmphasizeElements } from "../EmphasizeElements"; +import { FeatureSymbology } from "../render/FeatureSymbology"; +import { GraphicBranch } from "../render/GraphicBranch"; + +import { + BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, + ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, + GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, + Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, RpcContentType, RpcEndpoint, RpcProtocolEvent, RpcRequestEvent, RpcRequestStatus, + RpcResponseCacheControl, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, + TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, +} from "@itwin/core-common"; +import { ExtensionImpl } from "./ExtensionImpl"; +import { ExtensionHost } from "./ExtensionHost"; + +const globalSymbol = Symbol.for("itwin.core.frontend.globals"); +if ((globalThis as any)[globalSymbol]) + throw new Error("Multiple @itwin/core-frontend imports detected!"); + +const getExtensionApi = (id: string) => { + return { + exports: { + InteractiveTool, PrimitiveTool, ViewTool, Tool, + + ToolAssistance, BeButtonEvent, ViewRect, Pixel, LocateResponse, EditManipulator, AccuDrawHintBuilder, EmphasizeElements, FeatureSymbology, GraphicBranch, NotifyMessageDetails, + + ColorDef, + + ExtensionHost, + + ACSDisplayOptions, ACSType, ActivityMessageEndReason, BeButton, BeModifierKeys, ClipEventType, ContextRotationId, CoordinateLockOverrides, + CoordSource, CoordSystem, DepthPointSource, EventHandled, FlashMode, FrontendLoggerCategory, GraphicType, HitDetailType, HitGeomType, + HitParentGeomType, HitPriority, HitSource, InputSource, KeyinParseError, LocateAction, LocateFilterStatus, ManipulatorToolEvent, + MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessageAlert, OutputMessagePriority, OutputMessageType, ParseAndRunResult, + SelectionMethod, SelectionMode, SelectionProcessing, SelectionSetEventType, SnapHeat, SnapMode, SnapStatus, StandardViewId, StartOrResume, + TextureTransparency, TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility, + ToolAssistanceImage, ToolAssistanceInputMethod, UniformType, VaryingType, ViewStatus, ViewUndoEvent, + + BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, + CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, + GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, + ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, + RenderMode, RpcContentType, RpcEndpoint, RpcProtocolEvent, RpcRequestEvent, RpcRequestStatus, RpcResponseCacheControl, SectionType, + SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, + ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, + }, + api: new ExtensionImpl(id), + }; +}; + +(globalThis as any)[globalSymbol] = { + getExtensionApi, +}; diff --git a/core/frontend/src/extension/extensions.ts b/core/frontend/src/extension/extensions.ts new file mode 100644 index 000000000000..52972a82f86b --- /dev/null +++ b/core/frontend/src/extension/extensions.ts @@ -0,0 +1,25 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +// Barrel file for all extension related files. + +/** + * The Extension framework is made up of multiple pieces: + * + * - Extension Impl + * - Extension API + * - The Extension API defines all of the types and API that can be used by an Extension. + * - Extension Admin loading + * - Handles the + * - Extension Hooks + * - Defines the + */ + +export * from "./Extension"; +export * from "./ExtensionAdmin"; +export * from "./ExtensionImpl"; +export * from "./ExtensionLoader"; +export * from "./ExtensionHost"; +import "./ExtensionRuntime"; From 55a0e5dc09559a6dfc5b9258082f6a36e1ea4daa Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 17 Nov 2021 13:10:13 -0600 Subject: [PATCH 03/76] Added extension test placeholder --- core/frontend/src/test/Extension.test.ts | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 core/frontend/src/test/Extension.test.ts diff --git a/core/frontend/src/test/Extension.test.ts b/core/frontend/src/test/Extension.test.ts new file mode 100644 index 000000000000..294178c6c5f0 --- /dev/null +++ b/core/frontend/src/test/Extension.test.ts @@ -0,0 +1,43 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +// /*--------------------------------------------------------------------------------------------- +// * Copyright (c) Bentley Systems, Incorporated. All rights reserved. +// * See LICENSE.md in the project root for license terms and full copyright notice. +// *--------------------------------------------------------------------------------------------*/ + +// import { LocalExtensionProps } from "../extension/Extension"; +// import { ExtensionAdmin } from "../extension/ExtensionAdmin"; + +// // emulates a main.js for use as the `main` in the Extension Manifest +// const testExtensionMain = `export default { +// activate: function activate(_vm) {console.log("hello world");} +// }`; +// // emulates a loader.js file as a `module` in the Extension Manifest +// const testExtensionLoader = `export default { +// manifest: import("../package.json"), +// load: () => import("./main.js"), +// }`; + +// (await import("./index.js").default()); + +// describe.only("", async () => { +// it("", async () => { +// const admin = new ExtensionAdmin(); +// const localExtProp: LocalExtensionProps = { +// manifest: { +// name: "test", +// version: "2.1.1", +// main: testExtensionMain, +// module: testExtensionLoader, +// }, +// location: "", +// }; + +// await admin.addExtension(localExtProp, async () => import ("ext")); + +// const executableMain = Function(localExtProp.manifest.main!); +// executableMain(); +// }); +// }); From a954194aafac57b9765e664640f2a5d0a84c664a Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 17 Nov 2021 16:10:09 -0600 Subject: [PATCH 04/76] Added extension ui-test-app --- .../rush/browser-approved-packages.json | 20 + common/config/rush/pnpm-lock.yaml | 180 +++++ extensions/test-extension/.eslintrc.js | 27 + extensions/test-extension/package.json | 60 ++ extensions/test-extension/src/CoreTools.ts | 13 + extensions/test-extension/src/SelectTool.ts | 693 ++++++++++++++++++ extensions/test-extension/src/index.ts | 11 + extensions/test-extension/src/loader.ts | 9 + extensions/test-extension/src/tsconfig.json | 20 + extensions/test-extension/tsconfig.json | 12 + rush.json | 6 + test-apps/ui-test-app/package.json | 3 +- 12 files changed, 1053 insertions(+), 1 deletion(-) create mode 100644 extensions/test-extension/.eslintrc.js create mode 100644 extensions/test-extension/package.json create mode 100644 extensions/test-extension/src/CoreTools.ts create mode 100644 extensions/test-extension/src/SelectTool.ts create mode 100644 extensions/test-extension/src/index.ts create mode 100644 extensions/test-extension/src/loader.ts create mode 100644 extensions/test-extension/src/tsconfig.json create mode 100644 extensions/test-extension/tsconfig.json diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 7a23df63a6bc..3dcfabb0f0bd 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -94,6 +94,10 @@ "name": "@itwin/core-electron", "allowedCategories": [ "internal" ] }, + { + "name": "@itwin/core-extension", + "allowedCategories": [ "internal" ] + }, { "name": "@itwin/core-frontend", "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] @@ -318,6 +322,10 @@ "name": "body-parser", "allowedCategories": [ "internal" ] }, + { + "name": "buffer", + "allowedCategories": [ "internal" ] + }, { "name": "cache-require-paths", "allowedCategories": [ "internal" ] @@ -434,6 +442,10 @@ "name": "enzyme-to-json", "allowedCategories": [ "extensions", "frontend" ] }, + { + "name": "esbuild", + "allowedCategories": [ "internal" ] + }, { "name": "eslint", "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] @@ -490,6 +502,10 @@ "name": "express-ws", "allowedCategories": [ "internal" ] }, + { + "name": "extension-prototype", + "allowedCategories": [ "internal" ] + }, { "name": "faker", "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] @@ -906,6 +922,10 @@ "name": "typescript-json-schema", "allowedCategories": [ "common" ] }, + { + "name": "url", + "allowedCategories": [ "internal" ] + }, { "name": "username", "allowedCategories": [ "backend" ] diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index d11aa4017da1..be187528d1ec 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1762,6 +1762,41 @@ importers: typemoq: 2.1.0 typescript: 4.4.4 + ../../extensions/test-extension: + specifiers: + '@bentley/itwin-client': workspace:* + '@itwin/appui-abstract': workspace:* + '@itwin/build-tools': workspace:* + '@itwin/core-bentley': workspace:* + '@itwin/core-common': workspace:* + '@itwin/core-extension': workspace:* + '@itwin/core-geometry': workspace:* + '@itwin/core-i18n': workspace:* + '@itwin/eslint-plugin': workspace:* + buffer: ^6.0.3 + esbuild: ^0.13.8 + eslint: ^7.11.0 + rimraf: ^3.0.2 + typescript: ~4.4.0 + url: ^0.11.0 + dependencies: + '@bentley/itwin-client': link:../../clients/itwin + '@itwin/appui-abstract': link:../../ui/appui-abstract + '@itwin/core-bentley': link:../../core/bentley + '@itwin/core-common': link:../../core/common + '@itwin/core-extension': link:../../core/extension + '@itwin/core-geometry': link:../../core/geometry + '@itwin/core-i18n': link:../../core/i18n + buffer: 6.0.3 + url: 0.11.0 + devDependencies: + '@itwin/build-tools': link:../../tools/build + '@itwin/eslint-plugin': link:../../tools/eslint-plugin + esbuild: 0.13.14 + eslint: 7.32.0 + rimraf: 3.0.2 + typescript: 4.4.4 + ../../full-stack-tests/backend: specifiers: '@azure/storage-blob': ^12.7.0 @@ -3392,6 +3427,7 @@ importers: dotenv-expand: ^5.1.0 electron: ^14.0.0 eslint: ^7.11.0 + extension-prototype: workspace:* fs-extra: ^8.1.0 internal-tools: workspace:* lorem-ipsum: ^2.0.3 @@ -3446,6 +3482,7 @@ importers: '@itwin/reality-data-client': 3.0.0-dev.80 '@itwin/ui-items-providers-test': link:../ui-items-providers-test classnames: 2.3.1 + extension-prototype: link:../../extensions/test-extension lorem-ipsum: 2.0.4 react: 17.0.2 react-beautiful-dnd: 13.1.0_react-dom@17.0.2+react@17.0.2 @@ -11901,6 +11938,149 @@ packages: ext: 1.6.0 dev: true + /esbuild-android-arm64/0.13.14: + resolution: {integrity: sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA==} + cpu: [arm64] + os: [android] + dev: true + optional: true + + /esbuild-darwin-64/0.13.14: + resolution: {integrity: sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ==} + cpu: [x64] + os: [darwin] + dev: true + optional: true + + /esbuild-darwin-arm64/0.13.14: + resolution: {integrity: sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg==} + cpu: [arm64] + os: [darwin] + dev: true + optional: true + + /esbuild-freebsd-64/0.13.14: + resolution: {integrity: sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw==} + cpu: [x64] + os: [freebsd] + dev: true + optional: true + + /esbuild-freebsd-arm64/0.13.14: + resolution: {integrity: sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q==} + cpu: [arm64] + os: [freebsd] + dev: true + optional: true + + /esbuild-linux-32/0.13.14: + resolution: {integrity: sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA==} + cpu: [ia32] + os: [linux] + dev: true + optional: true + + /esbuild-linux-64/0.13.14: + resolution: {integrity: sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ==} + cpu: [x64] + os: [linux] + dev: true + optional: true + + /esbuild-linux-arm/0.13.14: + resolution: {integrity: sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg==} + cpu: [arm] + os: [linux] + dev: true + optional: true + + /esbuild-linux-arm64/0.13.14: + resolution: {integrity: sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ==} + cpu: [arm64] + os: [linux] + dev: true + optional: true + + /esbuild-linux-mips64le/0.13.14: + resolution: {integrity: sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ==} + cpu: [mips64el] + os: [linux] + dev: true + optional: true + + /esbuild-linux-ppc64le/0.13.14: + resolution: {integrity: sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw==} + cpu: [ppc64] + os: [linux] + dev: true + optional: true + + /esbuild-netbsd-64/0.13.14: + resolution: {integrity: sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q==} + cpu: [x64] + os: [netbsd] + dev: true + optional: true + + /esbuild-openbsd-64/0.13.14: + resolution: {integrity: sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA==} + cpu: [x64] + os: [openbsd] + dev: true + optional: true + + /esbuild-sunos-64/0.13.14: + resolution: {integrity: sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w==} + cpu: [x64] + os: [sunos] + dev: true + optional: true + + /esbuild-windows-32/0.13.14: + resolution: {integrity: sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg==} + cpu: [ia32] + os: [win32] + dev: true + optional: true + + /esbuild-windows-64/0.13.14: + resolution: {integrity: sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw==} + cpu: [x64] + os: [win32] + dev: true + optional: true + + /esbuild-windows-arm64/0.13.14: + resolution: {integrity: sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A==} + cpu: [arm64] + os: [win32] + dev: true + optional: true + + /esbuild/0.13.14: + resolution: {integrity: sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg==} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-arm64: 0.13.14 + esbuild-darwin-64: 0.13.14 + esbuild-darwin-arm64: 0.13.14 + esbuild-freebsd-64: 0.13.14 + esbuild-freebsd-arm64: 0.13.14 + esbuild-linux-32: 0.13.14 + esbuild-linux-64: 0.13.14 + esbuild-linux-arm: 0.13.14 + esbuild-linux-arm64: 0.13.14 + esbuild-linux-mips64le: 0.13.14 + esbuild-linux-ppc64le: 0.13.14 + esbuild-netbsd-64: 0.13.14 + esbuild-openbsd-64: 0.13.14 + esbuild-sunos-64: 0.13.14 + esbuild-windows-32: 0.13.14 + esbuild-windows-64: 0.13.14 + esbuild-windows-arm64: 0.13.14 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} diff --git a/extensions/test-extension/.eslintrc.js b/extensions/test-extension/.eslintrc.js new file mode 100644 index 000000000000..7c4150405de5 --- /dev/null +++ b/extensions/test-extension/.eslintrc.js @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step +// The plugins need to be loaded to avoid getting errors from eslint-disable comments +// npm lint script uses an alternative configuration provided in package.json + +module.exports = { + parser: "@typescript-eslint/parser", + parserOptions: { + project: [ + "tsconfig.json", + "tsconfig.backend.json" + ], + sourceType: "module" + }, + plugins: [ + "@bentley", + "@typescript-eslint", + "react", + "react-hooks", + "import", + "prefer-arrow", + "deprecation" + ] +} \ No newline at end of file diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json new file mode 100644 index 000000000000..30da825b89cd --- /dev/null +++ b/extensions/test-extension/package.json @@ -0,0 +1,60 @@ +{ + "name": "extension-prototype", + "description": "extension-prototype", + "main": "./dist/index.js", + "module": "./lib/loader.js", + "typings": "./lib/loader", + "private": true, + "license": "MIT", + "version": "0.0.0", + "scripts": { + "build": "tsc --project ./src 1>&2", + "build:ci": "npm run -s build", + "esbuild": "npx esbuild src/index.ts --sourcemap --bundle --outfile=dist/index.js --format=esm --target=es2020 --external:os --minify", + "clean": "rimraf lib dist", + "lint": "", + "//lint": "eslint -f visualstudio --config package.json --no-eslintrc \"./src/**/*.{ts,tsx}\" 1>&2", + "start": "", + "test": "", + "cover": "", + "docs": "" + }, + "repository": {}, + "keywords": [ + "Bentley", + "BIM", + "iModel" + ], + "author": { + "name": "Bentley Systems, Inc.", + "url": "http://www.bentley.com" + }, + "devDependencies": { + "@itwin/build-tools": "workspace:*", + "@itwin/eslint-plugin": "workspace:*", + "esbuild": "^0.13.8", + "eslint": "^7.11.0", + "rimraf": "^3.0.2", + "typescript": "~4.4.0" + }, + "dependencies": { + "@bentley/itwin-client": "workspace:*", + "@itwin/appui-abstract": "workspace:*", + "@itwin/core-bentley": "workspace:*", + "@itwin/core-common": "workspace:*", + "@itwin/core-extension": "workspace:*", + "@itwin/core-geometry": "workspace:*", + "@itwin/core-i18n": "workspace:*", + "buffer": "^6.0.3", + "url": "^0.11.0" + }, + "eslintConfig": { + "plugins": [ + "@bentley" + ], + "extends": "plugin:@bentley/imodeljs-recommended" + }, + "activationEvents": [ + "onStartupApp" + ] +} \ No newline at end of file diff --git a/extensions/test-extension/src/CoreTools.ts b/extensions/test-extension/src/CoreTools.ts new file mode 100644 index 000000000000..0473d03a6770 --- /dev/null +++ b/extensions/test-extension/src/CoreTools.ts @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +import { ExtensionHost } from "@itwin/core-extension"; + +/** @internal */ +export class CoreTools { + public static namespace = "CoreTools"; + public static tools = "CoreTools:tools."; + public static translate(prompt: string) { return ExtensionHost.localization.getLocalizedString(this.tools + prompt); } + public static outputPromptByKey(key: string) { return ExtensionHost.notifications.outputPromptByKey(this.tools + key); } +} diff --git a/extensions/test-extension/src/SelectTool.ts b/extensions/test-extension/src/SelectTool.ts new file mode 100644 index 000000000000..4c6e6ef42a25 --- /dev/null +++ b/extensions/test-extension/src/SelectTool.ts @@ -0,0 +1,693 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module SelectionSet + */ + +import { + ButtonGroupEditorParams, DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription, PropertyEditorParamTypes, + SuppressLabelEditorParams +} from "@itwin/appui-abstract"; +import { Id64, Id64Arg } from "@itwin/core-bentley"; +import { Point2d, Point3d, Range2d } from "@itwin/core-geometry"; +import { + ColorDef, BeButton, BeButtonEvent, BeModifierKeys, BeTouchEvent, CoordinateLockOverrides, DecorateContext, EventHandled, HitDetail, + InputSource, LocateFilterStatus, LocateResponse, ManipulatorToolEvent, Pixel, PrimitiveTool, ToolAssistance, ToolAssistanceImage, + ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection, ViewRect, ExtensionHost +} from "@itwin/core-extension"; +import { CoreTools } from "./CoreTools"; + +// cSpell:ignore buttongroup + +/** The method for choosing elements with the [[SelectionTool]] + * @public + */ +export enum SelectionMethod { + /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */ + Pick, + /** Identify elements by overlap with crossing line */ + Line, + /** Identify elements by box selection (inside/overlap for box selection determined by point direction and shift key) */ + Box, +} + +/** The mode for choosing elements with the [[SelectionTool]] + * @public + */ +export enum SelectionMode { + /** Identified elements replace the current selection set (use control key to add or remove) */ + Replace, + /** Identified elements are added to the current selection set */ + Add, + /** Identified elements are removed from the current selection set */ + Remove, +} + +/** The processing method to use to update the current selection. + * @public + */ +export enum SelectionProcessing { + /** Add element to selection. */ + AddElementToSelection, + /** Remove element from selection. */ + RemoveElementFromSelection, + /** If element is in selection remove it, else add it. */ + InvertElementInSelection, + /** Replace current selection with element. */ + ReplaceSelectionWithElement, +} + +/** Tool for picking a set of elements of interest, selected by the user. + * @public + */ +export class SelectionTool extends PrimitiveTool { + public static override hidden = false; + public static override toolId = "ExtSelect"; + public static override namespace = CoreTools.namespace; + public static override iconSpec = "icon-cursor"; + protected _isSelectByPoints = false; + protected _isSuspended = false; + protected readonly _points: Point3d[] = []; + private _selectionMethodValue: DialogItemValue = { value: SelectionMethod.Pick }; + private _selectionModeValue: DialogItemValue = { value: SelectionMode.Replace }; + + public override requireWriteableTarget(): boolean { return false; } + public override autoLockTarget(): void { } // NOTE: For selecting elements we only care about iModel, so don't lock target model automatically. + + protected wantSelectionClearOnMiss(_ev: BeButtonEvent): boolean { return SelectionMode.Replace === this.selectionMode; } + protected wantEditManipulators(): boolean { return SelectionMethod.Pick === this.selectionMethod; } + protected wantPickableDecorations(): boolean { return this.wantEditManipulators(); } // Allow pickable decorations selection to be independent of manipulators... + protected wantToolSettings(): boolean { return true; } + + public get selectionMethod(): SelectionMethod { return this._selectionMethodValue.value as SelectionMethod; } + public set selectionMethod(method: SelectionMethod) { this._selectionMethodValue.value = method; } + public get selectionMode(): SelectionMode { return this._selectionModeValue.value as SelectionMode; } + public set selectionMode(mode: SelectionMode) { this._selectionModeValue.value = mode; } + + private static methodsMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionMethods.${str}`); } + private static _methodsName = "selectionMethods"; + /* The property descriptions used to generate ToolSettings UI. */ + private static _getMethodsDescription(): PropertyDescription { + return { + name: SelectionTool._methodsName, + displayLabel: "", + typename: "enum", + editor: { + name: "enum-buttongroup", + params: [{ + type: PropertyEditorParamTypes.ButtonGroupData, + buttons: [ + { iconSpec: "icon-select-single" }, + { iconSpec: "icon-select-line" }, + { iconSpec: "icon-select-box" }, + ], + } as ButtonGroupEditorParams, { + type: PropertyEditorParamTypes.SuppressEditorLabel, + suppressLabelPlaceholder: true, + } as SuppressLabelEditorParams, + ], + }, + enum: { + choices: [ + { label: SelectionTool.methodsMessage("Pick"), value: SelectionMethod.Pick }, + { label: SelectionTool.methodsMessage("Line"), value: SelectionMethod.Line }, + { label: SelectionTool.methodsMessage("Box"), value: SelectionMethod.Box }, + ], + }, + }; + } + + private static modesMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionModes.${str}`); } + private static _modesName = "selectionModes"; + /* The property descriptions used to generate ToolSettings UI. */ + private static _getModesDescription(): PropertyDescription { + return { + name: SelectionTool._modesName, + displayLabel: "", + typename: "enum", + editor: { + name: "enum-buttongroup", + params: [{ + type: PropertyEditorParamTypes.ButtonGroupData, + buttons: [ + { iconSpec: "icon-replace" }, + { iconSpec: "icon-select-plus" }, + { + iconSpec: "icon-select-minus", + isEnabledFunction: () => { const tool = ExtensionHost.toolAdmin.activeTool; return tool instanceof PrimitiveTool ? tool.iModel.selectionSet.isActive : false; }, + }, + ], + } as ButtonGroupEditorParams, { + type: PropertyEditorParamTypes.SuppressEditorLabel, + suppressLabelPlaceholder: true, + } as SuppressLabelEditorParams, + ], + }, + enum: { + choices: [ + { label: SelectionTool.modesMessage("Replace"), value: SelectionMode.Replace }, + { label: SelectionTool.modesMessage("Add"), value: SelectionMode.Add }, + { label: SelectionTool.modesMessage("Remove"), value: SelectionMode.Remove }, + ], + }, + }; + } + + protected showPrompt(mode: SelectionMode, method: SelectionMethod): void { + let mainMsg = "ElementSet.Prompts."; + switch (method) { + case SelectionMethod.Pick: + mainMsg += "IdentifyElement"; + break; + case SelectionMethod.Line: + mainMsg += (0 === this._points.length ? "StartPoint" : "EndPoint"); + break; + case SelectionMethod.Box: + mainMsg += (0 === this._points.length ? "StartCorner" : "OppositeCorner"); + break; + } + + const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg)); + const sections: ToolAssistanceSection[] = []; + + switch (method) { + case SelectionMethod.Pick: + const mousePickInstructions: ToolAssistanceInstruction[] = []; + mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, ToolAssistanceInputMethod.Mouse)); + mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClickDrag, CoreTools.translate("ElementSet.Inputs.BoxCorners"), false, ToolAssistanceInputMethod.Mouse)); + mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClickDrag, CoreTools.translate("ElementSet.Inputs.CrossingLine"), false, ToolAssistanceInputMethod.Mouse)); + mousePickInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClickDrag, CoreTools.translate("ElementSet.Inputs.OverlapSelection"), false, ToolAssistanceInputMethod.Mouse)); + if (SelectionMode.Replace === mode) { + mousePickInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.ctrlKeyboardInfo, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); + mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.CursorClick, CoreTools.translate("ElementSet.Inputs.ClearSelection"), false, ToolAssistanceInputMethod.Mouse)); + } + sections.push(ToolAssistance.createSection(mousePickInstructions, ToolAssistance.inputsLabel)); + + const touchPickInstructions: ToolAssistanceInstruction[] = []; + if (!ToolAssistance.createTouchCursorInstructions(touchPickInstructions)) + touchPickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, ToolAssistanceInputMethod.Touch)); + sections.push(ToolAssistance.createSection(touchPickInstructions, ToolAssistance.inputsLabel)); + break; + case SelectionMethod.Line: + const mouseLineInstructions: ToolAssistanceInstruction[] = []; + mouseLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Mouse)); + if (SelectionMode.Replace === mode) + mouseLineInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); + sections.push(ToolAssistance.createSection(mouseLineInstructions, ToolAssistance.inputsLabel)); + + const touchLineInstructions: ToolAssistanceInstruction[] = []; + touchLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Touch)); + sections.push(ToolAssistance.createSection(touchLineInstructions, ToolAssistance.inputsLabel)); + break; + case SelectionMethod.Box: + const mouseBoxInstructions: ToolAssistanceInstruction[] = []; + mouseBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Mouse)); + mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.OverlapSelection"), false, ToolAssistanceInputMethod.Mouse)); + if (SelectionMode.Replace === mode) + mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); + sections.push(ToolAssistance.createSection(mouseBoxInstructions, ToolAssistance.inputsLabel)); + + const touchBoxInstructions: ToolAssistanceInstruction[] = []; + touchBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Touch)); + sections.push(ToolAssistance.createSection(touchBoxInstructions, ToolAssistance.inputsLabel)); + break; + } + + const instructions = ToolAssistance.createInstructions(mainInstruction, sections); + ExtensionHost.notifications.setToolAssistance(instructions); + } + + protected initSelectTool(): void { + const method = this.selectionMethod; + const mode = this.selectionMode; + const enableLocate = SelectionMethod.Pick === method; + + this._isSelectByPoints = false; + this._points.length = 0; + + this.initLocateElements(enableLocate, false, enableLocate ? "default" : ExtensionHost.viewManager.crossHairCursor, CoordinateLockOverrides.All); + ExtensionHost.locateManager.options.allowDecorations = true; // Always locate to display tool tip even if we reject for adding to selection set... + this.showPrompt(mode, method); + } + + protected processMiss(_ev: BeButtonEvent): boolean { + if (!this.iModel.selectionSet.isActive) + return false; + this.iModel.selectionSet.emptyAll(); + return true; + } + + public updateSelection(elementId: Id64Arg, process: SelectionProcessing): boolean { + let returnValue = false; + switch (process) { + case SelectionProcessing.AddElementToSelection: + returnValue = this.iModel.selectionSet.add(elementId); + break; + case SelectionProcessing.RemoveElementFromSelection: + returnValue = this.iModel.selectionSet.remove(elementId); + break; + case SelectionProcessing.InvertElementInSelection: // (if element is in selection remove it else add it.) + returnValue = this.iModel.selectionSet.invert(elementId); + break; + case SelectionProcessing.ReplaceSelectionWithElement: + this.iModel.selectionSet.replace(elementId); + returnValue = true; + break; + default: + return false; + } + // always force UI to sync display of options since the select option of Remove should only be enabled if the selection set has elements. + if (returnValue) + this.syncSelectionMode(); + return returnValue; + } + + public async processSelection(elementId: Id64Arg, process: SelectionProcessing): Promise { return this.updateSelection(elementId, process); } + + protected useOverlapSelection(ev: BeButtonEvent): boolean { + if (undefined === ev.viewport) + return false; + const pt1 = ev.viewport.worldToView(this._points[0]); + const pt2 = ev.viewport.worldToView(ev.point); + const overlapMode = (pt1.x > pt2.x); + return (ev.isShiftKey ? !overlapMode : overlapMode); // Shift inverts inside/overlap selection... + } + + private selectByPointsDecorate(context: DecorateContext): void { + if (!this._isSelectByPoints) + return; + + const ev = new BeButtonEvent(); + ExtensionHost.toolAdmin.fillEventFromCursorLocation(ev); + if (undefined === ev.viewport) + return; + + const vp = context.viewport; + const bestContrastIsBlack = (ColorDef.black === vp.getContrastToBackgroundColor()); + const crossingLine = (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button)); + const overlapSelection = (crossingLine || this.useOverlapSelection(ev)); + + const position = vp.worldToView(this._points[0]); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5; + const position2 = vp.worldToView(ev.point); position2.x = Math.floor(position2.x) + 0.5; position2.y = Math.floor(position2.y) + 0.5; + const offset = position2.minus(position); + + const drawDecoration = (ctx: CanvasRenderingContext2D) => { + ctx.strokeStyle = bestContrastIsBlack ? "black" : "white"; + ctx.lineWidth = 1; + if (overlapSelection) ctx.setLineDash([5, 5]); + if (crossingLine) { + ctx.beginPath(); + ctx.moveTo(0, 0); + ctx.lineTo(offset.x, offset.y); + ctx.stroke(); + } else { + ctx.strokeRect(0, 0, offset.x, offset.y); + ctx.fillStyle = bestContrastIsBlack ? "rgba(0,0,0,.06)" : "rgba(255,255,255,.06)"; + ctx.fillRect(0, 0, offset.x, offset.y); + } + }; + context.addCanvasDecoration({ position, drawDecoration }); + } + + protected selectByPointsProcess(origin: Point3d, corner: Point3d, ev: BeButtonEvent, method: SelectionMethod, overlap: boolean) { + const vp = ev.viewport; + if (!vp) + return; + + const pts: Point2d[] = []; + pts[0] = new Point2d(Math.floor(origin.x + 0.5), Math.floor(origin.y + 0.5)); + pts[1] = new Point2d(Math.floor(corner.x + 0.5), Math.floor(corner.y + 0.5)); + const range = Range2d.createArray(pts); + + const rect = new ViewRect(); + rect.initFromRange(range); + const allowTransients = this.wantPickableDecorations(); + + vp.readPixels(rect, Pixel.Selector.Feature, (pixels) => { + if (undefined === pixels) + return; + + const sRange = Range2d.createNull(); + sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.low.x), vp.cssPixelsToDevicePixels(range.low.y))); + sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.high.x), vp.cssPixelsToDevicePixels(range.high.y))); + + pts[0].x = vp.cssPixelsToDevicePixels(pts[0].x); + pts[0].y = vp.cssPixelsToDevicePixels(pts[0].y); + + pts[1].x = vp.cssPixelsToDevicePixels(pts[1].x); + pts[1].y = vp.cssPixelsToDevicePixels(pts[1].y); + + let contents = new Set(); + const testPoint = Point2d.createZero(); + + const getPixelElementId = (pixel: Pixel.Data) => { + if (undefined === pixel.elementId || Id64.isInvalid(pixel.elementId)) + return undefined; // no geometry at this location... + + if (!allowTransients && Id64.isTransient(pixel.elementId)) + return undefined; // tool didn't request pickable decorations... + + if (!vp.isPixelSelectable(pixel)) + return undefined; // reality model, terrain, etc - not selectable + + return pixel.elementId; + }; + + if (SelectionMethod.Box === method) { + const outline = overlap ? undefined : new Set(); + const offset = sRange.clone(); + offset.expandInPlace(-2); + for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) { + for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) { + const pixel = pixels.getPixel(testPoint.x, testPoint.y); + const elementId = getPixelElementId(pixel); + if (undefined === elementId) + continue; + + if (undefined !== outline && !offset.containsPoint(testPoint)) + outline.add(elementId.toString()); + else + contents.add(elementId.toString()); + } + } + if (undefined !== outline && 0 !== outline.size) { + const inside = new Set(); + contents.forEach((id) => { if (!outline.has(id)) inside.add(id); }); + contents = inside; + } + } else { + const closePoint = Point2d.createZero(); + for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) { + for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) { + const pixel = pixels.getPixel(testPoint.x, testPoint.y); + const elementId = getPixelElementId(pixel); + if (undefined === elementId) + continue; + + const fraction = testPoint.fractionOfProjectionToLine(pts[0], pts[1], 0.0); + pts[0].interpolate(fraction, pts[1], closePoint); + if (closePoint.distance(testPoint) < 1.5) + contents.add(elementId.toString()); + } + } + } + + if (0 === contents.size) { + if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) + this.syncSelectionMode(); + return; + } + + switch (this.selectionMode) { + case SelectionMode.Replace: + if (!ev.isControlKey) + this.processSelection(contents, SelectionProcessing.ReplaceSelectionWithElement); // eslint-disable-line @typescript-eslint/no-floating-promises + else + this.processSelection(contents, SelectionProcessing.InvertElementInSelection); // eslint-disable-line @typescript-eslint/no-floating-promises + break; + case SelectionMode.Add: + this.processSelection(contents, SelectionProcessing.AddElementToSelection); // eslint-disable-line @typescript-eslint/no-floating-promises + break; + case SelectionMode.Remove: + this.processSelection(contents, SelectionProcessing.RemoveElementFromSelection); // eslint-disable-line @typescript-eslint/no-floating-promises + break; + } + }, true); + } + + protected selectByPointsStart(ev: BeButtonEvent): boolean { + if (BeButton.Data !== ev.button && BeButton.Reset !== ev.button) + return false; + this._points.length = 0; + this._points.push(ev.point.clone()); + this._isSelectByPoints = true; + ExtensionHost.accuSnap.enableLocate(false); + ExtensionHost.toolAdmin.setLocateCircleOn(false); + this.showPrompt(this.selectionMode, this.selectionMethod); + return true; + } + + protected selectByPointsEnd(ev: BeButtonEvent): boolean { + if (!this._isSelectByPoints) + return false; + + const vp = ev.viewport; + if (vp === undefined) { + this.initSelectTool(); + return false; + } + + const origin = vp.worldToView(this._points[0]); + const corner = vp.worldToView(ev.point); + if (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button)) + this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Line, true); + else + this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Box, this.useOverlapSelection(ev)); + + this.initSelectTool(); + vp.invalidateDecorations(); + return true; + } + + public override async onMouseMotion(ev: BeButtonEvent): Promise { + if (undefined !== ev.viewport && this._isSelectByPoints) + ev.viewport.invalidateDecorations(); + } + + public async selectDecoration(ev: BeButtonEvent, currHit?: HitDetail): Promise { + if (undefined === currHit) + currHit = await ExtensionHost.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource); + + if (undefined !== currHit) + return (currHit.isElementHit ? ExtensionHost.viewManager.overrideElementButtonEvent(currHit, ev) : ExtensionHost.viewManager.onDecorationButtonEvent(currHit, ev)); + + return EventHandled.No; + } + + public override async onMouseStartDrag(ev: BeButtonEvent): Promise { + ExtensionHost.accuSnap.clear(); // Need to test hit at start drag location, not current AccuSnap... + if (EventHandled.Yes === await this.selectDecoration(ev)) + return EventHandled.Yes; + if (InputSource.Touch === ev.inputSource && SelectionMethod.Pick === this.selectionMethod) + return EventHandled.No; // Require method change for line/box selection...allow IdleTool to handle touch move... + return this.selectByPointsStart(ev) ? EventHandled.Yes : EventHandled.No; + } + + public override async onMouseEndDrag(ev: BeButtonEvent): Promise { + return this.selectByPointsEnd(ev) ? EventHandled.Yes : EventHandled.No; + } + + public override async onDataButtonUp(ev: BeButtonEvent): Promise { + if (undefined === ev.viewport) + return EventHandled.No; + + if (this.selectByPointsEnd(ev)) + return EventHandled.Yes; + + if (SelectionMethod.Pick !== this.selectionMethod) { + if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) + this.syncSelectionMode(); + if (InputSource.Touch !== ev.inputSource) + this.selectByPointsStart(ev); // Require touch move and not tap to start crossing line/box selection... + return EventHandled.Yes; + } + + const hit = await ExtensionHost.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource); + if (hit !== undefined && !hit.isModelHit && !hit.isMapHit) { // model hit = terrain, reality models, background maps, etc - not selectable + if (EventHandled.Yes === await this.selectDecoration(ev, hit)) + return EventHandled.Yes; + + switch (this.selectionMode) { + case SelectionMode.Replace: + await this.processSelection(hit.sourceId, ev.isControlKey ? SelectionProcessing.InvertElementInSelection : SelectionProcessing.ReplaceSelectionWithElement); + break; + + case SelectionMode.Add: + await this.processSelection(hit.sourceId, SelectionProcessing.AddElementToSelection); + break; + + case SelectionMode.Remove: + await this.processSelection(hit.sourceId, SelectionProcessing.RemoveElementFromSelection); + break; + } + return EventHandled.Yes; + } + + if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) + this.syncSelectionMode(); + + return EventHandled.Yes; + } + + public override async onResetButtonUp(ev: BeButtonEvent): Promise { + if (this._isSelectByPoints) { + if (undefined !== ev.viewport) + ev.viewport.invalidateDecorations(); + this.initSelectTool(); + return EventHandled.Yes; + } + + // Check for overlapping hits... + const lastHit = SelectionMode.Remove === this.selectionMode ? undefined : ExtensionHost.locateManager.currHit; + if (lastHit && this.iModel.selectionSet.has(lastHit.sourceId)) { + const autoHit = ExtensionHost.accuSnap.currHit; + + // Play nice w/auto-locate, only remove previous hit if not currently auto-locating or over previous hit + if (undefined === autoHit || autoHit.isSameHit(lastHit)) { + const response = new LocateResponse(); + let nextHit; + do { + nextHit = await ExtensionHost.locateManager.doLocate(response, false, ev.point, ev.viewport, ev.inputSource); + } while (undefined !== nextHit && (nextHit.isModelHit || nextHit.isMapHit)); // Ignore reality models, terrain, maps, etc. + + // remove element(s) previously selected if in replace mode, or if we have a next element in add mode + if (SelectionMode.Replace === this.selectionMode || undefined !== nextHit) + await this.processSelection(lastHit.sourceId, SelectionProcessing.RemoveElementFromSelection); + + // add element(s) located via reset button + if (undefined !== nextHit) + await this.processSelection(nextHit.sourceId, SelectionProcessing.AddElementToSelection); + + return EventHandled.Yes; + } + } + + if (EventHandled.Yes === await this.selectDecoration(ev, ExtensionHost.accuSnap.currHit)) + return EventHandled.Yes; + + await ExtensionHost.accuSnap.resetButton(); + return EventHandled.Yes; + } + + public override async onSuspend() { + this._isSuspended = true; + if (this.wantEditManipulators()) + ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Suspend); + } + + public override async onUnsuspend() { + this._isSuspended = false; + if (this.wantEditManipulators()) + ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Unsuspend); + + this.showPrompt(this.selectionMode, this.selectionMethod); + } + + public override async onTouchMoveStart(ev: BeTouchEvent, startEv: BeTouchEvent): Promise { + if (startEv.isSingleTouch && !this._isSelectByPoints) + await ExtensionHost.toolAdmin.convertTouchMoveStartToButtonDownAndMotion(startEv, ev); + return (this._isSuspended || this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No; + } + + public override async onTouchMove(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchMoveToMotion(ev); } + public override async onTouchComplete(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchEndToButtonUp(ev); } + public override async onTouchCancel(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchEndToButtonUp(ev, BeButton.Reset); } + + public override decorate(context: DecorateContext): void { this.selectByPointsDecorate(context); } + + public override async onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise { + return (modifier === BeModifierKeys.Shift && this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No; + } + + public override async filterHit(hit: HitDetail, out?: LocateResponse): Promise { + if (!this.wantPickableDecorations() && !hit.isElementHit) + return LocateFilterStatus.Reject; + + const mode = this.selectionMode; + if (SelectionMode.Replace === mode) + return LocateFilterStatus.Accept; + + const isSelected = this.iModel.selectionSet.has(hit.sourceId); + const status = ((SelectionMode.Add === mode ? !isSelected : isSelected) ? LocateFilterStatus.Accept : LocateFilterStatus.Reject); + if (out && LocateFilterStatus.Reject === status) + out.explanation = CoreTools.translate(`ElementSet.Error.${isSelected ? "AlreadySelected" : "NotSelected"}`); + return status; + } + + public async onRestartTool(): Promise { return this.exitTool(); } + + public override async onCleanup() { + if (this.wantEditManipulators()) + ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Stop); + } + + public override async onPostInstall() { + await super.onPostInstall(); + if (!this.targetView) + return; + if (this.wantEditManipulators()) + ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Start); + this.initSelectTool(); + } + + public static async startTool(): Promise { return new SelectionTool().run(); } + + private syncSelectionMode(): void { + if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) { + // No selection active resetting selection mode since there is nothing to Remove + this.selectionMode = SelectionMode.Replace; + this.initSelectTool(); + } + if (this.wantToolSettings()) { + const syncMode: DialogPropertySyncItem = { value: this._selectionModeValue, propertyName: SelectionTool._modesName }; + ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, syncMode); + this.syncToolSettingsProperties([syncMode]); + } + } + + /** Used to supply DefaultToolSettingProvider with a list of properties to use to generate ToolSettings. If undefined then no ToolSettings will be displayed + * @beta + */ + public override supplyToolSettingsProperties(): DialogItem[] | undefined { + if (!this.wantToolSettings()) + return undefined; + + // load latest values from session + ExtensionHost.toolAdmin.toolSettingsState.getInitialToolSettingValues(this.toolId, [SelectionTool._modesName])?.forEach((value) => { + if (value.propertyName === SelectionTool._modesName) + this._selectionModeValue = value.value; + }); + + // Make sure a mode of SelectionMode.Remove is valid + if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) { + this.selectionMode = SelectionMode.Replace; + ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue }); + } + + const toolSettings = new Array(); + // generate 3 columns - label will be placed in column 0 and button group editors in columns 1 and 2. + toolSettings.push({ value: this._selectionMethodValue, property: SelectionTool._getMethodsDescription(), editorPosition: { rowPriority: 0, columnIndex: 1 } }); + toolSettings.push({ value: this._selectionModeValue, property: SelectionTool._getModesDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } }); + return toolSettings; + } + + /** Used to send changes from UI back to Tool + * @beta + */ + public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise { + let changed = false; + if (updatedValue.propertyName === SelectionTool._methodsName) { + const saveWantManipulators = this.wantEditManipulators(); + this._selectionMethodValue = updatedValue.value; + if (this._selectionMethodValue) { + const currWantManipulators = this.wantEditManipulators(); + if (saveWantManipulators !== currWantManipulators) + ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, currWantManipulators ? ManipulatorToolEvent.Start : ManipulatorToolEvent.Stop); + changed = true; + } + } + if (updatedValue.propertyName === SelectionTool._modesName) { + this._selectionModeValue = updatedValue.value; + if (this._selectionModeValue) { + if (this.wantToolSettings()) + ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue }); + changed = true; + } + } + if (changed) + this.initSelectTool(); + return true; // return true if change is valid + } +} diff --git a/extensions/test-extension/src/index.ts b/extensions/test-extension/src/index.ts new file mode 100644 index 000000000000..beaf7e62010c --- /dev/null +++ b/extensions/test-extension/src/index.ts @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +import { registerTool } from "@itwin/core-extension"; +import { SelectionTool } from "./SelectTool"; + +export default function activate() { + registerTool(SelectionTool); + console.log("hello world"); +} diff --git a/extensions/test-extension/src/loader.ts b/extensions/test-extension/src/loader.ts new file mode 100644 index 000000000000..465733d41c4a --- /dev/null +++ b/extensions/test-extension/src/loader.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +export default { + manifest: import("../package.json"), + loader: async () => (await import("./index.js")).default(), +} diff --git a/extensions/test-extension/src/tsconfig.json b/extensions/test-extension/src/tsconfig.json new file mode 100644 index 000000000000..605fe7734fbb --- /dev/null +++ b/extensions/test-extension/src/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../node_modules/@itwin/build-tools/tsconfig-base.json", + "compilerOptions": { + "outDir": "../lib/", + "resolveJsonModule": true, + "module": "esnext", + "moduleResolution": "node", + "isolatedModules": true, + "skipLibCheck": true, + "composite": true + }, + "include": [ + "./**/*.ts" + ], + "references": [ + { + "path": "../" + } + ] +} \ No newline at end of file diff --git a/extensions/test-extension/tsconfig.json b/extensions/test-extension/tsconfig.json new file mode 100644 index 000000000000..5715adbcb879 --- /dev/null +++ b/extensions/test-extension/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "rootDir": ".", + "outDir": ".", + "resolveJsonModule": true, + "composite": true, + "incremental": false + }, + "files": [ + "package.json" + ] +} \ No newline at end of file diff --git a/rush.json b/rush.json index 6c474ad81135..dd02b9dc2c0f 100644 --- a/rush.json +++ b/rush.json @@ -41,6 +41,12 @@ "shouldPublish": true, "versionPolicyName": "prerelease-monorepo-lockStep" }, + { + "packageName": "extension-prototype", + "projectFolder": "extensions/test-extension", + "reviewCategory": "internal", + "shouldPublish": false + }, { "packageName": "@itwin/build-tools", "projectFolder": "tools/build", diff --git a/test-apps/ui-test-app/package.json b/test-apps/ui-test-app/package.json index 838900830e4d..ff777428d4cb 100644 --- a/test-apps/ui-test-app/package.json +++ b/test-apps/ui-test-app/package.json @@ -107,6 +107,7 @@ "@itwin/presentation-components": "workspace:*", "@itwin/presentation-frontend": "workspace:*", "@itwin/ui-items-providers-test": "workspace:*", + "extension-prototype": "workspace:*", "classnames": "^2.3.1", "lorem-ipsum": "^2.0.3", "react": "^17.0.0", @@ -155,4 +156,4 @@ "@typescript-eslint/unbound-method": "off" } } -} +} \ No newline at end of file From 526886cfb2b0d130ce6ea4ad22bae969e4f95120 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 19 Nov 2021 10:25:27 -0600 Subject: [PATCH 05/76] Set new extension exports to alpha --- common/api/core-frontend.api.md | 108 +++++++++++++++++- common/api/summary/appui-react.exports.csv | 2 - common/api/summary/core-frontend.exports.csv | 10 ++ core/frontend/src/IModelApp.ts | 2 +- core/frontend/src/extension/Extension.ts | 9 +- core/frontend/src/extension/ExtensionImpl.ts | 2 + .../frontend/src/extension/ExtensionLoader.ts | 5 +- 7 files changed, 131 insertions(+), 7 deletions(-) diff --git a/common/api/core-frontend.api.md b/common/api/core-frontend.api.md index 5f221e3ad6a8..bd98ed7f15dc 100644 --- a/common/api/core-frontend.api.md +++ b/common/api/core-frontend.api.md @@ -51,6 +51,7 @@ import { CodeProps } from '@itwin/core-common'; import { CodeSpec } from '@itwin/core-common'; import { ColorDef } from '@itwin/core-common'; import { ColorIndex } from '@itwin/core-common'; +import { CommonToolbarItem } from '@itwin/appui-abstract'; import { CompressedId64Set } from '@itwin/core-bentley'; import { Constructor } from '@itwin/core-bentley'; import { ContentIdProvider } from '@itwin/core-common'; @@ -285,12 +286,15 @@ import { ThumbnailProps } from '@itwin/core-common'; import { TileProps } from '@itwin/core-common'; import { TileReadStatus } from '@itwin/core-common'; import { TileVersionInfo } from '@itwin/core-common'; +import { ToolbarOrientation } from '@itwin/appui-abstract'; +import { ToolbarUsage } from '@itwin/appui-abstract'; import { Transform } from '@itwin/core-geometry'; import { TransformProps } from '@itwin/core-geometry'; import { TransientIdSequence } from '@itwin/core-bentley'; import { Tweens } from '@itwin/core-common'; import { TxnNotifications } from '@itwin/core-common'; import { UiAdmin } from '@itwin/appui-abstract'; +import { UiItemsProvider } from '@itwin/appui-abstract'; import { UnitConversion } from '@itwin/core-quantity'; import { UnitProps } from '@itwin/core-quantity'; import { UnitsProvider } from '@itwin/core-quantity'; @@ -1723,6 +1727,19 @@ export class BriefcaseTxns extends BriefcaseNotificationHandler implements TxnNo reverseTxns(numOperations: number): Promise; } +// @alpha (undocumented) +export interface BuildExtensionManifest extends ExtensionManifest { + readonly module?: string; +} + +// @alpha (undocumented) +export interface BuiltInExtensionLoaderProps { + // (undocumented) + loader: (() => Promise); + // (undocumented) + manifest: Promise; +} + // @internal (undocumented) export type CachedDecoration = { type: "graphic"; @@ -2996,6 +3013,74 @@ export enum EventHandled { Yes = 1 } +// @alpha +export class ExtensionAdmin { + constructor(); + addBuildExtension(manifestPromise: Promise, mainFunc?: ResolveFunc_2): Promise; + addExtensionLoader(extensionLoader: ExtensionLoader): void; + addExtensionLoaderFront(extensionLoader: ExtensionLoader): void; + onStartup: () => Promise; + } + +// @beta +export class ExtensionHost { + protected constructor(); + // (undocumented) + static get accuSnap(): AccuSnap; + // (undocumented) + static get localization(): Localization; + // (undocumented) + static get locateManager(): ElementLocateManager; + // (undocumented) + static get notifications(): NotificationManager; + // (undocumented) + static get renderSystem(): RenderSystem; + // (undocumented) + static get toolAdmin(): ToolAdmin; + // (undocumented) + static get viewManager(): ViewManager; +} + +// @alpha (undocumented) +export class ExtensionImpl { + constructor(_id: string); + // (undocumented) + registerTool(tool: ToolType, onRegistered?: () => any): Promise; +} + +// @alpha +export interface ExtensionLoader { + downloadExtension(arg: ExtensionLoaderProps): Promise; + getManifest(arg: ExtensionLoaderProps): Promise; +} + +// @alpha +export interface ExtensionLoaderProps { + // (undocumented) + name: string; + // (undocumented) + version: string; +} + +// @alpha +export interface ExtensionManifest { + readonly activationEvents?: string[]; + // (undocumented) + readonly description?: string; + // (undocumented) + readonly displayName?: string; + // (undocumented) + readonly enableProposedApi?: boolean; + readonly engines?: { + itwinjs: string; + }; + readonly main?: string; + // (undocumented) + readonly name: string; + // (undocumented) + readonly version: string; +} + // @public export interface ExtentLimits { max: number; @@ -4365,6 +4450,8 @@ export class IModelApp { static authorizationClient?: AuthorizationClient; // @internal (undocumented) static createRenderSys(opts?: RenderSystem.Options): RenderSystem; + // @alpha (undocumented) + static readonly extensionAdmin: ExtensionAdmin; // @alpha static formatElementToolTip(msg: string[]): HTMLElement; static getAccessToken(): Promise; @@ -4375,7 +4462,7 @@ export class IModelApp { // @internal (undocumented) static get initialized(): boolean; static get localization(): Localization; - // @internal (undocumented) + // (undocumented) static get locateManager(): ElementLocateManager; // @internal (undocumented) static lookupEntityClass(classFullName: string): typeof EntityState | undefined; @@ -4402,6 +4489,8 @@ export class IModelApp { static get mapLayerFormatRegistry(): MapLayerFormatRegistry; static get notifications(): NotificationManager; static readonly onBeforeShutdown: BeEvent<() => void>; + // @internal + static readonly onBeforeStartup: BeEvent<() => void>; // @alpha static get quantityFormatter(): QuantityFormatter; static queryRenderCompatibility(): WebGLRenderCompatibilityInfo; @@ -4976,6 +5065,14 @@ export class LengthDescription extends FormattedQuantityDescription { // @internal (undocumented) export function linePlaneIntersect(outP: Point3d, linePt: Point3d, lineNormal: Vector3d | undefined, planePt: Point3d, planeNormal: Vector3d, perpendicular: boolean): void; +// @alpha +export interface LocalExtensionProps { + // (undocumented) + readonly mainFunc?: ResolveFunc; + // (undocumented) + readonly manifest: ExtensionManifest; +} + // @internal export class LocalhostIpcApp { // (undocumented) @@ -10990,6 +11087,15 @@ export interface ToolAssistanceSection { // @public (undocumented) export type ToolList = ToolType[]; +// @alpha (undocumented) +export class ToolProvider implements UiItemsProvider { + constructor(tool: ToolType); + // (undocumented) + readonly id: string; + // (undocumented) + provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[]; + } + // @public export class ToolRegistry { create(toolId: string, ...args: any[]): Tool | undefined; diff --git a/common/api/summary/appui-react.exports.csv b/common/api/summary/appui-react.exports.csv index a3c2a64ab294..9c4325261d0b 100644 --- a/common/api/summary/appui-react.exports.csv +++ b/common/api/summary/appui-react.exports.csv @@ -777,14 +777,12 @@ deprecated;WorkflowProps internal;WorkflowPropsList deprecated;WorkflowPropsList public;Zone -deprecated;Zone public;ZoneDef deprecated;ZoneDef public;ZoneDefProvider public;ZoneLocation deprecated;ZoneLocation public;ZoneProps -deprecated;ZoneProps internal;ZoneRuntimeProps public;ZoneState deprecated;ZoneState \ No newline at end of file diff --git a/common/api/summary/core-frontend.exports.csv b/common/api/summary/core-frontend.exports.csv index 301e00c7c1fc..e53f7560aff4 100644 --- a/common/api/summary/core-frontend.exports.csv +++ b/common/api/summary/core-frontend.exports.csv @@ -71,6 +71,8 @@ public;BlankConnectionProps public;BriefcaseConnection public;class BriefcaseNotificationHandler public;BriefcaseTxns +alpha;BuildExtensionManifest +alpha;BuiltInExtensionLoaderProps internal;CachedDecoration = internal;CachedIModelCoordinatesResponseProps public;calculateEcefToDbTransformAtLocation(originIn: Point3d, iModel: IModelConnection): Promise @@ -150,6 +152,12 @@ public;EntityState internal;EnvironmentDecorations public;EventController public;EventHandled +alpha;ExtensionAdmin +beta;ExtensionHost +alpha;ExtensionImpl +alpha;ExtensionLoader +alpha;ExtensionLoaderProps +alpha;ExtensionManifest public;ExtentLimits internal;ExternalTileStatistics public;extractImageSourceDimensions(source: ImageSource): Promise @@ -295,6 +303,7 @@ public;KeyinParseError internal;KeyinStatus beta;LengthDescription internal;linePlaneIntersect(outP: Point3d, linePt: Point3d, lineNormal: Vector3d | undefined, planePt: Point3d, planeNormal: Vector3d, perpendicular: boolean): void +alpha;LocalExtensionProps internal;LocalhostIpcApp internal;LocalHostIpcAppOpts beta;LocalUnitFormatProvider @@ -588,6 +597,7 @@ public;ToolAssistanceInstructions public;ToolAssistanceKeyboardInfo public;ToolAssistanceSection public;ToolList = ToolType[] +alpha;ToolProvider public;ToolRegistry public;ToolSettings internal;ToolSettingsState diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index d3c6b73ebfa5..09b54fa05bc2 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -268,7 +268,7 @@ export class IModelApp { */ public static readonly telemetry: TelemetryManager = new TelemetryManager(); - /** */ + /** @alpha */ public static readonly extensionAdmin = new ExtensionAdmin(); /** Map of classFullName to EntityState class */ diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts index ef4851a7c1d4..a7ad97db2acd 100644 --- a/core/frontend/src/extension/Extension.ts +++ b/core/frontend/src/extension/Extension.ts @@ -8,7 +8,9 @@ type ResolveFunc = (() => Promise); -/** Defines the format of an Extension manifest */ +/** Defines the format of an Extension manifest + * @alpha +*/ export interface ExtensionManifest { readonly name: string; readonly displayName?: string; @@ -25,6 +27,7 @@ export interface ExtensionManifest { readonly enableProposedApi?: boolean; } +/** @alpha */ export interface BuildExtensionManifest extends ExtensionManifest { /** Only valid when the Extension is loaded at build-time. * @@ -33,7 +36,9 @@ export interface BuildExtensionManifest extends ExtensionManifest { readonly module?: string; } -/** Describes an Extension that has already been downloaded and has a location files can be easily executed. */ +/** Describes an Extension that has already been downloaded and has a location files can be easily executed. + * @alpha +*/ export interface LocalExtensionProps { readonly manifest: ExtensionManifest; readonly mainFunc?: ResolveFunc; diff --git a/core/frontend/src/extension/ExtensionImpl.ts b/core/frontend/src/extension/ExtensionImpl.ts index 6cfe508c7a40..71666123466a 100644 --- a/core/frontend/src/extension/ExtensionImpl.ts +++ b/core/frontend/src/extension/ExtensionImpl.ts @@ -7,6 +7,7 @@ import { ToolType } from "../tools/Tool"; import { IModelApp } from "../IModelApp"; import { CommonToolbarItem, StageUsage, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from "@itwin/appui-abstract"; +/** @alpha */ export class ToolProvider implements UiItemsProvider { public readonly id; private _toolId = ""; @@ -26,6 +27,7 @@ export class ToolProvider implements UiItemsProvider { } } +/** @alpha */ export class ExtensionImpl { constructor(private _id: string) { } diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts index eaf80462f409..5be9751bc6f4 100644 --- a/core/frontend/src/extension/ExtensionLoader.ts +++ b/core/frontend/src/extension/ExtensionLoader.ts @@ -5,12 +5,15 @@ import { ExtensionManifest, LocalExtensionProps } from "./Extension"; -/** THe minimum information required to download an Extension */ +/** The minimum information required to download an Extension + * @alpha +*/ export interface ExtensionLoaderProps { name: string; version: string; } +/** @alpha */ export interface BuiltInExtensionLoaderProps { manifest: Promise; loader: (() => Promise); From ef43e154a6be7310ec133916e68375fe8b5be033 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 19 Nov 2021 10:27:12 -0600 Subject: [PATCH 06/76] Change logs --- .../spencer-new-extension-api_2021-11-19-16-27.json | 10 ++++++++++ .../spencer-new-extension-api_2021-11-19-16-27.json | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 common/changes/@itwin/core-extension/spencer-new-extension-api_2021-11-19-16-27.json create mode 100644 common/changes/@itwin/core-frontend/spencer-new-extension-api_2021-11-19-16-27.json diff --git a/common/changes/@itwin/core-extension/spencer-new-extension-api_2021-11-19-16-27.json b/common/changes/@itwin/core-extension/spencer-new-extension-api_2021-11-19-16-27.json new file mode 100644 index 000000000000..7457c66a8737 --- /dev/null +++ b/common/changes/@itwin/core-extension/spencer-new-extension-api_2021-11-19-16-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-extension", + "comment": "Switched to more flexible extension api", + "type": "none" + } + ], + "packageName": "@itwin/core-extension" +} \ No newline at end of file diff --git a/common/changes/@itwin/core-frontend/spencer-new-extension-api_2021-11-19-16-27.json b/common/changes/@itwin/core-frontend/spencer-new-extension-api_2021-11-19-16-27.json new file mode 100644 index 000000000000..f3fb5ac2a535 --- /dev/null +++ b/common/changes/@itwin/core-frontend/spencer-new-extension-api_2021-11-19-16-27.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-frontend", + "comment": "Switched to more flexible extension api", + "type": "none" + } + ], + "packageName": "@itwin/core-frontend" +} \ No newline at end of file From ad87b4364e831d71735fdda436245feb90e468c6 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 19 Nov 2021 12:06:04 -0600 Subject: [PATCH 07/76] Added extension package documentation --- core/frontend/src/extension/ExtensionHost.ts | 4 ++++ core/frontend/src/extension/ExtensionImpl.ts | 3 +++ core/frontend/src/extension/ExtensionLoader.ts | 3 +++ core/frontend/src/extension/ExtensionRuntime.ts | 3 +++ 4 files changed, 13 insertions(+) diff --git a/core/frontend/src/extension/ExtensionHost.ts b/core/frontend/src/extension/ExtensionHost.ts index 2fb852b12f73..8f574018877a 100644 --- a/core/frontend/src/extension/ExtensionHost.ts +++ b/core/frontend/src/extension/ExtensionHost.ts @@ -2,6 +2,10 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ + import { IModelApp } from "../IModelApp"; import type { ToolAdmin } from "../tools/ToolAdmin"; import type { AccuSnap } from "../AccuSnap"; diff --git a/core/frontend/src/extension/ExtensionImpl.ts b/core/frontend/src/extension/ExtensionImpl.ts index 71666123466a..a504131440da 100644 --- a/core/frontend/src/extension/ExtensionImpl.ts +++ b/core/frontend/src/extension/ExtensionImpl.ts @@ -2,6 +2,9 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ import { ToolType } from "../tools/Tool"; import { IModelApp } from "../IModelApp"; diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts index 5be9751bc6f4..5a7c926745d5 100644 --- a/core/frontend/src/extension/ExtensionLoader.ts +++ b/core/frontend/src/extension/ExtensionLoader.ts @@ -2,6 +2,9 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ import { ExtensionManifest, LocalExtensionProps } from "./Extension"; diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 0432872964c5..736003e1573c 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -2,6 +2,9 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Extensions + */ /* eslint-disable @typescript-eslint/naming-convention */ From 7b92d0fe97448ae77a428acf8a8c5c155cd2f8b0 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Mon, 22 Nov 2021 16:33:11 -0600 Subject: [PATCH 08/76] Updated code owners and removed unused test --- .github/CODEOWNERS | 2 + common/config/rush/pnpm-lock.yaml | 2 - core/frontend/src/extension/ExtensionAdmin.ts | 2 +- core/frontend/src/extension/ExtensionHost.ts | 2 +- core/frontend/src/test/Extension.test.ts | 43 ------------------- test-apps/ui-test-app/package.json | 1 - 6 files changed, 4 insertions(+), 48 deletions(-) delete mode 100644 core/frontend/src/test/Extension.test.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 68e8ab1cbd23..5a6b89069e28 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -108,6 +108,7 @@ rush.json @iTwin/itwinjs-core-admins /core/ecschema-* @calebmshafer @ColinKerr @wgoehrig /core/electron @wgoehrig @ramanujam-raman /core/express-server @calebmshafer @wgoehrig @ramanujam-raman +/core/extension @calebmshafer @wgoehrig @aruniverse /core/frontend @kabentley @bbastings @iTwin/itwinjs-core-display /core/frontend/src/extension @calebmshafer @wgoehrig /core/frontend-devtools @iTwin/itwinjs-core-display @Ellord207 @@ -137,6 +138,7 @@ rush.json @iTwin/itwinjs-core-admins /example-code @iTwin/itwinjs-core-admins /extensions @bsteinbk @calebmshafer +/extensions/test-extension @wgoehrig /extensions/map-layers @bsteinbk @mdastous-bentley /full-stack-tests/core @iTwin/itwinjs-core-admins diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index be187528d1ec..e79a225723c6 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -3427,7 +3427,6 @@ importers: dotenv-expand: ^5.1.0 electron: ^14.0.0 eslint: ^7.11.0 - extension-prototype: workspace:* fs-extra: ^8.1.0 internal-tools: workspace:* lorem-ipsum: ^2.0.3 @@ -3482,7 +3481,6 @@ importers: '@itwin/reality-data-client': 3.0.0-dev.80 '@itwin/ui-items-providers-test': link:../ui-items-providers-test classnames: 2.3.1 - extension-prototype: link:../../extensions/test-extension lorem-ipsum: 2.0.4 react: 17.0.2 react-beautiful-dnd: 13.1.0_react-dom@17.0.2+react@17.0.2 diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index cdf746ee4ca1..ba566c939183 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -17,7 +17,7 @@ import { ExtensionLoader } from "./ExtensionLoader"; * 2. Load the the main module when necessary * 2. Download the needed files from * - * 3 ways to load an Extension into the system: + * 2 ways to load an Extension into the system: * * 1. At build-time provide the function to load both the Extension Manifest and import the main module of the extension. * The main module must contain the activate() function. diff --git a/core/frontend/src/extension/ExtensionHost.ts b/core/frontend/src/extension/ExtensionHost.ts index 8f574018877a..cb6a0a439cb8 100644 --- a/core/frontend/src/extension/ExtensionHost.ts +++ b/core/frontend/src/extension/ExtensionHost.ts @@ -17,7 +17,7 @@ import type { RenderSystem } from "../render/RenderSystem"; /** * Subset of IModelApp exposed to Extensions - * @beta + * @alpha */ export class ExtensionHost { protected constructor() { } diff --git a/core/frontend/src/test/Extension.test.ts b/core/frontend/src/test/Extension.test.ts deleted file mode 100644 index 294178c6c5f0..000000000000 --- a/core/frontend/src/test/Extension.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// /*--------------------------------------------------------------------------------------------- -// * Copyright (c) Bentley Systems, Incorporated. All rights reserved. -// * See LICENSE.md in the project root for license terms and full copyright notice. -// *--------------------------------------------------------------------------------------------*/ - -// import { LocalExtensionProps } from "../extension/Extension"; -// import { ExtensionAdmin } from "../extension/ExtensionAdmin"; - -// // emulates a main.js for use as the `main` in the Extension Manifest -// const testExtensionMain = `export default { -// activate: function activate(_vm) {console.log("hello world");} -// }`; -// // emulates a loader.js file as a `module` in the Extension Manifest -// const testExtensionLoader = `export default { -// manifest: import("../package.json"), -// load: () => import("./main.js"), -// }`; - -// (await import("./index.js").default()); - -// describe.only("", async () => { -// it("", async () => { -// const admin = new ExtensionAdmin(); -// const localExtProp: LocalExtensionProps = { -// manifest: { -// name: "test", -// version: "2.1.1", -// main: testExtensionMain, -// module: testExtensionLoader, -// }, -// location: "", -// }; - -// await admin.addExtension(localExtProp, async () => import ("ext")); - -// const executableMain = Function(localExtProp.manifest.main!); -// executableMain(); -// }); -// }); diff --git a/test-apps/ui-test-app/package.json b/test-apps/ui-test-app/package.json index ff777428d4cb..766a3fabda48 100644 --- a/test-apps/ui-test-app/package.json +++ b/test-apps/ui-test-app/package.json @@ -107,7 +107,6 @@ "@itwin/presentation-components": "workspace:*", "@itwin/presentation-frontend": "workspace:*", "@itwin/ui-items-providers-test": "workspace:*", - "extension-prototype": "workspace:*", "classnames": "^2.3.1", "lorem-ipsum": "^2.0.3", "react": "^17.0.0", From f651ce11ac1c8a141b068b1c0ede8402d81d61f3 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Mon, 22 Nov 2021 17:14:34 -0600 Subject: [PATCH 09/76] Extract-api --- common/api/appui-react.api.md | 10 +- common/api/core-frontend.api.md | 2 +- common/api/summary/core-frontend.exports.csv | 2 +- .../rush/browser-approved-packages.json | 1292 ++++------------- common/config/rush/pnpm-lock.yaml | 403 ++--- 5 files changed, 373 insertions(+), 1336 deletions(-) diff --git a/common/api/appui-react.api.md b/common/api/appui-react.api.md index a7251c3dd8b6..18f441154359 100644 --- a/common/api/appui-react.api.md +++ b/common/api/appui-react.api.md @@ -979,13 +979,13 @@ export class CategoryVisibilityHandler implements IVisibilityHandler { static enableCategory(viewManager: ViewManager, imodel: IModelConnection, ids: string[], enabled: boolean, forAllViewports: boolean, enableAllSubCategories?: boolean): void; static enableSubCategory(viewManager: ViewManager, key: string, enabled: boolean, forAllViewports?: boolean): void; // (undocumented) - getCategoryVisibility(id: string): "hidden" | "visible"; + getCategoryVisibility(id: string): "visible" | "hidden"; // (undocumented) static getInstanceIdFromTreeNodeKey(nodeKey: NodeKey): string; // (undocumented) getParent(key: string): Category | undefined; // (undocumented) - getSubCategoryVisibility(id: string): "hidden" | "visible"; + getSubCategoryVisibility(id: string): "visible" | "hidden"; // (undocumented) getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus; // (undocumented) @@ -4578,7 +4578,7 @@ export enum SelectionScope { } // @public -export const SelectionScopeField: import("react-redux").ConnectedComponent & SelectionScopeFieldProps, "availableSelectionScopes" | "activeSelectionScope">>; +export const SelectionScopeField: import("react-redux").ConnectedComponent & SelectionScopeFieldProps, "activeSelectionScope" | "availableSelectionScopes">>; // @public @deprecated export class SeparatorBackstageItem extends React.PureComponent { @@ -7546,7 +7546,7 @@ export enum WidgetType { } // @public -export const withMessageCenterFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; +export const withMessageCenterFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; // @public export const withSafeArea:

(Component: React.JSXElementConstructor

& C) => { @@ -7604,7 +7604,7 @@ export const withSafeArea:

(Component: R }; // @public -export const withStatusFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; +export const withStatusFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; // @internal @deprecated export class Workflow extends ItemDefBase { diff --git a/common/api/core-frontend.api.md b/common/api/core-frontend.api.md index cb283cf18a87..a5654521908c 100644 --- a/common/api/core-frontend.api.md +++ b/common/api/core-frontend.api.md @@ -3022,7 +3022,7 @@ export class ExtensionAdmin { onStartup: () => Promise; } -// @beta +// @alpha export class ExtensionHost { protected constructor(); // (undocumented) diff --git a/common/api/summary/core-frontend.exports.csv b/common/api/summary/core-frontend.exports.csv index 5bbed5a9f368..5a727242d3e8 100644 --- a/common/api/summary/core-frontend.exports.csv +++ b/common/api/summary/core-frontend.exports.csv @@ -153,7 +153,7 @@ internal;EnvironmentDecorations public;EventController public;EventHandled alpha;ExtensionAdmin -beta;ExtensionHost +alpha;ExtensionHost alpha;ExtensionImpl alpha;ExtensionLoader alpha;ExtensionLoaderProps diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 1454e3051b7d..1d2d86baba59 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -4,1781 +4,991 @@ "packages": [ { "name": "@axe-core/react", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@azure/storage-blob", - "allowedCategories": [ - "backend", - "internal" - ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/icons-generic", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/icons-generic-webfont", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/imodelhub-client", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@bentley/imodeljs-native", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/itwin-client", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@bentley/react-scripts", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "@bentley/reality-data-client", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@bentley/telemetry-client", - "allowedCategories": [ - "backend", - "frontend" - ] + "allowedCategories": [ "backend", "frontend" ] }, { "name": "@bentley/units-schema", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "@itwin/appui-abstract", - "allowedCategories": [ - "common", - "edit", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "common", "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/appui-layout-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/appui-react", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "@itwin/backend-webpack-tools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/browser-authorization", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/build-tools", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/certa", - "allowedCategories": [ - "common", - "edit", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "edit", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/components-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/core-backend", - "allowedCategories": [ - "backend", - "common", - "edit", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-bentley", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-common", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-electron", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-extension", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-frontend", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-geometry", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-i18n", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-markup", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-mobile", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-orbitgt", - "allowedCategories": [ - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@itwin/core-quantity", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/core-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/core-transformer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-webpack-tools", - "allowedCategories": [ - "internal", - "tools" - ] + "allowedCategories": [ "internal", "tools" ] }, { "name": "@itwin/ecschema-locaters", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@itwin/ecschema-metadata", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/ecschema-rpcinterface-common", - "allowedCategories": [ - "backend", - "integration-testing" - ] + "allowedCategories": [ "backend", "integration-testing" ] }, { "name": "@itwin/editor-backend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/editor-common", - "allowedCategories": [ - "edit", - "internal" - ] + "allowedCategories": [ "edit", "internal" ] }, { "name": "@itwin/editor-frontend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/eslint-plugin", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/express-server", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/frontend-devtools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/hypermodeling-frontend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/imodel-components-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/itwinui-css", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/itwinui-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/linear-referencing-common", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "@itwin/map-layers", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/oidc-signin-tool", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/perf-tools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/presentation-backend", - "allowedCategories": [ - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-common", - "allowedCategories": [ - "backend", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-components", - "allowedCategories": [ - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "@itwin/presentation-frontend", - "allowedCategories": [ - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-testing", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/projects-client", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/reality-data-client", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/service-authorization", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/ui-items-providers-test", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/webgl-compatibility", - "allowedCategories": [ - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@microsoft/api-extractor", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@openid/appauth", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "@reduxjs/toolkit", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@svgdotjs/svg.js", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "@testing-library/react", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@testing-library/react-hooks", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@testing-library/user-event", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "@typescript-eslint/eslint-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/parser", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/typescript-estree", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@ungap/url-search-params", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "@wojtekmaj/enzyme-adapter-react-17", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@xmldom/xmldom", - "allowedCategories": [ - "backend", - "common", - "tools" - ] + "allowedCategories": [ "backend", "common", "tools" ] }, { "name": "agentkeepalive", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "almost-equal", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "autoprefixer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "azurite", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "benchmark", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "body-parser", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "buffer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "cache-require-paths", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "callable-instance2", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "case-sensitive-paths-webpack-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "chai", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-as-promised", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-jest-snapshot", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "chai-spies", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "chai-string", - "allowedCategories": [ - "frontend", - "tools" - ] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "chai-subset", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "chalk", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "child_process", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "chrome-launcher", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "classnames", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "commander", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "concurrently", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "copy-webpack-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "cpx", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] + }, + { + "name": "cpx2", + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "cross-env", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "cross-spawn", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "debug", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "deep-assign", - "allowedCategories": [ - "common", - "integration-testing" - ] + "allowedCategories": [ "common", "integration-testing" ] }, { "name": "deep-equal", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "detect-port", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "dompurify", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "dotenv", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "dotenv-expand", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "electron", - "allowedCategories": [ - "backend", - "edit", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "edit", "internal", "tools" ] }, { "name": "enzyme", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "enzyme-to-json", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "esbuild", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "eslint", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "eslint-import-resolver-node", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-import-resolver-typescript", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-deprecation", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-import", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jam3", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsdoc", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsx-a11y", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-prefer-arrow", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react-hooks", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eventemitter2", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "express", - "allowedCategories": [ - "backend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "internal", "tools" ] }, { "name": "express-ws", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "extension-prototype", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "faker", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "fast-deep-equal", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "fast-sort", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "file-loader", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "file-saver", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "findup", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "flatbuffers", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "form-data", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "fs-extra", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal", "tools" ] }, { "name": "fs-write-stream-atomic", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "fuse.js", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "glob", - "allowedCategories": [ - "backend", - "edit", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "edit", "frontend", "internal", "tools" ] }, { "name": "got", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "i18next", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-browser-languagedetector", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-http-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-xhr-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ignore-styles", - "allowedCategories": [ - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "immer", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "immutable", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "inspire-tree", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "internal-tools", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "istanbul-instrumenter-loader", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "js-base64", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "jsdom", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "jsdom-global", - "allowedCategories": [ - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "json-schema-faker", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "json5", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "jsonc-parser", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "jsonpath", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "linkify-it", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "lodash", - "allowedCategories": [ - "common", - "frontend", - "tools" - ] + "allowedCategories": [ "common", "frontend", "tools" ] }, { "name": "lolex", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "lorem-ipsum", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "make-dir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "memfs", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "micro-memoize", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "mkdirp", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "mocha", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "mocha-junit-reporter", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "multiparty", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "nock", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "nodemon", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "npm-run-all", - "allowedCategories": [ - "backend", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "frontend", "integration-testing", "internal" ] }, { "name": "null-loader", - "allowedCategories": [ - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "nyc", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "object-hash", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "open", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "openid-client", - "allowedCategories": [ - "integration-testing" - ] + "allowedCategories": [ "integration-testing" ] }, { "name": "postcss-flexbugs-fixes", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "postcss-loader", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "proper-lockfile", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "puppeteer", - "allowedCategories": [ - "integration-testing", - "tools" - ] + "allowedCategories": [ "integration-testing", "tools" ] }, { "name": "qs", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "raf", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-autosuggest", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-beautiful-dnd", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-data-grid", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-html5-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-utils", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dom", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-dom-instance", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-highlight-words", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-redux", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-resize-detector", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-select", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-select-event", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-split-pane", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-table", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "react-test-renderer", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-virtualized", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-window", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "readline", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "recursive-readdir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "redux", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "require-dir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "resize-observer-polyfill", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "resolve", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "rimraf", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "rxjs", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "save", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "semver", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "shortid", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "sinon", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "sinon-chai", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "source-map-loader", - "allowedCategories": [ - "common", - "edit", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "edit", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "source-map-support", - "allowedCategories": [ - "backend", - "edit", - "frontend", - "tools" - ] + "allowedCategories": [ "backend", "edit", "frontend", "tools" ] }, { "name": "spdy", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "superagent", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "supertest", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "symlink-dir", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "tree-kill", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "ts-key-enum", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ts-node", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "typedoc", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-external-module-name", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-internal-external", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-merge-modules", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typemoq", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "typescript", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "typescript-json-schema", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "url", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "username", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "uuid", - "allowedCategories": [ - "frontend", - "tools" - ] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "webpack", - "allowedCategories": [ - "common", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "webpack-cli", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "webpack-core", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "webpack-filter-warnings-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "webpack-sources", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "wms-capabilities", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ws", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "wtfnode", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "xml-js", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "xmlhttprequest", - "allowedCategories": [ - "common", - "frontend" - ] + "allowedCategories": [ "common", "frontend" ] }, { "name": "xpath", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "yargonaut", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "yargs", - "allowedCategories": [ - "common", - "internal", - "tools" - ] + "allowedCategories": [ "common", "internal", "tools" ] } ] -} \ No newline at end of file +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index e79a225723c6..91b18b5352be 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -244,7 +244,7 @@ importers: ../../core/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.0.17 + '@bentley/imodeljs-native': 3.0.18 '@bentley/itwin-client': workspace:* '@bentley/telemetry-client': workspace:* '@itwin/build-tools': workspace:* @@ -264,7 +264,7 @@ importers: '@types/ws': ^6.0.4 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 @@ -283,7 +283,7 @@ importers: ws: ^7.5.3 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.0.17 + '@bentley/imodeljs-native': 3.0.18 '@bentley/telemetry-client': link:../../clients/telemetry form-data: 2.5.1 fs-extra: 8.1.0 @@ -311,7 +311,7 @@ importers: '@types/ws': 6.0.4 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 7.32.0 @@ -417,7 +417,7 @@ importers: benchmark: ^2.1.4 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -444,7 +444,7 @@ importers: benchmark: 2.1.4 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -466,7 +466,7 @@ importers: '@xmldom/xmldom': ^0.7.0 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 glob: ^7.1.2 mocha: ^8.3.2 @@ -488,7 +488,7 @@ importers: '@xmldom/xmldom': 0.7.5 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -513,7 +513,7 @@ importers: benchmark: ^2.1.4 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -539,7 +539,7 @@ importers: benchmark: 2.1.4 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -738,7 +738,7 @@ importers: '@types/sinon': ^9.0.0 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 fuse.js: ^3.3.0 glob: ^7.1.2 @@ -779,7 +779,7 @@ importers: '@types/sinon': 9.0.11 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 glob: 7.2.0 mocha: 8.4.0 @@ -801,7 +801,7 @@ importers: '@itwin/eslint-plugin': workspace:* '@types/file-saver': ^2.0.1 '@types/node': 14.14.31 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 file-saver: ^2.0.2 rimraf: ^3.0.2 @@ -818,7 +818,7 @@ importers: '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/file-saver': 2.0.3 '@types/node': 14.14.31 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 rimraf: 3.0.2 typescript: 4.4.4 @@ -874,7 +874,7 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 glob: ^7.1.2 mocha: ^8.3.2 @@ -896,7 +896,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 glob: 7.2.0 mocha: 8.4.0 @@ -953,7 +953,7 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 glob: ^7.1.2 mocha: ^8.3.2 @@ -976,7 +976,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 glob: 7.2.0 mocha: 8.4.0 @@ -1003,7 +1003,6 @@ importers: '@types/ws': ^6.0.4 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 @@ -1028,7 +1027,6 @@ importers: '@types/ws': 6.0.4 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 7.32.0 @@ -1047,7 +1045,7 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 debug: ^2.6.9 eslint: ^7.11.0 mocha: ^8.3.2 @@ -1063,7 +1061,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 debug: 2.6.9 eslint: 7.32.0 mocha: 8.4.0 @@ -1128,7 +1126,7 @@ importers: '@types/sinon': ^9.0.0 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 mocha: ^8.3.2 npm-run-all: ^4.1.5 @@ -1156,7 +1154,7 @@ importers: '@types/sinon': 9.0.11 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 npm-run-all: 4.1.5 @@ -1212,7 +1210,7 @@ importers: '@types/node': 14.14.31 '@types/semver': ^5.5.0 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -1233,7 +1231,7 @@ importers: '@types/node': 14.14.31 '@types/semver': 5.5.0 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -1253,7 +1251,7 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -1271,7 +1269,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -1288,7 +1286,6 @@ importers: '@types/fs-extra': ^4.0.7 '@types/mocha': ^8.2.2 chai: ^4.1.2 - cpx: ^1.5.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -1303,7 +1300,6 @@ importers: '@types/fs-extra': 4.0.12 '@types/mocha': 8.2.3 chai: 4.3.4 - cpx: 1.5.0 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -1322,7 +1318,6 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 chai: ^4.1.2 - cpx: ^1.5.0 eslint: ^7.11.0 mocha: ^8.3.2 nyc: ^15.1.0 @@ -1339,7 +1334,6 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -1363,7 +1357,6 @@ importers: '@types/semver': ^5.5.0 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 electron: ^14.0.0 eslint: ^7.11.0 mocha: ^8.3.2 @@ -1389,7 +1382,6 @@ importers: '@types/semver': 5.5.0 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 electron: 14.2.1 eslint: 7.32.0 mocha: 8.4.0 @@ -1447,7 +1439,7 @@ importers: '@types/node': 14.14.31 '@types/semver': ^5.5.0 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 electron: ^14.0.0 eslint: ^7.11.0 glob: ^7.1.2 @@ -1471,7 +1463,7 @@ importers: '@types/node': 14.14.31 '@types/semver': 5.5.0 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 electron: 14.2.1 eslint: 7.32.0 glob: 7.2.0 @@ -1502,7 +1494,7 @@ importers: '@types/node': 14.14.31 body-parser: ^1.18.2 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 electron: ^14.0.0 eslint: ^7.11.0 express: ^4.16.3 @@ -1541,7 +1533,7 @@ importers: '@types/fs-extra': 4.0.12 '@types/mocha': 8.2.3 '@types/node': 14.14.31 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 rimraf: 3.0.2 @@ -1572,7 +1564,7 @@ importers: body-parser: ^1.18.2 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 electron: ^14.0.0 eslint: ^7.11.0 express: ^4.16.3 @@ -1616,7 +1608,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 rimraf: 3.0.2 @@ -1633,7 +1625,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@types/node': 14.14.31 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 rimraf: ^3.0.2 typescript: ~4.4.0 @@ -1648,7 +1640,7 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/node': 14.14.31 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 rimraf: 3.0.2 typescript: 4.4.4 @@ -1690,7 +1682,7 @@ importers: chai-jest-snapshot: ^2.0.0 chai-spies: 1.0.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 eslint: ^7.11.0 @@ -1747,7 +1739,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -1801,6 +1793,7 @@ importers: specifiers: '@azure/storage-blob': ^12.7.0 '@bentley/imodelhub-client': workspace:* + '@bentley/imodeljs-native': 3.0.18 '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* @@ -1819,7 +1812,7 @@ importers: azurite: ^3.14.0 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 @@ -1834,6 +1827,7 @@ importers: dependencies: '@azure/storage-blob': 12.8.0 '@bentley/imodelhub-client': link:../../clients/imodelhub + '@bentley/imodeljs-native': 3.0.18 '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -1846,7 +1840,7 @@ importers: azurite: 3.14.3 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 7.32.0 @@ -1986,7 +1980,7 @@ importers: '@types/puppeteer': 2.0.1 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 @@ -2033,7 +2027,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/puppeteer': 2.0.1 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 internal-tools: link:../../tools/internal npm-run-all: 4.1.5 @@ -2059,7 +2053,7 @@ importers: '@types/fs-extra': ^4.0.7 '@types/mocha': ^8.2.2 chai: ^4.1.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 deep-assign: ^2.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 @@ -2092,7 +2086,7 @@ importers: '@types/deep-assign': 0.1.1 '@types/fs-extra': 4.0.12 '@types/mocha': 8.2.3 - cpx: 1.5.0 + cpx2: 3.0.2 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 7.32.0 @@ -2127,7 +2121,7 @@ importers: '@types/chai-as-promised': ^7 '@types/chai-jest-snapshot': ^1.3.0 '@types/chai-subset': 1.3.1 - '@types/cpx': '1.5' + '@types/cpx2': npm:@types/cpx@1.5.0 '@types/deep-equal': ^1 '@types/faker': ^4.1.0 '@types/mocha': ^8.2.2 @@ -2142,7 +2136,7 @@ importers: chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 chai-subset: 1.6.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 dotenv: ^10.0.0 @@ -2185,7 +2179,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/chai-jest-snapshot': 1.3.6 '@types/chai-subset': 1.3.1 - '@types/cpx': 1.5.2 + '@types/cpx2': /@types/cpx/1.5.0 '@types/deep-equal': 1.0.1 '@types/faker': 4.1.12 '@types/mocha': 8.2.3 @@ -2197,7 +2191,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-subset: 1.6.0 - cpx: 1.5.0 + cpx2: 3.0.2 deep-equal: 1.1.1 faker: 4.1.0 immer: 9.0.6 @@ -2315,7 +2309,7 @@ importers: '@types/puppeteer': 2.0.1 chai: ^4.1.2 chai-as-promised: ^7 - cpx: ^1.5.0 + cpx2: ^3.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 @@ -2361,7 +2355,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/puppeteer': 2.0.1 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 internal-tools: link:../../tools/internal npm-run-all: 4.1.5 @@ -2398,7 +2392,7 @@ importers: chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 chai-subset: 1.6.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 eslint: ^7.11.0 @@ -2441,7 +2435,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-subset: 1.6.0 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 deep-equal: 1.1.1 eslint: 7.32.0 @@ -2476,7 +2470,7 @@ importers: chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 chai-subset: 1.6.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 eslint: ^7.11.0 @@ -2511,7 +2505,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-subset: 1.6.0 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 deep-equal: 1.1.1 eslint: 7.32.0 @@ -2559,7 +2553,7 @@ importers: chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 chai-subset: 1.6.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 @@ -2618,7 +2612,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-subset: 1.6.0 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 @@ -2661,7 +2655,7 @@ importers: chai: ^4.1.2 chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 deep-equal: ^1 eslint: ^7.11.0 @@ -2698,7 +2692,7 @@ importers: chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 deep-equal: 1.1.1 eslint: 7.32.0 @@ -2741,7 +2735,7 @@ importers: chai: ^4.1.2 chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 eslint: ^7.11.0 faker: ^4.1.0 @@ -2795,7 +2789,7 @@ importers: typemoq: 2.1.0 typescript: 4.4.4 devDependencies: - cpx: 1.5.0 + cpx2: 3.0.2 ../../test-apps/display-performance-test-app: specifiers: @@ -2823,7 +2817,7 @@ importers: body-parser: ^1.18.2 child_process: ^1.0.2 chrome-launcher: ^0.10.5 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 @@ -2862,7 +2856,7 @@ importers: '@types/node': 14.14.31 child_process: 1.0.2 chrome-launcher: 0.10.7 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -2910,7 +2904,7 @@ importers: '@types/fs-extra': ^4.0.7 body-parser: ^1.18.2 child_process: ^1.0.2 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 @@ -2960,7 +2954,7 @@ importers: '@types/express-ws': 3.0.1 '@types/fs-extra': 4.0.12 child_process: 1.0.2 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -3242,7 +3236,7 @@ importers: '@types/react-dom': ^17.0.0 '@types/react-select': 3.0.26 autoprefixer: ^8.6.5 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 @@ -3293,7 +3287,7 @@ importers: '@types/react-dom': 17.0.11 '@types/react-select': 3.0.26 autoprefixer: 8.6.5 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -3329,7 +3323,7 @@ importers: '@types/react': 17.0.31 '@types/react-select': 3.0.26 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 react: ^17.0.0 react-dom: ^17.0.0 @@ -3364,7 +3358,7 @@ importers: '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/react': 17.0.31 '@types/react-select': 3.0.26 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 rimraf: 3.0.2 typescript: 4.4.4 @@ -3421,7 +3415,7 @@ importers: '@types/react-table': ^7.0.18 '@types/semver': ^5.5.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-env: ^5.1.4 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 @@ -3506,7 +3500,7 @@ importers: '@types/react-select': 3.0.26 '@types/react-table': 7.7.8 '@types/semver': 5.5.0 - cpx: 1.5.0 + cpx2: 3.0.2 cross-env: 5.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -3559,7 +3553,7 @@ importers: '@microsoft/api-extractor': 7.7.3 '@types/node': 14.14.31 chalk: ^3.0.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 cross-spawn: ^7.0.1 eslint: ^7.11.0 fs-extra: ^8.1.0 @@ -3577,7 +3571,7 @@ importers: dependencies: '@microsoft/api-extractor': 7.7.3 chalk: 3.0.0 - cpx: 1.5.0 + cpx2: 3.0.2 cross-spawn: 7.0.3 fs-extra: 8.1.0 glob: 7.2.0 @@ -3671,7 +3665,7 @@ importers: chai-string: ^1.5.0 chalk: ^3.0.0 commander: ^2.14.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 fs-extra: ^8.1.0 mocha: ^8.3.2 @@ -3700,7 +3694,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 chai: 4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 nyc: 15.1.0 @@ -3796,7 +3790,7 @@ importers: chai-jest-snapshot: ^2.0.0 chalk: ^3.0.0 copy-webpack-plugin: ^6.2.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 file-loader: ^4.2.0 findup: 0.1.5 @@ -3840,7 +3834,7 @@ importers: chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 memfs: 3.3.0 mocha: 8.4.0 @@ -3869,7 +3863,7 @@ importers: chai-as-promised: ^7 chai-jest-snapshot: ^2.0.0 chai-spies: 1.0.0 - cpx: ^1.5.0 + cpx2: ^3.0.0 eslint: ^7.11.0 ignore-styles: ^5.0.1 jsdom: ^17.0.0 @@ -3903,7 +3897,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 eslint: 7.32.0 ignore-styles: 5.0.1 jsdom: 17.0.0 @@ -3945,7 +3939,7 @@ importers: chai-jest-snapshot: ^2.0.0 chai-spies: 1.0.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 eslint: ^7.11.0 @@ -3993,7 +3987,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -4061,7 +4055,7 @@ importers: chai-jest-snapshot: ^2.0.0 chai-spies: 1.0.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 eslint: ^7.11.0 @@ -4147,7 +4141,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -4215,7 +4209,7 @@ importers: chai-spies: 1.0.0 chai-string: ^1.5.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 eslint: ^7.11.0 @@ -4312,7 +4306,7 @@ importers: chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 chai-string: 1.5.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -4370,7 +4364,7 @@ importers: chai-jest-snapshot: ^2.0.0 chai-spies: 1.0.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 dompurify: ^2.0.12 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 @@ -4436,7 +4430,7 @@ importers: chai-as-promised: 7.1.1_chai@4.3.4 chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -4498,7 +4492,7 @@ importers: chai-spies: 1.0.0 chai-string: ^1.5.0 classnames: ^2.3.1 - cpx: ^1.5.0 + cpx2: ^3.0.0 enzyme: ^3.4.0 enzyme-to-json: ^3.3.4 eslint: ^7.11.0 @@ -4567,7 +4561,7 @@ importers: chai-jest-snapshot: 2.0.0_chai@4.3.4 chai-spies: 1.0.0_chai@4.3.4 chai-string: 1.5.0_chai@4.3.4 - cpx: 1.5.0 + cpx2: 3.0.2 enzyme: 3.11.0 enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 @@ -6313,8 +6307,8 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/3.0.17: - resolution: {integrity: sha512-WdP0G63gBa7CSGZD2kle0LGjnvZHSIxvtUQZYOFS1ta3Vns+85XeXglnhluh0ZAZvQRATsFV0MmS/66RHVi7Uw==} + /@bentley/imodeljs-native/3.0.18: + resolution: {integrity: sha512-h9i+hqqXJOiSKotEm7xqVYb8t+IxrjwtMt2ZMncIX8MzItLvQueJVMA1ooVYvpMM/s8wx0twcSx4S/4VwQzMRA==} requiresBuild: true dev: false @@ -7786,8 +7780,8 @@ packages: resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} dev: true - /@types/cpx/1.5.2: - resolution: {integrity: sha512-CL9DbTAdf5NYcbYpBTli6JxVIpCAhJp1FeQiXd9SNjbC4o9k6McnHkU0FHgj9UYoN7TVX3poaaBrwFabTY7Skw==} + /@types/cpx/1.5.0: + resolution: {integrity: sha512-kuGK3lZqEvHTSDbJcaA6tcPoEXV4/e88YrltZMcQUewZhzYQwNSTMGIiPBqeeFd4LCBo1CX5U6CV6LaHG3wXSg==} dependencies: '@types/node': 14.14.31 dev: false @@ -9049,12 +9043,6 @@ packages: resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} dev: false - /anymatch/1.3.2: - resolution: {integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==} - dependencies: - micromatch: 2.3.11 - normalize-path: 2.1.1 - /anymatch/2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} dependencies: @@ -9122,12 +9110,6 @@ packages: resolution: {integrity: sha1-2edrEXM+CFacCEeuezmyhgswt0U=} dev: true - /arr-diff/2.0.0: - resolution: {integrity: sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - /arr-diff/4.0.0: resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=} engines: {node: '>=0.10.0'} @@ -9173,10 +9155,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /array-unique/0.2.1: - resolution: {integrity: sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=} - engines: {node: '>=0.10.0'} - /array-unique/0.3.2: resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} engines: {node: '>=0.10.0'} @@ -9632,6 +9610,7 @@ packages: dependencies: core-js: 2.6.12 regenerator-runtime: 0.11.1 + dev: true /babel-template/6.26.0: resolution: {integrity: sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=} @@ -9823,14 +9802,6 @@ packages: balanced-match: 1.0.2 concat-map: 0.0.1 - /braces/1.8.5: - resolution: {integrity: sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=} - engines: {node: '>=0.10.0'} - dependencies: - expand-range: 1.8.2 - preserve: 0.2.0 - repeat-element: 1.1.4 - /braces/2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -10321,21 +10292,6 @@ packages: resolution: {integrity: sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=} dev: true - /chokidar/1.7.0: - resolution: {integrity: sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=} - deprecated: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. - dependencies: - anymatch: 1.3.2 - async-each: 1.0.3 - glob-parent: 2.0.0 - inherits: 2.0.4 - is-binary-path: 1.0.1 - is-glob: 2.0.1 - path-is-absolute: 1.0.1 - readdirp: 2.2.1 - optionalDependencies: - fsevents: 1.2.13 - /chokidar/2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} deprecated: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies. @@ -10494,7 +10450,6 @@ packages: /co/4.6.0: resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true /coa/2.0.2: resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} @@ -10816,6 +10771,7 @@ packages: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. requiresBuild: true + dev: true /core-js/3.19.1: resolution: {integrity: sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==} @@ -10855,21 +10811,25 @@ packages: yaml: 1.10.2 dev: true - /cpx/1.5.0: - resolution: {integrity: sha1-GFvgGFEdhycN7czCkxceN2VauI8=} + /cpx2/3.0.2: + resolution: {integrity: sha512-xVmdulZJVGSV+c8KkZ9IQY+RgyL9sGeVqScI2e7NtsEY9SVKcQXM4v0/9OLU0W0YtL9nmmqrtWjs5rpvgHn9Hg==} + engines: {node: '>=6.5'} hasBin: true dependencies: - babel-runtime: 6.26.0 - chokidar: 1.7.0 + co: 4.6.0 + debounce: 1.2.1 + debug: 4.3.2 duplexer: 0.1.2 + fs-extra: 10.0.0 glob: 7.2.0 glob2base: 0.0.12 minimatch: 3.0.4 - mkdirp: 0.5.5 resolve: 1.19.0 safe-buffer: 5.2.1 shell-quote: 1.7.3 subarg: 1.0.0 + transitivePeerDependencies: + - supports-color /create-ecdh/4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -11234,6 +11194,9 @@ packages: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} dev: false + /debounce/1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: @@ -12591,12 +12554,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expand-brackets/0.1.5: - resolution: {integrity: sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=} - engines: {node: '>=0.10.0'} - dependencies: - is-posix-bracket: 0.1.1 - /expand-brackets/2.1.4: resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} engines: {node: '>=0.10.0'} @@ -12609,12 +12566,6 @@ packages: snapdragon: 0.8.2 to-regex: 3.0.2 - /expand-range/1.8.2: - resolution: {integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=} - engines: {node: '>=0.10.0'} - dependencies: - fill-range: 2.2.4 - /expand-template/2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -12711,12 +12662,6 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true - /extglob/0.3.2: - resolution: {integrity: sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 1.0.0 - /extglob/2.0.4: resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} engines: {node: '>=0.10.0'} @@ -12882,25 +12827,11 @@ packages: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} optional: true - /filename-regex/2.0.1: - resolution: {integrity: sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=} - engines: {node: '>=0.10.0'} - /filesize/6.1.0: resolution: {integrity: sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==} engines: {node: '>= 0.4.0'} dev: true - /fill-range/2.2.4: - resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 2.1.0 - isobject: 2.1.0 - randomatic: 3.1.1 - repeat-element: 1.1.4 - repeat-string: 1.6.1 - /fill-range/4.0.0: resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} engines: {node: '>=0.10.0'} @@ -13043,12 +12974,6 @@ packages: resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} engines: {node: '>=0.10.0'} - /for-own/0.1.5: - resolution: {integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} @@ -13131,6 +13056,14 @@ packages: /fs-constants/1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + /fs-extra/10.0.0: + resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.8 + jsonfile: 6.1.0 + universalify: 2.0.0 + /fs-extra/3.0.1: resolution: {integrity: sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=} dependencies: @@ -13302,18 +13235,6 @@ packages: dev: false optional: true - /glob-base/0.3.0: - resolution: {integrity: sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=} - engines: {node: '>=0.10.0'} - dependencies: - glob-parent: 2.0.0 - is-glob: 2.0.1 - - /glob-parent/2.0.0: - resolution: {integrity: sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=} - dependencies: - is-glob: 2.0.1 - /glob-parent/3.1.0: resolution: {integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=} dependencies: @@ -14287,16 +14208,6 @@ packages: engines: {node: '>=8'} hasBin: true - /is-dotfile/1.0.3: - resolution: {integrity: sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=} - engines: {node: '>=0.10.0'} - - /is-equal-shallow/0.1.3: - resolution: {integrity: sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=} - engines: {node: '>=0.10.0'} - dependencies: - is-primitive: 2.0.0 - /is-extendable/0.1.1: resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} engines: {node: '>=0.10.0'} @@ -14307,10 +14218,6 @@ packages: dependencies: is-plain-object: 2.0.4 - /is-extglob/1.0.0: - resolution: {integrity: sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=} - engines: {node: '>=0.10.0'} - /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} engines: {node: '>=0.10.0'} @@ -14341,12 +14248,6 @@ packages: engines: {node: '>=6'} dev: true - /is-glob/2.0.1: - resolution: {integrity: sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 1.0.0 - /is-glob/3.1.0: resolution: {integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=} engines: {node: '>=0.10.0'} @@ -14386,22 +14287,12 @@ packages: dependencies: has-tostringtag: 1.0.0 - /is-number/2.1.0: - resolution: {integrity: sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - /is-number/3.0.0: resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=} engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 - /is-number/4.0.0: - resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} - engines: {node: '>=0.10.0'} - /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -14453,18 +14344,10 @@ packages: dependencies: isobject: 3.0.1 - /is-posix-bracket/0.1.1: - resolution: {integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=} - engines: {node: '>=0.10.0'} - /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true - /is-primitive/2.0.0: - resolution: {integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=} - engines: {node: '>=0.10.0'} - /is-property/1.0.2: resolution: {integrity: sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=} dev: false @@ -15470,7 +15353,6 @@ packages: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.8 - dev: true /jsonify/0.0.0: resolution: {integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=} @@ -15999,9 +15881,6 @@ packages: escape-string-regexp: 4.0.0 optional: true - /math-random/1.0.4: - resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} - /md5.js/1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} dependencies: @@ -16101,24 +15980,6 @@ packages: resolution: {integrity: sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==} dev: true - /micromatch/2.3.11: - resolution: {integrity: sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 2.0.0 - array-unique: 0.2.1 - braces: 1.8.5 - expand-brackets: 0.1.5 - extglob: 0.3.2 - filename-regex: 2.0.1 - is-extglob: 1.0.0 - is-glob: 2.0.1 - kind-of: 3.2.2 - normalize-path: 2.1.1 - object.omit: 2.0.1 - parse-glob: 3.0.4 - regex-cache: 0.4.4 - /micromatch/3.1.0: resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} engines: {node: '>=0.10.0'} @@ -16945,13 +16806,6 @@ packages: es-abstract: 1.19.1 dev: true - /object.omit/2.0.1: - resolution: {integrity: sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=} - engines: {node: '>=0.10.0'} - dependencies: - for-own: 0.1.5 - is-extendable: 0.1.1 - /object.pick/1.3.0: resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=} engines: {node: '>=0.10.0'} @@ -17259,15 +17113,6 @@ packages: pbkdf2: 3.1.2 safe-buffer: 5.2.1 - /parse-glob/3.0.4: - resolution: {integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=} - engines: {node: '>=0.10.0'} - dependencies: - glob-base: 0.3.0 - is-dotfile: 1.0.3 - is-extglob: 1.0.0 - is-glob: 2.0.1 - /parse-json/4.0.0: resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} engines: {node: '>=4'} @@ -18268,10 +18113,6 @@ packages: resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} engines: {node: '>=4'} - /preserve/0.2.0: - resolution: {integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=} - engines: {node: '>=0.10.0'} - /pretty-bytes/5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -18542,14 +18383,6 @@ packages: engines: {node: '>= 0.8'} dev: false - /randomatic/3.1.1: - resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} - engines: {node: '>= 0.10.0'} - dependencies: - is-number: 4.0.0 - kind-of: 6.0.3 - math-random: 1.0.4 - /randombytes/2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -19121,6 +18954,7 @@ packages: /regenerator-runtime/0.11.1: resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + dev: true /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} @@ -19131,12 +18965,6 @@ packages: '@babel/runtime': 7.16.3 dev: true - /regex-cache/0.4.4: - resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-equal-shallow: 0.1.3 - /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} @@ -21381,7 +21209,6 @@ packages: /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - dev: true /unpipe/1.0.0: resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} From e034271cc773e8c1e3555706dc46d6ece6fb0674 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Tue, 23 Nov 2021 08:01:50 -0600 Subject: [PATCH 10/76] Reverted changes to appui-react api --- common/api/appui-react.api.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/api/appui-react.api.md b/common/api/appui-react.api.md index 18f441154359..a7251c3dd8b6 100644 --- a/common/api/appui-react.api.md +++ b/common/api/appui-react.api.md @@ -979,13 +979,13 @@ export class CategoryVisibilityHandler implements IVisibilityHandler { static enableCategory(viewManager: ViewManager, imodel: IModelConnection, ids: string[], enabled: boolean, forAllViewports: boolean, enableAllSubCategories?: boolean): void; static enableSubCategory(viewManager: ViewManager, key: string, enabled: boolean, forAllViewports?: boolean): void; // (undocumented) - getCategoryVisibility(id: string): "visible" | "hidden"; + getCategoryVisibility(id: string): "hidden" | "visible"; // (undocumented) static getInstanceIdFromTreeNodeKey(nodeKey: NodeKey): string; // (undocumented) getParent(key: string): Category | undefined; // (undocumented) - getSubCategoryVisibility(id: string): "visible" | "hidden"; + getSubCategoryVisibility(id: string): "hidden" | "visible"; // (undocumented) getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus; // (undocumented) @@ -4578,7 +4578,7 @@ export enum SelectionScope { } // @public -export const SelectionScopeField: import("react-redux").ConnectedComponent & SelectionScopeFieldProps, "activeSelectionScope" | "availableSelectionScopes">>; +export const SelectionScopeField: import("react-redux").ConnectedComponent & SelectionScopeFieldProps, "availableSelectionScopes" | "activeSelectionScope">>; // @public @deprecated export class SeparatorBackstageItem extends React.PureComponent { @@ -7546,7 +7546,7 @@ export enum WidgetType { } // @public -export const withMessageCenterFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; +export const withMessageCenterFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; // @public export const withSafeArea:

(Component: React.JSXElementConstructor

& C) => { @@ -7604,7 +7604,7 @@ export const withSafeArea:

(Component: R }; // @public -export const withStatusFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; +export const withStatusFieldProps:

(Component: React.JSXElementConstructor

& C) => (props: JSX.LibraryManagedAttributes>) => JSX.Element; // @internal @deprecated export class Workflow extends ItemDefBase { From 3b6b2d6c977f9d74398ae8eda6aac3b191c3c3cf Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 3 Dec 2021 16:00:09 -0600 Subject: [PATCH 11/76] Removed some common types from extension access --- .../rush/browser-approved-packages.json | 1308 ++++------------- common/config/rush/pnpm-lock.yaml | 456 ++---- core/extension/common_types.d.ts | 35 - 3 files changed, 417 insertions(+), 1382 deletions(-) diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 630da91f94cc..45e44c5a8877 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -4,1795 +4,999 @@ "packages": [ { "name": "@axe-core/react", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@azure/storage-blob", - "allowedCategories": [ - "backend", - "internal" - ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/icons-generic", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/icons-generic-webfont", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/imodelhub-client", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@bentley/imodeljs-native", - "allowedCategories": [ - "backend", - "internal" - ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/itwin-client", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@bentley/react-scripts", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "@bentley/reality-data-client", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@bentley/telemetry-client", - "allowedCategories": [ - "backend", - "frontend" - ] + "allowedCategories": [ "backend", "frontend" ] }, { "name": "@bentley/units-schema", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "@itwin/appui-abstract", - "allowedCategories": [ - "common", - "edit", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "common", "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/appui-layout-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/appui-react", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "@itwin/backend-webpack-tools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/browser-authorization", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/build-tools", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/certa", - "allowedCategories": [ - "common", - "edit", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "edit", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/components-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/core-backend", - "allowedCategories": [ - "backend", - "common", - "edit", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-bentley", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-common", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-electron", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-extension", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-frontend", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-geometry", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-i18n", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-markup", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-mobile", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-orbitgt", - "allowedCategories": [ - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@itwin/core-quantity", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/core-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] + }, + { + "name": "@itwin/core-telemetry", + "allowedCategories": [ "backend", "frontend" ] }, { "name": "@itwin/core-transformer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-webpack-tools", - "allowedCategories": [ - "internal", - "tools" - ] + "allowedCategories": [ "internal", "tools" ] }, { "name": "@itwin/ecschema-locaters", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@itwin/ecschema-metadata", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/ecschema-rpcinterface-common", - "allowedCategories": [ - "backend", - "integration-testing" - ] + "allowedCategories": [ "backend", "integration-testing" ] }, { "name": "@itwin/editor-backend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/editor-common", - "allowedCategories": [ - "edit", - "internal" - ] + "allowedCategories": [ "edit", "internal" ] }, { "name": "@itwin/editor-frontend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] + }, + { + "name": "@itwin/electron-authorization", + "allowedCategories": [ "internal" ] }, { "name": "@itwin/eslint-plugin", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/express-server", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/frontend-devtools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/hypermodeling-frontend", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/imodel-components-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/itwinui-css", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/itwinui-react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/linear-referencing-common", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "@itwin/map-layers", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/oidc-signin-tool", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/perf-tools", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/presentation-backend", - "allowedCategories": [ - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-common", - "allowedCategories": [ - "backend", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-components", - "allowedCategories": [ - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "@itwin/presentation-frontend", - "allowedCategories": [ - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-testing", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/projects-client", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/reality-data-client", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/service-authorization", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/ui-items-providers-test", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/webgl-compatibility", - "allowedCategories": [ - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "common", "frontend", "internal" ] }, { "name": "@microsoft/api-extractor", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@openid/appauth", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "@reduxjs/toolkit", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "@svgdotjs/svg.js", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "@testing-library/react", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@testing-library/react-hooks", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@testing-library/user-event", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "@typescript-eslint/eslint-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/parser", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/typescript-estree", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "@ungap/url-search-params", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "@wojtekmaj/enzyme-adapter-react-17", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@xmldom/xmldom", - "allowedCategories": [ - "backend", - "common", - "tools" - ] + "allowedCategories": [ "backend", "common", "tools" ] }, { "name": "agentkeepalive", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "almost-equal", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "autoprefixer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "azurite", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "benchmark", - "allowedCategories": [ - "backend", - "common" - ] + "allowedCategories": [ "backend", "common" ] }, { "name": "body-parser", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "buffer", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "cache-require-paths", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "callable-instance2", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "case-sensitive-paths-webpack-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "chai", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-as-promised", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-jest-snapshot", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "chai-spies", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "chai-string", - "allowedCategories": [ - "frontend", - "tools" - ] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "chai-subset", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "chalk", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "child_process", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "chrome-launcher", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "classnames", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "commander", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "concurrently", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "copy-webpack-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "cpx", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "cpx2", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "cross-env", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "cross-spawn", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "debug", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "deep-assign", - "allowedCategories": [ - "common", - "integration-testing" - ] + "allowedCategories": [ "common", "integration-testing" ] }, { "name": "deep-equal", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "detect-port", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "dompurify", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "dotenv", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "dotenv-expand", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "electron", - "allowedCategories": [ - "backend", - "edit", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "edit", "internal", "tools" ] }, { "name": "enzyme", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "enzyme-to-json", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "esbuild", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "eslint", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "eslint-import-resolver-node", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-import-resolver-typescript", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-deprecation", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-import", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jam3", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsdoc", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsx-a11y", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-prefer-arrow", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react-hooks", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "eventemitter2", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "express", - "allowedCategories": [ - "backend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "internal", "tools" ] }, { "name": "express-ws", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "extension-prototype", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "faker", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "fast-deep-equal", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "fast-sort", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "file-loader", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "file-saver", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "findup", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "flatbuffers", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "form-data", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "fs-extra", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal", "tools" ] }, { "name": "fs-write-stream-atomic", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "fuse.js", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "glob", - "allowedCategories": [ - "backend", - "edit", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "edit", "frontend", "internal", "tools" ] }, { "name": "got", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "i18next", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-browser-languagedetector", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-http-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-xhr-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ignore-styles", - "allowedCategories": [ - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "immer", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "immutable", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "inspire-tree", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "internal-tools", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "istanbul-instrumenter-loader", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "js-base64", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal" ] }, { "name": "jsdom", - "allowedCategories": [ - "extensions", - "frontend" - ] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "jsdom-global", - "allowedCategories": [ - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "json-schema-faker", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "json5", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "jsonc-parser", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "jsonpath", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "linkify-it", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "lodash", - "allowedCategories": [ - "common", - "frontend", - "tools" - ] + "allowedCategories": [ "common", "frontend", "tools" ] }, { "name": "lolex", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "lorem-ipsum", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "make-dir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "memfs", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "micro-memoize", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "mkdirp", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "mocha", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "mocha-junit-reporter", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "multiparty", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "nock", - "allowedCategories": [ - "common", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "nodemon", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "npm-run-all", - "allowedCategories": [ - "backend", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "frontend", "integration-testing", "internal" ] }, { "name": "null-loader", - "allowedCategories": [ - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "nyc", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "object-hash", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "open", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "openid-client", - "allowedCategories": [ - "integration-testing" - ] + "allowedCategories": [ "integration-testing" ] }, { "name": "postcss-flexbugs-fixes", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "postcss-loader", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "proper-lockfile", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "puppeteer", - "allowedCategories": [ - "integration-testing", - "tools" - ] + "allowedCategories": [ "integration-testing", "tools" ] }, { "name": "qs", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "raf", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-autosuggest", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-beautiful-dnd", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-data-grid", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-html5-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-backend", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-utils", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-dom", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-dom-instance", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-highlight-words", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-redux", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-resize-detector", - "allowedCategories": [ - "extensions", - "internal" - ] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-select", - "allowedCategories": [ - "extensions", - "frontend", - "internal" - ] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-select-event", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-split-pane", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-table", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "react-test-renderer", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-virtualized", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "react-window", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "readline", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "recursive-readdir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "redux", - "allowedCategories": [ - "frontend", - "internal" - ] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "require-dir", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "resize-observer-polyfill", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "resolve", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "rimraf", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "rxjs", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "save", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "semver", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "shortid", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "sinon", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "sinon-chai", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "source-map-loader", - "allowedCategories": [ - "common", - "edit", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "edit", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "source-map-support", - "allowedCategories": [ - "backend", - "edit", - "frontend", - "tools" - ] + "allowedCategories": [ "backend", "edit", "frontend", "tools" ] }, { "name": "spdy", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "superagent", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "supertest", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "symlink-dir", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "tree-kill", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "ts-key-enum", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ts-node", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "typedoc", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-external-module-name", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-internal-external", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-merge-modules", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "typemoq", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "typescript", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "typescript-json-schema", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "url", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "username", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "uuid", - "allowedCategories": [ - "frontend", - "tools" - ] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "webpack", - "allowedCategories": [ - "common", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "webpack-cli", - "allowedCategories": [ - "integration-testing", - "internal" - ] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "webpack-core", - "allowedCategories": [ - "internal" - ] + "allowedCategories": [ "internal" ] }, { "name": "webpack-filter-warnings-plugin", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "webpack-sources", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "wms-capabilities", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "ws", - "allowedCategories": [ - "backend" - ] + "allowedCategories": [ "backend" ] }, { "name": "wtfnode", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "xml-js", - "allowedCategories": [ - "frontend" - ] + "allowedCategories": [ "frontend" ] }, { "name": "xmlhttprequest", - "allowedCategories": [ - "common", - "frontend" - ] + "allowedCategories": [ "common", "frontend" ] }, { "name": "xpath", - "allowedCategories": [ - "common" - ] + "allowedCategories": [ "common" ] }, { "name": "yargonaut", - "allowedCategories": [ - "tools" - ] + "allowedCategories": [ "tools" ] }, { "name": "yargs", - "allowedCategories": [ - "common", - "internal", - "tools" - ] + "allowedCategories": [ "common", "internal", "tools" ] } ] -} \ No newline at end of file +} diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 91b18b5352be..b9b469080c1b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -147,7 +147,7 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -182,7 +182,7 @@ importers: '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -204,53 +204,16 @@ importers: typescript: 4.4.4 webpack: 4.42.0 - ../../clients/telemetry: - specifiers: - '@bentley/itwin-client': workspace:* - '@itwin/build-tools': workspace:* - '@itwin/certa': workspace:* - '@itwin/core-bentley': workspace:* - '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': workspace:* - '@types/chai': ^4.1.4 - '@types/mocha': ^8.2.2 - '@types/node': 14.14.31 - chai: ^4.1.2 - eslint: ^7.11.0 - mocha: ^8.3.2 - rimraf: ^3.0.2 - source-map-loader: ^1.0.0 - typescript: ~4.4.0 - webpack: 4.42.0 - dependencies: - '@itwin/core-bentley': link:../../core/bentley - '@itwin/core-common': link:../../core/common - devDependencies: - '@bentley/itwin-client': link:../itwin - '@itwin/build-tools': link:../../tools/build - '@itwin/certa': link:../../tools/certa - '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/chai': 4.2.22 - '@types/mocha': 8.2.3 - '@types/node': 14.14.31 - chai: 4.3.4 - eslint: 7.32.0 - mocha: 8.4.0 - rimraf: 3.0.2 - source-map-loader: 1.1.3_webpack@4.42.0 - typescript: 4.4.4 - webpack: 4.42.0 - ../../core/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.0.18 + '@bentley/imodeljs-native': 3.0.21 '@bentley/itwin-client': workspace:* - '@bentley/telemetry-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-geometry': workspace:* + '@itwin/core-telemetry': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* '@types/chai': ^4.1.4 @@ -283,8 +246,8 @@ importers: ws: ^7.5.3 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.0.18 - '@bentley/telemetry-client': link:../../clients/telemetry + '@bentley/imodeljs-native': 3.0.21 + '@itwin/core-telemetry': link:../telemetry form-data: 2.5.1 fs-extra: 8.1.0 js-base64: 3.7.2 @@ -354,7 +317,6 @@ importers: ../../core/common: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-geometry': workspace:* @@ -380,7 +342,6 @@ importers: js-base64: 3.7.2 semver: 5.7.1 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/core-geometry': link:../geometry @@ -405,7 +366,6 @@ importers: '@itwin/core-common': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* - '@types/almost-equal': 1.1.0 '@types/benchmark': ^2.1.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -413,7 +373,6 @@ importers: '@types/node': 14.14.31 '@types/sinon': ^9.0.0 '@xmldom/xmldom': ^0.7.0 - almost-equal: ^1.1.0 benchmark: ^2.1.4 chai: ^4.1.2 chai-as-promised: ^7 @@ -424,8 +383,6 @@ importers: rimraf: ^3.0.2 sinon: ^9.0.2 typescript: ~4.4.0 - dependencies: - almost-equal: 1.1.0 devDependencies: '@bentley/units-schema': 1.0.7 '@itwin/build-tools': link:../../tools/build @@ -433,7 +390,6 @@ importers: '@itwin/core-common': link:../common '@itwin/ecschema-metadata': link:../ecschema-metadata '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/almost-equal': 1.1.0 '@types/benchmark': 2.1.1 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -520,7 +476,6 @@ importers: rimraf: ^3.0.2 sinon: ^9.0.2 typescript: ~4.4.0 - xmlhttprequest: ^1.8.0 dependencies: almost-equal: 1.1.0 devDependencies: @@ -546,7 +501,6 @@ importers: rimraf: 3.0.2 sinon: 9.2.4 typescript: 4.4.4 - xmlhttprequest: 1.8.0 ../../core/ecschema-rpc/common: specifiers: @@ -602,7 +556,6 @@ importers: ../../core/electron: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -623,7 +576,6 @@ importers: open: 7.4.2 username: 5.1.0 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-backend': link:../backend '@itwin/core-bentley': link:../bentley @@ -640,11 +592,13 @@ importers: ../../core/express-server: specifiers: '@itwin/build-tools': workspace:* + '@itwin/core-backend': workspace:* '@itwin/core-common': workspace:* '@itwin/eslint-plugin': workspace:* '@types/body-parser': ^1.17.0 '@types/chai': ^4.1.4 '@types/express': ^4.16.1 + '@types/express-ws': ^3.0.1 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 '@types/sinon': ^9.0.0 @@ -652,22 +606,25 @@ importers: chai: ^4.1.2 eslint: ^7.11.0 express: ^4.16.3 + express-ws: ^5.0.2 mocha: ^8.3.2 nyc: ^15.1.0 rimraf: ^3.0.2 sinon: ^9.0.2 - source-map-support: ^0.5.6 supertest: ^3.0.0 typescript: ~4.4.0 dependencies: express: 4.17.1 + express-ws: 5.0.2_express@4.17.1 devDependencies: '@itwin/build-tools': link:../../tools/build + '@itwin/core-backend': link:../backend '@itwin/core-common': link:../common '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/body-parser': 1.19.1 '@types/chai': 4.2.22 '@types/express': 4.17.13 + '@types/express-ws': 3.0.1 '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/sinon': 9.0.11 @@ -678,7 +635,6 @@ importers: nyc: 15.1.0 rimraf: 3.0.2 sinon: 9.2.4 - source-map-support: 0.5.20 supertest: 3.4.2 typescript: 4.4.4 @@ -718,7 +674,6 @@ importers: ../../core/frontend: specifiers: '@bentley/itwin-client': workspace:* - '@bentley/telemetry-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* @@ -728,6 +683,7 @@ importers: '@itwin/core-i18n': workspace:* '@itwin/core-orbitgt': workspace:* '@itwin/core-quantity': workspace:* + '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/webgl-compatibility': workspace:* '@types/chai': ^4.1.4 @@ -753,8 +709,8 @@ importers: wms-capabilities: 0.4.0 xml-js: ~1.6.11 dependencies: - '@bentley/telemetry-client': link:../../clients/telemetry '@itwin/core-i18n': link:../i18n + '@itwin/core-telemetry': link:../telemetry fuse.js: 3.6.1 semver: 5.7.1 wms-capabilities: 0.4.0 @@ -842,10 +798,10 @@ importers: semver: ^5.5.0 typescript: ~4.4.0 dependencies: + '@itwin/core-bentley': link:../bentley flatbuffers: 1.12.0 devDependencies: '@itwin/build-tools': link:../../tools/build - '@itwin/core-bentley': link:../bentley '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/chai': 4.2.22 '@types/flatbuffers': 1.10.0 @@ -883,8 +839,9 @@ importers: source-map-loader: ^1.0.0 typescript: ~4.4.0 webpack: 4.42.0 - devDependencies: + dependencies: '@itwin/appui-abstract': link:../../ui/appui-abstract + devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/core-bentley': link:../bentley @@ -1108,6 +1065,41 @@ importers: sinon: 9.2.4 typescript: 4.4.4 + ../../core/telemetry: + specifiers: + '@itwin/build-tools': workspace:* + '@itwin/certa': workspace:* + '@itwin/core-bentley': workspace:* + '@itwin/core-common': workspace:* + '@itwin/eslint-plugin': workspace:* + '@types/chai': ^4.1.4 + '@types/mocha': ^8.2.2 + '@types/node': 14.14.31 + chai: ^4.1.2 + eslint: ^7.11.0 + mocha: ^8.3.2 + rimraf: ^3.0.2 + source-map-loader: ^1.0.0 + typescript: ~4.4.0 + webpack: 4.42.0 + dependencies: + '@itwin/core-bentley': link:../bentley + '@itwin/core-common': link:../common + devDependencies: + '@itwin/build-tools': link:../../tools/build + '@itwin/certa': link:../../tools/certa + '@itwin/eslint-plugin': link:../../tools/eslint-plugin + '@types/chai': 4.2.22 + '@types/mocha': 8.2.3 + '@types/node': 14.14.31 + chai: 4.3.4 + eslint: 7.32.0 + mocha: 8.4.0 + rimraf: 3.0.2 + source-map-loader: 1.1.3_webpack@4.42.0 + typescript: 4.4.4 + webpack: 4.42.0 + ../../core/transformer: specifiers: '@bentley/itwin-client': workspace:* @@ -1180,10 +1172,11 @@ importers: source-map-loader: ^1.0.0 typescript: ~4.4.0 webpack: 4.42.0 + dependencies: + '@itwin/core-bentley': link:../bentley devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa - '@itwin/core-bentley': link:../bentley '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/chai': 4.2.22 '@types/mocha': 8.2.3 @@ -1349,21 +1342,8 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/editor-common': workspace:* '@itwin/eslint-plugin': workspace:* - '@types/chai': ^4.1.4 - '@types/chai-as-promised': ^7 - '@types/deep-assign': ^0.1.0 - '@types/mocha': ^8.2.2 - '@types/node': 14.14.31 - '@types/semver': ^5.5.0 - chai: ^4.1.2 - chai-as-promised: ^7 - electron: ^14.0.0 eslint: ^7.11.0 - mocha: ^8.3.2 rimraf: ^3.0.2 - sinon: ^9.0.2 - source-map-loader: ^1.0.0 - source-map-support: ^0.5.6 typescript: ~4.4.0 dependencies: '@itwin/editor-common': link:../common @@ -1374,21 +1354,8 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/chai': 4.2.22 - '@types/chai-as-promised': 7.1.4 - '@types/deep-assign': 0.1.1 - '@types/mocha': 8.2.3 - '@types/node': 14.14.31 - '@types/semver': 5.5.0 - chai: 4.3.4 - chai-as-promised: 7.1.1_chai@4.3.4 - electron: 14.2.1 eslint: 7.32.0 - mocha: 8.4.0 rimraf: 3.0.2 - sinon: 9.2.4 - source-map-loader: 1.1.3 - source-map-support: 0.5.20 typescript: 4.4.4 ../../editor/common: @@ -1434,18 +1401,9 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/editor-common': workspace:* '@itwin/eslint-plugin': workspace:* - '@types/chai': ^4.1.4 - '@types/mocha': ^8.2.2 - '@types/node': 14.14.31 - '@types/semver': ^5.5.0 - chai: ^4.1.2 cpx2: ^3.0.0 - electron: ^14.0.0 eslint: ^7.11.0 - glob: ^7.1.2 - mocha: ^8.3.2 rimraf: ^3.0.2 - source-map-loader: ^1.0.0 typescript: ~4.4.0 dependencies: '@itwin/appui-abstract': link:../../ui/appui-abstract @@ -1458,24 +1416,13 @@ importers: '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/chai': 4.2.22 - '@types/mocha': 8.2.3 - '@types/node': 14.14.31 - '@types/semver': 5.5.0 - chai: 4.3.4 cpx2: 3.0.2 - electron: 14.2.1 eslint: 7.32.0 - glob: 7.2.0 - mocha: 8.4.0 rimraf: 3.0.2 - source-map-loader: 1.1.3 typescript: 4.4.4 ../../example-code/app: specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1484,55 +1431,33 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 - '@itwin/projects-client': ^0.2.0 - '@types/body-parser': ^1.17.0 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@types/chai': ^4.1.4 - '@types/express': ^4.16.1 - '@types/fs-extra': ^4.0.7 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - body-parser: ^1.18.2 chai: ^4.1.2 cpx2: ^3.0.0 electron: ^14.0.0 eslint: ^7.11.0 - express: ^4.16.3 - fs-extra: ^8.1.0 - fuse.js: ^3.3.0 mocha: ^8.3.2 rimraf: ^3.0.2 - save: ^2.3.3 typescript: ~4.4.0 - webpack: 4.42.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-electron': link:../../core/electron '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - body-parser: 1.19.0 - chai: 4.3.4 electron: 14.2.1 - express: 4.17.1 - fs-extra: 8.1.0 - fuse.js: 3.6.1 - save: 2.4.0 - webpack: 4.42.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109_electron@14.2.1 - '@itwin/projects-client': 0.2.0 - '@types/body-parser': 1.19.1 + '@itwin/oidc-signin-tool': 3.0.0_electron@14.2.1 '@types/chai': 4.2.22 - '@types/express': 4.17.13 - '@types/fs-extra': 4.0.12 '@types/mocha': 8.2.3 '@types/node': 14.14.31 + chai: 4.3.4 cpx2: 3.0.2 eslint: 7.32.0 mocha: 8.4.0 @@ -1542,7 +1467,6 @@ importers: ../../example-code/snippets: specifiers: '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1551,62 +1475,43 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-transformer': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@itwin/service-authorization': ^0.3.0 - '@types/body-parser': ^1.17.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 - '@types/express': ^4.16.1 '@types/fs-extra': ^4.0.7 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - body-parser: ^1.18.2 chai: ^4.1.2 chai-as-promised: ^7 cpx2: ^3.0.0 - electron: ^14.0.0 eslint: ^7.11.0 - express: ^4.16.3 fs-extra: ^8.1.0 - fuse.js: ^3.3.0 - js-base64: ^3.6.1 mocha: ^8.3.2 rimraf: ^3.0.2 - save: ^2.3.3 typescript: ~4.4.0 - webpack: 4.42.0 dependencies: '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/core-transformer': link:../../core/transformer + '@itwin/projects-client': 0.2.0 '@itwin/service-authorization': 0.3.0 - body-parser: 1.19.0 - chai: 4.3.4 - electron: 14.2.1 - express: 4.17.1 fs-extra: 8.1.0 - fuse.js: 3.6.1 - js-base64: 3.7.2 - save: 2.4.0 - webpack: 4.42.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109_electron@14.2.1 - '@itwin/projects-client': 0.2.0 - '@types/body-parser': 1.19.1 + '@itwin/oidc-signin-tool': 3.0.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 - '@types/express': 4.17.13 '@types/fs-extra': 4.0.12 '@types/mocha': 8.2.3 '@types/node': 14.14.31 + chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 cpx2: 3.0.2 eslint: 7.32.0 @@ -1622,7 +1527,6 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@types/node': 14.14.31 cpx2: ^3.0.0 @@ -1635,7 +1539,6 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/core-quantity': link:../../core/quantity devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin @@ -1648,7 +1551,6 @@ importers: ../../extensions/map-layers: specifiers: '@bentley/itwin-client': workspace:* - '@bentley/react-scripts': 4.0.3 '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* '@itwin/appui-react': workspace:* @@ -1706,7 +1608,6 @@ importers: react-select: 3.2.0_react@17.0.2 devDependencies: '@bentley/itwin-client': link:../../clients/itwin - '@bentley/react-scripts': 4.0.3_react@17.0.2+typescript@4.4.4 '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react '@itwin/appui-react': link:../../ui/appui-react @@ -1793,7 +1694,7 @@ importers: specifiers: '@azure/storage-blob': ^12.7.0 '@bentley/imodelhub-client': workspace:* - '@bentley/imodeljs-native': 3.0.18 + '@bentley/imodeljs-native': 3.0.21 '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* @@ -1802,7 +1703,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/perf-tools': workspace:* '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 @@ -1827,14 +1728,14 @@ importers: dependencies: '@azure/storage-blob': 12.8.0 '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/imodeljs-native': 3.0.18 + '@bentley/imodeljs-native': 3.0.21 '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/perf-tools': link:../../tools/perf-tools '@itwin/projects-client': 0.2.0 azurite: 3.14.3 @@ -1877,10 +1778,11 @@ importers: '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/hypermodeling-frontend': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -1920,6 +1822,7 @@ importers: '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend + '@itwin/electron-authorization': 0.5.1 '@itwin/express-server': link:../../core/express-server '@itwin/hypermodeling-frontend': link:../../core/hypermodeling chai: 4.3.4 @@ -1930,7 +1833,7 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109_electron@14.2.1 + '@itwin/oidc-signin-tool': 3.0.0_electron@14.2.1 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -1969,7 +1872,7 @@ importers: '@itwin/ecschema-rpcinterface-common': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* '@itwin/projects-client': ^0.2.0 @@ -2007,7 +1910,7 @@ importers: '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata '@itwin/ecschema-rpcinterface-common': link:../../core/ecschema-rpc/common - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend chai: 4.3.4 @@ -2046,7 +1949,7 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/deep-assign': ^0.1.0 @@ -2080,7 +1983,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/deep-assign': 0.1.1 @@ -2110,7 +2013,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -2168,7 +2071,7 @@ importers: '@itwin/core-i18n': link:../../core/i18n '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -2259,7 +2162,6 @@ importers: '@itwin/core-frontend': link:../../core/frontend '@itwin/core-mobile': link:../../core/mobile '@itwin/express-server': link:../../core/express-server - chai: 4.3.4 electron: 14.2.1 express: 4.17.1 semver: 5.7.1 @@ -2274,6 +2176,7 @@ importers: '@types/node': 14.14.31 '@types/semver': 5.5.0 '@types/spdy': 3.4.5 + chai: 4.3.4 eslint: 7.32.0 glob: 7.2.0 null-loader: 0.1.1 @@ -2296,7 +2199,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.109 + '@itwin/oidc-signin-tool': ^3.0.0-dev.110 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* @@ -2334,7 +2237,7 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.109 + '@itwin/oidc-signin-tool': 3.0.0 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend '@itwin/service-authorization': 0.3.0 @@ -2807,6 +2710,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-mobile': workspace:* '@itwin/core-quantity': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/hypermodeling-frontend': workspace:* '@itwin/perf-tools': workspace:* @@ -2843,6 +2747,7 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-mobile': link:../../core/mobile '@itwin/core-quantity': link:../../core/quantity + '@itwin/electron-authorization': 0.5.1 '@itwin/hypermodeling-frontend': link:../../core/hypermodeling '@itwin/reality-data-client': 3.0.0-dev.80 body-parser: 1.19.0 @@ -2895,6 +2800,7 @@ importers: '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/frontend-devtools': workspace:* '@itwin/hypermodeling-frontend': workspace:* @@ -2940,6 +2846,7 @@ importers: '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend + '@itwin/electron-authorization': 0.5.1 '@itwin/frontend-devtools': link:../../core/frontend-devtools '@itwin/hypermodeling-frontend': link:../../core/hypermodeling '@itwin/webgl-compatibility': link:../../core/webgl-compatibility @@ -3161,6 +3068,7 @@ importers: '@itwin/core-electron': workspace:* '@itwin/core-geometry': workspace:* '@itwin/core-transformer': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 @@ -3169,8 +3077,10 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 '@types/yargs': ^12.0.5 + cross-env: ^5.1.4 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 + electron: ^14.0.0 eslint: ^7.11.0 fs-extra: ^8.1.0 internal-tools: workspace:* @@ -3187,6 +3097,7 @@ importers: '@itwin/core-electron': link:../../core/electron '@itwin/core-geometry': link:../../core/geometry '@itwin/core-transformer': link:../../core/transformer + '@itwin/electron-authorization': 0.5.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 fs-extra: 8.1.0 @@ -3201,6 +3112,8 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/yargs': 12.0.20 + cross-env: 5.2.1 + electron: 14.2.1 eslint: 7.32.0 internal-tools: link:../../tools/internal mocha: 8.4.0 @@ -3222,6 +3135,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/imodel-components-react': workspace:* @@ -3242,6 +3156,7 @@ importers: dotenv-expand: ^5.1.0 electron: ^14.0.0 eslint: ^7.11.0 + internal-tools: workspace:* npm-run-all: ^4.1.5 postcss-flexbugs-fixes: 4.1.0 postcss-loader: 3.0.0 @@ -3265,6 +3180,7 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react + '@itwin/electron-authorization': 0.5.1 '@itwin/express-server': link:../../core/express-server '@itwin/imodel-components-react': link:../../ui/imodel-components-react '@itwin/itwinui-css': 0.37.2 @@ -3293,6 +3209,7 @@ importers: dotenv-expand: 5.1.0 electron: 14.2.1 eslint: 7.32.0 + internal-tools: link:../../tools/internal npm-run-all: 4.1.5 postcss-flexbugs-fixes: 4.1.0 postcss-loader: 3.0.0 @@ -3391,6 +3308,7 @@ importers: '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* + '@itwin/electron-authorization': ^0.5.0 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/frontend-devtools': workspace:* @@ -3461,6 +3379,7 @@ importers: '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend + '@itwin/electron-authorization': 0.5.1 '@itwin/express-server': link:../../core/express-server '@itwin/frontend-devtools': link:../../core/frontend-devtools '@itwin/hypermodeling-frontend': link:../../core/hypermodeling @@ -3848,8 +3767,6 @@ importers: '@bentley/icons-generic-webfont': ^1.0.15 '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* - '@itwin/core-common': workspace:* - '@itwin/core-i18n': workspace:* '@itwin/eslint-plugin': workspace:* '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -3882,8 +3799,6 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../../core/bentley - '@itwin/core-common': link:../../core/common - '@itwin/core-i18n': link:../../core/i18n '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -4010,7 +3925,6 @@ importers: '@bentley/icons-generic': ^1.0.15 '@bentley/icons-generic-webfont': ^1.0.15 '@bentley/itwin-client': workspace:* - '@bentley/telemetry-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* '@itwin/browser-authorization': ^0.3.0 @@ -4020,10 +3934,10 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/core-i18n': workspace:* '@itwin/core-markup': workspace:* '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* + '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* '@itwin/itwinui-css': ^0.37.0 @@ -4088,8 +4002,8 @@ importers: dependencies: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 - '@bentley/telemetry-client': link:../../clients/telemetry '@itwin/browser-authorization': 0.3.0 + '@itwin/core-telemetry': link:../../core/telemetry '@itwin/itwinui-css': 0.37.2 '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-components': link:../../presentation/components @@ -4110,7 +4024,6 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/core-i18n': link:../../core/i18n '@itwin/core-markup': link:../../core/markup '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../core-react @@ -4462,7 +4375,6 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* - '@itwin/core-i18n': workspace:* '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* @@ -4535,7 +4447,6 @@ importers: '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry - '@itwin/core-i18n': link:../../core/i18n '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../core-react '@itwin/eslint-plugin': link:../../tools/eslint-plugin @@ -6307,11 +6218,27 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/3.0.18: - resolution: {integrity: sha512-h9i+hqqXJOiSKotEm7xqVYb8t+IxrjwtMt2ZMncIX8MzItLvQueJVMA1ooVYvpMM/s8wx0twcSx4S/4VwQzMRA==} + /@bentley/imodeljs-native/3.0.21: + resolution: {integrity: sha512-JXY4wtUTYilcWsGONLJaan4Qe+OapmEI5aeaHZ+/MEumMAOlE6KOoxnt7sJfQI9GgEK0ZJ0nU2bvREyzMlbTBg==} requiresBuild: true dev: false + /@bentley/itwin-client/3.0.0-dev.138_9bb7d345fd97463bf5dc30637eb5f5bd: + resolution: {integrity: sha512-8V7H6+Jq/Ew2pzAqEe+v939xXMKzmejHo8jCEmIW+SlC7F2DSV4ma92bd5OJAM27UfnInjCsxTcEETviYS3wsw==} + peerDependencies: + '@itwin/core-bentley': ^3.0.0-dev.138 + dependencies: + '@itwin/core-bentley': 3.0.0-dev.138 + deep-assign: 2.0.0 + js-base64: 3.7.2 + lodash: 4.17.21 + qs: 6.10.1 + superagent: 5.3.1 + xpath: 0.0.27 + transitivePeerDependencies: + - supports-color + dev: false + /@bentley/itwin-client/3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4: resolution: {integrity: sha512-TdC8vNcDN5Xy7x/TBFzh+/To6ibdcPK12hodO9fTvJpVEIAQGZEO1EDLE/jA1S4RqA3nWk2trU9bjqqmh1KgoQ==} peerDependencies: @@ -6758,8 +6685,8 @@ packages: oidc-client: 1.11.5 dev: false - /@itwin/certa/3.0.0-extension.1: - resolution: {integrity: sha512-XQuXqErpFLKtLfQL/LOjIrwNHpx+hq/YprOnXfZYJg6qqtFHKGj0CxOCfh4x4HY+OJ6G4hzC132Ddj/iu1OHrw==} + /@itwin/certa/3.0.0-dev.138: + resolution: {integrity: sha512-2dlC1ccdtH0t/4PzxnmOr6p8jcKdD9WpAgx0xLioyxdrkmfwj1da1l7q+UWVsu5c1m7DKRrMpjyrAyeAKMvVhw==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6781,8 +6708,8 @@ packages: - supports-color - utf-8-validate - /@itwin/certa/3.0.0-extension.1_electron@14.2.1: - resolution: {integrity: sha512-XQuXqErpFLKtLfQL/LOjIrwNHpx+hq/YprOnXfZYJg6qqtFHKGj0CxOCfh4x4HY+OJ6G4hzC132Ddj/iu1OHrw==} + /@itwin/certa/3.0.0-dev.138_electron@14.2.1: + resolution: {integrity: sha512-2dlC1ccdtH0t/4PzxnmOr6p8jcKdD9WpAgx0xLioyxdrkmfwj1da1l7q+UWVsu5c1m7DKRrMpjyrAyeAKMvVhw==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6806,6 +6733,9 @@ packages: - utf-8-validate dev: true + /@itwin/core-bentley/3.0.0-dev.138: + resolution: {integrity: sha512-OuRYpUh43A9V5cl8LMgCGl3Q35HFzsV0VK5Qz/OLF1V8ElOmQ/Gz4oV4+65R8SN6oIX+6t4qmUYCbo4ZdrDlxw==} + /@itwin/core-bentley/3.0.0-extension.1: resolution: {integrity: sha512-3r1aRoZp694aqP2E0M9dZiaPSAC0E/E2VTvvN9K73NnlTvO4jpaIdt520oHp7tkGYx24VS9Q8+ED1Z0CH9+RkA==} @@ -6823,6 +6753,20 @@ packages: semver: 5.7.1 dev: false + /@itwin/electron-authorization/0.5.1: + resolution: {integrity: sha512-S6BxwfX4/fxcrLglqN0exrTDV2w4l0r34SEJEqSN3DbHuoGhjRJISXZux0OXprMwWjuCy7hI09n/9EW733J2uA==} + dependencies: + '@bentley/itwin-client': 3.0.0-dev.138_9bb7d345fd97463bf5dc30637eb5f5bd + '@itwin/core-bentley': 3.0.0-dev.138 + '@openid/appauth': 1.3.1 + keytar: 7.7.0 + open: 8.4.0 + username: 5.1.0 + transitivePeerDependencies: + - debug + - supports-color + dev: false + /@itwin/itwinui-css/0.37.2: resolution: {integrity: sha512-QZTP/pHxnx/sFFpb4/DXSSBEEfcOFsG26bhe0ZzXn2IXZ3ZiJYJfhqHdmDStyb0c3S+drDDPdkaq1q/MS+G7+g==} @@ -6902,11 +6846,11 @@ packages: react-transition-group: 4.4.2_react@17.0.2 dev: true - /@itwin/oidc-signin-tool/3.0.0-dev.109: - resolution: {integrity: sha512-FSvKHYag335iizMsyIECkpGO4TwJ002RTZwnl+vI3RwW8JcZZTNedlfZrBuLOeU8RWzZtHp937QppwQr/wI4vw==} + /@itwin/oidc-signin-tool/3.0.0: + resolution: {integrity: sha512-zp6S6tQDyI0MSEoA7THlyXJlrtlqhk7X7BMpH8VMkvabEgJOY9AdLjoFbvJPZhcnhjq7CMdxXJWVC3D9QOaYgA==} dependencies: - '@itwin/certa': 3.0.0-extension.1 - '@itwin/core-bentley': 3.0.0-extension.1 + '@itwin/certa': 3.0.0-dev.138 + '@itwin/core-bentley': 3.0.0-dev.138 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6917,11 +6861,11 @@ packages: - supports-color - utf-8-validate - /@itwin/oidc-signin-tool/3.0.0-dev.109_electron@14.2.1: - resolution: {integrity: sha512-FSvKHYag335iizMsyIECkpGO4TwJ002RTZwnl+vI3RwW8JcZZTNedlfZrBuLOeU8RWzZtHp937QppwQr/wI4vw==} + /@itwin/oidc-signin-tool/3.0.0_electron@14.2.1: + resolution: {integrity: sha512-zp6S6tQDyI0MSEoA7THlyXJlrtlqhk7X7BMpH8VMkvabEgJOY9AdLjoFbvJPZhcnhjq7CMdxXJWVC3D9QOaYgA==} dependencies: - '@itwin/certa': 3.0.0-extension.1_electron@14.2.1 - '@itwin/core-bentley': 3.0.0-extension.1 + '@itwin/certa': 3.0.0-dev.138_electron@14.2.1 + '@itwin/core-bentley': 3.0.0-dev.138 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6957,6 +6901,8 @@ packages: '@itwin/core-bentley': 3.0.0-extension.1 '@itwin/core-common': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 openid-client: 4.9.1 + transitivePeerDependencies: + - '@bentley/itwin-client' dev: false /@jest/console/26.6.2: @@ -9074,7 +9020,6 @@ packages: delegates: 1.0.0 readable-stream: 2.3.7 dev: false - optional: true /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -9239,6 +9184,7 @@ packages: resolution: {integrity: sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==} dependencies: lodash: 4.17.21 + dev: true /async/3.2.2: resolution: {integrity: sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==} @@ -10464,7 +10410,6 @@ packages: resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=} engines: {node: '>=0.10.0'} dev: false - optional: true /collect-v8-coverage/1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} @@ -10662,7 +10607,6 @@ packages: /console-control-strings/1.1.0: resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=} dev: false - optional: true /constants-browserify/1.0.0: resolution: {integrity: sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=} @@ -11271,7 +11215,6 @@ packages: dependencies: mimic-response: 2.1.0 dev: false - optional: true /decompress-response/6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -11344,6 +11287,11 @@ packages: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: false + /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} engines: {node: '>= 0.4'} @@ -11389,7 +11337,6 @@ packages: /delegates/1.0.0: resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} dev: false - optional: true /denque/2.0.1: resolution: {integrity: sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==} @@ -11431,7 +11378,6 @@ packages: engines: {node: '>=0.10'} hasBin: true dev: false - optional: true /detect-newline/3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} @@ -12481,18 +12427,6 @@ packages: resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} engines: {node: '>= 0.6'} - /event-stream/4.0.1: - resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.0.7 - pause-stream: 0.0.11 - split: 1.0.1 - stream-combiner: 0.2.2 - through: 2.3.8 - dev: false - /eventemitter2/5.0.1: resolution: {integrity: sha1-YZegldX7a1folC9v1+qtY6CclFI=} dev: false @@ -12570,7 +12504,6 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} dev: false - optional: true /expand-tilde/2.0.2: resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=} @@ -12602,7 +12535,6 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: true /express/4.17.1: resolution: {integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==} @@ -13040,10 +12972,6 @@ packages: resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} engines: {node: '>= 0.6'} - /from/0.1.7: - resolution: {integrity: sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=} - dev: false - /from2/2.3.0: resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=} dependencies: @@ -13173,7 +13101,6 @@ packages: strip-ansi: 3.0.1 wide-align: 1.1.5 dev: false - optional: true /generate-function/2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} @@ -13233,7 +13160,6 @@ packages: /github-from-package/0.0.0: resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} dev: false - optional: true /glob-parent/3.1.0: resolution: {integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=} @@ -13498,7 +13424,6 @@ packages: /has-unicode/2.0.1: resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=} dev: false - optional: true /has-value/0.3.1: resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=} @@ -14233,7 +14158,6 @@ packages: dependencies: number-is-nan: 1.0.1 dev: false - optional: true /is-fullwidth-code-point/2.0.0: resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=} @@ -15429,7 +15353,6 @@ packages: node-addon-api: 3.2.1 prebuild-install: 6.1.4 dev: false - optional: true /keyv/3.1.0: resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} @@ -15628,10 +15551,6 @@ packages: resolution: {integrity: sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=} dev: true - /lodash.assign/4.2.0: - resolution: {integrity: sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=} - dev: false - /lodash.debounce/4.0.8: resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} @@ -15854,10 +15773,6 @@ packages: resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} engines: {node: '>=0.10.0'} - /map-stream/0.0.7: - resolution: {integrity: sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=} - dev: false - /map-visit/1.0.0: resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=} engines: {node: '>=0.10.0'} @@ -16063,16 +15978,11 @@ packages: resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} engines: {node: '>=8'} dev: false - optional: true /mimic-response/3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - /mingo/1.3.3: - resolution: {integrity: sha1-aSLE0Ufvx3GgFCWixMj3eER4xUY=} - dev: false - /mini-css-extract-plugin/0.11.3_webpack@4.44.2: resolution: {integrity: sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==} engines: {node: '>= 6.9.0'} @@ -16373,7 +16283,6 @@ packages: /napi-build-utils/1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: false - optional: true /native-duplexpair/1.0.0: resolution: {integrity: sha1-eJkHjmS/PIo9cyYBs9QP8F21j6A=} @@ -16450,7 +16359,6 @@ packages: dependencies: semver: 5.7.1 dev: false - optional: true /node-abort-controller/3.0.1: resolution: {integrity: sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==} @@ -16459,7 +16367,6 @@ packages: /node-addon-api/3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} dev: false - optional: true /node-fetch/2.6.1: resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} @@ -16655,7 +16562,6 @@ packages: gauge: 2.7.4 set-blocking: 2.0.0 dev: false - optional: true /nth-check/1.0.2: resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} @@ -16680,7 +16586,6 @@ packages: resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} engines: {node: '>=0.10.0'} dev: false - optional: true /nwsapi/2.2.0: resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} @@ -16884,6 +16789,15 @@ packages: is-docker: 2.2.1 is-wsl: 2.2.0 + /open/8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + /opener/1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -17217,12 +17131,6 @@ packages: /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - /pause-stream/0.0.11: - resolution: {integrity: sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=} - dependencies: - through: 2.3.8 - dev: false - /pbkdf2/3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -18093,7 +18001,6 @@ packages: tar-fs: 2.1.1 tunnel-agent: 0.6.0 dev: false - optional: true /prelude-ls/1.1.2: resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} @@ -19428,15 +19335,6 @@ packages: chokidar: 3.5.2 dev: true - /save/2.4.0: - resolution: {integrity: sha512-wd5L2uVnsKYkIUaK6i8Ie66IOHaI328gMF0MPuTJtYOjXgUolC33LSIk7Qr8WVA55QHaGwfiVS8a7EFIeGOR3w==} - dependencies: - async: 2.6.3 - event-stream: 4.0.1 - lodash.assign: 4.2.0 - mingo: 1.3.3 - dev: false - /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -19744,7 +19642,6 @@ packages: /simple-concat/1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} dev: false - optional: true /simple-get/3.1.0: resolution: {integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==} @@ -19753,7 +19650,6 @@ packages: once: 1.4.0 simple-concat: 1.0.1 dev: false - optional: true /simple-swizzle/0.2.2: resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=} @@ -19860,20 +19756,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map-loader/1.1.3: - resolution: {integrity: sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - abab: 2.0.5 - iconv-lite: 0.6.3 - loader-utils: 2.0.2 - schema-utils: 3.1.1 - source-map: 0.6.1 - whatwg-mimetype: 2.3.0 - dev: true - /source-map-loader/1.1.3_webpack@4.42.0: resolution: {integrity: sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==} engines: {node: '>= 10.13.0'} @@ -20046,12 +19928,6 @@ packages: dependencies: extend-shallow: 3.0.2 - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 - dev: false - /sprintf-js/1.0.3: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} @@ -20121,13 +19997,6 @@ packages: inherits: 2.0.4 readable-stream: 2.3.7 - /stream-combiner/0.2.2: - resolution: {integrity: sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=} - dependencies: - duplexer: 0.1.2 - through: 2.3.8 - dev: false - /stream-each/1.2.3: resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} dependencies: @@ -20171,7 +20040,6 @@ packages: is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 dev: false - optional: true /string-width/2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} @@ -20963,7 +20831,6 @@ packages: dependencies: safe-buffer: 5.2.1 dev: false - optional: true /tunnel/0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} @@ -21778,9 +21645,8 @@ packages: /wide-align/1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: - string-width: 1.0.2 + string-width: 4.2.3 dev: false - optional: true /widest-line/3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} diff --git a/core/extension/common_types.d.ts b/core/extension/common_types.d.ts index a1694d67b3be..9f191cba26fc 100644 --- a/core/extension/common_types.d.ts +++ b/core/extension/common_types.d.ts @@ -8,10 +8,8 @@ export { BackgroundMapType, BatchType, BisCodeSpec, - BriefcaseIdValue, ChangedValueState, ChangeOpCode, - ChangesetType, ColorByName, CommonLoggerCategory, ECSqlSystemProperty, @@ -39,17 +37,10 @@ export { QueryRowFormat, Rank, RenderMode, - RpcContentType, - RpcEndpoint, - RpcProtocolEvent, - RpcRequestEvent, - RpcRequestStatus, - RpcResponseCacheControl, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, - SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, @@ -75,8 +66,6 @@ export type { BackgroundMapProps, BaseReaderOptions, BRepPrimitive, - BriefcaseDownloader, - BriefcaseProps, CalloutProps, CameraProps, Carto2DDegreesProps, @@ -93,8 +82,6 @@ export type { CodeProps, ContextRealityModelProps, ContextRealityModelsContainer, - CreateIModelProps, - CreateSnapshotIModelProps, CutStyleProps, DefinitionElementProps, DeletedElementGeometryChange, @@ -165,18 +152,9 @@ export type { HemisphereLightsProps, HorizontalCRSExtentProps, HorizontalCRSProps, - HttpServerRequest, - HttpServerResponse, ImageGraphicProps, ImagePrimitive, - IModelEncryptionProps, - IModelProps, - IModelRpcOpenProps, - IModelRpcProps, InformationPartitionElementProps, - IpcSocket, - IpcSocketBackend, - IpcSocketFrontend, JsonGeometryStream, LightSettingsProps, LineStyleProps, @@ -195,10 +173,6 @@ export type { ModelSelectorProps, NavigationBindingValue, NavigationValue, - OpenAPIInfo, - OpenBriefcaseOptions, - OpenBriefcaseProps, - OpenDbKey, PartReference, PersistentGraphicsRequestProps, PhysicalElementProps, @@ -226,13 +200,11 @@ export type { SectionDrawingLocationProps, SectionDrawingProps, SectionDrawingViewProps, - SerializedRpcActivity, SessionProps, SheetProps, SkyBoxImageProps, SkyBoxProps, SkyCubeProps, - SnapshotOpenOptions, SolarLightProps, SolarShadowSettingsProps, SourceAndTarget, @@ -286,7 +258,6 @@ export { ChangesetIndexOrId, CodeScopeProps, ColorDefProps, - CreateEmptySnapshotIModelProps, DanishSystem34Region, EasingFunction, ElementAlignedBox2d, @@ -301,13 +272,8 @@ export { GridFileFormat, HemisphereEnum, ImageGraphicCornersProps, - IModelConnectionProps, - IModelVersionProps, InterpolationFunction, - IpcListener, LocalAlignedBox3d, - LocalDirName, - LocalFileName, PersistentBackgroundMapProps, Placement, PlacementProps, @@ -315,7 +281,6 @@ export { ProjectionMethod, RemoveFunction, RgbFactorProps, - StandaloneOpenOptions, TerrainProviderName, TweenCallback, UnitType, From e0301c4564241ca546996a6bab298d58c747076b Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 3 Dec 2021 16:13:22 -0600 Subject: [PATCH 12/76] Removed some frontend types from extensions --- core/extension/frontend_types.d.ts | 31 ------------------------------ 1 file changed, 31 deletions(-) diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts index 8e72a580a8cf..eb0c828ef6b3 100644 --- a/core/extension/frontend_types.d.ts +++ b/core/extension/frontend_types.d.ts @@ -9,7 +9,6 @@ export type { BeButtonEventProps, BeTouchEventProps, BeWheelEventProps, - BlankConnectionProps, CanvasDecoration, ChangeViewedModel2dOptions, ComputeChordToleranceArgs, @@ -21,7 +20,6 @@ export type { DepthRangeNpc, ExtentLimits, FeatureOverrideProvider, - FrontendHubAccess, FrontendSecurityOptions, FuzzySearchResult, GlobalAlignmentOptions, @@ -44,11 +42,8 @@ export type { GraphicShape2d, GraphicSolidPrimitive, HitListHolder, - IModelAppOptions, IModelIdArg, - IpcAppOptions, MarginOptions, - NativeAppOpts, OffScreenViewportOptions, OnViewExtentsError, OsmBuildingDisplayOptions, @@ -98,8 +93,6 @@ export type { // Types export type { CanvasDecorationList, - DownloadBriefcaseId, - DownloadBriefcaseOptions, FlashSettingsOptions, GpuMemoryLimit, GraphicList, @@ -133,7 +126,6 @@ export { DepthPointSource, EventHandled, FlashMode, - FrontendLoggerCategory, GraphicType, HitDetailType, HitGeomType, @@ -179,7 +171,6 @@ export { // Abstract Classes export type { AuxCoordSystemState, - BriefcaseNotificationHandler, DisplayStyleState, GeometricModelState, GraphicBuilder, @@ -194,7 +185,6 @@ export type { RenderGraphic, RenderGraphicOwner, RenderSystem, - SkyBox, Tile, TileTree, TileTreeReference, @@ -221,12 +211,8 @@ export type { BeWheelEvent, BingElevationProvider, BingLocationProvider, - BlankConnection, - BriefcaseConnection, - BriefcaseTxns, CategorySelectorState, ChangeFlags, - CheckpointConnection, Cluster, ContextRealityModelState, DecorateContext, @@ -242,18 +228,14 @@ export type { ElementState, // EmphasizeElements, @REAL EntityState, - Environment, EventController, // FitViewTool, @TOOL-IMPL FlashSettings, // FlyViewTool, @TOOL-IMPL FrustumAnimator, - FuzzySearch, - FuzzySearchResults, GeometricModel2dState, GeometricModel3dState, GlobeAnimator, - GraphicalEditingScope, // GraphicBranch, @REAL HiliteSet, HitDetail, @@ -261,7 +243,6 @@ export type { IconSprites, // IdleTool, @TOOL-IMPL // IModelApp, @BANNED - IModelRoutingContext, IntersectDetail, // IpcApp, @BANNED LocateOptions, @@ -278,8 +259,6 @@ export type { // MeasureVolumeTool, @TOOL-IMPL ModelSelectorState, ModelState, - NativeApp, - NativeAppAuthorization, NotificationManager, NotifyMessageDetails, OffScreenViewport, @@ -299,19 +278,13 @@ export type { // SetupWalkCameraTool, @TOOL-IMPL SheetModelState, SheetViewState, - SkyCube, - SkyGradient, - SkySphere, SnapDetail, - SnapshotConnection, SpatialLocationModelState, SpatialModelState, SpatialViewState, Sprite, SpriteLocation, - StandardView, // StandardViewTool, @TOOL-IMPL - Storage, TentativePoint, TileAdmin, TileDrawArgs, @@ -324,15 +297,12 @@ export type { // Tool, @REAL ToolAdmin, // ToolAssistance, @REAL - ToolRegistry, ToolSettings, - TwoWayViewportSync, // ViewClipByElementTool, @TOOL-IMPL // ViewClipByPlaneTool, @TOOL-IMPL // ViewClipByRangeTool, @TOOL-IMPL // ViewClipByShapeTool, @TOOL-IMPL // ViewClipClearTool, @TOOL-IMPL - ViewClipDecorationProvider, // ViewClipTool, @TOOL-IMPL ViewCreator2d, ViewCreator3d, @@ -355,7 +325,6 @@ export type { export type { // EditManipulator, @REAL // FeatureSymbology, @REAL - Frustum2d, PerModelCategoryVisibility, // Pixel @REAL } from "@itwin/core-frontend"; From 88cb29da13c5a34b1c67716b43d2eb15dd981392 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 8 Dec 2021 08:15:19 -0600 Subject: [PATCH 13/76] Added real frontend functions --- core/extension/frontend_types.d.ts | 4 +-- core/extension/index.d.ts | 15 ++++++++++ core/extension/index.js | 30 ++++++++++++++----- .../src/extension/ExtensionRuntime.ts | 23 ++++++++++---- 4 files changed, 57 insertions(+), 15 deletions(-) diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts index eb0c828ef6b3..23779ecdb080 100644 --- a/core/extension/frontend_types.d.ts +++ b/core/extension/frontend_types.d.ts @@ -209,8 +209,8 @@ export type { BeButtonState, BeTouchEvent, BeWheelEvent, - BingElevationProvider, - BingLocationProvider, + // BingElevationProvider, @REAL + // BingLocationProvider, @REAL CategorySelectorState, ChangeFlags, Cluster, diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index adc21ef7e7ed..b2a4ff76019f 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -21,6 +21,21 @@ export { GraphicBranch, NotifyMessageDetails, ExtensionHost, + BingElevationProvider, + BingLocationProvider, + getCompressedJpegFromCanvas, + getImageSourceFormatForMimeType, + getImageSourceMimeType, + imageBufferToBase64EncodedPng, + imageBufferToCanvas, + imageBufferToPngDataUrl, + imageElementFromImageSource, + imageElementFromUrl, + queryTerrainElevationOffset, + readElementGraphics, + canvasToImageBuffer, + canvasToResizedCanvasWithBars, + extractImageSourceDimensions, } from "@itwin/core-frontend"; export { ColorDef } from "@itwin/core-common"; diff --git a/core/extension/index.js b/core/extension/index.js index 6d4c939db9e4..3b3a6dcd328e 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -24,6 +24,29 @@ export const { ExtensionHost, } = ext.exports; +// re-export frontend items +export const { + BingElevationProvider, + BingLocationProvider +} = ext.exports; + +// re-export functions +export const { + getCompressedJpegFromCanvas, + getImageSourceFormatForMimeType, + getImageSourceMimeType, + imageBufferToBase64EncodedPng, + imageBufferToCanvas, + imageBufferToPngDataUrl, + imageElementFromImageSource, + imageElementFromUrl, + queryTerrainElevationOffset, + readElementGraphics, + canvasToImageBuffer, + canvasToResizedCanvasWithBars, + extractImageSourceDimensions +} = ext.exports; + // re-export enums export const { // core-frontend: @@ -117,14 +140,7 @@ export const { QueryRowFormat, Rank, RenderMode, - RpcContentType, - RpcEndpoint, - RpcProtocolEvent, - RpcRequestEvent, - RpcRequestStatus, - RpcResponseCacheControl, SectionType, - SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 736003e1573c..248577900edf 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -25,7 +25,7 @@ import { GraphicType } from "../render/GraphicBuilder"; import { Pixel } from "../render/Pixel"; import { TextureTransparency } from "../render/RenderTexture"; import { UniformType, VaryingType } from "../render/ScreenSpaceEffectBuilder"; -import { TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility } from "../tile/internal"; +import { BingElevationProvider, readElementGraphics, TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility } from "../tile/internal"; import { ClipEventType } from "../tools/ClipViewTool"; import { PrimitiveTool } from "../tools/PrimitiveTool"; import { SelectionMethod, SelectionMode, SelectionProcessing } from "../tools/SelectTool"; @@ -42,12 +42,15 @@ import { BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, - Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, RpcContentType, RpcEndpoint, RpcProtocolEvent, RpcRequestEvent, RpcRequestStatus, - RpcResponseCacheControl, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, - TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, + Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, + TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, } from "@itwin/core-common"; import { ExtensionImpl } from "./ExtensionImpl"; import { ExtensionHost } from "./ExtensionHost"; +import { canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, + imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, imageElementFromImageSource, imageElementFromUrl } from "../ImageUtil"; +import { queryTerrainElevationOffset } from "../ViewGlobalLocation"; +import { BingLocationProvider } from "../BingLocation"; const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) @@ -56,12 +59,20 @@ if ((globalThis as any)[globalSymbol]) const getExtensionApi = (id: string) => { return { exports: { + // Tools InteractiveTool, PrimitiveTool, ViewTool, Tool, ToolAssistance, BeButtonEvent, ViewRect, Pixel, LocateResponse, EditManipulator, AccuDrawHintBuilder, EmphasizeElements, FeatureSymbology, GraphicBranch, NotifyMessageDetails, ColorDef, + // Frontend functions + getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, + imageElementFromImageSource, imageElementFromUrl, queryTerrainElevationOffset, readElementGraphics, canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, + + // Frontend classes + BingElevationProvider, BingLocationProvider, + ExtensionHost, ACSDisplayOptions, ACSType, ActivityMessageEndReason, BeButton, BeModifierKeys, ClipEventType, ContextRotationId, CoordinateLockOverrides, @@ -76,8 +87,8 @@ const getExtensionApi = (id: string) => { CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, - RenderMode, RpcContentType, RpcEndpoint, RpcProtocolEvent, RpcRequestEvent, RpcRequestStatus, RpcResponseCacheControl, SectionType, - SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, + RenderMode, SectionType, + SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, }, api: new ExtensionImpl(id), From 494bf7922cd02b8beb1b814e1e43486df57164c7 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Wed, 8 Dec 2021 17:15:09 -0600 Subject: [PATCH 14/76] Added more frontend exports --- core/extension/frontend_types.d.ts | 51 +++---------------- core/extension/index.d.ts | 7 +++ core/extension/index.js | 9 +++- .../src/extension/ExtensionRuntime.ts | 30 ++++++----- 4 files changed, 41 insertions(+), 56 deletions(-) diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts index 23779ecdb080..546d66e3979c 100644 --- a/core/extension/frontend_types.d.ts +++ b/core/extension/frontend_types.d.ts @@ -175,10 +175,9 @@ export type { GeometricModelState, GraphicBuilder, IModelConnection, - InputCollector, + // InputCollector, @REAL // InteractiveTool, @REAL MarkerSet, - // MeasureElementTool, @TOOL-IMPL NotificationHandler, // PrimitiveTool, @REAL RenderClipVolume, @@ -213,7 +212,7 @@ export type { // BingLocationProvider, @REAL CategorySelectorState, ChangeFlags, - Cluster, + // Cluster, @REAL ContextRealityModelState, DecorateContext, Decorations, @@ -229,53 +228,36 @@ export type { // EmphasizeElements, @REAL EntityState, EventController, - // FitViewTool, @TOOL-IMPL FlashSettings, - // FlyViewTool, @TOOL-IMPL - FrustumAnimator, + // FrustumAnimator, @REAL GeometricModel2dState, GeometricModel3dState, - GlobeAnimator, + // GlobeAnimator, @REAL // GraphicBranch, @REAL HiliteSet, HitDetail, HitList, IconSprites, - // IdleTool, @TOOL-IMPL // IModelApp, @BANNED IntersectDetail, // IpcApp, @BANNED LocateOptions, // LocateResponse, @REAL - // LookAndMoveTool, @TOOL-IMPL - // LookViewTool, @TOOL-IMPL - MarginPercent, - Marker, - // MeasureAreaByPointsTool, @TOOL-IMPL - // MeasureAreaTool, @TOOL-IMPL - // MeasureDistanceTool, @TOOL-IMPL - // MeasureLengthTool, @TOOL-IMPL - // MeasureLocationTool, @TOOL-IMPL - // MeasureVolumeTool, @TOOL-IMPL + // MarginPercent, @REAL + // Marker, @REAL ModelSelectorState, ModelState, NotificationManager, - NotifyMessageDetails, + // NotifyMessageDetails, @REAL OffScreenViewport, OrthographicViewState, - // PanViewTool, @TOOL-IMPL PhysicalModelState, RenderContext, - // RotateViewTool, @TOOL-IMPL Scene, SceneContext, ScreenViewport, - // ScrollViewTool, @TOOL-IMPL SectionDrawingModelState, SelectionSet, - // SelectionTool, @TOOL-IMPL - // SetupCameraTool, @TOOL-IMPL - // SetupWalkCameraTool, @TOOL-IMPL SheetModelState, SheetViewState, SnapDetail, @@ -284,7 +266,6 @@ export type { SpatialViewState, Sprite, SpriteLocation, - // StandardViewTool, @TOOL-IMPL TentativePoint, TileAdmin, TileDrawArgs, @@ -297,28 +278,12 @@ export type { // Tool, @REAL ToolAdmin, // ToolAssistance, @REAL - ToolSettings, - // ViewClipByElementTool, @TOOL-IMPL - // ViewClipByPlaneTool, @TOOL-IMPL - // ViewClipByRangeTool, @TOOL-IMPL - // ViewClipByShapeTool, @TOOL-IMPL - // ViewClipClearTool, @TOOL-IMPL - // ViewClipTool, @TOOL-IMPL + // ToolSettings, @REAL ViewCreator2d, ViewCreator3d, - // ViewGlobeBirdTool, @TOOL-IMPL - // ViewGlobeIModelTool, @TOOL-IMPL - // ViewGlobeLocationTool, @TOOL-IMPL - // ViewGlobeSatelliteTool, @TOOL-IMPL ViewingSpace, ViewManager, // ViewRect, @REAL - // ViewRedoTool, @TOOL-IMPL - // ViewToggleCameraTool, @TOOL-IMPL - // ViewUndoTool, @TOOL-IMPL - // WalkViewTool, @TOOL-IMPL - // WindowAreaTool, @TOOL-IMPL - // ZoomViewTool @TOOL-IMPL } from "@itwin/core-frontend"; // namespaces (minus conflicts) diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index b2a4ff76019f..abe588966925 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -23,6 +23,13 @@ export { ExtensionHost, BingElevationProvider, BingLocationProvider, + InputCollector, + FrustumAnimator, + GlobeAnimator, + MarginPercent, + Marker, + Cluster, + ToolSettings, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, diff --git a/core/extension/index.js b/core/extension/index.js index 3b3a6dcd328e..ce76a07cb718 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -8,6 +8,7 @@ export const { ViewTool, Tool, + ToolSettings, ToolAssistance, BeButtonEvent, ViewRect, @@ -27,7 +28,13 @@ export const { // re-export frontend items export const { BingElevationProvider, - BingLocationProvider + BingLocationProvider, + InputCollector, + FrustumAnimator, + GlobeAnimator, + MarginPercent, + Marker, + Cluster } = ext.exports; // re-export functions diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 248577900edf..31df3f74c41b 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -8,6 +8,16 @@ /* eslint-disable @typescript-eslint/naming-convention */ +import { + BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, + ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, + GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, + Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, + TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, +} from "@itwin/core-common"; +import { ExtensionImpl } from "./ExtensionImpl"; +import { ExtensionHost } from "./ExtensionHost"; + import { AccuDrawHintBuilder, ContextRotationId } from "../AccuDraw"; import { ACSDisplayOptions, ACSType } from "../AuxCoordSys"; import { CoordSystem } from "../CoordSystem"; @@ -29,7 +39,7 @@ import { BingElevationProvider, readElementGraphics, TileBoundingBoxes, TileGrap import { ClipEventType } from "../tools/ClipViewTool"; import { PrimitiveTool } from "../tools/PrimitiveTool"; import { SelectionMethod, SelectionMode, SelectionProcessing } from "../tools/SelectTool"; -import { BeButton, BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, CoordSource, EventHandled, InputSource, InteractiveTool, KeyinParseError, ParseAndRunResult, Tool } from "../tools/Tool"; +import { BeButton, BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, CoordSource, EventHandled, InputCollector, InputSource, InteractiveTool, KeyinParseError, ParseAndRunResult, Tool } from "../tools/Tool"; import { ManipulatorToolEvent, StartOrResume } from "../tools/ToolAdmin"; import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod } from "../tools/ToolAssistance"; import { ViewTool } from "../tools/ViewTool"; @@ -37,20 +47,15 @@ import { EditManipulator } from "../tools/EditManipulator"; import { EmphasizeElements } from "../EmphasizeElements"; import { FeatureSymbology } from "../render/FeatureSymbology"; import { GraphicBranch } from "../render/GraphicBranch"; - -import { - BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, - ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, - GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, - Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, - TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, -} from "@itwin/core-common"; -import { ExtensionImpl } from "./ExtensionImpl"; -import { ExtensionHost } from "./ExtensionHost"; import { canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, imageElementFromImageSource, imageElementFromUrl } from "../ImageUtil"; import { queryTerrainElevationOffset } from "../ViewGlobalLocation"; import { BingLocationProvider } from "../BingLocation"; +import { FrustumAnimator } from "../FrustumAnimator"; +import { GlobeAnimator } from "../GlobeAnimator"; +import { MarginPercent } from "../MarginPercent"; +import { Cluster, Marker } from "../Marker"; +import { ToolSettings } from "../tools/ToolSettings"; const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) @@ -63,6 +68,7 @@ const getExtensionApi = (id: string) => { InteractiveTool, PrimitiveTool, ViewTool, Tool, ToolAssistance, BeButtonEvent, ViewRect, Pixel, LocateResponse, EditManipulator, AccuDrawHintBuilder, EmphasizeElements, FeatureSymbology, GraphicBranch, NotifyMessageDetails, + Readonly, ColorDef, @@ -71,7 +77,7 @@ const getExtensionApi = (id: string) => { imageElementFromImageSource, imageElementFromUrl, queryTerrainElevationOffset, readElementGraphics, canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, // Frontend classes - BingElevationProvider, BingLocationProvider, + BingElevationProvider, BingLocationProvider, InputCollector, FrustumAnimator, GlobeAnimator, MarginPercent, Marker, Cluster, ExtensionHost, From 0e2dc12c217938d33086a0a53c2a423054552a1c Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 9 Dec 2021 12:48:33 -0600 Subject: [PATCH 15/76] Removed real ToolSettings --- core/extension/frontend_types.d.ts | 2 +- core/extension/index.d.ts | 1 - core/extension/index.js | 1 - core/frontend/src/extension/ExtensionRuntime.ts | 2 -- 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts index 546d66e3979c..7c0f7323b185 100644 --- a/core/extension/frontend_types.d.ts +++ b/core/extension/frontend_types.d.ts @@ -278,7 +278,7 @@ export type { // Tool, @REAL ToolAdmin, // ToolAssistance, @REAL - // ToolSettings, @REAL + ToolSettings, ViewCreator2d, ViewCreator3d, ViewingSpace, diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index abe588966925..0584b567c1f5 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -29,7 +29,6 @@ export { MarginPercent, Marker, Cluster, - ToolSettings, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, diff --git a/core/extension/index.js b/core/extension/index.js index ce76a07cb718..5da0eef45022 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -8,7 +8,6 @@ export const { ViewTool, Tool, - ToolSettings, ToolAssistance, BeButtonEvent, ViewRect, diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 31df3f74c41b..62753ca5de25 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -55,7 +55,6 @@ import { FrustumAnimator } from "../FrustumAnimator"; import { GlobeAnimator } from "../GlobeAnimator"; import { MarginPercent } from "../MarginPercent"; import { Cluster, Marker } from "../Marker"; -import { ToolSettings } from "../tools/ToolSettings"; const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) @@ -68,7 +67,6 @@ const getExtensionApi = (id: string) => { InteractiveTool, PrimitiveTool, ViewTool, Tool, ToolAssistance, BeButtonEvent, ViewRect, Pixel, LocateResponse, EditManipulator, AccuDrawHintBuilder, EmphasizeElements, FeatureSymbology, GraphicBranch, NotifyMessageDetails, - Readonly, ColorDef, From b911de6741b3c93d5715152388e3022c3db9c5b5 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 9 Dec 2021 13:24:12 -0600 Subject: [PATCH 16/76] Updated extensions to beta --- common/api/core-frontend.api.md | 22 +-- common/api/summary/core-frontend.exports.csv | 20 +-- common/config/rush/pnpm-lock.yaml | 168 +++++++----------- core/frontend/src/extension/Extension.ts | 6 +- core/frontend/src/extension/ExtensionAdmin.ts | 2 +- core/frontend/src/extension/ExtensionHost.ts | 2 +- core/frontend/src/extension/ExtensionImpl.ts | 4 +- .../frontend/src/extension/ExtensionLoader.ts | 6 +- 8 files changed, 98 insertions(+), 132 deletions(-) diff --git a/common/api/core-frontend.api.md b/common/api/core-frontend.api.md index a66e8c0d1053..fb383f119c07 100644 --- a/common/api/core-frontend.api.md +++ b/common/api/core-frontend.api.md @@ -1746,12 +1746,12 @@ export class BriefcaseTxns extends BriefcaseNotificationHandler implements TxnNo reverseTxns(numOperations: number): Promise; } -// @alpha (undocumented) +// @beta (undocumented) export interface BuildExtensionManifest extends ExtensionManifest { readonly module?: string; } -// @alpha (undocumented) +// @beta (undocumented) export interface BuiltInExtensionLoaderProps { // (undocumented) loader: (() => Promise); @@ -3030,7 +3030,7 @@ export enum EventHandled { Yes = 1 } -// @alpha +// @beta export class ExtensionAdmin { constructor(); addBuildExtension(manifestPromise: Promise, mainFunc?: ResolveFunc_2): Promise; @@ -3039,7 +3039,7 @@ export class ExtensionAdmin { onStartup: () => Promise; } -// @alpha +// @beta export class ExtensionHost { protected constructor(); // (undocumented) @@ -3058,20 +3058,20 @@ export class ExtensionHost { static get viewManager(): ViewManager; } -// @alpha (undocumented) +// @beta (undocumented) export class ExtensionImpl { constructor(_id: string); // (undocumented) registerTool(tool: ToolType, onRegistered?: () => any): Promise; } -// @alpha +// @beta export interface ExtensionLoader { downloadExtension(arg: ExtensionLoaderProps): Promise; getManifest(arg: ExtensionLoaderProps): Promise; } -// @alpha +// @beta export interface ExtensionLoaderProps { // (undocumented) name: string; @@ -3079,7 +3079,7 @@ export interface ExtensionLoaderProps { version: string; } -// @alpha +// @beta export interface ExtensionManifest { readonly activationEvents?: string[]; // (undocumented) @@ -4541,6 +4541,8 @@ export class IModelApp { static readonly onBeforeShutdown: BeEvent<() => void>; // @internal static readonly onBeforeStartup: BeEvent<() => void>; + // @beta + static get publicPath(): string; // @alpha static get quantityFormatter(): QuantityFormatter; static queryRenderCompatibility(): WebGLRenderCompatibilityInfo; @@ -5127,7 +5129,7 @@ export class LengthDescription extends FormattedQuantityDescription { // @internal (undocumented) export function linePlaneIntersect(outP: Point3d, linePt: Point3d, lineNormal: Vector3d | undefined, planePt: Point3d, planeNormal: Vector3d, perpendicular: boolean): void; -// @alpha +// @beta export interface LocalExtensionProps { // (undocumented) readonly mainFunc?: ResolveFunc; @@ -11195,7 +11197,7 @@ export interface ToolAssistanceSection { // @public (undocumented) export type ToolList = ToolType[]; -// @alpha (undocumented) +// @beta (undocumented) export class ToolProvider implements UiItemsProvider { constructor(tool: ToolType); // (undocumented) diff --git a/common/api/summary/core-frontend.exports.csv b/common/api/summary/core-frontend.exports.csv index afba5bf99dae..f071f85485c8 100644 --- a/common/api/summary/core-frontend.exports.csv +++ b/common/api/summary/core-frontend.exports.csv @@ -73,8 +73,8 @@ public;BlankConnectionProps public;BriefcaseConnection public;class BriefcaseNotificationHandler public;BriefcaseTxns -alpha;BuildExtensionManifest -alpha;BuiltInExtensionLoaderProps +beta;BuildExtensionManifest +beta;BuiltInExtensionLoaderProps internal;CachedDecoration = internal;CachedIModelCoordinatesResponseProps public;calculateEcefToDbTransformAtLocation(originIn: Point3d, iModel: IModelConnection): Promise @@ -154,12 +154,12 @@ public;EntityState internal;EnvironmentDecorations public;EventController public;EventHandled -alpha;ExtensionAdmin -alpha;ExtensionHost -alpha;ExtensionImpl -alpha;ExtensionLoader -alpha;ExtensionLoaderProps -alpha;ExtensionManifest +beta;ExtensionAdmin +beta;ExtensionHost +beta;ExtensionImpl +beta;ExtensionLoader +beta;ExtensionLoaderProps +beta;ExtensionManifest public;ExtentLimits internal;ExternalTileStatistics public;extractImageSourceDimensions(source: ImageSource): Promise @@ -307,7 +307,7 @@ public;KeyinParseError internal;KeyinStatus beta;LengthDescription internal;linePlaneIntersect(outP: Point3d, linePt: Point3d, lineNormal: Vector3d | undefined, planePt: Point3d, planeNormal: Vector3d, perpendicular: boolean): void -alpha;LocalExtensionProps +beta;LocalExtensionProps internal;LocalhostIpcApp internal;LocalHostIpcAppOpts beta;LocalUnitFormatProvider @@ -602,7 +602,7 @@ public;ToolAssistanceInstructions public;ToolAssistanceKeyboardInfo public;ToolAssistanceSection public;ToolList = ToolType[] -alpha;ToolProvider +beta;ToolProvider public;ToolRegistry public;ToolSettings internal;ToolSettingsState diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b9b469080c1b..7e6e4b27ed97 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -147,7 +147,7 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -182,7 +182,7 @@ importers: '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -207,7 +207,7 @@ importers: ../../core/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.0.21 + '@bentley/imodeljs-native': 3.0.24 '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* @@ -246,7 +246,7 @@ importers: ws: ^7.5.3 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.0.21 + '@bentley/imodeljs-native': 3.0.24 '@itwin/core-telemetry': link:../telemetry form-data: 2.5.1 fs-extra: 8.1.0 @@ -1431,7 +1431,7 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@types/chai': ^4.1.4 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 @@ -1453,7 +1453,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0_electron@14.2.1 + '@itwin/oidc-signin-tool': 3.0.0-dev.110_electron@14.2.1 '@types/chai': 4.2.22 '@types/mocha': 8.2.3 '@types/node': 14.14.31 @@ -1475,7 +1475,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-transformer': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@itwin/service-authorization': ^0.3.0 '@types/chai': ^4.1.4 @@ -1505,7 +1505,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 '@types/fs-extra': 4.0.12 @@ -1694,7 +1694,7 @@ importers: specifiers: '@azure/storage-blob': ^12.7.0 '@bentley/imodelhub-client': workspace:* - '@bentley/imodeljs-native': 3.0.21 + '@bentley/imodeljs-native': 3.0.24 '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* @@ -1703,7 +1703,7 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/perf-tools': workspace:* '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 @@ -1728,14 +1728,14 @@ importers: dependencies: '@azure/storage-blob': 12.8.0 '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/imodeljs-native': 3.0.21 + '@bentley/imodeljs-native': 3.0.24 '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/perf-tools': link:../../tools/perf-tools '@itwin/projects-client': 0.2.0 azurite: 3.14.3 @@ -1765,7 +1765,7 @@ importers: specifiers: '@bentley/imodelhub-client': workspace:* '@bentley/itwin-client': workspace:* - '@itwin/browser-authorization': ^0.3.0 + '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-backend': workspace:* @@ -1782,7 +1782,7 @@ importers: '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/hypermodeling-frontend': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -1811,7 +1811,7 @@ importers: dependencies: '@bentley/imodelhub-client': link:../../clients/imodelhub '@bentley/itwin-client': link:../../clients/itwin - '@itwin/browser-authorization': 0.3.0 + '@itwin/browser-authorization': 0.3.2 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -1833,7 +1833,7 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0_electron@14.2.1 + '@itwin/oidc-signin-tool': 3.0.0-dev.110_electron@14.2.1 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -1872,7 +1872,7 @@ importers: '@itwin/ecschema-rpcinterface-common': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* '@itwin/projects-client': ^0.2.0 @@ -1910,7 +1910,7 @@ importers: '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata '@itwin/ecschema-rpcinterface-common': link:../../core/ecschema-rpc/common - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend chai: 4.3.4 @@ -1949,7 +1949,7 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': ^0.2.0 '@types/chai': ^4.1.4 '@types/deep-assign': ^0.1.0 @@ -1983,7 +1983,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/projects-client': 0.2.0 '@types/chai': 4.2.22 '@types/deep-assign': 0.1.1 @@ -2013,7 +2013,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -2071,7 +2071,7 @@ importers: '@itwin/core-i18n': link:../../core/i18n '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -2199,7 +2199,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': ^3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* @@ -2237,7 +2237,7 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0 + '@itwin/oidc-signin-tool': 3.0.0-dev.110 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend '@itwin/service-authorization': 0.3.0 @@ -2700,7 +2700,7 @@ importers: '@bentley/itwin-client': workspace:* '@bentley/react-scripts': 4.0.3 '@itwin/appui-abstract': workspace:* - '@itwin/browser-authorization': ^0.3.0 + '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2714,7 +2714,7 @@ importers: '@itwin/eslint-plugin': workspace:* '@itwin/hypermodeling-frontend': workspace:* '@itwin/perf-tools': workspace:* - '@itwin/reality-data-client': ^3.0.0-dev.80 + '@itwin/reality-data-client': ^0.2.4 '@types/body-parser': ^1.17.0 '@types/express': ^4.16.1 '@types/node': 14.14.31 @@ -2738,7 +2738,7 @@ importers: '@bentley/imodelhub-client': link:../../clients/imodelhub '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/browser-authorization': 0.3.0 + '@itwin/browser-authorization': 0.3.2 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2749,7 +2749,7 @@ importers: '@itwin/core-quantity': link:../../core/quantity '@itwin/electron-authorization': 0.5.1 '@itwin/hypermodeling-frontend': link:../../core/hypermodeling - '@itwin/reality-data-client': 3.0.0-dev.80 + '@itwin/reality-data-client': 0.2.4 body-parser: 1.19.0 devDependencies: '@bentley/react-scripts': 4.0.3_typescript@4.4.4 @@ -2785,7 +2785,7 @@ importers: '@bentley/reality-data-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/backend-webpack-tools': workspace:* - '@itwin/browser-authorization': ^0.3.0 + '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2833,7 +2833,7 @@ importers: '@bentley/itwin-client': link:../../clients/itwin '@bentley/reality-data-client': link:../../clients/reality-data '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/browser-authorization': 0.3.0 + '@itwin/browser-authorization': 0.3.2 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -3291,7 +3291,7 @@ importers: '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* '@itwin/appui-react': workspace:* - '@itwin/browser-authorization': ^0.3.0 + '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* '@itwin/core-backend': workspace:* @@ -3322,7 +3322,7 @@ importers: '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* '@itwin/projects-client': ^0.2.0 - '@itwin/reality-data-client': ^3.0.0-dev.80 + '@itwin/reality-data-client': ^0.2.4 '@itwin/ui-items-providers-test': workspace:* '@types/lorem-ipsum': ^1.0.2 '@types/node': 14.14.31 @@ -3364,7 +3364,7 @@ importers: '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react '@itwin/appui-react': link:../../ui/appui-react - '@itwin/browser-authorization': 0.3.0 + '@itwin/browser-authorization': 0.3.2 '@itwin/components-react': link:../../ui/components-react '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -3391,7 +3391,7 @@ importers: '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend - '@itwin/reality-data-client': 3.0.0-dev.80 + '@itwin/reality-data-client': 0.2.4 '@itwin/ui-items-providers-test': link:../ui-items-providers-test classnames: 2.3.1 lorem-ipsum: 2.0.4 @@ -3927,7 +3927,7 @@ importers: '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* - '@itwin/browser-authorization': ^0.3.0 + '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* '@itwin/core-bentley': workspace:* @@ -4002,7 +4002,7 @@ importers: dependencies: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/browser-authorization': 0.3.0 + '@itwin/browser-authorization': 0.3.2 '@itwin/core-telemetry': link:../../core/telemetry '@itwin/itwinui-css': 0.37.2 '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 @@ -4109,7 +4109,6 @@ importers: '@types/react-dom': ^17.0.0 '@types/react-highlight-words': ^0.16.1 '@types/react-select': 3.0.26 - '@types/react-virtualized': ^9.21.11 '@types/react-window': ^1.8.2 '@types/shortid': ~0.0.29 '@types/sinon': ^9.0.0 @@ -4148,7 +4147,6 @@ importers: react-highlight-words: ^0.17.0 react-select: 3.2.0 react-select-event: 5.0.0 - react-virtualized: ^9.21.11 react-window: ^1.8.2 rimraf: ^3.0.2 rxjs: ^6.6.2 @@ -4178,7 +4176,6 @@ importers: react-dnd-html5-backend: 11.1.3 react-highlight-words: 0.17.0_react@17.0.2 react-select: 3.2.0_react-dom@17.0.2+react@17.0.2 - react-virtualized: 9.22.3_react-dom@17.0.2+react@17.0.2 react-window: 1.8.6_react-dom@17.0.2+react@17.0.2 rxjs: 6.6.7 shortid: 2.2.16 @@ -4209,7 +4206,6 @@ importers: '@types/react-dom': 17.0.11 '@types/react-highlight-words': 0.16.3 '@types/react-select': 3.0.26 - '@types/react-virtualized': 9.21.15 '@types/react-window': 1.8.5 '@types/sinon': 9.0.11 '@types/sinon-chai': 3.2.5 @@ -6218,17 +6214,17 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/3.0.21: - resolution: {integrity: sha512-JXY4wtUTYilcWsGONLJaan4Qe+OapmEI5aeaHZ+/MEumMAOlE6KOoxnt7sJfQI9GgEK0ZJ0nU2bvREyzMlbTBg==} + /@bentley/imodeljs-native/3.0.24: + resolution: {integrity: sha512-WBvnFO3krBbsBU6XsMMnRJyFPMTcGlgHf/YTClX99AnKYxPmqlp8VAQ21lb4+aqgO/9WnZPhMNaXgIDi7noSfA==} requiresBuild: true dev: false - /@bentley/itwin-client/3.0.0-dev.138_9bb7d345fd97463bf5dc30637eb5f5bd: - resolution: {integrity: sha512-8V7H6+Jq/Ew2pzAqEe+v939xXMKzmejHo8jCEmIW+SlC7F2DSV4ma92bd5OJAM27UfnInjCsxTcEETviYS3wsw==} + /@bentley/itwin-client/3.0.0-dev.146_6182ec0e2efb6fdd4b48053c3f50e2c3: + resolution: {integrity: sha512-178Gi90kHCSSjCQePUoeSG6Wto6TlWVdVWvBHxd1hyPPhsfzJ2N4H94vcBA8tKex//ny4HE002G/4/Oxpd5jfA==} peerDependencies: - '@itwin/core-bentley': ^3.0.0-dev.138 + '@itwin/core-bentley': ^3.0.0-dev.146 dependencies: - '@itwin/core-bentley': 3.0.0-dev.138 + '@itwin/core-bentley': 3.0.0-dev.146 deep-assign: 2.0.0 js-base64: 3.7.2 lodash: 4.17.21 @@ -6677,16 +6673,15 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - /@itwin/browser-authorization/0.3.0: - resolution: {integrity: sha512-k18D56xeoR54zjSiOiBJZoQefcHAdCPff+2B3EF+qdfzFS+RJZfSDjxUwWZDu6DmJ+cIjXGDI2rQkpweEBwotQ==} + /@itwin/browser-authorization/0.3.2: + resolution: {integrity: sha512-TmdK+K2kaBqE4H4nyUZdhcuFoOnePddvSEs0OVMLqW6s/1DtrfIc1hLwnX4xvEct/BBUSMTyNCYUOsY+wQuXhQ==} dependencies: - '@itwin/core-bentley': 3.0.0-extension.1 - '@itwin/core-common': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 + '@itwin/core-bentley': 3.0.0-dev.146 oidc-client: 1.11.5 dev: false - /@itwin/certa/3.0.0-dev.138: - resolution: {integrity: sha512-2dlC1ccdtH0t/4PzxnmOr6p8jcKdD9WpAgx0xLioyxdrkmfwj1da1l7q+UWVsu5c1m7DKRrMpjyrAyeAKMvVhw==} + /@itwin/certa/3.0.0-dev.146: + resolution: {integrity: sha512-VqIISw261mTPE+Xrxcac2p1wH1r6IZ3odygaNxaicA2LdAbQX0/N+nGHnb/qIGzEIqN/8z/qS8nUji11l6vLgQ==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6708,8 +6703,8 @@ packages: - supports-color - utf-8-validate - /@itwin/certa/3.0.0-dev.138_electron@14.2.1: - resolution: {integrity: sha512-2dlC1ccdtH0t/4PzxnmOr6p8jcKdD9WpAgx0xLioyxdrkmfwj1da1l7q+UWVsu5c1m7DKRrMpjyrAyeAKMvVhw==} + /@itwin/certa/3.0.0-dev.146_electron@14.2.1: + resolution: {integrity: sha512-VqIISw261mTPE+Xrxcac2p1wH1r6IZ3odygaNxaicA2LdAbQX0/N+nGHnb/qIGzEIqN/8z/qS8nUji11l6vLgQ==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6733,8 +6728,8 @@ packages: - utf-8-validate dev: true - /@itwin/core-bentley/3.0.0-dev.138: - resolution: {integrity: sha512-OuRYpUh43A9V5cl8LMgCGl3Q35HFzsV0VK5Qz/OLF1V8ElOmQ/Gz4oV4+65R8SN6oIX+6t4qmUYCbo4ZdrDlxw==} + /@itwin/core-bentley/3.0.0-dev.146: + resolution: {integrity: sha512-Dd0/1VplaXBYUgptve/6n7GNL4aehN5GuWtU0txnn7G/LcP7YFGf34D0me1o4PEXR6OWvuJjF94K8CTV4XWu6w==} /@itwin/core-bentley/3.0.0-extension.1: resolution: {integrity: sha512-3r1aRoZp694aqP2E0M9dZiaPSAC0E/E2VTvvN9K73NnlTvO4jpaIdt520oHp7tkGYx24VS9Q8+ED1Z0CH9+RkA==} @@ -6756,8 +6751,8 @@ packages: /@itwin/electron-authorization/0.5.1: resolution: {integrity: sha512-S6BxwfX4/fxcrLglqN0exrTDV2w4l0r34SEJEqSN3DbHuoGhjRJISXZux0OXprMwWjuCy7hI09n/9EW733J2uA==} dependencies: - '@bentley/itwin-client': 3.0.0-dev.138_9bb7d345fd97463bf5dc30637eb5f5bd - '@itwin/core-bentley': 3.0.0-dev.138 + '@bentley/itwin-client': 3.0.0-dev.146_6182ec0e2efb6fdd4b48053c3f50e2c3 + '@itwin/core-bentley': 3.0.0-dev.146 '@openid/appauth': 1.3.1 keytar: 7.7.0 open: 8.4.0 @@ -6846,11 +6841,11 @@ packages: react-transition-group: 4.4.2_react@17.0.2 dev: true - /@itwin/oidc-signin-tool/3.0.0: - resolution: {integrity: sha512-zp6S6tQDyI0MSEoA7THlyXJlrtlqhk7X7BMpH8VMkvabEgJOY9AdLjoFbvJPZhcnhjq7CMdxXJWVC3D9QOaYgA==} + /@itwin/oidc-signin-tool/3.0.0-dev.110: + resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} dependencies: - '@itwin/certa': 3.0.0-dev.138 - '@itwin/core-bentley': 3.0.0-dev.138 + '@itwin/certa': 3.0.0-dev.146 + '@itwin/core-bentley': 3.0.0-dev.146 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6861,11 +6856,11 @@ packages: - supports-color - utf-8-validate - /@itwin/oidc-signin-tool/3.0.0_electron@14.2.1: - resolution: {integrity: sha512-zp6S6tQDyI0MSEoA7THlyXJlrtlqhk7X7BMpH8VMkvabEgJOY9AdLjoFbvJPZhcnhjq7CMdxXJWVC3D9QOaYgA==} + /@itwin/oidc-signin-tool/3.0.0-dev.110_electron@14.2.1: + resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} dependencies: - '@itwin/certa': 3.0.0-dev.138_electron@14.2.1 - '@itwin/core-bentley': 3.0.0-dev.138 + '@itwin/certa': 3.0.0-dev.146_electron@14.2.1 + '@itwin/core-bentley': 3.0.0-dev.146 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6885,14 +6880,11 @@ packages: transitivePeerDependencies: - supports-color - /@itwin/reality-data-client/3.0.0-dev.80: - resolution: {integrity: sha512-iN01TZjCSUYSU9bX9OirdZzqXzqjgB/9PNyGwXWgF8VImAGFZMZtgO26A7P+Kkl9LeqpWFotMoHC4DvVvpHunQ==} - dependencies: - '@bentley/itwin-client': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 - '@itwin/core-bentley': 3.0.0-extension.1 - '@itwin/projects-client': 0.2.0 - transitivePeerDependencies: - - supports-color + /@itwin/reality-data-client/0.2.4: + resolution: {integrity: sha512-O+GLL+FXqsAIv22YL8NDhak9hr1DiI9R4X87aQ67LFdnK6yB7oSUWYbMqr8P00wD0whlBSYbWu96q9nvGu4wLg==} + peerDependencies: + '@itwin/core-common': rc + axios: ^0.24.0 dev: false /@itwin/service-authorization/0.3.0: @@ -8060,13 +8052,6 @@ packages: '@types/react': 17.0.31 dev: true - /@types/react-virtualized/9.21.15: - resolution: {integrity: sha512-R4ntUW+Y/a7RgRpfeYz3iRe+kaDWtXieMeQum4AoYjjZsR/QhpKqFu4muSBhzA7OHJHd6qA0KkeTzxj5ah5tmQ==} - dependencies: - '@types/prop-types': 15.7.4 - '@types/react': 17.0.31 - dev: true - /@types/react-window/1.8.5: resolution: {integrity: sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==} dependencies: @@ -10388,11 +10373,6 @@ packages: engines: {node: '>=0.8'} dev: true - /clsx/1.1.1: - resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} - engines: {node: '>=6'} - dev: false - /co/4.6.0: resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -18716,22 +18696,6 @@ packages: prop-types: 15.7.2 react: 17.0.2 - /react-virtualized/9.22.3_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==} - peerDependencies: - react: ^15.3.0 || ^16.0.0-alpha - react-dom: ^15.3.0 || ^16.0.0-alpha - dependencies: - '@babel/runtime': 7.16.3 - clsx: 1.1.1 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.7.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-lifecycles-compat: 3.0.4 - dev: false - /react-window/1.8.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==} engines: {node: '>8.0.0'} diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts index a7ad97db2acd..2219a6d6acda 100644 --- a/core/frontend/src/extension/Extension.ts +++ b/core/frontend/src/extension/Extension.ts @@ -9,7 +9,7 @@ type ResolveFunc = (() => Promise); /** Defines the format of an Extension manifest - * @alpha + * @beta */ export interface ExtensionManifest { readonly name: string; @@ -27,7 +27,7 @@ export interface ExtensionManifest { readonly enableProposedApi?: boolean; } -/** @alpha */ +/** @beta */ export interface BuildExtensionManifest extends ExtensionManifest { /** Only valid when the Extension is loaded at build-time. * @@ -37,7 +37,7 @@ export interface BuildExtensionManifest extends ExtensionManifest { } /** Describes an Extension that has already been downloaded and has a location files can be easily executed. - * @alpha + * @beta */ export interface LocalExtensionProps { readonly manifest: ExtensionManifest; diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index ba566c939183..29e210bc3ac4 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -46,7 +46,7 @@ enum ActivationEvents { * * On application startup, an initial list of Extensions is gathered by searching in known locations for * - * @alpha + * @beta */ export class ExtensionAdmin { /** The list of places to download an Extension. */ diff --git a/core/frontend/src/extension/ExtensionHost.ts b/core/frontend/src/extension/ExtensionHost.ts index cb6a0a439cb8..8f574018877a 100644 --- a/core/frontend/src/extension/ExtensionHost.ts +++ b/core/frontend/src/extension/ExtensionHost.ts @@ -17,7 +17,7 @@ import type { RenderSystem } from "../render/RenderSystem"; /** * Subset of IModelApp exposed to Extensions - * @alpha + * @beta */ export class ExtensionHost { protected constructor() { } diff --git a/core/frontend/src/extension/ExtensionImpl.ts b/core/frontend/src/extension/ExtensionImpl.ts index a504131440da..96116093d3d4 100644 --- a/core/frontend/src/extension/ExtensionImpl.ts +++ b/core/frontend/src/extension/ExtensionImpl.ts @@ -10,7 +10,7 @@ import { ToolType } from "../tools/Tool"; import { IModelApp } from "../IModelApp"; import { CommonToolbarItem, StageUsage, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from "@itwin/appui-abstract"; -/** @alpha */ +/** @beta */ export class ToolProvider implements UiItemsProvider { public readonly id; private _toolId = ""; @@ -30,7 +30,7 @@ export class ToolProvider implements UiItemsProvider { } } -/** @alpha */ +/** @beta */ export class ExtensionImpl { constructor(private _id: string) { } diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts index 5a7c926745d5..b27466a04fbd 100644 --- a/core/frontend/src/extension/ExtensionLoader.ts +++ b/core/frontend/src/extension/ExtensionLoader.ts @@ -9,21 +9,21 @@ import { ExtensionManifest, LocalExtensionProps } from "./Extension"; /** The minimum information required to download an Extension - * @alpha + * @beta */ export interface ExtensionLoaderProps { name: string; version: string; } -/** @alpha */ +/** @beta */ export interface BuiltInExtensionLoaderProps { manifest: Promise; loader: (() => Promise); } /** Describes what is needed in order to write an Extension Loader. - * @alpha + * @beta */ export interface ExtensionLoader { /** Retrieves an Extension manifest for the provided Extension identifier */ From f4ae307b05fc67fe542b126e1a823a8ba6f5c75e Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 9 Dec 2021 14:05:42 -0600 Subject: [PATCH 17/76] Removed broken link to extension docs --- core/frontend/src/core-frontend.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index 2ee5beee91b2..021a9a1557fe 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -175,7 +175,7 @@ export * from "./RealityDataSource"; */ /** * @docs-group-description Extensions - * Classes for creating and managing runtime [Extensions]($docs/learning/frontend/Extensions.md) + * Classes for creating and managing runtime */ /** * @docs-group-description Properties From 5ed6bd90381346ad8f5ff20c6862120f75efd61c Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 10 Dec 2021 09:15:03 -0600 Subject: [PATCH 18/76] Removed commented-out code --- core/frontend/src/extension/Extension.ts | 44 ------------------- core/frontend/src/extension/ExtensionAdmin.ts | 2 - .../frontend/src/extension/ExtensionLoader.ts | 6 --- 3 files changed, 52 deletions(-) diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts index 2219a6d6acda..7b6337c97edd 100644 --- a/core/frontend/src/extension/Extension.ts +++ b/core/frontend/src/extension/Extension.ts @@ -42,48 +42,4 @@ export interface BuildExtensionManifest extends ExtensionManifest { export interface LocalExtensionProps { readonly manifest: ExtensionManifest; readonly mainFunc?: ResolveFunc; - /** Identifies a location of the Extension that it can be loaded. - * - * WIP: - * - Could be a URL to the location of the Extension - * - Could be a file path to an installed location locally. - */ - // readonly location: string; } - -/** Represents an Extension that we are attempting to load. - * @beta - */ -// export class PendingExtension { -// public resolve: ResolveFunc | undefined = undefined; -// public reject: RejectFunc | undefined = undefined; -// public promise: Promise; - -// public constructor(private _tarFileUrl: string, public loader: ExtensionLoader, public args?: string[]) { -// this.promise = new Promise(this.executor.bind(this)); -// } - -// public executor(resolve: ResolveFunc, reject: RejectFunc) { -// this.resolve = resolve; -// this.reject = reject; - -// const head = document.getElementsByTagName("head")[0]; -// if (!head) -// reject(new Error("no head element found")); - -// // create the script element. We handle onerror and resolve a ExtensionLoadResult failure in the onerror handler, -// // but we don't resolve success until the loaded extension calls "register" (see Extension.register) -// const scriptElement = document.createElement("script"); - -// scriptElement.onerror = this.cantLoad.bind(this); - -// scriptElement.async = true; -// scriptElement.src = this._tarFileUrl; -// head.insertBefore(scriptElement, head.lastChild); -// } - -// // called when we can't load the URL -// private cantLoad(_ev: string | Event) { -// this.resolve!(IModelApp.i18n.translate("iModelJs:ExtensionErrors.CantFind", { extensionUrl: this._tarFileUrl })); -// } -// } diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index 29e210bc3ac4..91475ff42fbc 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -35,7 +35,6 @@ import { ExtensionLoader } from "./ExtensionLoader"; */ type ResolveFunc = (() => Promise); -// type RejectFunc = ((arg: Error) => void); enum ActivationEvents { onStartupApp = "onStartupApp", @@ -58,7 +57,6 @@ export class ExtensionAdmin { /** * Fired when an Extension has been added or removed. */ - // public readonly onInstallExtension = new BeEvent<(added: readonly ExtensionProps[], removed: readonly ExtensionProps[]) => void>(); public onStartup = async () => { await this.activateExtensionEvents(ActivationEvents.onStartupApp); diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts index b27466a04fbd..933925e002f5 100644 --- a/core/frontend/src/extension/ExtensionLoader.ts +++ b/core/frontend/src/extension/ExtensionLoader.ts @@ -31,9 +31,3 @@ export interface ExtensionLoader { /** Downloads an Extension provided the name of the Extension */ downloadExtension(arg: ExtensionLoaderProps): Promise; } - -// export class BuiltInExtensionLoader { -// public async getManifest(name: string): Promise { - -// } -// } From f18856dbb19ee1656b9adb67c56df04080153eef Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 10 Dec 2021 13:28:01 -0600 Subject: [PATCH 19/76] Simplified extension test tool --- common/config/rush/pnpm-lock.yaml | 46 +- extensions/test-extension/package.json | 6 - extensions/test-extension/src/CoreTools.ts | 13 - extensions/test-extension/src/SelectTool.ts | 682 +------------------- extensions/test-extension/src/index.ts | 4 +- 5 files changed, 41 insertions(+), 710 deletions(-) delete mode 100644 extensions/test-extension/src/CoreTools.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 7e6e4b27ed97..925b426d1bdd 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1657,14 +1657,8 @@ importers: ../../extensions/test-extension: specifiers: - '@bentley/itwin-client': workspace:* - '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* - '@itwin/core-bentley': workspace:* - '@itwin/core-common': workspace:* '@itwin/core-extension': workspace:* - '@itwin/core-geometry': workspace:* - '@itwin/core-i18n': workspace:* '@itwin/eslint-plugin': workspace:* buffer: ^6.0.3 esbuild: ^0.13.8 @@ -1673,13 +1667,7 @@ importers: typescript: ~4.4.0 url: ^0.11.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin - '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/core-bentley': link:../../core/bentley - '@itwin/core-common': link:../../core/common '@itwin/core-extension': link:../../core/extension - '@itwin/core-geometry': link:../../core/geometry - '@itwin/core-i18n': link:../../core/i18n buffer: 6.0.3 url: 0.11.0 devDependencies: @@ -6219,12 +6207,12 @@ packages: requiresBuild: true dev: false - /@bentley/itwin-client/3.0.0-dev.146_6182ec0e2efb6fdd4b48053c3f50e2c3: - resolution: {integrity: sha512-178Gi90kHCSSjCQePUoeSG6Wto6TlWVdVWvBHxd1hyPPhsfzJ2N4H94vcBA8tKex//ny4HE002G/4/Oxpd5jfA==} + /@bentley/itwin-client/3.0.0-dev.148_1f1133e0683841193b047e5518caa238: + resolution: {integrity: sha512-Y8eF6h88rZHB0uTaWeAqMvSGY/4mH/32xB71H4JILtm3aBCjwaJVQ+1NRCR3RZgCr2yoaZz27kqJKnqwZlbeaw==} peerDependencies: - '@itwin/core-bentley': ^3.0.0-dev.146 + '@itwin/core-bentley': ^3.0.0-dev.148 dependencies: - '@itwin/core-bentley': 3.0.0-dev.146 + '@itwin/core-bentley': 3.0.0-dev.148 deep-assign: 2.0.0 js-base64: 3.7.2 lodash: 4.17.21 @@ -6676,12 +6664,12 @@ packages: /@itwin/browser-authorization/0.3.2: resolution: {integrity: sha512-TmdK+K2kaBqE4H4nyUZdhcuFoOnePddvSEs0OVMLqW6s/1DtrfIc1hLwnX4xvEct/BBUSMTyNCYUOsY+wQuXhQ==} dependencies: - '@itwin/core-bentley': 3.0.0-dev.146 + '@itwin/core-bentley': 3.0.0-dev.148 oidc-client: 1.11.5 dev: false - /@itwin/certa/3.0.0-dev.146: - resolution: {integrity: sha512-VqIISw261mTPE+Xrxcac2p1wH1r6IZ3odygaNxaicA2LdAbQX0/N+nGHnb/qIGzEIqN/8z/qS8nUji11l6vLgQ==} + /@itwin/certa/3.0.0-dev.148: + resolution: {integrity: sha512-iXuLWnDlgEmqYJ7HTBqlmNMqZt3dOdvGG4FInxfQd5/cJ46fW3+1b8cGt+i5urgHG+kFKhG4oBZhJ5/DlAcR9A==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6703,8 +6691,8 @@ packages: - supports-color - utf-8-validate - /@itwin/certa/3.0.0-dev.146_electron@14.2.1: - resolution: {integrity: sha512-VqIISw261mTPE+Xrxcac2p1wH1r6IZ3odygaNxaicA2LdAbQX0/N+nGHnb/qIGzEIqN/8z/qS8nUji11l6vLgQ==} + /@itwin/certa/3.0.0-dev.148_electron@14.2.1: + resolution: {integrity: sha512-iXuLWnDlgEmqYJ7HTBqlmNMqZt3dOdvGG4FInxfQd5/cJ46fW3+1b8cGt+i5urgHG+kFKhG4oBZhJ5/DlAcR9A==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6728,8 +6716,8 @@ packages: - utf-8-validate dev: true - /@itwin/core-bentley/3.0.0-dev.146: - resolution: {integrity: sha512-Dd0/1VplaXBYUgptve/6n7GNL4aehN5GuWtU0txnn7G/LcP7YFGf34D0me1o4PEXR6OWvuJjF94K8CTV4XWu6w==} + /@itwin/core-bentley/3.0.0-dev.148: + resolution: {integrity: sha512-OVNmxpb7/AAd4pm/cBdE1I+p1lBoiXI3EBaRN1hAPZzqLDk7AbWgTegfQBPXAnyP5FxX9MyeU+lplvsl2aWjXg==} /@itwin/core-bentley/3.0.0-extension.1: resolution: {integrity: sha512-3r1aRoZp694aqP2E0M9dZiaPSAC0E/E2VTvvN9K73NnlTvO4jpaIdt520oHp7tkGYx24VS9Q8+ED1Z0CH9+RkA==} @@ -6751,8 +6739,8 @@ packages: /@itwin/electron-authorization/0.5.1: resolution: {integrity: sha512-S6BxwfX4/fxcrLglqN0exrTDV2w4l0r34SEJEqSN3DbHuoGhjRJISXZux0OXprMwWjuCy7hI09n/9EW733J2uA==} dependencies: - '@bentley/itwin-client': 3.0.0-dev.146_6182ec0e2efb6fdd4b48053c3f50e2c3 - '@itwin/core-bentley': 3.0.0-dev.146 + '@bentley/itwin-client': 3.0.0-dev.148_1f1133e0683841193b047e5518caa238 + '@itwin/core-bentley': 3.0.0-dev.148 '@openid/appauth': 1.3.1 keytar: 7.7.0 open: 8.4.0 @@ -6844,8 +6832,8 @@ packages: /@itwin/oidc-signin-tool/3.0.0-dev.110: resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} dependencies: - '@itwin/certa': 3.0.0-dev.146 - '@itwin/core-bentley': 3.0.0-dev.146 + '@itwin/certa': 3.0.0-dev.148 + '@itwin/core-bentley': 3.0.0-dev.148 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6859,8 +6847,8 @@ packages: /@itwin/oidc-signin-tool/3.0.0-dev.110_electron@14.2.1: resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} dependencies: - '@itwin/certa': 3.0.0-dev.146_electron@14.2.1 - '@itwin/core-bentley': 3.0.0-dev.146 + '@itwin/certa': 3.0.0-dev.148_electron@14.2.1 + '@itwin/core-bentley': 3.0.0-dev.148 dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 diff --git a/extensions/test-extension/package.json b/extensions/test-extension/package.json index 30da825b89cd..d5e3ab33e77f 100644 --- a/extensions/test-extension/package.json +++ b/extensions/test-extension/package.json @@ -38,13 +38,7 @@ "typescript": "~4.4.0" }, "dependencies": { - "@bentley/itwin-client": "workspace:*", - "@itwin/appui-abstract": "workspace:*", - "@itwin/core-bentley": "workspace:*", - "@itwin/core-common": "workspace:*", "@itwin/core-extension": "workspace:*", - "@itwin/core-geometry": "workspace:*", - "@itwin/core-i18n": "workspace:*", "buffer": "^6.0.3", "url": "^0.11.0" }, diff --git a/extensions/test-extension/src/CoreTools.ts b/extensions/test-extension/src/CoreTools.ts deleted file mode 100644 index 0473d03a6770..000000000000 --- a/extensions/test-extension/src/CoreTools.ts +++ /dev/null @@ -1,13 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -import { ExtensionHost } from "@itwin/core-extension"; - -/** @internal */ -export class CoreTools { - public static namespace = "CoreTools"; - public static tools = "CoreTools:tools."; - public static translate(prompt: string) { return ExtensionHost.localization.getLocalizedString(this.tools + prompt); } - public static outputPromptByKey(key: string) { return ExtensionHost.notifications.outputPromptByKey(this.tools + key); } -} diff --git a/extensions/test-extension/src/SelectTool.ts b/extensions/test-extension/src/SelectTool.ts index 4c6e6ef42a25..28673c9378e5 100644 --- a/extensions/test-extension/src/SelectTool.ts +++ b/extensions/test-extension/src/SelectTool.ts @@ -5,689 +5,51 @@ /** @packageDocumentation * @module SelectionSet */ - -import { - ButtonGroupEditorParams, DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription, PropertyEditorParamTypes, - SuppressLabelEditorParams -} from "@itwin/appui-abstract"; -import { Id64, Id64Arg } from "@itwin/core-bentley"; -import { Point2d, Point3d, Range2d } from "@itwin/core-geometry"; import { - ColorDef, BeButton, BeButtonEvent, BeModifierKeys, BeTouchEvent, CoordinateLockOverrides, DecorateContext, EventHandled, HitDetail, - InputSource, LocateFilterStatus, LocateResponse, ManipulatorToolEvent, Pixel, PrimitiveTool, ToolAssistance, ToolAssistanceImage, - ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection, ViewRect, ExtensionHost + BeButtonEvent, CoordinateLockOverrides, EventHandled, LocateResponse, PrimitiveTool, ExtensionHost } from "@itwin/core-extension"; -import { CoreTools } from "./CoreTools"; - -// cSpell:ignore buttongroup - -/** The method for choosing elements with the [[SelectionTool]] - * @public - */ -export enum SelectionMethod { - /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */ - Pick, - /** Identify elements by overlap with crossing line */ - Line, - /** Identify elements by box selection (inside/overlap for box selection determined by point direction and shift key) */ - Box, -} -/** The mode for choosing elements with the [[SelectionTool]] +/** Minimalistic extension tool for a user to pick a set of elements of interest * @public */ -export enum SelectionMode { - /** Identified elements replace the current selection set (use control key to add or remove) */ - Replace, - /** Identified elements are added to the current selection set */ - Add, - /** Identified elements are removed from the current selection set */ - Remove, -} +export class ExtensionSelectTool extends PrimitiveTool { -/** The processing method to use to update the current selection. - * @public - */ -export enum SelectionProcessing { - /** Add element to selection. */ - AddElementToSelection, - /** Remove element from selection. */ - RemoveElementFromSelection, - /** If element is in selection remove it, else add it. */ - InvertElementInSelection, - /** Replace current selection with element. */ - ReplaceSelectionWithElement, -} - -/** Tool for picking a set of elements of interest, selected by the user. - * @public - */ -export class SelectionTool extends PrimitiveTool { - public static override hidden = false; - public static override toolId = "ExtSelect"; - public static override namespace = CoreTools.namespace; + public static override toolId = "TestExtension.Select"; public static override iconSpec = "icon-cursor"; - protected _isSelectByPoints = false; - protected _isSuspended = false; - protected readonly _points: Point3d[] = []; - private _selectionMethodValue: DialogItemValue = { value: SelectionMethod.Pick }; - private _selectionModeValue: DialogItemValue = { value: SelectionMode.Replace }; + public static override hidden = false; + public static override namespace = "ExampleTools"; public override requireWriteableTarget(): boolean { return false; } - public override autoLockTarget(): void { } // NOTE: For selecting elements we only care about iModel, so don't lock target model automatically. - - protected wantSelectionClearOnMiss(_ev: BeButtonEvent): boolean { return SelectionMode.Replace === this.selectionMode; } - protected wantEditManipulators(): boolean { return SelectionMethod.Pick === this.selectionMethod; } - protected wantPickableDecorations(): boolean { return this.wantEditManipulators(); } // Allow pickable decorations selection to be independent of manipulators... - protected wantToolSettings(): boolean { return true; } - - public get selectionMethod(): SelectionMethod { return this._selectionMethodValue.value as SelectionMethod; } - public set selectionMethod(method: SelectionMethod) { this._selectionMethodValue.value = method; } - public get selectionMode(): SelectionMode { return this._selectionModeValue.value as SelectionMode; } - public set selectionMode(mode: SelectionMode) { this._selectionModeValue.value = mode; } - - private static methodsMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionMethods.${str}`); } - private static _methodsName = "selectionMethods"; - /* The property descriptions used to generate ToolSettings UI. */ - private static _getMethodsDescription(): PropertyDescription { - return { - name: SelectionTool._methodsName, - displayLabel: "", - typename: "enum", - editor: { - name: "enum-buttongroup", - params: [{ - type: PropertyEditorParamTypes.ButtonGroupData, - buttons: [ - { iconSpec: "icon-select-single" }, - { iconSpec: "icon-select-line" }, - { iconSpec: "icon-select-box" }, - ], - } as ButtonGroupEditorParams, { - type: PropertyEditorParamTypes.SuppressEditorLabel, - suppressLabelPlaceholder: true, - } as SuppressLabelEditorParams, - ], - }, - enum: { - choices: [ - { label: SelectionTool.methodsMessage("Pick"), value: SelectionMethod.Pick }, - { label: SelectionTool.methodsMessage("Line"), value: SelectionMethod.Line }, - { label: SelectionTool.methodsMessage("Box"), value: SelectionMethod.Box }, - ], - }, - }; - } - - private static modesMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionModes.${str}`); } - private static _modesName = "selectionModes"; - /* The property descriptions used to generate ToolSettings UI. */ - private static _getModesDescription(): PropertyDescription { - return { - name: SelectionTool._modesName, - displayLabel: "", - typename: "enum", - editor: { - name: "enum-buttongroup", - params: [{ - type: PropertyEditorParamTypes.ButtonGroupData, - buttons: [ - { iconSpec: "icon-replace" }, - { iconSpec: "icon-select-plus" }, - { - iconSpec: "icon-select-minus", - isEnabledFunction: () => { const tool = ExtensionHost.toolAdmin.activeTool; return tool instanceof PrimitiveTool ? tool.iModel.selectionSet.isActive : false; }, - }, - ], - } as ButtonGroupEditorParams, { - type: PropertyEditorParamTypes.SuppressEditorLabel, - suppressLabelPlaceholder: true, - } as SuppressLabelEditorParams, - ], - }, - enum: { - choices: [ - { label: SelectionTool.modesMessage("Replace"), value: SelectionMode.Replace }, - { label: SelectionTool.modesMessage("Add"), value: SelectionMode.Add }, - { label: SelectionTool.modesMessage("Remove"), value: SelectionMode.Remove }, - ], - }, - }; - } - - protected showPrompt(mode: SelectionMode, method: SelectionMethod): void { - let mainMsg = "ElementSet.Prompts."; - switch (method) { - case SelectionMethod.Pick: - mainMsg += "IdentifyElement"; - break; - case SelectionMethod.Line: - mainMsg += (0 === this._points.length ? "StartPoint" : "EndPoint"); - break; - case SelectionMethod.Box: - mainMsg += (0 === this._points.length ? "StartCorner" : "OppositeCorner"); - break; - } - - const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg)); - const sections: ToolAssistanceSection[] = []; - - switch (method) { - case SelectionMethod.Pick: - const mousePickInstructions: ToolAssistanceInstruction[] = []; - mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, ToolAssistanceInputMethod.Mouse)); - mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClickDrag, CoreTools.translate("ElementSet.Inputs.BoxCorners"), false, ToolAssistanceInputMethod.Mouse)); - mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClickDrag, CoreTools.translate("ElementSet.Inputs.CrossingLine"), false, ToolAssistanceInputMethod.Mouse)); - mousePickInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClickDrag, CoreTools.translate("ElementSet.Inputs.OverlapSelection"), false, ToolAssistanceInputMethod.Mouse)); - if (SelectionMode.Replace === mode) { - mousePickInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.ctrlKeyboardInfo, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); - mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.CursorClick, CoreTools.translate("ElementSet.Inputs.ClearSelection"), false, ToolAssistanceInputMethod.Mouse)); - } - sections.push(ToolAssistance.createSection(mousePickInstructions, ToolAssistance.inputsLabel)); - - const touchPickInstructions: ToolAssistanceInstruction[] = []; - if (!ToolAssistance.createTouchCursorInstructions(touchPickInstructions)) - touchPickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, ToolAssistanceInputMethod.Touch)); - sections.push(ToolAssistance.createSection(touchPickInstructions, ToolAssistance.inputsLabel)); - break; - case SelectionMethod.Line: - const mouseLineInstructions: ToolAssistanceInstruction[] = []; - mouseLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Mouse)); - if (SelectionMode.Replace === mode) - mouseLineInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); - sections.push(ToolAssistance.createSection(mouseLineInstructions, ToolAssistance.inputsLabel)); - - const touchLineInstructions: ToolAssistanceInstruction[] = []; - touchLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Touch)); - sections.push(ToolAssistance.createSection(touchLineInstructions, ToolAssistance.inputsLabel)); - break; - case SelectionMethod.Box: - const mouseBoxInstructions: ToolAssistanceInstruction[] = []; - mouseBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Mouse)); - mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.OverlapSelection"), false, ToolAssistanceInputMethod.Mouse)); - if (SelectionMode.Replace === mode) - mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate("ElementSet.Inputs.InvertSelection"), false, ToolAssistanceInputMethod.Mouse)); - sections.push(ToolAssistance.createSection(mouseBoxInstructions, ToolAssistance.inputsLabel)); - - const touchBoxInstructions: ToolAssistanceInstruction[] = []; - touchBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, ToolAssistanceInputMethod.Touch)); - sections.push(ToolAssistance.createSection(touchBoxInstructions, ToolAssistance.inputsLabel)); - break; - } - - const instructions = ToolAssistance.createInstructions(mainInstruction, sections); - ExtensionHost.notifications.setToolAssistance(instructions); - } - - protected initSelectTool(): void { - const method = this.selectionMethod; - const mode = this.selectionMode; - const enableLocate = SelectionMethod.Pick === method; - - this._isSelectByPoints = false; - this._points.length = 0; - - this.initLocateElements(enableLocate, false, enableLocate ? "default" : ExtensionHost.viewManager.crossHairCursor, CoordinateLockOverrides.All); - ExtensionHost.locateManager.options.allowDecorations = true; // Always locate to display tool tip even if we reject for adding to selection set... - this.showPrompt(mode, method); - } - - protected processMiss(_ev: BeButtonEvent): boolean { - if (!this.iModel.selectionSet.isActive) - return false; - this.iModel.selectionSet.emptyAll(); - return true; - } - - public updateSelection(elementId: Id64Arg, process: SelectionProcessing): boolean { - let returnValue = false; - switch (process) { - case SelectionProcessing.AddElementToSelection: - returnValue = this.iModel.selectionSet.add(elementId); - break; - case SelectionProcessing.RemoveElementFromSelection: - returnValue = this.iModel.selectionSet.remove(elementId); - break; - case SelectionProcessing.InvertElementInSelection: // (if element is in selection remove it else add it.) - returnValue = this.iModel.selectionSet.invert(elementId); - break; - case SelectionProcessing.ReplaceSelectionWithElement: - this.iModel.selectionSet.replace(elementId); - returnValue = true; - break; - default: - return false; - } - // always force UI to sync display of options since the select option of Remove should only be enabled if the selection set has elements. - if (returnValue) - this.syncSelectionMode(); - return returnValue; - } - - public async processSelection(elementId: Id64Arg, process: SelectionProcessing): Promise { return this.updateSelection(elementId, process); } + public override autoLockTarget(): void { } - protected useOverlapSelection(ev: BeButtonEvent): boolean { - if (undefined === ev.viewport) - return false; - const pt1 = ev.viewport.worldToView(this._points[0]); - const pt2 = ev.viewport.worldToView(ev.point); - const overlapMode = (pt1.x > pt2.x); - return (ev.isShiftKey ? !overlapMode : overlapMode); // Shift inverts inside/overlap selection... + protected provideToolAssistance(): void { + // ### TODO: Tool assistance...supply the implementation! } - private selectByPointsDecorate(context: DecorateContext): void { - if (!this._isSelectByPoints) - return; - - const ev = new BeButtonEvent(); - ExtensionHost.toolAdmin.fillEventFromCursorLocation(ev); - if (undefined === ev.viewport) - return; - - const vp = context.viewport; - const bestContrastIsBlack = (ColorDef.black === vp.getContrastToBackgroundColor()); - const crossingLine = (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button)); - const overlapSelection = (crossingLine || this.useOverlapSelection(ev)); - - const position = vp.worldToView(this._points[0]); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5; - const position2 = vp.worldToView(ev.point); position2.x = Math.floor(position2.x) + 0.5; position2.y = Math.floor(position2.y) + 0.5; - const offset = position2.minus(position); - - const drawDecoration = (ctx: CanvasRenderingContext2D) => { - ctx.strokeStyle = bestContrastIsBlack ? "black" : "white"; - ctx.lineWidth = 1; - if (overlapSelection) ctx.setLineDash([5, 5]); - if (crossingLine) { - ctx.beginPath(); - ctx.moveTo(0, 0); - ctx.lineTo(offset.x, offset.y); - ctx.stroke(); - } else { - ctx.strokeRect(0, 0, offset.x, offset.y); - ctx.fillStyle = bestContrastIsBlack ? "rgba(0,0,0,.06)" : "rgba(255,255,255,.06)"; - ctx.fillRect(0, 0, offset.x, offset.y); - } - }; - context.addCanvasDecoration({ position, drawDecoration }); - } - - protected selectByPointsProcess(origin: Point3d, corner: Point3d, ev: BeButtonEvent, method: SelectionMethod, overlap: boolean) { - const vp = ev.viewport; - if (!vp) - return; - - const pts: Point2d[] = []; - pts[0] = new Point2d(Math.floor(origin.x + 0.5), Math.floor(origin.y + 0.5)); - pts[1] = new Point2d(Math.floor(corner.x + 0.5), Math.floor(corner.y + 0.5)); - const range = Range2d.createArray(pts); - - const rect = new ViewRect(); - rect.initFromRange(range); - const allowTransients = this.wantPickableDecorations(); - - vp.readPixels(rect, Pixel.Selector.Feature, (pixels) => { - if (undefined === pixels) - return; - - const sRange = Range2d.createNull(); - sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.low.x), vp.cssPixelsToDevicePixels(range.low.y))); - sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.high.x), vp.cssPixelsToDevicePixels(range.high.y))); - - pts[0].x = vp.cssPixelsToDevicePixels(pts[0].x); - pts[0].y = vp.cssPixelsToDevicePixels(pts[0].y); - - pts[1].x = vp.cssPixelsToDevicePixels(pts[1].x); - pts[1].y = vp.cssPixelsToDevicePixels(pts[1].y); - - let contents = new Set(); - const testPoint = Point2d.createZero(); - - const getPixelElementId = (pixel: Pixel.Data) => { - if (undefined === pixel.elementId || Id64.isInvalid(pixel.elementId)) - return undefined; // no geometry at this location... - - if (!allowTransients && Id64.isTransient(pixel.elementId)) - return undefined; // tool didn't request pickable decorations... - - if (!vp.isPixelSelectable(pixel)) - return undefined; // reality model, terrain, etc - not selectable - - return pixel.elementId; - }; - - if (SelectionMethod.Box === method) { - const outline = overlap ? undefined : new Set(); - const offset = sRange.clone(); - offset.expandInPlace(-2); - for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) { - for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) { - const pixel = pixels.getPixel(testPoint.x, testPoint.y); - const elementId = getPixelElementId(pixel); - if (undefined === elementId) - continue; - - if (undefined !== outline && !offset.containsPoint(testPoint)) - outline.add(elementId.toString()); - else - contents.add(elementId.toString()); - } - } - if (undefined !== outline && 0 !== outline.size) { - const inside = new Set(); - contents.forEach((id) => { if (!outline.has(id)) inside.add(id); }); - contents = inside; - } - } else { - const closePoint = Point2d.createZero(); - for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) { - for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) { - const pixel = pixels.getPixel(testPoint.x, testPoint.y); - const elementId = getPixelElementId(pixel); - if (undefined === elementId) - continue; - - const fraction = testPoint.fractionOfProjectionToLine(pts[0], pts[1], 0.0); - pts[0].interpolate(fraction, pts[1], closePoint); - if (closePoint.distance(testPoint) < 1.5) - contents.add(elementId.toString()); - } - } - } - - if (0 === contents.size) { - if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) - this.syncSelectionMode(); - return; - } - - switch (this.selectionMode) { - case SelectionMode.Replace: - if (!ev.isControlKey) - this.processSelection(contents, SelectionProcessing.ReplaceSelectionWithElement); // eslint-disable-line @typescript-eslint/no-floating-promises - else - this.processSelection(contents, SelectionProcessing.InvertElementInSelection); // eslint-disable-line @typescript-eslint/no-floating-promises - break; - case SelectionMode.Add: - this.processSelection(contents, SelectionProcessing.AddElementToSelection); // eslint-disable-line @typescript-eslint/no-floating-promises - break; - case SelectionMode.Remove: - this.processSelection(contents, SelectionProcessing.RemoveElementFromSelection); // eslint-disable-line @typescript-eslint/no-floating-promises - break; - } - }, true); - } - - protected selectByPointsStart(ev: BeButtonEvent): boolean { - if (BeButton.Data !== ev.button && BeButton.Reset !== ev.button) - return false; - this._points.length = 0; - this._points.push(ev.point.clone()); - this._isSelectByPoints = true; - ExtensionHost.accuSnap.enableLocate(false); - ExtensionHost.toolAdmin.setLocateCircleOn(false); - this.showPrompt(this.selectionMode, this.selectionMethod); - return true; - } - - protected selectByPointsEnd(ev: BeButtonEvent): boolean { - if (!this._isSelectByPoints) - return false; - - const vp = ev.viewport; - if (vp === undefined) { - this.initSelectTool(); - return false; - } - - const origin = vp.worldToView(this._points[0]); - const corner = vp.worldToView(ev.point); - if (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button)) - this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Line, true); - else - this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Box, this.useOverlapSelection(ev)); - - this.initSelectTool(); - vp.invalidateDecorations(); - return true; - } - - public override async onMouseMotion(ev: BeButtonEvent): Promise { - if (undefined !== ev.viewport && this._isSelectByPoints) - ev.viewport.invalidateDecorations(); - } - - public async selectDecoration(ev: BeButtonEvent, currHit?: HitDetail): Promise { - if (undefined === currHit) - currHit = await ExtensionHost.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource); - - if (undefined !== currHit) - return (currHit.isElementHit ? ExtensionHost.viewManager.overrideElementButtonEvent(currHit, ev) : ExtensionHost.viewManager.onDecorationButtonEvent(currHit, ev)); - - return EventHandled.No; - } - - public override async onMouseStartDrag(ev: BeButtonEvent): Promise { - ExtensionHost.accuSnap.clear(); // Need to test hit at start drag location, not current AccuSnap... - if (EventHandled.Yes === await this.selectDecoration(ev)) - return EventHandled.Yes; - if (InputSource.Touch === ev.inputSource && SelectionMethod.Pick === this.selectionMethod) - return EventHandled.No; // Require method change for line/box selection...allow IdleTool to handle touch move... - return this.selectByPointsStart(ev) ? EventHandled.Yes : EventHandled.No; - } - - public override async onMouseEndDrag(ev: BeButtonEvent): Promise { - return this.selectByPointsEnd(ev) ? EventHandled.Yes : EventHandled.No; + protected initTool(): void { + this.initLocateElements(true, false, "default", CoordinateLockOverrides.All); + this.provideToolAssistance(); } public override async onDataButtonUp(ev: BeButtonEvent): Promise { + // Act as a selection tool, updating the currently selected elements if (undefined === ev.viewport) return EventHandled.No; - if (this.selectByPointsEnd(ev)) - return EventHandled.Yes; - - if (SelectionMethod.Pick !== this.selectionMethod) { - if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) - this.syncSelectionMode(); - if (InputSource.Touch !== ev.inputSource) - this.selectByPointsStart(ev); // Require touch move and not tap to start crossing line/box selection... - return EventHandled.Yes; - } - const hit = await ExtensionHost.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource); - if (hit !== undefined && !hit.isModelHit && !hit.isMapHit) { // model hit = terrain, reality models, background maps, etc - not selectable - if (EventHandled.Yes === await this.selectDecoration(ev, hit)) - return EventHandled.Yes; - - switch (this.selectionMode) { - case SelectionMode.Replace: - await this.processSelection(hit.sourceId, ev.isControlKey ? SelectionProcessing.InvertElementInSelection : SelectionProcessing.ReplaceSelectionWithElement); - break; - - case SelectionMode.Add: - await this.processSelection(hit.sourceId, SelectionProcessing.AddElementToSelection); - break; - - case SelectionMode.Remove: - await this.processSelection(hit.sourceId, SelectionProcessing.RemoveElementFromSelection); - break; - } - return EventHandled.Yes; - } - - if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev)) - this.syncSelectionMode(); + if (hit !== undefined && !hit.isModelHit) // model hit = terrain, reality models, background maps, etc - not selectable + this.iModel.selectionSet.replace(hit.sourceId); return EventHandled.Yes; } - public override async onResetButtonUp(ev: BeButtonEvent): Promise { - if (this._isSelectByPoints) { - if (undefined !== ev.viewport) - ev.viewport.invalidateDecorations(); - this.initSelectTool(); - return EventHandled.Yes; - } + public override async onUnsuspend(): Promise { this.provideToolAssistance(); } + public override async onRestartTool(): Promise { this.exitTool(); } - // Check for overlapping hits... - const lastHit = SelectionMode.Remove === this.selectionMode ? undefined : ExtensionHost.locateManager.currHit; - if (lastHit && this.iModel.selectionSet.has(lastHit.sourceId)) { - const autoHit = ExtensionHost.accuSnap.currHit; - - // Play nice w/auto-locate, only remove previous hit if not currently auto-locating or over previous hit - if (undefined === autoHit || autoHit.isSameHit(lastHit)) { - const response = new LocateResponse(); - let nextHit; - do { - nextHit = await ExtensionHost.locateManager.doLocate(response, false, ev.point, ev.viewport, ev.inputSource); - } while (undefined !== nextHit && (nextHit.isModelHit || nextHit.isMapHit)); // Ignore reality models, terrain, maps, etc. - - // remove element(s) previously selected if in replace mode, or if we have a next element in add mode - if (SelectionMode.Replace === this.selectionMode || undefined !== nextHit) - await this.processSelection(lastHit.sourceId, SelectionProcessing.RemoveElementFromSelection); - - // add element(s) located via reset button - if (undefined !== nextHit) - await this.processSelection(nextHit.sourceId, SelectionProcessing.AddElementToSelection); - - return EventHandled.Yes; - } - } - - if (EventHandled.Yes === await this.selectDecoration(ev, ExtensionHost.accuSnap.currHit)) - return EventHandled.Yes; - - await ExtensionHost.accuSnap.resetButton(); - return EventHandled.Yes; + public override async onPostInstall(): Promise { + super.onPostInstall(); + this.initTool(); } - public override async onSuspend() { - this._isSuspended = true; - if (this.wantEditManipulators()) - ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Suspend); - } - - public override async onUnsuspend() { - this._isSuspended = false; - if (this.wantEditManipulators()) - ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Unsuspend); - - this.showPrompt(this.selectionMode, this.selectionMethod); - } - - public override async onTouchMoveStart(ev: BeTouchEvent, startEv: BeTouchEvent): Promise { - if (startEv.isSingleTouch && !this._isSelectByPoints) - await ExtensionHost.toolAdmin.convertTouchMoveStartToButtonDownAndMotion(startEv, ev); - return (this._isSuspended || this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No; - } - - public override async onTouchMove(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchMoveToMotion(ev); } - public override async onTouchComplete(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchEndToButtonUp(ev); } - public override async onTouchCancel(ev: BeTouchEvent): Promise { if (this._isSelectByPoints) return ExtensionHost.toolAdmin.convertTouchEndToButtonUp(ev, BeButton.Reset); } - - public override decorate(context: DecorateContext): void { this.selectByPointsDecorate(context); } - - public override async onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise { - return (modifier === BeModifierKeys.Shift && this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No; - } - - public override async filterHit(hit: HitDetail, out?: LocateResponse): Promise { - if (!this.wantPickableDecorations() && !hit.isElementHit) - return LocateFilterStatus.Reject; - - const mode = this.selectionMode; - if (SelectionMode.Replace === mode) - return LocateFilterStatus.Accept; - - const isSelected = this.iModel.selectionSet.has(hit.sourceId); - const status = ((SelectionMode.Add === mode ? !isSelected : isSelected) ? LocateFilterStatus.Accept : LocateFilterStatus.Reject); - if (out && LocateFilterStatus.Reject === status) - out.explanation = CoreTools.translate(`ElementSet.Error.${isSelected ? "AlreadySelected" : "NotSelected"}`); - return status; - } - - public async onRestartTool(): Promise { return this.exitTool(); } - - public override async onCleanup() { - if (this.wantEditManipulators()) - ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Stop); - } - - public override async onPostInstall() { - await super.onPostInstall(); - if (!this.targetView) - return; - if (this.wantEditManipulators()) - ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Start); - this.initSelectTool(); - } - - public static async startTool(): Promise { return new SelectionTool().run(); } - - private syncSelectionMode(): void { - if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) { - // No selection active resetting selection mode since there is nothing to Remove - this.selectionMode = SelectionMode.Replace; - this.initSelectTool(); - } - if (this.wantToolSettings()) { - const syncMode: DialogPropertySyncItem = { value: this._selectionModeValue, propertyName: SelectionTool._modesName }; - ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, syncMode); - this.syncToolSettingsProperties([syncMode]); - } - } - - /** Used to supply DefaultToolSettingProvider with a list of properties to use to generate ToolSettings. If undefined then no ToolSettings will be displayed - * @beta - */ - public override supplyToolSettingsProperties(): DialogItem[] | undefined { - if (!this.wantToolSettings()) - return undefined; - - // load latest values from session - ExtensionHost.toolAdmin.toolSettingsState.getInitialToolSettingValues(this.toolId, [SelectionTool._modesName])?.forEach((value) => { - if (value.propertyName === SelectionTool._modesName) - this._selectionModeValue = value.value; - }); - - // Make sure a mode of SelectionMode.Remove is valid - if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) { - this.selectionMode = SelectionMode.Replace; - ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue }); - } - - const toolSettings = new Array(); - // generate 3 columns - label will be placed in column 0 and button group editors in columns 1 and 2. - toolSettings.push({ value: this._selectionMethodValue, property: SelectionTool._getMethodsDescription(), editorPosition: { rowPriority: 0, columnIndex: 1 } }); - toolSettings.push({ value: this._selectionModeValue, property: SelectionTool._getModesDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } }); - return toolSettings; - } - - /** Used to send changes from UI back to Tool - * @beta - */ - public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise { - let changed = false; - if (updatedValue.propertyName === SelectionTool._methodsName) { - const saveWantManipulators = this.wantEditManipulators(); - this._selectionMethodValue = updatedValue.value; - if (this._selectionMethodValue) { - const currWantManipulators = this.wantEditManipulators(); - if (saveWantManipulators !== currWantManipulators) - ExtensionHost.toolAdmin.manipulatorToolEvent.raiseEvent(this, currWantManipulators ? ManipulatorToolEvent.Start : ManipulatorToolEvent.Stop); - changed = true; - } - } - if (updatedValue.propertyName === SelectionTool._modesName) { - this._selectionModeValue = updatedValue.value; - if (this._selectionModeValue) { - if (this.wantToolSettings()) - ExtensionHost.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue }); - changed = true; - } - } - if (changed) - this.initSelectTool(); - return true; // return true if change is valid - } -} + public static async startTool(): Promise { return new ExtensionSelectTool().run(); } +} \ No newline at end of file diff --git a/extensions/test-extension/src/index.ts b/extensions/test-extension/src/index.ts index beaf7e62010c..03931e9b450e 100644 --- a/extensions/test-extension/src/index.ts +++ b/extensions/test-extension/src/index.ts @@ -3,9 +3,9 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ import { registerTool } from "@itwin/core-extension"; -import { SelectionTool } from "./SelectTool"; +import { ExtensionSelectTool } from "./SelectTool"; export default function activate() { - registerTool(SelectionTool); + registerTool(ExtensionSelectTool); console.log("hello world"); } From 46a0544b5244e7d88c76bc94331ed1450abb1f82 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:22:11 -0600 Subject: [PATCH 20/76] Initial work --- core/common/package.json | 17 +- core/extension/codeGen/generate-type-files.js | 119 +++++++++ core/extension/package.json | 7 +- core/frontend/package.json | 12 +- .../dist/rules/public-extension-exports.js | 236 ++++++++++++++++++ 5 files changed, 385 insertions(+), 6 deletions(-) create mode 100644 core/extension/codeGen/generate-type-files.js create mode 100644 tools/eslint-plugin/dist/rules/public-extension-exports.js diff --git a/core/common/package.json b/core/common/package.json index 6f2cdffcdd67..83492bf5171f 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,6 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common", + "extract-extension-api": "eslint -f visualstudio --rule \"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}] \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" @@ -69,6 +70,18 @@ "plugins": [ "@itwin" ], - "extends": "plugin:@itwin/itwinjs-recommended" + "extends": "plugin:@itwin/itwinjs-recommended", + "rules": { + "@itwin/public-extension-exports": [ + "error", + { + "releaseTags": [ + "public", + "preview" + ], + "outputApiFile": false + } + ] + } } -} +} \ No newline at end of file diff --git a/core/extension/codeGen/generate-type-files.js b/core/extension/codeGen/generate-type-files.js new file mode 100644 index 000000000000..7e48f79e7bc3 --- /dev/null +++ b/core/extension/codeGen/generate-type-files.js @@ -0,0 +1,119 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +const fs = require("fs"); + +const declarationFilePath = "index.d.ts"; +const generatedCsvPath = "/lib/GeneratedExtensionApi.csv"; + +const codeGenOpeningComment = `// BEGIN GENERATED CODE`; +const codeGenClosingComment = `// END GENERATED CODE`; +// select all of generated block, including comments +const codeGenBlock = RegExp(`${codeGenOpeningComment}(\\s|\\S)*${codeGenClosingComment}`); + +const args = process.argv.slice(2); + + +function interpretCsv(csvString) { + let apiByType = { + // property names to match the type names from extension eslint rule output + enum: [], + interface: [], + type: [], + real: [] + }; + + // Data in exportName,exportType order + try { + csvString.split("\n").forEach(line => { + if (line.length === 0) { + return; + } + line = line.split(","); + apiByType[line[1]].push(line[0]); + }); + } catch (error) { + console.log("Provided csv with Extension API was malformed.", error); + } + + return apiByType; +} + +function generateExports(apiByType, packageName) { + let realExports = "export {\n"; + let typeExports = "export type {\n"; + const exportTrailer = "} from \"" + packageName + "\";\n\n"; + + apiByType.enum.forEach((enumExport) => { + realExports += enumExport + ",\n"; + }); + apiByType.real.forEach((realExport) => { + realExports += realExport + ",\n"; + }); + + apiByType.interface.forEach((interfaceExport) => { + typeExports += interfaceExport + ",\n"; + }); + apiByType.type.forEach((typeExport) => { + typeExports += typeExport + ",\n"; + }); + + return realExports + exportTrailer + typeExports + exportTrailer; +} + +function collectExports(packageName, packagePath) { + // Adjust to relative path from monorepo root and add path to generated extension API + packagePath = "../../" + packagePath + generatedCsvPath; + + try { + var fileContents = fs.readFileSync(packagePath, "utf8"); + if (fileContents.length === 0) { + throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); + } + } catch (error) { + throw Error("Failed to read extension api csv, it may not exist or has no content.\n" + error); + } + + const apiByType = interpretCsv(fileContents); + + return generateExports(apiByType, packageName); +} + +function generateDeclarationFile(packages) { + let generatedExports = codeGenOpeningComment + "\n"; + + packages.forEach((package) => { + generatedExports += collectExports(package.name, package.path); + }); + generatedExports += codeGenClosingComment; + + fileContents = fs.readFileSync(declarationFilePath, "utf8"); + + if (!codeGenBlock.test(fileContents)) { + throw Error("No block for generated code found. A block with the code gen opening and closing comments is required.") + } + + fileContents = fileContents.replace( + codeGenBlock, + generatedExports + ); + fs.writeFileSync(declarationFilePath, fileContents); +} + +const packages = []; +args.forEach((paramPair) => { + // Replace all single quotes with double quotes, so JSON can parse + paramPair = paramPair.replace(/'/g, "\""); + paramPair = JSON.parse(paramPair); + + if (paramPair.length < 2) { + throw Error("Provided argument does not contain package name followed by package path.", paramPair); + } + packages.push({ + name: paramPair[0], + path: paramPair[1] + }); +}); +generateDeclarationFile(packages); \ No newline at end of file diff --git a/core/extension/package.json b/core/extension/package.json index 68aa181c6fc7..9383d43b1a5a 100644 --- a/core/extension/package.json +++ b/core/extension/package.json @@ -16,7 +16,8 @@ "docs": "", "lint": "", "// lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", - "test": "" + "test": "", + "generate:types": "node ./codeGen/generate-type-files.js ['@itwin/core-frontend','core/frontend'] ['@itwin/core-common','core/common']" }, "keywords": [ "Bentley", @@ -49,8 +50,8 @@ }, "eslintConfig": { "plugins": [ - "@bentley" + "@itwin" ], - "extends": "plugin:@bentley/imodeljs-recommended" + "extends": "plugin:@itwin/imodeljs-recommended" } } \ No newline at end of file diff --git a/core/frontend/package.json b/core/frontend/package.json index 9bc609815858..dce0400cdf07 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,6 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend", + "extract-extension-api": "eslint -f visualstudio --rule \"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}] \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", @@ -111,6 +112,15 @@ "./src/tile/internal.ts" ] } + ], + "@itwin/public-extension-exports": [ + "error", + { + "releaseTags": [ + "public", + "preview" + ] + } ] }, "overrides": [ @@ -127,4 +137,4 @@ } ] } -} +} \ No newline at end of file diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js new file mode 100644 index 000000000000..6d6045d8cdb9 --- /dev/null +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -0,0 +1,236 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +// Writing all of these eslint rules in javascript so we can run them before the build step + +"use strict"; + +const { getParserServices } = require("./utils/parser"); +const ts = require("typescript"); +const fs = require("fs"); + +const syntaxKindFriendlyNames = { + [ts.SyntaxKind.ClassDeclaration]: "class", + [ts.SyntaxKind.EnumDeclaration]: "enum", + [ts.SyntaxKind.InterfaceDeclaration]: "interface", + [ts.SyntaxKind.ModuleDeclaration]: "module", + [ts.SyntaxKind.MethodDeclaration]: "method", + [ts.SyntaxKind.MethodSignature]: "method", + [ts.SyntaxKind.FunctionDeclaration]: "function", + [ts.SyntaxKind.PropertyDeclaration]: "property", + [ts.SyntaxKind.PropertySignature]: "property", + [ts.SyntaxKind.Constructor]: "constructor", + [ts.SyntaxKind.EnumMember]: "enum member", + [ts.SyntaxKind.TypeAliasDeclaration]: "type alias", + [ts.SyntaxKind.ExportDeclaration]: "export", + [ts.SyntaxKind.NamespaceExportDeclaration]: "namespace export", + [ts.SyntaxKind.VariableStatement]: "variable statement" +} + +var firstRun = true; + +/** + * This rule prevents the exporting of extension APIs that not not meet certain release tags. + */ +module.exports = { + meta: { + type: "problem", + docs: { + description: "Prevent the exporting of extension APIs that not meet certain release tags.", + category: "TypeScript", + }, + messages: { + forbidden: `{{kind}} "{{name}}" without one of the release tags "{{releaseTags}}".`, + }, + schema: [ + { + type: "object", + additionalProperties: false, + properties: { + releaseTags: { + type: "array", + uniqueItems: true, + items: { + type: "string", + enum: ["public", "beta", "alpha", "internal", "preview"] + } + }, + outputApiFile: { + type: "boolean" + } + } + } + ] + }, + + create(context) { + const parserServices = getParserServices(context); + + const releaseTags = (context.options.length > 0 && context.options[0].releaseTags) || ["public"]; + const extensionApiTag = "extensionApi"; // SWB temporary extension tag name + + const outputApiFile = (context.options.length > 0 && context.options[0].outputApiFile) || false; + const apiFilePath = "./lib/GeneratedExtensionApi.csv"; + + if (firstRun) { + firstRun = false; + if (outputApiFile) { + // create/clear output api file on first run + fs.writeFileSync(apiFilePath, ""); + } + } + + function addToApiList(declaration, jsDocExtensionTag) { + if (!outputApiFile) { + return; + } + + // Separate interfaces, items marked as real, enums, and others (treated as types) + let trailer = ",type\n"; + if (declaration.kind === ts.SyntaxKind.EnumDeclaration) { + trailer = ",enum\n"; + } + else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { + trailer = ",interface\n"; + } + else if (jsDocExtensionTag.comment && jsDocExtensionTag.comment.toLowerCase().includes("real")) { + trailer = ",real\n"; + } + + if (declaration.kind === ts.SyntaxKind.VariableStatement) { + fs.writeFileSync(apiFilePath, declaration.declarationList.declarations[0].symbol.escapedName + trailer, { flag: "a" }); + return; + } + + fs.writeFileSync(apiFilePath, declaration.symbol.escapedName + trailer, { flag: "a" }); + } + + function getFileName(parent) { + let currentParent = parent; + while (currentParent) { + if (currentParent.fileName !== undefined) + return currentParent.fileName; + currentParent = currentParent.parent; + } + return undefined; + } + + function isLocalFile(declaration) { + if (declaration) { + const fileName = getFileName(declaration.parent); + if (fileName && typeof fileName === "string" && !fileName.includes("node_modules")) + return true; + } + return false; + } + + function getParentSymbolName(declaration) { + if (declaration.parent && declaration.parent.symbol && !declaration.parent.symbol.escapedName.startsWith('"')) + return declaration.parent.symbol.escapedName; + return undefined; + } + + function checkJsDoc(declaration, node) { + // Only check local elements, not consumed ones + if (!declaration || !declaration.jsDoc || !isLocalFile(declaration)) + return undefined; + + for (const jsDoc of declaration.jsDoc) + if (jsDoc.tags) { + let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionApiTag); + // Has extension API tag + if (jsDocExtensionTag) { + addToApiList(declaration, jsDocExtensionTag); + // Does not have any of the required release tags + if (!jsDoc.tags.some(tag => releaseTags.includes(tag.tagName.escapedText))) { + let name; + if (declaration.kind === ts.SyntaxKind.Constructor) + name = declaration.parent.symbol.escapedName; + else { + name = declaration.symbol.escapedName; + const parentSymbol = getParentSymbolName(declaration); + if (parentSymbol) + name = `${parentSymbol}.${name}`; + } + + context.report({ + node, + messageId: "forbidden", + data: { + kind: syntaxKindFriendlyNames.hasOwnProperty(declaration.kind) ? syntaxKindFriendlyNames[declaration.kind] : "unknown object type " + declaration.kind, + name, + releaseTags: releaseTags, + } + }); + } + } + } + } + + function checkWithParent(declaration, node) { + if (!declaration) + return; + checkJsDoc(declaration, node); + if (declaration.parent && [ + ts.SyntaxKind.ClassDeclaration, + ts.SyntaxKind.EnumDeclaration, + ts.SyntaxKind.InterfaceDeclaration, + ts.SyntaxKind.ModuleDeclaration, + ].includes(declaration.parent.kind)) + checkJsDoc(declaration.parent, node); + } + + return { + TSNamespaceExportDeclaration(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + TSExportAssignment(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + TSExportKeyword(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + ExportDefaultDeclaration(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + ExportNamedDeclaration(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + ExportAllDeclaration(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + + ExportSpecifier(node) { + const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); + if (!tsCall) + return; + checkWithParent(tsCall, node); + }, + }; + } +} \ No newline at end of file From 2311343132deec0163d158e33d0bbb81353d2e78 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:34:05 -0600 Subject: [PATCH 21/76] Added tags for core-common enums --- core/common/src/BackgroundMapProvider.ts | 1 + core/common/src/BackgroundMapSettings.ts | 1 + core/common/src/ChangedElements.ts | 1 + core/common/src/Code.ts | 1 + core/common/src/ColorByName.ts | 1 + core/common/src/CommonLoggerCategory.ts | 1 + core/common/src/ConcurrentQuery.ts | 3 ++- core/common/src/DisplayStyleSettings.ts | 1 + core/common/src/ECSqlTypes.ts | 4 ++++ core/common/src/ElementProps.ts | 2 ++ core/common/src/EmphasizeElementsProps.ts | 1 + core/common/src/FeatureTable.ts | 1 + core/common/src/Fonts.ts | 1 + core/common/src/Frustum.ts | 1 + core/common/src/GeoCoordinateServices.ts | 1 + core/common/src/GeometryParams.ts | 3 +++ core/common/src/GeometrySummary.ts | 1 + core/common/src/GraphicParams.ts | 1 + core/common/src/HSVColor.ts | 5 ++++- core/common/src/Image.ts | 2 ++ core/common/src/LinePixels.ts | 1 + core/common/src/MassProperties.ts | 1 + core/common/src/MaterialProps.ts | 1 + core/common/src/PlanarClipMask.ts | 2 ++ core/common/src/SkyBox.ts | 1 + core/common/src/SpatialClassification.ts | 2 ++ core/common/src/TerrainSettings.ts | 1 + core/common/src/ThematicDisplay.ts | 10 +++++++--- core/common/src/TxnAction.ts | 1 + core/common/src/ViewDetails.ts | 1 + core/common/src/ViewFlags.ts | 1 + core/common/src/geometry/ElementGeometry.ts | 1 + core/common/src/geometry/GeometryStream.ts | 1 + 33 files changed, 52 insertions(+), 5 deletions(-) diff --git a/core/common/src/BackgroundMapProvider.ts b/core/common/src/BackgroundMapProvider.ts index 99d69676a5d1..e63db2253041 100644 --- a/core/common/src/BackgroundMapProvider.ts +++ b/core/common/src/BackgroundMapProvider.ts @@ -10,6 +10,7 @@ import { DeprecatedBackgroundMapProps } from "./BackgroundMapSettings"; /** Enumerates the types of map imagery that can be supplied by a [[BackgroundMapProvider]]. * @public + * @extensionApi */ export enum BackgroundMapType { Street = 1, diff --git a/core/common/src/BackgroundMapSettings.ts b/core/common/src/BackgroundMapSettings.ts index 742554b893c0..b404d705703b 100644 --- a/core/common/src/BackgroundMapSettings.ts +++ b/core/common/src/BackgroundMapSettings.ts @@ -14,6 +14,7 @@ import { TerrainProps, TerrainSettings } from "./TerrainSettings"; * @see [[BackgroundMapProps]] * @see [[DisplayStyleSettingsProps]] * @public + * @extensionApi */ export enum GlobeMode { /** Display Earth as 3d ellipsoid */ diff --git a/core/common/src/ChangedElements.ts b/core/common/src/ChangedElements.ts index 7ffdc5102d17..aed2e7cdab2a 100644 --- a/core/common/src/ChangedElements.ts +++ b/core/common/src/ChangedElements.ts @@ -13,6 +13,7 @@ import { AxisAlignedBox3dProps } from "./geometry/Placement"; /** Bitflags describing which aspects of an [Element]($backend) changed as part of a [[ChangedElements]]. * @public + * @extensionApi */ export enum TypeOfChange { /** A property in the element changed */ diff --git a/core/common/src/Code.ts b/core/common/src/Code.ts index 029916948179..673d128f8327 100644 --- a/core/common/src/Code.ts +++ b/core/common/src/Code.ts @@ -62,6 +62,7 @@ export class Code implements CodeProps { /** Names of the internal BIS CodeSpecs. These names match those specified by the native library. * For other domains, the best practice is to include the domain name or alias as part of the CodeSpec name to ensure global uniqueness. * @public + * @extensionApi * @see [CodeSpec]($docs/bis/intro/codes.md#codespec) */ export enum BisCodeSpec { diff --git a/core/common/src/ColorByName.ts b/core/common/src/ColorByName.ts index dc1174615e18..173ead2d1761 100644 --- a/core/common/src/ColorByName.ts +++ b/core/common/src/ColorByName.ts @@ -11,6 +11,7 @@ * This is different than color values in #RRGGBB format for HTML pages (red and blue are swapped). * @note If your colors don't look right, likely you're using 0xRRGGBB where ColorDef expects 0xBBGGRR. * @public + * @extensionApi */ export enum ColorByName { aliceBlue = 0xFFF8F0, diff --git a/core/common/src/CommonLoggerCategory.ts b/core/common/src/CommonLoggerCategory.ts index adb08d110e58..299cb4dedc9e 100644 --- a/core/common/src/CommonLoggerCategory.ts +++ b/core/common/src/CommonLoggerCategory.ts @@ -9,6 +9,7 @@ /** Logger categories used by this package * @see [Logger]($bentley) * @public + * @extensionApi */ export enum CommonLoggerCategory { /** The logger category used by common classes relating to ElementProps. */ diff --git a/core/common/src/ConcurrentQuery.ts b/core/common/src/ConcurrentQuery.ts index 5579ca120e6b..0a57c3cbcfaa 100644 --- a/core/common/src/ConcurrentQuery.ts +++ b/core/common/src/ConcurrentQuery.ts @@ -13,6 +13,7 @@ import { Point2d, Point3d } from "@itwin/core-geometry"; * [IModelConnection]($frontend), [IModelDb]($backend), and [ECDb]($backend). * * @public + * @extensionApi */ export enum QueryRowFormat { /** Each row is an object in which each non-null column value can be accessed by its name as defined in the ECSql. @@ -131,7 +132,7 @@ export class QueryOptionsBuilder { public setSuppressLogErrors(val: boolean) { this._options.suppressLogErrors = val; return this; } public setConvertClassIdsToNames(val: boolean) { this._options.convertClassIdsToClassNames = val; return this; } public setLimit(val: QueryLimit) { this._options.limit = val; return this; } - public setRowFormat(val: QueryRowFormat){ this._options.rowFormat = val; return this; } + public setRowFormat(val: QueryRowFormat) { this._options.rowFormat = val; return this; } } /** @beta */ export class BlobOptionsBuilder { diff --git a/core/common/src/DisplayStyleSettings.ts b/core/common/src/DisplayStyleSettings.ts index 3dbd4b860448..965d7dc3ed9d 100644 --- a/core/common/src/DisplayStyleSettings.ts +++ b/core/common/src/DisplayStyleSettings.ts @@ -66,6 +66,7 @@ export interface DisplayStylePlanarClipMaskProps extends PlanarClipMaskProps { /** Describes the style in which monochrome color is applied by a [[DisplayStyleSettings]]. * @public + * @extensionApi */ export enum MonochromeMode { /** The color of the geometry is replaced with the monochrome color. e.g., if monochrome color is white, the geometry will be white. */ diff --git a/core/common/src/ECSqlTypes.ts b/core/common/src/ECSqlTypes.ts index 536e79c78f22..784abf0fbb1d 100644 --- a/core/common/src/ECSqlTypes.ts +++ b/core/common/src/ECSqlTypes.ts @@ -11,6 +11,7 @@ import { assert, Id64String } from "@itwin/core-bentley"; /** Describes the different data types an ECSQL value can be of. * See also [ECSQL]($docs/learning/ECSQL). * @public + * @extensionApi */ export enum ECSqlValueType { // do not change the values of the enum as it must match its counterpart in the addon @@ -67,6 +68,7 @@ export interface NavigationBindingValue { * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public + * @extensionApi */ export enum ChangeOpCode { Insert = 1, @@ -81,6 +83,7 @@ export enum ChangeOpCode { * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public + * @extensionApi */ export enum ChangedValueState { AfterInsert = 1, @@ -92,6 +95,7 @@ export enum ChangedValueState { /** Defines the ECSQL system properties. * See also [ECSQL]($docs/learning/ECSQL). * @public + * @extensionApi */ export enum ECSqlSystemProperty { ECInstanceId, diff --git a/core/common/src/ElementProps.ts b/core/common/src/ElementProps.ts index 697a2585d934..8a2ec8fa322e 100644 --- a/core/common/src/ElementProps.ts +++ b/core/common/src/ElementProps.ts @@ -158,6 +158,7 @@ export interface PhysicalElementProps extends GeometricElement3dProps { /** An enumeration of the different types of [SectionDrawing]($backend)s. * @public + * @extensionApi */ export enum SectionType { Section = 3, @@ -442,6 +443,7 @@ export interface LightLocationProps extends GeometricElement3dProps { /** The *rank* for a Category * @public + * @extensionApi */ export enum Rank { /** This category is predefined by the system */ diff --git a/core/common/src/EmphasizeElementsProps.ts b/core/common/src/EmphasizeElementsProps.ts index c8ece2904fa0..f4cc57119f95 100644 --- a/core/common/src/EmphasizeElementsProps.ts +++ b/core/common/src/EmphasizeElementsProps.ts @@ -14,6 +14,7 @@ import { FeatureAppearanceProps } from "./FeatureSymbology"; * @see [EmphasizeElements]($frontend) * @see [[AppearanceOverrideProps]] * @public + * @extensionApi */ export enum FeatureOverrideType { /** Override color only. */ diff --git a/core/common/src/FeatureTable.ts b/core/common/src/FeatureTable.ts index d9a042d4364b..5e385bf95785 100644 --- a/core/common/src/FeatureTable.ts +++ b/core/common/src/FeatureTable.ts @@ -67,6 +67,7 @@ export interface PackedFeature { * The most commonly-encountered batches are Tiles, which can be of either Primary or * Classifier type. * @public + * @extensionApi */ export enum BatchType { /** This batch contains graphics derived from a model's visible geometry. */ diff --git a/core/common/src/Fonts.ts b/core/common/src/Fonts.ts index bc42cc76c6cf..242e57c601e4 100644 --- a/core/common/src/Fonts.ts +++ b/core/common/src/Fonts.ts @@ -8,6 +8,7 @@ /** The type of a font. * @public + * @extensionApi */ export enum FontType { TrueType = 1, Rsc = 2, Shx = 3 } diff --git a/core/common/src/Frustum.ts b/core/common/src/Frustum.ts index 9a65450f2525..85700ee2303a 100644 --- a/core/common/src/Frustum.ts +++ b/core/common/src/Frustum.ts @@ -12,6 +12,7 @@ import { /** The 8 corners of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube. * @public + * @extensionApi */ export enum Npc { /** Left bottom rear */ diff --git a/core/common/src/GeoCoordinateServices.ts b/core/common/src/GeoCoordinateServices.ts index f62a74ac743c..5066c8a9dd52 100644 --- a/core/common/src/GeoCoordinateServices.ts +++ b/core/common/src/GeoCoordinateServices.ts @@ -16,6 +16,7 @@ import { GeographicCRSProps } from "./geometry/CoordinateReferenceSystem"; * [[GeographicCRS]] and either another [[GeographicCRS]] or a [[GeodeticDatum]]. * @see the [[PointWithStatus]] included in an [[IModelCoordinatesResponseProps]] or [[GeoCoordinatesResponseProps]]. * @public + * @extensionApi */ export enum GeoCoordStatus { /** Indicates successful coordinate conversion. */ diff --git a/core/common/src/GeometryParams.ts b/core/common/src/GeometryParams.ts index d67979890aa0..43b06a9e1899 100644 --- a/core/common/src/GeometryParams.ts +++ b/core/common/src/GeometryParams.ts @@ -15,6 +15,7 @@ import { IModel } from "./IModel"; /** Whether a closed region should be drawn for wireframe display with its internal area filled or not. * @public + * @extensionApi */ export enum FillDisplay { /** don't fill, even if fill attribute is on for the viewport */ @@ -29,6 +30,7 @@ export enum FillDisplay { /** Describes how a view's background color affects the interior area of a closed region. * @public + * @extensionApi */ export enum BackgroundFill { /** single color fill uses the fill color and line color to draw either a solid or outline fill */ @@ -44,6 +46,7 @@ export enum BackgroundFill { * @see [[GeometryStreamProps]]. * @see [[Feature]]. * @public + * @extensionApi */ export enum GeometryClass { /** Used to classify the "real" geometry within a model. Most geometry falls within this class. */ diff --git a/core/common/src/GeometrySummary.ts b/core/common/src/GeometrySummary.ts index 28f4b5859668..b2cf7ec651a3 100644 --- a/core/common/src/GeometrySummary.ts +++ b/core/common/src/GeometrySummary.ts @@ -10,6 +10,7 @@ import { Id64Array } from "@itwin/core-bentley"; /** Describes the level of detail with which to report each geometric primitive in a [[GeometrySummaryRequestProps]]. * @public + * @extensionApi */ export enum GeometrySummaryVerbosity { /** Simply output the type of geometry as a string. */ diff --git a/core/common/src/GraphicParams.ts b/core/common/src/GraphicParams.ts index 2a7c2ae99093..39ab205fdd72 100644 --- a/core/common/src/GraphicParams.ts +++ b/core/common/src/GraphicParams.ts @@ -13,6 +13,7 @@ import { RenderMaterial } from "./RenderMaterial"; /** Flags indicating whether and how the interiors of closed planar regions is displayed within a view. * @public + * @extensionApi */ export enum FillFlags { /** No fill */ diff --git a/core/common/src/HSVColor.ts b/core/common/src/HSVColor.ts index 7f4b311c8ec9..bd75402443b6 100644 --- a/core/common/src/HSVColor.ts +++ b/core/common/src/HSVColor.ts @@ -8,7 +8,10 @@ import { ColorDef } from "./ColorDef"; -/** @public */ +/** + * @public + * @extensionApi + */ export enum HSVConstants { VISIBILITY_GOAL = 40, HSV_SATURATION_WEIGHT = 4, diff --git a/core/common/src/Image.ts b/core/common/src/Image.ts index 1239e5aaffff..8b385b482555 100644 --- a/core/common/src/Image.ts +++ b/core/common/src/Image.ts @@ -10,6 +10,7 @@ * The format determines how many bytes are allocated for each pixel in the buffer and the semantics of each byte. * @see [[ImageBuffer.getNumBytesPerPixel]] * @public + * @extensionApi */ export enum ImageBufferFormat { /** RGBA format - 4 bytes per pixel. */ @@ -100,6 +101,7 @@ export function nextHighestPowerOfTwo(num: number): number { /** The format of an ImageSource. * @public + * @extensionApi */ export enum ImageSourceFormat { /** Image data is stored with JPEG compression. */ diff --git a/core/common/src/LinePixels.ts b/core/common/src/LinePixels.ts index 8d8648a6e7d8..eafeea05c6c9 100644 --- a/core/common/src/LinePixels.ts +++ b/core/common/src/LinePixels.ts @@ -9,6 +9,7 @@ /** Enumerates the available patterns for drawing patterned lines. * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line. * @public + * @extensionApi */ export enum LinePixels { /** A solid line. */ diff --git a/core/common/src/MassProperties.ts b/core/common/src/MassProperties.ts index 56bfb444e4cf..27fd9fd8e4d6 100644 --- a/core/common/src/MassProperties.ts +++ b/core/common/src/MassProperties.ts @@ -11,6 +11,7 @@ import { XYZProps } from "@itwin/core-geometry"; /** Specify whether to accumulate volumes, areas, or lengths for the supplied elements. * @public + * @extensionApi */ export enum MassPropertiesOperation { /** Return lengths for open paths and planar regions. */ diff --git a/core/common/src/MaterialProps.ts b/core/common/src/MaterialProps.ts index 851dd0b245f4..2a4ef08590f7 100644 --- a/core/common/src/MaterialProps.ts +++ b/core/common/src/MaterialProps.ts @@ -25,6 +25,7 @@ export type Point2dProps = number[]; /** Describes the units in which a [[TextureMapProps]]' scale is expressed. * @public + * @extensionApi */ export enum TextureMapUnits { /** Indicates the scale has no units. */ diff --git a/core/common/src/PlanarClipMask.ts b/core/common/src/PlanarClipMask.ts index 929784966faf..05d56aa623f1 100644 --- a/core/common/src/PlanarClipMask.ts +++ b/core/common/src/PlanarClipMask.ts @@ -10,6 +10,7 @@ import { CompressedId64Set, Id64String, OrderedId64Iterable } from "@itwin/core- /** The different modes by which a [[PlanarClipMaskSettings]] collects the geometry used to mask a model. * @public + * @extensionApi */ export enum PlanarClipMaskMode { /** No masking. */ @@ -32,6 +33,7 @@ export enum PlanarClipMaskMode { /** The default priority values for a [[PlanarClipMaskSettings]], based on model type. Models with a lower priority are masked by models with a higher priority. * The default can be overridden by [[PlanarClipMaskSettings.priority]]. * @public + * @extensionApi */ export enum PlanarClipMaskPriority { /** Background map. */ diff --git a/core/common/src/SkyBox.ts b/core/common/src/SkyBox.ts index 7f38a6273bbc..16fccd7a3325 100644 --- a/core/common/src/SkyBox.ts +++ b/core/common/src/SkyBox.ts @@ -13,6 +13,7 @@ import { TextureImageSpec } from "./RenderTexture"; /** Supported types of [[SkyBox]] images. * @see [[SkyBoxImageProps]]. * @public + * @extensionApi */ export enum SkyBoxImageType { /** No image, indicating a [[SkyGradient]] should be displayed. */ diff --git a/core/common/src/SpatialClassification.ts b/core/common/src/SpatialClassification.ts index 35814f1978e3..0cb8553dcaaa 100644 --- a/core/common/src/SpatialClassification.ts +++ b/core/common/src/SpatialClassification.ts @@ -11,6 +11,7 @@ import { assert, Id64String } from "@itwin/core-bentley"; /** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting * the classifier. * @public + * @extensionApi */ export enum SpatialClassifierInsideDisplay { /** The geometry is not displayed. */ @@ -28,6 +29,7 @@ export enum SpatialClassifierInsideDisplay { /** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting * the classifier. * @public + * @extensionApi */ export enum SpatialClassifierOutsideDisplay { /** The geometry is not displayed. */ diff --git a/core/common/src/TerrainSettings.ts b/core/common/src/TerrainSettings.ts index 4805d4ecd062..5eb4b0797e53 100644 --- a/core/common/src/TerrainSettings.ts +++ b/core/common/src/TerrainSettings.ts @@ -39,6 +39,7 @@ export interface TerrainProps { /** Correction modes for terrain height * @see [[TerrainProps]] * @public + * @extensionApi */ export enum TerrainHeightOriginMode { /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */ diff --git a/core/common/src/ThematicDisplay.ts b/core/common/src/ThematicDisplay.ts index 892e4a8fd1f2..db8777588522 100644 --- a/core/common/src/ThematicDisplay.ts +++ b/core/common/src/ThematicDisplay.ts @@ -14,6 +14,7 @@ import { Gradient } from "./Gradient"; /** A thematic gradient mode used to generate and apply a thematic effect to a scene. * @see [[ThematicGradientSettings.mode]] * @public + * @extensionApi */ export enum ThematicGradientMode { /** Apply a smooth color gradient to the scene. */ @@ -29,7 +30,9 @@ export enum ThematicGradientMode { /** A color scheme used to generate the colors of a thematic gradient within an applied range. * @see [[ThematicGradientSettings.colorScheme]] * @see [[ThematicDisplay.range]] - * @public */ + * @public + * @extensionApi + */ export enum ThematicGradientColorScheme { /** A color gradient scheme that represents a blue-to-red gradation. */ BlueRed = 0, @@ -94,7 +97,7 @@ export class ThematicGradientSettings { public static get contentRange(): number { return 1.0 - 2.0 * ThematicGradientSettings.margin; } public static get contentMax(): number { return 1.0 - ThematicGradientSettings.margin; } - public static readonly defaults = new ThematicGradientSettings({ }); + public static readonly defaults = new ThematicGradientSettings({}); private static _defaultCustomKeys = [[0.0, 255, 255, 255], [1.0, 0, 0, 0]]; @@ -190,7 +193,7 @@ export class ThematicGradientSettings { } public toJSON(): ThematicGradientSettingsProps { - const props: ThematicGradientSettingsProps = { }; + const props: ThematicGradientSettingsProps = {}; if (ThematicGradientMode.Smooth !== this.mode) props.mode = this.mode; @@ -358,6 +361,7 @@ export class ThematicDisplaySensorSettings { /** The thematic display mode. This determines how to apply the thematic color gradient to the geometry. * @public + * @extensionApi */ export enum ThematicDisplayMode { /** The color gradient will be mapped to surface geometry and point clouds based on world height in meters. */ diff --git a/core/common/src/TxnAction.ts b/core/common/src/TxnAction.ts index 52a59f4d6f3f..c7f1c7d6dd20 100644 --- a/core/common/src/TxnAction.ts +++ b/core/common/src/TxnAction.ts @@ -8,6 +8,7 @@ /** Describes the types of actions associated with [Txns]($docs/learning/InteractiveEditing.md). * @public + * @extensionApi */ export enum TxnAction { /** Not currently processing anything. */ diff --git a/core/common/src/ViewDetails.ts b/core/common/src/ViewDetails.ts index 51ce56c8182e..483a4e12b95b 100644 --- a/core/common/src/ViewDetails.ts +++ b/core/common/src/ViewDetails.ts @@ -34,6 +34,7 @@ export interface ViewDetailsProps { /** Describes the orientation of the grid displayed within a [Viewport]($frontend). * @public + * @extensionApi */ export enum GridOrientationType { /** Oriented with the view. */ diff --git a/core/common/src/ViewFlags.ts b/core/common/src/ViewFlags.ts index 0d57c353f7b1..337c30b34b5b 100644 --- a/core/common/src/ViewFlags.ts +++ b/core/common/src/ViewFlags.ts @@ -13,6 +13,7 @@ import { JsonUtils, Mutable, NonFunctionPropertiesOf } from "@itwin/core-bentley /** Enumerates the available basic rendering modes, as part of a [DisplayStyle]($backend)'s [[ViewFlags]]. * The rendering mode broadly affects various aspects of the display style - in particular, whether and how surfaces and their edges are drawn. * @public + * @extensionApi */ export enum RenderMode { /** Renders only the edges of surfaces, with exceptions for planar regions based on their [[FillFlags]]. diff --git a/core/common/src/geometry/ElementGeometry.ts b/core/common/src/geometry/ElementGeometry.ts index 4812598e1a67..f3344edca812 100644 --- a/core/common/src/geometry/ElementGeometry.ts +++ b/core/common/src/geometry/ElementGeometry.ts @@ -25,6 +25,7 @@ import { isPlacement2dProps, PlacementProps } from "../ElementProps"; /** Specifies the type of an entry in a geometry stream. * @see [[ElementGeometryDataEntry.opcode]]. * @public + * @extensionApi */ export enum ElementGeometryOpcode { /** Local range of the next geometric primitive in the geometry stream. */ diff --git a/core/common/src/geometry/GeometryStream.ts b/core/common/src/geometry/GeometryStream.ts index fbe7e8c71b9e..959f998dee49 100644 --- a/core/common/src/geometry/GeometryStream.ts +++ b/core/common/src/geometry/GeometryStream.ts @@ -135,6 +135,7 @@ export interface GeometryPartInstanceProps { /** Flags applied to the entire contents of a [[GeometryStreamProps]]. * @see GeometryStreamHeaderProps * @public + * @extensionApi */ export enum GeometryStreamFlags { /** No flags. */ From 4321d9238e3da888b2eebe574182625e2a3798bb Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 16:48:57 -0600 Subject: [PATCH 22/76] Added tags for half core-common interfaces --- core/common/src/AnalysisStyle.ts | 7 +++++-- core/common/src/BackgroundMapSettings.ts | 2 ++ core/common/src/BriefcaseTypes.ts | 1 + core/common/src/Camera.ts | 1 + core/common/src/ChangedElements.ts | 1 + core/common/src/ChangedEntities.ts | 2 ++ core/common/src/ChangesetProps.ts | 3 +++ core/common/src/ClipStyle.ts | 2 ++ core/common/src/Code.ts | 1 + core/common/src/ConcurrentQuery.ts | 3 ++- core/common/src/ContextRealityModel.ts | 8 +++++--- core/common/src/DisplayStyleSettings.ts | 9 +++++++++ core/common/src/ECSqlTypes.ts | 2 ++ core/common/src/ElementProps.ts | 19 +++++++++++++++++++ core/common/src/EmphasizeElementsProps.ts | 2 ++ core/common/src/EntityProps.ts | 2 ++ core/common/src/Environment.ts | 1 + core/common/src/FeatureSymbology.ts | 3 +++ core/common/src/Fonts.ts | 2 ++ core/common/src/GeometryContainment.ts | 2 ++ core/common/src/GeometrySummary.ts | 2 ++ core/common/src/GroundPlane.ts | 3 ++- core/common/src/IModel.ts | 6 +++++- core/common/src/IpcAppProps.ts | 1 + core/common/src/LightSettings.ts | 8 ++++++-- core/common/src/Localization.ts | 1 + core/common/src/MassProperties.ts | 2 ++ core/common/src/ModelClipGroup.ts | 1 + core/common/src/ModelGeometryChanges.ts | 5 +++++ core/common/src/ModelProps.ts | 6 ++++++ core/common/src/PlanProjectionSettings.ts | 1 + core/common/src/PlanarClipMask.ts | 1 + core/common/src/ViewProps.ts | 9 ++++++++- .../src/domains/FunctionalElementProps.ts | 5 ++++- .../common/src/domains/GenericElementProps.ts | 5 ++++- .../src/geometry/AdditionalTransform.ts | 2 ++ core/common/src/geometry/Cartographic.ts | 1 + .../src/geometry/CoordinateReferenceSystem.ts | 3 +++ core/common/src/geometry/ElementGeometry.ts | 1 + core/common/src/geometry/GeodeticDatum.ts | 6 ++++++ core/common/src/geometry/GeodeticEllipsoid.ts | 1 + core/common/src/geometry/GeometryStream.ts | 11 +++++++++++ core/common/src/geometry/ImageGraphic.ts | 1 + core/common/src/geometry/Projection.ts | 3 +++ core/common/src/tile/ElementGraphics.ts | 7 +++++++ 45 files changed, 152 insertions(+), 13 deletions(-) diff --git a/core/common/src/AnalysisStyle.ts b/core/common/src/AnalysisStyle.ts index 45b78364afc1..03e05f28accf 100644 --- a/core/common/src/AnalysisStyle.ts +++ b/core/common/src/AnalysisStyle.ts @@ -13,6 +13,7 @@ import { Gradient } from "./Gradient"; /** JSON representation of an [[AnalysisStyleDisplacement]]. * @see [[AnalysisStyleProps.displacement]]. * @public + * @extensionApi */ export interface AnalysisStyleDisplacementProps { /** @see [[AnalysisStyleDisplacement.channelName]]. */ @@ -64,6 +65,7 @@ export class AnalysisStyleDisplacement { /** JSON representation of an [[AnalysisStyleThematic]]. * @see [[AnalysisStyleProps.scalar]]. * @public + * @extensionApi */ export interface AnalysisStyleThematicProps { /** @see [[AnalysisStyleThematic.channelName]]. */ @@ -134,6 +136,7 @@ export class AnalysisStyleThematic { /** JSON representation of an [[AnalysisStyle]]. * @public + * @extensionApi */ export interface AnalysisStyleProps { /** @see [[AnalysisStyle.displacement]]. */ @@ -229,7 +232,7 @@ export class AnalysisStyle { /** Convert this style to its JSON representation. */ public toJSON(): AnalysisStyleProps { - const props: AnalysisStyleProps = { }; + const props: AnalysisStyleProps = {}; if (this === AnalysisStyle.defaults) return props; @@ -269,5 +272,5 @@ export class AnalysisStyle { return undefined === this.thematic || this.thematic.equals(other.thematic!); } - public static readonly defaults = new AnalysisStyle({ }); + public static readonly defaults = new AnalysisStyle({}); } diff --git a/core/common/src/BackgroundMapSettings.ts b/core/common/src/BackgroundMapSettings.ts index b404d705703b..14c9e0397f35 100644 --- a/core/common/src/BackgroundMapSettings.ts +++ b/core/common/src/BackgroundMapSettings.ts @@ -26,6 +26,7 @@ export enum GlobeMode { /** In-memory JSON representation of a [[BackgroundMapSettings]]. * @see [[PersistentBackgroundMapProps]] for the persistent JSON representation. * @public + * @extensionApi */ export interface BackgroundMapProps { /** The elevation of the map in meters relative the WGS84 ellipsoid. Default value: 0. */ @@ -61,6 +62,7 @@ export interface BackgroundMapProps { * These properties are omitted from [[BackgroundMapProps]] as they are no longer part of the API, but are included in * [[PersistentBackgroundMapProps]] because they remain part of the persistence format. * @public + * @extensionApi */ export interface DeprecatedBackgroundMapProps { /** Identifies the source of the map tiles. Currently supported providers are "BingProvider" and "MapBoxProvider". diff --git a/core/common/src/BriefcaseTypes.ts b/core/common/src/BriefcaseTypes.ts index 0b8340290171..c5436f88ec09 100644 --- a/core/common/src/BriefcaseTypes.ts +++ b/core/common/src/BriefcaseTypes.ts @@ -92,6 +92,7 @@ export interface OpenBriefcaseProps extends IModelEncryptionProps, OpenDbKey { /** Properties of a local briefcase file, returned by [BriefcaseManager.getCachedBriefcases]($backend) and [BriefcaseManager.downloadBriefcase]($backend) * @public + * @extensionApi */ export interface LocalBriefcaseProps { /** Full path of local file. */ diff --git a/core/common/src/Camera.ts b/core/common/src/Camera.ts index 1424ee52a5b0..f5a0151299f2 100644 --- a/core/common/src/Camera.ts +++ b/core/common/src/Camera.ts @@ -11,6 +11,7 @@ import { Angle, AngleProps, Point3d, XYAndZ, XYZProps } from "@itwin/core-geomet /** JSON representation of a [[Camera]]. * @public + * @extensionApi */ export interface CameraProps { lens: AngleProps; diff --git a/core/common/src/ChangedElements.ts b/core/common/src/ChangedElements.ts index aed2e7cdab2a..e106996d947e 100644 --- a/core/common/src/ChangedElements.ts +++ b/core/common/src/ChangedElements.ts @@ -33,6 +33,7 @@ export enum TypeOfChange { * Each index for those arrays refer to the same element, e.g. to get the class Id of * the element given by element Id changedElements.elements[index], you can use changedElements.classIds[index]. * @public + * @extensionApi */ export interface ChangedElements { /** Ids of elements that changed */ diff --git a/core/common/src/ChangedEntities.ts b/core/common/src/ChangedEntities.ts index 4a97a867de0b..110a40b73370 100644 --- a/core/common/src/ChangedEntities.ts +++ b/core/common/src/ChangedEntities.ts @@ -10,6 +10,7 @@ import { CompressedId64Set, Id64String } from "@itwin/core-bentley"; /** Describes an [Entity]($backend) and its [ECClass]($docs/bis/intro/glossary/#ecclass) by Id. * @public + * @extensionApi */ export interface EntityIdAndClassId { /** The entity's Id. */ @@ -22,6 +23,7 @@ export interface EntityIdAndClassId { * @see [TxnManager.onElementsChanged]($backend) and [TxnManager.onModelsChanged]($backend). * @see [BriefcaseTxns.onElementsChanged]($frontend) and [BriefcaseTxns.onModelsChanged]($frontend). * @public + * @extensionApi */ export interface ChangedEntities { /** The ids of entities that were inserted during the Txn. */ diff --git a/core/common/src/ChangesetProps.ts b/core/common/src/ChangesetProps.ts index 6fe6cea74f67..2314e7856810 100644 --- a/core/common/src/ChangesetProps.ts +++ b/core/common/src/ChangesetProps.ts @@ -26,11 +26,13 @@ export type ChangesetIndex = number; /** Both the index and Id of a changeset * @public + * @extensionApi */ export interface ChangesetIndexAndId { readonly index: ChangesetIndex, readonly id: ChangesetId } /** The Id and optionally the index of a changeset * @public + * @extensionApi */ export interface ChangesetIdWithIndex { readonly index?: ChangesetIndex, readonly id: ChangesetId } @@ -83,6 +85,7 @@ export interface ChangesetFileProps extends ChangesetProps { /** * A range of changesets * @public + * @extensionApi */ export interface ChangesetRange { /** index of the first changeset */ diff --git a/core/common/src/ClipStyle.ts b/core/common/src/ClipStyle.ts index 85d76111b027..2c5a6319874b 100644 --- a/core/common/src/ClipStyle.ts +++ b/core/common/src/ClipStyle.ts @@ -15,6 +15,7 @@ import { FeatureAppearance, FeatureAppearanceProps } from "./FeatureSymbology"; /** Wire format describing a [[CutStyle]] applied to section-cut geometry produced at intersections with a view's [ClipVector]($core-geometry). * @see [[ClipStyleProps.cutStyle]]. * @public + * @extensionApi */ export interface CutStyleProps { /** If defined, overrides aspects of the view's [[ViewFlags]] when drawing the cut geometry. */ @@ -99,6 +100,7 @@ export class CutStyle { /** Wire format describing a [[ClipStyle]]. * @see [[DisplayStyleSettingsProps.clipStyle]]. * @public + * @extensionApi */ export interface ClipStyleProps { /** If `true`, geometry will be produced at the clip planes in a 3d view. diff --git a/core/common/src/Code.ts b/core/common/src/Code.ts index 673d128f8327..4babbb7ba29e 100644 --- a/core/common/src/Code.ts +++ b/core/common/src/Code.ts @@ -16,6 +16,7 @@ export type CodeScopeProps = Id64String | GuidString; /** The wire format for a Code * @public + * @extensionApi */ export interface CodeProps { spec: Id64String; diff --git a/core/common/src/ConcurrentQuery.ts b/core/common/src/ConcurrentQuery.ts index 0a57c3cbcfaa..69400d095895 100644 --- a/core/common/src/ConcurrentQuery.ts +++ b/core/common/src/ConcurrentQuery.ts @@ -70,7 +70,8 @@ export interface QueryQuota { /** * Config for all request made to concurrent query engine. * @public - * */ + * @extensionApi + */ export interface BaseReaderOptions { /** Determine priority of this query default to 0, used as hint and can be overriden by backend. */ priority?: number; diff --git a/core/common/src/ContextRealityModel.ts b/core/common/src/ContextRealityModel.ts index 76d7bcede6d2..4d95dcbe0793 100644 --- a/core/common/src/ContextRealityModel.ts +++ b/core/common/src/ContextRealityModel.ts @@ -69,7 +69,7 @@ export enum RealityDataFormat { /** Utility function for RealityDataFormat * @beta */ -export namespace RealityDataFormat { +export namespace RealityDataFormat { /** * Try to extract the RealityDataFormat from the url * @param tilesetUrl the reality data attachment url @@ -116,7 +116,7 @@ export namespace RealityDataSourceKey { export function isEqual(key1: RealityDataSourceKey, key2: RealityDataSourceKey): boolean { if ((key1.provider === RealityDataProvider.CesiumIonAsset) && key2.provider === RealityDataProvider.CesiumIonAsset) return true; // ignore other properties for CesiumIonAsset, id is hidden - if ((key1.provider === key2.provider) && (key1.format === key2.format) && (key1.id === key2.id) ) { + if ((key1.provider === key2.provider) && (key1.format === key2.format) && (key1.id === key2.id)) { // && (key1?.iTwinId === key2?.iTwinId)) -> ignore iTwinId, consider it is the same reality data return true; } @@ -134,6 +134,7 @@ export interface RealityDataSourceProps { /** JSON representation of a [[ContextRealityModel]]. * @public + * @extensionApi */ export interface ContextRealityModelProps { /** @see [[ContextRealityModel.rdSourceKey]]. @@ -213,7 +214,7 @@ export class ContextRealityModel { * It takes precedence over tilesetUrl and orbitGtBlob when present and can be use to actually replace these properties. * @beta */ - public readonly rdSourceKey?: RealityDataSourceKey; + public readonly rdSourceKey?: RealityDataSourceKey; /** A name suitable for display in a user interface. By default, an empty string. */ public readonly name: string; /** The URL that supplies the 3d tiles for displaying the reality model. */ @@ -295,6 +296,7 @@ export class ContextRealityModel { * @see [[ContextRealityModels]]. * @see [[DisplayStyleSettingsProps.contextRealityModels]]. * @public + * @extensionApi */ export interface ContextRealityModelsContainer { /** The list of reality models. */ diff --git a/core/common/src/DisplayStyleSettings.ts b/core/common/src/DisplayStyleSettings.ts index 965d7dc3ed9d..75c32c12ab3d 100644 --- a/core/common/src/DisplayStyleSettings.ts +++ b/core/common/src/DisplayStyleSettings.ts @@ -40,6 +40,7 @@ import { WhiteOnWhiteReversalProps, WhiteOnWhiteReversalSettings } from "./White /** Describes the [[SubCategoryOverride]]s applied to a [[SubCategory]] by a [[DisplayStyle]]. * @see [[DisplayStyleSettingsProps]] * @public + * @extensionApi */ export interface DisplayStyleSubCategoryProps extends SubCategoryAppearance.Props { /** The Id of the [[SubCategory]] whose appearance is to be overridden. */ @@ -49,6 +50,7 @@ export interface DisplayStyleSubCategoryProps extends SubCategoryAppearance.Prop /** A [[FeatureAppearanceProps]] applied to a specific model to override its appearance within the context of a [DisplayStyle]($backend). * @see [[DisplayStyleSettingsProps.modelOvr]]. * @public + * @extensionApi */ export interface DisplayStyleModelAppearanceProps extends FeatureAppearanceProps { /** The Id of the model whose appearance is to be overridden. */ @@ -58,6 +60,7 @@ export interface DisplayStyleModelAppearanceProps extends FeatureAppearanceProps /** A [[PlanarClipMaskProps]] associated with a specific reality model. * @see [[DisplayStyleSettingsProps.planarClipOvr]]. * @public + * @extensionApi */ export interface DisplayStylePlanarClipMaskProps extends PlanarClipMaskProps { /** The Id of the model to mask. */ @@ -83,6 +86,7 @@ export enum MonochromeMode { * as members of `jsonProperties.styles`. * @see [[DisplayStyleSettings]]. * @public + * @extensionApi */ export interface DisplayStyleSettingsProps { viewflags?: ViewFlagProps; @@ -140,6 +144,7 @@ export interface DisplayStyleSettingsProps { /** JSON representation of settings associated with a [[DisplayStyle3dProps]]. * @see [[DisplayStyle3dSettings]]. * @public + * @extensionApi */ export interface DisplayStyle3dSettingsProps extends DisplayStyleSettingsProps { /** Settings controlling display of skybox and ground plane. */ @@ -165,6 +170,7 @@ export interface DisplayStyle3dSettingsProps extends DisplayStyleSettingsProps { /** JSON representation of a [[DisplayStyle]] or [[DisplayStyleState]]. * @public + * @extensionApi */ export interface DisplayStyleProps extends DefinitionElementProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ @@ -175,6 +181,7 @@ export interface DisplayStyleProps extends DefinitionElementProps { /** JSON representation of a [[DisplayStyle3d]] or [[DisplayStyle3dState]]. * @public + * @extensionApi */ export interface DisplayStyle3dProps extends DisplayStyleProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ @@ -188,6 +195,7 @@ export interface DisplayStyle3dProps extends DisplayStyleProps { * when creating display style overrides intended for use with a specific iModel or iTwin, but should be omitted when creating general-purpose display style overrides intended * for use with any iModel or iTwin. This is the default behavior if no more specific options are provided. * @public + * @extensionApi */ export interface DisplayStyleOverridesOptions { /** Serialize all settings. Applying the resultant [[DisplayStyleSettingsProps]] will produce a [[DisplayStyleSettings]] identical to the original settings. */ @@ -389,6 +397,7 @@ class OverridesMap extends Map { /** Options supplied when constructing a [[DisplayStyleSettings]]. * @public + * @extensionApi */ export interface DisplayStyleSettingsOptions { /** A function that instantiates a [[ContextRealityModel]] to be stored in [[DisplayStyleSettings.contextRealityModels]]. */ diff --git a/core/common/src/ECSqlTypes.ts b/core/common/src/ECSqlTypes.ts index 784abf0fbb1d..6591236431a5 100644 --- a/core/common/src/ECSqlTypes.ts +++ b/core/common/src/ECSqlTypes.ts @@ -37,6 +37,7 @@ export enum ECSqlValueType { * It is returned from ECSQL SELECT statements for navigation properties. * See also [ECSQL]($docs/learning/ECSQL). * @public + * @extensionApi */ export interface NavigationValue { /** ECInstanceId of the related instance */ @@ -48,6 +49,7 @@ export interface NavigationValue { /** An ECSQL Navigation value which can be bound to a navigation property ECSQL parameter * See also [ECSQL]($docs/learning/ECSQL). * @public + * @extensionApi */ export interface NavigationBindingValue { /** ECInstanceId of the related instance */ diff --git a/core/common/src/ElementProps.ts b/core/common/src/ElementProps.ts index 8a2ec8fa322e..c4207fafbf61 100644 --- a/core/common/src/ElementProps.ts +++ b/core/common/src/ElementProps.ts @@ -28,6 +28,7 @@ export interface RelatedElementProps { /** Properties of an [Element]($docs/bis/intro/element-fundamentals) * @public + * @extensionApi */ export interface ElementProps extends EntityProps { /** The Id of the [Model]($docs/bis/intro/model-fundamentals.md) containing this element */ @@ -96,6 +97,7 @@ export class TypeDefinition extends RelatedElement { /** Properties of a [GeometricElement]($backend) * @public + * @extensionApi */ export interface GeometricElementProps extends ElementProps { /** The id of the category for this geometric element. */ @@ -108,6 +110,7 @@ export interface GeometricElementProps extends ElementProps { /** Properties of a [[Placement3d]] * @public + * @extensionApi */ export interface Placement3dProps { origin: XYZProps; @@ -117,6 +120,7 @@ export interface Placement3dProps { /** Properties of a [[Placement2d]] * @public + * @extensionApi */ export interface Placement2dProps { origin: XYProps; @@ -143,6 +147,7 @@ export function isPlacement3dProps(props: PlacementProps): props is Placement3dP /** Properties that define a [GeometricElement3d]($backend) * @public + * @extensionApi */ export interface GeometricElement3dProps extends GeometricElementProps { placement?: Placement3dProps; @@ -151,6 +156,7 @@ export interface GeometricElement3dProps extends GeometricElementProps { /** Properties that define a [PhysicalElement]($backend) * @public + * @extensionApi */ export interface PhysicalElementProps extends GeometricElement3dProps { physicalMaterial?: RelatedElementProps; @@ -200,6 +206,7 @@ export interface SectionDrawingLocationProps extends GeometricElement3dProps { /** Properties that define a [GeometricElement2d]($backend) * @public + * @extensionApi */ export interface GeometricElement2dProps extends GeometricElementProps { placement?: Placement2dProps; @@ -208,6 +215,7 @@ export interface GeometricElement2dProps extends GeometricElementProps { /** Properties of a [GeometryPart]($backend) * @public + * @extensionApi */ export interface GeometryPartProps extends ElementProps { geom?: GeometryStreamProps; @@ -273,6 +281,7 @@ export interface SheetProps extends ElementProps { /** Properties of a [DefinitionElement]($backend) * @public + * @extensionApi */ export interface DefinitionElementProps extends ElementProps { isPrivate?: boolean; @@ -287,6 +296,7 @@ export interface TypeDefinitionElementProps extends DefinitionElementProps { /** Properties of a [PhysicalType]($backend) * @public + * @extensionApi */ export interface PhysicalTypeProps extends TypeDefinitionElementProps { /** The [PhysicalMaterial]($backend) that makes up this physical type. */ @@ -295,6 +305,7 @@ export interface PhysicalTypeProps extends TypeDefinitionElementProps { /** Properties of a [InformationPartitionElement]($backend) * @public + * @extensionApi */ export interface InformationPartitionElementProps extends ElementProps { description?: string; @@ -303,6 +314,7 @@ export interface InformationPartitionElementProps extends ElementProps { /** Options controlling which properties are included or excluded when querying [[DisplayStyleProps]]. * @see [[ViewStateLoadProps]] and [[ElementLoadOptions]]. * @public + * @extensionApi */ export interface DisplayStyleLoadProps { /** If true, the lists of element Ids in the display style's schedule script will be empty. @@ -329,6 +341,7 @@ export interface RenderTimelineLoadProps { /** Options used to specify properties to include or exclude when querying [[ElementProps]] with functions like * [IModelDb.Elements.getElementProps]($backend) and [IModelConnection.Elements.loadProps]($frontend). * @public + * @extensionApi */ export interface ElementLoadOptions { /** If true, include the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]]. @@ -348,6 +361,7 @@ export interface ElementLoadOptions { /** Parameters to specify what element to load for functions like [IModelDb.Elements.getElementProps]($backend). * @public + * @extensionApi */ export interface ElementLoadProps extends ElementLoadOptions { id?: Id64String; @@ -357,6 +371,7 @@ export interface ElementLoadProps extends ElementLoadOptions { /** Properties of an [ElementAspect]($backend) * @public + * @extensionApi */ export interface ElementAspectProps extends EntityProps { element: RelatedElementProps; @@ -364,6 +379,7 @@ export interface ElementAspectProps extends EntityProps { /** Properties of an [ExternalSourceAspect]($backend) that stores synchronization information for an element originating from an external source. * @public + * @extensionApi */ export interface ExternalSourceAspectProps extends ElementAspectProps { /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source. */ @@ -419,6 +435,7 @@ export interface ExternalSourceAttachmentProps extends ElementProps { /** Properties of an [ChannelRootAspect]($backend) that identifies an Element as the root of a *channel* which is a subset of the overall iModel hierarchy that is independently maintained. * @public + * @extensionApi */ export interface ChannelRootAspectProps extends ElementAspectProps { /** The owner of the channel */ @@ -427,6 +444,7 @@ export interface ChannelRootAspectProps extends ElementAspectProps { /** Properties of a [LineStyle]($backend) * @public + * @extensionApi */ export interface LineStyleProps extends DefinitionElementProps { description?: string; @@ -458,6 +476,7 @@ export enum Rank { /** Parameters of a [Category]($backend) * @public + * @extensionApi */ export interface CategoryProps extends DefinitionElementProps { rank?: Rank; diff --git a/core/common/src/EmphasizeElementsProps.ts b/core/common/src/EmphasizeElementsProps.ts index f4cc57119f95..43a41500bfca 100644 --- a/core/common/src/EmphasizeElementsProps.ts +++ b/core/common/src/EmphasizeElementsProps.ts @@ -28,6 +28,7 @@ export enum FeatureOverrideType { /** JSON representation of an appearance override in an [[EmphasizeElementsProps]]. * @see [EmphasizeElements]($frontend). * @public + * @extensionApi */ export interface AppearanceOverrideProps { /** Whether to override color, transparency, or both. */ @@ -40,6 +41,7 @@ export interface AppearanceOverrideProps { /** JSON representation of an [EmphasizeElements]($frontend). * @public + * @extensionApi */ export interface EmphasizeElementsProps { /** @see [EmphasizeElements.getNeverDrawnElements]($frontend) */ diff --git a/core/common/src/EntityProps.ts b/core/common/src/EntityProps.ts index 2b2cc1a52779..16f0a8e1df90 100644 --- a/core/common/src/EntityProps.ts +++ b/core/common/src/EntityProps.ts @@ -12,6 +12,7 @@ import { RelatedElement } from "./ElementProps"; /** The properties of an [Entity]($backend) as they are read/stored from/to the iModel. * @public + * @extensionApi */ export interface EntityProps { /** The full name of the [ECClass]($docs/bis/intro/glossary/#ecclass) for this entity, in the form "Schema:ClassName" */ @@ -38,6 +39,7 @@ export interface RelationshipProps extends EntityProps, SourceAndTarget { /** Parameters for performing a query on [Entity]($backend) classes. * @public + * @extensionApi */ export interface EntityQueryParams { /** The sql className, in the form "Schema.ClassName", of the class to search. */ diff --git a/core/common/src/Environment.ts b/core/common/src/Environment.ts index 6782fc01f534..f5730e3ce5fa 100644 --- a/core/common/src/Environment.ts +++ b/core/common/src/Environment.ts @@ -13,6 +13,7 @@ import { SkyBox, SkyBoxProps } from "./SkyBox"; /** JSON representation of an [[Environment]]. * @see [[DisplayStyle3dSettingsProps.environment]]. * @public + * @extensionApi */ export interface EnvironmentProps { /** @see [[Environment.ground]] and [[Environment.displayGround]]. */ diff --git a/core/common/src/FeatureSymbology.ts b/core/common/src/FeatureSymbology.ts index b60f9e951af3..3518ca8d5cd9 100644 --- a/core/common/src/FeatureSymbology.ts +++ b/core/common/src/FeatureSymbology.ts @@ -28,6 +28,7 @@ function copyIdSetToUint32Set(dst: Id64.Uint32Set, src: Iterable): void /** JSON representation of a [[FeatureAppearance]]. * @public + * @extensionApi */ export interface FeatureAppearanceProps { /** @see [[FeatureAppearance.rgb]]. */ @@ -280,6 +281,7 @@ export class FeatureAppearance { * @see [[FeatureOverrides]] for the commonly-used implementation. * @see [[FeatureAppearanceProvider]] to supplement the appearance supplied by this interface. * @public + * @extensionApi */ export interface FeatureAppearanceSource { /** Supplies the desired appearance overrides for the specified [[Feature]], or `undefined` if the feature should not be drawn. @@ -747,6 +749,7 @@ export class FeatureOverrides implements FeatureAppearanceSource { * A typical implementation will invoke [[FeatureAppearanceSource.getAppeaprance]] and customize the returned appearance. * @see [[FeatureAppearanceProvider.chain]] to chain two providers together. * @public + * @extensionApi */ export interface FeatureAppearanceProvider { /** Supply the desired appearance overrides for the specified [[Feature]], or `undefined` if the feature should not be drawn. diff --git a/core/common/src/Fonts.ts b/core/common/src/Fonts.ts index 242e57c601e4..090595b6492f 100644 --- a/core/common/src/Fonts.ts +++ b/core/common/src/Fonts.ts @@ -14,11 +14,13 @@ export enum FontType { TrueType = 1, Rsc = 2, Shx = 3 } /** The properties of a Font. This includes a iModel local id, the font type, and the font name. * @public + * @extensionApi */ export interface FontProps { id: number, type: FontType, name: string } /** The properties of a FontMap * @public + * @extensionApi */ export interface FontMapProps { fonts: FontProps[] } diff --git a/core/common/src/GeometryContainment.ts b/core/common/src/GeometryContainment.ts index 27420ef777f9..b7f7e234ee7d 100644 --- a/core/common/src/GeometryContainment.ts +++ b/core/common/src/GeometryContainment.ts @@ -12,6 +12,7 @@ import { ClipPlaneContainment, ClipVectorProps } from "@itwin/core-geometry"; /** Information required to request clip containment status for elements from the front end to the back end. * @public + * @extensionApi */ export interface GeometryContainmentRequestProps { candidates: Id64Array; @@ -23,6 +24,7 @@ export interface GeometryContainmentRequestProps { /** Information returned from the back end to the front end holding the result of the geometry containment query. * @public + * @extensionApi */ export interface GeometryContainmentResponseProps { status: BentleyStatus; diff --git a/core/common/src/GeometrySummary.ts b/core/common/src/GeometrySummary.ts index b2cf7ec651a3..7af739155a6d 100644 --- a/core/common/src/GeometrySummary.ts +++ b/core/common/src/GeometrySummary.ts @@ -23,6 +23,7 @@ export enum GeometrySummaryVerbosity { /** Describes what information to include in a [[GeometrySummaryRequestProps]]. * @public + * @extensionApi */ export interface GeometrySummaryOptions { /** If true, include detailed description of each symbology change (e.g., output material Id, line/fill color, etc). */ @@ -40,6 +41,7 @@ export interface GeometrySummaryOptions { /** Describes the elements for which to generate an array of geometry summaries and the options controlling the contents of each summary. * @see [IModelConnection.getGeometrySummary]($frontend). * @public + * @extensionApi */ export interface GeometrySummaryRequestProps { /** The Ids of the elements whose geometry is to be summarized. This can include the Ids of [GeometricElement]($backend)s and [GeometryPart]($backend)s. diff --git a/core/common/src/GroundPlane.ts b/core/common/src/GroundPlane.ts index 39da8cda25ca..8fb838ace18c 100644 --- a/core/common/src/GroundPlane.ts +++ b/core/common/src/GroundPlane.ts @@ -13,6 +13,7 @@ import { ColorDef, ColorDefProps } from "./ColorDef"; /** JSON representation of a [[GroundPlane]]. * @see [[EnvironmentProps.ground]]. * @public + * @extensionApi */ export interface GroundPlaneProps { /** Whether the ground plane should be displayed. Defaults to false. */ @@ -53,7 +54,7 @@ export class GroundPlane { } /** Default settings with a dark green "above" color, dark brown "below" color, and elevation of -0.01 meters. */ - public static readonly defaults = new GroundPlane({ }); + public static readonly defaults = new GroundPlane({}); /** Create a new GroundPlane. Any properties not specified by `props` will be initialized to their default values. */ public static create(props?: Partial) { diff --git a/core/common/src/IModel.ts b/core/common/src/IModel.ts index 944b55e8fd60..22e74c19ec67 100644 --- a/core/common/src/IModel.ts +++ b/core/common/src/IModel.ts @@ -55,6 +55,7 @@ export interface IModelRpcProps extends IModelRpcOpenProps { * possibly offset in altitude by the terrain elevation above the ellipsoid but other general 3D coordinate systems * can be defined. * @public + * @extensionApi */ export interface EcefLocationProps { /** The Origin of an iModel on the earth in ECEF coordinates */ @@ -192,7 +193,10 @@ export interface CreateStandaloneIModelProps extends IModelEncryptionProps { */ export type CreateEmptyStandaloneIModelProps = CreateIModelProps & CreateStandaloneIModelProps; -/** @public */ +/** + * @public + * @extensionApi + */ export interface FilePropertyProps { readonly namespace: string; readonly name: string; diff --git a/core/common/src/IpcAppProps.ts b/core/common/src/IpcAppProps.ts index a5959b91c7af..10064970c2a3 100644 --- a/core/common/src/IpcAppProps.ts +++ b/core/common/src/IpcAppProps.ts @@ -26,6 +26,7 @@ export interface TileTreeContentIds { /** Specifies a [GeometricModel]($backend)'s Id and a Guid identifying the current state of the geometry contained within the model. * @see [TxnManager.onModelGeometryChanged]($backend) and [BriefcaseTxns.onModelGeometryChanged]($frontend). * @public + * @extensionApi */ export interface ModelIdAndGeometryGuid { /** The model's Id. */ diff --git a/core/common/src/LightSettings.ts b/core/common/src/LightSettings.ts index 00a6d86bb896..c5f0c0e04792 100644 --- a/core/common/src/LightSettings.ts +++ b/core/common/src/LightSettings.ts @@ -137,6 +137,7 @@ export class SolarLight { /** Wire format for the ambient light associated with a [[LightSettingsProps]]. * Ambient light applies equally to all surfaces in the scene. * @public + * @extensionApi */ export interface AmbientLightProps { /** The color of the light. Black is treated as a special case, indicating that the surface's own diffuse color should be used. */ @@ -200,6 +201,7 @@ export class AmbientLight { * They are often used to simulate outdoor reflection of light from the ground and sky, so the colors often match the ground and sky colors * of the [[SkyBox]]. * @public + * @extensionApi */ export interface HemisphereLightsProps { /** The color of the downward-facing light. Default: (143, 205, 255). */ @@ -275,6 +277,7 @@ export class HemisphereLights { /** JSON representation of a [[FresnelSettings]]. * @public + * @extensionApi */ export interface FresnelSettingsProps { /** @see [[FresnelSettings.intensity]]. @@ -336,7 +339,7 @@ export class FresnelSettings { /** Create a new FresnelSettings. * @note Intensity values less than zero will be set to zero. */ - public static create(intensity=0, invert=false): FresnelSettings { + public static create(intensity = 0, invert = false): FresnelSettings { return this.fromJSON({ intensity, invert }); } @@ -347,7 +350,7 @@ export class FresnelSettings { if (0 === this.intensity && !this.invert) return undefined; - const props: FresnelSettingsProps = { }; + const props: FresnelSettingsProps = {}; if (0 !== this.intensity) props.intensity = this.intensity; @@ -385,6 +388,7 @@ export class FresnelSettings { * Light intensities are typically expressed in [0..1] but can be as large as 5. * @see [[DisplayStyle3dSettingsProps]] * @public + * @extensionApi */ export interface LightSettingsProps { /** A white portrait light affixed to the camera and pointing directly forward into the scene. */ diff --git a/core/common/src/Localization.ts b/core/common/src/Localization.ts index 58e9a970cd93..b84e8ca45a42 100644 --- a/core/common/src/Localization.ts +++ b/core/common/src/Localization.ts @@ -36,6 +36,7 @@ interface LocalizationOptions { /** The interface defining the localization requirements of [IModelApp]($frontend). * @public + * @extensionApi */ export interface Localization { /** This method must be called and awaited before using an instance of Localization. diff --git a/core/common/src/MassProperties.ts b/core/common/src/MassProperties.ts index 27fd9fd8e4d6..57c914377985 100644 --- a/core/common/src/MassProperties.ts +++ b/core/common/src/MassProperties.ts @@ -24,6 +24,7 @@ export enum MassPropertiesOperation { /** Information required to request mass properties for elements from the front end to the back end. * @public + * @extensionApi */ export interface MassPropertiesRequestProps { operation: MassPropertiesOperation; @@ -32,6 +33,7 @@ export interface MassPropertiesRequestProps { /** Information returned from the back end to the front end holding the result of the mass properties calculation. * @public + * @extensionApi */ export interface MassPropertiesResponseProps { status: BentleyStatus; diff --git a/core/common/src/ModelClipGroup.ts b/core/common/src/ModelClipGroup.ts index ee9c383f6211..2359bb44bce7 100644 --- a/core/common/src/ModelClipGroup.ts +++ b/core/common/src/ModelClipGroup.ts @@ -11,6 +11,7 @@ import { ClipVector, ClipVectorProps } from "@itwin/core-geometry"; /** JSON representation of a [[ModelClipGroup]]. * @public + * @extensionApi */ export interface ModelClipGroupProps { /** The Ids of the models in the group. */ diff --git a/core/common/src/ModelGeometryChanges.ts b/core/common/src/ModelGeometryChanges.ts index 5d4c0d13e0dc..76c616cbf897 100644 --- a/core/common/src/ModelGeometryChanges.ts +++ b/core/common/src/ModelGeometryChanges.ts @@ -15,6 +15,7 @@ import { Range3d, Range3dProps } from "@itwin/core-geometry"; * @see [[ElementGeometryChange]] for a more useful representation of an individual element change. * @see [[ModelGeometryChanges.iterable]] to iterate over [[ElementGeometryChange]]s. * @public + * @extensionApi */ export interface ElementIdsAndRangesProps { /** The Ids of the elements, compressed and sorted in ascending order. */ @@ -27,6 +28,7 @@ export interface ElementIdsAndRangesProps { * A given element Id will appear in no more than one of [[inserted]], [[updated]], or [[deleted]]. * @see [[ModelGeometryChanges]] for a more useful representation. * @public + * @extensionApi */ export interface ModelGeometryChangesProps { /** The Id of the model. */ @@ -46,6 +48,7 @@ export interface ModelGeometryChangesProps { /** Represents the insertion of a new [GeometricElement]($backend), or a change to the geometric properties of an existing [GeometricElement]($backend). * @see [[ElementGeometryChange]]. * @public + * @extensionApi */ export interface ExtantElementGeometryChange { /** Indicates whether this change resulted from the insertion of a new element or modification of an existing one. @@ -61,6 +64,7 @@ export interface ExtantElementGeometryChange { /** Represents the deletion of a [GeometricElement]($backend). * @see [[ElementGeometryChange]]. * @public + * @extensionApi */ export interface DeletedElementGeometryChange { /** Discriminant for [[ElementGeometryChange]] union. */ @@ -112,6 +116,7 @@ export namespace ElementGeometryChange { // eslint-disable-line @typescript-esli /** Represents geometric changes to a set of [GeometricElement]($backend)s belonging to a single [GeometricModel]($backend). * @public + * @extensionApi */ export interface ModelGeometryChanges { /** The model's Id. */ diff --git a/core/common/src/ModelProps.ts b/core/common/src/ModelProps.ts index 50574a628e94..b0d1173e135a 100644 --- a/core/common/src/ModelProps.ts +++ b/core/common/src/ModelProps.ts @@ -14,6 +14,7 @@ import { EntityProps, EntityQueryParams } from "./EntityProps"; /** Properties that define a [Model]($docs/bis/intro/model-fundamentals) * @public + * @extensionApi */ export interface ModelProps extends EntityProps { modeledElement: RelatedElementProps; @@ -26,6 +27,7 @@ export interface ModelProps extends EntityProps { /** Properties that specify what model should be loaded. * @public + * @extensionApi */ export interface ModelLoadProps { id?: Id64String; @@ -34,6 +36,7 @@ export interface ModelLoadProps { /** Parameters for performing a query on [Model]($backend) classes. * @public + * @extensionApi */ export interface ModelQueryParams extends EntityQueryParams { wantTemplate?: boolean; @@ -42,6 +45,7 @@ export interface ModelQueryParams extends EntityQueryParams { /** Properties that describe a [GeometricModel]($backend) * @public + * @extensionApi */ export interface GeometricModelProps extends ModelProps { /** A unique identifier that is updated each time a change affecting the appearance of a geometric element within this model @@ -54,6 +58,7 @@ export interface GeometricModelProps extends ModelProps { /** Properties that define a [GeometricModel2d]($backend) * @public + * @extensionApi */ export interface GeometricModel2dProps extends GeometricModelProps { /** The actual coordinates of (0,0) in modeling coordinates. An offset applied to all modeling coordinates. */ @@ -62,6 +67,7 @@ export interface GeometricModel2dProps extends GeometricModelProps { /** Properties that define a [GeometricModel3d]($backend) * @public + * @extensionApi */ export interface GeometricModel3dProps extends GeometricModelProps { /** If true, then the elements in this GeometricModel3d are not in real-world coordinates and will not be in the spatial index. */ diff --git a/core/common/src/PlanProjectionSettings.ts b/core/common/src/PlanProjectionSettings.ts index 5c9c35ef468d..846291e3898c 100644 --- a/core/common/src/PlanProjectionSettings.ts +++ b/core/common/src/PlanProjectionSettings.ts @@ -8,6 +8,7 @@ /** Wire format describing [[PlanProjectionSettings]]. * @public + * @extensionApi */ export interface PlanProjectionSettingsProps { /** If defined, the absolute height in meters at which to display the model. */ diff --git a/core/common/src/PlanarClipMask.ts b/core/common/src/PlanarClipMask.ts index 05d56aa623f1..0781e2d5e7e2 100644 --- a/core/common/src/PlanarClipMask.ts +++ b/core/common/src/PlanarClipMask.ts @@ -49,6 +49,7 @@ export enum PlanarClipMaskPriority { /** JSON representation of a [[PlanarClipMaskSettings]]. * @see [[DisplayStyleSettingsProps.planarClipOvr]] and [[ContextRealityModelProps.planarClipMask]]. * @public + * @extensionApi */ export interface PlanarClipMaskProps { /** Controls how the mask geometry is collected */ diff --git a/core/common/src/ViewProps.ts b/core/common/src/ViewProps.ts index 29c434f9e8d1..41b6c40b65a9 100644 --- a/core/common/src/ViewProps.ts +++ b/core/common/src/ViewProps.ts @@ -55,6 +55,7 @@ export interface ViewStateLoadProps { /** Properties that define a ModelSelector * @public + * @extensionApi */ export interface ModelSelectorProps extends DefinitionElementProps { models: Id64Array; @@ -62,6 +63,7 @@ export interface ModelSelectorProps extends DefinitionElementProps { /** Properties that define a CategorySelector * @public + * @extensionApi */ export interface CategorySelectorProps extends DefinitionElementProps { categories: Id64Array; @@ -124,7 +126,10 @@ export interface ViewDefinition2dProps extends ViewDefinitionProps { angle: AngleProps; } -/** @public */ +/** + * @public + * @extensionApi + */ export interface AuxCoordSystemProps extends ElementProps { type?: number; description?: string; @@ -132,6 +137,7 @@ export interface AuxCoordSystemProps extends ElementProps { /** Properties of AuxCoordSystem2d * @public + * @extensionApi */ export interface AuxCoordSystem2dProps extends AuxCoordSystemProps { /** Origin of the AuxCoordSystem2d */ @@ -142,6 +148,7 @@ export interface AuxCoordSystem2dProps extends AuxCoordSystemProps { /** Properties of AuxCoordSystem3d * @public + * @extensionApi */ export interface AuxCoordSystem3dProps extends AuxCoordSystemProps { /** Origin of the AuxCoordSystem3d */ diff --git a/core/common/src/domains/FunctionalElementProps.ts b/core/common/src/domains/FunctionalElementProps.ts index e3ad56d4b179..7ed6a7398be6 100644 --- a/core/common/src/domains/FunctionalElementProps.ts +++ b/core/common/src/domains/FunctionalElementProps.ts @@ -8,7 +8,10 @@ import { ElementProps, RelatedElementProps } from "../ElementProps"; -/** @public */ +/** + * @public + * @extensionApi + */ export interface FunctionalElementProps extends ElementProps { typeDefinition?: RelatedElementProps; } diff --git a/core/common/src/domains/GenericElementProps.ts b/core/common/src/domains/GenericElementProps.ts index 66e590df478f..e9cbfb910557 100644 --- a/core/common/src/domains/GenericElementProps.ts +++ b/core/common/src/domains/GenericElementProps.ts @@ -13,7 +13,10 @@ export interface ViewAttachmentLabelProps extends GeometricElement2dProps { viewAttachment?: RelatedElementProps; } -/** @public */ +/** + * @public + * @extensionApi + */ export interface CalloutProps extends GeometricElement2dProps { drawingModel?: RelatedElementProps; } diff --git a/core/common/src/geometry/AdditionalTransform.ts b/core/common/src/geometry/AdditionalTransform.ts index 9e2f9eb96cc1..12ddc39f7b1f 100644 --- a/core/common/src/geometry/AdditionalTransform.ts +++ b/core/common/src/geometry/AdditionalTransform.ts @@ -16,6 +16,7 @@ import { Geometry } from "@itwin/core-geometry"; * Y = b * x + a * y + translationY * Z = z + translationZ * @public + * @extensionApi */ export interface Helmert2DWithZOffsetProps { /** The X post translation */ @@ -87,6 +88,7 @@ export class Helmert2DWithZOffset implements Helmert2DWithZOffsetProps { /** Additional Transform definition * @public + * @extensionApi */ export interface AdditionalTransformProps { /** The properties of a 2D Helmert transform with Z offset if one is defined. */ diff --git a/core/common/src/geometry/Cartographic.ts b/core/common/src/geometry/Cartographic.ts index 8eae78fd97d8..a029b95081cd 100644 --- a/core/common/src/geometry/Cartographic.ts +++ b/core/common/src/geometry/Cartographic.ts @@ -13,6 +13,7 @@ import { assert } from "@itwin/core-bentley"; /** The JSON representation of a Cartographic object. * @public + * @extensionApi **/ export interface CartographicProps { /** The longitude, specified in radians. */ diff --git a/core/common/src/geometry/CoordinateReferenceSystem.ts b/core/common/src/geometry/CoordinateReferenceSystem.ts index 17c0b958f7f8..3f41144e4549 100644 --- a/core/common/src/geometry/CoordinateReferenceSystem.ts +++ b/core/common/src/geometry/CoordinateReferenceSystem.ts @@ -18,6 +18,7 @@ export type UnitType = "Meter" | "InternationalFoot" | "USSurveyFoot" | "Degree" /** The extent in latitude, longitude bounds where a horizontal CRS is applicable * @public + * @extensionApi */ export interface HorizontalCRSExtentProps { /** The South West point in latitude and longitude in degrees for the user-defined extent of the CRS */ @@ -76,6 +77,7 @@ export class HorizontalCRSExtent implements HorizontalCRSExtentProps { /** Horizontal Geographic Coordinate Reference System definition * @public + * @extensionApi */ export interface HorizontalCRSProps { /** The identifier of the horizontal CRS as stored in the dictionary or the service database */ @@ -339,6 +341,7 @@ export class VerticalCRS implements VerticalCRSProps { * additional transformation. * @see [[GeographicCRS]]. * @public + * @extensionApi */ export interface GeographicCRSProps { /** The horizontal portion of the geographic coordinate reference system. */ diff --git a/core/common/src/geometry/ElementGeometry.ts b/core/common/src/geometry/ElementGeometry.ts index f3344edca812..af69b1ac58e3 100644 --- a/core/common/src/geometry/ElementGeometry.ts +++ b/core/common/src/geometry/ElementGeometry.ts @@ -73,6 +73,7 @@ export enum ElementGeometryOpcode { /** Describes an entry in a geometry stream as an op-code plus the binary flatbuffer representation of the associated data. * @see [[FlatBufferGeometryStream]]. * @public + * @extensionApi */ export interface ElementGeometryDataEntry { /** The type of this entry. */ diff --git a/core/common/src/geometry/GeodeticDatum.ts b/core/common/src/geometry/GeodeticDatum.ts index 80748ee67f69..d78971951207 100644 --- a/core/common/src/geometry/GeodeticDatum.ts +++ b/core/common/src/geometry/GeodeticDatum.ts @@ -75,6 +75,7 @@ export type GeodeticTransformMethod = /** This interface represents a geocentric (three parameters) geodetic transformation. * @public + * @extensionApi */ export interface GeocentricTransformProps { /** The frame translation components in meters */ @@ -117,6 +118,7 @@ export class GeocentricTransform implements GeocentricTransformProps { * EPSG operation 9606. Beware that the convention relative to rotation direction is different * from the Coordinate Frame operation (epsg 9607). * @public + * @extensionApi */ export interface PositionalVectorTransformProps { /** The frame translation components in meters */ @@ -199,6 +201,7 @@ export type GridFileDirection = "Direct" | "Inverse"; /** Grid file definition containing name of the file, the format and the direction it should be applied * @public + * @extensionApi */ export interface GridFileDefinitionProps { /** Name of the grid shift file. This name is relative to the expected dictionary root document. @@ -263,6 +266,7 @@ export class GridFileDefinition implements GridFileDefinitionProps { /** This interface represents a grid files based geodetic transformation. * @public + * @extensionApi */ export interface GridFileTransformProps { /** The list of grid files. The order of file is meaningful, the first encountered that covers the extent of coordinate @@ -335,6 +339,7 @@ export class GridFileTransform implements GridFileTransformProps { /** This interface represents a geodetic transformation that enables transforming longitude/latitude coordinates * from one datum to another. * @public + * @extensionApi */ export interface GeodeticTransformProps { /** The method used by the geodetic transform */ @@ -452,6 +457,7 @@ export class GeodeticTransform implements GeodeticTransformProps { * Sometimes there exists transformation paths direct from one non-WGS84 datum to another non-WGS84. The current model * does not allow specifications of these special paths at the moment. * @public + * @extensionApi */ export interface GeodeticDatumProps { /** GeodeticDatum key name */ diff --git a/core/common/src/geometry/GeodeticEllipsoid.ts b/core/common/src/geometry/GeodeticEllipsoid.ts index 8565d33d34a6..21add849538f 100644 --- a/core/common/src/geometry/GeodeticEllipsoid.ts +++ b/core/common/src/geometry/GeodeticEllipsoid.ts @@ -14,6 +14,7 @@ import { Geometry } from "@itwin/core-geometry"; * the simple equations that are defined at: * https://en.wikipedia.org/wiki/Flattening and https://en.wikipedia.org/wiki/Earth_ellipsoid. * @public + * @extensionApi */ export interface GeodeticEllipsoidProps { /** Ellipsoid key name */ diff --git a/core/common/src/geometry/GeometryStream.ts b/core/common/src/geometry/GeometryStream.ts index 959f998dee49..25bd090b3718 100644 --- a/core/common/src/geometry/GeometryStream.ts +++ b/core/common/src/geometry/GeometryStream.ts @@ -27,6 +27,7 @@ import { Placement2d, Placement3d } from "./Placement"; * A GeometryAppearanceProps always signifies a reset to the [[SubCategoryAppearance]] for subsequent [[GeometryStreamProps]] entries for undefined values. * @see [[GeometryStreamEntryProps]] * @public + * @extensionApi */ export interface GeometryAppearanceProps { /** Optional [[SubCategory]] id for subsequent geometry. Use to create a GeometryStream with geometry that is not on the default [[SubCategory]] for the element's [[Category]] or is has geometry on multiple subCategories. */ @@ -49,6 +50,7 @@ export interface GeometryAppearanceProps { * Only one value among [[gradient]], [[backgroundFill]], and [[color]] should be set. * @see [[GeometryStreamEntryProps]] * @public + * @extensionApi */ export interface AreaFillProps { /** Fill display type, must be set to something other than [[FillDisplay.Never]] to display fill */ @@ -66,6 +68,7 @@ export interface AreaFillProps { /** Override [[SubCategoryAppearance.materialId]] for subsequent surface and solid geometry. * @see [[GeometryStreamEntryProps]] * @public + * @extensionApi */ export interface MaterialProps { /** Material id to use, specify an invalid [[Id64]] to override [[SubCategoryAppearance.materialId]] with no material. */ @@ -120,6 +123,7 @@ export namespace BRepEntity { /** Add a reference to a [[GeometryPart]] from the GeometryStream of a [[GeometricElement]]. * @see [[GeometryStreamEntryProps]] * @public + * @extensionApi */ export interface GeometryPartInstanceProps { /** GeometryPart id */ @@ -149,6 +153,7 @@ export enum GeometryStreamFlags { /** An entry in a [[GeometryStreamProps]] containing [[GeometryStreamFlags]] that apply to the geometry stream as a whole. * If this entry exists in the [[GeometryStreamProps]] array, it will always be the *first* entry. * @public + * @extensionApi */ export interface GeometryStreamHeaderProps { /** The flags applied to the geometry stream. */ @@ -158,6 +163,7 @@ export interface GeometryStreamHeaderProps { /** Allowed GeometryStream entries - should only set one value. * @see [GeometryStream]($docs/learning/common/geometrystream.md) * @public + * @extensionApi */ export interface GeometryStreamEntryProps extends GeomJson.GeometryProps { header?: GeometryStreamHeaderProps; @@ -421,6 +427,7 @@ export interface TextStringPrimitive { /** Represents an image within a GeometryStream. * @public + * @extensionApi */ export interface ImagePrimitive { type: "image"; @@ -429,6 +436,7 @@ export interface ImagePrimitive { /** Represents a reference to a GeometryPart within a GeometryStream. * @public + * @extensionApi */ export interface PartReference { type: "partReference"; @@ -440,6 +448,7 @@ export interface PartReference { /** Represents a BRep within a GeometryStream. * @public + * @extensionApi */ export interface BRepPrimitive { type: "brep"; @@ -449,6 +458,7 @@ export interface BRepPrimitive { /** Represents one of a variety of GeometryQuery objects within a GeometryStream. * @public + * @extensionApi */ export interface GeometryPrimitive { type: "geometryQuery"; @@ -462,6 +472,7 @@ export type GeometryStreamPrimitive = TextStringPrimitive | PartReference | BRep /** Holds current state information for [[GeometryStreamIterator]]. Each entry represents exactly one geometry primitive in the stream. * @public + * @extensionApi */ export interface GeometryStreamIteratorEntry { /** A [[GeometryParams]] representing the appearance of the current geometric entry */ diff --git a/core/common/src/geometry/ImageGraphic.ts b/core/common/src/geometry/ImageGraphic.ts index e814bc30cbcb..1ae80120abca 100644 --- a/core/common/src/geometry/ImageGraphic.ts +++ b/core/common/src/geometry/ImageGraphic.ts @@ -17,6 +17,7 @@ export type ImageGraphicCornersProps = [XYZProps, XYZProps, XYZProps, XYZProps]; /** JSON representation of an [[ImageGraphic]]. * @see [[GeometryStreamEntryProps]]. * @public + * @extensionApi */ export interface ImageGraphicProps { /** The 4 corners of defining the quadrilateral on which the image is displayed. */ diff --git a/core/common/src/geometry/Projection.ts b/core/common/src/geometry/Projection.ts index 89a7bfa34116..ae790904a54f 100644 --- a/core/common/src/geometry/Projection.ts +++ b/core/common/src/geometry/Projection.ts @@ -72,6 +72,7 @@ export type ProjectionMethod = * Y1 = b1*X + b2*Y + translationY * An affine representing no transformation will have: a1 = 1.0, a2 = 0.0, b1 = 0.0, b2 = 1.0. * @public + * @extensionApi */ export interface AffineTransformProps { /** The X post translation */ @@ -157,6 +158,7 @@ export type DanishSystem34Region = "Jylland" | "Sjaelland" | "Bornholm"; /** This class encapsulates the projection of the CRS. The projection relies on a projection method * and a set of projection parameters specific to projection method selected. * @public + * @extensionApi */ export interface ProjectionProps { /** The projection method. */ @@ -398,6 +400,7 @@ export class Projection implements ProjectionProps { /** A 2D cartographic point in degrees * @public + * @extensionApi */ export interface Carto2DDegreesProps { /** Latitude value in degrees */ diff --git a/core/common/src/tile/ElementGraphics.ts b/core/common/src/tile/ElementGraphics.ts index bf9ce6b6f8ae..f5e8cfaf2636 100644 --- a/core/common/src/tile/ElementGraphics.ts +++ b/core/common/src/tile/ElementGraphics.ts @@ -16,6 +16,7 @@ import { ContentFlags, TreeFlags } from "../tile/TileMetadata"; /** Wire format describing properties common to [[PersistentGraphicsRequestProps]] and [[DynamicGraphicsRequestProps]]. * @see [[ElementGraphicsRequestProps]] for more details. * @public + * @extensionApi */ export interface GraphicsRequestProps { /** Uniquely identifies this request among all [[ElementGraphicsRequestProps]] for a given [[IModel]]. */ @@ -47,6 +48,7 @@ export interface GraphicsRequestProps { /** Wire format describing a request to produce graphics in "iMdl" format for a single element. * @see [[ElementGraphicsRequestProps]] for more details. * @public + * @extensionApi */ export interface PersistentGraphicsRequestProps extends GraphicsRequestProps { /** The element whose geometry is to be used to generate the graphics. */ @@ -55,6 +57,7 @@ export interface PersistentGraphicsRequestProps extends GraphicsRequestProps { /** As part of a [[DynamicGraphicsRequestProps]], specifies the geometry from which to generate the graphics in JSON format. * @public + * @extensionApi */ export interface JsonGeometryStream { /** Discriminator for [[DynamicGraphicsRequestProps.geometry]]. */ @@ -65,6 +68,7 @@ export interface JsonGeometryStream { /** As part of a [[DynamicGraphicsRequestProps]], specifies the geometry from which to generate the graphics in binary flatbuffer-encoded format. * @public + * @extensionApi */ export interface FlatBufferGeometryStream { /** Discriminator for [[DynamicGraphicsRequestProps.geometry]]. */ @@ -77,6 +81,7 @@ export interface FlatBufferGeometryStream { * @see [[DynamicGraphicsRequest2dProps]] and [[DynamicGraphicsRequest3dProps]]. * @see [[ElementGraphicsRequestProps]] for more details. * @public + * @extensionApi */ export interface DynamicGraphicsRequestProps extends GraphicsRequestProps { /** The geometry from which to generate the graphics. */ @@ -97,6 +102,7 @@ export interface DynamicGraphicsRequestProps extends GraphicsRequestProps { /** Wire format describing a request to produce graphics in "iMdl" format for a 2d geometry stream. * @see [[ElementGraphicsRequestProps]] for more details. * @public + * @extensionApi */ export interface DynamicGraphicsRequest2dProps extends DynamicGraphicsRequestProps { /** Specifies the geometry is 2d. */ @@ -108,6 +114,7 @@ export interface DynamicGraphicsRequest2dProps extends DynamicGraphicsRequestPro /** Wire format describing a request to produce graphics in "iMdl" format for a 3d geometry stream. * @see [[ElementGraphicsRequestProps]] for more details. * @public + * @extensionApi */ export interface DynamicGraphicsRequest3dProps extends DynamicGraphicsRequestProps { /** Specifies the geometry is 3d. */ From b93f1185758e9cccf6e482f6619ef2e7eea60797 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 16:56:51 -0600 Subject: [PATCH 23/76] Added tags to half core-common interfaces --- core/common/src/BriefcaseTypes.ts | 1 + core/common/src/ConcurrentQuery.ts | 3 +++ core/common/src/ElementProps.ts | 12 ++++++++++++ core/common/src/EntityProps.ts | 2 ++ core/common/src/IModel.ts | 1 + core/common/src/LightSettings.ts | 1 + core/common/src/MaterialProps.ts | 3 +++ core/common/src/RgbColor.ts | 1 + core/common/src/SessionProps.ts | 1 + core/common/src/SkyBox.ts | 3 +++ core/common/src/SolarShadows.ts | 1 + core/common/src/SpatialClassification.ts | 3 +++ core/common/src/TerrainSettings.ts | 1 + core/common/src/TextureProps.ts | 3 +++ core/common/src/ThematicDisplay.ts | 4 ++++ core/common/src/Thumbnail.ts | 2 ++ core/common/src/TileProps.ts | 1 + core/common/src/ViewDetails.ts | 2 ++ core/common/src/ViewFlags.ts | 1 + core/common/src/ViewProps.ts | 8 ++++++++ core/common/src/WhiteOnWhiteReversalSettings.ts | 1 + core/common/src/domains/GenericElementProps.ts | 5 ++++- .../common/src/geometry/CoordinateReferenceSystem.ts | 1 + core/common/src/geometry/GeodeticDatum.ts | 1 + core/common/src/geometry/GeometryStream.ts | 1 + core/common/src/geometry/TextString.ts | 1 + core/common/src/rpc/core/RpcInvocation.ts | 1 + 27 files changed, 64 insertions(+), 1 deletion(-) diff --git a/core/common/src/BriefcaseTypes.ts b/core/common/src/BriefcaseTypes.ts index c5436f88ec09..4bd9f269db0d 100644 --- a/core/common/src/BriefcaseTypes.ts +++ b/core/common/src/BriefcaseTypes.ts @@ -118,6 +118,7 @@ export interface LocalBriefcaseProps { /** Properties for downloading a briefcase to a local file, from iModelHub. * @public + * @extensionApi */ export interface RequestNewBriefcaseProps { /** iTwin that the iModel belongs to. */ diff --git a/core/common/src/ConcurrentQuery.ts b/core/common/src/ConcurrentQuery.ts index 69400d095895..15fb8c23ae7e 100644 --- a/core/common/src/ConcurrentQuery.ts +++ b/core/common/src/ConcurrentQuery.ts @@ -32,6 +32,7 @@ export enum QueryRowFormat { /** * Specify limit or range of rows to return * @public + * @extensionApi * */ export interface QueryLimit { /** Number of rows to return */ @@ -60,6 +61,7 @@ export interface DbRuntimeStats { /** * Quota hint for the query. * @public + * @extensionApi * */ export interface QueryQuota { /** Max time allowed in seconds. This is hint and may not be honoured but help in prioritize request */ @@ -87,6 +89,7 @@ export interface BaseReaderOptions { /** * ECSql query config * @public + * @extensionApi * */ export interface QueryOptions extends BaseReaderOptions { /** diff --git a/core/common/src/ElementProps.ts b/core/common/src/ElementProps.ts index c4207fafbf61..45a43048dd8d 100644 --- a/core/common/src/ElementProps.ts +++ b/core/common/src/ElementProps.ts @@ -18,6 +18,7 @@ import { SubCategoryAppearance } from "./SubCategoryAppearance"; /** Properties of a NavigationProperty. * @public + * @extensionApi */ export interface RelatedElementProps { /** The Id of the element to which this element is related. */ @@ -175,6 +176,7 @@ export enum SectionType { /** Properties that define a [SectionDrawing]($backend). * @public + * @extensionApi */ export interface SectionDrawingProps extends ElementProps { /** The type of section used to generate the drawing. Default: Section. */ @@ -198,6 +200,7 @@ export interface SectionDrawingProps extends ElementProps { /** Properties that define a [SectionDrawingLocation]($backend) * @public + * @extensionApi */ export interface SectionDrawingLocationProps extends GeometricElement3dProps { /** The [ViewDefinition]($backend) to which this location refers. */ @@ -224,6 +227,7 @@ export interface GeometryPartProps extends ElementProps { /** Properties for a [ViewAttachment]($backend) * @public + * @extensionApi */ export interface ViewAttachmentProps extends GeometricElement2dProps { view: RelatedElementProps; @@ -246,6 +250,7 @@ export interface ViewAttachmentProps extends GeometricElement2dProps { /** Properties of a [Subject]($backend) * @public + * @extensionApi */ export interface SubjectProps extends ElementProps { description?: string; @@ -270,6 +275,7 @@ export interface SheetTemplateProps extends ElementProps { /** Properties of a [Sheet]($backend). * @public + * @extensionApi */ export interface SheetProps extends ElementProps { width?: number; @@ -289,6 +295,7 @@ export interface DefinitionElementProps extends ElementProps { /** Properties of a [TypeDefinitionElement]($backend) * @public + * @extensionApi */ export interface TypeDefinitionElementProps extends DefinitionElementProps { recipe?: RelatedElementProps; @@ -330,6 +337,7 @@ export interface DisplayStyleLoadProps { /** Options controlling which properties are included or excluded when querying [[RenderTimelineProps]]. * @see [[ElementLoadOptions.renderTimeline]]. * @public + * @extensionApi */ export interface RenderTimelineLoadProps { /** If true, the lists of element Ids in the schedule script will be empty. @@ -485,6 +493,7 @@ export interface CategoryProps extends DefinitionElementProps { /** Parameters of a [SubCategory]($backend) * @public + * @extensionApi */ export interface SubCategoryProps extends DefinitionElementProps { appearance?: SubCategoryAppearance.Props; @@ -493,6 +502,7 @@ export interface SubCategoryProps extends DefinitionElementProps { /** Parameters of a [UrlLink]($backend) * @public + * @extensionApi */ export interface UrlLinkProps extends ElementProps { description?: string; @@ -501,6 +511,7 @@ export interface UrlLinkProps extends ElementProps { /** Parameters of a [RepositoryLink]($backend) * @public + * @extensionApi */ export interface RepositoryLinkProps extends UrlLinkProps { repositoryGuid?: GuidString; @@ -516,6 +527,7 @@ export interface SynchronizationConfigLinkProps extends UrlLinkProps { /** Wire format describing a [RenderTimeline]($backend). * @public + * @extensionApi */ export interface RenderTimelineProps extends ElementProps { /** An optional human-readable description of the timeline. */ diff --git a/core/common/src/EntityProps.ts b/core/common/src/EntityProps.ts index 16f0a8e1df90..a10a664dd2fc 100644 --- a/core/common/src/EntityProps.ts +++ b/core/common/src/EntityProps.ts @@ -25,6 +25,7 @@ export interface EntityProps { /** Specifies the source and target elements of a [[Relationship]] instance. * @public + * @extensionApi */ export interface SourceAndTarget { sourceId: Id64String; @@ -33,6 +34,7 @@ export interface SourceAndTarget { /** Properties that are common to all types of link table ECRelationships * @public + * @extensionApi */ export interface RelationshipProps extends EntityProps, SourceAndTarget { } diff --git a/core/common/src/IModel.ts b/core/common/src/IModel.ts index 22e74c19ec67..0355150ad883 100644 --- a/core/common/src/IModel.ts +++ b/core/common/src/IModel.ts @@ -72,6 +72,7 @@ export interface EcefLocationProps { /** Properties of the [Root Subject]($docs/bis/intro/glossary#subject-root). * @public + * @extensionApi */ export interface RootSubjectProps { /** The name of the root subject. */ diff --git a/core/common/src/LightSettings.ts b/core/common/src/LightSettings.ts index c5f0c0e04792..42ba5e82c5e8 100644 --- a/core/common/src/LightSettings.ts +++ b/core/common/src/LightSettings.ts @@ -20,6 +20,7 @@ function extractIntensity(value: number | undefined, defaultValue: number) { * It will cast shadows if it is above the world XY plane and if the shadows view flag is enabled for the view. * By default, the solar light is only applied when shadows are enabled, but can be set to be applied unconditionally. * @public + * @extensionApi */ export interface SolarLightProps { /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */ diff --git a/core/common/src/MaterialProps.ts b/core/common/src/MaterialProps.ts index 2a4ef08590f7..385e9d751806 100644 --- a/core/common/src/MaterialProps.ts +++ b/core/common/src/MaterialProps.ts @@ -40,6 +40,7 @@ export enum TextureMapUnits { /** As part of a [[RenderMaterialAssetProps]], describes how to map a [[RenderTexture]]'s image to the triangles of a mesh to which the material is applied. * @public + * @extensionApi */ export interface TextureMapProps { /** Angle in degrees to rotate texture when applying; defaults to 0.0 if undefined */ @@ -64,6 +65,7 @@ export interface TextureMapProps { /** Describes the graphical properties of a [RenderMaterialElement]($backend) as part of a [[RenderMaterialProps]]. * @public + * @extensionApi */ export interface RenderMaterialAssetProps { /** If true, this material has a fill/diffuse color; if undefined, defaults to false */ @@ -110,6 +112,7 @@ export interface RenderMaterialAssetProps { /** Properties that define a [RenderMaterialElement]($backend). * @see [[RenderMaterial]] for the representation used by the display system. * @public + * @extensionApi */ export interface RenderMaterialProps extends DefinitionElementProps { /** The name of a palette that can be used to categorize multiple materials. */ diff --git a/core/common/src/RgbColor.ts b/core/common/src/RgbColor.ts index 8ba862218fdc..5df1ffdf9cb9 100644 --- a/core/common/src/RgbColor.ts +++ b/core/common/src/RgbColor.ts @@ -10,6 +10,7 @@ import { ColorDef } from "./ColorDef"; /** JSON representation of an [[RgbColor]], with each component an integer in the range [0, 255]. * @public + * @extensionApi */ export interface RgbColorProps { r: number; diff --git a/core/common/src/SessionProps.ts b/core/common/src/SessionProps.ts index 4ccb249e32f3..57717bfdf053 100644 --- a/core/common/src/SessionProps.ts +++ b/core/common/src/SessionProps.ts @@ -10,6 +10,7 @@ import { GuidString } from "@itwin/core-bentley"; /** Properties that identify a session. * @public + * @extensionApi */ export interface SessionProps { /** Used for logging and usage tracking to identify the application */ diff --git a/core/common/src/SkyBox.ts b/core/common/src/SkyBox.ts index 16fccd7a3325..d54989974dfb 100644 --- a/core/common/src/SkyBox.ts +++ b/core/common/src/SkyBox.ts @@ -34,6 +34,7 @@ export enum SkyBoxImageType { * Each property specifies the image for a face of the cube as either an image URL, or the Id of a [Texture]($backend) element. * Each image must be square and have the same dimensions as all the other images. * @public + * @extensionApi */ export interface SkyCubeProps { front: TextureImageSpec; @@ -69,6 +70,7 @@ export interface SkyCubeImageProps { /** JSON representation of the image(s) to be mapped to the surfaces of a [[SkyBox]]. * @see [[SkyBoxProps.image]]. * @public + * @extensionApi */ export type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type?: SkyBoxImageType, texture?: never, textures?: never }; @@ -91,6 +93,7 @@ export type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type? * * @see [[DisplayStyle3dSettings.environment]] to define the skybox for a display style. * @public + * @extensionApi */ export interface SkyBoxProps { /** Whether or not the skybox should be displayed. diff --git a/core/common/src/SolarShadows.ts b/core/common/src/SolarShadows.ts index f1b80a18aba0..cfc18f21aefe 100644 --- a/core/common/src/SolarShadows.ts +++ b/core/common/src/SolarShadows.ts @@ -13,6 +13,7 @@ import { RgbColor } from "./RgbColor"; /** JSON representation of [[SolarShadowSettings]]. * @public + * @extensionApi */ export interface SolarShadowSettingsProps { /** Shadow color. Default: [[ColorByName.grey]]. */ diff --git a/core/common/src/SpatialClassification.ts b/core/common/src/SpatialClassification.ts index 0cb8553dcaaa..0dd087438969 100644 --- a/core/common/src/SpatialClassification.ts +++ b/core/common/src/SpatialClassification.ts @@ -42,6 +42,7 @@ export enum SpatialClassifierOutsideDisplay { /** JSON representation of a [[SpatialClassifierFlags]]. * @public + * @extensionApi */ export interface SpatialClassifierFlagsProps { /** @see [[SpatialClassifierFlags.inside]]. */ @@ -112,6 +113,7 @@ export class SpatialClassifierFlags { /** JSON representation of a [[SpatialClassifier]]. * @public + * @extensionApi */ export interface SpatialClassifierProps { /** @see [[SpatialClassifier.modelId]]. */ @@ -209,6 +211,7 @@ export class SpatialClassifier { /** An object that can store the JSON representation of a list of [[SpatialClassifier]]s. * @see [[SpatialClassifiers]]. * @public + * @extensionApi */ export interface SpatialClassifiersContainer { /** The list of classifiers. */ diff --git a/core/common/src/TerrainSettings.ts b/core/common/src/TerrainSettings.ts index 5eb4b0797e53..f12bfda0be48 100644 --- a/core/common/src/TerrainSettings.ts +++ b/core/common/src/TerrainSettings.ts @@ -18,6 +18,7 @@ export type TerrainProviderName = "CesiumWorldTerrain"; * @see [[DisplayStyleSettingsProps]] * @see [[BackgroundMapProps]] * @public + * @extensionApi */ export interface TerrainProps { /** Identifies the provider currently only CesiumWorldTerrain is supported. */ diff --git a/core/common/src/TextureProps.ts b/core/common/src/TextureProps.ts index 1f0fa96481f1..a0ed575790ae 100644 --- a/core/common/src/TextureProps.ts +++ b/core/common/src/TextureProps.ts @@ -13,6 +13,7 @@ import { Base64EncodedString } from "./Base64EncodedString"; /** Properties that define a [Texture]($backend) element. * @public + * @extensionApi */ export interface TextureProps extends DefinitionElementProps { /** Format of the image data. */ @@ -28,6 +29,7 @@ export interface TextureProps extends DefinitionElementProps { /** Properties that specify what texture should be loaded and how it should be loaded. * @public + * @extensionApi */ export interface TextureLoadProps { /** A valid Id64 string identifying the texture */ @@ -38,6 +40,7 @@ export interface TextureLoadProps { /** Information about [Texture]($backend) data returned by [[IModelReadRpcInterface.queryTextureData]]. * @public + * @extensionApi */ export interface TextureData { /** The width of the image, possibly reduced from the original width based on [[TextureLoadProps.maxTextureSize]]. */ diff --git a/core/common/src/ThematicDisplay.ts b/core/common/src/ThematicDisplay.ts index db8777588522..1c4b1de95b4f 100644 --- a/core/common/src/ThematicDisplay.ts +++ b/core/common/src/ThematicDisplay.ts @@ -52,6 +52,7 @@ export enum ThematicGradientColorScheme { /** JSON representation of a [[ThematicGradientSettings]]. * @public + * @extensionApi **/ export interface ThematicGradientSettingsProps { /** The thematic image mode used to generate and apply the thematic gradient. Defaults to [[ThematicGradientMode.Smooth]]. */ @@ -239,6 +240,7 @@ export class ThematicGradientSettings { /** JSON representation of a [[ThematicDisplaySensor]]. * @public + * @extensionApi */ export interface ThematicDisplaySensorProps { /** The world position of the sensor in X, Y, and Z. Defaults to {0,0,0}. */ @@ -288,6 +290,7 @@ export class ThematicDisplaySensor { /** JSON representation of a [[ThematicDisplaySensorSettings]] for [[ThematicDisplayMode.InverseDistanceWeightedSensors]]. * @public + * @extensionApi */ export interface ThematicDisplaySensorSettingsProps { /** This is the list of sensors. Defaults to an empty array. */ @@ -382,6 +385,7 @@ export enum ThematicDisplayMode { /** JSON representation of the thematic display setup of a [[DisplayStyle3d]]. * @public + * @extensionApi */ export interface ThematicDisplayProps { /** The thematic display mode. This determines how to apply the thematic color gradient to the geometry. Defaults to [[ThematicDisplayMode.Height]]. */ diff --git a/core/common/src/Thumbnail.ts b/core/common/src/Thumbnail.ts index 3843c476ee5d..0e6e3f4ca5a8 100644 --- a/core/common/src/Thumbnail.ts +++ b/core/common/src/Thumbnail.ts @@ -10,6 +10,7 @@ * outside of the image so it can be obtained without having to decode the image data. * @see [[ThumbnailProps]] * @public + * @extensionApi */ export interface ThumbnailFormatProps { /** X size of the image, in pixels. */ @@ -23,6 +24,7 @@ export interface ThumbnailFormatProps { /** Describes a thumbnail image for an [[IModel]] or [ViewDefinition]($backend). * @see [IModelDb.Views.getThumbnail]($backend) or [IModelConnection.Views.getThumbnail]($frontend) to obtain a thumbnail for a view. * @public + * @extensionApi */ export interface ThumbnailProps extends ThumbnailFormatProps { /** The image encoded as specified by [[ThumbnailFormatProps.format]]. */ diff --git a/core/common/src/TileProps.ts b/core/common/src/TileProps.ts index 03246c6128dd..4e572203c2d9 100644 --- a/core/common/src/TileProps.ts +++ b/core/common/src/TileProps.ts @@ -64,6 +64,7 @@ export interface IModelTileTreeProps extends TileTreeProps { /** Metadata describing the version/format of the tiles supplied by the backend. * @see [[TileAdmin.queryVersionInfo]]. * @public + * @extensionApi */ export interface TileVersionInfo { /** The exact version of the "iMdl" tile format used by the backend when generating tile content. diff --git a/core/common/src/ViewDetails.ts b/core/common/src/ViewDetails.ts index 483a4e12b95b..360c3d27010a 100644 --- a/core/common/src/ViewDetails.ts +++ b/core/common/src/ViewDetails.ts @@ -14,6 +14,7 @@ import { ModelClipGroupProps, ModelClipGroups } from "./ModelClipGroup"; * @see [[ViewDefinitionProps.jsonProperties]]. * @see [[ViewDetails3dProps]] for additional properties specific to 3d views. * @public + * @extensionApi */ export interface ViewDetailsProps { /** Id of the aux coord system. Default: invalid. */ @@ -52,6 +53,7 @@ export enum GridOrientationType { /** Properties of a [[ViewDefinition3dProps]] stored as JSON. * @see [[ViewDefinition3dProps.jsonProperties]]. * @public + * @extensionApi */ export interface ViewDetails3dProps extends ViewDetailsProps { /** Whether viewing tools are prohibited from operating in 3 dimensions on this view. Default: false. */ diff --git a/core/common/src/ViewFlags.ts b/core/common/src/ViewFlags.ts index 337c30b34b5b..7ace2d6ee077 100644 --- a/core/common/src/ViewFlags.ts +++ b/core/common/src/ViewFlags.ts @@ -50,6 +50,7 @@ export enum RenderMode { * those of the corresponding [[ViewFlags]] properties, making usage of this type in code error-prone. * Prefer to use [[ViewFlagsProperties]] unless you need to work directly with the persistence format. * @public + * @extensionApi */ export interface ViewFlagProps { /** If true, don't display geometry of class [[GeometryClass.Construction]]. */ diff --git a/core/common/src/ViewProps.ts b/core/common/src/ViewProps.ts index 41b6c40b65a9..82bf5cee6fbd 100644 --- a/core/common/src/ViewProps.ts +++ b/core/common/src/ViewProps.ts @@ -17,6 +17,7 @@ import { ViewDetails3dProps, ViewDetailsProps } from "./ViewDetails"; /** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated. * @see [[SectionDrawingProps]] * @public + * @extensionApi */ export interface SectionDrawingViewProps { /** The Id of the spatial view from which the SectionDrawing was generated. */ @@ -29,6 +30,7 @@ export interface SectionDrawingViewProps { /** Returned from [IModelDb.Views.getViewStateData]($backend). * @public + * @extensionApi */ export interface ViewStateProps { viewDefinitionProps: ViewDefinitionProps; @@ -47,6 +49,7 @@ export interface ViewStateProps { /** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateData]($backend). * @public + * @extensionApi */ export interface ViewStateLoadProps { /** Options for loading the view's [[DisplayStyleProps]]. */ @@ -71,6 +74,7 @@ export interface CategorySelectorProps extends DefinitionElementProps { /** Parameters for performing a query on [ViewDefinition]($backend) classes. * @public + * @extensionApi */ export interface ViewQueryParams extends EntityQueryParams { wantPrivate?: boolean; @@ -78,6 +82,7 @@ export interface ViewQueryParams extends EntityQueryParams { /** Parameters used to construct a ViewDefinition * @public + * @extensionApi */ export interface ViewDefinitionProps extends DefinitionElementProps { categorySelectorId: Id64String; @@ -91,6 +96,7 @@ export interface ViewDefinitionProps extends DefinitionElementProps { /** Parameters to construct a ViewDefinition3d * @public + * @extensionApi */ export interface ViewDefinition3dProps extends ViewDefinitionProps { /** if true, camera is valid. */ @@ -111,6 +117,7 @@ export interface ViewDefinition3dProps extends ViewDefinitionProps { /** Parameters to construct a SpatialViewDefinition * @public + * @extensionApi */ export interface SpatialViewDefinitionProps extends ViewDefinition3dProps { modelSelectorId: Id64String; @@ -118,6 +125,7 @@ export interface SpatialViewDefinitionProps extends ViewDefinition3dProps { /** Parameters used to construct a ViewDefinition2d * @public + * @extensionApi */ export interface ViewDefinition2dProps extends ViewDefinitionProps { baseModelId: Id64String; diff --git a/core/common/src/WhiteOnWhiteReversalSettings.ts b/core/common/src/WhiteOnWhiteReversalSettings.ts index 6e5d38906d95..e4b928df6e5a 100644 --- a/core/common/src/WhiteOnWhiteReversalSettings.ts +++ b/core/common/src/WhiteOnWhiteReversalSettings.ts @@ -8,6 +8,7 @@ /** JSON representation of a [[WhiteOnWhiteReversalSettings]]. * @public + * @extensionApi */ export interface WhiteOnWhiteReversalProps { /** Default: false. diff --git a/core/common/src/domains/GenericElementProps.ts b/core/common/src/domains/GenericElementProps.ts index e9cbfb910557..19cb305e0677 100644 --- a/core/common/src/domains/GenericElementProps.ts +++ b/core/common/src/domains/GenericElementProps.ts @@ -8,7 +8,10 @@ import { GeometricElement2dProps, RelatedElementProps } from "../ElementProps"; -/** @public */ +/** + * @public + * @extensionApi + */ export interface ViewAttachmentLabelProps extends GeometricElement2dProps { viewAttachment?: RelatedElementProps; } diff --git a/core/common/src/geometry/CoordinateReferenceSystem.ts b/core/common/src/geometry/CoordinateReferenceSystem.ts index 3f41144e4549..e8de62928a52 100644 --- a/core/common/src/geometry/CoordinateReferenceSystem.ts +++ b/core/common/src/geometry/CoordinateReferenceSystem.ts @@ -284,6 +284,7 @@ export class HorizontalCRS implements HorizontalCRSProps { /** Vertical Geographic Coordinate reference System definition * @public + * @extensionApi */ export interface VerticalCRSProps { /** Vertical CRS Key name. diff --git a/core/common/src/geometry/GeodeticDatum.ts b/core/common/src/geometry/GeodeticDatum.ts index d78971951207..fbccc040e4c5 100644 --- a/core/common/src/geometry/GeodeticDatum.ts +++ b/core/common/src/geometry/GeodeticDatum.ts @@ -12,6 +12,7 @@ import { GeodeticEllipsoid, GeodeticEllipsoidProps } from "./GeodeticEllipsoid"; /** Holds 3 components of a Positional Vector rotation definition in arc seconds * @public + * @extensionApi */ export interface XyzRotationProps { /** X rotation component in arc second */ diff --git a/core/common/src/geometry/GeometryStream.ts b/core/common/src/geometry/GeometryStream.ts index 25bd090b3718..ce3fcd239ab9 100644 --- a/core/common/src/geometry/GeometryStream.ts +++ b/core/common/src/geometry/GeometryStream.ts @@ -419,6 +419,7 @@ export class GeometryStreamBuilder { /** Represents a text string within a GeometryStream. * @public + * @extensionApi */ export interface TextStringPrimitive { type: "textString"; diff --git a/core/common/src/geometry/TextString.ts b/core/common/src/geometry/TextString.ts index 650a903f3c7b..93014d162bec 100644 --- a/core/common/src/geometry/TextString.ts +++ b/core/common/src/geometry/TextString.ts @@ -11,6 +11,7 @@ import { Point3d, Transform, Vector3d, XYZProps, YawPitchRollAngles, YawPitchRol /** Properties for a TextString class. * @see [[GeometryStreamEntryProps]] * @public + * @extensionApi */ export interface TextStringProps { /** text string */ diff --git a/core/common/src/rpc/core/RpcInvocation.ts b/core/common/src/rpc/core/RpcInvocation.ts index cd073c87690d..bd35b9e95248 100644 --- a/core/common/src/rpc/core/RpcInvocation.ts +++ b/core/common/src/rpc/core/RpcInvocation.ts @@ -22,6 +22,7 @@ import { CURRENT_INVOCATION, RpcRegistry } from "./RpcRegistry"; /** The properties of an RpcActivity. * @public + * @extensionApi */ export interface RpcActivity extends SessionProps { /** Used for logging to correlate an Rpc activity between frontend and backend */ From c4d0980368f072364d906b8bb12ce4a6eec84ffc Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:05:03 -0600 Subject: [PATCH 24/76] Added tags to core-common types --- core/common/src/BackgroundMapProvider.ts | 1 + core/common/src/BackgroundMapSettings.ts | 1 + core/common/src/Base64EncodedString.ts | 1 + core/common/src/BriefcaseTypes.ts | 1 + core/common/src/ChangedEntities.ts | 1 + core/common/src/ChangesetProps.ts | 3 +++ core/common/src/Code.ts | 1 + core/common/src/ColorDef.ts | 1 + core/common/src/ElementProps.ts | 5 ++++- core/common/src/MaterialProps.ts | 2 ++ core/common/src/ModelGeometryChanges.ts | 5 ++++- core/common/src/TerrainSettings.ts | 1 + core/common/src/Tween.ts | 20 +++++++++++++++---- core/common/src/ViewFlags.ts | 2 ++ .../src/geometry/CoordinateReferenceSystem.ts | 1 + core/common/src/geometry/GeodeticDatum.ts | 3 +++ core/common/src/geometry/GeometryStream.ts | 2 ++ core/common/src/geometry/ImageGraphic.ts | 1 + core/common/src/geometry/Placement.ts | 6 ++++++ core/common/src/geometry/Projection.ts | 3 +++ core/common/src/ipc/IpcSocket.ts | 1 + core/common/src/tile/ElementGraphics.ts | 1 + 22 files changed, 57 insertions(+), 6 deletions(-) diff --git a/core/common/src/BackgroundMapProvider.ts b/core/common/src/BackgroundMapProvider.ts index e63db2253041..494cddadfc62 100644 --- a/core/common/src/BackgroundMapProvider.ts +++ b/core/common/src/BackgroundMapProvider.ts @@ -21,6 +21,7 @@ export enum BackgroundMapType { /** Enumerates a set of supported [[BackgroundMapProvider]]s that can provide map imagery. * @note To access imagery from such a provider, an API key must be supplied via [IModelAppOptions.mapLayerOptions]($frontend). * @public + * @extensionApi */ export type BackgroundMapProviderName = "BingProvider" | "MapBoxProvider"; diff --git a/core/common/src/BackgroundMapSettings.ts b/core/common/src/BackgroundMapSettings.ts index 14c9e0397f35..94b79e238d7b 100644 --- a/core/common/src/BackgroundMapSettings.ts +++ b/core/common/src/BackgroundMapSettings.ts @@ -81,6 +81,7 @@ export interface DeprecatedBackgroundMapProps { /** Persistent JSON representation of a [[BackgroundMapSettings]]. * @public + * @extensionApi */ export type PersistentBackgroundMapProps = Omit & DeprecatedBackgroundMapProps; diff --git a/core/common/src/Base64EncodedString.ts b/core/common/src/Base64EncodedString.ts index 78564515b329..f36f73d1cc6d 100644 --- a/core/common/src/Base64EncodedString.ts +++ b/core/common/src/Base64EncodedString.ts @@ -11,6 +11,7 @@ import { Base64 } from "js-base64"; /** Represents an array of bytes encoded in base-64 with a prefix indicating the encoding, as required when converting EC properties of `binary` type to and from JSON. * @see [[TextureProps.data]] and [[BRepEntity.DataProps.data]] for examples of properties of this type. * @public + * @extensionApi */ export type Base64EncodedString = string; diff --git a/core/common/src/BriefcaseTypes.ts b/core/common/src/BriefcaseTypes.ts index 4bd9f269db0d..084bf592f7a5 100644 --- a/core/common/src/BriefcaseTypes.ts +++ b/core/common/src/BriefcaseTypes.ts @@ -13,6 +13,7 @@ import { IModelVersionProps } from "./IModelVersion"; /** The Id assigned to a briefcase by iModelHub, or [[BriefcaseIdValue.Unassigned]] . * @public + * @extensionApi */ export type BriefcaseId = number; diff --git a/core/common/src/ChangedEntities.ts b/core/common/src/ChangedEntities.ts index 110a40b73370..b7004255e5ae 100644 --- a/core/common/src/ChangedEntities.ts +++ b/core/common/src/ChangedEntities.ts @@ -48,5 +48,6 @@ export interface ChangedEntities { * } * ``` * @public + * @extensionApi */ export type EntityIdAndClassIdIterable = Iterable>; diff --git a/core/common/src/ChangesetProps.ts b/core/common/src/ChangesetProps.ts index 2314e7856810..531cc07ded35 100644 --- a/core/common/src/ChangesetProps.ts +++ b/core/common/src/ChangesetProps.ts @@ -15,12 +15,14 @@ export type LocalDirName = string; /** A string that identifies a changeset. * @note this string is *not* a Guid. It is generated internally based on the content of the changeset. * @public + * @extensionApi */ export type ChangesetId = string; /** The index of a changeset, assigned by iModelHub. * @note 0 means "before the first changeset." Values less than 0 are invalid. * @public + * @extensionApi */ export type ChangesetIndex = number; @@ -38,6 +40,7 @@ export interface ChangesetIdWithIndex { readonly index?: ChangesetIndex, readonl /** either changeset index, id, or both * @public + * @extensionApi */ export type ChangesetIndexOrId = ChangesetIndexAndId | { readonly index: ChangesetIndex, readonly id?: never } | { readonly id: ChangesetId, readonly index?: never }; diff --git a/core/common/src/Code.ts b/core/common/src/Code.ts index 4babbb7ba29e..5842dc0fedfd 100644 --- a/core/common/src/Code.ts +++ b/core/common/src/Code.ts @@ -11,6 +11,7 @@ import { IModel } from "./IModel"; /** The props that hold the identity of the object defining the uniqueness scope for a set of Code values. * @public + * @extensionApi */ export type CodeScopeProps = Id64String | GuidString; diff --git a/core/common/src/ColorDef.ts b/core/common/src/ColorDef.ts index 96b2b878ba17..418dcd01b23b 100644 --- a/core/common/src/ColorDef.ts +++ b/core/common/src/ColorDef.ts @@ -20,6 +20,7 @@ const scratchUInt32 = new Uint32Array(scratchBytes.buffer); /** An unsigned 32-bit integer in 0xTTBBGGRR format * @public + * @extensionApi */ export type ColorDefProps = number; diff --git a/core/common/src/ElementProps.ts b/core/common/src/ElementProps.ts index 45a43048dd8d..ee7307520e8a 100644 --- a/core/common/src/ElementProps.ts +++ b/core/common/src/ElementProps.ts @@ -129,7 +129,10 @@ export interface Placement2dProps { bbox?: LowAndHighXY; } -/** @public */ +/** + * @public + * @extensionApi + */ export type PlacementProps = Placement2dProps | Placement3dProps; /** determine if this is Placement2dProps diff --git a/core/common/src/MaterialProps.ts b/core/common/src/MaterialProps.ts index 385e9d751806..64c3ae148e67 100644 --- a/core/common/src/MaterialProps.ts +++ b/core/common/src/MaterialProps.ts @@ -14,12 +14,14 @@ import { TextureMapping } from "./TextureMapping"; * the second to green, and the third to blue. * @see usage in [[RenderMaterialAssetProps]]. * @public + * @extensionApi */ export type RgbFactorProps = number[]; /** A 2d point specified as an array of 2 numbers [x, y]. * @see usage in [[TextureMapProps]]. * @public + * @extensionApi */ export type Point2dProps = number[]; diff --git a/core/common/src/ModelGeometryChanges.ts b/core/common/src/ModelGeometryChanges.ts index 76c616cbf897..49eceef0cf86 100644 --- a/core/common/src/ModelGeometryChanges.ts +++ b/core/common/src/ModelGeometryChanges.ts @@ -73,7 +73,10 @@ export interface DeletedElementGeometryChange { readonly id: Id64String; } -/** @public */ +/** + * @public + * @extensionApi + */ export type ElementGeometryChange = ExtantElementGeometryChange | DeletedElementGeometryChange; /** Represents a change to the geometry of a [GeometricElement]($backend), as exposed by [[ModelGeometryChanges.elements]]. diff --git a/core/common/src/TerrainSettings.ts b/core/common/src/TerrainSettings.ts index f12bfda0be48..2049517bc56b 100644 --- a/core/common/src/TerrainSettings.ts +++ b/core/common/src/TerrainSettings.ts @@ -11,6 +11,7 @@ import { BackgroundMapProps } from "./BackgroundMapSettings"; /** The current set of supported terrain providers. Currently only CesiumWorldTerrain. * @see [[TerrainProps]] * @public + * @extensionApi */ export type TerrainProviderName = "CesiumWorldTerrain"; diff --git a/core/common/src/Tween.ts b/core/common/src/Tween.ts index 86ad5e3aad42..145a33e212dc 100644 --- a/core/common/src/Tween.ts +++ b/core/common/src/Tween.ts @@ -113,13 +113,25 @@ export class Tweens { } } -/** @public */ +/** + * @public + * @extensionApi + */ export type TweenCallback = (obj: any) => void; -/** @public */ +/** + * @public + * @extensionApi + */ export type UpdateCallback = (obj: any, t: number) => void; -/** @public */ +/** + * @public + * @extensionApi + */ export type EasingFunction = (k: number) => number; -/** @public */ +/** + * @public + * @extensionApi + */ export type InterpolationFunction = (v: any, k: number) => number; /** A Tween for interpolating values of an object. Instances of this class are owned by a `Tweens` group. diff --git a/core/common/src/ViewFlags.ts b/core/common/src/ViewFlags.ts index 7ace2d6ee077..bed70177ebba 100644 --- a/core/common/src/ViewFlags.ts +++ b/core/common/src/ViewFlags.ts @@ -528,11 +528,13 @@ export class ViewFlags { /** A type containing all of the properties of [[ViewFlags]] with none of the methods and with the `readonly` modifiers removed. * @see [[ViewFlags.create]], [[ViewFlags.copy]], and [[ViewFlags.override]] for methods accepting an object of this type. * @public + * @extensionApi */ export type ViewFlagsProperties = Mutable>; /** A type that describes how to override selected properties of a [[ViewFlags]]. * @see [[ViewFlags.override]] to apply the overrides to a ViewFlags object. * @public + * @extensionApi */ export type ViewFlagOverrides = Partial; diff --git a/core/common/src/geometry/CoordinateReferenceSystem.ts b/core/common/src/geometry/CoordinateReferenceSystem.ts index e8de62928a52..ce7dfb1d6c9d 100644 --- a/core/common/src/geometry/CoordinateReferenceSystem.ts +++ b/core/common/src/geometry/CoordinateReferenceSystem.ts @@ -13,6 +13,7 @@ import { Carto2DDegrees, Carto2DDegreesProps, Projection, ProjectionProps } from import { AdditionalTransform, AdditionalTransformProps } from "./AdditionalTransform"; /** This type indicates possible linear and angular units supported. * @public + * @extensionApi */ export type UnitType = "Meter" | "InternationalFoot" | "USSurveyFoot" | "Degree" | "Unsupported"; diff --git a/core/common/src/geometry/GeodeticDatum.ts b/core/common/src/geometry/GeodeticDatum.ts index fbccc040e4c5..88b52d830e54 100644 --- a/core/common/src/geometry/GeodeticDatum.ts +++ b/core/common/src/geometry/GeodeticDatum.ts @@ -65,6 +65,7 @@ export class XyzRotation implements XyzRotationProps { /** Type indicating the geodetic transformation method * @public + * @extensionApi */ export type GeodeticTransformMethod = "None" | @@ -184,6 +185,7 @@ export class PositionalVectorTransform implements PositionalVectorTransformProps /** Type indicating the file format of the grid files. * @public + * @extensionApi */ export type GridFileFormat = "NONE" | @@ -197,6 +199,7 @@ export type GridFileFormat = /** type to indicate the grid file application direction. * @public + * @extensionApi */ export type GridFileDirection = "Direct" | "Inverse"; diff --git a/core/common/src/geometry/GeometryStream.ts b/core/common/src/geometry/GeometryStream.ts index ce3fcd239ab9..9e50ef3a3fd4 100644 --- a/core/common/src/geometry/GeometryStream.ts +++ b/core/common/src/geometry/GeometryStream.ts @@ -181,6 +181,7 @@ export interface GeometryStreamEntryProps extends GeomJson.GeometryProps { /** A [[GeometricElement]]'s GeometryStream is represented by an array of [[GeometryStreamEntryProps]]. * @public + * @extensionApi */ export type GeometryStreamProps = GeometryStreamEntryProps[]; @@ -468,6 +469,7 @@ export interface GeometryPrimitive { /** Union of all possible geometric primitive types that may appear within a GeometryStream. * @public + * @extensionApi */ export type GeometryStreamPrimitive = TextStringPrimitive | PartReference | BRepPrimitive | GeometryPrimitive | ImagePrimitive; diff --git a/core/common/src/geometry/ImageGraphic.ts b/core/common/src/geometry/ImageGraphic.ts index 1ae80120abca..47b216108ea3 100644 --- a/core/common/src/geometry/ImageGraphic.ts +++ b/core/common/src/geometry/ImageGraphic.ts @@ -11,6 +11,7 @@ import { Point3d, Range3d, Transform, XYZProps } from "@itwin/core-geometry"; /** JSON representation of the 4 corners of an [[ImageGraphicProps]]. @see [[ImageGraphicCorners]]. * @public + * @extensionApi */ export type ImageGraphicCornersProps = [XYZProps, XYZProps, XYZProps, XYZProps]; diff --git a/core/common/src/geometry/Placement.ts b/core/common/src/geometry/Placement.ts index 72ea07e29cf3..93ca8c110782 100644 --- a/core/common/src/geometry/Placement.ts +++ b/core/common/src/geometry/Placement.ts @@ -16,31 +16,37 @@ import { IModelError } from "../IModelError"; /** A Range3d that is aligned with the axes of spatial coordinates. * @public + * @extensionApi */ export type AxisAlignedBox3d = Range3d; /** The properties of a Range3d. * @public + * @extensionApi */ export type AxisAlignedBox3dProps = Range3dProps; /** A bounding box aligned to the orientation of a 3d Element * @public + * @extensionApi */ export type ElementAlignedBox3d = Range3d; /** A bounding box aligned to the orientation of a 2d Element * @public + * @extensionApi */ export type ElementAlignedBox2d = Range2d; /** A bounding box aligned to a local coordinate system * @public + * @extensionApi */ export type LocalAlignedBox3d = Range3d; /** Either a Placement2d or Placement3d * @public + * @extensionApi */ export type Placement = Placement2d | Placement3d; diff --git a/core/common/src/geometry/Projection.ts b/core/common/src/geometry/Projection.ts index ae790904a54f..b677f6679c36 100644 --- a/core/common/src/geometry/Projection.ts +++ b/core/common/src/geometry/Projection.ts @@ -14,6 +14,7 @@ import { Geometry } from "@itwin/core-geometry"; * with units as degrees. * All other projection indicated a projected CRS. * @public + * @extensionApi */ export type ProjectionMethod = "None" | @@ -147,11 +148,13 @@ export class AffineTransform implements AffineTransformProps { /** Type used in the definition of UTM Zoning projection. This projection only requires a zone number and * the hemisphere North or South. * @public + * @extensionApi */ export type HemisphereEnum = "South" | "North"; /** The type to define the three zones of the Danish System 34 projections. * @public + * @extensionApi */ export type DanishSystem34Region = "Jylland" | "Sjaelland" | "Bornholm"; diff --git a/core/common/src/ipc/IpcSocket.ts b/core/common/src/ipc/IpcSocket.ts index 5ad12cca7da2..ca3e6f6a9c42 100644 --- a/core/common/src/ipc/IpcSocket.ts +++ b/core/common/src/ipc/IpcSocket.ts @@ -21,6 +21,7 @@ export type IpcListener = (evt: Event, ...args: any[]) => void; /** * Function returned when establishing an Ipc `receive` listener or `invoke` handler. Call this method to remove the listener/handler. * @public + * @extensionApi */ export type RemoveFunction = () => void; diff --git a/core/common/src/tile/ElementGraphics.ts b/core/common/src/tile/ElementGraphics.ts index f5e8cfaf2636..b77b44ddcfb0 100644 --- a/core/common/src/tile/ElementGraphics.ts +++ b/core/common/src/tile/ElementGraphics.ts @@ -128,5 +128,6 @@ export interface DynamicGraphicsRequest3dProps extends DynamicGraphicsRequestPro * @see [TileAdmin.requestElementGraphics]($frontend) and [IModelDb.generateElementGraphics]($backend) to fulfill such a request. * @see [readElementGraphics]($frontend) to convert the result of a request to a [RenderGraphic]($frontend) for display. * @public + * @extensionApi */ export type ElementGraphicsRequestProps = PersistentGraphicsRequestProps | DynamicGraphicsRequest2dProps | DynamicGraphicsRequest3dProps; From 69d5ceb43765880a29a868fc45ea9e4f5a8c63d1 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:13:06 -0600 Subject: [PATCH 25/76] Added tags to frontend and common reals --- core/common/src/ColorDef.ts | 1 + core/frontend/src/AccuDraw.ts | 1 + core/frontend/src/BingLocation.ts | 1 + core/frontend/src/ElementLocateManager.ts | 5 ++++- core/frontend/src/EmphasizeElements.ts | 1 + core/frontend/src/FrustumAnimator.ts | 1 + core/frontend/src/GlobeAnimator.ts | 1 + core/frontend/src/ImageUtil.ts | 11 +++++++++++ core/frontend/src/MarginPercent.ts | 1 + core/frontend/src/Marker.ts | 2 ++ core/frontend/src/NotificationManager.ts | 1 + core/frontend/src/ViewGlobalLocation.ts | 1 + core/frontend/src/ViewRect.ts | 1 + core/frontend/src/extension/ExtensionHost.ts | 2 ++ core/frontend/src/render/FeatureSymbology.ts | 1 + core/frontend/src/render/GraphicBranch.ts | 15 ++++++++------- core/frontend/src/render/Pixel.ts | 1 + core/frontend/src/tile/ImdlReader.ts | 1 + core/frontend/src/tile/map/BingElevation.ts | 1 + core/frontend/src/tools/EditManipulator.ts | 1 + core/frontend/src/tools/PrimitiveTool.ts | 1 + core/frontend/src/tools/Tool.ts | 4 ++++ core/frontend/src/tools/ToolAssistance.ts | 1 + core/frontend/src/tools/ViewTool.ts | 1 + 24 files changed, 49 insertions(+), 8 deletions(-) diff --git a/core/common/src/ColorDef.ts b/core/common/src/ColorDef.ts index 418dcd01b23b..b94034e1f87d 100644 --- a/core/common/src/ColorDef.ts +++ b/core/common/src/ColorDef.ts @@ -43,6 +43,7 @@ export type ColorDefProps = number; * const semiTransparentBlue = ColorDef.blue.withTransparency(100); * ``` * @public + * @extensionApi REAL */ export class ColorDef { private readonly _tbgr: number; diff --git a/core/frontend/src/AccuDraw.ts b/core/frontend/src/AccuDraw.ts index 3dc6be2fc105..9794fc03b2ec 100644 --- a/core/frontend/src/AccuDraw.ts +++ b/core/frontend/src/AccuDraw.ts @@ -3096,6 +3096,7 @@ export enum ContextRotationId { Top, Front, Left, Bottom, Back, Right, View, Fac * through keyboard shortcuts. * @see [Using AccuDraw]($docs/learning/frontend/primitivetools.md#AccuDraw)* * @public + * @extensionApi REAL */ export class AccuDrawHintBuilder { private _flagOrigin = false; diff --git a/core/frontend/src/BingLocation.ts b/core/frontend/src/BingLocation.ts index 02331e6d85cb..df82e3aa36e9 100644 --- a/core/frontend/src/BingLocation.ts +++ b/core/frontend/src/BingLocation.ts @@ -13,6 +13,7 @@ import { GlobalLocation } from "./ViewGlobalLocation"; /** Provides an interface to the [Bing Maps location services](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/). * @public + * @extensionApi REAL */ export class BingLocationProvider { private _locationRequestTemplate: string; diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index d348eb405a98..bb57e0086a0f 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -92,7 +92,10 @@ export class LocateOptions { } } -/** @public */ +/** + * @public + * @extensionApi REAL + */ export class LocateResponse { public snapStatus = SnapStatus.Success; public reason?: string; diff --git a/core/frontend/src/EmphasizeElements.ts b/core/frontend/src/EmphasizeElements.ts index e98a0c099fd2..58983bc5b3ef 100644 --- a/core/frontend/src/EmphasizeElements.ts +++ b/core/frontend/src/EmphasizeElements.ts @@ -14,6 +14,7 @@ import { Viewport } from "./Viewport"; /** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides. * @public + * @extensionApi REAL */ export class EmphasizeElements implements FeatureOverrideProvider { private _defaultAppearance?: FeatureAppearance; diff --git a/core/frontend/src/FrustumAnimator.ts b/core/frontend/src/FrustumAnimator.ts index 697b1b81eb03..5a27c069d0f2 100644 --- a/core/frontend/src/FrustumAnimator.ts +++ b/core/frontend/src/FrustumAnimator.ts @@ -46,6 +46,7 @@ function interpolateSwingingEye( } /** Animates the transition of a [[Viewport]] from one [Frustum]($common) to another. The viewport will render as many frames as necessary during the supplied duration. * @public + * @extensionApi REAL */ export class FrustumAnimator implements Animator { private _tweens = new Tweens(); diff --git a/core/frontend/src/GlobeAnimator.ts b/core/frontend/src/GlobeAnimator.ts index ee78c93bf055..42338916567d 100644 --- a/core/frontend/src/GlobeAnimator.ts +++ b/core/frontend/src/GlobeAnimator.ts @@ -18,6 +18,7 @@ import { Animator } from "./ViewAnimation"; * The duration of the animation varies based on the distance traversed. * @see [[Viewport.animateFlyoverToGlobalLocation]]. * @public + * @extensionApi REAL */ export class GlobeAnimator implements Animator { protected _flightTweens = new Tweens(); diff --git a/core/frontend/src/ImageUtil.ts b/core/frontend/src/ImageUtil.ts index 7fad446f19a8..285d49395dd3 100644 --- a/core/frontend/src/ImageUtil.ts +++ b/core/frontend/src/ImageUtil.ts @@ -46,6 +46,7 @@ function rgbaFromRgba(rgba: Rgba, src: Uint8Array, idx: number): number { * @param barStyle CSS style string to apply to any side bars; defaults to "#C0C0C0", which is silver. * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars. * @public + * @extensionApi REAL */ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize = new Point2d(0, 0), barStyle = "#C0C0C0"): HTMLCanvasElement { const canvasOut = document.createElement("canvas"); @@ -74,6 +75,7 @@ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targe * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImage]]). * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails. * @public + * @extensionApi REAL */ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean = true): HTMLCanvasElement | undefined { const canvas = document.createElement("canvas"); @@ -112,6 +114,7 @@ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean * @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]]. * @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails. * @public + * @extensionApi REAL */ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBufferFormat.Rgba): ImageBuffer | undefined { const context = canvas.getContext("2d"); @@ -159,6 +162,7 @@ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBuf /** Get a string describing the mime type associated with an ImageSource format. * @public + * @extensionApi REAL */ export function getImageSourceMimeType(format: ImageSourceFormat): string { @@ -175,6 +179,7 @@ export function getImageSourceMimeType(format: ImageSourceFormat): string { /** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat. * @public + * @extensionApi REAL */ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFormat | undefined { switch (mimeType) { @@ -189,6 +194,7 @@ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFo * @param source The ImageSource containing the binary jpeg or png data. * @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format. * @public + * @extensionApi REAL */ export async function imageElementFromImageSource(source: ImageSource): Promise { const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) }); @@ -200,6 +206,7 @@ export async function imageElementFromImageSource(source: ImageSource): Promise< * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL. * @see tryImageElementFromUrl. * @public + * @extensionApi REAL */ export async function imageElementFromUrl(url: string): Promise { return new Promise((resolve: (image: HTMLImageElement) => void, reject) => { @@ -230,6 +237,7 @@ export async function tryImageElementFromUrl(url: string): Promise { const image = await imageElementFromImageSource(source); @@ -242,6 +250,7 @@ export async function extractImageSourceDimensions(source: ImageSource): Promise * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImage]]). * @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created. * @public + * @extensionApi REAL */ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = true): string | undefined { // The default format (and the only format required to be supported) for toDataUrl() is "image/png". @@ -255,6 +264,7 @@ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = tru * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImage]]). * @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed. * @public + * @extensionApi REAL */ export function imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha = true): string | undefined { const urlPrefix = "data:image/png;base64,"; @@ -310,6 +320,7 @@ export function getCenteredViewRect(viewRect: ViewRect, aspectRatio = 1.4): View * @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality). * @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met. * @public + * @extensionApi REAL */ export function getCompressedJpegFromCanvas(canvas: HTMLCanvasElement, maxBytes = 60000, minCompressionQuality = 0.1): string | undefined { const decrements = 0.1; // Decrements of quality diff --git a/core/frontend/src/MarginPercent.ts b/core/frontend/src/MarginPercent.ts index 020c3c7d33ad..c3e069998de6 100644 --- a/core/frontend/src/MarginPercent.ts +++ b/core/frontend/src/MarginPercent.ts @@ -10,6 +10,7 @@ import { Geometry } from "@itwin/core-geometry"; /** Margins for white space to be left around view volumes for [[ViewState.lookAtVolume]]. * Values mean "fraction of view size" and must be between 0 and .25. * @public + * @extensionApi REAL */ export class MarginPercent { constructor(public left: number, public top: number, public right: number, public bottom: number) { diff --git a/core/frontend/src/Marker.ts b/core/frontend/src/Marker.ts index 714ebf67312c..0a7d3682bef0 100644 --- a/core/frontend/src/Marker.ts +++ b/core/frontend/src/Marker.ts @@ -55,6 +55,7 @@ function getMinScaleViewW(vp: Viewport): number { * Markers draw on top of all scene graphics, and show visual cues about locations of interest. * @see [Markers]($docs/learning/frontend/Markers) * @public + * @extensionApi REAL */ export class Marker implements CanvasDecoration { protected _scaleFactor?: Point2d; @@ -304,6 +305,7 @@ export class Marker implements CanvasDecoration { /** A cluster of one or more Markers that overlap one another in the view. The cluster's screen position is taken from its first entry. * Clusters also have a Marker themselves, that represents the whole group. The cluster marker isn't created until all entries have been added. * @public + * @extensionApi REAL */ export class Cluster { public readonly markers: T[]; diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 737ef3895419..667912230e28 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -109,6 +109,7 @@ export interface ToolTipOptions { /** Describes a message to be displayed to the user. * @public + * @extensionApi REAL */ export class NotifyMessageDetails { public displayTime = BeDuration.fromSeconds(5); diff --git a/core/frontend/src/ViewGlobalLocation.ts b/core/frontend/src/ViewGlobalLocation.ts index ba6dcee5e698..f58f95d6cef1 100644 --- a/core/frontend/src/ViewGlobalLocation.ts +++ b/core/frontend/src/ViewGlobalLocation.ts @@ -57,6 +57,7 @@ export function metersToRange(inputMeters: number, minimumOutput: number = 500, /** Queries the actual elevation of a cartographic point on the globe (using Bing elevation services) * @public + * @extensionApi REAL */ export async function queryTerrainElevationOffset(viewport: ScreenViewport, carto: Cartographic): Promise { const bingElevationProvider = new BingElevationProvider(); diff --git a/core/frontend/src/ViewRect.ts b/core/frontend/src/ViewRect.ts index d52484816c31..a40174a4a674 100644 --- a/core/frontend/src/ViewRect.ts +++ b/core/frontend/src/ViewRect.ts @@ -12,6 +12,7 @@ import { LowAndHighXY, XAndY } from "@itwin/core-geometry"; * * Increasing **x** moves from left to right, and increasing **y** moves from top to bottom. * @public + * @extensionApi REAL */ export class ViewRect { private _left!: number; diff --git a/core/frontend/src/extension/ExtensionHost.ts b/core/frontend/src/extension/ExtensionHost.ts index 8f574018877a..01925bed7be6 100644 --- a/core/frontend/src/extension/ExtensionHost.ts +++ b/core/frontend/src/extension/ExtensionHost.ts @@ -18,6 +18,8 @@ import type { RenderSystem } from "../render/RenderSystem"; /** * Subset of IModelApp exposed to Extensions * @beta + * @preview + * @extensionApi REAL */ export class ExtensionHost { protected constructor() { } diff --git a/core/frontend/src/render/FeatureSymbology.ts b/core/frontend/src/render/FeatureSymbology.ts index 38fb7c2f92b2..f6045342423d 100644 --- a/core/frontend/src/render/FeatureSymbology.ts +++ b/core/frontend/src/render/FeatureSymbology.ts @@ -15,6 +15,7 @@ import { ViewState } from "../ViewState"; /** Contains types that enable an application to customize how [Feature]($common)s are drawn within a [[Viewport]]. * @public + * @extensionApi REAL */ export namespace FeatureSymbology { /** An object that serves as the source of a [[FeatureSymbology.Overrides]]. diff --git a/core/frontend/src/render/GraphicBranch.ts b/core/frontend/src/render/GraphicBranch.ts index 8f70a0d5f523..e19d7fd95a89 100644 --- a/core/frontend/src/render/GraphicBranch.ts +++ b/core/frontend/src/render/GraphicBranch.ts @@ -17,8 +17,8 @@ export interface GraphicBranchFrustum { }; } -import { disposeArray, IDisposable } from "@itwin/core-bentley"; -import { FeatureAppearanceProvider, HiddenLine, ViewFlagOverrides, ViewFlags } from "@itwin/core-common"; +import { disposeArray, IDisposable } from "@itwin/core-bentley"; +import { FeatureAppearanceProvider, HiddenLine, ViewFlagOverrides, ViewFlags } from "@itwin/core-common"; import { IModelConnection } from "../IModelConnection"; import { FeatureSymbology } from "./FeatureSymbology"; import { RenderClipVolume } from "./RenderClipVolume"; @@ -41,6 +41,7 @@ export enum AnimationNodeId { * Branches can be nested to build an arbitrarily-complex scene graph. * @see [[RenderSystem.createBranch]] * @public + * @extensionApi REAL */ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ { /** The child nodes of this branch */ @@ -50,7 +51,7 @@ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing. * @see [[setViewFlagOverrides]]. */ - public viewFlagOverrides: ViewFlagOverrides = {}; + public viewFlagOverrides: ViewFlagOverrides = {}; /** Optional symbology overrides to be applied to all graphics in this branch */ public symbologyOverrides?: FeatureSymbology.Overrides; /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id. @@ -78,18 +79,18 @@ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]]. * @returns The result of applying [[viewFlagOverrides]] to `flags`. */ - public getViewFlags(flags: ViewFlags): ViewFlags { - return flags.override(this.viewFlagOverrides); + public getViewFlags(flags: ViewFlags): ViewFlags { + return flags.override(this.viewFlagOverrides); } /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */ public setViewFlags(flags: ViewFlags): void { - this.viewFlagOverrides = { ...flags }; + this.viewFlagOverrides = { ...flags }; } /** Change [[viewFlagOverrides]]. */ public setViewFlagOverrides(ovr: ViewFlagOverrides): void { - this.viewFlagOverrides = { ...ovr }; + this.viewFlagOverrides = { ...ovr }; } /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */ diff --git a/core/frontend/src/render/Pixel.ts b/core/frontend/src/render/Pixel.ts index 28298e9c67c0..9c4b1e40e751 100644 --- a/core/frontend/src/render/Pixel.ts +++ b/core/frontend/src/render/Pixel.ts @@ -13,6 +13,7 @@ import { IModelConnection } from "../IModelConnection"; /** Describes aspects of a pixel as read from a [[Viewport]]. * @see [[Viewport.readPixels]]. * @public + * @extensionApi REAL */ export namespace Pixel { /** Describes a single pixel within a [[Pixel.Buffer]]. */ diff --git a/core/frontend/src/tile/ImdlReader.ts b/core/frontend/src/tile/ImdlReader.ts index f702763b87f5..a396d247c924 100644 --- a/core/frontend/src/tile/ImdlReader.ts +++ b/core/frontend/src/tile/ImdlReader.ts @@ -44,6 +44,7 @@ export interface ImdlReaderResult extends IModelTileContent { * @param is3d True if the graphics are 3d. * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch. * @public + * @extensionApi REAL */ export async function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise { const stream = new ByteStream(bytes.buffer); diff --git a/core/frontend/src/tile/map/BingElevation.ts b/core/frontend/src/tile/map/BingElevation.ts index 445256d9cbe2..a460328c9c00 100644 --- a/core/frontend/src/tile/map/BingElevation.ts +++ b/core/frontend/src/tile/map/BingElevation.ts @@ -23,6 +23,7 @@ import { RenderSystem } from "../../render/RenderSystem"; /** Provides an interface to the [Bing Maps elevation services](https://docs.microsoft.com/en-us/bingmaps/rest-services/elevations/). * @public + * @extensionApi REAL */ export class BingElevationProvider { private static _scratchRange = Range3d.createNull(); diff --git a/core/frontend/src/tools/EditManipulator.ts b/core/frontend/src/tools/EditManipulator.ts index f10bea42ddf2..073ff8c6ec99 100644 --- a/core/frontend/src/tools/EditManipulator.ts +++ b/core/frontend/src/tools/EditManipulator.ts @@ -25,6 +25,7 @@ import { ManipulatorToolEvent } from "./ToolAdmin"; * - Respond to selection changed event to create control handles as pickable decorations when the desired element(s) or pickable decoration is selected. * - Respond to button events on the control handle decoration and run a sub-class of [[EditManipulator.HandleTool]] to modify. * @public + * @extensionApi REAL */ export namespace EditManipulator { /** Specifies the event for [[EditManipulator.HandleProvider.onManipulatorEvent]] */ diff --git a/core/frontend/src/tools/PrimitiveTool.ts b/core/frontend/src/tools/PrimitiveTool.ts index 632d27efbbc0..48363821d45c 100644 --- a/core/frontend/src/tools/PrimitiveTool.ts +++ b/core/frontend/src/tools/PrimitiveTool.ts @@ -17,6 +17,7 @@ import { BeButton, BeButtonEvent, CoordinateLockOverrides, CoreTools, Interactiv /** The PrimitiveTool class can be used to implement tools to create or modify geometric elements. * @see [Writing a PrimitiveTool]($docs/learning/frontend/primitivetools.md) * @public + * @extensionApi REAL */ export abstract class PrimitiveTool extends InteractiveTool { /** The viewport within which the tool operates. diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index 81bd745913a2..51e974c48fc5 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -124,6 +124,7 @@ export interface BeButtonEventProps { /** Object sent to Tools that holds information about button/touch/wheel events. * @public + * @extensionApi REAL */ export class BeButtonEvent implements BeButtonEventProps { private readonly _point: Point3d = new Point3d(); @@ -315,6 +316,7 @@ export class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps { * @see [[InteractiveTool]] for a base Tool class to handle user input events from a Viewport. * @see [Tools]($docs/learning/frontend/tools.md) * @public + * @extensionApi REAL */ export class Tool { /** If true, this Tool will not appear in the list from [[ToolRegistry.getToolList]]. This should be overridden in subclasses to hide them. */ @@ -447,6 +449,7 @@ export enum EventHandled { No = 0, Yes = 1 } /** A Tool that may be installed, via [[ToolAdmin]], to handle user input. The ToolAdmin manages the currently installed ViewingTool, PrimitiveTool, * InputCollector, and IdleTool. Each must derive from this class and there may only be one of each type installed at a time. * @public + * @extensionApi REAL */ export abstract class InteractiveTool extends Tool { @@ -712,6 +715,7 @@ export abstract class InteractiveTool extends Tool { * (ex. get a distance by snapping to 2 points) without affecting the state of the active primitive tool. * An InputCollector will suspend the active PrimitiveTool and can be suspended by a ViewTool. * @public + * @extensionApi REAL */ export abstract class InputCollector extends InteractiveTool { public override async run(..._args: any[]): Promise { diff --git a/core/frontend/src/tools/ToolAssistance.ts b/core/frontend/src/tools/ToolAssistance.ts index 6bc6d203f883..a15f693d6ed7 100644 --- a/core/frontend/src/tools/ToolAssistance.ts +++ b/core/frontend/src/tools/ToolAssistance.ts @@ -112,6 +112,7 @@ export interface ToolAssistanceInstructions { /** Tool Assistance helper methods. * @public + * @extensionApi REAL */ export class ToolAssistance { diff --git a/core/frontend/src/tools/ViewTool.ts b/core/frontend/src/tools/ViewTool.ts index 84006fdfa5b8..f525325d3e7c 100644 --- a/core/frontend/src/tools/ViewTool.ts +++ b/core/frontend/src/tools/ViewTool.ts @@ -88,6 +88,7 @@ const inertialDampen = (pt: Vector3d) => { /** An InteractiveTool that manipulates a view. * @public + * @extensionApi REAL */ export abstract class ViewTool extends InteractiveTool { public static translate(val: string) { return CoreTools.translate(`View.${val}`); } From bc7fdb0ef8ab26c58f4fa351f75aa71573bf6f03 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:23:56 -0600 Subject: [PATCH 26/76] Added tags to core-frontend interfaces --- core/frontend/src/DisplayStyleState.ts | 1 + core/frontend/src/ElementLocateManager.ts | 5 ++++- core/frontend/src/FeatureOverrideProvider.ts | 1 + core/frontend/src/FrontendHubAccess.ts | 5 ++++- core/frontend/src/FuzzySearch.ts | 1 + core/frontend/src/IModelApp.ts | 1 + core/frontend/src/NotificationManager.ts | 1 + core/frontend/src/SelectionSet.ts | 3 +++ core/frontend/src/ViewAnimation.ts | 6 ++++++ core/frontend/src/ViewCreator2d.ts | 1 + core/frontend/src/ViewCreator3d.ts | 1 + core/frontend/src/ViewGlobalLocation.ts | 2 ++ core/frontend/src/ViewManager.ts | 2 ++ core/frontend/src/ViewState.ts | 1 + core/frontend/src/Viewport.ts | 6 ++++++ core/frontend/src/render/CanvasDecoration.ts | 1 + core/frontend/src/render/GraphicBranch.ts | 1 + core/frontend/src/render/GraphicBuilder.ts | 6 ++++++ core/frontend/src/render/GraphicPrimitive.ts | 13 +++++++++++++ .../src/render/ParticleCollectionBuilder.ts | 3 +++ core/frontend/src/render/RenderTexture.ts | 4 ++++ .../frontend/src/render/ScreenSpaceEffectBuilder.ts | 8 ++++++++ core/frontend/src/tile/DisclosedTileTreeSet.ts | 1 + core/frontend/src/tile/TileAdmin.ts | 1 + core/frontend/src/tile/TileContent.ts | 1 + core/frontend/src/tile/TileDrawArgs.ts | 1 + core/frontend/src/tile/TileParams.ts | 1 + core/frontend/src/tile/TileTreeOwner.ts | 1 + core/frontend/src/tile/TileTreeParams.ts | 1 + core/frontend/src/tile/TileTreeSupplier.ts | 1 + core/frontend/src/tile/TiledGraphicsProvider.ts | 1 + core/frontend/src/tools/ClipViewTool.ts | 1 + core/frontend/src/tools/Tool.ts | 5 +++++ core/frontend/src/tools/ToolAssistance.ts | 4 ++++ 34 files changed, 90 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/DisplayStyleState.ts b/core/frontend/src/DisplayStyleState.ts index 418183173b66..a9b9d806edcb 100644 --- a/core/frontend/src/DisplayStyleState.ts +++ b/core/frontend/src/DisplayStyleState.ts @@ -34,6 +34,7 @@ export class TerrainDisplayOverrides { /** Options controlling display of [OpenStreetMap Buildings](https://cesium.com/platform/cesium-ion/content/cesium-osm-buildings/). * @see [[DisplayStyleState.setOSMBuildingDisplay]]. * @public + * @extensionApi */ export interface OsmBuildingDisplayOptions { /** If defined, enables or disables display of the buildings by attaching or detaching the OpenStreetMap Buildings reality model. */ diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index bb57e0086a0f..0657042ee97c 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -118,7 +118,10 @@ export class LocateResponse { } } -/** @public */ +/** + * @public + * @extensionApi + */ export interface HitListHolder { setHitList(list: HitList | undefined): void; } diff --git a/core/frontend/src/FeatureOverrideProvider.ts b/core/frontend/src/FeatureOverrideProvider.ts index 04e1448b0119..6f18f65623aa 100644 --- a/core/frontend/src/FeatureOverrideProvider.ts +++ b/core/frontend/src/FeatureOverrideProvider.ts @@ -16,6 +16,7 @@ import { FeatureSymbology } from "./render/FeatureSymbology"; * * @see [[Viewport.addFeatureOverrideProvider]] to register a provider with a viewport. * @public + * @extensionApi */ export interface FeatureOverrideProvider { /** Add to the supplied overrides any symbology overrides to be applied to the specified viewport. */ diff --git a/core/frontend/src/FrontendHubAccess.ts b/core/frontend/src/FrontendHubAccess.ts index 7faa6d3bb0e6..694a51e3c8d1 100644 --- a/core/frontend/src/FrontendHubAccess.ts +++ b/core/frontend/src/FrontendHubAccess.ts @@ -9,7 +9,10 @@ import { AccessToken, GuidString } from "@itwin/core-bentley"; import { ChangesetId, IModelVersion } from "@itwin/core-common"; -/** @public */ +/** + * @public + * @extensionApi + */ export interface IModelIdArg { iModelId: GuidString; accessToken: AccessToken; diff --git a/core/frontend/src/FuzzySearch.ts b/core/frontend/src/FuzzySearch.ts index 72e6f8e7210e..424b64a9af56 100644 --- a/core/frontend/src/FuzzySearch.ts +++ b/core/frontend/src/FuzzySearch.ts @@ -111,6 +111,7 @@ export class FuzzySearch { /** Interface implemented by objects returned while iterating through FuzzySearchResults * @public + * @extensionApi */ export interface FuzzySearchResult { /** Return the current result object */ diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index 565cbdf09d40..459891c2b725 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -56,6 +56,7 @@ require("./IModeljs-css"); /** Options that can be supplied with [[IModelAppOptions]] to customize frontend security. * @public + * @extensionApi */ export interface FrontendSecurityOptions { /** Configures protection from Cross Site Request Forgery attacks. */ diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 667912230e28..71e5987cc369 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -101,6 +101,7 @@ export enum MessageBoxValue { /** Describes the behavior of a tooltip created using [[NotificationManager.openToolTip]]. * @public + * @extensionApi */ export interface ToolTipOptions { duration?: BeDuration; diff --git a/core/frontend/src/SelectionSet.ts b/core/frontend/src/SelectionSet.ts index a420375228ac..1888990bbd8b 100644 --- a/core/frontend/src/SelectionSet.ts +++ b/core/frontend/src/SelectionSet.ts @@ -25,6 +25,7 @@ export enum SelectionSetEventType { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are added to the selection set. * @public + * @extensionApi */ export interface SelectAddEvent { type: SelectionSetEventType.Add; @@ -36,6 +37,7 @@ export interface SelectAddEvent { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are removed from the selection set. * @public + * @extensionApi */ export interface SelectRemoveEvent { /** The type of operation that produced this event. */ @@ -48,6 +50,7 @@ export interface SelectRemoveEvent { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are simultaneously added to and removed from the selection set. * @public + * @extensionApi */ export interface SelectReplaceEvent { type: SelectionSetEventType.Replace; diff --git a/core/frontend/src/ViewAnimation.ts b/core/frontend/src/ViewAnimation.ts index 627e0d8023ae..c0224e83c6c0 100644 --- a/core/frontend/src/ViewAnimation.ts +++ b/core/frontend/src/ViewAnimation.ts @@ -19,6 +19,7 @@ import { Point3d } from "@itwin/core-geometry"; * the viewport is closed, or viewing tools operate on it, etc. * @see [[Viewport.setAnimator]] to apply an animator to a viewport. * @public + * @extensionApi */ export interface Animator { /** Apply animation to the viewport. Return true when animation is completed, causing the animator to be removed from the viewport. */ @@ -30,6 +31,7 @@ export interface Animator { /** Options that control how an Viewport animation behaves. * @public + * @extensionApi */ export interface ViewAnimationOptions { /** Amount of time for animation, in milliseconds. Default is [[ScreenViewport.animation.time.normal]] */ @@ -44,6 +46,7 @@ export interface ViewAnimationOptions { /** Options that control how a view is aligned with the globe. * @public + * @extensionApi */ export interface GlobalAlignmentOptions { /** The target point about which the alignment occurs. This point will remain stationary in the view */ @@ -56,6 +59,7 @@ export interface GlobalAlignmentOptions { /** A method to be called if an error occurs while adjusting a ViewState's extents * @public + * @extensionApi */ export interface OnViewExtentsError { /** Function to be called when the extents are adjusted due to a limits error (view too larger or too small) */ @@ -64,6 +68,7 @@ export interface OnViewExtentsError { /** Options that control the margin around the edges of a volume for lookAt and Fit view operations * @public + * @extensionApi */ export interface MarginOptions { /** The percentage of the view to leave blank around the edges. */ @@ -72,6 +77,7 @@ export interface MarginOptions { /** Options that control how operations that change a viewport behave. * @public + * @extensionApi */ export interface ViewChangeOptions extends OnViewExtentsError, ViewAnimationOptions { /** Whether to save the result of this change into the view undo stack. Default is to save in undo. */ diff --git a/core/frontend/src/ViewCreator2d.ts b/core/frontend/src/ViewCreator2d.ts index 4275acb16644..66fba927b7f4 100644 --- a/core/frontend/src/ViewCreator2d.ts +++ b/core/frontend/src/ViewCreator2d.ts @@ -27,6 +27,7 @@ import { ViewState, ViewState2d } from "./ViewState"; /** Options for creating a [[ViewState2d]] via [[ViewCreator2d]]. * @public + * @extensionApi */ export interface ViewCreator2dOptions { /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */ diff --git a/core/frontend/src/ViewCreator3d.ts b/core/frontend/src/ViewCreator3d.ts index 77bae5035429..21c55823d5f8 100644 --- a/core/frontend/src/ViewCreator3d.ts +++ b/core/frontend/src/ViewCreator3d.ts @@ -25,6 +25,7 @@ import { SpatialViewState } from "./SpatialViewState"; /** Options for creating a [[ViewState3d]] via [[ViewCreator3d]]. * @public + * @extensionApi */ export interface ViewCreator3dOptions { /** Turn [[Camera]] on when generating the view. */ diff --git a/core/frontend/src/ViewGlobalLocation.ts b/core/frontend/src/ViewGlobalLocation.ts index f58f95d6cef1..9769b3b4a164 100644 --- a/core/frontend/src/ViewGlobalLocation.ts +++ b/core/frontend/src/ViewGlobalLocation.ts @@ -14,6 +14,7 @@ import { ViewState3d } from "./ViewState"; /** Describes a rectangular area of the earth using cartographic data structures. * @public + * @extensionApi */ export interface GlobalLocationArea { southwest: Cartographic, northeast: Cartographic } @@ -21,6 +22,7 @@ export interface GlobalLocationArea { southwest: Cartographic, northeast: Cartog * The viewed area of the location can be optionally specified. * The center of the location is specified with the center position. * @public + * @extensionApi */ export interface GlobalLocation { center: Cartographic, area?: GlobalLocationArea } diff --git a/core/frontend/src/ViewManager.ts b/core/frontend/src/ViewManager.ts index aa9fd5ba2426..3dcf48e0b24f 100644 --- a/core/frontend/src/ViewManager.ts +++ b/core/frontend/src/ViewManager.ts @@ -19,6 +19,7 @@ import { System } from "./render/webgl/System"; /** Interface for drawing [[Decorations]] into, or on top of, the active [[ScreenViewport]]s managed by [[ViewManager]]. * Decorators generate [[Decorations]]. * @public + * @extensionApi */ export interface Decorator extends ViewportDecorator { /** If the [[decorate]] method created pickable graphics, return true if the supplied Id is from this Decorator. @@ -62,6 +63,7 @@ export interface Decorator extends ViewportDecorator { /** Argument for [[ViewManager.onSelectedViewportChanged]] * @public + * @extensionApi */ export interface SelectedViewportChangedArgs { current?: ScreenViewport; diff --git a/core/frontend/src/ViewState.ts b/core/frontend/src/ViewState.ts index cd80ac54c17e..2b4fd20de4e8 100644 --- a/core/frontend/src/ViewState.ts +++ b/core/frontend/src/ViewState.ts @@ -46,6 +46,7 @@ import { EnvironmentDecorations } from "./EnvironmentDecorations"; /** Describes the largest and smallest values allowed for the extents of a [[ViewState]]. * Attempts to exceed these limits in any dimension will fail, preserving the previous extents. * @public + * @extensionApi */ export interface ExtentLimits { /** The smallest allowed extent in any dimension. */ diff --git a/core/frontend/src/Viewport.ts b/core/frontend/src/Viewport.ts index 8369da371582..3c5e46c17ba4 100644 --- a/core/frontend/src/Viewport.ts +++ b/core/frontend/src/Viewport.ts @@ -65,6 +65,7 @@ import { FlashSettings } from "./FlashSettings"; /** Interface for drawing [[Decorations]] into, or on top of, a [[ScreenViewport]]. * @public + * @extensionApi */ export interface ViewportDecorator { /** Override to enable cached decorations for this decorator. @@ -109,6 +110,7 @@ export enum DepthPointSource { /** Options to control behavior of [[Viewport.pickDepthPoint]]. * @public + * @extensionApi */ export interface DepthPointOptions { /** If true, geometry with the "non-locatable" flag set will not be selected. */ @@ -122,6 +124,7 @@ export interface DepthPointOptions { /** The minimum and maximum values for the z-depth of a rectangle of screen space. * Values are in [[CoordSystem.Npc]] so they will be between 0 and 1.0. * @public + * @extensionApi */ export interface DepthRangeNpc { /** The value closest to the back. */ @@ -132,6 +135,7 @@ export interface DepthRangeNpc { /** Options to allow changing the view rotation with zoomTo methods. * @public + * @extensionApi */ export interface ZoomToOptions { /** Set view rotation from standard view identifier. */ @@ -144,6 +148,7 @@ export interface ZoomToOptions { /** Options for changing the viewed Model of a 2d view via [[Viewport.changeViewedModel2d]] * @public + * @extensionApi */ export interface ChangeViewedModel2dOptions { /** If true, perform a "fit view" operation after changing to the new 2d model. */ @@ -3281,6 +3286,7 @@ function _clear2dCanvas(canvas: HTMLCanvasElement) { /** Options supplied when creating an [[OffScreenViewport]]. * @see [[OffScreenViewport.create]]. * @public + * @extensionApi */ export interface OffScreenViewportOptions { /** The view to be drawn in the viewport. */ diff --git a/core/frontend/src/render/CanvasDecoration.ts b/core/frontend/src/render/CanvasDecoration.ts index c1bae174aacf..2b9869fffe1a 100644 --- a/core/frontend/src/render/CanvasDecoration.ts +++ b/core/frontend/src/render/CanvasDecoration.ts @@ -13,6 +13,7 @@ import { BeButtonEvent, BeWheelEvent } from "../tools/Tool"; * [2d canvas](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D) on top of a ScreenViewport. * CanvasDecorations may be pickable by implementing [[pick]]. * @public + * @extensionApi */ export interface CanvasDecoration { /** diff --git a/core/frontend/src/render/GraphicBranch.ts b/core/frontend/src/render/GraphicBranch.ts index e19d7fd95a89..7f0ce3e80655 100644 --- a/core/frontend/src/render/GraphicBranch.ts +++ b/core/frontend/src/render/GraphicBranch.ts @@ -120,6 +120,7 @@ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ /** Options passed to [[RenderSystem.createGraphicBranch]]. * @public + * @extensionApi */ export interface GraphicBranchOptions { /** Clip applied to the graphics in the branch. */ diff --git a/core/frontend/src/render/GraphicBuilder.ts b/core/frontend/src/render/GraphicBuilder.ts index 1ed2c386cf21..1d8616b4a58d 100644 --- a/core/frontend/src/render/GraphicBuilder.ts +++ b/core/frontend/src/render/GraphicBuilder.ts @@ -81,6 +81,7 @@ export enum GraphicType { * For example, to prevent graphics produced by [[readElementGraphics]] from being hilited when their corresponding element is in the [[SelectionSet]], * pass `{ noHilite: true }` to [[readElementGraphics]]. * @public + * @extensionApi */ export interface BatchOptions { /** Identifies the [[Tile]] associated with the batch, chiefly for debugging purposes. @@ -99,6 +100,7 @@ export interface BatchOptions { /** Options used as part of [[GraphicBuilderOptions]] to describe a pickable [[RenderGraphic]]. * @public + * @extensionApi */ export interface PickableGraphicOptions extends BatchOptions { /** Unique identifier for the graphic. @@ -111,6 +113,7 @@ export interface PickableGraphicOptions extends BatchOptions { * @see [[ViewportGraphicBuilderOptions]] to create a graphic builder for a [[Viewport]]. * @see [[CustomGraphicBuilderOptions]] to create a graphic builder unassociated with any [[Viewport]]. * @public + * @extensionApi */ export interface GraphicBuilderOptions { /** The type of graphic to produce. */ @@ -154,6 +157,7 @@ export interface GraphicBuilderOptions { * Default values for [[GraphicBuilderOptions.wantNormals]] and [[GraphicBuilderOptions.generateEdges]] will be determined by the viewport's [ViewFlags]($common). * The [[GraphicBuilder.iModel]] will be set to the viewport's [[IModelConnection]]. * @public + * @extensionApi */ export interface ViewportGraphicBuilderOptions extends GraphicBuilderOptions { /** The viewport in which the resultant [[RenderGraphic]] is to be drawn. */ @@ -171,6 +175,7 @@ export interface ViewportGraphicBuilderOptions extends GraphicBuilderOptions { * For [[GraphicType.ViewOverlay]] and [[GraphicType.ViewBackground]], which already define their geometry in pixels, the chord tolerance should typically be 1. * @see [[CustomGraphicBuilderOptions.computeChordTolerance]]. * @public + * @extensionApi */ export interface ComputeChordToleranceArgs { /** The graphic builder being used to produce the graphics. */ @@ -184,6 +189,7 @@ export interface ComputeChordToleranceArgs { * This is primarily useful when the same graphic is to be saved and reused for display in multiple viewports and for which a chord tolerance can be computed * independently of each viewport's [Frustum]($common). * @public + * @extensionApi */ export interface CustomGraphicBuilderOptions extends GraphicBuilderOptions { /** Optionally, the IModelConnection with which the graphic is associated. */ diff --git a/core/frontend/src/render/GraphicPrimitive.ts b/core/frontend/src/render/GraphicPrimitive.ts index f62bc4b53108..f6d69bc836b0 100644 --- a/core/frontend/src/render/GraphicPrimitive.ts +++ b/core/frontend/src/render/GraphicPrimitive.ts @@ -10,6 +10,7 @@ import { Arc3d, Loop, Path, Point2d, Point3d, Polyface, SolidPrimitive } from "@ /** Base interface for a 2d [[GraphicPrimitive]] that can be supplied to [[GraphicBuilder.addPrimitive]]. * @public + * @extensionApi */ export interface GraphicPrimitive2d { /** Z value in local coordinates to use for each point. */ @@ -19,6 +20,7 @@ export interface GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString]]. * @public + * @extensionApi */ export interface GraphicLineString { type: "linestring"; @@ -28,6 +30,7 @@ export interface GraphicLineString { /** A [[GraphicPrimitive]] representing a 2d line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString2d]]. * @public + * @extensionApi */ export interface GraphicLineString2d extends GraphicPrimitive2d { type: "linestring2d"; @@ -37,6 +40,7 @@ export interface GraphicLineString2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString]]. * @public + * @extensionApi */ export interface GraphicPointString { type: "pointstring"; @@ -46,6 +50,7 @@ export interface GraphicPointString { /** A [[GraphicPrimitive]] representing a 2d point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString2d]]. * @public + * @extensionApi */ export interface GraphicPointString2d extends GraphicPrimitive2d { type: "pointstring2d"; @@ -55,6 +60,7 @@ export interface GraphicPointString2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a closed 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape]]. * @public + * @extensionApi */ export interface GraphicShape { type: "shape"; @@ -64,6 +70,7 @@ export interface GraphicShape { /** A [[GraphicPrimitive]] representing a closed 2d region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape2d]]. * @public + * @extensionApi */ export interface GraphicShape2d extends GraphicPrimitive2d { type: "shape2d"; @@ -73,6 +80,7 @@ export interface GraphicShape2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a 3d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc]]. * @public + * @extensionApi */ export interface GraphicArc { type: "arc"; @@ -84,6 +92,7 @@ export interface GraphicArc { /** A [[GraphicPrimitive]] representing a 2d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc2d]]. * @public + * @extensionApi */ export interface GraphicArc2d { type: "arc2d"; @@ -96,6 +105,7 @@ export interface GraphicArc2d { /** A [[GraphicPrimitive]] representing a 3d open path that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPath]]. * @public + * @extensionApi */ export interface GraphicPath { type: "path"; @@ -105,6 +115,7 @@ export interface GraphicPath { /** A [[GraphicPrimitive]] representing a 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLoop]]. * @public + * @extensionApi */ export interface GraphicLoop { type: "loop"; @@ -114,6 +125,7 @@ export interface GraphicLoop { /** A [[GraphicPrimitive]] representing a mesh that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPolyface]]. * @public + * @extensionApi */ export interface GraphicPolyface { type: "polyface"; @@ -124,6 +136,7 @@ export interface GraphicPolyface { /** A [[GraphicPrimitive]] representing a [SolidPrimitive]($core-geometry) to be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addSolidPrimitive]]. * @public + * @extensionApi */ export interface GraphicSolidPrimitive { type: "solidPrimitive"; diff --git a/core/frontend/src/render/ParticleCollectionBuilder.ts b/core/frontend/src/render/ParticleCollectionBuilder.ts index ab2af6f645f7..cf89266fabda 100644 --- a/core/frontend/src/render/ParticleCollectionBuilder.ts +++ b/core/frontend/src/render/ParticleCollectionBuilder.ts @@ -20,6 +20,7 @@ import { DisplayParams } from "./primitives/DisplayParams"; /** Parameters used to construct a [[ParticleCollectionBuilder]]. * @public + * @extensionApi */ export interface ParticleCollectionBuilderParams { /** The image mapped to each particle quad. @@ -57,6 +58,7 @@ export interface ParticleCollectionBuilderParams { /** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]]. * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space. * @public + * @extensionApi */ export interface ParticleProps extends XYAndZ { /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]]. @@ -82,6 +84,7 @@ export interface ParticleProps extends XYAndZ { * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects. * @see [SnowEffect]($frontend-devtools) for an example of a particle effect. * @public + * @extensionApi */ export interface ParticleCollectionBuilder { /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted. diff --git a/core/frontend/src/render/RenderTexture.ts b/core/frontend/src/render/RenderTexture.ts index d846f427fed9..94ab0260665d 100644 --- a/core/frontend/src/render/RenderTexture.ts +++ b/core/frontend/src/render/RenderTexture.ts @@ -35,6 +35,7 @@ export type TextureCacheKey = string | Gradient.Symb; * which point it will be disposed. * @see [[TextureOwnership]] * @public + * @extensionApi */ export interface TextureCacheOwnership { /** The iModel on which the texture will be cached. */ @@ -63,6 +64,7 @@ export type TextureImageSource = HTMLImageElement | ImageBuffer; // ###TODO | HT /** Describes the image from which to create a [RenderTexture]($common). * @see [[CreateTextureArgs.image]] * @public + * @extensionApi */ export interface TextureImage { /** The object that supplies the texture image. */ @@ -75,6 +77,7 @@ export interface TextureImage { /** Arguments supplied to [[RenderSystem.createTexture]] to create a [RenderTexture]($common). * @public + * @extensionApi */ export interface CreateTextureArgs { /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */ @@ -92,6 +95,7 @@ export interface CreateTextureArgs { /** Arguments supplied to [[RenderSystem.createTextureFromSource]]. * @public + * @extensionApi */ export interface CreateTextureFromSourceArgs { /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */ diff --git a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts index 76925bff6f92..022fe2447f27 100644 --- a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts +++ b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts @@ -47,6 +47,7 @@ export enum VaryingType { * @see [[UniformParams.bind]] to provide the value of the variable. * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader. * @public + * @extensionApi */ export interface Uniform { /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */ @@ -67,6 +68,7 @@ export interface Uniform { /** Context supplied to [[UniformParams.bind]]. * @public + * @extensionApi */ export interface UniformContext { /** The viewport to which the screen-space effect is to be applied. */ @@ -76,6 +78,7 @@ export interface UniformContext { /** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program. * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader. * @public + * @extensionApi */ export interface UniformParams { /** The data type of the uniform variable. */ @@ -89,6 +92,7 @@ export interface UniformParams { /** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program. * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader. * @public + * @extensionApi */ export interface UniformArrayParams extends UniformParams { /** The number of elements in the array. */ @@ -104,6 +108,7 @@ export interface UniformArrayParams extends UniformParams { * The [[RenderSystem]] takes care of adjusting the source code for some of these differences, e.g., `varying` (WebGL1) vs `in` and `out` (WebGL2); * and `TEXTURE`, `TEXTURE_CUBE`, and `TEXTURE_PROJ` macros are provided to replace `texture2D`, `textureCube`, and `texture2DProj` with their WebGL2 equivalents when applicable. * @public + * @extensionApi */ export interface ScreenSpaceEffectSource { /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]). @@ -134,6 +139,7 @@ export interface ScreenSpaceEffectSource { /** Parameters used to create a [[ScreenSpaceEffectBuilder]]. * @see [[RenderSystem.createScreenSpaceEffectBuilder]]. * @public + * @extensionApi */ export interface ScreenSpaceEffectBuilderParams { /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */ @@ -149,6 +155,7 @@ export interface ScreenSpaceEffectBuilderParams { /** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]]. * @public + * @extensionApi */ export interface ScreenSpaceEffectContext { /** The viewport to which the screen-space effect is to be applied. */ @@ -182,6 +189,7 @@ export interface ScreenSpaceEffectContext { * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss. * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations. * @public + * @extensionApi */ export interface ScreenSpaceEffectBuilder { /** True if the shader will be used with a WebGL 2 rendering context. */ diff --git a/core/frontend/src/tile/DisclosedTileTreeSet.ts b/core/frontend/src/tile/DisclosedTileTreeSet.ts index 42071e74138b..ee496943bb0d 100644 --- a/core/frontend/src/tile/DisclosedTileTreeSet.ts +++ b/core/frontend/src/tile/DisclosedTileTreeSet.ts @@ -12,6 +12,7 @@ import { TileTree } from "./internal"; /** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees. * @see [[DisclosedTileTreeSet]]. * @public + * @extensionApi */ export interface TileTreeDiscloser { /** Add all [[TileTree]]s referenced by this object to the set. */ diff --git a/core/frontend/src/tile/TileAdmin.ts b/core/frontend/src/tile/TileAdmin.ts index be5aa3d49371..620f32adbe2f 100644 --- a/core/frontend/src/tile/TileAdmin.ts +++ b/core/frontend/src/tile/TileAdmin.ts @@ -86,6 +86,7 @@ export type GpuMemoryLimit = "none" | "default" | "aggressive" | "relaxed" | num * @see [[TileAdmin.Props.gpuMemoryLimits]] to configure the limit at startup. * @see [[GpuMemoryLimit]] for a description of how the available limits and how they are imposed. * @public + * @extensionApi */ export interface GpuMemoryLimits { /** Limits applied to clients running on mobile devices. Defaults to "default" if undefined. */ diff --git a/core/frontend/src/tile/TileContent.ts b/core/frontend/src/tile/TileContent.ts index 2b90a7cae110..ef038a37ab1d 100644 --- a/core/frontend/src/tile/TileContent.ts +++ b/core/frontend/src/tile/TileContent.ts @@ -13,6 +13,7 @@ import { RenderGraphic } from "../render/RenderGraphic"; * Describes the contents of a [[Tile]]. Specific sub-types of [[Tile]] may describe their content using sub-types of this interface. * @see [[Tile.readContent]]. * @public + * @extensionApi */ export interface TileContent { /** Graphical representation of the tile's geometry. */ diff --git a/core/frontend/src/tile/TileDrawArgs.ts b/core/frontend/src/tile/TileDrawArgs.ts index 2e9109c8a306..85542524d5ea 100644 --- a/core/frontend/src/tile/TileDrawArgs.ts +++ b/core/frontend/src/tile/TileDrawArgs.ts @@ -29,6 +29,7 @@ const scratchMatrix4d = Matrix4d.createIdentity(); /** Parameters used to construct [[TileDrawArgs]]. * @public + * @extensionApi */ export interface TileDrawArgParams { /** Context for the scene into which the tiles are to be rendered. */ diff --git a/core/frontend/src/tile/TileParams.ts b/core/frontend/src/tile/TileParams.ts index 34518c097e80..5093337453db 100644 --- a/core/frontend/src/tile/TileParams.ts +++ b/core/frontend/src/tile/TileParams.ts @@ -12,6 +12,7 @@ import { Tile } from "./internal"; /** * Parameters used to construct a [[Tile]]. * @public + * @extensionApi */ export interface TileParams { /** This tile's parent tile, if any. diff --git a/core/frontend/src/tile/TileTreeOwner.ts b/core/frontend/src/tile/TileTreeOwner.ts index 8eea6cd4ecae..f5db81c1f22d 100644 --- a/core/frontend/src/tile/TileTreeOwner.ts +++ b/core/frontend/src/tile/TileTreeOwner.ts @@ -14,6 +14,7 @@ import { TileTree, TileTreeLoadStatus } from "./internal"; * @see [[TileTreeReference]] for an indirect reference to a TileTree by way of a TileTreeOwner. * @see [[Tiles.getTileTreeOwner]] to obtain a TileTreeOwner. * @public + * @extensionApi */ export interface TileTreeOwner { /** The iModel for this TileTree */ diff --git a/core/frontend/src/tile/TileTreeParams.ts b/core/frontend/src/tile/TileTreeParams.ts index c2856c5396ea..1fb98dab3309 100644 --- a/core/frontend/src/tile/TileTreeParams.ts +++ b/core/frontend/src/tile/TileTreeParams.ts @@ -15,6 +15,7 @@ import { TileLoadPriority } from "./internal"; /** Parameters used to construct a [[TileTree]]. * @public + * @extensionApi */ export interface TileTreeParams { /** Uniquely identifies the tile tree in the context of the [[IModelConnection]]. */ diff --git a/core/frontend/src/tile/TileTreeSupplier.ts b/core/frontend/src/tile/TileTreeSupplier.ts index 86c49609e0a2..520a9c557545 100644 --- a/core/frontend/src/tile/TileTreeSupplier.ts +++ b/core/frontend/src/tile/TileTreeSupplier.ts @@ -17,6 +17,7 @@ import { TileTree, TileTreeOwner } from "./internal"; * changes to its properties may affect comparison and therefore sorting order. * @see [[Tiles.getTileTreeOwner]] to obtain a tile tree from a supplier. * @public + * @extensionApi */ export interface TileTreeSupplier { /** Compare two tree Ids returning a negative number if `lhs` < rhs, a positive number if `lhs` > rhs, or 0 if the Ids are equivalent. */ diff --git a/core/frontend/src/tile/TiledGraphicsProvider.ts b/core/frontend/src/tile/TiledGraphicsProvider.ts index 89c89403a8f6..ed6fdba0237e 100644 --- a/core/frontend/src/tile/TiledGraphicsProvider.ts +++ b/core/frontend/src/tile/TiledGraphicsProvider.ts @@ -15,6 +15,7 @@ import { TileTreeReference } from "./internal"; * @see [Exploded View Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=explode-sample&imodel=House+Sample) for an interactive * demonstration of a custom provider. * @public + * @extensionApi */ export interface TiledGraphicsProvider { /** For each [[TileTreeReference]] belonging to this provider that should be drawn in the specified [[Viewport]], apply the provided function. */ diff --git a/core/frontend/src/tools/ClipViewTool.ts b/core/frontend/src/tools/ClipViewTool.ts index 0c60f8450d32..50bc5fa50c02 100644 --- a/core/frontend/src/tools/ClipViewTool.ts +++ b/core/frontend/src/tools/ClipViewTool.ts @@ -31,6 +31,7 @@ import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAss /** An object that can react to a view's clip being changed by tools or modify handles. * @public + * @extensionApi */ export interface ViewClipEventHandler { /** Add newly created clip geometry to selection set and show modify controls. */ diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index 51e974c48fc5..7a700a6c8aff 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -93,6 +93,7 @@ export class BeButtonState { /** Properties for constructing a BeButtonEvent * @public + * @extensionApi */ export interface BeButtonEventProps { /** The point for this event, in world coordinates. @@ -219,6 +220,7 @@ export class BeButtonEvent implements BeButtonEventProps { /** Properties for initializing a BeTouchEvent * @public + * @extensionApi */ export interface BeTouchEventProps extends BeButtonEventProps { touchEvent: TouchEvent; @@ -286,6 +288,7 @@ export class BeTouchEvent extends BeButtonEvent implements BeTouchEventProps { /** Properties for constructing a BeWheelEvent * @public + * @extensionApi */ export interface BeWheelEventProps extends BeButtonEventProps { wheelDelta?: number; @@ -766,6 +769,7 @@ export enum KeyinParseError { /** Possible errors form [[ToolRegistry.parseKeyin]]. * @public + * @extensionApi */ export interface ParseKeyinError { /** Union discriminator for [[ParseKeyinResult]]. */ @@ -776,6 +780,7 @@ export interface ParseKeyinError { /** Successful result from [[ToolRegistry.parseKeyin]]. * @public + * @extensionApi */ export interface ParsedKeyin { /** Union discriminator for [[ParseKeyinResult]]. */ diff --git a/core/frontend/src/tools/ToolAssistance.ts b/core/frontend/src/tools/ToolAssistance.ts index a15f693d6ed7..48610228c842 100644 --- a/core/frontend/src/tools/ToolAssistance.ts +++ b/core/frontend/src/tools/ToolAssistance.ts @@ -64,6 +64,7 @@ export enum ToolAssistanceInputMethod { /** Tool Assistance image keyboard keys * @public + * @extensionApi */ export interface ToolAssistanceKeyboardInfo { /** Text for keys to display */ @@ -74,6 +75,7 @@ export interface ToolAssistanceKeyboardInfo { /** Interface used to describe a Tool Assistance instruction. * @public + * @extensionApi */ export interface ToolAssistanceInstruction { /** Name of icon WebFont entry, or if specifying an SVG symbol, use "svg:" prefix to imported symbol Id. @@ -92,6 +94,7 @@ export interface ToolAssistanceInstruction { /** Interface used to describe a Tool Assistance section with a label and a set of instructions. * @public + * @extensionApi */ export interface ToolAssistanceSection { /** Instructions in the section. */ @@ -102,6 +105,7 @@ export interface ToolAssistanceSection { /** Interface used to describe Tool Assistance for a tool's state. * @public + * @extensionApi */ export interface ToolAssistanceInstructions { /** The main instruction. */ From b2c8161eb140fad4d1dadb7b33b8440ef4f29a98 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:27:20 -0600 Subject: [PATCH 27/76] Added tags to core-frontend types --- core/frontend/src/FlashSettings.ts | 1 + core/frontend/src/Marker.ts | 16 +++++++++++++--- core/frontend/src/SelectionSet.ts | 1 + core/frontend/src/Viewport.ts | 1 + core/frontend/src/render/CanvasDecoration.ts | 1 + core/frontend/src/render/GraphicPrimitive.ts | 1 + core/frontend/src/render/RenderGraphic.ts | 1 + core/frontend/src/render/RenderTexture.ts | 3 +++ core/frontend/src/tile/TileAdmin.ts | 1 + core/frontend/src/tools/Tool.ts | 11 +++++++++-- 10 files changed, 32 insertions(+), 5 deletions(-) diff --git a/core/frontend/src/FlashSettings.ts b/core/frontend/src/FlashSettings.ts index da60b2329d22..a483675a282c 100644 --- a/core/frontend/src/FlashSettings.ts +++ b/core/frontend/src/FlashSettings.ts @@ -23,6 +23,7 @@ export enum FlashMode { /** Options used to construct or clone a [[FlashSettings]]. All properties are mutable and optional; those left undefined receive their default * values. * @public + * @extensionApi */ export type FlashSettingsOptions = Mutable>; diff --git a/core/frontend/src/Marker.ts b/core/frontend/src/Marker.ts index 0a7d3682bef0..955b0da25ea0 100644 --- a/core/frontend/src/Marker.ts +++ b/core/frontend/src/Marker.ts @@ -21,16 +21,26 @@ import { ViewRect } from "./ViewRect"; /** The types that may be used for Markers * @public + * @extensionApi */ export type MarkerImage = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap; -/** @public */ +/** + * @public + * @extensionApi + */ export type MarkerFillStyle = string | CanvasGradient | CanvasPattern; -/** @public */ +/** + * @public + * @extensionApi + */ export type MarkerTextAlign = "left" | "right" | "center" | "start" | "end"; -/** @public */ +/** + * @public + * @extensionApi + */ export type MarkerTextBaseline = "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom"; function getMinScaleViewW(vp: Viewport): number { diff --git a/core/frontend/src/SelectionSet.ts b/core/frontend/src/SelectionSet.ts index 1888990bbd8b..90b9ec571984 100644 --- a/core/frontend/src/SelectionSet.ts +++ b/core/frontend/src/SelectionSet.ts @@ -74,6 +74,7 @@ export interface SelectReplaceEvent { * } * ``` * @public + * @extensionApi */ export type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent; diff --git a/core/frontend/src/Viewport.ts b/core/frontend/src/Viewport.ts index 3c5e46c17ba4..1c6338d47769 100644 --- a/core/frontend/src/Viewport.ts +++ b/core/frontend/src/Viewport.ts @@ -172,6 +172,7 @@ declare global { /** Payload for the [[Viewport.onFlashedIdChanged]] event indicating Ids of the currently- and/or previously-flashed objects. * @public + * @extensionApi */ export type OnFlashedIdChangedEventArgs = { readonly current: Id64String; diff --git a/core/frontend/src/render/CanvasDecoration.ts b/core/frontend/src/render/CanvasDecoration.ts index 2b9869fffe1a..8e046020d004 100644 --- a/core/frontend/src/render/CanvasDecoration.ts +++ b/core/frontend/src/render/CanvasDecoration.ts @@ -59,5 +59,6 @@ export interface CanvasDecoration { /** An array of [[CanvasDecoration]]s. * @public + * @extensionApi */ export type CanvasDecorationList = CanvasDecoration[]; diff --git a/core/frontend/src/render/GraphicPrimitive.ts b/core/frontend/src/render/GraphicPrimitive.ts index f6d69bc836b0..917293c741f8 100644 --- a/core/frontend/src/render/GraphicPrimitive.ts +++ b/core/frontend/src/render/GraphicPrimitive.ts @@ -163,5 +163,6 @@ export interface GraphicSolidPrimitive { * } * ``` * @public + * @extensionApi */ export type GraphicPrimitive = GraphicLineString | GraphicLineString2d | GraphicPointString | GraphicPointString2d | GraphicShape | GraphicShape2d | GraphicArc | GraphicArc2d | GraphicPath | GraphicLoop | GraphicPolyface | GraphicSolidPrimitive; diff --git a/core/frontend/src/render/RenderGraphic.ts b/core/frontend/src/render/RenderGraphic.ts index e00a23926d86..e725c4a6e04e 100644 --- a/core/frontend/src/render/RenderGraphic.ts +++ b/core/frontend/src/render/RenderGraphic.ts @@ -42,5 +42,6 @@ export abstract class RenderGraphicOwner extends RenderGraphic { /** An array of [[RenderGraphic]]s. * @public + * @extensionApi */ export type GraphicList = RenderGraphic[]; diff --git a/core/frontend/src/render/RenderTexture.ts b/core/frontend/src/render/RenderTexture.ts index 94ab0260665d..ab57357740d1 100644 --- a/core/frontend/src/render/RenderTexture.ts +++ b/core/frontend/src/render/RenderTexture.ts @@ -28,6 +28,7 @@ export enum TextureTransparency { /** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching. * @see [[TextureCacheOwnership]]. * @public + * @extensionApi */ export type TextureCacheKey = string | Gradient.Symb; @@ -52,12 +53,14 @@ export interface TextureCacheOwnership { * texture is responsible for calling its `dispose` method when it is no longer needed. * @see [[CreateTextureArgs.ownership]] * @public + * @extensionApi */ export type TextureOwnership = TextureCacheOwnership | "external"; /** An object from which a [RenderTexture]($common) can be created. * @see [[TextureImage.source]] * @public + * @extensionApi */ export type TextureImageSource = HTMLImageElement | ImageBuffer; // ###TODO | HTMLCanvasElement etc diff --git a/core/frontend/src/tile/TileAdmin.ts b/core/frontend/src/tile/TileAdmin.ts index 620f32adbe2f..7523386c9db1 100644 --- a/core/frontend/src/tile/TileAdmin.ts +++ b/core/frontend/src/tile/TileAdmin.ts @@ -79,6 +79,7 @@ export interface SelectedAndReadyTiles { * @see [[TileAdmin.gpuMemoryLimit]] to adjust the limit after startup. * @see [[TileAdmin.totalTileContentBytes]] for the current amount of GPU memory being used for tile contents. * @public + * @extensionApi */ export type GpuMemoryLimit = "none" | "default" | "aggressive" | "relaxed" | number; diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index 7a700a6c8aff..a14f83736cf3 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -17,10 +17,16 @@ import { IModelApp } from "../IModelApp"; import { DecorateContext, DynamicsContext } from "../ViewContext"; import { ScreenViewport } from "../Viewport"; -/** @public */ +/** + * @public + * @extensionApi + */ export type ToolType = typeof Tool; -/** @public */ +/** + * @public + * @extensionApi + */ export type ToolList = ToolType[]; /** @public */ @@ -793,6 +799,7 @@ export interface ParsedKeyin { /** The result type of [[ToolRegistry.parseKeyin]]. * @public + * @extensionApi */ export type ParseKeyinResult = ParsedKeyin | ParseKeyinError; From e362608f70d3b4e7ca81f7880a0c8abfaf4b9611 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 28 Jan 2022 10:28:51 -0600 Subject: [PATCH 28/76] Added tags to core-frontend enums --- core/frontend/src/AccuDraw.ts | 1 + core/frontend/src/AuxCoordSys.ts | 10 ++++++-- core/frontend/src/CoordSystem.ts | 1 + core/frontend/src/ElementLocateManager.ts | 7 +++++- core/frontend/src/FlashSettings.ts | 1 + core/frontend/src/HitDetail.ts | 23 +++++++++++++++---- core/frontend/src/NotificationManager.ts | 7 ++++++ core/frontend/src/SelectionSet.ts | 1 + core/frontend/src/StandardView.ts | 1 + core/frontend/src/ViewStatus.ts | 1 + core/frontend/src/Viewport.ts | 2 ++ core/frontend/src/render/GraphicBuilder.ts | 1 + core/frontend/src/render/RenderTexture.ts | 1 + .../src/render/ScreenSpaceEffectBuilder.ts | 2 ++ core/frontend/src/tile/Tile.ts | 4 ++++ core/frontend/src/tile/TileTree.ts | 1 + core/frontend/src/tile/TileTreeReference.ts | 1 + core/frontend/src/tools/ClipViewTool.ts | 1 + core/frontend/src/tools/SelectTool.ts | 3 +++ core/frontend/src/tools/Tool.ts | 20 +++++++++++++--- core/frontend/src/tools/ToolAdmin.ts | 10 ++++++-- core/frontend/src/tools/ToolAssistance.ts | 2 ++ 22 files changed, 89 insertions(+), 12 deletions(-) diff --git a/core/frontend/src/AccuDraw.ts b/core/frontend/src/AccuDraw.ts index 9794fc03b2ec..5bab8d339d3c 100644 --- a/core/frontend/src/AccuDraw.ts +++ b/core/frontend/src/AccuDraw.ts @@ -3084,6 +3084,7 @@ export class AccuDraw { /** Specify the rotation to return from [[AccuDrawHintBuilder.getContextRotation]]. * @public + * @extensionApi */ export enum ContextRotationId { Top, Front, Left, Bottom, Back, Right, View, Face } diff --git a/core/frontend/src/AuxCoordSys.ts b/core/frontend/src/AuxCoordSys.ts index 02fc7129a944..ef8e1d1ae1bd 100644 --- a/core/frontend/src/AuxCoordSys.ts +++ b/core/frontend/src/AuxCoordSys.ts @@ -19,7 +19,10 @@ import { CoordSystem } from "./CoordSystem"; import { Viewport } from "./Viewport"; import { ViewState } from "./ViewState"; -/** @public */ +/** + * @public + * @extensionApi + */ export enum ACSType { None = 0, Rectangular = 1, @@ -27,7 +30,10 @@ export enum ACSType { Spherical = 3, } -/** @public */ +/** + * @public + * @extensionApi + */ export enum ACSDisplayOptions { None = 0, // used for testing individual bits. Active = (1 << 0), diff --git a/core/frontend/src/CoordSystem.ts b/core/frontend/src/CoordSystem.ts index a355451bfd6c..93e3f7d0f540 100644 --- a/core/frontend/src/CoordSystem.ts +++ b/core/frontend/src/CoordSystem.ts @@ -8,6 +8,7 @@ /** Coordinate system types * @public + * @extensionApi */ export enum CoordSystem { /** Coordinates are relative to the origin of the viewing rectangle. diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index 0657042ee97c..4750fb41529d 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -17,6 +17,7 @@ import { ViewRect } from "./ViewRect"; /** The possible actions for which a locate filter can be called. * @public + * @extensionApi */ export enum LocateAction { Identify = 0, @@ -26,13 +27,17 @@ export enum LocateAction { /** Values to return from a locate filter. * Return `Reject` to indicate the element is unacceptable. * @public + * @extensionApi */ export enum LocateFilterStatus { Accept = 0, Reject = 1, } -/** @public */ +/** + * @public + * @extensionApi + */ export enum SnapStatus { Success = 0, Aborted = 1, diff --git a/core/frontend/src/FlashSettings.ts b/core/frontend/src/FlashSettings.ts index a483675a282c..0c9abdce3557 100644 --- a/core/frontend/src/FlashSettings.ts +++ b/core/frontend/src/FlashSettings.ts @@ -10,6 +10,7 @@ import { BeDuration, Mutable } from "@itwin/core-bentley"; /** As part of [[FlashSettings]], describes how geometry is flashed. * @public + * @extensionApi */ export enum FlashMode { /** The color of the geometry is mixed with the hilite color. */ diff --git a/core/frontend/src/HitDetail.ts b/core/frontend/src/HitDetail.ts index 82dd24d8a862..b49bc3914231 100644 --- a/core/frontend/src/HitDetail.ts +++ b/core/frontend/src/HitDetail.ts @@ -15,7 +15,10 @@ import { IconSprites, Sprite } from "./Sprites"; import { DecorateContext } from "./ViewContext"; import { ScreenViewport } from "./Viewport"; -/** @public */ +/** + * @public + * @extensionApi + */ export enum SnapMode { Nearest = 1, NearestKeypoint = 1 << 1, @@ -26,7 +29,10 @@ export enum SnapMode { Intersection = 1 << 6, } -/** @public */ +/** + * @public + * @extensionApi + */ export enum SnapHeat { None = 0, NotInRange = 1, // "of interest", but out of range @@ -35,6 +41,7 @@ export enum SnapHeat { /** The procedure that generated this Hit. * @public + * @extensionApi */ export enum HitSource { None = 0, @@ -51,6 +58,7 @@ export enum HitSource { /** What was being tested to generate this hit. This is not the element or * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit. * @public + * @extensionApi */ export enum HitGeomType { None = 0, @@ -63,6 +71,7 @@ export enum HitGeomType { /** Classification of GeometricPrimitive that generated the Hit. * @public + * @extensionApi */ export enum HitParentGeomType { None = 0, @@ -73,7 +82,10 @@ export enum HitParentGeomType { Text = 5, } -/** @public */ +/** + * @public + * @extensionApi + */ export enum HitPriority { WireEdge = 0, PlanarEdge = 1, @@ -84,7 +96,10 @@ export enum HitPriority { Unknown = 6, } -/** @public */ +/** + * @public + * @extensionApi + */ export enum HitDetailType { Hit = 1, Snap = 2, diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 71e5987cc369..0b4a2f0abc39 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -15,6 +15,7 @@ import { ToolAssistanceInstructions } from "./tools/ToolAssistance"; /** Describes the type and behavior of a [[NotifyMessageDetails]]. * @public + * @extensionApi */ export enum OutputMessageType { /** Temporary message box displays at the top or bottom of the screen then disappears automatically. */ @@ -31,6 +32,7 @@ export enum OutputMessageType { /** Classifies a [[NotifyMessageDetails]] by its level of importance. * @public + * @extensionApi */ export enum OutputMessagePriority { None = 0, @@ -43,6 +45,7 @@ export enum OutputMessagePriority { /** Describes the alert behavior of a [[NotifyMessageDetails]]. * @public + * @extensionApi */ export enum OutputMessageAlert { None = 0, @@ -52,6 +55,7 @@ export enum OutputMessageAlert { /** Reason for ending the activity message via endActivityMessage * @public + * @extensionApi */ export enum ActivityMessageEndReason { Completed = 0, @@ -60,6 +64,7 @@ export enum ActivityMessageEndReason { /** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]]. * @public + * @extensionApi */ export enum MessageBoxType { OkCancel, @@ -72,6 +77,7 @@ export enum MessageBoxType { /** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]]. * @public + * @extensionApi */ export enum MessageBoxIconType { NoSymbol = 0, // Means Don't draw Symbol @@ -83,6 +89,7 @@ export enum MessageBoxIconType { /** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]]. * @public + * @extensionApi */ export enum MessageBoxValue { Apply = 1, diff --git a/core/frontend/src/SelectionSet.ts b/core/frontend/src/SelectionSet.ts index 90b9ec571984..363bae9461c5 100644 --- a/core/frontend/src/SelectionSet.ts +++ b/core/frontend/src/SelectionSet.ts @@ -11,6 +11,7 @@ import { IModelConnection } from "./IModelConnection"; /** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]]. * @public + * @extensionApi */ export enum SelectionSetEventType { /** Elements have been added to the set. */ diff --git a/core/frontend/src/StandardView.ts b/core/frontend/src/StandardView.ts index 7b25d2a28aeb..b007f0a8f4b6 100644 --- a/core/frontend/src/StandardView.ts +++ b/core/frontend/src/StandardView.ts @@ -9,6 +9,7 @@ import { Matrix3d } from "@itwin/core-geometry"; /** Describes a set of commonly-used view rotations. * @public + * @extensionApi */ export enum StandardViewId { /** Any rotation which does not match one of the standard rotations. diff --git a/core/frontend/src/ViewStatus.ts b/core/frontend/src/ViewStatus.ts index 4ab64808f3bf..eaba1dd28277 100644 --- a/core/frontend/src/ViewStatus.ts +++ b/core/frontend/src/ViewStatus.ts @@ -8,6 +8,7 @@ /** Describes the result of a viewing operation such as those exposed by [[ViewState]] and [[Viewport]]. * @public + * @extensionApi */ export enum ViewStatus { Success = 0, diff --git a/core/frontend/src/Viewport.ts b/core/frontend/src/Viewport.ts index 1c6338d47769..9f4988be4622 100644 --- a/core/frontend/src/Viewport.ts +++ b/core/frontend/src/Viewport.ts @@ -88,6 +88,7 @@ export interface ViewportDecorator { /** Source of depth point returned by [[Viewport.pickDepthPoint]]. * @public + * @extensionApi */ export enum DepthPointSource { /** Depth point from geometry within specified radius of pick point */ @@ -158,6 +159,7 @@ export interface ChangeViewedModel2dOptions { /** Describes an undo or redo event for a [[Viewport]]. * @see [[Viewport.onViewUndoRedo]]. * @public + * @extensionApi */ export enum ViewUndoEvent { Undo = 0, Redo = 1 } diff --git a/core/frontend/src/render/GraphicBuilder.ts b/core/frontend/src/render/GraphicBuilder.ts index 1d8616b4a58d..f5cd8e1a0591 100644 --- a/core/frontend/src/render/GraphicBuilder.ts +++ b/core/frontend/src/render/GraphicBuilder.ts @@ -23,6 +23,7 @@ import { GraphicPrimitive } from "./GraphicPrimitive"; * - Within a [[GraphicList]], each [[RenderGraphic]] is rendered in the order in which it appears in the list; and * - Within a single [[RenderGraphic]], each geometric primitive is rendered in the ordered in which it was added to the GraphicBuilder. * @public + * @extensionApi */ export enum GraphicType { /** diff --git a/core/frontend/src/render/RenderTexture.ts b/core/frontend/src/render/RenderTexture.ts index ab57357740d1..5300a48ed55b 100644 --- a/core/frontend/src/render/RenderTexture.ts +++ b/core/frontend/src/render/RenderTexture.ts @@ -15,6 +15,7 @@ import { IModelConnection } from "../IModelConnection"; * If this information is known, it should be supplied when creating a texture for more efficient rendering. * @see [[TextureImage.transparency]]. * @public + * @extensionApi */ export enum TextureTransparency { /** All pixels are either 100% opaque or 100% transparent. */ diff --git a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts index 022fe2447f27..98ec241aca48 100644 --- a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts +++ b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts @@ -12,6 +12,7 @@ import { Viewport } from "../Viewport"; * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable. * @see [[Uniform]] to set the value of a uniform variable. * @public + * @extensionApi */ export enum UniformType { /** GLSL `bool`. */ @@ -31,6 +32,7 @@ export enum UniformType { /** The underlying data types that can be used for varying variables in screen-space effect shaders. * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable. * @public + * @extensionApi */ export enum VaryingType { /** GLSL `float`. */ diff --git a/core/frontend/src/tile/Tile.ts b/core/frontend/src/tile/Tile.ts index 55620faeae8b..07dfc137d8d4 100644 --- a/core/frontend/src/tile/Tile.ts +++ b/core/frontend/src/tile/Tile.ts @@ -550,6 +550,7 @@ export abstract class Tile { /** Describes the current status of a [[Tile]]'s content. Tile content is loaded via an asynchronous [[TileRequest]]. * @see [[Tile.loadStatus]]. * @public + * @extensionApi */ export enum TileLoadStatus { /** No attempt to load the tile's content has been made, or the tile has since been unloaded. It currently has no graphics. */ @@ -569,6 +570,7 @@ export enum TileLoadStatus { /** * Describes the visibility of a tile based on its size and a view frustum. * @public + * @extensionApi */ export enum TileVisibility { /** The tile is entirely outside of the viewing frustum. */ @@ -583,6 +585,7 @@ export enum TileVisibility { * Loosely describes the "importance" of a [[Tile]]. Requests for tiles of greater "importance" are prioritized for loading. * @note A lower priority value indicates higher importance. * @public + * @extensionApi */ export enum TileLoadPriority { /** Contents of geometric models that are being interactively edited. */ @@ -608,6 +611,7 @@ export enum TileLoadPriority { * - Red: A tile which refines to a single higher-resolution child occupying the same volume. * @see [[Viewport.debugBoundingBoxes]] * @public + * @extensionApi */ export enum TileBoundingBoxes { /** Display no bounding boxes */ diff --git a/core/frontend/src/tile/TileTree.ts b/core/frontend/src/tile/TileTree.ts index acfd66ca6bd3..d66fc32a8b48 100644 --- a/core/frontend/src/tile/TileTree.ts +++ b/core/frontend/src/tile/TileTree.ts @@ -19,6 +19,7 @@ import { Tile, TileDrawArgs, TileLoadPriority, TileTreeParams } from "./internal /** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse. * @see [[TileTreeOwner]]. * @public + * @extensionApi */ export enum TileTreeLoadStatus { /** No attempt to load the tile tree has yet been made. */ diff --git a/core/frontend/src/tile/TileTreeReference.ts b/core/frontend/src/tile/TileTreeReference.ts index c76bc58034b3..4d409769b781 100644 --- a/core/frontend/src/tile/TileTreeReference.ts +++ b/core/frontend/src/tile/TileTreeReference.ts @@ -19,6 +19,7 @@ import { DisclosedTileTreeSet, TileDrawArgs, TileTree, TileTreeLoadStatus, TileT /** Describes the type of graphics produced by a [[TileTreeReference]]. * @public + * @extensionApi */ export enum TileGraphicType { /** Rendered behind all other geometry without depth. */ diff --git a/core/frontend/src/tools/ClipViewTool.ts b/core/frontend/src/tools/ClipViewTool.ts index 50bc5fa50c02..738649742577 100644 --- a/core/frontend/src/tools/ClipViewTool.ts +++ b/core/frontend/src/tools/ClipViewTool.ts @@ -1901,6 +1901,7 @@ export class ViewClipDecoration extends EditManipulator.HandleProvider { /** Event types for ViewClipDecorationProvider.onActiveClipChanged \ * @public + * @extensionApi */ export enum ClipEventType { New, NewPlane, Modify, Clear } diff --git a/core/frontend/src/tools/SelectTool.ts b/core/frontend/src/tools/SelectTool.ts index 09b646839f72..77d510d2aa46 100644 --- a/core/frontend/src/tools/SelectTool.ts +++ b/core/frontend/src/tools/SelectTool.ts @@ -28,6 +28,7 @@ import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAss /** The method for choosing elements with the [[SelectionTool]] * @public + * @extensionApi */ export enum SelectionMethod { /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */ @@ -40,6 +41,7 @@ export enum SelectionMethod { /** The mode for choosing elements with the [[SelectionTool]] * @public + * @extensionApi */ export enum SelectionMode { /** Identified elements replace the current selection set (use control key to add or remove) */ @@ -52,6 +54,7 @@ export enum SelectionMode { /** The processing method to use to update the current selection. * @public + * @extensionApi */ export enum SelectionProcessing { /** Add element to selection. */ diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index a14f83736cf3..280dd0857ea3 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -29,10 +29,16 @@ export type ToolType = typeof Tool; */ export type ToolList = ToolType[]; -/** @public */ +/** + * @public + * @extensionApi + */ export enum BeButton { Data = 0, Reset = 1, Middle = 2 } -/** @public */ +/** + * @public + * @extensionApi + */ export enum CoordinateLockOverrides { None = 0, ACS = 1 << 1, @@ -42,6 +48,7 @@ export enum CoordinateLockOverrides { /** The *source* that generated an event. * @public + * @extensionApi */ export enum InputSource { /** Source not defined */ @@ -54,6 +61,7 @@ export enum InputSource { /** The *source* that generated a coordinate. * @public + * @extensionApi */ export enum CoordSource { /** Event was created by an action from the user */ @@ -68,6 +76,7 @@ export enum CoordSource { /** Numeric mask for a set of modifier keys (control, shift, and alt). * @public + * @extensionApi */ export enum BeModifierKeys { None = 0, Control = 1 << 0, Shift = 1 << 1, Alt = 1 << 2 } @@ -452,7 +461,10 @@ export class Tool { } } -/** @public */ +/** + * @public + * @extensionApi + */ export enum EventHandled { No = 0, Yes = 1 } /** A Tool that may be installed, via [[ToolAdmin]], to handle user input. The ToolAdmin manages the currently installed ViewingTool, PrimitiveTool, @@ -749,6 +761,7 @@ export abstract class InputCollector extends InteractiveTool { /** The result type of [[ToolRegistry.parseAndRun]]. * @public + * @extensionApi */ export enum ParseAndRunResult { /** The tool's `parseAndRun` method was invoked and returned `true`. */ @@ -765,6 +778,7 @@ export enum ParseAndRunResult { /** Possible errors resulting from [[ToolRegistry.parseKeyin]]. * @public + * @extensionApi */ export enum KeyinParseError { /** No registered tool matching the keyin was found. */ diff --git a/core/frontend/src/tools/ToolAdmin.ts b/core/frontend/src/tools/ToolAdmin.ts index 7832628c52d7..c9e8678fffc9 100644 --- a/core/frontend/src/tools/ToolAdmin.ts +++ b/core/frontend/src/tools/ToolAdmin.ts @@ -32,10 +32,16 @@ import { import { ToolSettings } from "./ToolSettings"; import { ViewTool } from "./ViewTool"; -/** @public */ +/** + * @public + * @extensionApi + */ export enum StartOrResume { Start = 1, Resume = 2 } -/** @public */ +/** + * @public + * @extensionApi + */ export enum ManipulatorToolEvent { Start = 1, Stop = 2, Suspend = 3, Unsuspend = 4 } const enum MouseButton { Left = 0, Middle = 1, Right = 2 } // eslint-disable-line no-restricted-syntax diff --git a/core/frontend/src/tools/ToolAssistance.ts b/core/frontend/src/tools/ToolAssistance.ts index 48610228c842..ec8e7554d743 100644 --- a/core/frontend/src/tools/ToolAssistance.ts +++ b/core/frontend/src/tools/ToolAssistance.ts @@ -12,6 +12,7 @@ import { CoreTools } from "./Tool"; /** Tool Assistance known images * @public + * @extensionApi */ export enum ToolAssistanceImage { /** When Keyboard is specified, ToolAssistanceInstruction.keyboardInfo should be set. */ @@ -52,6 +53,7 @@ export enum ToolAssistanceImage { /** Input Method for Tool Assistance instruction * @public + * @extensionApi */ export enum ToolAssistanceInputMethod { /** Instruction applies to both touch & mouse input methods */ From 50c24c9dcec2d2878c14537114600b2b3e32ba65 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:34:40 -0600 Subject: [PATCH 29/76] Added tags to core-frontend types --- core/frontend/src/AccuSnap.ts | 1 + core/frontend/src/AuxCoordSys.ts | 4 ++++ core/frontend/src/CategorySelectorState.ts | 1 + core/frontend/src/ChangeFlags.ts | 1 + core/frontend/src/ContextRealityModelState.ts | 1 + core/frontend/src/DisplayStyleState.ts | 3 +++ core/frontend/src/DrawingViewState.ts | 1 + core/frontend/src/ElementLocateManager.ts | 11 +++++++-- core/frontend/src/EntityState.ts | 2 ++ core/frontend/src/FlashSettings.ts | 1 + core/frontend/src/HitDetail.ts | 8 ++++++- core/frontend/src/IModelConnection.ts | 1 + core/frontend/src/IpcApp.ts | 1 + core/frontend/src/Marker.ts | 1 + core/frontend/src/ModelSelectorState.ts | 1 + core/frontend/src/ModelState.ts | 10 ++++++++ core/frontend/src/NotificationManager.ts | 2 ++ core/frontend/src/SelectionSet.ts | 2 ++ core/frontend/src/SheetViewState.ts | 1 + core/frontend/src/SpatialViewState.ts | 2 ++ core/frontend/src/Sprites.ts | 3 +++ core/frontend/src/TentativePoint.ts | 5 +++- core/frontend/src/Tiles.ts | 1 + core/frontend/src/ViewContext.ts | 24 +++++++++++-------- core/frontend/src/ViewCreator2d.ts | 1 + core/frontend/src/ViewCreator3d.ts | 1 + core/frontend/src/ViewManager.ts | 1 + core/frontend/src/ViewPose.ts | 1 + core/frontend/src/ViewState.ts | 3 +++ core/frontend/src/ViewingSpace.ts | 1 + core/frontend/src/Viewport.ts | 3 +++ core/frontend/src/render/Decorations.ts | 1 + core/frontend/src/render/GraphicBuilder.ts | 1 + core/frontend/src/render/RenderClipVolume.ts | 1 + core/frontend/src/render/RenderGraphic.ts | 2 ++ core/frontend/src/render/RenderSystem.ts | 1 + core/frontend/src/render/Scene.ts | 1 + .../frontend/src/tile/DisclosedTileTreeSet.ts | 1 + core/frontend/src/tile/Tile.ts | 1 + core/frontend/src/tile/TileAdmin.ts | 1 + core/frontend/src/tile/TileDrawArgs.ts | 1 + core/frontend/src/tile/TileRequest.ts | 1 + core/frontend/src/tile/TileRequestChannel.ts | 2 ++ core/frontend/src/tile/TileRequestChannels.ts | 1 + core/frontend/src/tile/TileTree.ts | 1 + core/frontend/src/tile/TileTreeReference.ts | 1 + core/frontend/src/tile/TileUsageMarker.ts | 1 + core/frontend/src/tools/EventController.ts | 1 + core/frontend/src/tools/Tool.ts | 7 +++++- core/frontend/src/tools/ToolAdmin.ts | 1 + core/frontend/src/tools/ToolSettings.ts | 1 + core/frontend/src/tools/ViewTool.ts | 1 + 52 files changed, 113 insertions(+), 15 deletions(-) diff --git a/core/frontend/src/AccuSnap.ts b/core/frontend/src/AccuSnap.ts index d647921c0373..cb3864c7bcb8 100644 --- a/core/frontend/src/AccuSnap.ts +++ b/core/frontend/src/AccuSnap.ts @@ -171,6 +171,7 @@ export class TouchCursor implements CanvasDecoration { /** AccuSnap is an aide for snapping to interesting points on elements or decorations as the cursor moves over them. * @see [Using AccuSnap]($docs/learning/frontend/primitivetools.md#AccuSnap) * @public + * @extensionApi */ export class AccuSnap implements Decorator { /** Currently active hit */ diff --git a/core/frontend/src/AuxCoordSys.ts b/core/frontend/src/AuxCoordSys.ts index ef8e1d1ae1bd..e220f65e3024 100644 --- a/core/frontend/src/AuxCoordSys.ts +++ b/core/frontend/src/AuxCoordSys.ts @@ -59,6 +59,7 @@ const enum ACSDisplaySizes { // eslint-disable-line no-restricted-syntax /** The state of an AuxCoordSystem element in the frontend * @public + * @extensionApi */ export abstract class AuxCoordSystemState extends ElementState implements AuxCoordSystemProps { /** @internal */ @@ -299,6 +300,7 @@ export abstract class AuxCoordSystemState extends ElementState implements AuxCoo /** The state of an AuxCoordSystem2d element in the frontend * @public + * @extensionApi */ export class AuxCoordSystem2dState extends AuxCoordSystemState implements AuxCoordSystem2dProps { /** @internal */ @@ -333,6 +335,7 @@ export class AuxCoordSystem2dState extends AuxCoordSystemState implements AuxCoo /** The state of an AuxCoordSystem3d element in the frontend * @public + * @extensionApi */ export class AuxCoordSystem3dState extends AuxCoordSystemState implements AuxCoordSystem3dProps { /** @internal */ @@ -376,6 +379,7 @@ export class AuxCoordSystem3dState extends AuxCoordSystemState implements AuxCoo /** The state of an AuxCoordSystemSpatial element in the frontend * @public + * @extensionApi */ export class AuxCoordSystemSpatialState extends AuxCoordSystem3dState { /** @internal */ diff --git a/core/frontend/src/CategorySelectorState.ts b/core/frontend/src/CategorySelectorState.ts index 311572809215..39fcd8f48a32 100644 --- a/core/frontend/src/CategorySelectorState.ts +++ b/core/frontend/src/CategorySelectorState.ts @@ -18,6 +18,7 @@ import { IModelConnection } from "./IModelConnection"; * use [[ViewState.changeCategoryDisplay]] to ensure the view updates appropriately on screen. * @see [[Category]] * @public + * @extensionApi */ export class CategorySelectorState extends ElementState { /** @internal */ diff --git a/core/frontend/src/ChangeFlags.ts b/core/frontend/src/ChangeFlags.ts index 2a69bab5b60b..772d8c4469a9 100644 --- a/core/frontend/src/ChangeFlags.ts +++ b/core/frontend/src/ChangeFlags.ts @@ -28,6 +28,7 @@ export enum ChangeFlag { /** Describes which aspects of a [[Viewport]] have changed. Each time [[Viewport.renderFrame]] is invoked, the aspects of the viewport that have changed since * the previous call to `renderFrame` are computed and dispatched via the [[Viewport.onViewportChanged]] event. * @public + * @extensionApi */ export class ChangeFlags { /** @internal */ diff --git a/core/frontend/src/ContextRealityModelState.ts b/core/frontend/src/ContextRealityModelState.ts index 5796fc1a9b4a..efad7d13ec14 100644 --- a/core/frontend/src/ContextRealityModelState.ts +++ b/core/frontend/src/ContextRealityModelState.ts @@ -20,6 +20,7 @@ import { createOrbitGtTileTreeReference, createRealityTileTreeReference, Reality * @see [[DisplayStyleState.contextRealityModelStates]]. * @see [[DisplayStyleState.attachRealityModel]]. * @public + * @extensionApi */ export class ContextRealityModelState extends ContextRealityModel { private readonly _treeRef: RealityModelTileTree.Reference; diff --git a/core/frontend/src/DisplayStyleState.ts b/core/frontend/src/DisplayStyleState.ts index a9b9d806edcb..bd51b62939b4 100644 --- a/core/frontend/src/DisplayStyleState.ts +++ b/core/frontend/src/DisplayStyleState.ts @@ -45,6 +45,7 @@ export interface OsmBuildingDisplayOptions { /** A DisplayStyle defines the parameters for 'styling' the contents of a [[ViewState]]. * @public + * @extensionApi */ export abstract class DisplayStyleState extends ElementState implements DisplayStyleProps { /** @internal */ @@ -725,6 +726,7 @@ export abstract class DisplayStyleState extends ElementState implements DisplayS /** A display style that can be applied to 2d views. * @public + * @extensionApi */ export class DisplayStyle2dState extends DisplayStyleState { /** @internal */ @@ -745,6 +747,7 @@ export class DisplayStyle2dState extends DisplayStyleState { /** A [[DisplayStyleState]] that can be applied to spatial views. * @public + * @extensionApi */ export class DisplayStyle3dState extends DisplayStyleState { /** @internal */ diff --git a/core/frontend/src/DrawingViewState.ts b/core/frontend/src/DrawingViewState.ts index ec892af56e4c..4d86b5e674ae 100644 --- a/core/frontend/src/DrawingViewState.ts +++ b/core/frontend/src/DrawingViewState.ts @@ -264,6 +264,7 @@ class SectionAttachment { /** A view of a [DrawingModel]($backend) * @public + * @extensionApi */ export class DrawingViewState extends ViewState2d { /** @internal */ diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index 4750fb41529d..80fac3c85217 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -51,6 +51,7 @@ export enum SnapStatus { /** Options that customize the way element location (i.e. *picking*) works. * @public + * @extensionApi */ export class LocateOptions { /** If true, also test graphics from view decorations. */ @@ -131,7 +132,10 @@ export interface HitListHolder { setHitList(list: HitList | undefined): void; } -/** @public */ +/** + * @public + * @extensionApi + */ export class ElementPicker { public viewport?: Viewport; public readonly pickPointWorld = new Point3d(); @@ -275,7 +279,10 @@ export class ElementPicker { } } -/** @public */ +/** + * @public + * @extensionApi + */ export class ElementLocateManager { public hitList?: HitList; public currHit?: HitDetail; diff --git a/core/frontend/src/EntityState.ts b/core/frontend/src/EntityState.ts index 6384727d827b..d601d6424890 100644 --- a/core/frontend/src/EntityState.ts +++ b/core/frontend/src/EntityState.ts @@ -12,6 +12,7 @@ import { IModelConnection } from "./IModelConnection"; /** The "state" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class. * @public + * @extensionApi */ export class EntityState implements EntityProps { /** The name of the BIS schema for this class. @@ -75,6 +76,7 @@ export class EntityState implements EntityProps { /** The "state" of an Element as represented in a web browser. * @public + * @extensionApi */ export class ElementState extends EntityState implements ElementProps { /** @internal */ diff --git a/core/frontend/src/FlashSettings.ts b/core/frontend/src/FlashSettings.ts index 0c9abdce3557..e10a2c377cc6 100644 --- a/core/frontend/src/FlashSettings.ts +++ b/core/frontend/src/FlashSettings.ts @@ -38,6 +38,7 @@ export type FlashSettingsOptions = Mutable>; * @see [[Viewport.flashSettings]] to customize the flash behavior for a viewport. * @see [[Viewport.hilite]] to customize the hilite color used by [[FlashMode.Hilite]]. * @public + * @extensionApi */ export class FlashSettings { /** The duration in seconds over which the flash effect increases from zero to [[maxIntensity]], in [0..10]. diff --git a/core/frontend/src/HitDetail.ts b/core/frontend/src/HitDetail.ts index b49bc3914231..2cbc8369480c 100644 --- a/core/frontend/src/HitDetail.ts +++ b/core/frontend/src/HitDetail.ts @@ -109,6 +109,7 @@ export enum HitDetailType { /** A HitDetail stores the result when locating geometry displayed in a view. * It holds an approximate location on an element (or decoration) from a *pick*. * @public + * @extensionApi */ export class HitDetail { private readonly _iModel?: IModelConnection; @@ -196,6 +197,7 @@ export class HitDetail { /** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*, * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode. * @public + * @extensionApi */ export class SnapDetail extends HitDetail { /** A sprite to show the user the type of snap performed */ @@ -348,7 +350,10 @@ export class SnapDetail extends HitDetail { } } -/** @public */ +/** + * @public + * @extensionApi + */ export class IntersectDetail extends SnapDetail { public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) { super(from, SnapMode.Intersection, heat, snapPoint); @@ -383,6 +388,7 @@ export class IntersectDetail extends SnapDetail { /** The result of a "locate" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list * are somehow *better* than those later on. * @public + * @extensionApi */ export class HitList { public hits: T[] = []; diff --git a/core/frontend/src/IModelConnection.ts b/core/frontend/src/IModelConnection.ts index bebc7d3eab9d..f3ff845651e3 100644 --- a/core/frontend/src/IModelConnection.ts +++ b/core/frontend/src/IModelConnection.ts @@ -52,6 +52,7 @@ export interface BlankConnectionProps { /** A connection to a [IModelDb]($backend) hosted on the backend. * @public + * @extensionApi */ export abstract class IModelConnection extends IModel { /** The [[ModelState]]s in this IModelConnection. */ diff --git a/core/frontend/src/IpcApp.ts b/core/frontend/src/IpcApp.ts index 8c5cbc2884d0..57311c499c54 100644 --- a/core/frontend/src/IpcApp.ts +++ b/core/frontend/src/IpcApp.ts @@ -132,6 +132,7 @@ export class IpcApp { * * Then, call `MyNotificationHandler.register` at startup to connect your class to your channel. * @public + * @extensionApi */ export abstract class NotificationHandler { /** All subclasses must implement this method to specify their response channel name. */ diff --git a/core/frontend/src/Marker.ts b/core/frontend/src/Marker.ts index 955b0da25ea0..df9cb399a4cb 100644 --- a/core/frontend/src/Marker.ts +++ b/core/frontend/src/Marker.ts @@ -331,6 +331,7 @@ export class Cluster { /** A *set* of Markers that are logically related, such that they *cluster* when they overlap one another in screen space. * In that case, a *cluster marker* is drawn instead of the overlapping Markers. * @public + * @extensionApi */ export abstract class MarkerSet { private _viewport?: ScreenViewport; diff --git a/core/frontend/src/ModelSelectorState.ts b/core/frontend/src/ModelSelectorState.ts index 1f5a6222b414..e1d4c516a0c1 100644 --- a/core/frontend/src/ModelSelectorState.ts +++ b/core/frontend/src/ModelSelectorState.ts @@ -14,6 +14,7 @@ import { IModelConnection } from "./IModelConnection"; /** The state of a [ModelSelector]($backend). It holds a set of ids of GeometricModels for a [[SpatialViewState]]. * It defines the set of [[ModelState]]s drawn within the view as a set of IDs. * @public + * @extensionApi */ export class ModelSelectorState extends ElementState { /** @internal */ diff --git a/core/frontend/src/ModelState.ts b/core/frontend/src/ModelState.ts index 83227da30add..5b1934a99dae 100644 --- a/core/frontend/src/ModelState.ts +++ b/core/frontend/src/ModelState.ts @@ -20,6 +20,7 @@ import { ViewState } from "./ViewState"; /** Represents the front-end state of a [Model]($backend). * @public + * @extensionApi */ export class ModelState extends EntityState implements ModelProps { /** @internal */ @@ -74,6 +75,7 @@ export class ModelState extends EntityState implements ModelProps { /** Represents the front-end state of a [GeometricModel]($backend). * The contents of a GeometricModelState can be rendered inside a [[Viewport]]. * @public + * @extensionApi */ export abstract class GeometricModelState extends ModelState implements GeometricModelProps { /** @internal */ @@ -186,6 +188,7 @@ export abstract class GeometricModelState extends ModelState implements Geometri } /** Represents the front-end state of a [GeometricModel2d]($backend). * @public + * @extensionApi */ export class GeometricModel2dState extends GeometricModelState implements GeometricModel2dProps { /** @internal */ @@ -212,6 +215,7 @@ export class GeometricModel2dState extends GeometricModelState implements Geomet /** Represents the front-end state of a [GeometricModel3d]($backend). * @public + * @extensionApi */ export class GeometricModel3dState extends GeometricModelState { /** @internal */ @@ -256,6 +260,7 @@ export class GeometricModel3dState extends GeometricModelState { /** Represents the front-end state of a [SheetModel]($backend). * @public + * @extensionApi */ export class SheetModelState extends GeometricModel2dState { /** @internal */ @@ -264,6 +269,7 @@ export class SheetModelState extends GeometricModel2dState { /** Represents the front-end state of a [SpatialModel]($backend). * @public + * @extensionApi */ export class SpatialModelState extends GeometricModel3dState { /** If this is a reality model, provides access to a list of available spatial classifiers that can be applied to it. */ @@ -287,6 +293,7 @@ export class SpatialModelState extends GeometricModel3dState { /** Represents the front-end state of a [PhysicalModel]($backend). * @public + * @extensionApi */ export class PhysicalModelState extends SpatialModelState { /** @internal */ @@ -295,6 +302,7 @@ export class PhysicalModelState extends SpatialModelState { /** Represents the front-end state of a [SpatialLocationModel]($backend). * @public + * @extensionApi */ export class SpatialLocationModelState extends SpatialModelState { /** @internal */ @@ -303,6 +311,7 @@ export class SpatialLocationModelState extends SpatialModelState { /** Represents the front-end state of a [DrawingModel]($backend). * @public + * @extensionApi */ export class DrawingModelState extends GeometricModel2dState { /** @internal */ @@ -311,6 +320,7 @@ export class DrawingModelState extends GeometricModel2dState { /** Represents the front-end state of a [SectionDrawingModel]($backend). * @public + * @extensionApi */ export class SectionDrawingModelState extends DrawingModelState { /** @internal */ diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 0b4a2f0abc39..bb17b540edef 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -159,6 +159,7 @@ export class NotifyMessageDetails { /** Specifies the details of an activity message to be displayed to the user. * @public + * @extensionApi */ export class ActivityMessageDetails { public wasCancelled = false; @@ -182,6 +183,7 @@ export class ActivityMessageDetails { * Implementations of the NotificationManager may present the information in different ways. For example, in * non-interactive sessions, these messages may be saved to a log file or simply discarded. * @public + * @extensionApi */ export class NotificationManager implements MessagePresenter { public readonly toolTipLocation = new Point2d(); diff --git a/core/frontend/src/SelectionSet.ts b/core/frontend/src/SelectionSet.ts index 363bae9461c5..82178e965482 100644 --- a/core/frontend/src/SelectionSet.ts +++ b/core/frontend/src/SelectionSet.ts @@ -177,6 +177,7 @@ class HilitedElementIds extends HilitedIds { * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel. * @see [Hilite.Settings]($common) for customization of the hilite effect. * @public + * @extensionApi */ export class HiliteSet { private readonly _elements: HilitedElementIds; @@ -241,6 +242,7 @@ export class HiliteSet { * Selected elements are displayed with a customizable hilite effect within a [[Viewport]]. * @see [Hilite.Settings]($common) for customization of the hilite effect. * @public + * @extensionApi */ export class SelectionSet { private _elements = new Set(); diff --git a/core/frontend/src/SheetViewState.ts b/core/frontend/src/SheetViewState.ts index bd56fedf18d6..d80c2fd2bd03 100644 --- a/core/frontend/src/SheetViewState.ts +++ b/core/frontend/src/SheetViewState.ts @@ -266,6 +266,7 @@ class ViewAttachments { /** A view of a [SheetModel]($backend). * @public + * @extensionApi */ export class SheetViewState extends ViewState2d { /** The width and height of the sheet in world coordinates. */ diff --git a/core/frontend/src/SpatialViewState.ts b/core/frontend/src/SpatialViewState.ts index 87a922e3e593..d03e7df1d4e5 100644 --- a/core/frontend/src/SpatialViewState.ts +++ b/core/frontend/src/SpatialViewState.ts @@ -22,6 +22,7 @@ import { SpatialTileTreeReferences, TileTreeReference } from "./tile/internal"; /** Defines a view of one or more SpatialModels. * The list of viewed models is stored in the ModelSelector. * @public + * @extensionApi */ export class SpatialViewState extends ViewState3d { /** @internal */ @@ -222,6 +223,7 @@ export class SpatialViewState extends ViewState3d { } /** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection. * @public + * @extensionApi */ export class OrthographicViewState extends SpatialViewState { /** @internal */ diff --git a/core/frontend/src/Sprites.ts b/core/frontend/src/Sprites.ts index 03d160308e3d..54f85769009e 100644 --- a/core/frontend/src/Sprites.ts +++ b/core/frontend/src/Sprites.ts @@ -28,6 +28,7 @@ import { ScreenViewport } from "./Viewport"; * can be used many times by many SpriteLocations and a single SpriteLocation can * change both position and which Sprite is shown at that position over time. * @public + * @extensionApi */ export class Sprite { /** The image for this Sprite. If undefined, the Spite is not valid. */ @@ -60,6 +61,7 @@ export class Sprite { /** Icon sprites are loaded from .png files in the assets directory of imodeljs-native. * They are cached by name, and the cache is cleared when the ToolAdmin is shut down. * @public + * @extensionApi */ export class IconSprites { private static readonly _sprites = new Map(); @@ -85,6 +87,7 @@ export class IconSprites { * * A SpriteLocation can also specify that a Sprite should be drawn partially transparent. * @public + * @extensionApi */ export class SpriteLocation implements CanvasDecoration { private _viewport?: ScreenViewport; diff --git a/core/frontend/src/TentativePoint.ts b/core/frontend/src/TentativePoint.ts index 65bc498eab1f..019ead39dc53 100644 --- a/core/frontend/src/TentativePoint.ts +++ b/core/frontend/src/TentativePoint.ts @@ -16,7 +16,10 @@ import { ViewHandleType, ViewManip } from "./tools/ViewTool"; import { DecorateContext } from "./ViewContext"; import { ScreenViewport } from "./Viewport"; -/** @public */ +/** + * @public + * @extensionApi + */ export class TentativePoint { public isActive = false; public currSnap?: SnapDetail; diff --git a/core/frontend/src/Tiles.ts b/core/frontend/src/Tiles.ts index a7de9e727600..ed64fa017e13 100644 --- a/core/frontend/src/Tiles.ts +++ b/core/frontend/src/Tiles.ts @@ -72,6 +72,7 @@ class TreeOwner implements TileTreeOwner { * change. * @see [[IModelConnection.tiles]]. * @public + * @extensionApi */ export class Tiles implements Iterable<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> { private _iModel: IModelConnection; diff --git a/core/frontend/src/ViewContext.ts b/core/frontend/src/ViewContext.ts index 6faa3f1dfd68..d7905f16658d 100644 --- a/core/frontend/src/ViewContext.ts +++ b/core/frontend/src/ViewContext.ts @@ -6,19 +6,19 @@ * @module Rendering */ -import { assert, Id64String } from "@itwin/core-bentley"; +import { assert, Id64String } from "@itwin/core-bentley"; import { Matrix3d, Point2d, Point3d, Range1d, Transform, XAndY, -} from "@itwin/core-geometry"; -import { Frustum, FrustumPlanes, SpatialClassifier, ViewFlags } from "@itwin/core-common"; +} from "@itwin/core-geometry"; +import { Frustum, FrustumPlanes, SpatialClassifier, ViewFlags } from "@itwin/core-common"; import { CachedDecoration, DecorationsCache } from "./DecorationsCache"; import { IModelApp } from "./IModelApp"; import { PlanarClipMaskState } from "./PlanarClipMaskState"; import { CanvasDecoration } from "./render/CanvasDecoration"; import { Decorations } from "./render/Decorations"; import { GraphicBranch, GraphicBranchOptions } from "./render/GraphicBranch"; -import { GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from "./render/GraphicBuilder"; +import { GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from "./render/GraphicBuilder"; import { GraphicList, RenderGraphic } from "./render/RenderGraphic"; import { RenderPlanarClassifier } from "./render/RenderPlanarClassifier"; import { RenderSystem, RenderTextureDrape } from "./render/RenderSystem"; @@ -30,6 +30,7 @@ import { ELEMENT_MARKED_FOR_REMOVAL, ScreenViewport, Viewport, ViewportDecorator /** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]]. * @public + * @extensionApi */ export class RenderContext { /** ViewFlags extracted from the context's [[Viewport]]. */ @@ -42,7 +43,7 @@ export class RenderContext { constructor(vp: Viewport, frustum?: Frustum) { this._viewport = vp; - this.viewFlags = vp.viewFlags; + this.viewFlags = vp.viewFlags; this.frustum = frustum ? frustum : vp.getFrustum(); this.frustumPlanes = new FrustumPlanes(this.frustum); } @@ -66,7 +67,7 @@ export class RenderContext { public get target(): RenderTarget { return this.viewport.target; } /** @internal */ - protected _createGraphicBuilder(options: Omit): GraphicBuilder { + protected _createGraphicBuilder(options: Omit): GraphicBuilder { return this.target.createGraphicBuilder({ ...options, viewport: this.viewport }); } @@ -103,6 +104,7 @@ export class RenderContext { /** Provides context for an [[InteractiveTool]] to display decorations representing its current state. * @see [[InteractiveTool.onDynamicFrame]] * @public + * @extensionApi */ export class DynamicsContext extends RenderContext { private _dynamics?: GraphicList; @@ -123,13 +125,14 @@ export class DynamicsContext extends RenderContext { * @param options Options describing how to create the builder. * @returns A builder that produces a [[RenderGraphic]]. */ - public createGraphic(options: Omit): GraphicBuilder { + public createGraphic(options: Omit): GraphicBuilder { return this._createGraphicBuilder(options); } } /** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]]. * @public + * @extensionApi */ export class DecorateContext extends RenderContext { private readonly _decorations: Decorations; @@ -164,7 +167,7 @@ export class DecorateContext extends RenderContext { * @param options Options describing how to create the builder. * @returns A builder that produces a [[RenderGraphic]]. */ - public createGraphic(options: Omit): GraphicBuilder { + public createGraphic(options: Omit): GraphicBuilder { return this._createGraphicBuilder(options); } @@ -286,8 +289,8 @@ export class DecorateContext extends RenderContext { // an element decoration being added might already be on the decorationDiv, just marked for removal if (decoration[ELEMENT_MARKED_FOR_REMOVAL]) { decoration[ELEMENT_MARKED_FOR_REMOVAL] = false; - } else if (decoration.parentElement !== this.viewport.decorationDiv) { - this.viewport.decorationDiv.appendChild(decoration); + } else if (decoration.parentElement !== this.viewport.decorationDiv) { + this.viewport.decorationDiv.appendChild(decoration); } } @@ -322,6 +325,7 @@ export class DecorateContext extends RenderContext { * [[TileTree]]s visible within the viewport. Creating the scene may result in the enqueueing of requests for [[Tile]] content which * should be displayed in the viewport but are not yet loaded. * @public + * @extensionApi */ export class SceneContext extends RenderContext { private _missingChildTiles = false; diff --git a/core/frontend/src/ViewCreator2d.ts b/core/frontend/src/ViewCreator2d.ts index 66fba927b7f4..304b814e4445 100644 --- a/core/frontend/src/ViewCreator2d.ts +++ b/core/frontend/src/ViewCreator2d.ts @@ -48,6 +48,7 @@ export interface ViewCreator2dOptions { * const view = await viewCreator.createViewForModel(models[0].id!); * ``` * @public + * @extensionApi */ export class ViewCreator2d { diff --git a/core/frontend/src/ViewCreator3d.ts b/core/frontend/src/ViewCreator3d.ts index 21c55823d5f8..102d07741d6b 100644 --- a/core/frontend/src/ViewCreator3d.ts +++ b/core/frontend/src/ViewCreator3d.ts @@ -48,6 +48,7 @@ export interface ViewCreator3dOptions { * const defaultView = await viewCreator.createDefaultView({skyboxOn: true}); * ``` * @public + * @extensionApi */ export class ViewCreator3d { diff --git a/core/frontend/src/ViewManager.ts b/core/frontend/src/ViewManager.ts index 3dcf48e0b24f..d88f4bfc82ef 100644 --- a/core/frontend/src/ViewManager.ts +++ b/core/frontend/src/ViewManager.ts @@ -87,6 +87,7 @@ export interface ToolTipProvider { * * The ViewManager controls the render loop, which causes the contents of each registered [[Viewport]] to update on the screen. * @public + * @extensionApi */ export class ViewManager implements Iterable { public inDynamicsMode = false; diff --git a/core/frontend/src/ViewPose.ts b/core/frontend/src/ViewPose.ts index 49d2204884c0..83f5a7235470 100644 --- a/core/frontend/src/ViewPose.ts +++ b/core/frontend/src/ViewPose.ts @@ -15,6 +15,7 @@ import { ViewState, ViewState2d, ViewState3d } from "./ViewState"; * plus the camera position/angle, if it is enabled. * @note a ViewPose is immutable. * @public + * @extensionApi */ export abstract class ViewPose { public undoTime?: BeTimePoint; // the time this pose was created, if it is saved in the view undo stack. diff --git a/core/frontend/src/ViewState.ts b/core/frontend/src/ViewState.ts index 2b4fd20de4e8..9cdd99b64726 100644 --- a/core/frontend/src/ViewState.ts +++ b/core/frontend/src/ViewState.ts @@ -168,6 +168,7 @@ export interface AttachToViewportArgs { * discouraged - changes made to the style by one Viewport will affect the contents of the other Viewport. * * @see [Views]($docs/learning/frontend/Views.md) * @public + * @extensionApi */ export abstract class ViewState extends ElementState { /** @internal */ @@ -1279,6 +1280,7 @@ export abstract class ViewState extends ElementState { /** Defines the state of a view of 3d models. * @see [ViewState Parameters]($docs/learning/frontend/views#viewstate-parameters) * @public + * @extensionApi */ export abstract class ViewState3d extends ViewState { private readonly _details: ViewDetails3d; @@ -2150,6 +2152,7 @@ export abstract class ViewState3d extends ViewState { /** Defines the state of a view of a single 2d model. * @public + * @extensionApi */ export abstract class ViewState2d extends ViewState { private readonly _details: ViewDetails; diff --git a/core/frontend/src/ViewingSpace.ts b/core/frontend/src/ViewingSpace.ts index 0cabca633777..617d5dbc621a 100644 --- a/core/frontend/src/ViewingSpace.ts +++ b/core/frontend/src/ViewingSpace.ts @@ -22,6 +22,7 @@ import { getFrustumPlaneIntersectionDepthRange } from "./BackgroundMapGeometry"; * instance of ViewingSpace is created every time the Viewport's frustum changes. * @see [[Viewport.viewingSpace]]. * @public + * @extensionApi */ export class ViewingSpace { private readonly _viewRange = new ViewRect(); // scratch variable diff --git a/core/frontend/src/Viewport.ts b/core/frontend/src/Viewport.ts index 9f4988be4622..0253df29f347 100644 --- a/core/frontend/src/Viewport.ts +++ b/core/frontend/src/Viewport.ts @@ -229,6 +229,7 @@ export interface GetPixelDataWorldPointArgs { * * @see [[ViewManager]] * @public + * @extensionApi */ export abstract class Viewport implements IDisposable { /** Event called whenever this viewport is synchronized with its [[ViewState]]. @@ -2630,6 +2631,7 @@ export abstract class Viewport implements IDisposable { * 5b. Otherwise, it is disposed of by invoking its dispose() method directly. * ``` * @public + * @extensionApi */ export class ScreenViewport extends Viewport { /** Settings that may be adjusted to control the way animations are applied to a [[ScreenViewport]] by methods like @@ -3305,6 +3307,7 @@ export interface OffScreenViewportOptions { * Offscreen viewports can be useful for, e.g., producing an image from the contents of a view (see [[Viewport.readImage]] and [[Viewport.readImageToCanvas]]) * without drawing to the screen. * @public + * @extensionApi */ export class OffScreenViewport extends Viewport { protected _isAspectRatioLocked = false; diff --git a/core/frontend/src/render/Decorations.ts b/core/frontend/src/render/Decorations.ts index 9c1447f75f29..9c9fe8e11f58 100644 --- a/core/frontend/src/render/Decorations.ts +++ b/core/frontend/src/render/Decorations.ts @@ -12,6 +12,7 @@ import { GraphicList, RenderGraphic } from "./RenderGraphic"; /** A set of [[RenderGraphic]]s and [[CanvasDecoration]]s produced by [[Tool]]s and [[Decorator]]s, used to decorate the contents of a [[Viewport]]. * @public + * @extensionApi */ export class Decorations implements IDisposable { private _skyBox?: RenderGraphic; diff --git a/core/frontend/src/render/GraphicBuilder.ts b/core/frontend/src/render/GraphicBuilder.ts index f5cd8e1a0591..623609806d87 100644 --- a/core/frontend/src/render/GraphicBuilder.ts +++ b/core/frontend/src/render/GraphicBuilder.ts @@ -215,6 +215,7 @@ export interface CustomGraphicBuilderOptions extends GraphicBuilderOptions { * So, for example, if you pass an array of points to addLineString(), you should not subsequently modify that array. * * @public + * @extensionApi */ export abstract class GraphicBuilder { /** The local coordinate system transform applied to this builder's geometry. diff --git a/core/frontend/src/render/RenderClipVolume.ts b/core/frontend/src/render/RenderClipVolume.ts index e897aae1cfb3..74bac2a34d32 100644 --- a/core/frontend/src/render/RenderClipVolume.ts +++ b/core/frontend/src/render/RenderClipVolume.ts @@ -12,6 +12,7 @@ import { ClipVector } from "@itwin/core-geometry"; * A RenderClipVolume is created from a [[ClipVector]] and takes ownership of that ClipVector, expecting that it will not be modified while the RenderClipVolume still references it. * @see [[RenderSystem.createClipVolume]] to create a clip volume. * @public + * @extensionApi */ export abstract class RenderClipVolume { /** The ClipVector from which this volume was created. It must not be modified. */ diff --git a/core/frontend/src/render/RenderGraphic.ts b/core/frontend/src/render/RenderGraphic.ts index e725c4a6e04e..c76085477d45 100644 --- a/core/frontend/src/render/RenderGraphic.ts +++ b/core/frontend/src/render/RenderGraphic.ts @@ -15,6 +15,7 @@ import { RenderMemory } from "./RenderMemory"; * - [[Decorations]] created on the front-end to be rendered along with the scene. * The latter are produced using a [[GraphicBuilder]]. * @public + * @extensionApi */ export abstract class RenderGraphic implements IDisposable /* , RenderMemory.Consumer */ { public abstract dispose(): void; @@ -28,6 +29,7 @@ export abstract class RenderGraphic implements IDisposable /* , RenderMemory.Con * will never be automatically disposed of. Instead, you assume responsibility for disposing of the owned graphic by calling [[disposeGraphic]] when the owned graphic is no longer in use. Failure * to do so will result in leaks of graphics memory or other webgl resources. * @public + * @extensionApi */ export abstract class RenderGraphicOwner extends RenderGraphic { /** The owned graphic. */ diff --git a/core/frontend/src/render/RenderSystem.ts b/core/frontend/src/render/RenderSystem.ts index ee000d4e5c71..ea50cf313d07 100644 --- a/core/frontend/src/render/RenderSystem.ts +++ b/core/frontend/src/render/RenderSystem.ts @@ -234,6 +234,7 @@ export type RenderSkyBoxParams = RenderSkyGradientParams | RenderSkySphereParams * coordinate with the RenderSystem on the application's behalf. * @see [[IModelApp.renderSystem]]. * @public + * @extensionApi */ export abstract class RenderSystem implements IDisposable { /** Options used to initialize the RenderSystem. These are primarily used for feature-gating. diff --git a/core/frontend/src/render/Scene.ts b/core/frontend/src/render/Scene.ts index a9c615d6c92f..8b37d1f03940 100644 --- a/core/frontend/src/render/Scene.ts +++ b/core/frontend/src/render/Scene.ts @@ -23,6 +23,7 @@ export interface SceneVolumeClassifier { /** Holds a collection of objects comprising the scene to be drawn by a [[Viewport]]'s. * @see [[SceneContext]] for the context in which the scene is created. * @public + * @extensionApi */ export class Scene { /** Graphics to be drawn as a "normal" part of the scene - that is, with depth. */ diff --git a/core/frontend/src/tile/DisclosedTileTreeSet.ts b/core/frontend/src/tile/DisclosedTileTreeSet.ts index ee496943bb0d..6b321013bd21 100644 --- a/core/frontend/src/tile/DisclosedTileTreeSet.ts +++ b/core/frontend/src/tile/DisclosedTileTreeSet.ts @@ -21,6 +21,7 @@ export interface TileTreeDiscloser { /** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects. * @public + * @extensionApi */ export class DisclosedTileTreeSet implements Iterable { private readonly _processed = new Set(); diff --git a/core/frontend/src/tile/Tile.ts b/core/frontend/src/tile/Tile.ts index 07dfc137d8d4..b8ca4c7a044b 100644 --- a/core/frontend/src/tile/Tile.ts +++ b/core/frontend/src/tile/Tile.ts @@ -58,6 +58,7 @@ const scratchFrustum = new Frustum(); * Several public [[Tile]] methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be overridden instead. * For example, [[loadChildren]] should not be overridden, but it calls [[_loadChildren]], which must be overridden because it is abstract. * @public + * @extensionApi */ export abstract class Tile { private _state: TileState = TileState.NotReady; diff --git a/core/frontend/src/tile/TileAdmin.ts b/core/frontend/src/tile/TileAdmin.ts index 7523386c9db1..f2196e6f4f16 100644 --- a/core/frontend/src/tile/TileAdmin.ts +++ b/core/frontend/src/tile/TileAdmin.ts @@ -101,6 +101,7 @@ export interface GpuMemoryLimits { * @see [[IModelApp.tileAdmin]] to access the instance of the TileAdmin. * @see [[TileAdmin.Props]] to configure the TileAdmin at startup. * @public + * @extensionApi */ export class TileAdmin { private _versionInfo?: TileVersionInfo; diff --git a/core/frontend/src/tile/TileDrawArgs.ts b/core/frontend/src/tile/TileDrawArgs.ts index 85542524d5ea..4a519dcc996d 100644 --- a/core/frontend/src/tile/TileDrawArgs.ts +++ b/core/frontend/src/tile/TileDrawArgs.ts @@ -67,6 +67,7 @@ export interface TileDrawArgParams { * @see [[TileTree.selectTiles]] * @see [[TileTree.draw]] * @public + * @extensionApi */ export class TileDrawArgs { /** Transform to the location in iModel coordinates at which the tiles are to be drawn. */ diff --git a/core/frontend/src/tile/TileRequest.ts b/core/frontend/src/tile/TileRequest.ts index 9d5ea0c4aea2..1a879a1f3632 100644 --- a/core/frontend/src/tile/TileRequest.ts +++ b/core/frontend/src/tile/TileRequest.ts @@ -16,6 +16,7 @@ import { Tile, TileContent, TileRequestChannel, TileTree } from "./internal"; /** Represents a pending or active request to load the contents of a [[Tile]]. The request coordinates with the [[Tile.requestContent]] to obtain the raw content and * [[Tile.readContent]] to convert the result into a [[RenderGraphic]]. TileRequests are created internally as needed; it is never necessary or useful for external code to create them. * @public + * @extensionApi */ export class TileRequest { /** The requested tile. While the request is pending or active, `tile.request` points back to this TileRequest. */ diff --git a/core/frontend/src/tile/TileRequestChannel.ts b/core/frontend/src/tile/TileRequestChannel.ts index 0795c5a06ca6..f580f1de1017 100644 --- a/core/frontend/src/tile/TileRequestChannel.ts +++ b/core/frontend/src/tile/TileRequestChannel.ts @@ -24,6 +24,7 @@ class TileRequestQueue extends PriorityQueue { * @see [[TileRequestChannels.statistics]] for statistics from all channels. * @see [[TileAdmin.statistics]] for additional statistics. * @public + * @extensionApi */ export class TileRequestChannelStatistics { /** The number of queued requests that have not yet been dispatched. */ @@ -75,6 +76,7 @@ export class TileRequestChannelStatistics { * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system. * @see [[Tile.channel]] to specify the channel to be used to request a given tile's content. * @public + * @extensionApi */ export class TileRequestChannel { /** The channel's name. It must be unique among all registered [[TileRequestChannels]]. */ diff --git a/core/frontend/src/tile/TileRequestChannels.ts b/core/frontend/src/tile/TileRequestChannels.ts index b8338ed337f9..b651821d849a 100644 --- a/core/frontend/src/tile/TileRequestChannels.ts +++ b/core/frontend/src/tile/TileRequestChannels.ts @@ -44,6 +44,7 @@ class ElementGraphicsChannel extends TileRequestChannel { * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system. * @see [[TileRequestChannels.getForHttp]] for the most typical way of obtaining or registering a channel. * @public + * @extensionApi */ export class TileRequestChannels { /** @internal */ diff --git a/core/frontend/src/tile/TileTree.ts b/core/frontend/src/tile/TileTree.ts index d66fc32a8b48..805c4cca84c6 100644 --- a/core/frontend/src/tile/TileTree.ts +++ b/core/frontend/src/tile/TileTree.ts @@ -46,6 +46,7 @@ export enum TileTreeLoadStatus { * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method * that it calls. * @public + * @extensionApi */ export abstract class TileTree { private _isDisposed = false; diff --git a/core/frontend/src/tile/TileTreeReference.ts b/core/frontend/src/tile/TileTreeReference.ts index 4d409769b781..914972d5dce3 100644 --- a/core/frontend/src/tile/TileTreeReference.ts +++ b/core/frontend/src/tile/TileTreeReference.ts @@ -39,6 +39,7 @@ export enum TileGraphicType { * differing levels of transparency. * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]]. * @public + * @extensionApi */ export abstract class TileTreeReference /* implements RenderMemory.Consumer */ { /** The owner of the currently-referenced [[TileTree]]. Do not store a direct reference to it, because it may change or become disposed at any time. */ diff --git a/core/frontend/src/tile/TileUsageMarker.ts b/core/frontend/src/tile/TileUsageMarker.ts index e6e6cd171410..f527ea171606 100644 --- a/core/frontend/src/tile/TileUsageMarker.ts +++ b/core/frontend/src/tile/TileUsageMarker.ts @@ -17,6 +17,7 @@ import { Viewport } from "../Viewport"; * The marker is used to allow tiles to be discarded after they become disused by any viewport, via [[Tile.prune]]. * @see [[Tile.usageMarker]]. * @public + * @extensionApi */ export class TileUsageMarker { private _timePoint = BeTimePoint.now(); diff --git a/core/frontend/src/tools/EventController.ts b/core/frontend/src/tools/EventController.ts index fea004596916..c3c386f1fb58 100644 --- a/core/frontend/src/tools/EventController.ts +++ b/core/frontend/src/tools/EventController.ts @@ -13,6 +13,7 @@ import { ToolAdmin } from "./ToolAdmin"; * An EventController maps user input events from a Viewport to the ToolAdmin so that tools can process them. * Viewports are assigned an EventController when they are registered with ViewManager.addViewport and they are destroyed with ViewManager.dropViewport. * @public + * @extensionApi */ export class EventController { private readonly _removals: VoidFunction[] = []; diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index 280dd0857ea3..e04ac70a6f84 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -80,7 +80,10 @@ export enum CoordSource { */ export enum BeModifierKeys { None = 0, Control = 1 << 0, Shift = 1 << 1, Alt = 1 << 2 } -/** @public */ +/** + * @public + * @extensionApi + */ export class BeButtonState { private readonly _downUorPt: Point3d = new Point3d(); private readonly _downRawPt: Point3d = new Point3d(); @@ -243,6 +246,7 @@ export interface BeTouchEventProps extends BeButtonEventProps { /** A ButtonEvent generated by touch input. * @public + * @extensionApi */ export class BeTouchEvent extends BeButtonEvent implements BeTouchEventProps { public tapCount: number = 0; @@ -312,6 +316,7 @@ export interface BeWheelEventProps extends BeButtonEventProps { /** A BeButtonEvent generated by movement of a mouse wheel. * @note wheel events include mouse location. * @public + * @extensionApi */ export class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps { public wheelDelta: number; diff --git a/core/frontend/src/tools/ToolAdmin.ts b/core/frontend/src/tools/ToolAdmin.ts index c9e8678fffc9..f582a22e1dba 100644 --- a/core/frontend/src/tools/ToolAdmin.ts +++ b/core/frontend/src/tools/ToolAdmin.ts @@ -302,6 +302,7 @@ interface ToolEvent { /** Controls the operation of [[Tool]]s, administering the current [[ViewTool]], [[PrimitiveTool]], and [[IdleTool]] and forwarding events to the appropriate tool. * @public + * @extensionApi */ export class ToolAdmin { public markupView?: ScreenViewport; diff --git a/core/frontend/src/tools/ToolSettings.ts b/core/frontend/src/tools/ToolSettings.ts index af9b81e39848..79b3090d50c2 100644 --- a/core/frontend/src/tools/ToolSettings.ts +++ b/core/frontend/src/tools/ToolSettings.ts @@ -11,6 +11,7 @@ import { Angle, Constant } from "@itwin/core-geometry"; /** Settings that control the behavior of built-in tools. Applications may modify these values. * @public + * @extensionApi */ export class ToolSettings { /** Two tap must be within this period to be a double tap. */ diff --git a/core/frontend/src/tools/ViewTool.ts b/core/frontend/src/tools/ViewTool.ts index f525325d3e7c..62e149e62540 100644 --- a/core/frontend/src/tools/ViewTool.ts +++ b/core/frontend/src/tools/ViewTool.ts @@ -296,6 +296,7 @@ export class ViewHandleArray { /** Base class for tools that manipulate the frustum of a Viewport. * @public + * @extensionApi */ export abstract class ViewManip extends ViewTool { /** @internal */ From 74e4c5f9e7a640b77c1ecfedf6693431253c8f7c Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:36:05 -0600 Subject: [PATCH 30/76] Added tag to core-frontend namespace --- core/frontend/src/PerModelCategoryVisibility.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/core/frontend/src/PerModelCategoryVisibility.ts b/core/frontend/src/PerModelCategoryVisibility.ts index 2d3b85847061..87188b96c2ea 100644 --- a/core/frontend/src/PerModelCategoryVisibility.ts +++ b/core/frontend/src/PerModelCategoryVisibility.ts @@ -17,6 +17,7 @@ import { Viewport } from "./Viewport"; * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]]. * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport. * @public + * @extensionApi */ export namespace PerModelCategoryVisibility { /** Describes whether and how a category's visibility is overridden. */ From 0ab4b82979d17a55fe693ea4d6e3c29c1a6347be Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:36:40 -0600 Subject: [PATCH 31/76] Added more tags and extension api command --- common/config/rush/command-line.json | 9 +++++++++ core/common/src/BriefcaseTypes.ts | 2 ++ core/common/src/ChangesetProps.ts | 4 +++- core/frontend/src/FrontendLoggerCategory.ts | 1 + tools/build/scripts/utils/validateTags.js | 4 ++++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json index ad56397f8b36..ac704e5765b7 100644 --- a/common/config/rush/command-line.json +++ b/common/config/rush/command-line.json @@ -64,6 +64,15 @@ "ignoreMissingScript": true, "ignoreDependencyOrder": true }, + { + "name": "extract-extension-api", + "commandKind": "bulk", + "summary": "Run eslint rule to generate extension API files", + "description": "Iterates through each package in the monorepo and runs the 'extract-extension-api' script", + "enableParallelism": true, + "ignoreMissingScript": true, + "ignoreDependencyOrder": true + }, { "name": "lint", "commandKind": "bulk", diff --git a/core/common/src/BriefcaseTypes.ts b/core/common/src/BriefcaseTypes.ts index 084bf592f7a5..e053d6087c75 100644 --- a/core/common/src/BriefcaseTypes.ts +++ b/core/common/src/BriefcaseTypes.ts @@ -19,6 +19,7 @@ export type BriefcaseId = number; /** Values of [[BriefcaseId]] that have special meaning. * @public + * @extensionApi */ export enum BriefcaseIdValue { /** Indicates an invalid/illegal BriefcaseId */ @@ -49,6 +50,7 @@ export enum BriefcaseIdValue { /** Whether a briefcase is editable or may only accept incoming changesets from iModelHub * @public + * @extensionApi */ export enum SyncMode { /** Use a fixed version (i.e. a checkpoint). See [CheckpointManager]($backend) for preferred approach to using checkpoint files. */ diff --git a/core/common/src/ChangesetProps.ts b/core/common/src/ChangesetProps.ts index 531cc07ded35..710eeef72464 100644 --- a/core/common/src/ChangesetProps.ts +++ b/core/common/src/ChangesetProps.ts @@ -45,7 +45,9 @@ export interface ChangesetIdWithIndex { readonly index?: ChangesetIndex, readonl export type ChangesetIndexOrId = ChangesetIndexAndId | { readonly index: ChangesetIndex, readonly id?: never } | { readonly id: ChangesetId, readonly index?: never }; /** Value to indicate whether a changeset contains schema changes or not - * @public */ + * @public + * @extensionApi + */ export enum ChangesetType { /** changeset does *not* contain schema changes. */ Regular = 0, diff --git a/core/frontend/src/FrontendLoggerCategory.ts b/core/frontend/src/FrontendLoggerCategory.ts index cdb9c231527f..0e468b6b2f47 100644 --- a/core/frontend/src/FrontendLoggerCategory.ts +++ b/core/frontend/src/FrontendLoggerCategory.ts @@ -10,6 +10,7 @@ * @note All logger categories in this package start with the `core-frontend` prefix. * @see [Logger]($bentley) * @public + * @extensionApi */ export enum FrontendLoggerCategory { Package = "core-frontend", diff --git a/tools/build/scripts/utils/validateTags.js b/tools/build/scripts/utils/validateTags.js index c23cad8fe66f..d480f0985265 100644 --- a/tools/build/scripts/utils/validateTags.js +++ b/tools/build/scripts/utils/validateTags.js @@ -25,6 +25,10 @@ const validTags = [ "deprecated", "internal", "public", + + // Following flags are added for internal Extension tooling (public-extension-api) + "extensionApi", + "preview", ]; function validateTags(path) { From dd3dd59c2936b2c90838583174e848089c6b10a3 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:37:47 -0600 Subject: [PATCH 32/76] Added d.ts an d.js code gen logic --- core/extension/codeGen/generate-exports.js | 167 +++++ core/extension/codeGen/generate-type-files.js | 119 ---- core/extension/common_types.d.ts | 290 --------- core/extension/frontend_types.d.ts | 295 --------- core/extension/index.d.ts | 614 ++++++++++++++++-- core/extension/index.js | 305 +++++---- core/extension/package.json | 2 +- 7 files changed, 886 insertions(+), 906 deletions(-) create mode 100644 core/extension/codeGen/generate-exports.js delete mode 100644 core/extension/codeGen/generate-type-files.js delete mode 100644 core/extension/common_types.d.ts delete mode 100644 core/extension/frontend_types.d.ts diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js new file mode 100644 index 000000000000..7c85f118fca8 --- /dev/null +++ b/core/extension/codeGen/generate-exports.js @@ -0,0 +1,167 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + +const fs = require("fs"); + +const declarationFilePath = "index.d.ts"; +const jsFilePath = "index.js"; +const generatedCsvPath = "/lib/GeneratedExtensionApi.csv"; + +const codeGenOpeningComment = `// BEGIN GENERATED CODE`; +const codeGenClosingComment = `// END GENERATED CODE`; +// select all of generated block, including comments +const codeGenBlock = RegExp(`${codeGenOpeningComment}(\\s|\\S)*${codeGenClosingComment}`); + +const args = process.argv.slice(2); + + +// Convert extension linter's output file to a set of lists separated by export type +function interpretCsv(csvString) { + let apiByType = { + // property names to match the type names from extension eslint rule output + enum: [], + interface: [], + type: [], + real: [] + }; + + // Data in exportName,exportType order + try { + csvString.split("\n").forEach(line => { + if (line.length === 0) { + return; + } + line = line.split(","); + apiByType[line[1]].push(line[0]); + }); + } catch (error) { + console.log("Provided csv with Extension API was malformed.", error); + } + + return apiByType; +} + + +// Create the export code for the .d.ts file +function generateDeclarationCode(exportList) { + let exportCode = ""; + + // Make real and type exports for each package + for (const packageName in exportList) { + let realExports = "export {\n"; + let typeExports = "export type {\n"; + const exportTrailer = `} from "${packageName}";\n\n`; + + exportList[packageName].enum.forEach((enumExport) => { + realExports += `\t${enumExport},\n`; + }); + exportList[packageName].real.forEach((realExport) => { + realExports += `\t${realExport}, // REAL \n`; + }); + + exportList[packageName].interface.forEach((interfaceExport) => { + typeExports += `\t${interfaceExport},\n`; + }); + exportList[packageName].type.forEach((typeExport) => { + typeExports += `\t${typeExport},\n`; + }); + + exportCode += realExports + exportTrailer + typeExports + exportTrailer; + }; + + return exportCode; +} + + +// Create the export code for the .js file +function generateJsCode(exportList) { + let exportCode = "export const {\n"; + const exportTrailer = "} = ext.exports;\n"; + + // Only make exports for reals in each package + for (const packageName in exportList) { + exportCode += `// ${packageName}:\n`; + exportList[packageName].enum.forEach((enumExport) => { + exportCode += `\t${enumExport},\n`; + }); + exportList[packageName].real.forEach((realExport) => { + exportCode += `\t${realExport}, // REAL \n`; + }); + }; + + return exportCode + exportTrailer; +} + + +// Find the extension linter's output file and convert to a set of useful lists +function collectExports(packagePath) { + // Adjust to relative path from monorepo root and add path to generated extension API + packagePath = "../../" + packagePath + generatedCsvPath; + + try { + var fileContents = fs.readFileSync(packagePath, "utf8"); + if (fileContents.length === 0) { + throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); + } + } catch (error) { + throw Error("Failed to read extension api csv, it may not exist or has no content.\n" + error); + } + + return interpretCsv(fileContents); +} + + +// Replace the target file's code gen block with the provided code +function addToFile(filePath, generatedCode) { + let fileContents = fs.readFileSync(filePath, "utf8"); + + if (!codeGenBlock.test(fileContents)) { + throw Error(`No block for generated code found in '${filePath}. A block with the code gen opening and closing comments is required.`); + } + + // Embed generated code in codeGen block + generatedCode = `${codeGenOpeningComment}\n${generatedCode}${codeGenClosingComment}`; + + fileContents = fileContents.replace( + codeGenBlock, + generatedCode + ); + fs.writeFileSync(filePath, fileContents); +} + + +// Use the extension linter's output file to add export statements to .d.ts and .js files +function addGeneratedExports(packages) { + let exportList = {}; + + packages.forEach((package) => { + exportList[package.name] = collectExports(package.path); + }); + + // Generate declaration code + const declarationCode = generateDeclarationCode(exportList); + addToFile(declarationFilePath, declarationCode); + + // Generate js code + const jsCode = generateJsCode(exportList); + addToFile(jsFilePath, jsCode); +} + + +const packages = []; +args.forEach((paramPair) => { + // Replace all single quotes with double quotes, so JSON can parse + paramPair = paramPair.replace(/'/g, "\""); + paramPair = JSON.parse(paramPair); + + if (paramPair.length < 2) { + throw Error("Provided argument does not contain package name followed by package path.", paramPair); + } + packages.push({ + name: paramPair[0], + path: paramPair[1] + }); +}); +addGeneratedExports(packages); \ No newline at end of file diff --git a/core/extension/codeGen/generate-type-files.js b/core/extension/codeGen/generate-type-files.js deleted file mode 100644 index 7e48f79e7bc3..000000000000 --- a/core/extension/codeGen/generate-type-files.js +++ /dev/null @@ -1,119 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ - -const fs = require("fs"); - -const declarationFilePath = "index.d.ts"; -const generatedCsvPath = "/lib/GeneratedExtensionApi.csv"; - -const codeGenOpeningComment = `// BEGIN GENERATED CODE`; -const codeGenClosingComment = `// END GENERATED CODE`; -// select all of generated block, including comments -const codeGenBlock = RegExp(`${codeGenOpeningComment}(\\s|\\S)*${codeGenClosingComment}`); - -const args = process.argv.slice(2); - - -function interpretCsv(csvString) { - let apiByType = { - // property names to match the type names from extension eslint rule output - enum: [], - interface: [], - type: [], - real: [] - }; - - // Data in exportName,exportType order - try { - csvString.split("\n").forEach(line => { - if (line.length === 0) { - return; - } - line = line.split(","); - apiByType[line[1]].push(line[0]); - }); - } catch (error) { - console.log("Provided csv with Extension API was malformed.", error); - } - - return apiByType; -} - -function generateExports(apiByType, packageName) { - let realExports = "export {\n"; - let typeExports = "export type {\n"; - const exportTrailer = "} from \"" + packageName + "\";\n\n"; - - apiByType.enum.forEach((enumExport) => { - realExports += enumExport + ",\n"; - }); - apiByType.real.forEach((realExport) => { - realExports += realExport + ",\n"; - }); - - apiByType.interface.forEach((interfaceExport) => { - typeExports += interfaceExport + ",\n"; - }); - apiByType.type.forEach((typeExport) => { - typeExports += typeExport + ",\n"; - }); - - return realExports + exportTrailer + typeExports + exportTrailer; -} - -function collectExports(packageName, packagePath) { - // Adjust to relative path from monorepo root and add path to generated extension API - packagePath = "../../" + packagePath + generatedCsvPath; - - try { - var fileContents = fs.readFileSync(packagePath, "utf8"); - if (fileContents.length === 0) { - throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); - } - } catch (error) { - throw Error("Failed to read extension api csv, it may not exist or has no content.\n" + error); - } - - const apiByType = interpretCsv(fileContents); - - return generateExports(apiByType, packageName); -} - -function generateDeclarationFile(packages) { - let generatedExports = codeGenOpeningComment + "\n"; - - packages.forEach((package) => { - generatedExports += collectExports(package.name, package.path); - }); - generatedExports += codeGenClosingComment; - - fileContents = fs.readFileSync(declarationFilePath, "utf8"); - - if (!codeGenBlock.test(fileContents)) { - throw Error("No block for generated code found. A block with the code gen opening and closing comments is required.") - } - - fileContents = fileContents.replace( - codeGenBlock, - generatedExports - ); - fs.writeFileSync(declarationFilePath, fileContents); -} - -const packages = []; -args.forEach((paramPair) => { - // Replace all single quotes with double quotes, so JSON can parse - paramPair = paramPair.replace(/'/g, "\""); - paramPair = JSON.parse(paramPair); - - if (paramPair.length < 2) { - throw Error("Provided argument does not contain package name followed by package path.", paramPair); - } - packages.push({ - name: paramPair[0], - path: paramPair[1] - }); -}); -generateDeclarationFile(packages); \ No newline at end of file diff --git a/core/extension/common_types.d.ts b/core/extension/common_types.d.ts deleted file mode 100644 index 9f191cba26fc..000000000000 --- a/core/extension/common_types.d.ts +++ /dev/null @@ -1,290 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Enums (note these are all real!) -export { - BackgroundFill, - BackgroundMapType, - BatchType, - BisCodeSpec, - ChangedValueState, - ChangeOpCode, - ColorByName, - CommonLoggerCategory, - ECSqlSystemProperty, - ECSqlValueType, - ElementGeometryOpcode, - FeatureOverrideType, - FillDisplay, - FillFlags, - FontType, - GeoCoordStatus, - GeometryClass, - GeometryStreamFlags, - GeometrySummaryVerbosity, - GlobeMode, - GridOrientationType, - HSVConstants, - ImageBufferFormat, - ImageSourceFormat, - LinePixels, - MassPropertiesOperation, - MonochromeMode, - Npc, - PlanarClipMaskMode, - PlanarClipMaskPriority, - QueryRowFormat, - Rank, - RenderMode, - SectionType, - SkyBoxImageType, - SpatialClassifierInsideDisplay, - SpatialClassifierOutsideDisplay, - TerrainHeightOriginMode, - TextureMapUnits, - ThematicDisplayMode, - ThematicGradientColorScheme, - ThematicGradientMode, - TxnAction, - TypeOfChange, -} from "@itwin/core-common"; - -// Interfaces -export type { - AdditionalTransformProps, - AffineTransformProps, - AmbientLightProps, - AnalysisStyleDisplacementProps, - AnalysisStyleProps, - AnalysisStyleThematicProps, - AppearanceOverrideProps, - AreaFillProps, - AuxCoordSystem2dProps, - AuxCoordSystem3dProps, - AuxCoordSystemProps, - BackgroundMapProps, - BaseReaderOptions, - BRepPrimitive, - CalloutProps, - CameraProps, - Carto2DDegreesProps, - CartographicProps, - CategoryProps, - CategorySelectorProps, - ChangedElements, - ChangedEntities, - ChangesetIdWithIndex, - ChangesetIndexAndId, - ChangesetRange, - ChannelRootAspectProps, - ClipStyleProps, - CodeProps, - ContextRealityModelProps, - ContextRealityModelsContainer, - CutStyleProps, - DefinitionElementProps, - DeletedElementGeometryChange, - DeprecatedBackgroundMapProps, - DisplayStyle3dProps, - DisplayStyle3dSettingsProps, - DisplayStyleLoadProps, - DisplayStyleModelAppearanceProps, - DisplayStyleOverridesOptions, - DisplayStylePlanarClipMaskProps, - DisplayStyleProps, - DisplayStyleSettingsOptions, - DisplayStyleSettingsProps, - DisplayStyleSubCategoryProps, - DynamicGraphicsRequest2dProps, - DynamicGraphicsRequest3dProps, - DynamicGraphicsRequestProps, - EcefLocationProps, - ElementAspectProps, - ElementGeometryDataEntry, - ElementIdsAndRangesProps, - ElementLoadOptions, - ElementLoadProps, - ElementProps, - EmphasizeElementsProps, - EntityIdAndClassId, - EntityProps, - EntityQueryParams, - EnvironmentProps, - ExtantElementGeometryChange, - ExternalSourceAspectProps, - FeatureAppearanceProps, - FeatureAppearanceProvider, - FeatureAppearanceSource, - FilePropertyProps, - FlatBufferGeometryStream, - FontMapProps, - FontProps, - FresnelSettingsProps, - FunctionalElementProps, - GeocentricTransformProps, - GeodeticDatumProps, - GeodeticEllipsoidProps, - GeodeticTransformProps, - GeographicCRSProps, - GeometricElement2dProps, - GeometricElement3dProps, - GeometricElementProps, - GeometricModel2dProps, - GeometricModel3dProps, - GeometricModelProps, - GeometryAppearanceProps, - GeometryContainmentRequestProps, - GeometryContainmentResponseProps, - GeometryPartInstanceProps, - GeometryPartProps, - GeometryPrimitive, - GeometryStreamEntryProps, - GeometryStreamHeaderProps, - GeometryStreamIteratorEntry, - GeometrySummaryOptions, - GeometrySummaryRequestProps, - GraphicsRequestProps, - GridFileDefinitionProps, - GridFileTransformProps, - GroundPlaneProps, - Helmert2DWithZOffsetProps, - HemisphereLightsProps, - HorizontalCRSExtentProps, - HorizontalCRSProps, - ImageGraphicProps, - ImagePrimitive, - InformationPartitionElementProps, - JsonGeometryStream, - LightSettingsProps, - LineStyleProps, - LocalBriefcaseProps, - Localization, - MassPropertiesRequestProps, - MassPropertiesResponseProps, - MaterialProps, - ModelClipGroupProps, - ModelGeometryChanges, - ModelGeometryChangesProps, - ModelIdAndGeometryGuid, - ModelLoadProps, - ModelProps, - ModelQueryParams, - ModelSelectorProps, - NavigationBindingValue, - NavigationValue, - PartReference, - PersistentGraphicsRequestProps, - PhysicalElementProps, - PhysicalTypeProps, - Placement2dProps, - Placement3dProps, - PlanarClipMaskProps, - PlanProjectionSettingsProps, - PositionalVectorTransformProps, - ProjectionProps, - QueryLimit, - QueryOptions, - QueryQuota, - RelatedElementProps, - RelationshipProps, - RenderMaterialAssetProps, - RenderMaterialProps, - RenderTimelineLoadProps, - RenderTimelineProps, - RepositoryLinkProps, - RequestNewBriefcaseProps, - RgbColorProps, - RootSubjectProps, - RpcActivity, - SectionDrawingLocationProps, - SectionDrawingProps, - SectionDrawingViewProps, - SessionProps, - SheetProps, - SkyBoxImageProps, - SkyBoxProps, - SkyCubeProps, - SolarLightProps, - SolarShadowSettingsProps, - SourceAndTarget, - SpatialClassifierFlagsProps, - SpatialClassifierProps, - SpatialClassifiersContainer, - SpatialViewDefinitionProps, - SubCategoryProps, - SubjectProps, - TerrainProps, - TextStringPrimitive, - TextStringProps, - TextureData, - TextureLoadProps, - TextureMapProps, - TextureProps, - ThematicDisplayProps, - ThematicDisplaySensorProps, - ThematicDisplaySensorSettingsProps, - ThematicGradientSettingsProps, - ThumbnailFormatProps, - ThumbnailProps, - TileVersionInfo, - TypeDefinitionElementProps, - UrlLinkProps, - VerticalCRSProps, - ViewAttachmentLabelProps, - ViewAttachmentProps, - ViewDefinition2dProps, - ViewDefinition3dProps, - ViewDefinitionProps, - ViewDetails3dProps, - ViewDetailsProps, - ViewFlagProps, - ViewQueryParams, - ViewStateLoadProps, - ViewStateProps, - WhiteOnWhiteReversalProps, - XyzRotationProps, -} from "@itwin/core-common" - -// Types -export { - AxisAlignedBox3d, - AxisAlignedBox3dProps, - BackgroundMapProviderName, - Base64EncodedString, - BriefcaseId, - ChangesetId, - ChangesetIndex, - ChangesetIndexOrId, - CodeScopeProps, - ColorDefProps, - DanishSystem34Region, - EasingFunction, - ElementAlignedBox2d, - ElementAlignedBox3d, - ElementGeometryChange, - ElementGraphicsRequestProps, - EntityIdAndClassIdIterable, - GeodeticTransformMethod, - GeometryStreamPrimitive, - GeometryStreamProps, - GridFileDirection, - GridFileFormat, - HemisphereEnum, - ImageGraphicCornersProps, - InterpolationFunction, - LocalAlignedBox3d, - PersistentBackgroundMapProps, - Placement, - PlacementProps, - Point2dProps, - ProjectionMethod, - RemoveFunction, - RgbFactorProps, - TerrainProviderName, - TweenCallback, - UnitType, - UpdateCallback, - ViewFlagOverrides, - ViewFlagsProperties, -} from "@itwin/core-common" \ No newline at end of file diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts deleted file mode 100644 index 7c0f7323b185..000000000000 --- a/core/extension/frontend_types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Interfaces -export type { - Animator, - BatchOptions, - BeButtonEventProps, - BeTouchEventProps, - BeWheelEventProps, - CanvasDecoration, - ChangeViewedModel2dOptions, - ComputeChordToleranceArgs, - CreateTextureArgs, - CreateTextureFromSourceArgs, - CustomGraphicBuilderOptions, - Decorator, - DepthPointOptions, - DepthRangeNpc, - ExtentLimits, - FeatureOverrideProvider, - FrontendSecurityOptions, - FuzzySearchResult, - GlobalAlignmentOptions, - GlobalLocation, - GlobalLocationArea, - GpuMemoryLimits, - GraphicArc, - GraphicArc2d, - GraphicBranchOptions, - GraphicBuilderOptions, - GraphicLineString, - GraphicLineString2d, - GraphicLoop, - GraphicPath, - GraphicPointString, - GraphicPointString2d, - GraphicPolyface, - GraphicPrimitive2d, - GraphicShape, - GraphicShape2d, - GraphicSolidPrimitive, - HitListHolder, - IModelIdArg, - MarginOptions, - OffScreenViewportOptions, - OnViewExtentsError, - OsmBuildingDisplayOptions, - ParsedKeyin, - ParseKeyinError, - ParticleCollectionBuilder, - ParticleCollectionBuilderParams, - ParticleProps, - PickableGraphicOptions, - ScreenSpaceEffectBuilder, - ScreenSpaceEffectBuilderParams, - ScreenSpaceEffectContext, - ScreenSpaceEffectSource, - SelectAddEvent, - SelectedViewportChangedArgs, - SelectRemoveEvent, - SelectReplaceEvent, - TextureCacheOwnership, - TextureImage, - TileContent, - TiledGraphicsProvider, - TileDrawArgParams, - TileParams, - TileTreeDiscloser, - TileTreeOwner, - TileTreeParams, - TileTreeSupplier, - ToolAssistanceInstruction, - ToolAssistanceInstructions, - ToolAssistanceKeyboardInfo, - ToolAssistanceSection, - ToolTipOptions, - Uniform, - UniformArrayParams, - UniformContext, - UniformParams, - ViewAnimationOptions, - ViewChangeOptions, - ViewClipEventHandler, - ViewCreator2dOptions, - ViewCreator3dOptions, - ViewportDecorator, - ViewportGraphicBuilderOptions, - ZoomToOptions, -} from "@itwin/core-frontend"; - -// Types -export type { - CanvasDecorationList, - FlashSettingsOptions, - GpuMemoryLimit, - GraphicList, - GraphicPrimitive, - MarkerFillStyle, - MarkerImage, - MarkerTextAlign, - MarkerTextBaseline, - OnFlashedIdChangedEventArgs, - ParseKeyinResult, - SelectionSetEvent, - TextureCacheKey, - TextureImageSource, - TextureOwnership, - ToolList, - ToolType, -} from "@itwin/core-frontend"; - -// Enums (note these are all real!) -export { - ACSDisplayOptions, - ACSType, - ActivityMessageEndReason, - BeButton, - BeModifierKeys, - ClipEventType, - ContextRotationId, - CoordinateLockOverrides, - CoordSource, - CoordSystem, - DepthPointSource, - EventHandled, - FlashMode, - GraphicType, - HitDetailType, - HitGeomType, - HitParentGeomType, - HitPriority, - HitSource, - InputSource, - KeyinParseError, - LocateAction, - LocateFilterStatus, - ManipulatorToolEvent, - MessageBoxIconType, - MessageBoxType, - MessageBoxValue, - OutputMessageAlert, - OutputMessagePriority, - OutputMessageType, - ParseAndRunResult, - SelectionMethod, - SelectionMode, - SelectionProcessing, - SelectionSetEventType, - SnapHeat, - SnapMode, - SnapStatus, - StandardViewId, - StartOrResume, - TextureTransparency, - TileBoundingBoxes, - TileGraphicType, - TileLoadPriority, - TileLoadStatus, - TileTreeLoadStatus, - TileVisibility, - ToolAssistanceImage, - ToolAssistanceInputMethod, - UniformType, - VaryingType, - ViewStatus, - ViewUndoEvent, -} from "@itwin/core-frontend"; - -// Abstract Classes -export type { - AuxCoordSystemState, - DisplayStyleState, - GeometricModelState, - GraphicBuilder, - IModelConnection, - // InputCollector, @REAL - // InteractiveTool, @REAL - MarkerSet, - NotificationHandler, - // PrimitiveTool, @REAL - RenderClipVolume, - RenderGraphic, - RenderGraphicOwner, - RenderSystem, - Tile, - TileTree, - TileTreeReference, - ViewManip, - Viewport, - ViewPose, - ViewState, - ViewState2d, - ViewState3d, - // ViewTool @REAL -} from "@itwin/core-frontend"; - -// Classes -export type { - // AccuDrawHintBuilder, @REAL - AccuSnap, - ActivityMessageDetails, - AuxCoordSystem2dState, - AuxCoordSystem3dState, - AuxCoordSystemSpatialState, - // BeButtonEvent, @REAL - BeButtonState, - BeTouchEvent, - BeWheelEvent, - // BingElevationProvider, @REAL - // BingLocationProvider, @REAL - CategorySelectorState, - ChangeFlags, - // Cluster, @REAL - ContextRealityModelState, - DecorateContext, - Decorations, - DisclosedTileTreeSet, - DisplayStyle2dState, - DisplayStyle3dState, - DrawingModelState, - DrawingViewState, - DynamicsContext, - ElementLocateManager, - ElementPicker, - ElementState, - // EmphasizeElements, @REAL - EntityState, - EventController, - FlashSettings, - // FrustumAnimator, @REAL - GeometricModel2dState, - GeometricModel3dState, - // GlobeAnimator, @REAL - // GraphicBranch, @REAL - HiliteSet, - HitDetail, - HitList, - IconSprites, - // IModelApp, @BANNED - IntersectDetail, - // IpcApp, @BANNED - LocateOptions, - // LocateResponse, @REAL - // MarginPercent, @REAL - // Marker, @REAL - ModelSelectorState, - ModelState, - NotificationManager, - // NotifyMessageDetails, @REAL - OffScreenViewport, - OrthographicViewState, - PhysicalModelState, - RenderContext, - Scene, - SceneContext, - ScreenViewport, - SectionDrawingModelState, - SelectionSet, - SheetModelState, - SheetViewState, - SnapDetail, - SpatialLocationModelState, - SpatialModelState, - SpatialViewState, - Sprite, - SpriteLocation, - TentativePoint, - TileAdmin, - TileDrawArgs, - TileRequest, - TileRequestChannel, - TileRequestChannels, - TileRequestChannelStatistics, - Tiles, - TileUsageMarker, - // Tool, @REAL - ToolAdmin, - // ToolAssistance, @REAL - ToolSettings, - ViewCreator2d, - ViewCreator3d, - ViewingSpace, - ViewManager, - // ViewRect, @REAL -} from "@itwin/core-frontend"; - -// namespaces (minus conflicts) -export type { - // EditManipulator, @REAL - // FeatureSymbology, @REAL - PerModelCategoryVisibility, - // Pixel @REAL -} from "@itwin/core-frontend"; diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index 0584b567c1f5..d7839aab38d9 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -2,48 +2,580 @@ * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -export * from "./common_types"; -export * from "./frontend_types"; + +export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise + +// BEGIN GENERATED CODE export { - InteractiveTool, - PrimitiveTool, - ViewTool, - Tool, - ToolAssistance, - BeButtonEvent, - ViewRect, - Pixel, - LocateResponse, - EditManipulator, - AccuDrawHintBuilder, - EmphasizeElements, - FeatureSymbology, - GraphicBranch, - NotifyMessageDetails, - ExtensionHost, - BingElevationProvider, - BingLocationProvider, - InputCollector, - FrustumAnimator, - GlobeAnimator, - MarginPercent, - Marker, - Cluster, - getCompressedJpegFromCanvas, - getImageSourceFormatForMimeType, - getImageSourceMimeType, - imageBufferToBase64EncodedPng, - imageBufferToCanvas, - imageBufferToPngDataUrl, - imageElementFromImageSource, - imageElementFromUrl, - queryTerrainElevationOffset, - readElementGraphics, - canvasToImageBuffer, - canvasToResizedCanvasWithBars, - extractImageSourceDimensions, + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + GraphicType, + TextureTransparency, + UniformType, + VaryingType, + SelectionSetEventType, + StandardViewId, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + DepthPointSource, + ViewUndoEvent, + ViewStatus, + AccuDrawHintBuilder, // REAL + BingLocationProvider, // REAL + LocateResponse, // REAL + EmphasizeElements, // REAL + ExtensionHost, // REAL + FrustumAnimator, // REAL + GlobeAnimator, // REAL + canvasToResizedCanvasWithBars, // REAL + imageBufferToCanvas, // REAL + canvasToImageBuffer, // REAL + getImageSourceMimeType, // REAL + getImageSourceFormatForMimeType, // REAL + imageElementFromImageSource, // REAL + imageElementFromUrl, // REAL + extractImageSourceDimensions, // REAL + imageBufferToPngDataUrl, // REAL + imageBufferToBase64EncodedPng, // REAL + getCompressedJpegFromCanvas, // REAL + MarginPercent, // REAL + Marker, // REAL + Cluster, // REAL + NotifyMessageDetails, // REAL + FeatureSymbology, // REAL + GraphicBranch, // REAL + Pixel, // REAL + readElementGraphics, // REAL + BingElevationProvider, // REAL + EditManipulator, // REAL + PrimitiveTool, // REAL + BeButtonEvent, // REAL + Tool, // REAL + InteractiveTool, // REAL + InputCollector, // REAL + ToolAssistance, // REAL + ViewTool, // REAL + queryTerrainElevationOffset, // REAL + ViewRect, // REAL +} from "@itwin/core-frontend"; + +export type { + OsmBuildingDisplayOptions, + HitListHolder, + FeatureOverrideProvider, + IModelIdArg, + FuzzySearchResult, + FrontendSecurityOptions, + ToolTipOptions, + CanvasDecoration, + GraphicBranchOptions, + BatchOptions, + PickableGraphicOptions, + GraphicBuilderOptions, + ViewportGraphicBuilderOptions, + ComputeChordToleranceArgs, + CustomGraphicBuilderOptions, + GraphicPrimitive2d, + GraphicLineString, + GraphicLineString2d, + GraphicPointString, + GraphicPointString2d, + GraphicShape, + GraphicShape2d, + GraphicArc, + GraphicArc2d, + GraphicPath, + GraphicLoop, + GraphicPolyface, + GraphicSolidPrimitive, + ParticleCollectionBuilderParams, + ParticleProps, + ParticleCollectionBuilder, + TextureCacheOwnership, + TextureImage, + CreateTextureArgs, + CreateTextureFromSourceArgs, + Uniform, + UniformContext, + UniformParams, + UniformArrayParams, + ScreenSpaceEffectSource, + ScreenSpaceEffectBuilderParams, + ScreenSpaceEffectContext, + ScreenSpaceEffectBuilder, + SelectAddEvent, + SelectRemoveEvent, + SelectReplaceEvent, + TileTreeDiscloser, + GpuMemoryLimits, + TileContent, + TiledGraphicsProvider, + TileDrawArgParams, + TileParams, + TileTreeOwner, + TileTreeParams, + TileTreeSupplier, + ViewClipEventHandler, + BeButtonEventProps, + BeTouchEventProps, + BeWheelEventProps, + ParseKeyinError, + ParsedKeyin, + ToolAssistanceKeyboardInfo, + ToolAssistanceInstruction, + ToolAssistanceSection, + ToolAssistanceInstructions, + Animator, + ViewAnimationOptions, + GlobalAlignmentOptions, + OnViewExtentsError, + MarginOptions, + ViewChangeOptions, + ViewCreator2dOptions, + ViewCreator3dOptions, + GlobalLocationArea, + GlobalLocation, + Decorator, + SelectedViewportChangedArgs, + ViewportDecorator, + DepthPointOptions, + DepthRangeNpc, + ZoomToOptions, + ChangeViewedModel2dOptions, + OffScreenViewportOptions, + ExtentLimits, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + ElementPicker, + ElementLocateManager, + EntityState, + ElementState, + FlashSettingsOptions, + FlashSettings, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + IModelConnection, + NotificationHandler, + MarkerImage, + MarkerFillStyle, + MarkerTextAlign, + MarkerTextBaseline, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + CanvasDecorationList, + Decorations, + GraphicBuilder, + GraphicPrimitive, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + GraphicList, + RenderSystem, + TextureCacheKey, + TextureOwnership, + TextureImageSource, + Scene, + SelectionSetEvent, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + DisclosedTileTreeSet, + Tile, + GpuMemoryLimit, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + Tiles, + EventController, + ToolType, + ToolList, + BeButtonState, + BeTouchEvent, + BeWheelEvent, + ParseKeyinResult, + ToolAdmin, + ToolSettings, + ViewManip, + RenderContext, + DynamicsContext, + DecorateContext, + SceneContext, + ViewCreator2d, + ViewCreator3d, + ViewingSpace, + ViewManager, + OnFlashedIdChangedEventArgs, + Viewport, + ScreenViewport, + OffScreenViewport, + ViewPose, + ViewState, + ViewState3d, + ViewState2d, } from "@itwin/core-frontend"; -export { ColorDef } from "@itwin/core-common"; +export { + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ColorDef, // REAL +} from "@itwin/core-common"; + +export type { + AnalysisStyleDisplacementProps, + AnalysisStyleThematicProps, + AnalysisStyleProps, + BackgroundMapProps, + DeprecatedBackgroundMapProps, + LocalBriefcaseProps, + RequestNewBriefcaseProps, + CameraProps, + ChangedElements, + EntityIdAndClassId, + ChangedEntities, + ChangesetIndexAndId, + ChangesetIdWithIndex, + ChangesetRange, + CutStyleProps, + ClipStyleProps, + CodeProps, + QueryLimit, + QueryQuota, + BaseReaderOptions, + QueryOptions, + ContextRealityModelProps, + ContextRealityModelsContainer, + DisplayStyleSubCategoryProps, + DisplayStyleModelAppearanceProps, + DisplayStylePlanarClipMaskProps, + DisplayStyleSettingsProps, + DisplayStyle3dSettingsProps, + DisplayStyleProps, + DisplayStyle3dProps, + DisplayStyleOverridesOptions, + DisplayStyleSettingsOptions, + FunctionalElementProps, + ViewAttachmentLabelProps, + CalloutProps, + NavigationValue, + NavigationBindingValue, + RelatedElementProps, + ElementProps, + GeometricElementProps, + Placement3dProps, + Placement2dProps, + GeometricElement3dProps, + PhysicalElementProps, + SectionDrawingProps, + SectionDrawingLocationProps, + GeometricElement2dProps, + GeometryPartProps, + ViewAttachmentProps, + SubjectProps, + SheetProps, + DefinitionElementProps, + TypeDefinitionElementProps, + PhysicalTypeProps, + InformationPartitionElementProps, + DisplayStyleLoadProps, + RenderTimelineLoadProps, + ElementLoadOptions, + ElementLoadProps, + ElementAspectProps, + ExternalSourceAspectProps, + ChannelRootAspectProps, + LineStyleProps, + CategoryProps, + SubCategoryProps, + UrlLinkProps, + RepositoryLinkProps, + RenderTimelineProps, + AppearanceOverrideProps, + EmphasizeElementsProps, + EntityProps, + SourceAndTarget, + RelationshipProps, + EntityQueryParams, + EnvironmentProps, + FeatureAppearanceProps, + FeatureAppearanceSource, + FeatureAppearanceProvider, + FontProps, + FontMapProps, + Helmert2DWithZOffsetProps, + AdditionalTransformProps, + CartographicProps, + HorizontalCRSExtentProps, + HorizontalCRSProps, + VerticalCRSProps, + GeographicCRSProps, + ElementGeometryDataEntry, + XyzRotationProps, + GeocentricTransformProps, + PositionalVectorTransformProps, + GridFileDefinitionProps, + GridFileTransformProps, + GeodeticTransformProps, + GeodeticDatumProps, + GeodeticEllipsoidProps, + GeometryAppearanceProps, + AreaFillProps, + MaterialProps, + GeometryPartInstanceProps, + GeometryStreamHeaderProps, + GeometryStreamEntryProps, + TextStringPrimitive, + ImagePrimitive, + PartReference, + BRepPrimitive, + GeometryPrimitive, + GeometryStreamIteratorEntry, + ImageGraphicProps, + AffineTransformProps, + ProjectionProps, + Carto2DDegreesProps, + TextStringProps, + GeometryContainmentRequestProps, + GeometryContainmentResponseProps, + GeometrySummaryOptions, + GeometrySummaryRequestProps, + GroundPlaneProps, + EcefLocationProps, + RootSubjectProps, + FilePropertyProps, + ModelIdAndGeometryGuid, + SolarLightProps, + AmbientLightProps, + HemisphereLightsProps, + FresnelSettingsProps, + LightSettingsProps, + Localization, + MassPropertiesRequestProps, + MassPropertiesResponseProps, + TextureMapProps, + RenderMaterialAssetProps, + RenderMaterialProps, + ModelClipGroupProps, + ElementIdsAndRangesProps, + ModelGeometryChangesProps, + ExtantElementGeometryChange, + DeletedElementGeometryChange, + ModelGeometryChanges, + ModelProps, + ModelLoadProps, + ModelQueryParams, + GeometricModelProps, + GeometricModel2dProps, + GeometricModel3dProps, + PlanarClipMaskProps, + PlanProjectionSettingsProps, + RgbColorProps, + RpcActivity, + SessionProps, + SkyCubeProps, + SkyBoxProps, + SolarShadowSettingsProps, + SpatialClassifierFlagsProps, + SpatialClassifierProps, + SpatialClassifiersContainer, + TerrainProps, + TextureProps, + TextureLoadProps, + TextureData, + ThematicGradientSettingsProps, + ThematicDisplaySensorProps, + ThematicDisplaySensorSettingsProps, + ThematicDisplayProps, + ThumbnailFormatProps, + ThumbnailProps, + GraphicsRequestProps, + PersistentGraphicsRequestProps, + JsonGeometryStream, + FlatBufferGeometryStream, + DynamicGraphicsRequestProps, + DynamicGraphicsRequest2dProps, + DynamicGraphicsRequest3dProps, + TileVersionInfo, + ViewDetailsProps, + ViewDetails3dProps, + ViewFlagProps, + SectionDrawingViewProps, + ViewStateProps, + ViewStateLoadProps, + ModelSelectorProps, + CategorySelectorProps, + ViewQueryParams, + ViewDefinitionProps, + ViewDefinition3dProps, + SpatialViewDefinitionProps, + ViewDefinition2dProps, + AuxCoordSystemProps, + AuxCoordSystem2dProps, + AuxCoordSystem3dProps, + WhiteOnWhiteReversalProps, + BackgroundMapProviderName, + PersistentBackgroundMapProps, + Base64EncodedString, + BriefcaseId, + EntityIdAndClassIdIterable, + ChangesetId, + ChangesetIndex, + ChangesetIndexOrId, + CodeScopeProps, + ColorDefProps, + PlacementProps, + UnitType, + GeodeticTransformMethod, + GridFileFormat, + GridFileDirection, + GeometryStreamProps, + GeometryStreamPrimitive, + ImageGraphicCornersProps, + AxisAlignedBox3d, + AxisAlignedBox3dProps, + ElementAlignedBox3d, + ElementAlignedBox2d, + LocalAlignedBox3d, + Placement, + ProjectionMethod, + HemisphereEnum, + DanishSystem34Region, + RemoveFunction, + RgbFactorProps, + Point2dProps, + ElementGeometryChange, + SkyBoxImageProps, + TerrainProviderName, + ElementGraphicsRequestProps, + TweenCallback, + UpdateCallback, + EasingFunction, + InterpolationFunction, + ViewFlagsProperties, + ViewFlagOverrides, +} from "@itwin/core-common"; -export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise +// END GENERATED CODE \ No newline at end of file diff --git a/core/extension/index.js b/core/extension/index.js index 5da0eef45022..33c6fbb7d6d5 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -1,166 +1,151 @@ const globalSymbol = Symbol.for("itwin.core.frontend.globals"); const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); -// re-export tool stuff -export const { - InteractiveTool, - PrimitiveTool, - ViewTool, - Tool, - - ToolAssistance, - BeButtonEvent, - ViewRect, - Pixel, - LocateResponse, - EditManipulator, - AccuDrawHintBuilder, - EmphasizeElements, - FeatureSymbology, - GraphicBranch, - NotifyMessageDetails, - - // FIXME - ExtensionHost, -} = ext.exports; - -// re-export frontend items -export const { - BingElevationProvider, - BingLocationProvider, - InputCollector, - FrustumAnimator, - GlobeAnimator, - MarginPercent, - Marker, - Cluster -} = ext.exports; - -// re-export functions -export const { - getCompressedJpegFromCanvas, - getImageSourceFormatForMimeType, - getImageSourceMimeType, - imageBufferToBase64EncodedPng, - imageBufferToCanvas, - imageBufferToPngDataUrl, - imageElementFromImageSource, - imageElementFromUrl, - queryTerrainElevationOffset, - readElementGraphics, - canvasToImageBuffer, - canvasToResizedCanvasWithBars, - extractImageSourceDimensions -} = ext.exports; +// export extension stuff +export const { registerTool } = ext.api; -// re-export enums +// BEGIN GENERATED CODE export const { - // core-frontend: - ACSDisplayOptions, - ACSType, - ActivityMessageEndReason, - BeButton, - BeModifierKeys, - ClipEventType, - ContextRotationId, - CoordinateLockOverrides, - CoordSource, - CoordSystem, - DepthPointSource, - EventHandled, - FlashMode, - FrontendLoggerCategory, - GraphicType, - HitDetailType, - HitGeomType, - HitParentGeomType, - HitPriority, - HitSource, - InputSource, - KeyinParseError, - LocateAction, - LocateFilterStatus, - ManipulatorToolEvent, - MessageBoxIconType, - MessageBoxType, - MessageBoxValue, - OutputMessageAlert, - OutputMessagePriority, - OutputMessageType, - ParseAndRunResult, - SelectionMethod, - SelectionMode, - SelectionProcessing, - SelectionSetEventType, - SnapHeat, - SnapMode, - SnapStatus, - StandardViewId, - StartOrResume, - TextureTransparency, - TileBoundingBoxes, - TileGraphicType, - TileLoadPriority, - TileLoadStatus, - TileTreeLoadStatus, - TileVisibility, - ToolAssistanceImage, - ToolAssistanceInputMethod, - UniformType, - VaryingType, - ViewStatus, - ViewUndoEvent, - // core-common: - BackgroundFill, - BackgroundMapType, - BatchType, - BisCodeSpec, - BriefcaseIdValue, - ChangedValueState, - ChangeOpCode, - ChangesetType, - ColorByName, - CommonLoggerCategory, - ECSqlSystemProperty, - ECSqlValueType, - ElementGeometryOpcode, - FeatureOverrideType, - FillDisplay, - FillFlags, - FontType, - GeoCoordStatus, - GeometryClass, - GeometryStreamFlags, - GeometrySummaryVerbosity, - GlobeMode, - GridOrientationType, - HSVConstants, - ImageBufferFormat, - ImageSourceFormat, - LinePixels, - MassPropertiesOperation, - MonochromeMode, - Npc, - PlanarClipMaskMode, - PlanarClipMaskPriority, - QueryRowFormat, - Rank, - RenderMode, - SectionType, - SpatialClassifierInsideDisplay, - SpatialClassifierOutsideDisplay, - SyncMode, - TerrainHeightOriginMode, - TextureMapUnits, - ThematicDisplayMode, - ThematicGradientColorScheme, - ThematicGradientMode, - TxnAction, - TypeOfChange, +// @itwin/core-frontend: + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + GraphicType, + TextureTransparency, + UniformType, + VaryingType, + SelectionSetEventType, + StandardViewId, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + DepthPointSource, + ViewUndoEvent, + ViewStatus, + AccuDrawHintBuilder, // REAL + BingLocationProvider, // REAL + LocateResponse, // REAL + EmphasizeElements, // REAL + ExtensionHost, // REAL + FrustumAnimator, // REAL + GlobeAnimator, // REAL + canvasToResizedCanvasWithBars, // REAL + imageBufferToCanvas, // REAL + canvasToImageBuffer, // REAL + getImageSourceMimeType, // REAL + getImageSourceFormatForMimeType, // REAL + imageElementFromImageSource, // REAL + imageElementFromUrl, // REAL + extractImageSourceDimensions, // REAL + imageBufferToPngDataUrl, // REAL + imageBufferToBase64EncodedPng, // REAL + getCompressedJpegFromCanvas, // REAL + MarginPercent, // REAL + Marker, // REAL + Cluster, // REAL + NotifyMessageDetails, // REAL + FeatureSymbology, // REAL + GraphicBranch, // REAL + Pixel, // REAL + readElementGraphics, // REAL + BingElevationProvider, // REAL + EditManipulator, // REAL + PrimitiveTool, // REAL + BeButtonEvent, // REAL + Tool, // REAL + InteractiveTool, // REAL + InputCollector, // REAL + ToolAssistance, // REAL + ViewTool, // REAL + queryTerrainElevationOffset, // REAL + ViewRect, // REAL +// @itwin/core-common: + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ColorDef, // REAL } = ext.exports; - -// re-export commmon -export const { ColorDef } = ext.exports; - -// export extension stuff -export const { registerTool } = ext.api; +// END GENERATED CODE \ No newline at end of file diff --git a/core/extension/package.json b/core/extension/package.json index 9383d43b1a5a..5952c578bf7a 100644 --- a/core/extension/package.json +++ b/core/extension/package.json @@ -17,7 +17,7 @@ "lint": "", "// lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "", - "generate:types": "node ./codeGen/generate-type-files.js ['@itwin/core-frontend','core/frontend'] ['@itwin/core-common','core/common']" + "generate": "node ./codeGen/generate-exports.js ['@itwin/core-frontend','core/frontend'] ['@itwin/core-common','core/common']" }, "keywords": [ "Bentley", From 27a9fa0155fc10ba2682b458dfb61eed3a46dd75 Mon Sep 17 00:00:00 2001 From: Spencer Barnes <54333460+SpencerWBarnes@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:53:28 -0600 Subject: [PATCH 33/76] Added extension real to ExtensionRuntime --- core/frontend/src/extension/ExtensionRuntime.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 62753ca5de25..7106ee17c212 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -12,7 +12,7 @@ import { BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, - Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, + Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, } from "@itwin/core-common"; import { ExtensionImpl } from "./ExtensionImpl"; @@ -91,7 +91,7 @@ const getExtensionApi = (id: string) => { CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, - RenderMode, SectionType, + RenderMode, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, }, From 9b2d8ee486e38402e81df834bfdfaca2d1465eea Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 12:59:43 -0500 Subject: [PATCH 34/76] update lock --- common/config/rush/pnpm-lock.yaml | 1355 +++++++++++++++-------------- 1 file changed, 694 insertions(+), 661 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 925b426d1bdd..b0e4437c90c0 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -7,14 +7,13 @@ importers: ../../clients/imodelhub: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/projects-client': ^0.2.0 + '@itwin/projects-client': ^0.6.0 '@types/chai': ^4.1.4 '@types/deep-assign': ^0.1.0 '@types/fs-extra': ^4.0.7 @@ -23,9 +22,11 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 '@types/proper-lockfile': ^4.1.1 + '@types/qs': ^6.5.0 '@types/semver': ^5.5.0 '@types/sinon': ^9.0.0 '@types/stream-buffers': ~3.0.2 + '@types/superagent': ^4.1.14 agentkeepalive: ^4.1.4 chai: ^4.1.2 deep-assign: ^2.0.0 @@ -38,9 +39,11 @@ importers: mocha: ^8.3.2 nock: ^12.0.3 proper-lockfile: ^4.1.2 + qs: ^6.5.1 rimraf: ^3.0.2 semver: ^5.5.0 sinon: ^9.0.2 + superagent: ^7.0.1 typescript: ~4.4.0 dependencies: agentkeepalive: 4.1.4 @@ -50,16 +53,17 @@ importers: js-base64: 3.7.2 lodash: 4.17.21 proper-lockfile: 4.1.2 + qs: 6.10.1 semver: 5.7.1 + superagent: 7.1.1 devDependencies: - '@bentley/itwin-client': link:../itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 '@types/chai': 4.2.22 '@types/deep-assign': 0.1.1 '@types/fs-extra': 4.0.12 @@ -68,9 +72,11 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/proper-lockfile': 4.1.2 + '@types/qs': 6.9.7 '@types/semver': 5.5.0 '@types/sinon': 9.0.11 '@types/stream-buffers': 3.0.4 + '@types/superagent': 4.1.15 chai: 4.3.4 eslint: 7.32.0 fs-extra: 8.1.0 @@ -80,135 +86,10 @@ importers: sinon: 9.2.4 typescript: 4.4.4 - ../../clients/itwin: - specifiers: - '@itwin/build-tools': workspace:* - '@itwin/certa': workspace:* - '@itwin/core-bentley': workspace:* - '@itwin/eslint-plugin': workspace:* - '@types/chai': ^4.1.4 - '@types/deep-assign': ^0.1.0 - '@types/lodash': ^4.14.0 - '@types/mocha': ^8.2.2 - '@types/node': 14.14.31 - '@types/qs': ^6.5.0 - '@types/superagent': ^4.1.7 - chai: ^4.1.2 - deep-assign: ^2.0.0 - eslint: ^7.11.0 - js-base64: ^3.6.1 - lodash: ^4.17.10 - mocha: ^8.3.2 - nock: ^12.0.3 - nyc: ^15.1.0 - qs: ^6.5.1 - rimraf: ^3.0.2 - source-map-loader: ^1.0.0 - superagent: ^5.2.2 - typescript: ~4.4.0 - webpack: 4.42.0 - xpath: 0.0.27 - dependencies: - deep-assign: 2.0.0 - js-base64: 3.7.2 - lodash: 4.17.21 - qs: 6.10.1 - superagent: 5.3.1 - xpath: 0.0.27 - devDependencies: - '@itwin/build-tools': link:../../tools/build - '@itwin/certa': link:../../tools/certa - '@itwin/core-bentley': link:../../core/bentley - '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/chai': 4.2.22 - '@types/deep-assign': 0.1.1 - '@types/lodash': 4.14.177 - '@types/mocha': 8.2.3 - '@types/node': 14.14.31 - '@types/qs': 6.9.7 - '@types/superagent': 4.1.13 - chai: 4.3.4 - eslint: 7.32.0 - mocha: 8.4.0 - nock: 12.0.3 - nyc: 15.1.0 - rimraf: 3.0.2 - source-map-loader: 1.1.3_webpack@4.42.0 - typescript: 4.4.4 - webpack: 4.42.0 - - ../../clients/reality-data: - specifiers: - '@bentley/itwin-client': workspace:* - '@itwin/build-tools': workspace:* - '@itwin/certa': workspace:* - '@itwin/core-bentley': workspace:* - '@itwin/core-common': workspace:* - '@itwin/core-frontend': workspace:* - '@itwin/core-geometry': workspace:* - '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': ^0.2.0 - '@types/chai': ^4.1.4 - '@types/chai-as-promised': ^7 - '@types/deep-assign': ^0.1.0 - '@types/jsonpath': ^0.2.0 - '@types/lodash': ^4.14.0 - '@types/mocha': ^8.2.2 - '@types/node': 14.14.31 - chai: ^4.1.2 - chai-as-promised: ^7 - deep-assign: ^2.0.0 - dotenv: ^10.0.0 - dotenv-expand: ^5.1.0 - eslint: ^7.11.0 - internal-tools: workspace:* - jsonpath: ^1.1.1 - lodash: ^4.17.10 - mocha: ^8.3.2 - rimraf: ^3.0.2 - source-map-loader: ^1.0.0 - typescript: ~4.4.0 - webpack: 4.42.0 - dependencies: - '@itwin/core-bentley': link:../../core/bentley - deep-assign: 2.0.0 - lodash: 4.17.21 - devDependencies: - '@bentley/itwin-client': link:../itwin - '@itwin/build-tools': link:../../tools/build - '@itwin/certa': link:../../tools/certa - '@itwin/core-common': link:../../core/common - '@itwin/core-frontend': link:../../core/frontend - '@itwin/core-geometry': link:../../core/geometry - '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': 0.2.0 - '@types/chai': 4.2.22 - '@types/chai-as-promised': 7.1.4 - '@types/deep-assign': 0.1.1 - '@types/jsonpath': 0.2.0 - '@types/lodash': 4.14.177 - '@types/mocha': 8.2.3 - '@types/node': 14.14.31 - chai: 4.3.4 - chai-as-promised: 7.1.1_chai@4.3.4 - dotenv: 10.0.0 - dotenv-expand: 5.1.0 - eslint: 7.32.0 - internal-tools: link:../../tools/internal - jsonpath: 1.1.1 - mocha: 8.4.0 - rimraf: 3.0.2 - source-map-loader: 1.1.3_webpack@4.42.0 - typescript: 4.4.4 - webpack: 4.42.0 - ../../core/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.0.24 - '@bentley/itwin-client': workspace:* + '@bentley/imodeljs-native': 3.1.6 '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -224,7 +105,7 @@ importers: '@types/node': 14.14.31 '@types/semver': ^5.5.0 '@types/sinon': ^9.0.0 - '@types/ws': ^6.0.4 + '@types/ws': ^7.0.0 chai: ^4.1.2 chai-as-promised: ^7 cpx2: ^3.0.0 @@ -246,7 +127,7 @@ importers: ws: ^7.5.3 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.0.24 + '@bentley/imodeljs-native': 3.1.6 '@itwin/core-telemetry': link:../telemetry form-data: 2.5.1 fs-extra: 8.1.0 @@ -256,7 +137,6 @@ importers: semver: 5.7.1 ws: 7.5.5 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common @@ -271,7 +151,7 @@ importers: '@types/node': 14.14.31 '@types/semver': 5.5.0 '@types/sinon': 9.0.11 - '@types/ws': 6.0.4 + '@types/ws': 7.4.7 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 cpx2: 3.0.2 @@ -364,8 +244,10 @@ importers: '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* + '@itwin/core-quantity': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* + '@types/almost-equal': 1.1.0 '@types/benchmark': ^2.1.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -388,8 +270,10 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common + '@itwin/core-quantity': link:../quantity '@itwin/ecschema-metadata': link:../ecschema-metadata '@itwin/eslint-plugin': link:../../tools/eslint-plugin + '@types/almost-equal': 1.1.0 '@types/benchmark': 2.1.1 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -456,6 +340,7 @@ importers: '@bentley/units-schema': ^1.0.5 '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* + '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@types/almost-equal': 1.1.0 '@types/benchmark': ^2.1.0 @@ -482,6 +367,7 @@ importers: '@bentley/units-schema': 1.0.7 '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley + '@itwin/core-quantity': link:../quantity '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/almost-equal': 1.1.0 '@types/benchmark': 2.1.1 @@ -504,7 +390,6 @@ importers: ../../core/ecschema-rpc/common: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -515,7 +400,6 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 devDependencies: - '@bentley/itwin-client': link:../../../clients/itwin '@itwin/build-tools': link:../../../tools/build '@itwin/core-bentley': link:../../bentley '@itwin/core-common': link:../../common @@ -528,7 +412,6 @@ importers: ../../core/ecschema-rpc/impl: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -541,7 +424,6 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 devDependencies: - '@bentley/itwin-client': link:../../../clients/itwin '@itwin/build-tools': link:../../../tools/build '@itwin/core-backend': link:../../backend '@itwin/core-bentley': link:../../bentley @@ -640,40 +522,23 @@ importers: ../../core/extension: specifiers: - '@bentley/itwin-client': workspace:* - '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* - '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* '@itwin/core-frontend': workspace:* - '@itwin/core-geometry': workspace:* - '@itwin/core-orbitgt': workspace:* - '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/webgl-compatibility': workspace:* eslint: ^7.11.0 rimraf: ^3.0.2 - typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin - '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend - '@itwin/core-geometry': link:../geometry - '@itwin/core-orbitgt': link:../orbitgt - '@itwin/core-quantity': link:../quantity - '@itwin/webgl-compatibility': link:../webgl-compatibility devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin eslint: 7.32.0 rimraf: 3.0.2 - typescript: 4.4.4 ../../core/frontend: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* @@ -686,24 +551,34 @@ importers: '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/webgl-compatibility': workspace:* + '@loaders.gl/core': ^3.1.6 + '@loaders.gl/draco': ^3.1.6 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 + '@types/deep-assign': ^0.1.0 + '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 + '@types/qs': ^6.5.0 '@types/semver': ^5.5.0 '@types/sinon': ^9.0.0 + '@types/superagent': ^4.1.14 chai: ^4.1.2 chai-as-promised: ^7 cpx2: ^3.0.0 + deep-assign: ^2.0.0 eslint: ^7.11.0 fuse.js: ^3.3.0 glob: ^7.1.2 + lodash: ^4.17.10 mocha: ^8.3.2 nyc: ^15.1.0 + qs: ^6.5.1 rimraf: ^3.0.2 semver: ^5.5.0 sinon: ^9.0.2 source-map-loader: ^1.0.0 + superagent: ^7.0.1 typescript: ~4.4.0 webpack: 4.42.0 wms-capabilities: 0.4.0 @@ -711,12 +586,17 @@ importers: dependencies: '@itwin/core-i18n': link:../i18n '@itwin/core-telemetry': link:../telemetry + '@loaders.gl/core': 3.1.8 + '@loaders.gl/draco': 3.1.8 + deep-assign: 2.0.0 fuse.js: 3.6.1 + lodash: 4.17.21 + qs: 6.10.1 semver: 5.7.1 + superagent: 7.1.1 wms-capabilities: 0.4.0 xml-js: 1.6.11 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa @@ -729,10 +609,14 @@ importers: '@itwin/webgl-compatibility': link:../webgl-compatibility '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 + '@types/deep-assign': 0.1.1 + '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 '@types/node': 14.14.31 + '@types/qs': 6.9.7 '@types/semver': 5.5.0 '@types/sinon': 9.0.11 + '@types/superagent': 4.1.15 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 cpx2: 3.0.2 @@ -748,7 +632,6 @@ importers: ../../core/frontend-devtools: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -763,7 +646,6 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-bentley': link:../bentley '@itwin/core-common': link:../common '@itwin/core-frontend': link:../frontend @@ -945,7 +827,6 @@ importers: ../../core/mobile: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -954,22 +835,36 @@ importers: '@itwin/eslint-plugin': workspace:* '@itwin/presentation-common': workspace:* '@types/chai': ^4.1.4 + '@types/deep-assign': ^0.1.0 '@types/fs-extra': ^4.0.7 + '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - '@types/ws': ^6.0.4 + '@types/qs': ^6.5.0 + '@types/superagent': ^4.1.14 + '@types/ws': ^7.0.0 chai: ^4.1.2 chai-as-promised: ^7 + deep-assign: ^2.0.0 dotenv: ^10.0.0 dotenv-expand: ^5.1.0 eslint: ^7.11.0 js-base64: ^3.6.1 + lodash: ^4.17.10 mocha: ^8.3.2 + qs: ^6.5.1 rimraf: ^3.0.2 + superagent: ^7.0.1 typescript: ~4.4.0 ws: ^7.5.3 + dependencies: + deep-assign: 2.0.0 + js-base64: 3.7.2 + lodash: 4.17.21 + qs: 6.10.1 + superagent: 7.1.1 + ws: 7.5.5 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-backend': link:../backend '@itwin/core-bentley': link:../bentley @@ -978,20 +873,22 @@ importers: '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@itwin/presentation-common': link:../../presentation/common '@types/chai': 4.2.22 + '@types/deep-assign': 0.1.1 '@types/fs-extra': 4.0.12 + '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 '@types/node': 14.14.31 - '@types/ws': 6.0.4 + '@types/qs': 6.9.7 + '@types/superagent': 4.1.15 + '@types/ws': 7.4.7 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 7.32.0 - js-base64: 3.7.2 mocha: 8.4.0 rimraf: 3.0.2 typescript: 4.4.4 - ws: 7.5.5 ../../core/orbitgt: specifiers: @@ -1102,7 +999,6 @@ importers: ../../core/transformer: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1130,7 +1026,6 @@ importers: dependencies: semver: 5.7.1 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-backend': link:../backend '@itwin/core-bentley': link:../bentley @@ -1431,7 +1326,7 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/oidc-signin-tool': ^3.2.2 '@types/chai': ^4.1.4 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 @@ -1453,7 +1348,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110_electron@14.2.1 + '@itwin/oidc-signin-tool': 3.2.2_electron@14.2.1 '@types/chai': 4.2.22 '@types/mocha': 8.2.3 '@types/node': 14.14.31 @@ -1466,7 +1361,6 @@ importers: ../../example-code/snippets: specifiers: - '@bentley/imodelhub-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1475,9 +1369,9 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-transformer': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': ^0.2.0 - '@itwin/service-authorization': ^0.3.0 + '@itwin/oidc-signin-tool': ^3.2.2 + '@itwin/projects-client': ^0.6.0 + '@itwin/service-authorization': ^0.6.1 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/fs-extra': ^4.0.7 @@ -1492,20 +1386,19 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/core-transformer': link:../../core/transformer - '@itwin/projects-client': 0.2.0 - '@itwin/service-authorization': 0.3.0 + '@itwin/projects-client': 0.6.0 + '@itwin/service-authorization': 0.6.1 fs-extra: 8.1.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.2.2 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 '@types/fs-extra': 4.0.12 @@ -1521,7 +1414,6 @@ importers: ../../extensions/geonames: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -1534,7 +1426,6 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-frontend': link:../../core/frontend @@ -1550,7 +1441,6 @@ importers: ../../extensions/map-layers: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* '@itwin/appui-react': workspace:* @@ -1564,8 +1454,8 @@ importers: '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@itwin/presentation-common': workspace:* '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -1573,9 +1463,8 @@ importers: '@types/enzyme': 3.9.3 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-beautiful-dnd': ^12.1.2 - '@types/react-select': 3.0.26 '@types/sinon': ^9.0.0 '@types/sinon-chai': ^3.2.0 '@wojtekmaj/enzyme-adapter-react-17': ^0.6.3 @@ -1595,7 +1484,6 @@ importers: react: ^17.0.0 react-beautiful-dnd: ^13.0.0 react-resize-detector: ^6.7.6 - react-select: 3.2.0 rimraf: ^3.0.2 sinon: ^9.0.2 sinon-chai: ^3.2.0 @@ -1605,9 +1493,7 @@ importers: classnames: 2.3.1 react-beautiful-dnd: 13.1.0_react@17.0.2 react-resize-detector: 6.7.6_react@17.0.2 - react-select: 3.2.0_react@17.0.2 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react '@itwin/appui-react': link:../../ui/appui-react @@ -1621,8 +1507,8 @@ importers: '@itwin/core-react': link:../../ui/core-react '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@testing-library/react': 12.1.2_react@17.0.2 '@testing-library/react-hooks': 7.0.2_react@17.0.2 @@ -1630,9 +1516,8 @@ importers: '@types/enzyme': 3.9.3 '@types/mocha': 8.2.3 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-beautiful-dnd': 12.1.5 - '@types/react-select': 3.0.26 '@types/sinon': 9.0.11 '@types/sinon-chai': 3.2.5 '@wojtekmaj/enzyme-adapter-react-17': 0.6.5_enzyme@3.11.0+react@17.0.2 @@ -1681,9 +1566,7 @@ importers: ../../full-stack-tests/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodelhub-client': workspace:* - '@bentley/imodeljs-native': 3.0.24 - '@bentley/itwin-client': workspace:* + '@bentley/imodeljs-native': 3.1.6 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1691,9 +1574,11 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/ecschema-metadata': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/oidc-signin-tool': ^3.2.2 '@itwin/perf-tools': workspace:* - '@itwin/projects-client': ^0.2.0 + '@itwin/projects-client': ^0.6.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/fs-extra': ^4.0.7 @@ -1715,17 +1600,17 @@ importers: typescript: ~4.4.0 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/imodeljs-native': 3.0.24 - '@bentley/itwin-client': link:../../clients/itwin + '@bentley/imodeljs-native': 3.1.6 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry '@itwin/ecschema-metadata': link:../../core/ecschema-metadata - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/oidc-signin-tool': 3.2.2 '@itwin/perf-tools': link:../../tools/perf-tools - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 azurite: 3.14.3 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 @@ -1751,9 +1636,8 @@ importers: ../../full-stack-tests/core: specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* - '@itwin/browser-authorization': ^0.3.1 + '@bentley/imodelbank-client': workspace:* + '@itwin/browser-authorization': ^0.5.1 '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-backend': workspace:* @@ -1763,15 +1647,23 @@ importers: '@itwin/core-frontend': workspace:* '@itwin/core-geometry': workspace:* '@itwin/core-markup': workspace:* + '@itwin/ecschema-metadata': workspace:* + '@itwin/ecschema-rpcinterface-common': workspace:* + '@itwin/ecschema-rpcinterface-impl': workspace:* '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/hypermodeling-frontend': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': ^0.2.0 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/imodels-client-management': ^1.0.1 + '@itwin/oidc-signin-tool': ^3.2.2 + '@itwin/projects-client': ^0.6.0 + '@itwin/reality-data-client': ^0.7.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/fs-extra': ^4.0.7 @@ -1797,9 +1689,8 @@ importers: webpack-cli: ^3.1.0 webpack-core: 0.6.9 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin - '@itwin/browser-authorization': 0.3.2 + '@bentley/imodelbank-client': link:../../clients/imodelhub + '@itwin/browser-authorization': 0.5.1 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -1807,12 +1698,20 @@ importers: '@itwin/core-frontend': link:../../core/frontend '@itwin/core-geometry': link:../../core/geometry '@itwin/core-markup': link:../../core/markup + '@itwin/ecschema-metadata': link:../../core/ecschema-metadata + '@itwin/ecschema-rpcinterface-common': link:../../core/ecschema-rpc/common + '@itwin/ecschema-rpcinterface-impl': link:../../core/ecschema-rpc/impl '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 '@itwin/express-server': link:../../core/express-server '@itwin/hypermodeling-frontend': link:../../core/hypermodeling + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/imodels-client-management': 1.0.1 + '@itwin/reality-data-client': 0.7.0 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 electron: 14.2.1 @@ -1821,8 +1720,8 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110_electron@14.2.1 - '@itwin/projects-client': 0.2.0 + '@itwin/oidc-signin-tool': 3.2.2_electron@14.2.1 + '@itwin/projects-client': 0.6.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 '@types/fs-extra': 4.0.12 @@ -1846,8 +1745,6 @@ importers: ../../full-stack-tests/ecschema-rpc-interface: specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-backend': workspace:* @@ -1860,10 +1757,13 @@ importers: '@itwin/ecschema-rpcinterface-common': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-management': ^1.0.1 + '@itwin/oidc-signin-tool': ^3.2.2 '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* - '@itwin/projects-client': ^0.2.0 + '@itwin/projects-client': ^0.6.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/mocha': ^8.2.2 @@ -1887,8 +1787,6 @@ importers: webpack: 4.42.0 webpack-cli: ^3.1.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/core-bentley': link:../../core/bentley @@ -1898,7 +1796,10 @@ importers: '@itwin/core-quantity': link:../../core/quantity '@itwin/ecschema-metadata': link:../../core/ecschema-metadata '@itwin/ecschema-rpcinterface-common': link:../../core/ecschema-rpc/common - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-management': 1.0.1 + '@itwin/oidc-signin-tool': 3.2.2 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend chai: 4.3.4 @@ -1912,7 +1813,7 @@ importers: '@itwin/core-backend': link:../../core/backend '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@itwin/express-server': link:../../core/express-server - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 '@types/mocha': 8.2.3 @@ -1929,66 +1830,8 @@ importers: webpack: 4.42.0 webpack-cli: 3.3.12_webpack@4.42.0 - ../../full-stack-tests/imodelhub-client: - specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* - '@itwin/build-tools': workspace:* - '@itwin/core-bentley': workspace:* - '@itwin/core-common': workspace:* - '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': ^0.2.0 - '@types/chai': ^4.1.4 - '@types/deep-assign': ^0.1.0 - '@types/fs-extra': ^4.0.7 - '@types/mocha': ^8.2.2 - chai: ^4.1.2 - cpx2: ^3.0.0 - deep-assign: ^2.0.0 - dotenv: ^10.0.0 - dotenv-expand: ^5.1.0 - eslint: ^7.11.0 - fs-extra: ^8.1.0 - internal-tools: workspace:* - js-base64: ^3.6.1 - mocha: ^8.3.2 - nock: ^12.0.3 - nyc: ^15.1.0 - rimraf: ^3.0.2 - typescript: ~4.4.0 - dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin - '@itwin/core-bentley': link:../../core/bentley - '@itwin/core-common': link:../../core/common - chai: 4.3.4 - deep-assign: 2.0.0 - fs-extra: 8.1.0 - js-base64: 3.7.2 - mocha: 8.4.0 - nock: 12.0.3 - devDependencies: - '@itwin/build-tools': link:../../tools/build - '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110 - '@itwin/projects-client': 0.2.0 - '@types/chai': 4.2.22 - '@types/deep-assign': 0.1.1 - '@types/fs-extra': 4.0.12 - '@types/mocha': 8.2.3 - cpx2: 3.0.2 - dotenv: 10.0.0 - dotenv-expand: 5.1.0 - eslint: 7.32.0 - internal-tools: link:../../tools/internal - nyc: 15.1.0 - rimraf: 3.0.2 - typescript: 4.4.4 - ../../full-stack-tests/presentation: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* @@ -2001,7 +1844,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/oidc-signin-tool': ^3.2.2 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -2017,7 +1860,7 @@ importers: '@types/faker': ^4.1.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/rimraf': ^2.0.2 '@types/sinon': ^9.0.0 @@ -2034,9 +1877,11 @@ importers: dotenv-expand: ^5.1.0 eslint: ^7.11.0 faker: ^4.1.0 + fast-sort: ^3.0.2 ignore-styles: ^5.0.1 immer: 9.0.6 internal-tools: workspace:* + jsdom: ^17.0.0 jsdom-global: 3.0.2 mocha: ^8.3.2 react: ^17.0.0 @@ -2048,7 +1893,6 @@ importers: typemoq: ^2.1.0 typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/components-react': link:../../ui/components-react '@itwin/core-backend': link:../../core/backend @@ -2059,7 +1903,7 @@ importers: '@itwin/core-i18n': link:../../core/i18n '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/oidc-signin-tool': 3.2.2 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -2085,6 +1929,7 @@ importers: cpx2: 3.0.2 deep-equal: 1.1.1 faker: 4.1.0 + fast-sort: 3.1.0 immer: 9.0.6 mocha: 8.4.0 react: 17.0.2 @@ -2097,7 +1942,7 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 cache-require-paths: 0.3.0 cross-env: 5.2.1 @@ -2106,12 +1951,12 @@ importers: eslint: 7.32.0 ignore-styles: 5.0.1 internal-tools: link:../../tools/internal - jsdom-global: 3.0.2 + jsdom: 17.0.0 + jsdom-global: 3.0.2_jsdom@17.0.0 typescript: 4.4.4 ../../full-stack-tests/rpc: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-backend': workspace:* @@ -2142,7 +1987,6 @@ importers: webpack: 4.42.0 webpack-cli: ^3.1.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2176,7 +2020,6 @@ importers: ../../full-stack-tests/rpc-interface: specifiers: - '@bentley/imodelhub-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/certa': workspace:* '@itwin/core-backend': workspace:* @@ -2187,12 +2030,16 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/imodels-client-management': ^1.0.1 + '@itwin/oidc-signin-tool': ^3.2.2 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-frontend': workspace:* - '@itwin/projects-client': ^0.2.0 - '@itwin/service-authorization': ^0.3.0 + '@itwin/projects-client': ^0.6.0 + '@itwin/service-authorization': ^0.6.1 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/mocha': ^8.2.2 @@ -2216,7 +2063,6 @@ importers: webpack: 4.42.0 webpack-cli: ^3.1.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub '@itwin/build-tools': link:../../tools/build '@itwin/certa': link:../../tools/certa '@itwin/core-bentley': link:../../core/bentley @@ -2225,10 +2071,14 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/oidc-signin-tool': 3.0.0-dev.110 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/imodels-client-management': 1.0.1 + '@itwin/oidc-signin-tool': 3.2.2 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-frontend': link:../../presentation/frontend - '@itwin/service-authorization': 0.3.0 + '@itwin/service-authorization': 0.6.1 chai: 4.3.4 chai-as-promised: 7.1.1_chai@4.3.4 dotenv: 10.0.0 @@ -2240,7 +2090,7 @@ importers: '@itwin/core-backend': link:../../core/backend '@itwin/express-server': link:../../core/express-server '@itwin/presentation-backend': link:../../presentation/backend - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 '@types/mocha': 8.2.3 @@ -2435,7 +2285,7 @@ importers: '@types/enzyme': 3.9.3 '@types/faker': ^4.1.0 '@types/mocha': ^8.2.2 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/sinon': ^9.0.0 '@types/sinon-chai': ^3.2.0 @@ -2494,7 +2344,7 @@ importers: '@types/enzyme': 3.9.3 '@types/faker': 4.1.12 '@types/mocha': 8.2.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/sinon': 9.0.11 '@types/sinon-chai': 3.2.5 @@ -2525,7 +2375,6 @@ importers: ../../presentation/frontend: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -2562,7 +2411,6 @@ importers: typemoq: ^2.1.0 typescript: ~4.4.0 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2601,7 +2449,6 @@ importers: ../../presentation/testing: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* @@ -2641,7 +2488,6 @@ importers: typemoq: ^2.1.0 typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/build-tools': link:../../tools/build '@itwin/components-react': link:../../ui/components-react @@ -2684,11 +2530,9 @@ importers: ../../test-apps/display-performance-test-app: specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@bentley/react-scripts': 4.0.3 '@itwin/appui-abstract': workspace:* - '@itwin/browser-authorization': ^0.3.1 + '@itwin/browser-authorization': ^0.5.1 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2698,11 +2542,14 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-mobile': workspace:* '@itwin/core-quantity': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* '@itwin/hypermodeling-frontend': workspace:* + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 '@itwin/perf-tools': workspace:* - '@itwin/reality-data-client': ^0.2.4 + '@itwin/reality-data-client': ^0.7.0 '@types/body-parser': ^1.17.0 '@types/express': ^4.16.1 '@types/node': 14.14.31 @@ -2723,10 +2570,8 @@ importers: typescript: ~4.4.0 webpack: 4.42.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/browser-authorization': 0.3.2 + '@itwin/browser-authorization': 0.5.1 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2735,9 +2580,12 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-mobile': link:../../core/mobile '@itwin/core-quantity': link:../../core/quantity - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 '@itwin/hypermodeling-frontend': link:../../core/hypermodeling - '@itwin/reality-data-client': 0.2.4 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/reality-data-client': 0.7.0 body-parser: 1.19.0 devDependencies: '@bentley/react-scripts': 4.0.3_typescript@4.4.4 @@ -2767,13 +2615,11 @@ importers: specifiers: '@bentley/icons-generic': ^1.0.15 '@bentley/icons-generic-webfont': ^1.0.15 - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* + '@bentley/imodelbank-client': workspace:* '@bentley/react-scripts': 4.0.3 - '@bentley/reality-data-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/backend-webpack-tools': workspace:* - '@itwin/browser-authorization': ^0.3.1 + '@itwin/browser-authorization': ^0.5.1 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2788,10 +2634,14 @@ importers: '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* '@itwin/frontend-devtools': workspace:* '@itwin/hypermodeling-frontend': workspace:* + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/reality-data-client': ^0.7.0 '@itwin/webgl-compatibility': workspace:* '@types/express': ^4.16.1 '@types/express-ws': ^3.0.1 @@ -2817,11 +2667,9 @@ importers: dependencies: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin - '@bentley/reality-data-client': link:../../clients/reality-data + '@bentley/imodelbank-client': link:../../clients/imodelhub '@itwin/appui-abstract': link:../../ui/appui-abstract - '@itwin/browser-authorization': 0.3.2 + '@itwin/browser-authorization': 0.5.1 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2834,9 +2682,13 @@ importers: '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 '@itwin/frontend-devtools': link:../../core/frontend-devtools '@itwin/hypermodeling-frontend': link:../../core/hypermodeling + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/reality-data-client': 0.7.0 '@itwin/webgl-compatibility': link:../../core/webgl-compatibility body-parser: 1.19.0 devDependencies: @@ -2868,7 +2720,6 @@ importers: ../../test-apps/export-gltf: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2882,7 +2733,6 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2899,7 +2749,6 @@ importers: ../../test-apps/imjs-importer: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2917,7 +2766,6 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2938,7 +2786,6 @@ importers: ../../test-apps/imodel-from-geojson: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2955,7 +2802,6 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -2975,7 +2821,6 @@ importers: ../../test-apps/imodel-from-orbitgt: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -2991,7 +2836,6 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -3010,7 +2854,6 @@ importers: ../../test-apps/imodel-from-reality-model: specifiers: - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -3027,7 +2870,6 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -3047,8 +2889,6 @@ importers: ../../test-apps/imodel-transformer: specifiers: - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -3056,12 +2896,13 @@ importers: '@itwin/core-electron': workspace:* '@itwin/core-geometry': workspace:* '@itwin/core-transformer': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* - '@itwin/projects-client': ^0.2.0 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/projects-client': ^0.6.0 '@types/chai': ^4.1.4 '@types/fs-extra': ^4.0.7 - '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 '@types/yargs': ^12.0.5 @@ -3077,15 +2918,15 @@ importers: typescript: ~4.4.0 yargs: ^16.0.0 dependencies: - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-electron': link:../../core/electron '@itwin/core-geometry': link:../../core/geometry '@itwin/core-transformer': link:../../core/transformer - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 fs-extra: 8.1.0 @@ -3093,10 +2934,9 @@ importers: devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 '@types/chai': 4.2.22 '@types/fs-extra': 4.0.12 - '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 '@types/node': 14.14.31 '@types/yargs': 12.0.20 @@ -3123,18 +2963,18 @@ importers: '@itwin/core-geometry': workspace:* '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* '@types/bunyan': ^1.8.4 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/react-select': 3.0.26 autoprefixer: ^8.6.5 @@ -3168,11 +3008,11 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 '@itwin/express-server': link:../../core/express-server '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -3187,7 +3027,7 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@types/bunyan': 1.8.7 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-select': 3.0.26 autoprefixer: 8.6.5 @@ -3207,7 +3047,6 @@ importers: ../../test-apps/ui-items-providers-test: specifiers: - '@bentley/itwin-client': workspace:* '@bentley/react-scripts': 4.0.3 '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* @@ -3221,11 +3060,13 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* '@reduxjs/toolkit': ^1.5.0 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-select': 3.0.26 classnames: ^2.3.1 cpx2: ^3.0.0 @@ -3237,7 +3078,6 @@ importers: rimraf: ^3.0.2 typescript: ~4.4.0 dependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react '@itwin/appui-react': link:../../ui/appui-react @@ -3248,6 +3088,8 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend @@ -3261,7 +3103,7 @@ importers: '@bentley/react-scripts': 4.0.3_react@17.0.2+typescript@4.4.4 '@itwin/build-tools': link:../../tools/build '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-select': 3.0.26 cpx2: 3.0.2 eslint: 7.32.0 @@ -3273,13 +3115,11 @@ importers: '@axe-core/react': 4.3.1 '@bentley/icons-generic': ^1.0.15 '@bentley/icons-generic-webfont': ^1.0.15 - '@bentley/imodelhub-client': workspace:* - '@bentley/itwin-client': workspace:* '@bentley/react-scripts': 4.0.3 '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* '@itwin/appui-react': workspace:* - '@itwin/browser-authorization': ^0.3.1 + '@itwin/browser-authorization': ^0.5.1 '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* '@itwin/core-backend': workspace:* @@ -3293,28 +3133,35 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/core-webpack-tools': workspace:* + '@itwin/ecschema-metadata': workspace:* + '@itwin/ecschema-rpcinterface-common': workspace:* + '@itwin/ecschema-rpcinterface-impl': workspace:* '@itwin/editor-backend': workspace:* '@itwin/editor-common': workspace:* '@itwin/editor-frontend': workspace:* - '@itwin/electron-authorization': ^0.5.0 + '@itwin/electron-authorization': ^0.8.3 '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/frontend-devtools': workspace:* '@itwin/hypermodeling-frontend': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/imodels-access-backend': ^1.0.1 + '@itwin/imodels-access-frontend': ^1.0.1 + '@itwin/imodels-client-authoring': ^1.0.1 + '@itwin/imodels-client-management': ^1.0.1 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@itwin/map-layers': workspace:* '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* - '@itwin/projects-client': ^0.2.0 - '@itwin/reality-data-client': ^0.2.4 + '@itwin/projects-client': ^0.6.0 + '@itwin/reality-data-client': ^0.7.0 '@itwin/ui-items-providers-test': workspace:* '@types/lorem-ipsum': ^1.0.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/react-redux': ^7.1.18 '@types/react-select': 3.0.26 @@ -3347,12 +3194,10 @@ importers: dependencies: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 - '@bentley/imodelhub-client': link:../../clients/imodelhub - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react '@itwin/appui-react': link:../../ui/appui-react - '@itwin/browser-authorization': 0.3.2 + '@itwin/browser-authorization': 0.5.1 '@itwin/components-react': link:../../ui/components-react '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley @@ -3364,22 +3209,29 @@ importers: '@itwin/core-mobile': link:../../core/mobile '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react + '@itwin/ecschema-metadata': link:../../core/ecschema-metadata + '@itwin/ecschema-rpcinterface-common': link:../../core/ecschema-rpc/common + '@itwin/ecschema-rpcinterface-impl': link:../../core/ecschema-rpc/impl '@itwin/editor-backend': link:../../editor/backend '@itwin/editor-common': link:../../editor/common '@itwin/editor-frontend': link:../../editor/frontend - '@itwin/electron-authorization': 0.5.1 + '@itwin/electron-authorization': 0.8.3 '@itwin/express-server': link:../../core/express-server '@itwin/frontend-devtools': link:../../core/frontend-devtools '@itwin/hypermodeling-frontend': link:../../core/hypermodeling '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/imodels-access-backend': 1.0.1 + '@itwin/imodels-access-frontend': 1.0.1 + '@itwin/imodels-client-authoring': 1.0.1 + '@itwin/imodels-client-management': 1.0.1 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 '@itwin/map-layers': link:../../extensions/map-layers '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend - '@itwin/reality-data-client': 0.2.4 + '@itwin/reality-data-client': 0.7.0 '@itwin/ui-items-providers-test': link:../ui-items-providers-test classnames: 2.3.1 lorem-ipsum: 2.0.4 @@ -3398,10 +3250,10 @@ importers: '@itwin/build-tools': link:../../tools/build '@itwin/core-webpack-tools': link:../../tools/webpack-core '@itwin/eslint-plugin': link:../../tools/eslint-plugin - '@itwin/projects-client': 0.2.0 + '@itwin/projects-client': 0.6.0 '@types/lorem-ipsum': 1.0.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-redux': 7.1.20 '@types/react-select': 3.0.26 @@ -3470,7 +3322,7 @@ importers: recursive-readdir: ^2.2.2 rimraf: ^3.0.2 tree-kill: ^1.2.0 - typedoc: ^0.22.7 + typedoc: ^0.22.11 typedoc-plugin-merge-modules: ^3.0.2 typescript: ~4.4.0 wtfnode: ^0.9.1 @@ -3487,8 +3339,8 @@ importers: recursive-readdir: 2.2.2 rimraf: 3.0.2 tree-kill: 1.2.2 - typedoc: 0.22.9_typescript@4.4.4 - typedoc-plugin-merge-modules: 3.0.2_typedoc@0.22.9 + typedoc: 0.22.12_typescript@4.4.4 + typedoc-plugin-merge-modules: 3.0.2_typedoc@0.22.12 typescript: 4.4.4 wtfnode: 0.9.1 yargs: 16.2.0 @@ -3822,8 +3674,8 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@types/chai': ^4.1.4 @@ -3832,7 +3684,7 @@ importers: '@types/chai-spies': ^1.0.0 '@types/enzyme': 3.9.3 '@types/mocha': ^8.2.2 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/sinon': ^9.0.0 '@types/uuid': ^7.0.2 @@ -3862,8 +3714,8 @@ importers: typescript: ~4.4.0 uuid: ^7.0.3 dependencies: - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 immer: 9.0.6 uuid: 7.0.3 @@ -3881,7 +3733,7 @@ importers: '@types/chai-spies': 1.0.3 '@types/enzyme': 3.9.3 '@types/mocha': 8.2.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/sinon': 9.0.11 '@types/uuid': 7.0.5 @@ -3912,10 +3764,8 @@ importers: specifiers: '@bentley/icons-generic': ^1.0.15 '@bentley/icons-generic-webfont': ^1.0.15 - '@bentley/itwin-client': workspace:* '@itwin/appui-abstract': workspace:* '@itwin/appui-layout-react': workspace:* - '@itwin/browser-authorization': ^0.3.1 '@itwin/build-tools': workspace:* '@itwin/components-react': workspace:* '@itwin/core-bentley': workspace:* @@ -3928,8 +3778,8 @@ importers: '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* @@ -3945,7 +3795,7 @@ importers: '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/react-redux': ^7.1.18 '@types/rimraf': ^2.0.2 @@ -3976,7 +3826,6 @@ importers: react-dnd-html5-backend: ^11.1.3 react-dom: ^17.0.0 react-redux: ^7.2.2 - react-split-pane: 0.1.92 react-test-renderer: ^17.0.0 redux: ^4.1.0 rimraf: ^3.0.2 @@ -3990,20 +3839,17 @@ importers: dependencies: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/browser-authorization': 0.3.2 '@itwin/core-telemetry': link:../../core/telemetry - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-components': link:../../presentation/components classnames: 2.3.1 immer: 9.0.6 lodash: 4.17.21 react-dnd: 11.1.3_react-dom@17.0.2+react@17.0.2 react-dnd-html5-backend: 11.1.3 - react-split-pane: 0.1.92_react-dom@17.0.2+react@17.0.2 rxjs: 6.6.7 devDependencies: - '@bentley/itwin-client': link:../../clients/itwin '@itwin/appui-abstract': link:../appui-abstract '@itwin/appui-layout-react': link:../appui-layout-react '@itwin/build-tools': link:../../tools/build @@ -4031,7 +3877,7 @@ importers: '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-redux': 7.1.20 '@types/rimraf': 2.0.5 @@ -4077,8 +3923,8 @@ importers: '@itwin/core-i18n': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -4092,7 +3938,7 @@ importers: '@types/linkify-it': ~2.1.0 '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-data-grid': 4.0.2 '@types/react-dom': ^17.0.0 '@types/react-highlight-words': ^0.16.1 @@ -4148,8 +3994,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 '@types/shortid': 0.0.29 callable-instance2: 1.0.0 classnames: 2.3.1 @@ -4189,7 +4035,7 @@ importers: '@types/linkify-it': 2.1.0 '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-data-grid': 4.0.2 '@types/react-dom': 17.0.11 '@types/react-highlight-words': 0.16.3 @@ -4235,8 +4081,8 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-i18n': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -4249,7 +4095,7 @@ importers: '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-autosuggest': 10.1.2 '@types/react-dom': ^17.0.0 '@types/react-select': 3.0.26 @@ -4289,8 +4135,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 dompurify: 2.3.3 lodash: 4.17.21 @@ -4316,7 +4162,7 @@ importers: '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 '@types/node': 14.14.31 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-autosuggest': 10.1.2 '@types/react-dom': 17.0.11 '@types/react-select': 3.0.26 @@ -4362,8 +4208,8 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': ^0.37.0 - '@itwin/itwinui-react': ^1.23.0 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -4376,7 +4222,7 @@ importers: '@types/faker': ^4.1.0 '@types/lodash': ^4.14.0 '@types/mocha': ^8.2.2 - '@types/react': 17.0.31 + '@types/react': ^17.0.37 '@types/react-dom': ^17.0.0 '@types/sinon': ^9.0.0 '@types/sinon-chai': ^3.2.0 @@ -4415,8 +4261,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.37.2 - '@itwin/itwinui-react': 1.24.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 callable-instance2: 1.0.0 classnames: 2.3.1 eventemitter2: 5.0.1 @@ -4446,7 +4292,7 @@ importers: '@types/faker': 4.1.12 '@types/lodash': 4.14.177 '@types/mocha': 8.2.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/sinon': 9.0.11 '@types/sinon-chai': 3.2.5 @@ -4478,6 +4324,41 @@ importers: typescript: 4.4.4 xmlhttprequest: 1.8.0 + ../../utils/workspace-editor: + specifiers: + '@itwin/build-tools': workspace:* + '@itwin/core-backend': workspace:* + '@itwin/core-bentley': workspace:* + '@itwin/core-common': workspace:* + '@itwin/eslint-plugin': workspace:* + '@types/chai': ^4.1.4 + '@types/glob': ^5.0.35 + '@types/mocha': ^8.2.2 + '@types/yargs': ^12.0.5 + eslint: ^7.11.0 + glob: ^7.1.2 + mocha: ^8.3.2 + rimraf: ^3.0.2 + typescript: ~4.4.0 + yargs: ^16.0.0 + dependencies: + '@itwin/core-backend': link:../../core/backend + '@itwin/core-bentley': link:../../core/bentley + '@itwin/core-common': link:../../core/common + glob: 7.2.0 + yargs: 16.2.0 + devDependencies: + '@itwin/build-tools': link:../../tools/build + '@itwin/eslint-plugin': link:../../tools/eslint-plugin + '@types/chai': 4.2.22 + '@types/glob': 5.0.37 + '@types/mocha': 8.2.3 + '@types/yargs': 12.0.20 + eslint: 7.32.0 + mocha: 8.4.0 + rimraf: 3.0.2 + typescript: 4.4.4 + packages: /@axe-core/react/4.3.1: @@ -4613,7 +4494,7 @@ packages: tslib: 2.3.1 uuid: 8.3.2 optionalDependencies: - keytar: 7.7.0 + keytar: 7.9.0 transitivePeerDependencies: - debug - supports-color @@ -4675,6 +4556,20 @@ packages: - supports-color dev: false + /@azure/storage-blob/12.7.0: + resolution: {integrity: sha512-7YEWEx03Us/YBxthzBv788R7jokwpCD5KcIsvtE5xRaijNX9o80KXpabhEwLR9DD9nmt/AlU/c1R+aXydgCduQ==} + engines: {node: '>=8.0.0'} + dependencies: + '@azure/abort-controller': 1.0.4 + '@azure/core-http': 2.2.2 + '@azure/core-lro': 2.2.1 + '@azure/core-paging': 1.2.0 + '@azure/core-tracing': 1.0.0-preview.13 + '@azure/logger': 1.0.3 + events: 3.3.0 + tslib: 2.3.1 + dev: false + /@azure/storage-blob/12.8.0: resolution: {integrity: sha512-c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A==} engines: {node: '>=12.0.0'} @@ -6198,45 +6093,14 @@ packages: resolution: {integrity: sha512-5zZgs+himE2vjf39CVlDXMHCFAwSfcoORqJBk3Vji8QVCF8AIX4IX2DO6HlsIAM7szxMNqhz1kd07Xfppro6MA==} dev: false - /@bentley/icons-generic/1.0.34: - resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} - dev: false - - /@bentley/imodeljs-native/3.0.24: - resolution: {integrity: sha512-WBvnFO3krBbsBU6XsMMnRJyFPMTcGlgHf/YTClX99AnKYxPmqlp8VAQ21lb4+aqgO/9WnZPhMNaXgIDi7noSfA==} - requiresBuild: true - dev: false - - /@bentley/itwin-client/3.0.0-dev.148_1f1133e0683841193b047e5518caa238: - resolution: {integrity: sha512-Y8eF6h88rZHB0uTaWeAqMvSGY/4mH/32xB71H4JILtm3aBCjwaJVQ+1NRCR3RZgCr2yoaZz27kqJKnqwZlbeaw==} - peerDependencies: - '@itwin/core-bentley': ^3.0.0-dev.148 - dependencies: - '@itwin/core-bentley': 3.0.0-dev.148 - deep-assign: 2.0.0 - js-base64: 3.7.2 - lodash: 4.17.21 - qs: 6.10.1 - superagent: 5.3.1 - xpath: 0.0.27 - transitivePeerDependencies: - - supports-color - dev: false - - /@bentley/itwin-client/3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4: - resolution: {integrity: sha512-TdC8vNcDN5Xy7x/TBFzh+/To6ibdcPK12hodO9fTvJpVEIAQGZEO1EDLE/jA1S4RqA3nWk2trU9bjqqmh1KgoQ==} - peerDependencies: - '@itwin/core-bentley': ^3.0.0-extension.1 - dependencies: - '@itwin/core-bentley': 3.0.0-extension.1 - deep-assign: 2.0.0 - js-base64: 3.7.2 - lodash: 4.17.21 - qs: 6.10.1 - superagent: 5.3.1 - xpath: 0.0.27 - transitivePeerDependencies: - - supports-color + /@bentley/icons-generic/1.0.34: + resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} + dev: false + + /@bentley/imodeljs-native/3.1.6: + resolution: {integrity: sha512-e4FfMt7h/YrsvMag+1hYpvdSy9ooFEsGHwpmJkjiscx16PThfK5cbqgwEV/SY79q4zJKeragPVjWbO9BJo5hTg==} + requiresBuild: true + dev: false /@bentley/react-scripts/4.0.3_react@17.0.2+typescript@4.4.4: resolution: {integrity: sha512-gET4e/0PWe/FVvSJR3QKi+m1ct9CND6ZwNdZcAoTvLlkrb/6i/SexR3ZjOIMFXgKKBsCVjf2c83BZBzjAsRCWg==} @@ -6492,7 +6356,7 @@ packages: resolution: {integrity: sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==} engines: {node: '>=8.6'} dependencies: - debug: 4.3.2 + debug: 4.3.3 env-paths: 2.2.1 fs-extra: 8.1.0 got: 9.6.0 @@ -6661,15 +6525,16 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - /@itwin/browser-authorization/0.3.2: - resolution: {integrity: sha512-TmdK+K2kaBqE4H4nyUZdhcuFoOnePddvSEs0OVMLqW6s/1DtrfIc1hLwnX4xvEct/BBUSMTyNCYUOsY+wQuXhQ==} + /@itwin/browser-authorization/0.5.1: + resolution: {integrity: sha512-TI7nd4I5Lc9MrJnf40kk+u4bTCym1xH9IBJNkvVt+7unjUSbRuUaPS6wC6WTu2DoYbIocEIEBWTqNOR67lAHGA==} + peerDependencies: + '@itwin/core-bentley': ^3.0.0 dependencies: - '@itwin/core-bentley': 3.0.0-dev.148 oidc-client: 1.11.5 dev: false - /@itwin/certa/3.0.0-dev.148: - resolution: {integrity: sha512-iXuLWnDlgEmqYJ7HTBqlmNMqZt3dOdvGG4FInxfQd5/cJ46fW3+1b8cGt+i5urgHG+kFKhG4oBZhJ5/DlAcR9A==} + /@itwin/certa/3.0.1: + resolution: {integrity: sha512-OIUzFaQn99B4ahPOFLFO3eP5dEWZPt7pldXAY1aSd6ockEwLURblXzfxaH+h4lM/h7Psqvo9a8//iNAzIz4TiA==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6691,8 +6556,8 @@ packages: - supports-color - utf-8-validate - /@itwin/certa/3.0.0-dev.148_electron@14.2.1: - resolution: {integrity: sha512-iXuLWnDlgEmqYJ7HTBqlmNMqZt3dOdvGG4FInxfQd5/cJ46fW3+1b8cGt+i5urgHG+kFKhG4oBZhJ5/DlAcR9A==} + /@itwin/certa/3.0.1_electron@14.2.1: + resolution: {integrity: sha512-OIUzFaQn99B4ahPOFLFO3eP5dEWZPt7pldXAY1aSd6ockEwLURblXzfxaH+h4lM/h7Psqvo9a8//iNAzIz4TiA==} hasBin: true peerDependencies: electron: ^14.0.0 @@ -6716,48 +6581,73 @@ packages: - utf-8-validate dev: true - /@itwin/core-bentley/3.0.0-dev.148: - resolution: {integrity: sha512-OVNmxpb7/AAd4pm/cBdE1I+p1lBoiXI3EBaRN1hAPZzqLDk7AbWgTegfQBPXAnyP5FxX9MyeU+lplvsl2aWjXg==} - - /@itwin/core-bentley/3.0.0-extension.1: - resolution: {integrity: sha512-3r1aRoZp694aqP2E0M9dZiaPSAC0E/E2VTvvN9K73NnlTvO4jpaIdt520oHp7tkGYx24VS9Q8+ED1Z0CH9+RkA==} + /@itwin/core-bentley/3.0.1: + resolution: {integrity: sha512-vUTdTiKFDf5vA/aHnIbHbE2MQYw1BXL+aPEEnBAjvAtS44L2bsDSRKXiiRmcrcWPWNBlIGm/Z5aut2uyFOeMog==} + dev: false - /@itwin/core-common/3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4: - resolution: {integrity: sha512-IMcuAb/xJjbzvwSrZp5URmKU7h0se97DGIF1R76EMxaTvTCTa7OOkelu6t8f1mH0BXHv8WfeBfUu5ajP+RU7vg==} - peerDependencies: - '@bentley/itwin-client': ^3.0.0-extension.1 - '@itwin/core-bentley': ^3.0.0-extension.1 - '@itwin/core-geometry': ^3.0.0-extension.1 + /@itwin/core-geometry/3.0.1: + resolution: {integrity: sha512-O1RoPUtw7X8eRXaMRvjUrtEMdBHpGTrgWXfcrd/nGjNSqdmUy2ETYScgGI+ecwSml79xoa+CtNrUF4+4hBbS6w==} dependencies: - '@itwin/core-bentley': 3.0.0-extension.1 - '@ungap/url-search-params': 0.1.4 + '@itwin/core-bentley': 3.0.1 flatbuffers: 1.12.0 - js-base64: 3.7.2 - semver: 5.7.1 dev: false - /@itwin/electron-authorization/0.5.1: - resolution: {integrity: sha512-S6BxwfX4/fxcrLglqN0exrTDV2w4l0r34SEJEqSN3DbHuoGhjRJISXZux0OXprMwWjuCy7hI09n/9EW733J2uA==} + /@itwin/electron-authorization/0.8.3: + resolution: {integrity: sha512-gKsQewSx4e/a74WJvROzq+dmUb05zE2evMLLywKP+CQULwq2uX0IeI0MRGI/FeVS9T9xBSv90sSzxmrugBtPrQ==} dependencies: - '@bentley/itwin-client': 3.0.0-dev.148_1f1133e0683841193b047e5518caa238 - '@itwin/core-bentley': 3.0.0-dev.148 + '@itwin/core-bentley': link:../../core/bentley '@openid/appauth': 1.3.1 - keytar: 7.7.0 + keytar: 7.9.0 open: 8.4.0 username: 5.1.0 transitivePeerDependencies: - debug - - supports-color dev: false - /@itwin/itwinui-css/0.37.2: - resolution: {integrity: sha512-QZTP/pHxnx/sFFpb4/DXSSBEEfcOFsG26bhe0ZzXn2IXZ3ZiJYJfhqHdmDStyb0c3S+drDDPdkaq1q/MS+G7+g==} + /@itwin/imodels-access-backend/1.0.1: + resolution: {integrity: sha512-W3g/V6lFMPYdlfGRqWbBQaAlyIP9LdHslOgMShDWGK4AOtnVoWP6WJGU+/iomKGhb0FMYoKMW8Vyy1+0U3Sxig==} + dependencies: + '@itwin/core-backend': link:../../core/backend + '@itwin/core-bentley': link:../../core/bentley + '@itwin/core-common': link:../../core/common + '@itwin/imodels-client-authoring': 1.0.1 + transitivePeerDependencies: + - debug + dev: false + + /@itwin/imodels-access-frontend/1.0.1: + resolution: {integrity: sha512-qwD8kM7sW/ku5EAqj7kTZR1C1gv2vfRZYgu2VaYXHtTYEibCnbU0tOHhAfRyWMeF8LnZMNUmpZZjjZkruYoWhw==} + dependencies: + '@itwin/core-bentley': link:../../core/bentley + '@itwin/core-common': link:../../core/common + '@itwin/core-frontend': link:../../core/frontend + '@itwin/imodels-client-management': 1.0.1 + transitivePeerDependencies: + - debug + dev: false + + /@itwin/imodels-client-authoring/1.0.1: + resolution: {integrity: sha512-RuvRNxFS44WFY64oBEiGOC2G/bKde1B4Hrmb2iv+TKRum/GMidGQIGr21BC69Hgfl0LoTUzK9svlc0yW4FYlFA==} + dependencies: + '@azure/storage-blob': 12.7.0 + '@itwin/imodels-client-management': 1.0.1 + transitivePeerDependencies: + - debug + dev: false + + /@itwin/imodels-client-management/1.0.1: + resolution: {integrity: sha512-HzwegaR7krCXY1I2UPGGjxp4tttcU4RD5kZoHFpA+Nit3jrsvoXR0CieH7H0GUSKmgoV0Go5KN1YvbBUgqruRg==} + dependencies: + axios: 0.21.4 + transitivePeerDependencies: + - debug + dev: false - /@itwin/itwinui-css/0.38.0: - resolution: {integrity: sha512-IRNqT9APOYQCPiUFbxR2SVufW9m/2H+p/03/3EamYqLTlR2BgkbmCEEdb1utmjRgkMbIj94NGxbsrgFXMx8d/w==} + /@itwin/itwinui-css/0.44.1: + resolution: {integrity: sha512-J0zSBKLPoEAMPGV/Sw2+VkrQH432HejACXvymUbSGaqBYodIcCm6JPAlMbjeJlNZgU2auQbyPr4tbe1U6AwIWw==} - /@itwin/itwinui-icons-react/1.3.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-XNk9a7LaMlWwiB+l/TidSHOMDt/nnJnrSBkRU0Gg+44cATKcSZySX2B2B4Y6uKoECqtWr+qghCe9Bw5TwQ1bKQ==} + /@itwin/itwinui-icons-react/1.8.0_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-/16NPEPGvqOAwcJ/uBCvmIyl0c0vaprfsjl/mdecYLf301dKvlKmIH+Eq6a2YUXZHO/B6KaZtM78UCuxXGMQBA==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 @@ -6766,8 +6656,8 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /@itwin/itwinui-icons-react/1.3.0_react@17.0.2: - resolution: {integrity: sha512-XNk9a7LaMlWwiB+l/TidSHOMDt/nnJnrSBkRU0Gg+44cATKcSZySX2B2B4Y6uKoECqtWr+qghCe9Bw5TwQ1bKQ==} + /@itwin/itwinui-icons-react/1.8.0_react@17.0.2: + resolution: {integrity: sha512-/16NPEPGvqOAwcJ/uBCvmIyl0c0vaprfsjl/mdecYLf301dKvlKmIH+Eq6a2YUXZHO/B6KaZtM78UCuxXGMQBA==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 @@ -6794,14 +6684,14 @@ packages: react: 17.0.2 dev: true - /@itwin/itwinui-react/1.24.0_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-qDv7yPM1a4miLTYehOgHSL4uNznYXS1WkkyaHaPBUSsyj+jlRVqLggnde0xrGtnufM7ksvf4m/ArCZwvRNVKcQ==} + /@itwin/itwinui-react/1.29.3_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-c3W2DaGofVaZCe0Z6ldChFBy+GBqBXrMz0Ap6awBLX6FwHcFzwcOxBo0BaCWLoIFl8BFv94mbrRh9zkk1m7ZbA==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 dependencies: - '@itwin/itwinui-css': 0.38.0 - '@itwin/itwinui-icons-react': 1.3.0_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-icons-react': 1.8.0_react-dom@17.0.2+react@17.0.2 '@itwin/itwinui-illustrations-react': 1.1.0_react-dom@17.0.2+react@17.0.2 '@tippyjs/react': 4.2.6_react-dom@17.0.2+react@17.0.2 '@types/react-table': 7.7.8 @@ -6812,14 +6702,14 @@ packages: react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2 dev: false - /@itwin/itwinui-react/1.24.0_react@17.0.2: - resolution: {integrity: sha512-qDv7yPM1a4miLTYehOgHSL4uNznYXS1WkkyaHaPBUSsyj+jlRVqLggnde0xrGtnufM7ksvf4m/ArCZwvRNVKcQ==} + /@itwin/itwinui-react/1.29.3_react@17.0.2: + resolution: {integrity: sha512-c3W2DaGofVaZCe0Z6ldChFBy+GBqBXrMz0Ap6awBLX6FwHcFzwcOxBo0BaCWLoIFl8BFv94mbrRh9zkk1m7ZbA==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 dependencies: - '@itwin/itwinui-css': 0.38.0 - '@itwin/itwinui-icons-react': 1.3.0_react@17.0.2 + '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-icons-react': 1.8.0_react@17.0.2 '@itwin/itwinui-illustrations-react': 1.1.0_react@17.0.2 '@tippyjs/react': 4.2.6_react@17.0.2 '@types/react-table': 7.7.8 @@ -6829,11 +6719,11 @@ packages: react-transition-group: 4.4.2_react@17.0.2 dev: true - /@itwin/oidc-signin-tool/3.0.0-dev.110: - resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} + /@itwin/oidc-signin-tool/3.2.2: + resolution: {integrity: sha512-2tBDo+J4ORxTdHJf76zmpoGOq/l3RzlY3ofoxEQo4d+8b454gcHkxFQA9r/7xOF8qN+dOBaG/P60ZWsB3D/qug==} dependencies: - '@itwin/certa': 3.0.0-dev.148 - '@itwin/core-bentley': 3.0.0-dev.148 + '@itwin/certa': 3.0.1 + '@itwin/core-bentley': link:../../core/bentley dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6844,11 +6734,11 @@ packages: - supports-color - utf-8-validate - /@itwin/oidc-signin-tool/3.0.0-dev.110_electron@14.2.1: - resolution: {integrity: sha512-uoTmMBqnEueiBQSzP6JjaTQu96fJa8JBqTESZZT/6Ub43jP1jYUcI+t0bk0lq3V4GF1GVWisTmcBaW6VK7kHsw==} + /@itwin/oidc-signin-tool/3.2.2_electron@14.2.1: + resolution: {integrity: sha512-2tBDo+J4ORxTdHJf76zmpoGOq/l3RzlY3ofoxEQo4d+8b454gcHkxFQA9r/7xOF8qN+dOBaG/P60ZWsB3D/qug==} dependencies: - '@itwin/certa': 3.0.0-dev.148_electron@14.2.1 - '@itwin/core-bentley': 3.0.0-dev.148 + '@itwin/certa': 3.0.1_electron@14.2.1 + '@itwin/core-bentley': link:../../core/bentley dotenv: 10.0.0 dotenv-expand: 5.1.0 openid-client: 4.9.1 @@ -6860,29 +6750,34 @@ packages: - utf-8-validate dev: true - /@itwin/projects-client/0.2.0: - resolution: {integrity: sha512-KgculN59Iu3YqgGLB9HjATyy+Nl6PJXDc8oHQfhZGB8ZUcA17SQ6QznVDbG1NGoHMPH3RaLMPhQgO0NZNh3A5Q==} + /@itwin/projects-client/0.6.0: + resolution: {integrity: sha512-uA8lqjNLIpmpdldoOa/EwQfaV+F2yflxoi1aEZSb+R+dlCyvlsE/hLM7oTzYwmYmFzdezKNbFjwN2PvWLBWaBg==} dependencies: - '@bentley/itwin-client': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 - '@itwin/core-bentley': 3.0.0-extension.1 + axios: 0.25.0 transitivePeerDependencies: - - supports-color + - debug - /@itwin/reality-data-client/0.2.4: - resolution: {integrity: sha512-O+GLL+FXqsAIv22YL8NDhak9hr1DiI9R4X87aQ67LFdnK6yB7oSUWYbMqr8P00wD0whlBSYbWu96q9nvGu4wLg==} + /@itwin/reality-data-client/0.7.0: + resolution: {integrity: sha512-fUbS3953g3zXNagcgwmJ7n2DHvL15KlBQZ5NlpWpGdotRgtOKAxeJqybPJBnoM10dErmJVC+Cbv3JVc2Nar/Mw==} peerDependencies: - '@itwin/core-common': rc - axios: ^0.24.0 + '@itwin/core-common': ^3.0.0 + dependencies: + '@itwin/core-geometry': 3.0.1 + axios: 0.25.0 + transitivePeerDependencies: + - debug dev: false - /@itwin/service-authorization/0.3.0: - resolution: {integrity: sha512-ZX7jsxxW3IWXQA0DXnSHV5PInf8S/IyqvhwEDyPYMCE1KtYo6CawNCeKnxe9kv8sbB0g017Xj7qHLC40+t9jHg==} + /@itwin/service-authorization/0.6.1: + resolution: {integrity: sha512-vg/ajMS9YmBu7DFivpQBbBGFCb512UeiMw78nqMTkVj/T9CDeSEk0BurwZdAQUnosRRYm72BU0b5kYe7Sa6nSw==} + peerDependencies: + '@itwin/core-bentley': ^3.0.0 dependencies: - '@itwin/core-bentley': 3.0.0-extension.1 - '@itwin/core-common': 3.0.0-extension.1_f2c3418fbeb77077b236020c30c9aae4 + jsonwebtoken: 8.5.1 + jwks-rsa: 2.0.5 openid-client: 4.9.1 transitivePeerDependencies: - - '@bentley/itwin-client' + - supports-color dev: false /@jest/console/26.6.2: @@ -7087,6 +6982,46 @@ packages: resolution: {integrity: sha512-oeaetlodcqVsiZDxnEcqsbs+sXBkASxua0mXs5OXuPQXz3/wdPTMlxwfQ4z2HKcOik3S9voW3QJkp/KLWDhvRQ==} dev: false + /@loaders.gl/core/3.1.8: + resolution: {integrity: sha512-y+dMqkWjnC7WnrSEMBMe5vVN6N6m+eQXaEdsE8QhuFZo/np9/HkSF3Fod1pYcmlATthp5dB1djYjzQeYR/njxw==} + dependencies: + '@babel/runtime': 7.16.3 + '@loaders.gl/loader-utils': 3.1.8 + '@loaders.gl/worker-utils': 3.1.8 + '@probe.gl/log': 3.5.0 + probe.gl: 3.5.0 + dev: false + + /@loaders.gl/draco/3.1.8: + resolution: {integrity: sha512-urZAlh1qxu8p7hyRnsz9Z3oyXhRFWM5MZs87uolyFIhwpb8dPOKUr85jeL97EVsQW4bmhP7Y6SxYc7x5YnOgRw==} + dependencies: + '@babel/runtime': 7.16.3 + '@loaders.gl/loader-utils': 3.1.8 + '@loaders.gl/schema': 3.1.8 + '@loaders.gl/worker-utils': 3.1.8 + draco3d: 1.4.1 + dev: false + + /@loaders.gl/loader-utils/3.1.8: + resolution: {integrity: sha512-Lgyk6RZv9ekE0MUMAmEqiEr+p3G/1XPNmMs2boyiZNy/xjq6lyBIEIqh5vALqkUWgm6519fhHjeNNwYLWY3n+Q==} + dependencies: + '@babel/runtime': 7.16.3 + '@loaders.gl/worker-utils': 3.1.8 + '@probe.gl/stats': 3.5.0 + dev: false + + /@loaders.gl/schema/3.1.8: + resolution: {integrity: sha512-yf/zX/yyXyTV2/mUDLoPiZQsCLQmJmYW8ecbEVXnQh5XDJVWEjRL5RT9FC6/QhI3+DuUTJ6gX4nlxOpl0xmMmw==} + dependencies: + '@types/geojson': 7946.0.8 + dev: false + + /@loaders.gl/worker-utils/3.1.8: + resolution: {integrity: sha512-w2OK4EmKqQMKezgYBXii4sXczxrHf6sksYEoJUveJsZoCjN/8gGeV6X2G4Ll4TAGwOjBluSdqRNtWlU7xpV/Mw==} + dependencies: + '@babel/runtime': 7.16.3 + dev: false + /@microsoft/api-extractor-model/7.7.2: resolution: {integrity: sha512-USwWUPV3YLS8ZOS11vFh3nzEWXC2d8OZJ6CGp0nRnCXtbqmKqAq4Jg9J5gs1PCemo7JQEbzbHGGwycC0DbRJqw==} dependencies: @@ -7226,6 +7161,25 @@ packages: /@popperjs/core/2.10.2: resolution: {integrity: sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==} + /@probe.gl/env/3.5.0: + resolution: {integrity: sha512-YdlpZZshhyYxvWDBmZ5RIW2pTR14Pw4p9czMlt/v7F6HbFzWfAdmH7q6xVwFRYxUpQLwhWensWyv4aFysiWl4g==} + dependencies: + '@babel/runtime': 7.16.3 + dev: false + + /@probe.gl/log/3.5.0: + resolution: {integrity: sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==} + dependencies: + '@babel/runtime': 7.16.3 + '@probe.gl/env': 3.5.0 + dev: false + + /@probe.gl/stats/3.5.0: + resolution: {integrity: sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==} + dependencies: + '@babel/runtime': 7.16.3 + dev: false + /@react-dnd/asap/4.0.0: resolution: {integrity: sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==} @@ -7479,7 +7433,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.16.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-test-renderer': 17.0.1 react: 17.0.2 @@ -7501,7 +7455,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.16.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-test-renderer': 17.0.1 react: 17.0.2 @@ -7523,7 +7477,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.16.3 - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-test-renderer': 17.0.1 react: 17.0.2 @@ -7643,7 +7597,6 @@ packages: dependencies: '@types/connect': 3.4.35 '@types/node': 14.14.31 - dev: true /@types/bunyan/1.8.7: resolution: {integrity: sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg==} @@ -7700,7 +7653,6 @@ packages: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: '@types/node': 14.14.31 - dev: true /@types/cookiejar/2.1.2: resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} @@ -7733,7 +7685,7 @@ packages: resolution: {integrity: sha512-jDKoZiiMA3lGO3skSO7dfqEHNvmiTLLV+PHD9EBQVlJANJvpY6qq1zzjRI24ZOtG7F+CS7BVWDXKewRmN8PjHQ==} dependencies: '@types/cheerio': 0.22.30 - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/eslint/7.2.14: @@ -7758,20 +7710,32 @@ packages: resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==} dev: true + /@types/express-jwt/0.0.42: + resolution: {integrity: sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==} + dependencies: + '@types/express': 4.17.13 + '@types/express-unless': 0.5.3 + dev: false + /@types/express-serve-static-core/4.17.25: resolution: {integrity: sha512-OUJIVfRMFijZukGGwTpKNFprqCCXk5WjNGvUgB/CxxBR40QWSjsNK86+yvGKlCOGc7sbwfHLaXhkG+NsytwBaQ==} dependencies: '@types/node': 14.14.31 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 - dev: true + + /@types/express-unless/0.5.3: + resolution: {integrity: sha512-TyPLQaF6w8UlWdv4gj8i46B+INBVzURBNRahCozCSXfsK2VTlL1wNyTlMKw817VHygBtlcl5jfnPadlydr06Yw==} + dependencies: + '@types/express': 4.17.13 + dev: false /@types/express-ws/3.0.1: resolution: {integrity: sha512-VguRXzcpPBF0IggIGpUoM65cZJDfMQxoc6dKoCz1yLzcwcXW7ft60yhq3ygKhyEhEIQFtLrWjyz4AJ1qjmzCFw==} dependencies: '@types/express': 4.17.13 '@types/express-serve-static-core': 4.17.25 - '@types/ws': 6.0.4 + '@types/ws': 7.4.7 dev: true /@types/express/4.17.13: @@ -7781,7 +7745,6 @@ packages: '@types/express-serve-static-core': 4.17.25 '@types/qs': 6.9.7 '@types/serve-static': 1.13.10 - dev: true /@types/faker/4.1.12: resolution: {integrity: sha512-0MEyzJrLLs1WaOCx9ULK6FzdCSj2EuxdSP9kvuxxdBEGujZYUOZ4vkPXdgu3dhyg/pOdn7VCatelYX7k0YShlA==} @@ -7800,6 +7763,10 @@ packages: '@types/node': 14.14.31 dev: true + /@types/geojson/7946.0.8: + resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==} + dev: false + /@types/glob/5.0.37: resolution: {integrity: sha512-ATA/xrS7CZ3A2WCPVY4eKdNpybq56zqlTirnHhhyOztZM/lPxJzusOBI3BsaXbu6FrUluqzvMlI4sZ6BDYMlMg==} dependencies: @@ -7822,7 +7789,7 @@ packages: /@types/hoist-non-react-statics/3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 hoist-non-react-statics: 3.3.2 /@types/html-minifier-terser/5.1.2: @@ -7876,10 +7843,6 @@ packages: /@types/json5/0.0.29: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} - /@types/jsonpath/0.2.0: - resolution: {integrity: sha512-v7qlPA0VpKUlEdhghbDqRoKMxFB3h3Ch688TApBJ6v+XLDdvWCGLJIYiPKGZnS6MAOie+IorCfNYVHOPIHSWwQ==} - dev: true - /@types/jsonwebtoken/8.5.6: resolution: {integrity: sha512-+P3O/xC7nzVizIi5VbF34YtqSonFsdnbXBnWUCYRiKOi1f9gA4sEFvXkrGr/QVV23IbMYvcoerI7nnhDUiWXRQ==} dependencies: @@ -7909,7 +7872,6 @@ packages: /@types/mime/1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} - dev: true /@types/minimatch/3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} @@ -7973,53 +7935,51 @@ packages: /@types/qs/6.9.7: resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} - dev: true /@types/range-parser/1.2.4: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - dev: true /@types/react-autosuggest/10.1.2: resolution: {integrity: sha512-K23lmXhC3Bbd8y/jm5+wYrw/NAeN4U/wlHTgAEBIwLOyQKFCFYA3ONKte9P21L+RGIXRP8UlzHOSRtmIZw5Nqw==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/react-beautiful-dnd/12.1.5: resolution: {integrity: sha512-UHSjLoRsPBRX81FMRmNwIFT0hSjPW0BayEFCcMhz1f3WsXEiYytR09WAzkBqvytJHzSL25ooCBA2DSjK6m1Qow==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/react-data-grid/4.0.2: resolution: {integrity: sha512-no7HnLfm5CSLicuLixZjgsfq0myt6+aBxyVCIo9XiJdNLiZUC0uogMa2f4wq+xdTaslYHeyzwsVL6KF0B765Yg==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/react-dom/17.0.11: resolution: {integrity: sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 /@types/react-highlight-words/0.16.3: resolution: {integrity: sha512-ZarU4+/R593xctDXy/SkyWeS/dg5sG8TxZ2DATd2EdDKHlfqCPnOYzHEo/7XaYpCoSCgk5Sp1sVNhnOzC/ezJg==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/react-redux/7.1.20: resolution: {integrity: sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 17.0.31 + '@types/react': 17.0.39 hoist-non-react-statics: 3.3.2 redux: 4.1.2 /@types/react-select/3.0.26: resolution: {integrity: sha512-rAaiD0SFkBi3PUwp1DrJV04CobPl2LuZXF+kv6MKw8kaeGo82xTOZzjM8DDi4lrdkqGbInZiE2QO9nIJm3bqgw==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 '@types/react-dom': 17.0.11 '@types/react-transition-group': 4.4.4 dev: true @@ -8027,27 +7987,27 @@ packages: /@types/react-table/7.7.8: resolution: {integrity: sha512-OMhbPlf+uUGte3M1WdArEKeBkyQ1XJxKvFYs+o1dGGGyaSVIqxPPQmBZ6Skkw0V9y0F/kOY7rnTD8r9GbfpBOg==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 /@types/react-test-renderer/17.0.1: resolution: {integrity: sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 /@types/react-transition-group/4.4.4: resolution: {integrity: sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true /@types/react-window/1.8.5: resolution: {integrity: sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==} dependencies: - '@types/react': 17.0.31 + '@types/react': 17.0.39 dev: true - /@types/react/17.0.31: - resolution: {integrity: sha512-MQSR5EL4JZtdWRvqDgz9kXhSDDoy2zMTYyg7UhP+FZ5ttUOocWyxiqFJiI57sUG0BtaEX7WDXYQlkCYkb3X9vQ==} + /@types/react/17.0.39: + resolution: {integrity: sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==} dependencies: '@types/prop-types': 15.7.4 '@types/scheduler': 0.16.2 @@ -8090,7 +8050,6 @@ packages: dependencies: '@types/mime': 1.3.2 '@types/node': 14.14.31 - dev: true /@types/shortid/0.0.29: resolution: {integrity: sha1-gJPuBBam4r8qpjOBCRFLP7/6Dps=} @@ -8146,8 +8105,8 @@ packages: '@types/node': 14.14.31 dev: true - /@types/superagent/4.1.13: - resolution: {integrity: sha512-YIGelp3ZyMiH0/A09PMAORO0EBGlF5xIKfDpK74wdYvWUs2o96b5CItJcWPdH409b7SAXIIG6p8NdU/4U2Maww==} + /@types/superagent/4.1.15: + resolution: {integrity: sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==} dependencies: '@types/cookiejar': 2.1.2 '@types/node': 14.14.31 @@ -8156,7 +8115,7 @@ packages: /@types/supertest/2.0.11: resolution: {integrity: sha512-uci4Esokrw9qGb9bvhhSVEjd6rkny/dk5PK/Qz4yxKiyppEI+dOPlNrZBahE3i+PoKFYyDxChVXZ/ysS/nrm1Q==} dependencies: - '@types/superagent': 4.1.13 + '@types/superagent': 4.1.15 dev: true /@types/tapable/1.0.8: @@ -8206,8 +8165,8 @@ packages: source-map: 0.6.1 dev: true - /@types/ws/6.0.4: - resolution: {integrity: sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==} + /@types/ws/7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: '@types/node': 14.14.31 dev: true @@ -8234,6 +8193,7 @@ packages: /@types/yauzl/2.9.2: resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} + requiresBuild: true dependencies: '@types/node': 14.14.31 optional: true @@ -8818,7 +8778,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.2 + debug: 4.3.3 transitivePeerDependencies: - supports-color @@ -9116,7 +9076,6 @@ packages: /asap/2.0.6: resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} - dev: true /asn1.js/5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} @@ -9213,7 +9172,7 @@ packages: /axios/0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.14.5_debug@4.3.2 + follow-redirects: 1.14.9 transitivePeerDependencies: - debug dev: false @@ -9226,6 +9185,13 @@ packages: - debug dev: false + /axios/0.25.0: + resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} + dependencies: + follow-redirects: 1.14.9 + transitivePeerDependencies: + - debug + /axobject-query/2.2.0: resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} @@ -10681,7 +10647,7 @@ packages: /core-js/2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} - deprecated: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. + deprecated: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. requiresBuild: true dev: true @@ -11155,6 +11121,17 @@ packages: supports-color: 6.1.0 dev: true + /debug/4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} @@ -11177,13 +11154,6 @@ packages: dependencies: mimic-response: 1.0.1 - /decompress-response/4.2.1: - resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} - engines: {node: '>=8'} - dependencies: - mimic-response: 2.1.0 - dev: false - /decompress-response/6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -11199,6 +11169,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-obj: 1.0.1 + dev: false /deep-eql/3.0.1: resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} @@ -11341,10 +11312,9 @@ packages: repeating: 2.0.1 dev: true - /detect-libc/1.0.3: - resolution: {integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=} - engines: {node: '>=0.10'} - hasBin: true + /detect-libc/2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} dev: false /detect-newline/3.1.0: @@ -11375,6 +11345,13 @@ packages: /devtools-protocol/0.0.799653: resolution: {integrity: sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg==} + /dezalgo/1.0.3: + resolution: {integrity: sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + dev: false + /diff-sequences/26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} engines: {node: '>= 10.14.2'} @@ -11560,6 +11537,10 @@ packages: resolution: {integrity: sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==} dev: false + /draco3d/1.4.1: + resolution: {integrity: sha512-9Rxonc70xiovBC+Bq1h57SNZIHzWTibU1VfIGp5z3Xx8dPtv4yT5uGhiH7P5uvJRR2jkrvHafRxR7bTANkvfpg==} + dev: false + /drange/1.1.1: resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} engines: {node: '>=4'} @@ -11817,6 +11798,7 @@ packages: resolution: {integrity: sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA==} cpu: [arm64] os: [android] + requiresBuild: true dev: true optional: true @@ -11824,6 +11806,7 @@ packages: resolution: {integrity: sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ==} cpu: [x64] os: [darwin] + requiresBuild: true dev: true optional: true @@ -11831,6 +11814,7 @@ packages: resolution: {integrity: sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg==} cpu: [arm64] os: [darwin] + requiresBuild: true dev: true optional: true @@ -11838,6 +11822,7 @@ packages: resolution: {integrity: sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw==} cpu: [x64] os: [freebsd] + requiresBuild: true dev: true optional: true @@ -11845,6 +11830,7 @@ packages: resolution: {integrity: sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q==} cpu: [arm64] os: [freebsd] + requiresBuild: true dev: true optional: true @@ -11852,6 +11838,7 @@ packages: resolution: {integrity: sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA==} cpu: [ia32] os: [linux] + requiresBuild: true dev: true optional: true @@ -11859,6 +11846,7 @@ packages: resolution: {integrity: sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ==} cpu: [x64] os: [linux] + requiresBuild: true dev: true optional: true @@ -11866,6 +11854,7 @@ packages: resolution: {integrity: sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg==} cpu: [arm] os: [linux] + requiresBuild: true dev: true optional: true @@ -11873,6 +11862,7 @@ packages: resolution: {integrity: sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ==} cpu: [arm64] os: [linux] + requiresBuild: true dev: true optional: true @@ -11880,6 +11870,7 @@ packages: resolution: {integrity: sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ==} cpu: [mips64el] os: [linux] + requiresBuild: true dev: true optional: true @@ -11887,6 +11878,7 @@ packages: resolution: {integrity: sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw==} cpu: [ppc64] os: [linux] + requiresBuild: true dev: true optional: true @@ -11894,6 +11886,7 @@ packages: resolution: {integrity: sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q==} cpu: [x64] os: [netbsd] + requiresBuild: true dev: true optional: true @@ -11901,6 +11894,7 @@ packages: resolution: {integrity: sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA==} cpu: [x64] os: [openbsd] + requiresBuild: true dev: true optional: true @@ -11908,6 +11902,7 @@ packages: resolution: {integrity: sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w==} cpu: [x64] os: [sunos] + requiresBuild: true dev: true optional: true @@ -11915,6 +11910,7 @@ packages: resolution: {integrity: sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg==} cpu: [ia32] os: [win32] + requiresBuild: true dev: true optional: true @@ -11922,6 +11918,7 @@ packages: resolution: {integrity: sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw==} cpu: [x64] os: [win32] + requiresBuild: true dev: true optional: true @@ -11929,6 +11926,7 @@ packages: resolution: {integrity: sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A==} cpu: [arm64] os: [win32] + requiresBuild: true dev: true optional: true @@ -12625,6 +12623,7 @@ packages: /fast-safe-stringify/2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false /fast-sass-loader/2.0.0_sass@1.43.4+webpack@4.44.2: resolution: {integrity: sha512-q9q59bL8XvforoQw+qpwiLPDWGMZ2MfrwuOjvFKyGvON9uawOaNc7QDHKxjfqRM/gs1htXywQVqxjcTMcHDesw==} @@ -12870,6 +12869,15 @@ packages: dependencies: debug: 4.3.2_supports-color@6.1.0 + /follow-redirects/1.14.9: + resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + /for-in/1.0.2: resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} engines: {node: '>=0.10.0'} @@ -12925,6 +12933,16 @@ packages: /formidable/1.2.6: resolution: {integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==} deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau' + dev: true + + /formidable/2.0.1: + resolution: {integrity: sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==} + dependencies: + dezalgo: 1.0.3 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.9.3 + dev: false /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -13030,6 +13048,7 @@ packages: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + requiresBuild: true optional: true /function-bind/1.1.1: @@ -13181,6 +13200,7 @@ packages: /global-agent/3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} + requiresBuild: true dependencies: boolean: 3.1.4 es6-error: 4.1.1 @@ -13236,6 +13256,7 @@ packages: /global-tunnel-ng/2.7.1: resolution: {integrity: sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==} engines: {node: '>=0.10'} + requiresBuild: true dependencies: encodeurl: 1.0.2 lodash: 4.17.21 @@ -13460,6 +13481,11 @@ packages: resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} dev: true + /hexoid/1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: false + /highlight-words-core/1.2.2: resolution: {integrity: sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==} dev: false @@ -13668,7 +13694,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.2 + debug: 4.3.3 transitivePeerDependencies: - supports-color @@ -13719,7 +13745,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.2 + debug: 4.3.3 transitivePeerDependencies: - supports-color @@ -15001,6 +15027,7 @@ packages: /js-base64/3.7.2: resolution: {integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==} + dev: false /js-tokens/3.0.2: resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=} @@ -15300,6 +15327,19 @@ packages: safe-buffer: 5.2.1 dev: false + /jwks-rsa/2.0.5: + resolution: {integrity: sha512-fliHfsiBRzEU0nXzSvwnh0hynzGB0WihF+CinKbSRlaqRxbqqKf2xbBPgwc8mzf18/WgwlG8e5eTpfSTBcU4DQ==} + engines: {node: '>=10 < 13 || >=14'} + dependencies: + '@types/express-jwt': 0.0.42 + debug: 4.3.3 + jose: 2.0.5 + limiter: 1.1.5 + lru-memoizer: 2.1.4 + transitivePeerDependencies: + - supports-color + dev: false + /jws/3.2.2: resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: @@ -15314,12 +15354,12 @@ packages: safe-buffer: 5.2.1 dev: false - /keytar/7.7.0: - resolution: {integrity: sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==} + /keytar/7.9.0: + resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} requiresBuild: true dependencies: - node-addon-api: 3.2.1 - prebuild-install: 6.1.4 + node-addon-api: 4.3.0 + prebuild-install: 7.0.1 dev: false /keyv/3.1.0: @@ -15424,6 +15464,10 @@ packages: marky: 1.2.2 dev: true + /limiter/1.1.5: + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} + dev: false + /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} @@ -15519,6 +15563,10 @@ packages: resolution: {integrity: sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=} dev: true + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: false + /lodash.debounce/4.0.8: resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} @@ -15665,6 +15713,13 @@ packages: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} + /lru-cache/4.0.2: + resolution: {integrity: sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: false + /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -15683,6 +15738,13 @@ packages: dependencies: yallist: 4.0.0 + /lru-memoizer/2.1.4: + resolution: {integrity: sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==} + dependencies: + lodash.clonedeep: 4.5.0 + lru-cache: 4.0.2 + dev: false + /lunr/2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: false @@ -15747,8 +15809,8 @@ packages: dependencies: object-visit: 1.0.1 - /marked/3.0.8: - resolution: {integrity: sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==} + /marked/4.0.12: + resolution: {integrity: sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==} engines: {node: '>= 12'} hasBin: true dev: false @@ -15942,11 +16004,6 @@ packages: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} - /mimic-response/2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} - dev: false - /mimic-response/3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -16321,19 +16378,21 @@ packages: propagate: 2.0.1 transitivePeerDependencies: - supports-color + dev: true - /node-abi/2.30.1: - resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} + /node-abi/3.8.0: + resolution: {integrity: sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==} + engines: {node: '>=10'} dependencies: - semver: 5.7.1 + semver: 7.3.5 dev: false /node-abort-controller/3.0.1: resolution: {integrity: sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==} dev: false - /node-addon-api/3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + /node-addon-api/4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} dev: false /node-fetch/2.6.1: @@ -16391,6 +16450,7 @@ packages: /node-notifier/8.0.2: resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} + requiresBuild: true dependencies: growly: 1.3.0 is-wsl: 2.2.0 @@ -16738,12 +16798,6 @@ packages: mimic-fn: 2.1.0 dev: true - /onigasm/2.2.5: - resolution: {integrity: sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==} - dependencies: - lru-cache: 5.1.1 - dev: false - /ono/4.0.11: resolution: {integrity: sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==} dependencies: @@ -17950,22 +18004,22 @@ packages: deprecated: postinstall-build's behavior is now built into npm! You should migrate off of postinstall-build and use the new `prepare` lifecycle script with npm 5.0.0 or greater. hasBin: true - /prebuild-install/6.1.4: - resolution: {integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==} - engines: {node: '>=6'} + /prebuild-install/7.0.1: + resolution: {integrity: sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==} + engines: {node: '>=10'} hasBin: true dependencies: - detect-libc: 1.0.3 + detect-libc: 2.0.1 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.5 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 2.30.1 + node-abi: 3.8.0 npmlog: 4.1.2 pump: 3.0.0 rc: 1.2.8 - simple-get: 3.1.0 + simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 dev: false @@ -18026,6 +18080,15 @@ packages: react-is: 17.0.2 dev: true + /probe.gl/3.5.0: + resolution: {integrity: sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==} + dependencies: + '@babel/runtime': 7.16.3 + '@probe.gl/env': 3.5.0 + '@probe.gl/log': 3.5.0 + '@probe.gl/stats': 3.5.0 + dev: false + /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -18070,6 +18133,7 @@ packages: /propagate/2.0.1: resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} engines: {node: '>= 8'} + dev: true /proper-lockfile/4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} @@ -18156,6 +18220,7 @@ packages: /puppeteer/5.3.1: resolution: {integrity: sha512-YTM1RaBeYrj6n7IlRXRYLqJHF+GM7tasbvrNFx6w1S16G76NrPq7oYFKLDO+BQsXNtS8kW2GxWCXjIMPvfDyaQ==} engines: {node: '>=10.18.1'} + deprecated: Version no longer supported. Upgrade to @latest requiresBuild: true dependencies: debug: 4.3.2 @@ -18189,6 +18254,11 @@ packages: resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==} engines: {node: '>=0.6'} + /qs/6.9.3: + resolution: {integrity: sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==} + engines: {node: '>=0.6'} + dev: false + /query-string/4.3.4: resolution: {integrity: sha1-u7aTucqRXCMlFbIosaArYJBD2+s=} engines: {node: '>=0.10.0'} @@ -18487,10 +18557,6 @@ packages: /react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - /react-lifecycles-compat/3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - dev: false - /react-redux/7.2.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==} peerDependencies: @@ -18589,23 +18655,6 @@ packages: react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2 dev: false - /react-select/3.2.0_react@17.0.2: - resolution: {integrity: sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 - dependencies: - '@babel/runtime': 7.16.3 - '@emotion/cache': 10.0.29 - '@emotion/core': 10.1.1_react@17.0.2 - '@emotion/css': 10.0.27 - memoize-one: 5.2.1 - prop-types: 15.7.2 - react: 17.0.2 - react-input-autosize: 3.0.0_react@17.0.2 - react-transition-group: 4.4.2_react@17.0.2 - dev: false - /react-shallow-renderer/16.14.1_react@17.0.2: resolution: {integrity: sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==} peerDependencies: @@ -18615,25 +18664,6 @@ packages: react: 17.0.2 react-is: 17.0.2 - /react-split-pane/0.1.92_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w==} - peerDependencies: - react: ^16.0.0-0 - react-dom: ^16.0.0-0 - dependencies: - prop-types: 15.7.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-lifecycles-compat: 3.0.4 - react-style-proptype: 3.2.2 - dev: false - - /react-style-proptype/3.2.2: - resolution: {integrity: sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==} - dependencies: - prop-types: 15.7.2 - dev: false - /react-table/7.7.0_react@17.0.2: resolution: {integrity: sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA==} peerDependencies: @@ -18683,6 +18713,7 @@ packages: loose-envify: 1.4.0 prop-types: 15.7.2 react: 17.0.2 + dev: true /react-window/1.8.6_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==} @@ -19567,11 +19598,11 @@ packages: dev: true optional: true - /shiki/0.9.12: - resolution: {integrity: sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==} + /shiki/0.10.1: + resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} dependencies: jsonc-parser: 3.0.0 - onigasm: 2.2.5 + vscode-oniguruma: 1.6.2 vscode-textmate: 5.2.0 dev: false @@ -19595,10 +19626,10 @@ packages: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} dev: false - /simple-get/3.1.0: - resolution: {integrity: sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==} + /simple-get/4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} dependencies: - decompress-response: 4.2.1 + decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 dev: false @@ -20173,7 +20204,7 @@ packages: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.2 + debug: 4.3.3 transitivePeerDependencies: - supports-color @@ -20193,16 +20224,16 @@ packages: readable-stream: 2.3.7 dev: true - /superagent/5.3.1: - resolution: {integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==} - engines: {node: '>= 7.0.0'} + /superagent/7.1.1: + resolution: {integrity: sha512-CQ2weSS6M+doIwwYFoMatklhRbx6sVNdB99OEJ5czcP3cng76Ljqus694knFWgOj3RkrtxZqIgpe6vhe0J7QWQ==} + engines: {node: '>=6.4.0 <13 || >=14'} dependencies: component-emitter: 1.3.0 cookiejar: 2.1.3 - debug: 4.3.2 + debug: 4.3.3 fast-safe-stringify: 2.1.1 - form-data: 3.0.1 - formidable: 1.2.6 + form-data: 4.0.0 + formidable: 2.0.1 methods: 1.1.2 mime: 2.6.0 qs: 6.10.1 @@ -20210,6 +20241,7 @@ packages: semver: 7.3.5 transitivePeerDependencies: - supports-color + dev: false /supertest/3.4.2: resolution: {integrity: sha512-WZWbwceHUo2P36RoEIdXvmqfs47idNNZjCuJOqDz6rvtkk8ym56aU5oglORCpPeXGxT7l9rkJ41+O1lffQXYSA==} @@ -20856,26 +20888,26 @@ packages: /typedarray/0.0.6: resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} - /typedoc-plugin-merge-modules/3.0.2_typedoc@0.22.9: + /typedoc-plugin-merge-modules/3.0.2_typedoc@0.22.12: resolution: {integrity: sha512-RlMFUVcNAXi7jMIa5/EtCbMeBLnTzF0DcH150s8L5OlF2QdHrnUdNGnqgndfdFu4bUkCOQVl3bjOog9vjjlK3Q==} peerDependencies: typedoc: 0.21.x || 0.22.x dependencies: - typedoc: 0.22.9_typescript@4.4.4 + typedoc: 0.22.12_typescript@4.4.4 dev: false - /typedoc/0.22.9_typescript@4.4.4: - resolution: {integrity: sha512-84PjudoXVcap6bwdZFbYIUWlgdz/iLV09ZHwrCzhtHWXaDQG6mlosJ8te6DSThuRkRvQjp46HO+qY/P7Gpm78g==} + /typedoc/0.22.12_typescript@4.4.4: + resolution: {integrity: sha512-FcyC+YuaOpr3rB9QwA1IHOi9KnU2m50sPJW5vcNRPCIdecp+3bFkh7Rq5hBU1Fyn29UR2h4h/H7twZHWDhL0sw==} engines: {node: '>= 12.10.0'} hasBin: true peerDependencies: - typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x + typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x dependencies: glob: 7.2.0 lunr: 2.3.9 - marked: 3.0.8 + marked: 4.0.12 minimatch: 3.0.4 - shiki: 0.9.12 + shiki: 0.10.1 typescript: 4.4.4 dev: false @@ -21236,6 +21268,10 @@ packages: /vm-browserify/1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + /vscode-oniguruma/1.6.2: + resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} + dev: false + /vscode-textmate/5.2.0: resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: false @@ -21261,6 +21297,7 @@ packages: /watchpack-chokidar2/2.0.1: resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} + requiresBuild: true dependencies: chokidar: 2.1.8 optional: true @@ -21921,10 +21958,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /xpath/0.0.27: - resolution: {integrity: sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==} - engines: {node: '>=0.6.0'} - /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} From 1cbcfbf53f79a22695e04fcb14ee58d5659ebe0b Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:37:04 -0500 Subject: [PATCH 35/76] fix extension api generation tasks; re-generate --- .vscode/launch.json | 13 +- core/common/package.json | 2 +- core/extension/codeGen/generate-exports.js | 11 +- core/extension/index.d.ts | 594 +++++++++++++++++++-- core/extension/index.js | 300 +++++------ core/extension/package.json | 2 +- core/frontend/package.json | 2 +- 7 files changed, 716 insertions(+), 208 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 7604af746806..bfdbc746f785 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1339,7 +1339,18 @@ "--timeout 50000" // for easier debugging ], "console": "integratedTerminal", - } + }, + { + "name": "Extension API Generator", + "cwd": "${workspaceFolder}/core/extension/", + "type": "pwa-node", + "request": "launch", + "runtimeExecutable": "npm", + "runtimeArgs": [ + "run", + "generate" + ], + }, ], "compounds": [ { diff --git a/core/common/package.json b/core/common/package.json index ef338b528c87..f3615c9cac2c 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common", - "extract-extension-api": "eslint -f visualstudio --rule \"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}] \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index 7c85f118fca8..79a90279725c 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -14,8 +14,12 @@ const codeGenClosingComment = `// END GENERATED CODE`; // select all of generated block, including comments const codeGenBlock = RegExp(`${codeGenOpeningComment}(\\s|\\S)*${codeGenClosingComment}`); -const args = process.argv.slice(2); - +let args = process.argv.slice(2); +if (!args.length || !args[0]){ + throw new Error("Please provide an argument in the form of '[\"package name\",\"package path\"] [\"package2 name\",\"package2 path\"]'") +} +args = args[0].replace(/'/g, ""); +args = args.split(" "); // Convert extension linter's output file to a set of lists separated by export type function interpretCsv(csvString) { @@ -149,11 +153,8 @@ function addGeneratedExports(packages) { addToFile(jsFilePath, jsCode); } - const packages = []; args.forEach((paramPair) => { - // Replace all single quotes with double quotes, so JSON can parse - paramPair = paramPair.replace(/'/g, "\""); paramPair = JSON.parse(paramPair); if (paramPair.length < 2) { diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index 0b40c68cb396..0bbd154a6c95 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -7,47 +7,561 @@ export * from "./common_types"; export * from "./frontend_types"; -// Export all real values here. +export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise + +// BEGIN GENERATED CODE export { - InteractiveTool, - PrimitiveTool, - ViewTool, - Tool, - ToolAssistance, - BeButtonEvent, - ViewRect, - Pixel, - LocateResponse, - EditManipulator, - AccuDrawHintBuilder, - EmphasizeElements, - FeatureSymbology, - GraphicBranch, - NotifyMessageDetails, - ExtensionHost, - BingElevationProvider, - BingLocationProvider, - InputCollector, - FrustumAnimator, - GlobeAnimator, - MarginPercent, - Marker, - Cluster, - getCompressedJpegFromCanvas, - getImageSourceFormatForMimeType, - getImageSourceMimeType, - imageBufferToBase64EncodedPng, - imageBufferToCanvas, - imageBufferToPngDataUrl, - imageElementFromImageSource, - imageElementFromUrl, - queryTerrainElevationOffset, - readElementGraphics, - canvasToImageBuffer, - canvasToResizedCanvasWithBars, - extractImageSourceDimensions, + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + SelectionSetEventType, + StandardViewId, + ViewStatus, + GraphicType, + UniformType, + VaryingType, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + AccuDrawHintBuilder, // REAL + BingLocationProvider, // REAL + LocateResponse, // REAL + EmphasizeElements, // REAL + FrustumAnimator, // REAL + GlobeAnimator, // REAL + canvasToResizedCanvasWithBars, // REAL + imageBufferToCanvas, // REAL + canvasToImageBuffer, // REAL + getImageSourceMimeType, // REAL + getImageSourceFormatForMimeType, // REAL + imageElementFromImageSource, // REAL + imageElementFromUrl, // REAL + extractImageSourceDimensions, // REAL + imageBufferToPngDataUrl, // REAL + imageBufferToBase64EncodedPng, // REAL + getCompressedJpegFromCanvas, // REAL + MarginPercent, // REAL + Marker, // REAL + Cluster, // REAL + NotifyMessageDetails, // REAL + queryTerrainElevationOffset, // REAL + ViewRect, // REAL + FeatureSymbology, // REAL + GraphicBranch, // REAL + Pixel, // REAL + readElementGraphics, // REAL + BingElevationProvider, // REAL + EditManipulator, // REAL + PrimitiveTool, // REAL + BeButtonEvent, // REAL + Tool, // REAL + InteractiveTool, // REAL + InputCollector, // REAL + ToolAssistance, // REAL + ViewTool, // REAL } from "@itwin/core-frontend"; -export { ColorDef } from "@itwin/core-common"; +export type { + OsmBuildingDisplayOptions, + HitListHolder, + FeatureOverrideProvider, + IModelIdArg, + FuzzySearchResult, + FrontendSecurityOptions, + ToolTipOptions, + SelectAddEvent, + SelectRemoveEvent, + SelectReplaceEvent, + Animator, + ViewAnimationOptions, + GlobalAlignmentOptions, + OnViewExtentsError, + MarginOptions, + ViewChangeOptions, + ViewCreator2dOptions, + ViewCreator3dOptions, + GlobalLocationArea, + GlobalLocation, + Decorator, + SelectedViewportChangedArgs, + ExtentLimits, + CanvasDecoration, + GraphicBranchOptions, + BatchOptions, + PickableGraphicOptions, + GraphicBuilderOptions, + ViewportGraphicBuilderOptions, + ComputeChordToleranceArgs, + CustomGraphicBuilderOptions, + GraphicPrimitive2d, + GraphicLineString, + GraphicLineString2d, + GraphicPointString, + GraphicPointString2d, + GraphicShape, + GraphicShape2d, + GraphicArc, + GraphicArc2d, + GraphicPath, + GraphicLoop, + GraphicPolyface, + GraphicSolidPrimitive, + ParticleCollectionBuilderParams, + ParticleProps, + ParticleCollectionBuilder, + TextureCacheOwnership, + TextureImage, + CreateTextureArgs, + CreateTextureFromSourceArgs, + Uniform, + UniformContext, + UniformParams, + UniformArrayParams, + ScreenSpaceEffectSource, + ScreenSpaceEffectBuilderParams, + ScreenSpaceEffectContext, + ScreenSpaceEffectBuilder, + TileTreeDiscloser, + GpuMemoryLimits, + TileContent, + TileDrawArgParams, + TileParams, + TileTreeOwner, + TileTreeParams, + TileTreeSupplier, + TiledGraphicsProvider, + ViewClipEventHandler, + BeButtonEventProps, + BeTouchEventProps, + BeWheelEventProps, + ParseKeyinError, + ParsedKeyin, + ToolAssistanceKeyboardInfo, + ToolAssistanceInstruction, + ToolAssistanceSection, + ToolAssistanceInstructions, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + ElementPicker, + ElementLocateManager, + EntityState, + ElementState, + FlashSettingsOptions, + FlashSettings, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + IModelConnection, + NotificationHandler, + MarkerImage, + MarkerFillStyle, + MarkerTextAlign, + MarkerTextBaseline, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + SelectionSetEvent, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + Tiles, + ViewCreator2d, + ViewCreator3d, + ViewManager, + ViewPose, + ViewState, + ViewState3d, + ViewState2d, + ViewingSpace, + CanvasDecorationList, + Decorations, + GraphicBuilder, + GraphicPrimitive, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + GraphicList, + RenderSystem, + TextureCacheKey, + TextureOwnership, + TextureImageSource, + Scene, + DisclosedTileTreeSet, + Tile, + GpuMemoryLimit, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + EventController, + ToolType, + ToolList, + BeButtonState, + BeTouchEvent, + BeWheelEvent, + ParseKeyinResult, + ToolAdmin, + ToolSettings, + ViewManip, +} from "@itwin/core-frontend"; -export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise +export { + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ElementGeometryOpcode, + GeometryStreamFlags, + ColorDef, // REAL +} from "@itwin/core-common"; + +export type { + AnalysisStyleDisplacementProps, + AnalysisStyleThematicProps, + AnalysisStyleProps, + BackgroundMapProps, + DeprecatedBackgroundMapProps, + LocalBriefcaseProps, + RequestNewBriefcaseProps, + CameraProps, + ChangedElements, + EntityIdAndClassId, + ChangedEntities, + ChangesetIndexAndId, + ChangesetIdWithIndex, + ChangesetRange, + CutStyleProps, + ClipStyleProps, + CodeProps, + QueryLimit, + QueryQuota, + BaseReaderOptions, + QueryOptions, + ContextRealityModelProps, + ContextRealityModelsContainer, + DisplayStyleSubCategoryProps, + DisplayStyleModelAppearanceProps, + DisplayStylePlanarClipMaskProps, + DisplayStyleSettingsProps, + DisplayStyle3dSettingsProps, + DisplayStyleProps, + DisplayStyle3dProps, + DisplayStyleOverridesOptions, + DisplayStyleSettingsOptions, + NavigationValue, + NavigationBindingValue, + RelatedElementProps, + ElementProps, + GeometricElementProps, + Placement3dProps, + Placement2dProps, + GeometricElement3dProps, + PhysicalElementProps, + SectionDrawingProps, + SectionDrawingLocationProps, + GeometricElement2dProps, + GeometryPartProps, + ViewAttachmentProps, + SubjectProps, + SheetProps, + DefinitionElementProps, + TypeDefinitionElementProps, + PhysicalTypeProps, + InformationPartitionElementProps, + DisplayStyleLoadProps, + RenderTimelineLoadProps, + ElementLoadOptions, + ElementLoadProps, + ElementAspectProps, + ExternalSourceAspectProps, + ChannelRootAspectProps, + LineStyleProps, + CategoryProps, + SubCategoryProps, + UrlLinkProps, + RepositoryLinkProps, + RenderTimelineProps, + AppearanceOverrideProps, + EmphasizeElementsProps, + EntityProps, + SourceAndTarget, + RelationshipProps, + EntityQueryParams, + EnvironmentProps, + FeatureAppearanceProps, + FeatureAppearanceSource, + FeatureAppearanceProvider, + FontMapProps, + GeometryContainmentRequestProps, + GeometryContainmentResponseProps, + GeometrySummaryOptions, + GeometrySummaryRequestProps, + GroundPlaneProps, + EcefLocationProps, + RootSubjectProps, + FilePropertyProps, + ModelIdAndGeometryGuid, + SolarLightProps, + AmbientLightProps, + HemisphereLightsProps, + FresnelSettingsProps, + LightSettingsProps, + Localization, + MassPropertiesRequestProps, + MassPropertiesResponseProps, + TextureMapProps, + RenderMaterialAssetProps, + RenderMaterialProps, + ModelClipGroupProps, + ElementIdsAndRangesProps, + ModelGeometryChangesProps, + ExtantElementGeometryChange, + DeletedElementGeometryChange, + ModelGeometryChanges, + ModelProps, + ModelLoadProps, + ModelQueryParams, + GeometricModelProps, + GeometricModel2dProps, + GeometricModel3dProps, + PlanProjectionSettingsProps, + PlanarClipMaskProps, + RgbColorProps, + SessionProps, + SkyCubeProps, + SkyBoxProps, + SolarShadowSettingsProps, + SpatialClassifierFlagsProps, + SpatialClassifierProps, + SpatialClassifiersContainer, + TerrainProps, + TextureProps, + TextureLoadProps, + TextureData, + ThematicGradientSettingsProps, + ThematicDisplaySensorProps, + ThematicDisplaySensorSettingsProps, + ThematicDisplayProps, + ThumbnailFormatProps, + ThumbnailProps, + TileVersionInfo, + ViewDetailsProps, + ViewDetails3dProps, + ViewFlagProps, + SectionDrawingViewProps, + ViewStateProps, + ViewStateLoadProps, + ModelSelectorProps, + CategorySelectorProps, + ViewQueryParams, + ViewDefinitionProps, + ViewDefinition3dProps, + SpatialViewDefinitionProps, + ViewDefinition2dProps, + AuxCoordSystemProps, + AuxCoordSystem2dProps, + AuxCoordSystem3dProps, + WhiteOnWhiteReversalProps, + FunctionalElementProps, + ViewAttachmentLabelProps, + CalloutProps, + Helmert2DWithZOffsetProps, + AdditionalTransformProps, + CartographicProps, + HorizontalCRSExtentProps, + HorizontalCRSProps, + VerticalCRSProps, + GeographicCRSProps, + ElementGeometryDataEntry, + XyzRotationProps, + GeocentricTransformProps, + PositionalVectorTransformProps, + GridFileDefinitionProps, + GridFileTransformProps, + GeodeticTransformProps, + GeodeticDatumProps, + GeodeticEllipsoidProps, + GeometryAppearanceProps, + AreaFillProps, + MaterialProps, + GeometryPartInstanceProps, + GeometryStreamHeaderProps, + GeometryStreamEntryProps, + TextStringPrimitive, + ImagePrimitive, + PartReference, + BRepPrimitive, + GeometryPrimitive, + GeometryStreamIteratorEntry, + ImageGraphicProps, + AffineTransformProps, + ProjectionProps, + Carto2DDegreesProps, + TextStringProps, + RpcActivity, + GraphicsRequestProps, + PersistentGraphicsRequestProps, + JsonGeometryStream, + FlatBufferGeometryStream, + DynamicGraphicsRequestProps, + DynamicGraphicsRequest2dProps, + DynamicGraphicsRequest3dProps, + BackgroundMapProviderName, + PersistentBackgroundMapProps, + Base64EncodedString, + BriefcaseId, + EntityIdAndClassIdIterable, + ChangesetId, + ChangesetIndex, + ChangesetIndexOrId, + CodeScopeProps, + ColorDefProps, + PlacementProps, + FontId, + RgbFactorProps, + Point2dProps, + ElementGeometryChange, + SkyBoxImageProps, + TerrainProviderName, + TweenCallback, + UpdateCallback, + EasingFunction, + InterpolationFunction, + ViewFlagsProperties, + ViewFlagOverrides, + UnitType, + GeodeticTransformMethod, + GridFileFormat, + GridFileDirection, + GeometryStreamProps, + GeometryStreamPrimitive, + ImageGraphicCornersProps, + AxisAlignedBox3d, + AxisAlignedBox3dProps, + ElementAlignedBox3d, + ElementAlignedBox2d, + LocalAlignedBox3d, + Placement, + ProjectionMethod, + HemisphereEnum, + DanishSystem34Region, + RemoveFunction, + ElementGraphicsRequestProps, +} from "@itwin/core-common"; + +// END GENERATED CODE diff --git a/core/extension/index.js b/core/extension/index.js index cb31852d7bda..50d6428bffb4 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -7,165 +7,147 @@ const globalSymbol = Symbol.for("itwin.core.frontend.globals"); const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); -// re-export tool -export const { - InteractiveTool, - PrimitiveTool, - ViewTool, - Tool, - - ToolAssistance, - BeButtonEvent, - ViewRect, - Pixel, - LocateResponse, - EditManipulator, - AccuDrawHintBuilder, - EmphasizeElements, - FeatureSymbology, - GraphicBranch, - NotifyMessageDetails, - - ExtensionHost, -} = ext.exports; - -// re-export frontend items -export const { - BingElevationProvider, - BingLocationProvider, - InputCollector, - FrustumAnimator, - GlobeAnimator, - MarginPercent, - Marker, - Cluster -} = ext.exports; - -// re-export functions -export const { - getCompressedJpegFromCanvas, - getImageSourceFormatForMimeType, - getImageSourceMimeType, - imageBufferToBase64EncodedPng, - imageBufferToCanvas, - imageBufferToPngDataUrl, - imageElementFromImageSource, - imageElementFromUrl, - queryTerrainElevationOffset, - readElementGraphics, - canvasToImageBuffer, - canvasToResizedCanvasWithBars, - extractImageSourceDimensions -} = ext.exports; +// export extension stuff +export const { registerTool } = ext.api; -// re-export enums +// BEGIN GENERATED CODE export const { - // core-frontend: - ACSDisplayOptions, - ACSType, - ActivityMessageEndReason, - BeButton, - BeModifierKeys, - ClipEventType, - ContextRotationId, - CoordinateLockOverrides, - CoordSource, - CoordSystem, - DepthPointSource, - EventHandled, - FlashMode, - FrontendLoggerCategory, - GraphicType, - HitDetailType, - HitGeomType, - HitParentGeomType, - HitPriority, - HitSource, - InputSource, - KeyinParseError, - LocateAction, - LocateFilterStatus, - ManipulatorToolEvent, - MessageBoxIconType, - MessageBoxType, - MessageBoxValue, - OutputMessageAlert, - OutputMessagePriority, - OutputMessageType, - ParseAndRunResult, - SelectionMethod, - SelectionMode, - SelectionProcessing, - SelectionSetEventType, - SnapHeat, - SnapMode, - SnapStatus, - StandardViewId, - StartOrResume, - TextureTransparency, - TileBoundingBoxes, - TileGraphicType, - TileLoadPriority, - TileLoadStatus, - TileTreeLoadStatus, - TileVisibility, - ToolAssistanceImage, - ToolAssistanceInputMethod, - UniformType, - VaryingType, - ViewStatus, - ViewUndoEvent, - // core-common: - BackgroundFill, - BackgroundMapType, - BatchType, - BisCodeSpec, - BriefcaseIdValue, - ChangedValueState, - ChangeOpCode, - ChangesetType, - ColorByName, - CommonLoggerCategory, - ECSqlSystemProperty, - ECSqlValueType, - ElementGeometryOpcode, - FeatureOverrideType, - FillDisplay, - FillFlags, - FontType, - GeoCoordStatus, - GeometryClass, - GeometryStreamFlags, - GeometrySummaryVerbosity, - GlobeMode, - GridOrientationType, - HSVConstants, - ImageBufferFormat, - ImageSourceFormat, - LinePixels, - MassPropertiesOperation, - MonochromeMode, - Npc, - PlanarClipMaskMode, - PlanarClipMaskPriority, - QueryRowFormat, - Rank, - RenderMode, - SectionType, - SpatialClassifierInsideDisplay, - SpatialClassifierOutsideDisplay, - SyncMode, - TerrainHeightOriginMode, - TextureMapUnits, - ThematicDisplayMode, - ThematicGradientColorScheme, - ThematicGradientMode, - TxnAction, - TypeOfChange, +// @itwin/core-frontend: + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + SelectionSetEventType, + StandardViewId, + ViewStatus, + GraphicType, + UniformType, + VaryingType, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + AccuDrawHintBuilder, // REAL + BingLocationProvider, // REAL + LocateResponse, // REAL + EmphasizeElements, // REAL + FrustumAnimator, // REAL + GlobeAnimator, // REAL + canvasToResizedCanvasWithBars, // REAL + imageBufferToCanvas, // REAL + canvasToImageBuffer, // REAL + getImageSourceMimeType, // REAL + getImageSourceFormatForMimeType, // REAL + imageElementFromImageSource, // REAL + imageElementFromUrl, // REAL + extractImageSourceDimensions, // REAL + imageBufferToPngDataUrl, // REAL + imageBufferToBase64EncodedPng, // REAL + getCompressedJpegFromCanvas, // REAL + MarginPercent, // REAL + Marker, // REAL + Cluster, // REAL + NotifyMessageDetails, // REAL + queryTerrainElevationOffset, // REAL + ViewRect, // REAL + FeatureSymbology, // REAL + GraphicBranch, // REAL + Pixel, // REAL + readElementGraphics, // REAL + BingElevationProvider, // REAL + EditManipulator, // REAL + PrimitiveTool, // REAL + BeButtonEvent, // REAL + Tool, // REAL + InteractiveTool, // REAL + InputCollector, // REAL + ToolAssistance, // REAL + ViewTool, // REAL +// @itwin/core-common: + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ElementGeometryOpcode, + GeometryStreamFlags, + ColorDef, // REAL } = ext.exports; - -// re-export commmon -export const { ColorDef } = ext.exports; - -// export extension stuff -export const { registerTool } = ext.api; +// END GENERATED CODE diff --git a/core/extension/package.json b/core/extension/package.json index 65b69b4c9d5c..f4fef8745f77 100644 --- a/core/extension/package.json +++ b/core/extension/package.json @@ -17,7 +17,7 @@ "docs": "", "lint": "", "test": "", - "generate": "node ./codeGen/generate-exports.js ['@itwin/core-frontend','core/frontend'] ['@itwin/core-common','core/common']" + "generate": "node ./codeGen/generate-exports.js '[\"@itwin/core-frontend\",\"core/frontend\"] [\"@itwin/core-common\",\"core/common\"]'" }, "keywords": [ "Bentley", diff --git a/core/frontend/package.json b/core/frontend/package.json index 8f5dd7b150b8..e3ef56344490 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,7 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend", - "extract-extension-api": "eslint -f visualstudio --rule \"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}] \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", From a4b1802f2e6da75dc6bcd2fe82b7a6e5d95f5f64 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:39:57 -0500 Subject: [PATCH 36/76] update lock file --- common/config/rush/pnpm-lock.yaml | 116 ++++++++++++++---------------- 1 file changed, 53 insertions(+), 63 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b0e4437c90c0..b980de4a8579 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1454,8 +1454,8 @@ importers: '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -1507,8 +1507,8 @@ importers: '@itwin/core-react': link:../../ui/core-react '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@testing-library/react': 12.1.2_react@17.0.2 '@testing-library/react-hooks': 7.0.2_react@17.0.2 @@ -2967,8 +2967,8 @@ importers: '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -3011,8 +3011,8 @@ importers: '@itwin/electron-authorization': 0.8.3 '@itwin/express-server': link:../../core/express-server '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -3060,8 +3060,8 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* @@ -3088,8 +3088,8 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend @@ -3149,8 +3149,8 @@ importers: '@itwin/imodels-access-frontend': ^1.0.1 '@itwin/imodels-client-authoring': ^1.0.1 '@itwin/imodels-client-management': ^1.0.1 - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@itwin/map-layers': workspace:* '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* @@ -3224,8 +3224,8 @@ importers: '@itwin/imodels-access-frontend': 1.0.1 '@itwin/imodels-client-authoring': 1.0.1 '@itwin/imodels-client-management': 1.0.1 - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/map-layers': link:../../extensions/map-layers '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common @@ -3674,8 +3674,8 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@types/chai': ^4.1.4 @@ -3714,8 +3714,8 @@ importers: typescript: ~4.4.0 uuid: ^7.0.3 dependencies: - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 immer: 9.0.6 uuid: 7.0.3 @@ -3778,8 +3778,8 @@ importers: '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* @@ -3840,8 +3840,8 @@ importers: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 '@itwin/core-telemetry': link:../../core/telemetry - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-components': link:../../presentation/components classnames: 2.3.1 immer: 9.0.6 @@ -3923,8 +3923,8 @@ importers: '@itwin/core-i18n': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -3994,8 +3994,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@types/shortid': 0.0.29 callable-instance2: 1.0.0 classnames: 2.3.1 @@ -4081,8 +4081,8 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-i18n': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -4135,8 +4135,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 dompurify: 2.3.3 lodash: 4.17.21 @@ -4208,8 +4208,8 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@testing-library/user-event': ^13.2.1 @@ -4261,8 +4261,8 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.1 - '@itwin/itwinui-react': 1.29.3_react-dom@17.0.2+react@17.0.2 + '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 callable-instance2: 1.0.0 classnames: 2.3.1 eventemitter2: 5.0.1 @@ -6527,9 +6527,8 @@ packages: /@itwin/browser-authorization/0.5.1: resolution: {integrity: sha512-TI7nd4I5Lc9MrJnf40kk+u4bTCym1xH9IBJNkvVt+7unjUSbRuUaPS6wC6WTu2DoYbIocEIEBWTqNOR67lAHGA==} - peerDependencies: - '@itwin/core-bentley': ^3.0.0 dependencies: + '@itwin/core-bentley': link:../../core/bentley oidc-client: 1.11.5 dev: false @@ -6581,17 +6580,6 @@ packages: - utf-8-validate dev: true - /@itwin/core-bentley/3.0.1: - resolution: {integrity: sha512-vUTdTiKFDf5vA/aHnIbHbE2MQYw1BXL+aPEEnBAjvAtS44L2bsDSRKXiiRmcrcWPWNBlIGm/Z5aut2uyFOeMog==} - dev: false - - /@itwin/core-geometry/3.0.1: - resolution: {integrity: sha512-O1RoPUtw7X8eRXaMRvjUrtEMdBHpGTrgWXfcrd/nGjNSqdmUy2ETYScgGI+ecwSml79xoa+CtNrUF4+4hBbS6w==} - dependencies: - '@itwin/core-bentley': 3.0.1 - flatbuffers: 1.12.0 - dev: false - /@itwin/electron-authorization/0.8.3: resolution: {integrity: sha512-gKsQewSx4e/a74WJvROzq+dmUb05zE2evMLLywKP+CQULwq2uX0IeI0MRGI/FeVS9T9xBSv90sSzxmrugBtPrQ==} dependencies: @@ -6643,8 +6631,11 @@ packages: - debug dev: false - /@itwin/itwinui-css/0.44.1: - resolution: {integrity: sha512-J0zSBKLPoEAMPGV/Sw2+VkrQH432HejACXvymUbSGaqBYodIcCm6JPAlMbjeJlNZgU2auQbyPr4tbe1U6AwIWw==} + /@itwin/itwinui-css/0.44.2: + resolution: {integrity: sha512-n+ju00BaRaLZe8LqjEcl5i0Um8oKliyTagyz5SHi6IGqQKZilMs1feLsfyqWzNbDYaI4M4Bn4SBWJBFgXtDOjg==} + + /@itwin/itwinui-css/0.48.2: + resolution: {integrity: sha512-/+0VoBF71e2a8ThzDyoVLUoFvGNSGJ2L4NNV0CLpaEUiI1cnGuVo8+k5sAsexqfqfi6EgSv93MVWzkxFSZHk/Q==} /@itwin/itwinui-icons-react/1.8.0_react-dom@17.0.2+react@17.0.2: resolution: {integrity: sha512-/16NPEPGvqOAwcJ/uBCvmIyl0c0vaprfsjl/mdecYLf301dKvlKmIH+Eq6a2YUXZHO/B6KaZtM78UCuxXGMQBA==} @@ -6684,13 +6675,13 @@ packages: react: 17.0.2 dev: true - /@itwin/itwinui-react/1.29.3_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-c3W2DaGofVaZCe0Z6ldChFBy+GBqBXrMz0Ap6awBLX6FwHcFzwcOxBo0BaCWLoIFl8BFv94mbrRh9zkk1m7ZbA==} + /@itwin/itwinui-react/1.32.0_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-Oj0lG7QFg/wyatlVrE4ruRLEUZwWl+jU8G8FSp1q9K/9lpwbAuPhM2OrzeQcuOlBCQNezRvyMvIds7qBS7T31g==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 dependencies: - '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-icons-react': 1.8.0_react-dom@17.0.2+react@17.0.2 '@itwin/itwinui-illustrations-react': 1.1.0_react-dom@17.0.2+react@17.0.2 '@tippyjs/react': 4.2.6_react-dom@17.0.2+react@17.0.2 @@ -6702,13 +6693,13 @@ packages: react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2 dev: false - /@itwin/itwinui-react/1.29.3_react@17.0.2: - resolution: {integrity: sha512-c3W2DaGofVaZCe0Z6ldChFBy+GBqBXrMz0Ap6awBLX6FwHcFzwcOxBo0BaCWLoIFl8BFv94mbrRh9zkk1m7ZbA==} + /@itwin/itwinui-react/1.32.0_react@17.0.2: + resolution: {integrity: sha512-Oj0lG7QFg/wyatlVrE4ruRLEUZwWl+jU8G8FSp1q9K/9lpwbAuPhM2OrzeQcuOlBCQNezRvyMvIds7qBS7T31g==} peerDependencies: react: ^16.8.6 || ^17.0.0 react-dom: ^16.8.6 || ^17.0.0 dependencies: - '@itwin/itwinui-css': 0.44.1 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-icons-react': 1.8.0_react@17.0.2 '@itwin/itwinui-illustrations-react': 1.1.0_react@17.0.2 '@tippyjs/react': 4.2.6_react@17.0.2 @@ -6759,10 +6750,9 @@ packages: /@itwin/reality-data-client/0.7.0: resolution: {integrity: sha512-fUbS3953g3zXNagcgwmJ7n2DHvL15KlBQZ5NlpWpGdotRgtOKAxeJqybPJBnoM10dErmJVC+Cbv3JVc2Nar/Mw==} - peerDependencies: - '@itwin/core-common': ^3.0.0 dependencies: - '@itwin/core-geometry': 3.0.1 + '@itwin/core-common': link:../../core/common + '@itwin/core-geometry': link:../../core/geometry axios: 0.25.0 transitivePeerDependencies: - debug @@ -12587,7 +12577,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.2 + debug: 4.3.3 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -13736,7 +13726,7 @@ packages: engines: {node: '>= 6.0.0'} dependencies: agent-base: 5.1.1 - debug: 4.3.2 + debug: 4.3.3 transitivePeerDependencies: - supports-color @@ -18223,7 +18213,7 @@ packages: deprecated: Version no longer supported. Upgrade to @latest requiresBuild: true dependencies: - debug: 4.3.2 + debug: 4.3.3 devtools-protocol: 0.0.799653 extract-zip: 2.0.1 https-proxy-agent: 4.0.0 From d049d30021d596916fbf14dd4dd8303d105b7dbf Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:46:24 -0500 Subject: [PATCH 37/76] changes --- .../spencer-extension-code-gen_2022-02-28-19-46.json | 10 ++++++++++ .../spencer-extension-code-gen_2022-02-28-19-46.json | 10 ++++++++++ .../spencer-extension-code-gen_2022-02-28-19-46.json | 10 ++++++++++ .../spencer-extension-code-gen_2022-02-28-19-46.json | 10 ++++++++++ .../spencer-extension-code-gen_2022-02-28-19-46.json | 10 ++++++++++ 5 files changed, 50 insertions(+) create mode 100644 common/changes/@itwin/build-tools/spencer-extension-code-gen_2022-02-28-19-46.json create mode 100644 common/changes/@itwin/core-common/spencer-extension-code-gen_2022-02-28-19-46.json create mode 100644 common/changes/@itwin/core-extension/spencer-extension-code-gen_2022-02-28-19-46.json create mode 100644 common/changes/@itwin/core-frontend/spencer-extension-code-gen_2022-02-28-19-46.json create mode 100644 common/changes/@itwin/eslint-plugin/spencer-extension-code-gen_2022-02-28-19-46.json diff --git a/common/changes/@itwin/build-tools/spencer-extension-code-gen_2022-02-28-19-46.json b/common/changes/@itwin/build-tools/spencer-extension-code-gen_2022-02-28-19-46.json new file mode 100644 index 000000000000..86d21c59a749 --- /dev/null +++ b/common/changes/@itwin/build-tools/spencer-extension-code-gen_2022-02-28-19-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/build-tools", + "comment": "Add extension API generation", + "type": "none" + } + ], + "packageName": "@itwin/build-tools" +} \ No newline at end of file diff --git a/common/changes/@itwin/core-common/spencer-extension-code-gen_2022-02-28-19-46.json b/common/changes/@itwin/core-common/spencer-extension-code-gen_2022-02-28-19-46.json new file mode 100644 index 000000000000..84ff4fcfe686 --- /dev/null +++ b/common/changes/@itwin/core-common/spencer-extension-code-gen_2022-02-28-19-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-common", + "comment": "Add extension API generation", + "type": "none" + } + ], + "packageName": "@itwin/core-common" +} \ No newline at end of file diff --git a/common/changes/@itwin/core-extension/spencer-extension-code-gen_2022-02-28-19-46.json b/common/changes/@itwin/core-extension/spencer-extension-code-gen_2022-02-28-19-46.json new file mode 100644 index 000000000000..9712389683db --- /dev/null +++ b/common/changes/@itwin/core-extension/spencer-extension-code-gen_2022-02-28-19-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-extension", + "comment": "Add extension API generation", + "type": "none" + } + ], + "packageName": "@itwin/core-extension" +} \ No newline at end of file diff --git a/common/changes/@itwin/core-frontend/spencer-extension-code-gen_2022-02-28-19-46.json b/common/changes/@itwin/core-frontend/spencer-extension-code-gen_2022-02-28-19-46.json new file mode 100644 index 000000000000..d76cb11e186b --- /dev/null +++ b/common/changes/@itwin/core-frontend/spencer-extension-code-gen_2022-02-28-19-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/core-frontend", + "comment": "Add extension API generation", + "type": "none" + } + ], + "packageName": "@itwin/core-frontend" +} \ No newline at end of file diff --git a/common/changes/@itwin/eslint-plugin/spencer-extension-code-gen_2022-02-28-19-46.json b/common/changes/@itwin/eslint-plugin/spencer-extension-code-gen_2022-02-28-19-46.json new file mode 100644 index 000000000000..686d9f2db40b --- /dev/null +++ b/common/changes/@itwin/eslint-plugin/spencer-extension-code-gen_2022-02-28-19-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/eslint-plugin", + "comment": "Add extension API generation", + "type": "none" + } + ], + "packageName": "@itwin/eslint-plugin" +} \ No newline at end of file From 28497d456ae8e2b053dcfe197efc50d412882300 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:57:50 -0500 Subject: [PATCH 38/76] extract api --- common/api/core-frontend.api.md | 8 +- common/api/summary/core-frontend.exports.csv | 460 +++++++++---------- 2 files changed, 233 insertions(+), 235 deletions(-) diff --git a/common/api/core-frontend.api.md b/common/api/core-frontend.api.md index 493d6acf504b..b32ffce912b0 100644 --- a/common/api/core-frontend.api.md +++ b/common/api/core-frontend.api.md @@ -4762,8 +4762,6 @@ export class IModelApp { // @internal static readonly onAfterStartup: BeEvent<() => void>; static readonly onBeforeShutdown: BeEvent<() => void>; - // @internal - static readonly onBeforeStartup: BeEvent<() => void>; // @beta static get publicPath(): string; static get quantityFormatter(): QuantityFormatter; @@ -5440,7 +5438,7 @@ export class LocateOptions { setFrom(other: LocateOptions): void; } -// @public (undocumented) +// @public export class LocateResponse { // @internal (undocumented) clone(): LocateResponse; @@ -11571,8 +11569,8 @@ export class ToolAdmin { getDecorationGeometry(hit: HitDetail): GeometryStreamProps | undefined; getToolTip(hit: HitDetail): Promise; gridLock: boolean; - get idleTool(): InteractiveTool; - set idleTool(idleTool: InteractiveTool); + get idleTool(): IdleTool; + set idleTool(idleTool: IdleTool); // (undocumented) get isLocateCircleOn(): boolean; readonly manipulatorToolEvent: BeEvent<(tool: Tool, event: ManipulatorToolEvent) => void>; diff --git a/common/api/summary/core-frontend.exports.csv b/common/api/summary/core-frontend.exports.csv index 64ca54e1269d..801934e2f655 100644 --- a/common/api/summary/core-frontend.exports.csv +++ b/common/api/summary/core-frontend.exports.csv @@ -1,26 +1,26 @@ sep=; Release Tag;API Item internal;AccuDraw -internal;AccuDrawChangeModeTool +internal;AccuDrawChangeModeTool internal;AccudrawData internal;AccuDrawFlags public;AccuDrawHintBuilder -internal;AccuDrawRotateAxesTool -internal;AccuDrawRotateCycleTool -internal;AccuDrawRotateElementTool -internal;AccuDrawRotateFrontTool -internal;AccuDrawRotateSideTool -internal;AccuDrawRotateTopTool -internal;AccuDrawRotateViewTool -internal;AccuDrawSetLockAngleTool -internal;AccuDrawSetLockDistanceTool -internal;AccuDrawSetLockSmartTool -internal;AccuDrawSetLockXTool -internal;AccuDrawSetLockYTool -internal;AccuDrawSetLockZTool -internal;AccuDrawSetOriginTool +internal;AccuDrawRotateAxesTool +internal;AccuDrawRotateCycleTool +internal;AccuDrawRotateElementTool +internal;AccuDrawRotateFrontTool +internal;AccuDrawRotateSideTool +internal;AccuDrawRotateTopTool +internal;AccuDrawRotateViewTool +internal;AccuDrawSetLockAngleTool +internal;AccuDrawSetLockDistanceTool +internal;AccuDrawSetLockSmartTool +internal;AccuDrawSetLockXTool +internal;AccuDrawSetLockYTool +internal;AccuDrawSetLockZTool +internal;AccuDrawSetOriginTool alpha;AccuDrawShortcuts -public;AccuSnap +public;AccuSnap public;AccuSnap public;ACSDisplayOptions public;ACSType @@ -28,16 +28,16 @@ alpha;ActivationEvent public;ActivityMessageDetails public;ActivityMessageEndReason internal;addRangeGraphic(builder: GraphicBuilder, range: Range3d, is2d: boolean): void -internal;AlternateUnitLabelsRegistry -beta;AngleDescription -internal;AnimatedTreeReference +internal;AlternateUnitLabelsRegistry +beta;AngleDescription +internal;AnimatedTreeReference internal;AnimationBranchState internal;AnimationBranchStates internal;AnimationNodeId public;Animator internal;ArcGisErrorCode internal;ArcGisGenerateTokenOptions -internal;ArcGISMapLayerImageryProvider +internal;ArcGISMapLayerImageryProvider internal;ArcGISTileMap internal;ArcGisToken internal;ArcGisTokenClientType @@ -47,34 +47,34 @@ internal;ArcGisUtilities internal;areaToEyeHeight(view3d: ViewState3d, area: GlobalLocationArea, offset?: number): number internal;areaToEyeHeightFromGcs(view3d: ViewState3d, area: GlobalLocationArea, offset?: number): Promise internal;AttachToViewportArgs -public;AuxCoordSystem2dState -public;AuxCoordSystem3dState -public;AuxCoordSystemSpatialState -public;class AuxCoordSystemState -internal;AzureMapsLayerImageryProvider -internal;B3dmReader +public;AuxCoordSystem2dState +public;AuxCoordSystem3dState +public;AuxCoordSystemSpatialState +public;class AuxCoordSystemState +internal;AzureMapsLayerImageryProvider +internal;B3dmReader internal;BackgroundMapGeometry -beta;class BaseUnitFormattingSettingsProvider +beta;class BaseUnitFormattingSettingsProvider internal;BatchedTileIdMap public;BatchOptions public;BeButton -public;BeButtonEvent +public;BeButtonEvent public;BeButtonEventProps public;BeButtonState public;BeModifierKeys -public;BeTouchEvent -public;BeTouchEventProps -public;BeWheelEvent -public;BeWheelEventProps +public;BeTouchEvent +public;BeTouchEventProps +public;BeWheelEvent +public;BeWheelEventProps public;BingElevationProvider public;BingLocationProvider -internal;BingMapsImageryLayerProvider -public;BlankConnection +internal;BingMapsImageryLayerProvider +public;BlankConnection public;BlankConnectionProps -public;BriefcaseConnection -public;class BriefcaseNotificationHandler -public;BriefcaseTxns -alpha;BuildExtensionManifest +public;BriefcaseConnection +public;class BriefcaseNotificationHandler +public;BriefcaseTxns +alpha;BuildExtensionManifest alpha;BuiltInExtensionLoaderProps internal;CachedDecoration = internal;CachedIModelCoordinatesResponseProps @@ -83,20 +83,20 @@ public;CanvasDecoration public;CanvasDecorationList = CanvasDecoration[] public;canvasToImageBuffer(canvas: HTMLCanvasElement, format?: ImageBufferFormat): ImageBuffer | undefined public;canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize?: Point2d, barStyle?: string): HTMLCanvasElement -public;CategorySelectorState +public;CategorySelectorState internal;CesiumIonAssetProvider internal;ChangeFlag public;ChangeFlags public;ChangeViewedModel2dOptions -public;CheckboxFormatPropEditorSpec -public;CheckpointConnection +public;CheckboxFormatPropEditorSpec +public;CheckpointConnection public;ClipEventType public;Cluster beta;CollectTileStatus = "accept" | "reject" | "continue" alpha;CompassMode public;ComputeChordToleranceArgs internal;ContextMode -public;ContextRealityModelState +public;ContextRealityModelState public;ContextRotationId internal;ContextShareProvider public;CoordinateLockOverrides @@ -119,43 +119,43 @@ public;CreateTextureFromSourceArgs internal;CurrentInputState internal;CurrentState public;CustomFormatPropEditorSpec -public;CustomGraphicBuilderOptions -public;CustomQuantityTypeDefinition +public;CustomGraphicBuilderOptions +public;CustomQuantityTypeDefinition internal;DebugShaderFile -public;DecorateContext -public;Decorations +public;DecorateContext +public;Decorations internal;DecorationsCache -public;Decorator -internal;DefaultViewTouchTool -internal;DefineACSByElementTool -internal;DefineACSByPointsTool +public;Decorator +internal;DefaultViewTouchTool +internal;DefineACSByElementTool +internal;DefineACSByPointsTool public;DepthPointOptions public;DepthPointSource public;DepthRangeNpc internal;DevTools -public;DisclosedTileTreeSet -public;DisplayStyle2dState -public;DisplayStyle3dState -public;class DisplayStyleState +public;DisclosedTileTreeSet +public;DisplayStyle2dState +public;DisplayStyle3dState +public;class DisplayStyleState internal;disposeTileTreesForGeometricModels(modelIds: Set public;DownloadBriefcaseId = public;DownloadBriefcaseOptions = DownloadBriefcaseId & internal;DrawClipOptions -public;DrawingModelState -public;DrawingViewState -internal;class DynamicIModelTile -public;DynamicsContext +public;DrawingModelState +public;DrawingViewState +internal;class DynamicIModelTile +public;DynamicsContext public;EditManipulator internal;ELEMENT_MARKED_FOR_REMOVAL: unique symbol alpha;ElementAgenda public;ElementLocateManager public;ElementPicker -alpha;class ElementSetTool -public;ElementState -internal;EllipsoidTerrainProvider -public;EmphasizeElements -beta;EngineeringLengthDescription -public;EntityState +alpha;class ElementSetTool +public;ElementState +internal;EllipsoidTerrainProvider +public;EmphasizeElements +beta;EngineeringLengthDescription +public;EntityState internal;EnvironmentDecorations public;EventController public;EventHandled @@ -173,14 +173,14 @@ internal;eyeToCartographicOnGlobeFromGcs(viewport: ScreenViewport, preserveHeigh public;FeatureOverrideProvider public;FeatureSymbology alpha;Source -public;FitViewTool +public;FitViewTool internal;Flags public;FlashMode public;FlashSettings public;FlashSettingsOptions = Mutable -public;FlyViewTool +public;FlyViewTool internal;formatAnimationBranchId(modelId: Id64String, branchId: number): string -beta;class FormattedQuantityDescription +beta;class FormattedQuantityDescription public;FormatterParserSpecsProvider public;FormattingUnitSystemChangedArgs internal;FrameBeforeRenderData @@ -193,16 +193,16 @@ public;FrontendHubAccess public;FrontendLoggerCategory public;FrontendSecurityOptions public;Frustum2d -public;FrustumAnimator +public;FrustumAnimator public;FuzzySearch public;FuzzySearchResult public;FuzzySearchResults internal;GeoConverter -internal;GeographicTilingScheme -public;GeometricModel2dState -public;GeometricModel3dState -public;class GeometricModelState -beta;GeometryTileTreeReference +internal;GeographicTilingScheme +public;GeometricModel2dState +public;GeometricModel3dState +public;class GeometricModelState +beta;GeometryTileTreeReference internal;GeoServices public;getCenteredViewRect(viewRect: ViewRect, aspectRatio?: number): ViewRect public;getCesiumAssetUrl(osmAssetId: number, requestKey: string): string @@ -218,48 +218,48 @@ public;getQuantityTypeKey(type: QuantityTypeArg): QuantityTypeKey public;GlobalAlignmentOptions public;GlobalLocation public;GlobalLocationArea -public;GlobeAnimator -internal;Gltf +public;GlobeAnimator +internal;Gltf internal;Gltf1Id = string internal;Gltf2Id = number internal;GltfBufferData internal;GltfDataBuffer = Uint8Array | Uint16Array | Uint32Array | Float32Array internal;GltfDataType -internal;GltfGraphicsReader -internal;GltfHeader +internal;GltfGraphicsReader +internal;GltfHeader internal;GltfId = Gltf1Id | Gltf2Id internal;GltfMeshData internal;GltfNode = Gltf1Node | Gltf2Node internal;class GltfReader internal;GltfReaderArgs internal;GltfReaderProps -internal;GltfReaderResult +internal;GltfReaderResult internal;GLTimerResult internal;GLTimerResultCallback = (result: GLTimerResult) => void public;GpuMemoryLimit = "none" | "default" | "aggressive" | "relaxed" | number public;GpuMemoryLimits -public;GraphicalEditingScope +public;GraphicalEditingScope public;GraphicArc public;GraphicArc2d -public;GraphicBranch +public;GraphicBranch internal;GraphicBranchFrustum public;GraphicBranchOptions public;class GraphicBuilder public;GraphicBuilderOptions public;GraphicLineString -public;GraphicLineString2d +public;GraphicLineString2d public;GraphicList = RenderGraphic[] public;GraphicLoop public;GraphicPath public;GraphicPointString -public;GraphicPointString2d +public;GraphicPointString2d public;GraphicPolyface public;GraphicPrimitive = GraphicLineString | GraphicLineString2d | GraphicPointString | GraphicPointString2d | GraphicShape | GraphicShape2d | GraphicArc | GraphicArc2d | GraphicPath | GraphicLoop | GraphicPolyface | GraphicSolidPrimitive public;GraphicPrimitive2d internal;GraphicsCollector -internal;GraphicsCollectorDrawArgs +internal;GraphicsCollectorDrawArgs public;GraphicShape -public;GraphicShape2d +public;GraphicShape2d public;GraphicSolidPrimitive public;GraphicType internal;GroundPlaneDecorations @@ -274,45 +274,45 @@ public;HitListHolder public;HitParentGeomType public;HitPriority public;HitSource -internal;I3dmReader +internal;I3dmReader public;IconSprites -public;IdleTool +public;IdleTool public;imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha?: boolean): string | undefined public;imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha?: boolean): HTMLCanvasElement | undefined public;imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha?: boolean): string | undefined public;imageElementFromImageSource(source: ImageSource): Promise public;imageElementFromUrl(url: string): Promise -internal;ImageryMapLayerFormat -internal;ImageryMapLayerTreeReference -internal;ImageryMapTile -internal;ImageryMapTileTree -internal;ImageryTileContent +internal;ImageryMapLayerFormat +internal;ImageryMapLayerTreeReference +internal;ImageryMapTile +internal;ImageryMapTileTree +internal;ImageryTileContent internal;Imdl internal;ImdlReader internal;ImdlReaderCreateArgs -internal;ImdlReaderResult +internal;ImdlReaderResult public;IModelApp public;IModelAppOptions -public;class IModelConnection +public;class IModelConnection public;IModelConnection internal;IModelFrameLifecycle public;IModelIdArg public;IModelRoutingContext -internal;IModelTile -internal;IModelTileContent -internal;IModelTileParams +internal;IModelTile +internal;IModelTileContent +internal;IModelTileParams internal;iModelTileParamsFromJSON(props: TileProps, parent: IModelTile | undefined): IModelTileParams internal;IModelTileRequestChannels -internal;IModelTileTree +internal;IModelTileTree internal;IModelTileTreeOptions -internal;IModelTileTreeParams +internal;IModelTileTreeParams internal;iModelTileTreeParamsFromJSON(props: IModelTileTreeProps, iModel: IModelConnection, modelId: Id64String, options: IModelTileTreeOptions): IModelTileTreeParams -public;class InputCollector +public;class InputCollector public;InputSource internal;InstancedGraphicParams -public;class InteractiveTool +public;class InteractiveTool internal;internalMapLayerImageryFormats: (typeof WmsMapLayerFormat)[] -public;IntersectDetail +public;IntersectDetail public;IpcApp public;IpcAppOptions public;isCheckboxFormatPropEditorSpec: (item: CustomFormatPropEditorSpec) => item is CheckboxFormatPropEditorSpec @@ -323,30 +323,30 @@ alpha;ItemField beta;ITwinIdArg public;KeyinParseError internal;KeyinStatus -beta;LengthDescription +beta;LengthDescription internal;linePlaneIntersect(outP: Point3d, linePt: Point3d, lineNormal: Vector3d | undefined, planePt: Point3d, planeNormal: Vector3d, perpendicular: boolean): void alpha;LocalExtensionProps internal;LocalhostIpcApp internal;LocalHostIpcAppOpts -beta;LocalUnitFormatProvider +beta;LocalUnitFormatProvider public;LocateAction public;LocateFilterStatus public;LocateOptions public;LocateResponse internal;LockedStates -public;LookAndMoveTool +public;LookAndMoveTool beta;LookAtArgs -beta;LookAtOrthoArgs -beta;LookAtPerspectiveArgs -beta;LookAtUsingLensAngle -public;LookViewTool +beta;LookAtOrthoArgs +beta;LookAtPerspectiveArgs +beta;LookAtUsingLensAngle +public;LookViewTool internal;LRUTileList internal;LRUTileListNode public;ManipulatorToolEvent -internal;MapBoxLayerImageryProvider -internal;MapCartoRectangle +internal;MapBoxLayerImageryProvider +internal;MapCartoRectangle alpha;MapFeatureInfo -alpha;MapFeatureInfoRecord +alpha;MapFeatureInfoRecord internal;MapLayerAuthenticationInfo beta;MapLayerAuthType internal;MapLayerClassifiers = Map @@ -361,31 +361,31 @@ internal;MapLayerSource internal;MapLayerSources internal;MapLayerSourceStatus internal;MapLayerSourceValidation -internal;class MapLayerTileTreeReference +internal;class MapLayerTileTreeReference internal;MapLayerTokenEndpoint alpha;MapSubLayerFeatureInfo -internal;MapTile -internal;MapTiledGraphicsProvider -internal;MapTileLoader +internal;MapTile +internal;MapTiledGraphicsProvider +internal;MapTileLoader internal;class MapTileProjection -internal;MapTileTree -internal;MapTileTreeReference +internal;MapTileTree +internal;MapTileTreeReference internal;class MapTilingScheme public;MarginOptions public;MarginPercent -public;Marker +public;Marker public;MarkerFillStyle = string | CanvasGradient | CanvasPattern public;MarkerImage = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap public;class MarkerSet public;MarkerTextAlign = "left" | "right" | "center" | "start" | "end" public;MarkerTextBaseline = "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom" -public;MeasureAreaByPointsTool -public;MeasureAreaTool -public;MeasureDistanceTool -public;class MeasureElementTool -public;MeasureLengthTool -public;MeasureLocationTool -public;MeasureVolumeTool +public;MeasureAreaByPointsTool +public;MeasureAreaTool +public;MeasureDistanceTool +public;class MeasureElementTool +public;MeasureLengthTool +public;MeasureLocationTool +public;MeasureVolumeTool public;MessageBoxIconType public;MessageBoxType public;MessageBoxValue @@ -394,40 +394,40 @@ internal;MockRender internal;ModalOptions internal;ModalReturn beta;ModelDisplayTransformProvider -internal;ModelMapLayerTileTreeReference -public;ModelSelectorState -public;ModelState +internal;ModelMapLayerTileTreeReference +public;ModelSelectorState +public;ModelState alpha;ModifyElementSource -internal;MutableChangeFlags +internal;MutableChangeFlags public;NativeApp internal;NativeAppLogger -public;NativeAppOpts +public;NativeAppOpts internal;NoRenderApp public;class NotificationHandler -public;NotificationManager +public;NotificationManager public;NotifyMessageDetails -internal;NullRenderSystem -internal;NullTarget -internal;OffScreenTarget -public;OffScreenViewport +internal;NullRenderSystem +internal;NullTarget +internal;OffScreenTarget +public;OffScreenViewport public;OffScreenViewportOptions internal;OldTextureImage public;OnFlashedIdChangedEventArgs = alpha;OnFrameStatsReadyEvent = BeEvent -internal;OnScreenTarget +internal;OnScreenTarget public;OnViewExtentsError internal;OPCFormatInterpreter beta;openImageDataUrlInNewWindow(url: string, title?: string): void +internal;OrbitGtTileTree internal;OrbitGtTileTree -internal;OrbitGtTileTree -public;OrthographicViewState +public;OrthographicViewState public;OsmBuildingDisplayOptions public;OutputMessageAlert public;OutputMessagePriority public;OutputMessageType public;OverrideFormatEntry internal;overrideRequestTileTreeProps(func: RequestTileTreePropsFunc | undefined): void -public;PanViewTool +public;PanViewTool public;ParseAndRunResult public;ParsedKeyin public;ParseKeyinError @@ -435,12 +435,12 @@ public;ParseKeyinResult = ParsedKeyin | ParseKeyinError public;ParticleCollectionBuilder public;ParticleCollectionBuilder public;ParticleCollectionBuilderParams -public;ParticleProps +public;ParticleProps internal;PatternGraphicParams internal;PerformanceMetrics public;PerModelCategoryVisibility -public;PhysicalModelState -public;PickableGraphicOptions +public;PhysicalModelState +public;PickableGraphicOptions internal;PingTestResult public;Pixel internal;PlanarClassifierMap = Map @@ -449,15 +449,15 @@ beta;PlanarClipMaskState alpha;PlanarGridProps alpha;PlanarGridTransparency internal;PlanarTilePatch -beta;PreferenceArg +beta;PreferenceArg beta;PreferenceKeyArg -public;class PrimitiveTool +public;class PrimitiveTool internal;PrimitiveVisibility alpha;PublisherProductInfo internal;QuadId public;QuantityFormatOverridesChangedArgs public;QuantityFormatsChangedArgs -public;QuantityFormatter +public;QuantityFormatter public;QuantityType public;QuantityTypeArg = QuantityType | string public;QuantityTypeDefinition @@ -473,9 +473,9 @@ public;readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: public;readGltfGraphics(args: ReadGltfGraphicsArgs): Promise public;ReadGltfGraphicsArgs public;ReadImageBufferArgs -internal;ReadonlyTileUserSet +internal;ReadonlyTileUserSet internal;readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): Promise -alpha;RealityDataError +alpha;RealityDataError beta;RealityDataSource beta;RealityDataSource internal;createCesiumIonAssetKey(osmAssetId: number, requestKey: string): RealityDataSourceKey @@ -484,60 +484,60 @@ alpha;createKeyFromOrbitGtBlobProps(orbitGtBlob: OrbitGtBlobProps, inputProvider alpha;createOrbitGtBlobPropsFromKey(rdSourceKey: RealityDataSourceKey): OrbitGtBlobProps | undefined alpha;fromKey(rdSourceKey: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise internal;RealityModelSource = ViewState | DisplayStyleState -internal;RealityModelTileTree +internal;RealityModelTileTree internal;RealityModelTileTree internal;RealityModelTileUtils -internal;RealityTile -internal;RealityTileContent -internal;RealityTileDrawArgs +internal;RealityTile +internal;RealityTileContent +internal;RealityTileDrawArgs alpha;RealityTileGeometry internal;class RealityTileLoader -internal;RealityTileParams +internal;RealityTileParams internal;RealityTileRegion -internal;RealityTileTree -internal;RealityTileTreeParams -internal;RealityTreeReference +internal;RealityTileTree +internal;RealityTileTreeParams +internal;RealityTreeReference internal;RenderAreaPattern = IDisposable & RenderMemory.Consumer public;class RenderClipVolume public;RenderContext internal;RenderDiagnostics internal;RenderGeometry = IDisposable & RenderMemory.Consumer -public;class RenderGraphic -public;class RenderGraphicOwner +public;class RenderGraphic +public;class RenderGraphicOwner internal;RenderMaterialSource internal;RenderMemory internal;RenderPlan -internal;class RenderPlanarClassifier -internal;RenderScheduleState +internal;class RenderPlanarClassifier +internal;RenderScheduleState internal;RenderSkyBoxParams = RenderSkyGradientParams | RenderSkySphereParams | RenderSkyCubeParams internal;RenderSkyCubeParams internal;RenderSkyGradientParams internal;RenderSkySphereParams -public;class RenderSystem +public;class RenderSystem public;RenderSystem beta;RenderSystemDebugControl -internal;class RenderTarget +internal;class RenderTarget internal;RenderTargetDebugControl -internal;class RenderTerrainGeometry -internal;class RenderTextureDrape +internal;class RenderTerrainGeometry +internal;class RenderTextureDrape internal;RequestTileTreePropsFunc = (iModel: IModelConnection, treeId: string) => Promise alpha;ResolveFunc = () => Promise internal;RootIModelTile = Tile & -public;RotateViewTool +public;RotateViewTool alpha;RotationMode internal;RoundOff internal;SavedState public;Scene -public;SceneContext +public;SceneContext internal;SceneVolumeClassifier public;ScreenSpaceEffectBuilder public;ScreenSpaceEffectBuilderParams public;ScreenSpaceEffectContext public;ScreenSpaceEffectSource -public;ScreenViewport -public;ScrollViewTool +public;ScreenViewport +public;ScrollViewTool internal;SectionDrawingInfo -public;SectionDrawingModelState +public;SectionDrawingModelState public;SelectAddEvent internal;SelectedAndReadyTiles public;SelectedViewportChangedArgs @@ -547,50 +547,50 @@ public;SelectionProcessing public;SelectionSet public;SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent public;SelectionSetEventType -public;SelectionTool +public;SelectionTool internal;SelectParent public;SelectRemoveEvent public;SelectReplaceEvent -public;SetupCameraTool -public;SetupWalkCameraTool -public;SheetModelState -public;SheetViewState +public;SetupCameraTool +public;SetupWalkCameraTool +public;SheetModelState +public;SheetViewState internal;ShouldAbortImdlReader = (reader: ImdlReader) => boolean internal;ShouldAbortReadGltf = (reader: GltfReader) => boolean internal;SkyBoxDecorations -public;SnapDetail +public;SnapDetail public;SnapHeat public;SnapMode -public;SnapshotConnection +public;SnapshotConnection public;SnapStatus -internal;class SpatialClassifierTileTreeReference +internal;class SpatialClassifierTileTreeReference alpha;SpatialLocationAndExtents -public;SpatialLocationModelState -public;SpatialModelState -internal;SpatialTileTreeReferences +public;SpatialLocationModelState +public;SpatialModelState +internal;SpatialTileTreeReferences internal;SpatialTileTreeReferences -public;SpatialViewState +public;SpatialViewState public;Sprite -public;SpriteLocation +public;SpriteLocation public;StandardView public;StandardViewId -public;StandardViewTool +public;StandardViewTool public;StartOrResume public;Storage internal;SubCategoriesCache internal;SubCategoriesCache internal;SubCategoriesRequest -beta;SurveyLengthDescription +beta;SurveyLengthDescription internal;SuspendedToolState -internal;class Target +internal;class Target internal;TentativeOrAccuSnap public;TentativePoint internal;TerrainDisplayOverrides internal;class TerrainMeshProvider internal;TerrainTexture -internal;TerrainTileContent -public;TextInputFormatPropEditorSpec -public;TextSelectFormatPropEditorSpec +internal;TerrainTileContent +public;TextInputFormatPropEditorSpec +public;TextSelectFormatPropEditorSpec public;TextureCacheKey = string | Gradient.Symb public;TextureCacheOwnership internal;TextureDrapeMap = Map @@ -631,12 +631,12 @@ public;TileTreeOwner public;TileTreeParams public;class TileTreeReference public;TileTreeSupplier -internal;TileUrlImageryProvider +internal;TileUrlImageryProvider public;TileUsageMarker public;TileUser public;TileUser -internal;TileUserIdSet -internal;TileUserIdSets +internal;TileUserIdSet +internal;TileUserIdSets public;TileVisibility beta;TokenArg public;Tool @@ -651,7 +651,7 @@ public;ToolAssistanceInstructions public;ToolAssistanceKeyboardInfo public;ToolAssistanceSection public;ToolList = ToolType[] -alpha;ToolProvider +alpha;ToolProvider public;ToolRegistry public;ToolSettings internal;ToolSettingsState @@ -659,84 +659,84 @@ internal;ToolState public;ToolTipOptions internal;ToolTipProvider public;ToolType = typeof Tool -internal;TouchCursor +internal;TouchCursor internal;TraversalChildrenDetails internal;TraversalDetails internal;TraversalSelectionContext public;tryImageElementFromUrl(url: string): Promise -public;TwoWayViewportFrustumSync +public;TwoWayViewportFrustumSync public;TwoWayViewportSync public;Uniform -public;UniformArrayParams +public;UniformArrayParams public;UniformContext public;UniformParams public;UniformType internal;UniqueTileUserSets public;UnitFormattingSettingsProvider public;UnitNameKey = string -internal;UpsampledMapTile +internal;UpsampledMapTile beta;UserPreferencesAccess public;VaryingType public;ViewAnimationOptions -public;ViewChangeOptions -public;ViewClipByElementTool -public;ViewClipByPlaneTool -public;ViewClipByRangeTool -public;ViewClipByShapeTool -public;ViewClipClearTool +public;ViewChangeOptions +public;ViewClipByElementTool +public;ViewClipByPlaneTool +public;ViewClipByRangeTool +public;ViewClipByShapeTool +public;ViewClipClearTool internal;ViewClipControlArrow -internal;ViewClipDecoration -public;ViewClipDecorationProvider +internal;ViewClipDecoration +public;ViewClipDecorationProvider public;ViewClipEventHandler -internal;class ViewClipModifyTool -internal;ViewClipPlanesModifyTool -internal;ViewClipShapeModifyTool -public;ViewClipTool +internal;class ViewClipModifyTool +internal;ViewClipPlanesModifyTool +internal;ViewClipShapeModifyTool +public;ViewClipTool public;ViewCreator2d public;ViewCreator2dOptions public;ViewCreator3d public;ViewCreator3dOptions internal;viewGlobalLocation(viewport: ScreenViewport, doAnimate: boolean, eyeHeight?: number, pitchAngleRadians?: number, location?: GlobalLocation): number internal;ViewGlobalLocationConstants -public;ViewGlobeBirdTool -public;ViewGlobeIModelTool -public;ViewGlobeLocationTool -public;ViewGlobeSatelliteTool +public;ViewGlobeBirdTool +public;ViewGlobeIModelTool +public;ViewGlobeLocationTool +public;ViewGlobeSatelliteTool internal;ViewHandleArray internal;ViewHandleType public;ViewingSpace internal;class ViewingToolHandle -public;ViewManager -public;class ViewManip -public;class Viewport +public;ViewManager +public;class ViewManip +public;class Viewport public;ViewportDecorator -public;ViewportGraphicBuilderOptions +public;ViewportGraphicBuilderOptions public;class ViewPose -internal;ViewPose2d -internal;ViewPose3d +internal;ViewPose2d +internal;ViewPose3d public;ViewRect -public;ViewRedoTool -public;class ViewState -public;class ViewState2d -public;class ViewState3d +public;ViewRedoTool +public;class ViewState +public;class ViewState2d +public;class ViewState3d public;ViewStatus -public;ViewToggleCameraTool -public;class ViewTool +public;ViewToggleCameraTool +public;class ViewTool public;ViewUndoEvent -public;ViewUndoTool +public;ViewUndoTool beta;VisibleFeature -public;WalkViewTool +public;WalkViewTool internal;WebMercatorProjection -internal;WebMercatorTilingScheme +internal;WebMercatorTilingScheme internal;WheelEventProcessor -public;WindowAreaTool +public;WindowAreaTool internal;WmsCapabilities internal;WmsCapability internal;WmsCrsSupport -internal;WmsMapLayerImageryProvider +internal;WmsMapLayerImageryProvider internal;WmsUtilities internal;WmtsCapabilities internal;WmtsCapability -internal;WmtsMapLayerImageryProvider +internal;WmtsMapLayerImageryProvider public;ZoomToOptions -public;ZoomViewTool \ No newline at end of file +public;ZoomViewTool \ No newline at end of file From 5fb084f53129dd7aba93fcaf2c6d33d93928216b Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Mon, 28 Feb 2022 15:11:13 -0500 Subject: [PATCH 39/76] remove references to preview tags --- core/common/package.json | 4 ++-- core/frontend/package.json | 4 ++-- tools/build/scripts/utils/validateTags.js | 1 - tools/eslint-plugin/dist/rules/public-extension-exports.js | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index 08224c610a55..5ca9048803d3 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"beta\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" @@ -77,7 +77,7 @@ { "releaseTags": [ "public", - "preview" + "beta" ], "outputApiFile": false } diff --git a/core/frontend/package.json b/core/frontend/package.json index 822ae4bce050..140d0e769a92 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,7 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"beta\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", @@ -126,7 +126,7 @@ { "releaseTags": [ "public", - "preview" + "beta" ] } ] diff --git a/tools/build/scripts/utils/validateTags.js b/tools/build/scripts/utils/validateTags.js index d480f0985265..d9a0cabf0bb5 100644 --- a/tools/build/scripts/utils/validateTags.js +++ b/tools/build/scripts/utils/validateTags.js @@ -28,7 +28,6 @@ const validTags = [ // Following flags are added for internal Extension tooling (public-extension-api) "extensionApi", - "preview", ]; function validateTags(path) { diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 6d6045d8cdb9..9a8df6604f22 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -54,7 +54,7 @@ module.exports = { uniqueItems: true, items: { type: "string", - enum: ["public", "beta", "alpha", "internal", "preview"] + enum: ["public", "beta", "alpha", "internal"] } }, outputApiFile: { From 665727cd9f29ad15630061a353e987749f0a5f54 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Tue, 1 Mar 2022 14:02:33 -0500 Subject: [PATCH 40/76] update approved packages --- .../rush/browser-approved-packages.json | 734 ++++++------------ 1 file changed, 243 insertions(+), 491 deletions(-) diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index 8ca255a1f4c8..37f315e73070 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -4,1227 +4,979 @@ "packages": [ { "name": "@axe-core/react", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@azure/storage-blob", - "allowedCategories": ["backend", "internal"] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/icons-generic", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/icons-generic-webfont", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@bentley/imodelbank-client", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@bentley/imodeljs-native", - "allowedCategories": ["backend", "internal"] + "allowedCategories": [ "backend", "internal" ] }, { "name": "@bentley/react-scripts", - "allowedCategories": ["internal"] - }, - { - "name": "@bentley/telemetry-client", - "allowedCategories": [ "backend", "frontend" ] + "allowedCategories": [ "internal" ] }, { "name": "@bentley/units-schema", - "allowedCategories": ["backend", "common"] + "allowedCategories": [ "backend", "common" ] }, { "name": "@itwin/appui-abstract", - "allowedCategories": [ - "edit", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "edit", "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/appui-layout-react", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/appui-react", - "allowedCategories": ["extensions", "internal"] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "@itwin/backend-webpack-tools", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/browser-authorization", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/build-tools", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/certa", - "allowedCategories": [ - "common", - "edit", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "common", "edit", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/components-react", - "allowedCategories": ["extensions", "frontend", "internal", "tools"] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "@itwin/core-backend", - "allowedCategories": [ - "backend", - "common", - "edit", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-bentley", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-common", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-electron", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-extension", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-frontend", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-geometry", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/core-i18n", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-markup", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-mobile", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-orbitgt", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/core-quantity", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal" ] }, { "name": "@itwin/core-react", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/core-telemetry", - "allowedCategories": ["backend", "frontend"] + "allowedCategories": [ "backend", "frontend" ] }, { "name": "@itwin/core-transformer", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/core-webpack-tools", - "allowedCategories": ["internal", "tools"] + "allowedCategories": [ "internal", "tools" ] }, { "name": "@itwin/ecschema-locaters", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "@itwin/ecschema-metadata", - "allowedCategories": [ - "backend", - "common", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/ecschema-rpcinterface-common", - "allowedCategories": ["backend", "integration-testing", "internal"] + "allowedCategories": [ "backend", "integration-testing", "internal" ] }, { "name": "@itwin/ecschema-rpcinterface-impl", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/editor-backend", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/editor-common", - "allowedCategories": ["edit", "internal"] + "allowedCategories": [ "edit", "internal" ] }, { "name": "@itwin/editor-frontend", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/electron-authorization", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/eslint-plugin", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/express-server", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/frontend-devtools", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/hypermodeling-frontend", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/imodel-components-react", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/imodels-access-backend", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/imodels-access-frontend", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/imodels-client-authoring", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/imodels-client-management", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/itwinui-css", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/itwinui-react", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@itwin/linear-referencing-common", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "@itwin/map-layers", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/oidc-signin-tool", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/perf-tools", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/presentation-backend", - "allowedCategories": ["integration-testing", "internal", "tools"] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-common", - "allowedCategories": [ - "backend", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-components", - "allowedCategories": ["frontend", "internal", "tools"] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "@itwin/presentation-frontend", - "allowedCategories": [ - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "frontend", "integration-testing", "internal", "tools" ] }, { "name": "@itwin/presentation-testing", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@itwin/projects-client", - "allowedCategories": ["common", "integration-testing", "internal"] + "allowedCategories": [ "common", "integration-testing", "internal" ] }, { "name": "@itwin/reality-data-client", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/service-authorization", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "@itwin/ui-items-providers-test", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@itwin/webgl-compatibility", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "@loaders.gl/core", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "@loaders.gl/draco", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "@microsoft/api-extractor", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "@openid/appauth", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "@reduxjs/toolkit", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "@svgdotjs/svg.js", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "@testing-library/react", - "allowedCategories": ["extensions", "frontend"] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@testing-library/react-hooks", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "@testing-library/user-event", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "@typescript-eslint/eslint-plugin", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/parser", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "@typescript-eslint/typescript-estree", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "@ungap/url-search-params", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "@wojtekmaj/enzyme-adapter-react-17", - "allowedCategories": ["extensions", "frontend"] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "@xmldom/xmldom", - "allowedCategories": ["backend", "common", "tools"] + "allowedCategories": [ "backend", "common", "tools" ] }, { "name": "agentkeepalive", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "almost-equal", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "autoprefixer", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "azurite", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "benchmark", - "allowedCategories": ["backend", "common"] + "allowedCategories": [ "backend", "common" ] }, { "name": "body-parser", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "buffer", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "cache-require-paths", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "callable-instance2", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "case-sensitive-paths-webpack-plugin", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "chai", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-as-promised", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "chai-jest-snapshot", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "chai-spies", - "allowedCategories": ["extensions", "frontend"] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "chai-string", - "allowedCategories": ["frontend", "tools"] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "chai-subset", - "allowedCategories": ["backend", "common", "frontend", "internal"] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "chalk", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "child_process", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "chrome-launcher", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "classnames", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "commander", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "concurrently", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "copy-webpack-plugin", - "allowedCategories": ["tools"] - }, - { - "name": "cpx", - "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] + "allowedCategories": [ "tools" ] }, { "name": "cpx2", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "cross-env", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "cross-spawn", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "debug", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "deep-assign", - "allowedCategories": ["backend", "common", "frontend"] + "allowedCategories": [ "backend", "common", "frontend" ] }, { "name": "deep-equal", - "allowedCategories": ["backend", "common", "frontend", "internal"] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "detect-port", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "dompurify", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "dotenv", - "allowedCategories": ["backend", "integration-testing", "internal"] + "allowedCategories": [ "backend", "integration-testing", "internal" ] }, { "name": "dotenv-expand", - "allowedCategories": ["backend", "integration-testing", "internal"] + "allowedCategories": [ "backend", "integration-testing", "internal" ] }, { "name": "electron", - "allowedCategories": ["backend", "internal", "tools"] + "allowedCategories": [ "backend", "internal", "tools" ] }, { "name": "enzyme", - "allowedCategories": ["extensions", "frontend"] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "enzyme-to-json", - "allowedCategories": ["extensions", "frontend"] + "allowedCategories": [ "extensions", "frontend" ] }, { "name": "esbuild", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "eslint", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "eslint-import-resolver-node", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-import-resolver-typescript", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-deprecation", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-import", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jam3", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsdoc", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-jsx-a11y", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-prefer-arrow", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eslint-plugin-react-hooks", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "eventemitter2", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "express", - "allowedCategories": ["backend", "internal", "tools"] + "allowedCategories": [ "backend", "internal", "tools" ] }, { "name": "express-ws", - "allowedCategories": ["backend", "internal"] - }, - { - "name": "extension-prototype", - "allowedCategories": [ "internal" ] + "allowedCategories": [ "backend", "internal" ] }, { "name": "faker", - "allowedCategories": [ - "backend", - "common", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "frontend", "internal", "tools" ] }, { "name": "fast-deep-equal", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "fast-sort", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "file-loader", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "file-saver", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "findup", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "flatbuffers", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "form-data", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "fs-extra", - "allowedCategories": ["backend", "common", "internal", "tools"] + "allowedCategories": [ "backend", "common", "internal", "tools" ] }, { "name": "fs-write-stream-atomic", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "fuse.js", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "glob", - "allowedCategories": ["backend", "frontend", "internal", "tools"] + "allowedCategories": [ "backend", "frontend", "internal", "tools" ] }, { "name": "got", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "i18next", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-browser-languagedetector", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-http-backend", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "i18next-xhr-backend", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "ignore-styles", - "allowedCategories": ["frontend", "internal", "tools"] + "allowedCategories": [ "frontend", "internal", "tools" ] }, { "name": "immer", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "immutable", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "inspire-tree", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "internal-tools", - "allowedCategories": ["backend", "integration-testing", "internal"] + "allowedCategories": [ "backend", "integration-testing", "internal" ] }, { "name": "istanbul-instrumenter-loader", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "js-base64", - "allowedCategories": ["backend", "common"] + "allowedCategories": [ "backend", "common" ] }, { "name": "jsdom", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "jsdom-global", - "allowedCategories": ["extensions", "frontend", "internal", "tools"] + "allowedCategories": [ "extensions", "frontend", "internal", "tools" ] }, { "name": "json-schema-faker", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "json5", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "jsonc-parser", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "linkify-it", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "lodash", - "allowedCategories": ["backend", "common", "frontend", "tools"] + "allowedCategories": [ "backend", "common", "frontend", "tools" ] }, { "name": "lolex", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "lorem-ipsum", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "make-dir", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "memfs", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "micro-memoize", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "mkdirp", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "mocha", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "mocha-junit-reporter", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "multiparty", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "nock", - "allowedCategories": ["common", "internal"] + "allowedCategories": [ "common", "internal" ] }, { "name": "nodemon", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "npm-run-all", - "allowedCategories": [ - "backend", - "frontend", - "integration-testing", - "internal" - ] + "allowedCategories": [ "backend", "frontend", "integration-testing", "internal" ] }, { "name": "null-loader", - "allowedCategories": ["integration-testing", "internal", "tools"] + "allowedCategories": [ "integration-testing", "internal", "tools" ] }, { "name": "nyc", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "object-hash", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "open", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "openid-client", - "allowedCategories": ["integration-testing"] + "allowedCategories": [ "integration-testing" ] }, { "name": "postcss-flexbugs-fixes", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "postcss-loader", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "proper-lockfile", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "puppeteer", - "allowedCategories": ["integration-testing", "tools"] + "allowedCategories": [ "integration-testing", "tools" ] }, { "name": "qs", - "allowedCategories": ["backend", "common", "frontend"] + "allowedCategories": [ "backend", "common", "frontend" ] }, { "name": "raf", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-autosuggest", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-beautiful-dnd", - "allowedCategories": ["extensions", "internal"] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-data-grid", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-html5-backend", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-backend", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-dnd-test-utils", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-dom", - "allowedCategories": ["extensions", "frontend", "internal"] + "allowedCategories": [ "extensions", "frontend", "internal" ] }, { "name": "react-dom-instance", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-highlight-words", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-redux", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-resize-detector", - "allowedCategories": ["extensions", "internal"] + "allowedCategories": [ "extensions", "internal" ] }, { "name": "react-select", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-select-event", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "react-table", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "react-test-renderer", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "react-window", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "readline", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "recursive-readdir", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "redux", - "allowedCategories": ["frontend", "internal"] + "allowedCategories": [ "frontend", "internal" ] }, { "name": "require-dir", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "resize-observer-polyfill", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "resolve", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "rimraf", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "rxjs", - "allowedCategories": ["frontend"] - }, - { - "name": "save", - "allowedCategories": [ "internal" ] + "allowedCategories": [ "frontend" ] }, { "name": "semver", - "allowedCategories": ["backend", "common", "frontend", "internal"] + "allowedCategories": [ "backend", "common", "frontend", "internal" ] }, { "name": "shortid", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "sinon", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "sinon-chai", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "source-map-loader", - "allowedCategories": [ - "common", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "source-map-support", - "allowedCategories": ["frontend", "tools"] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "spdy", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "superagent", - "allowedCategories": ["backend", "common", "frontend"] + "allowedCategories": [ "backend", "common", "frontend" ] }, { "name": "supertest", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "symlink-dir", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "tree-kill", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "ts-key-enum", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "ts-node", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "typedoc", - "allowedCategories": ["tools"] - }, - { - "name": "typedoc-plugin-external-module-name", - "allowedCategories": [ "tools" ] - }, - { - "name": "typedoc-plugin-internal-external", "allowedCategories": [ "tools" ] }, { "name": "typedoc-plugin-merge-modules", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "typemoq", - "allowedCategories": [ - "backend", - "common", - "extensions", - "frontend", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "extensions", "frontend", "internal", "tools" ] }, { "name": "typescript", - "allowedCategories": [ - "backend", - "common", - "edit", - "extensions", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "backend", "common", "edit", "extensions", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "typescript-json-schema", - "allowedCategories": ["common"] + "allowedCategories": [ "common" ] }, { "name": "url", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "username", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "uuid", - "allowedCategories": ["frontend", "tools"] + "allowedCategories": [ "frontend", "tools" ] }, { "name": "webpack", - "allowedCategories": [ - "common", - "frontend", - "integration-testing", - "internal", - "tools" - ] + "allowedCategories": [ "common", "frontend", "integration-testing", "internal", "tools" ] }, { "name": "webpack-cli", - "allowedCategories": ["integration-testing", "internal"] + "allowedCategories": [ "integration-testing", "internal" ] }, { "name": "webpack-core", - "allowedCategories": ["internal"] + "allowedCategories": [ "internal" ] }, { "name": "webpack-filter-warnings-plugin", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "webpack-sources", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "wms-capabilities", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "ws", - "allowedCategories": ["backend"] + "allowedCategories": [ "backend" ] }, { "name": "wtfnode", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "xml-js", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "xmlhttprequest", - "allowedCategories": ["frontend"] + "allowedCategories": [ "frontend" ] }, { "name": "yargonaut", - "allowedCategories": ["tools"] + "allowedCategories": [ "tools" ] }, { "name": "yargs", - "allowedCategories": ["backend", "common", "internal", "tools"] + "allowedCategories": [ "backend", "common", "internal", "tools" ] } ] } From 0427325f4759853858df293e6f67face133e4933 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Tue, 1 Mar 2022 14:25:42 -0500 Subject: [PATCH 41/76] rename extensionApi tag extensions --- core/common/src/AnalysisStyle.ts | 6 +- core/common/src/BackgroundMapProvider.ts | 4 +- core/common/src/BackgroundMapSettings.ts | 8 +-- core/common/src/Base64EncodedString.ts | 2 +- core/common/src/BriefcaseTypes.ts | 10 +-- core/common/src/Camera.ts | 2 +- core/common/src/ChangedElements.ts | 4 +- core/common/src/ChangedEntities.ts | 6 +- core/common/src/ChangesetProps.ts | 14 ++-- core/common/src/ClipStyle.ts | 4 +- core/common/src/Code.ts | 6 +- core/common/src/ColorByName.ts | 2 +- core/common/src/ColorDef.ts | 4 +- core/common/src/CommonLoggerCategory.ts | 2 +- core/common/src/ConcurrentQuery.ts | 10 +-- core/common/src/ContextRealityModel.ts | 4 +- core/common/src/DisplayStyleSettings.ts | 20 +++--- core/common/src/ECSqlTypes.ts | 12 ++-- core/common/src/ElementProps.ts | 68 +++++++++---------- core/common/src/EmphasizeElementsProps.ts | 6 +- core/common/src/EntityProps.ts | 8 +-- core/common/src/Environment.ts | 2 +- core/common/src/FeatureSymbology.ts | 6 +- core/common/src/FeatureTable.ts | 2 +- core/common/src/Fonts.ts | 6 +- core/common/src/Frustum.ts | 2 +- core/common/src/GeoCoordinateServices.ts | 2 +- core/common/src/GeometryContainment.ts | 4 +- core/common/src/GeometryParams.ts | 6 +- core/common/src/GeometrySummary.ts | 6 +- core/common/src/GraphicParams.ts | 2 +- core/common/src/GroundPlane.ts | 2 +- core/common/src/HSVColor.ts | 2 +- core/common/src/IModel.ts | 6 +- core/common/src/Image.ts | 4 +- core/common/src/IpcAppProps.ts | 2 +- core/common/src/LightSettings.ts | 10 +-- core/common/src/LinePixels.ts | 2 +- core/common/src/Localization.ts | 2 +- core/common/src/MassProperties.ts | 6 +- core/common/src/MaterialProps.ts | 12 ++-- core/common/src/ModelClipGroup.ts | 2 +- core/common/src/ModelGeometryChanges.ts | 12 ++-- core/common/src/ModelProps.ts | 12 ++-- core/common/src/PlanProjectionSettings.ts | 2 +- core/common/src/PlanarClipMask.ts | 6 +- core/common/src/RgbColor.ts | 2 +- core/common/src/SessionProps.ts | 2 +- core/common/src/SkyBox.ts | 8 +-- core/common/src/SolarShadows.ts | 2 +- core/common/src/SpatialClassification.ts | 10 +-- core/common/src/TerrainSettings.ts | 6 +- core/common/src/TextureProps.ts | 6 +- core/common/src/ThematicDisplay.ts | 14 ++-- core/common/src/Thumbnail.ts | 4 +- core/common/src/TileProps.ts | 2 +- core/common/src/Tween.ts | 8 +-- core/common/src/TxnAction.ts | 2 +- core/common/src/ViewDetails.ts | 6 +- core/common/src/ViewFlags.ts | 8 +-- core/common/src/ViewProps.ts | 26 +++---- .../src/WhiteOnWhiteReversalSettings.ts | 2 +- .../src/domains/FunctionalElementProps.ts | 2 +- .../common/src/domains/GenericElementProps.ts | 4 +- .../src/geometry/AdditionalTransform.ts | 4 +- core/common/src/geometry/Cartographic.ts | 2 +- .../src/geometry/CoordinateReferenceSystem.ts | 10 +-- core/common/src/geometry/ElementGeometry.ts | 4 +- core/common/src/geometry/GeodeticDatum.ts | 20 +++--- core/common/src/geometry/GeodeticEllipsoid.ts | 2 +- core/common/src/geometry/GeometryStream.ts | 30 ++++---- core/common/src/geometry/ImageGraphic.ts | 4 +- core/common/src/geometry/Placement.ts | 12 ++-- core/common/src/geometry/Projection.ts | 12 ++-- core/common/src/geometry/TextString.ts | 2 +- core/common/src/ipc/IpcSocket.ts | 2 +- core/common/src/rpc/core/RpcInvocation.ts | 2 +- core/common/src/tile/ElementGraphics.ts | 16 ++--- core/frontend/src/AccuDraw.ts | 4 +- core/frontend/src/AccuSnap.ts | 2 +- core/frontend/src/AuxCoordSys.ts | 12 ++-- core/frontend/src/BingLocation.ts | 2 +- core/frontend/src/CategorySelectorState.ts | 2 +- core/frontend/src/ChangeFlags.ts | 2 +- core/frontend/src/ContextRealityModelState.ts | 2 +- core/frontend/src/CoordSystem.ts | 2 +- core/frontend/src/DisplayStyleState.ts | 8 +-- core/frontend/src/DrawingViewState.ts | 2 +- core/frontend/src/ElementLocateManager.ts | 16 ++--- core/frontend/src/EmphasizeElements.ts | 2 +- core/frontend/src/EntityState.ts | 4 +- core/frontend/src/FeatureOverrideProvider.ts | 2 +- core/frontend/src/FlashSettings.ts | 6 +- core/frontend/src/FrontendHubAccess.ts | 2 +- core/frontend/src/FrontendLoggerCategory.ts | 2 +- core/frontend/src/FrustumAnimator.ts | 2 +- core/frontend/src/FuzzySearch.ts | 2 +- core/frontend/src/GlobeAnimator.ts | 2 +- core/frontend/src/HitDetail.ts | 22 +++--- core/frontend/src/IModelApp.ts | 2 +- core/frontend/src/IModelConnection.ts | 2 +- core/frontend/src/ImageUtil.ts | 22 +++--- core/frontend/src/IpcApp.ts | 2 +- core/frontend/src/MarginPercent.ts | 2 +- core/frontend/src/Marker.ts | 14 ++-- core/frontend/src/ModelSelectorState.ts | 2 +- core/frontend/src/ModelState.ts | 20 +++--- core/frontend/src/NotificationManager.ts | 22 +++--- .../src/PerModelCategoryVisibility.ts | 2 +- core/frontend/src/SelectionSet.ts | 14 ++-- core/frontend/src/SheetViewState.ts | 2 +- core/frontend/src/SpatialViewState.ts | 4 +- core/frontend/src/Sprites.ts | 6 +- core/frontend/src/StandardView.ts | 2 +- core/frontend/src/TentativePoint.ts | 2 +- core/frontend/src/Tiles.ts | 2 +- core/frontend/src/ViewAnimation.ts | 12 ++-- core/frontend/src/ViewCreator2d.ts | 4 +- core/frontend/src/ViewCreator3d.ts | 4 +- core/frontend/src/ViewGlobalLocation.ts | 6 +- core/frontend/src/ViewManager.ts | 6 +- core/frontend/src/ViewPose.ts | 2 +- core/frontend/src/ViewRect.ts | 2 +- core/frontend/src/ViewState.ts | 8 +-- core/frontend/src/ViewStatus.ts | 2 +- core/frontend/src/ViewingSpace.ts | 2 +- .../src/extension/ExtensionRuntime.ts | 4 +- core/frontend/src/render/CanvasDecoration.ts | 4 +- core/frontend/src/render/Decorations.ts | 2 +- core/frontend/src/render/FeatureSymbology.ts | 2 +- core/frontend/src/render/GraphicBranch.ts | 4 +- core/frontend/src/render/GraphicBuilder.ts | 16 ++--- core/frontend/src/render/GraphicPrimitive.ts | 28 ++++---- .../src/render/ParticleCollectionBuilder.ts | 6 +- core/frontend/src/render/Pixel.ts | 2 +- core/frontend/src/render/RenderClipVolume.ts | 2 +- core/frontend/src/render/RenderGraphic.ts | 6 +- core/frontend/src/render/RenderSystem.ts | 2 +- core/frontend/src/render/RenderTexture.ts | 14 ++-- core/frontend/src/render/Scene.ts | 2 +- .../src/render/ScreenSpaceEffectBuilder.ts | 20 +++--- .../frontend/src/tile/DisclosedTileTreeSet.ts | 4 +- core/frontend/src/tile/ImdlReader.ts | 2 +- core/frontend/src/tile/Tile.ts | 10 +-- core/frontend/src/tile/TileAdmin.ts | 6 +- core/frontend/src/tile/TileContent.ts | 2 +- core/frontend/src/tile/TileDrawArgs.ts | 4 +- core/frontend/src/tile/TileParams.ts | 2 +- core/frontend/src/tile/TileRequest.ts | 2 +- core/frontend/src/tile/TileRequestChannel.ts | 4 +- core/frontend/src/tile/TileRequestChannels.ts | 2 +- core/frontend/src/tile/TileTree.ts | 4 +- core/frontend/src/tile/TileTreeOwner.ts | 2 +- core/frontend/src/tile/TileTreeParams.ts | 2 +- core/frontend/src/tile/TileTreeReference.ts | 4 +- core/frontend/src/tile/TileTreeSupplier.ts | 2 +- core/frontend/src/tile/TileUsageMarker.ts | 2 +- .../src/tile/TiledGraphicsProvider.ts | 2 +- core/frontend/src/tile/map/BingElevation.ts | 2 +- core/frontend/src/tools/ClipViewTool.ts | 4 +- core/frontend/src/tools/EditManipulator.ts | 2 +- core/frontend/src/tools/EventController.ts | 2 +- core/frontend/src/tools/PrimitiveTool.ts | 2 +- core/frontend/src/tools/SelectTool.ts | 6 +- core/frontend/src/tools/Tool.ts | 46 ++++++------- core/frontend/src/tools/ToolAdmin.ts | 6 +- core/frontend/src/tools/ToolAssistance.ts | 14 ++-- core/frontend/src/tools/ToolSettings.ts | 2 +- core/frontend/src/tools/ViewTool.ts | 4 +- tools/build/scripts/utils/validateTags.js | 2 +- .../dist/rules/public-extension-exports.js | 4 +- 171 files changed, 547 insertions(+), 547 deletions(-) diff --git a/core/common/src/AnalysisStyle.ts b/core/common/src/AnalysisStyle.ts index 03e05f28accf..16f6aca75c24 100644 --- a/core/common/src/AnalysisStyle.ts +++ b/core/common/src/AnalysisStyle.ts @@ -13,7 +13,7 @@ import { Gradient } from "./Gradient"; /** JSON representation of an [[AnalysisStyleDisplacement]]. * @see [[AnalysisStyleProps.displacement]]. * @public - * @extensionApi + * @extensions */ export interface AnalysisStyleDisplacementProps { /** @see [[AnalysisStyleDisplacement.channelName]]. */ @@ -65,7 +65,7 @@ export class AnalysisStyleDisplacement { /** JSON representation of an [[AnalysisStyleThematic]]. * @see [[AnalysisStyleProps.scalar]]. * @public - * @extensionApi + * @extensions */ export interface AnalysisStyleThematicProps { /** @see [[AnalysisStyleThematic.channelName]]. */ @@ -136,7 +136,7 @@ export class AnalysisStyleThematic { /** JSON representation of an [[AnalysisStyle]]. * @public - * @extensionApi + * @extensions */ export interface AnalysisStyleProps { /** @see [[AnalysisStyle.displacement]]. */ diff --git a/core/common/src/BackgroundMapProvider.ts b/core/common/src/BackgroundMapProvider.ts index 494cddadfc62..97e422c9c77a 100644 --- a/core/common/src/BackgroundMapProvider.ts +++ b/core/common/src/BackgroundMapProvider.ts @@ -10,7 +10,7 @@ import { DeprecatedBackgroundMapProps } from "./BackgroundMapSettings"; /** Enumerates the types of map imagery that can be supplied by a [[BackgroundMapProvider]]. * @public - * @extensionApi + * @extensions */ export enum BackgroundMapType { Street = 1, @@ -21,7 +21,7 @@ export enum BackgroundMapType { /** Enumerates a set of supported [[BackgroundMapProvider]]s that can provide map imagery. * @note To access imagery from such a provider, an API key must be supplied via [IModelAppOptions.mapLayerOptions]($frontend). * @public - * @extensionApi + * @extensions */ export type BackgroundMapProviderName = "BingProvider" | "MapBoxProvider"; diff --git a/core/common/src/BackgroundMapSettings.ts b/core/common/src/BackgroundMapSettings.ts index 94b79e238d7b..b1a8d2941931 100644 --- a/core/common/src/BackgroundMapSettings.ts +++ b/core/common/src/BackgroundMapSettings.ts @@ -14,7 +14,7 @@ import { TerrainProps, TerrainSettings } from "./TerrainSettings"; * @see [[BackgroundMapProps]] * @see [[DisplayStyleSettingsProps]] * @public - * @extensionApi + * @extensions */ export enum GlobeMode { /** Display Earth as 3d ellipsoid */ @@ -26,7 +26,7 @@ export enum GlobeMode { /** In-memory JSON representation of a [[BackgroundMapSettings]]. * @see [[PersistentBackgroundMapProps]] for the persistent JSON representation. * @public - * @extensionApi + * @extensions */ export interface BackgroundMapProps { /** The elevation of the map in meters relative the WGS84 ellipsoid. Default value: 0. */ @@ -62,7 +62,7 @@ export interface BackgroundMapProps { * These properties are omitted from [[BackgroundMapProps]] as they are no longer part of the API, but are included in * [[PersistentBackgroundMapProps]] because they remain part of the persistence format. * @public - * @extensionApi + * @extensions */ export interface DeprecatedBackgroundMapProps { /** Identifies the source of the map tiles. Currently supported providers are "BingProvider" and "MapBoxProvider". @@ -81,7 +81,7 @@ export interface DeprecatedBackgroundMapProps { /** Persistent JSON representation of a [[BackgroundMapSettings]]. * @public - * @extensionApi + * @extensions */ export type PersistentBackgroundMapProps = Omit & DeprecatedBackgroundMapProps; diff --git a/core/common/src/Base64EncodedString.ts b/core/common/src/Base64EncodedString.ts index f36f73d1cc6d..c87bab27b682 100644 --- a/core/common/src/Base64EncodedString.ts +++ b/core/common/src/Base64EncodedString.ts @@ -11,7 +11,7 @@ import { Base64 } from "js-base64"; /** Represents an array of bytes encoded in base-64 with a prefix indicating the encoding, as required when converting EC properties of `binary` type to and from JSON. * @see [[TextureProps.data]] and [[BRepEntity.DataProps.data]] for examples of properties of this type. * @public - * @extensionApi + * @extensions */ export type Base64EncodedString = string; diff --git a/core/common/src/BriefcaseTypes.ts b/core/common/src/BriefcaseTypes.ts index e053d6087c75..03cd4ca61838 100644 --- a/core/common/src/BriefcaseTypes.ts +++ b/core/common/src/BriefcaseTypes.ts @@ -13,13 +13,13 @@ import { IModelVersionProps } from "./IModelVersion"; /** The Id assigned to a briefcase by iModelHub, or [[BriefcaseIdValue.Unassigned]] . * @public - * @extensionApi + * @extensions */ export type BriefcaseId = number; /** Values of [[BriefcaseId]] that have special meaning. * @public - * @extensionApi + * @extensions */ export enum BriefcaseIdValue { /** Indicates an invalid/illegal BriefcaseId */ @@ -50,7 +50,7 @@ export enum BriefcaseIdValue { /** Whether a briefcase is editable or may only accept incoming changesets from iModelHub * @public - * @extensionApi + * @extensions */ export enum SyncMode { /** Use a fixed version (i.e. a checkpoint). See [CheckpointManager]($backend) for preferred approach to using checkpoint files. */ @@ -95,7 +95,7 @@ export interface OpenBriefcaseProps extends IModelEncryptionProps, OpenDbKey { /** Properties of a local briefcase file, returned by [BriefcaseManager.getCachedBriefcases]($backend) and [BriefcaseManager.downloadBriefcase]($backend) * @public - * @extensionApi + * @extensions */ export interface LocalBriefcaseProps { /** Full path of local file. */ @@ -121,7 +121,7 @@ export interface LocalBriefcaseProps { /** Properties for downloading a briefcase to a local file, from iModelHub. * @public - * @extensionApi + * @extensions */ export interface RequestNewBriefcaseProps { /** iTwin that the iModel belongs to. */ diff --git a/core/common/src/Camera.ts b/core/common/src/Camera.ts index f5a0151299f2..43af13373eec 100644 --- a/core/common/src/Camera.ts +++ b/core/common/src/Camera.ts @@ -11,7 +11,7 @@ import { Angle, AngleProps, Point3d, XYAndZ, XYZProps } from "@itwin/core-geomet /** JSON representation of a [[Camera]]. * @public - * @extensionApi + * @extensions */ export interface CameraProps { lens: AngleProps; diff --git a/core/common/src/ChangedElements.ts b/core/common/src/ChangedElements.ts index e106996d947e..c7a32f4de863 100644 --- a/core/common/src/ChangedElements.ts +++ b/core/common/src/ChangedElements.ts @@ -13,7 +13,7 @@ import { AxisAlignedBox3dProps } from "./geometry/Placement"; /** Bitflags describing which aspects of an [Element]($backend) changed as part of a [[ChangedElements]]. * @public - * @extensionApi + * @extensions */ export enum TypeOfChange { /** A property in the element changed */ @@ -33,7 +33,7 @@ export enum TypeOfChange { * Each index for those arrays refer to the same element, e.g. to get the class Id of * the element given by element Id changedElements.elements[index], you can use changedElements.classIds[index]. * @public - * @extensionApi + * @extensions */ export interface ChangedElements { /** Ids of elements that changed */ diff --git a/core/common/src/ChangedEntities.ts b/core/common/src/ChangedEntities.ts index b7004255e5ae..2f94ba23c24a 100644 --- a/core/common/src/ChangedEntities.ts +++ b/core/common/src/ChangedEntities.ts @@ -10,7 +10,7 @@ import { CompressedId64Set, Id64String } from "@itwin/core-bentley"; /** Describes an [Entity]($backend) and its [ECClass]($docs/bis/intro/glossary/#ecclass) by Id. * @public - * @extensionApi + * @extensions */ export interface EntityIdAndClassId { /** The entity's Id. */ @@ -23,7 +23,7 @@ export interface EntityIdAndClassId { * @see [TxnManager.onElementsChanged]($backend) and [TxnManager.onModelsChanged]($backend). * @see [BriefcaseTxns.onElementsChanged]($frontend) and [BriefcaseTxns.onModelsChanged]($frontend). * @public - * @extensionApi + * @extensions */ export interface ChangedEntities { /** The ids of entities that were inserted during the Txn. */ @@ -48,6 +48,6 @@ export interface ChangedEntities { * } * ``` * @public - * @extensionApi + * @extensions */ export type EntityIdAndClassIdIterable = Iterable>; diff --git a/core/common/src/ChangesetProps.ts b/core/common/src/ChangesetProps.ts index 710eeef72464..8254471dbe14 100644 --- a/core/common/src/ChangesetProps.ts +++ b/core/common/src/ChangesetProps.ts @@ -15,38 +15,38 @@ export type LocalDirName = string; /** A string that identifies a changeset. * @note this string is *not* a Guid. It is generated internally based on the content of the changeset. * @public - * @extensionApi + * @extensions */ export type ChangesetId = string; /** The index of a changeset, assigned by iModelHub. * @note 0 means "before the first changeset." Values less than 0 are invalid. * @public - * @extensionApi + * @extensions */ export type ChangesetIndex = number; /** Both the index and Id of a changeset * @public - * @extensionApi + * @extensions */ export interface ChangesetIndexAndId { readonly index: ChangesetIndex, readonly id: ChangesetId } /** The Id and optionally the index of a changeset * @public - * @extensionApi + * @extensions */ export interface ChangesetIdWithIndex { readonly index?: ChangesetIndex, readonly id: ChangesetId } /** either changeset index, id, or both * @public - * @extensionApi + * @extensions */ export type ChangesetIndexOrId = ChangesetIndexAndId | { readonly index: ChangesetIndex, readonly id?: never } | { readonly id: ChangesetId, readonly index?: never }; /** Value to indicate whether a changeset contains schema changes or not * @public - * @extensionApi + * @extensions */ export enum ChangesetType { /** changeset does *not* contain schema changes. */ @@ -90,7 +90,7 @@ export interface ChangesetFileProps extends ChangesetProps { /** * A range of changesets * @public - * @extensionApi + * @extensions */ export interface ChangesetRange { /** index of the first changeset */ diff --git a/core/common/src/ClipStyle.ts b/core/common/src/ClipStyle.ts index 2c5a6319874b..106516c96639 100644 --- a/core/common/src/ClipStyle.ts +++ b/core/common/src/ClipStyle.ts @@ -15,7 +15,7 @@ import { FeatureAppearance, FeatureAppearanceProps } from "./FeatureSymbology"; /** Wire format describing a [[CutStyle]] applied to section-cut geometry produced at intersections with a view's [ClipVector]($core-geometry). * @see [[ClipStyleProps.cutStyle]]. * @public - * @extensionApi + * @extensions */ export interface CutStyleProps { /** If defined, overrides aspects of the view's [[ViewFlags]] when drawing the cut geometry. */ @@ -100,7 +100,7 @@ export class CutStyle { /** Wire format describing a [[ClipStyle]]. * @see [[DisplayStyleSettingsProps.clipStyle]]. * @public - * @extensionApi + * @extensions */ export interface ClipStyleProps { /** If `true`, geometry will be produced at the clip planes in a 3d view. diff --git a/core/common/src/Code.ts b/core/common/src/Code.ts index 5842dc0fedfd..d37bfe2afc97 100644 --- a/core/common/src/Code.ts +++ b/core/common/src/Code.ts @@ -11,13 +11,13 @@ import { IModel } from "./IModel"; /** The props that hold the identity of the object defining the uniqueness scope for a set of Code values. * @public - * @extensionApi + * @extensions */ export type CodeScopeProps = Id64String | GuidString; /** The wire format for a Code * @public - * @extensionApi + * @extensions */ export interface CodeProps { spec: Id64String; @@ -64,7 +64,7 @@ export class Code implements CodeProps { /** Names of the internal BIS CodeSpecs. These names match those specified by the native library. * For other domains, the best practice is to include the domain name or alias as part of the CodeSpec name to ensure global uniqueness. * @public - * @extensionApi + * @extensions * @see [CodeSpec]($docs/bis/intro/codes.md#codespec) */ export enum BisCodeSpec { diff --git a/core/common/src/ColorByName.ts b/core/common/src/ColorByName.ts index 173ead2d1761..559e8e7aca1f 100644 --- a/core/common/src/ColorByName.ts +++ b/core/common/src/ColorByName.ts @@ -11,7 +11,7 @@ * This is different than color values in #RRGGBB format for HTML pages (red and blue are swapped). * @note If your colors don't look right, likely you're using 0xRRGGBB where ColorDef expects 0xBBGGRR. * @public - * @extensionApi + * @extensions */ export enum ColorByName { aliceBlue = 0xFFF8F0, diff --git a/core/common/src/ColorDef.ts b/core/common/src/ColorDef.ts index b94034e1f87d..551ee0b79fd9 100644 --- a/core/common/src/ColorDef.ts +++ b/core/common/src/ColorDef.ts @@ -20,7 +20,7 @@ const scratchUInt32 = new Uint32Array(scratchBytes.buffer); /** An unsigned 32-bit integer in 0xTTBBGGRR format * @public - * @extensionApi + * @extensions */ export type ColorDefProps = number; @@ -43,7 +43,7 @@ export type ColorDefProps = number; * const semiTransparentBlue = ColorDef.blue.withTransparency(100); * ``` * @public - * @extensionApi REAL + * @extensions REAL */ export class ColorDef { private readonly _tbgr: number; diff --git a/core/common/src/CommonLoggerCategory.ts b/core/common/src/CommonLoggerCategory.ts index 299cb4dedc9e..c0ac56f17fc8 100644 --- a/core/common/src/CommonLoggerCategory.ts +++ b/core/common/src/CommonLoggerCategory.ts @@ -9,7 +9,7 @@ /** Logger categories used by this package * @see [Logger]($bentley) * @public - * @extensionApi + * @extensions */ export enum CommonLoggerCategory { /** The logger category used by common classes relating to ElementProps. */ diff --git a/core/common/src/ConcurrentQuery.ts b/core/common/src/ConcurrentQuery.ts index 15fb8c23ae7e..3c505564c2ee 100644 --- a/core/common/src/ConcurrentQuery.ts +++ b/core/common/src/ConcurrentQuery.ts @@ -13,7 +13,7 @@ import { Point2d, Point3d } from "@itwin/core-geometry"; * [IModelConnection]($frontend), [IModelDb]($backend), and [ECDb]($backend). * * @public - * @extensionApi + * @extensions */ export enum QueryRowFormat { /** Each row is an object in which each non-null column value can be accessed by its name as defined in the ECSql. @@ -32,7 +32,7 @@ export enum QueryRowFormat { /** * Specify limit or range of rows to return * @public - * @extensionApi + * @extensions * */ export interface QueryLimit { /** Number of rows to return */ @@ -61,7 +61,7 @@ export interface DbRuntimeStats { /** * Quota hint for the query. * @public - * @extensionApi + * @extensions * */ export interface QueryQuota { /** Max time allowed in seconds. This is hint and may not be honoured but help in prioritize request */ @@ -72,7 +72,7 @@ export interface QueryQuota { /** * Config for all request made to concurrent query engine. * @public - * @extensionApi + * @extensions */ export interface BaseReaderOptions { /** Determine priority of this query default to 0, used as hint and can be overriden by backend. */ @@ -89,7 +89,7 @@ export interface BaseReaderOptions { /** * ECSql query config * @public - * @extensionApi + * @extensions * */ export interface QueryOptions extends BaseReaderOptions { /** diff --git a/core/common/src/ContextRealityModel.ts b/core/common/src/ContextRealityModel.ts index 4d95dcbe0793..6c893b7b35cc 100644 --- a/core/common/src/ContextRealityModel.ts +++ b/core/common/src/ContextRealityModel.ts @@ -134,7 +134,7 @@ export interface RealityDataSourceProps { /** JSON representation of a [[ContextRealityModel]]. * @public - * @extensionApi + * @extensions */ export interface ContextRealityModelProps { /** @see [[ContextRealityModel.rdSourceKey]]. @@ -296,7 +296,7 @@ export class ContextRealityModel { * @see [[ContextRealityModels]]. * @see [[DisplayStyleSettingsProps.contextRealityModels]]. * @public - * @extensionApi + * @extensions */ export interface ContextRealityModelsContainer { /** The list of reality models. */ diff --git a/core/common/src/DisplayStyleSettings.ts b/core/common/src/DisplayStyleSettings.ts index 558ae3771e5e..8fd6df0c62e7 100644 --- a/core/common/src/DisplayStyleSettings.ts +++ b/core/common/src/DisplayStyleSettings.ts @@ -40,7 +40,7 @@ import { WhiteOnWhiteReversalProps, WhiteOnWhiteReversalSettings } from "./White /** Describes the [[SubCategoryOverride]]s applied to a [[SubCategory]] by a [[DisplayStyle]]. * @see [[DisplayStyleSettingsProps]] * @public - * @extensionApi + * @extensions */ export interface DisplayStyleSubCategoryProps extends SubCategoryAppearance.Props { /** The Id of the [[SubCategory]] whose appearance is to be overridden. */ @@ -50,7 +50,7 @@ export interface DisplayStyleSubCategoryProps extends SubCategoryAppearance.Prop /** A [[FeatureAppearanceProps]] applied to a specific model to override its appearance within the context of a [DisplayStyle]($backend). * @see [[DisplayStyleSettingsProps.modelOvr]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleModelAppearanceProps extends FeatureAppearanceProps { /** The Id of the model whose appearance is to be overridden. */ @@ -60,7 +60,7 @@ export interface DisplayStyleModelAppearanceProps extends FeatureAppearanceProps /** A [[PlanarClipMaskProps]] associated with a specific reality model. * @see [[DisplayStyleSettingsProps.planarClipOvr]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStylePlanarClipMaskProps extends PlanarClipMaskProps { /** The Id of the model to mask. */ @@ -69,7 +69,7 @@ export interface DisplayStylePlanarClipMaskProps extends PlanarClipMaskProps { /** Describes the style in which monochrome color is applied by a [[DisplayStyleSettings]]. * @public - * @extensionApi + * @extensions */ export enum MonochromeMode { /** The color of the geometry is replaced with the monochrome color. e.g., if monochrome color is white, the geometry will be white. */ @@ -86,7 +86,7 @@ export enum MonochromeMode { * as members of `jsonProperties.styles`. * @see [[DisplayStyleSettings]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleSettingsProps { viewflags?: ViewFlagProps; @@ -144,7 +144,7 @@ export interface DisplayStyleSettingsProps { /** JSON representation of settings associated with a [[DisplayStyle3dProps]]. * @see [[DisplayStyle3dSettings]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyle3dSettingsProps extends DisplayStyleSettingsProps { /** Settings controlling display of skybox and ground plane. */ @@ -170,7 +170,7 @@ export interface DisplayStyle3dSettingsProps extends DisplayStyleSettingsProps { /** JSON representation of a [[DisplayStyle]] or [[DisplayStyleState]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleProps extends DefinitionElementProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ @@ -181,7 +181,7 @@ export interface DisplayStyleProps extends DefinitionElementProps { /** JSON representation of a [[DisplayStyle3d]] or [[DisplayStyle3dState]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyle3dProps extends DisplayStyleProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ @@ -195,7 +195,7 @@ export interface DisplayStyle3dProps extends DisplayStyleProps { * when creating display style overrides intended for use with a specific iModel or iTwin, but should be omitted when creating general-purpose display style overrides intended * for use with any iModel or iTwin. This is the default behavior if no more specific options are provided. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleOverridesOptions { /** Serialize all settings. Applying the resultant [[DisplayStyleSettingsProps]] will produce a [[DisplayStyleSettings]] identical to the original settings. */ @@ -397,7 +397,7 @@ class OverridesMap extends Map { /** Options supplied when constructing a [[DisplayStyleSettings]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleSettingsOptions { /** A function that instantiates a [[ContextRealityModel]] to be stored in [[DisplayStyleSettings.contextRealityModels]]. */ diff --git a/core/common/src/ECSqlTypes.ts b/core/common/src/ECSqlTypes.ts index 6591236431a5..1e0781479381 100644 --- a/core/common/src/ECSqlTypes.ts +++ b/core/common/src/ECSqlTypes.ts @@ -11,7 +11,7 @@ import { assert, Id64String } from "@itwin/core-bentley"; /** Describes the different data types an ECSQL value can be of. * See also [ECSQL]($docs/learning/ECSQL). * @public - * @extensionApi + * @extensions */ export enum ECSqlValueType { // do not change the values of the enum as it must match its counterpart in the addon @@ -37,7 +37,7 @@ export enum ECSqlValueType { * It is returned from ECSQL SELECT statements for navigation properties. * See also [ECSQL]($docs/learning/ECSQL). * @public - * @extensionApi + * @extensions */ export interface NavigationValue { /** ECInstanceId of the related instance */ @@ -49,7 +49,7 @@ export interface NavigationValue { /** An ECSQL Navigation value which can be bound to a navigation property ECSQL parameter * See also [ECSQL]($docs/learning/ECSQL). * @public - * @extensionApi + * @extensions */ export interface NavigationBindingValue { /** ECInstanceId of the related instance */ @@ -70,7 +70,7 @@ export interface NavigationBindingValue { * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public - * @extensionApi + * @extensions */ export enum ChangeOpCode { Insert = 1, @@ -85,7 +85,7 @@ export enum ChangeOpCode { * See also * - [ChangeSummary Overview]($docs/learning/ChangeSummaries) * @public - * @extensionApi + * @extensions */ export enum ChangedValueState { AfterInsert = 1, @@ -97,7 +97,7 @@ export enum ChangedValueState { /** Defines the ECSQL system properties. * See also [ECSQL]($docs/learning/ECSQL). * @public - * @extensionApi + * @extensions */ export enum ECSqlSystemProperty { ECInstanceId, diff --git a/core/common/src/ElementProps.ts b/core/common/src/ElementProps.ts index 8a9ba924630c..a2a68a6b4455 100644 --- a/core/common/src/ElementProps.ts +++ b/core/common/src/ElementProps.ts @@ -19,7 +19,7 @@ import { SubCategoryAppearance } from "./SubCategoryAppearance"; /** Properties of a NavigationProperty. * @public - * @extensionApi + * @extensions */ export interface RelatedElementProps { /** The Id of the element to which this element is related. */ @@ -30,7 +30,7 @@ export interface RelatedElementProps { /** Properties of an [Element]($docs/bis/intro/element-fundamentals) * @public - * @extensionApi + * @extensions */ export interface ElementProps extends EntityProps { /** The Id of the [Model]($docs/bis/intro/model-fundamentals.md) containing this element */ @@ -99,7 +99,7 @@ export class TypeDefinition extends RelatedElement { /** Properties of a [GeometricElement]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricElementProps extends ElementProps { /** The id of the category for this geometric element. */ @@ -116,7 +116,7 @@ export interface GeometricElementProps extends ElementProps { /** Properties of a [[Placement3d]] * @public - * @extensionApi + * @extensions */ export interface Placement3dProps { origin: XYZProps; @@ -126,7 +126,7 @@ export interface Placement3dProps { /** Properties of a [[Placement2d]] * @public - * @extensionApi + * @extensions */ export interface Placement2dProps { origin: XYProps; @@ -136,7 +136,7 @@ export interface Placement2dProps { /** * @public - * @extensionApi + * @extensions */ export type PlacementProps = Placement2dProps | Placement3dProps; @@ -156,7 +156,7 @@ export function isPlacement3dProps(props: PlacementProps): props is Placement3dP /** Properties that define a [GeometricElement3d]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricElement3dProps extends GeometricElementProps { placement?: Placement3dProps; @@ -165,7 +165,7 @@ export interface GeometricElement3dProps extends GeometricElementProps { /** Properties that define a [PhysicalElement]($backend) * @public - * @extensionApi + * @extensions */ export interface PhysicalElementProps extends GeometricElement3dProps { physicalMaterial?: RelatedElementProps; @@ -173,7 +173,7 @@ export interface PhysicalElementProps extends GeometricElement3dProps { /** An enumeration of the different types of [SectionDrawing]($backend)s. * @public - * @extensionApi + * @extensions */ export enum SectionType { Section = 3, @@ -184,7 +184,7 @@ export enum SectionType { /** Properties that define a [SectionDrawing]($backend). * @public - * @extensionApi + * @extensions */ export interface SectionDrawingProps extends ElementProps { /** The type of section used to generate the drawing. Default: Section. */ @@ -208,7 +208,7 @@ export interface SectionDrawingProps extends ElementProps { /** Properties that define a [SectionDrawingLocation]($backend) * @public - * @extensionApi + * @extensions */ export interface SectionDrawingLocationProps extends GeometricElement3dProps { /** The [ViewDefinition]($backend) to which this location refers. */ @@ -217,7 +217,7 @@ export interface SectionDrawingLocationProps extends GeometricElement3dProps { /** Properties that define a [GeometricElement2d]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricElement2dProps extends GeometricElementProps { placement?: Placement2dProps; @@ -226,7 +226,7 @@ export interface GeometricElement2dProps extends GeometricElementProps { /** Properties of a [GeometryPart]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometryPartProps extends ElementProps { geom?: GeometryStreamProps; @@ -239,7 +239,7 @@ export interface GeometryPartProps extends ElementProps { /** Properties for a [ViewAttachment]($backend) * @public - * @extensionApi + * @extensions */ export interface ViewAttachmentProps extends GeometricElement2dProps { view: RelatedElementProps; @@ -262,7 +262,7 @@ export interface ViewAttachmentProps extends GeometricElement2dProps { /** Properties of a [Subject]($backend) * @public - * @extensionApi + * @extensions */ export interface SubjectProps extends ElementProps { description?: string; @@ -287,7 +287,7 @@ export interface SheetTemplateProps extends ElementProps { /** Properties of a [Sheet]($backend). * @public - * @extensionApi + * @extensions */ export interface SheetProps extends ElementProps { width?: number; @@ -299,7 +299,7 @@ export interface SheetProps extends ElementProps { /** Properties of a [DefinitionElement]($backend) * @public - * @extensionApi + * @extensions */ export interface DefinitionElementProps extends ElementProps { isPrivate?: boolean; @@ -307,7 +307,7 @@ export interface DefinitionElementProps extends ElementProps { /** Properties of a [TypeDefinitionElement]($backend) * @public - * @extensionApi + * @extensions */ export interface TypeDefinitionElementProps extends DefinitionElementProps { recipe?: RelatedElementProps; @@ -315,7 +315,7 @@ export interface TypeDefinitionElementProps extends DefinitionElementProps { /** Properties of a [PhysicalType]($backend) * @public - * @extensionApi + * @extensions */ export interface PhysicalTypeProps extends TypeDefinitionElementProps { /** The [PhysicalMaterial]($backend) that makes up this physical type. */ @@ -324,7 +324,7 @@ export interface PhysicalTypeProps extends TypeDefinitionElementProps { /** Properties of a [InformationPartitionElement]($backend) * @public - * @extensionApi + * @extensions */ export interface InformationPartitionElementProps extends ElementProps { description?: string; @@ -333,7 +333,7 @@ export interface InformationPartitionElementProps extends ElementProps { /** Options controlling which properties are included or excluded when querying [[DisplayStyleProps]]. * @see [[ViewStateLoadProps]] and [[ElementLoadOptions]]. * @public - * @extensionApi + * @extensions */ export interface DisplayStyleLoadProps { /** If true, the lists of element Ids in the display style's schedule script will be empty. @@ -349,7 +349,7 @@ export interface DisplayStyleLoadProps { /** Options controlling which properties are included or excluded when querying [[RenderTimelineProps]]. * @see [[ElementLoadOptions.renderTimeline]]. * @public - * @extensionApi + * @extensions */ export interface RenderTimelineLoadProps { /** If true, the lists of element Ids in the schedule script will be empty. @@ -361,7 +361,7 @@ export interface RenderTimelineLoadProps { /** Options used to specify properties to include or exclude when querying [[ElementProps]] with functions like * [IModelDb.Elements.getElementProps]($backend) and [IModelConnection.Elements.loadProps]($frontend). * @public - * @extensionApi + * @extensions */ export interface ElementLoadOptions { /** If true, include the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]]. @@ -381,7 +381,7 @@ export interface ElementLoadOptions { /** Parameters to specify what element to load for functions like [IModelDb.Elements.getElementProps]($backend). * @public - * @extensionApi + * @extensions */ export interface ElementLoadProps extends ElementLoadOptions { id?: Id64String; @@ -391,7 +391,7 @@ export interface ElementLoadProps extends ElementLoadOptions { /** Properties of an [ElementAspect]($backend) * @public - * @extensionApi + * @extensions */ export interface ElementAspectProps extends EntityProps { element: RelatedElementProps; @@ -399,7 +399,7 @@ export interface ElementAspectProps extends EntityProps { /** Properties of an [ExternalSourceAspect]($backend) that stores synchronization information for an element originating from an external source. * @public - * @extensionApi + * @extensions */ export interface ExternalSourceAspectProps extends ElementAspectProps { /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source. */ @@ -455,7 +455,7 @@ export interface ExternalSourceAttachmentProps extends ElementProps { /** Properties of an [ChannelRootAspect]($backend) that identifies an Element as the root of a *channel* which is a subset of the overall iModel hierarchy that is independently maintained. * @public - * @extensionApi + * @extensions */ export interface ChannelRootAspectProps extends ElementAspectProps { /** The owner of the channel */ @@ -464,7 +464,7 @@ export interface ChannelRootAspectProps extends ElementAspectProps { /** Properties of a [LineStyle]($backend) * @public - * @extensionApi + * @extensions */ export interface LineStyleProps extends DefinitionElementProps { description?: string; @@ -481,7 +481,7 @@ export interface LightLocationProps extends GeometricElement3dProps { /** The *rank* for a Category * @public - * @extensionApi + * @extensions */ export enum Rank { /** This category is predefined by the system */ @@ -496,7 +496,7 @@ export enum Rank { /** Parameters of a [Category]($backend) * @public - * @extensionApi + * @extensions */ export interface CategoryProps extends DefinitionElementProps { rank?: Rank; @@ -505,7 +505,7 @@ export interface CategoryProps extends DefinitionElementProps { /** Parameters of a [SubCategory]($backend) * @public - * @extensionApi + * @extensions */ export interface SubCategoryProps extends DefinitionElementProps { appearance?: SubCategoryAppearance.Props; @@ -514,7 +514,7 @@ export interface SubCategoryProps extends DefinitionElementProps { /** Parameters of a [UrlLink]($backend) * @public - * @extensionApi + * @extensions */ export interface UrlLinkProps extends ElementProps { description?: string; @@ -523,7 +523,7 @@ export interface UrlLinkProps extends ElementProps { /** Parameters of a [RepositoryLink]($backend) * @public - * @extensionApi + * @extensions */ export interface RepositoryLinkProps extends UrlLinkProps { repositoryGuid?: GuidString; @@ -539,7 +539,7 @@ export interface SynchronizationConfigLinkProps extends UrlLinkProps { /** Wire format describing a [RenderTimeline]($backend). * @public - * @extensionApi + * @extensions */ export interface RenderTimelineProps extends ElementProps { /** An optional human-readable description of the timeline. */ diff --git a/core/common/src/EmphasizeElementsProps.ts b/core/common/src/EmphasizeElementsProps.ts index 43a41500bfca..8c3a05720e65 100644 --- a/core/common/src/EmphasizeElementsProps.ts +++ b/core/common/src/EmphasizeElementsProps.ts @@ -14,7 +14,7 @@ import { FeatureAppearanceProps } from "./FeatureSymbology"; * @see [EmphasizeElements]($frontend) * @see [[AppearanceOverrideProps]] * @public - * @extensionApi + * @extensions */ export enum FeatureOverrideType { /** Override color only. */ @@ -28,7 +28,7 @@ export enum FeatureOverrideType { /** JSON representation of an appearance override in an [[EmphasizeElementsProps]]. * @see [EmphasizeElements]($frontend). * @public - * @extensionApi + * @extensions */ export interface AppearanceOverrideProps { /** Whether to override color, transparency, or both. */ @@ -41,7 +41,7 @@ export interface AppearanceOverrideProps { /** JSON representation of an [EmphasizeElements]($frontend). * @public - * @extensionApi + * @extensions */ export interface EmphasizeElementsProps { /** @see [EmphasizeElements.getNeverDrawnElements]($frontend) */ diff --git a/core/common/src/EntityProps.ts b/core/common/src/EntityProps.ts index b7c12b5b12dc..71470641883a 100644 --- a/core/common/src/EntityProps.ts +++ b/core/common/src/EntityProps.ts @@ -15,7 +15,7 @@ import { RelatedElement } from "./ElementProps"; * EntityProps and all of its sub-types like [[ElementProps]] are "plain old Javascript objects" - that is, objects containing * no methods and no properties of `class` type. * @public - * @extensionApi + * @extensions */ export interface EntityProps { /** A non-existent property used to discriminate between [[EntityProps]] and [Entity]($backend). @@ -32,7 +32,7 @@ export interface EntityProps { /** Specifies the source and target elements of a [[Relationship]] instance. * @public - * @extensionApi + * @extensions */ export interface SourceAndTarget { sourceId: Id64String; @@ -41,14 +41,14 @@ export interface SourceAndTarget { /** Properties that are common to all types of link table ECRelationships * @public - * @extensionApi + * @extensions */ export interface RelationshipProps extends EntityProps, SourceAndTarget { } /** Parameters for performing a query on [Entity]($backend) classes. * @public - * @extensionApi + * @extensions */ export interface EntityQueryParams { /** The sql className, in the form "Schema.ClassName", of the class to search. */ diff --git a/core/common/src/Environment.ts b/core/common/src/Environment.ts index f5730e3ce5fa..b7610d70b27d 100644 --- a/core/common/src/Environment.ts +++ b/core/common/src/Environment.ts @@ -13,7 +13,7 @@ import { SkyBox, SkyBoxProps } from "./SkyBox"; /** JSON representation of an [[Environment]]. * @see [[DisplayStyle3dSettingsProps.environment]]. * @public - * @extensionApi + * @extensions */ export interface EnvironmentProps { /** @see [[Environment.ground]] and [[Environment.displayGround]]. */ diff --git a/core/common/src/FeatureSymbology.ts b/core/common/src/FeatureSymbology.ts index 3518ca8d5cd9..13a6981c91ce 100644 --- a/core/common/src/FeatureSymbology.ts +++ b/core/common/src/FeatureSymbology.ts @@ -28,7 +28,7 @@ function copyIdSetToUint32Set(dst: Id64.Uint32Set, src: Iterable): void /** JSON representation of a [[FeatureAppearance]]. * @public - * @extensionApi + * @extensions */ export interface FeatureAppearanceProps { /** @see [[FeatureAppearance.rgb]]. */ @@ -281,7 +281,7 @@ export class FeatureAppearance { * @see [[FeatureOverrides]] for the commonly-used implementation. * @see [[FeatureAppearanceProvider]] to supplement the appearance supplied by this interface. * @public - * @extensionApi + * @extensions */ export interface FeatureAppearanceSource { /** Supplies the desired appearance overrides for the specified [[Feature]], or `undefined` if the feature should not be drawn. @@ -749,7 +749,7 @@ export class FeatureOverrides implements FeatureAppearanceSource { * A typical implementation will invoke [[FeatureAppearanceSource.getAppeaprance]] and customize the returned appearance. * @see [[FeatureAppearanceProvider.chain]] to chain two providers together. * @public - * @extensionApi + * @extensions */ export interface FeatureAppearanceProvider { /** Supply the desired appearance overrides for the specified [[Feature]], or `undefined` if the feature should not be drawn. diff --git a/core/common/src/FeatureTable.ts b/core/common/src/FeatureTable.ts index 5e385bf95785..3f8ae2202a4c 100644 --- a/core/common/src/FeatureTable.ts +++ b/core/common/src/FeatureTable.ts @@ -67,7 +67,7 @@ export interface PackedFeature { * The most commonly-encountered batches are Tiles, which can be of either Primary or * Classifier type. * @public - * @extensionApi + * @extensions */ export enum BatchType { /** This batch contains graphics derived from a model's visible geometry. */ diff --git a/core/common/src/Fonts.ts b/core/common/src/Fonts.ts index 8dc1ac89dc92..2aed6dafed13 100644 --- a/core/common/src/Fonts.ts +++ b/core/common/src/Fonts.ts @@ -8,13 +8,13 @@ /** The type of a font. * @public - * @extensionApi + * @extensions */ export enum FontType { TrueType = 1, Rsc = 2, Shx = 3 } /** An iModel-local identifier for a font. * @public - * @extensionApi + * @extensions */ export type FontId = number; @@ -32,7 +32,7 @@ export interface FontProps { /** The properties of a FontMap * @public - * @extensionApi + * @extensions */ export interface FontMapProps { fonts: FontProps[] } diff --git a/core/common/src/Frustum.ts b/core/common/src/Frustum.ts index 85700ee2303a..4a6cea321086 100644 --- a/core/common/src/Frustum.ts +++ b/core/common/src/Frustum.ts @@ -12,7 +12,7 @@ import { /** The 8 corners of the [Normalized Plane Coordinate]($docs/learning/glossary.md#npc) cube. * @public - * @extensionApi + * @extensions */ export enum Npc { /** Left bottom rear */ diff --git a/core/common/src/GeoCoordinateServices.ts b/core/common/src/GeoCoordinateServices.ts index 5066c8a9dd52..a64c972620de 100644 --- a/core/common/src/GeoCoordinateServices.ts +++ b/core/common/src/GeoCoordinateServices.ts @@ -16,7 +16,7 @@ import { GeographicCRSProps } from "./geometry/CoordinateReferenceSystem"; * [[GeographicCRS]] and either another [[GeographicCRS]] or a [[GeodeticDatum]]. * @see the [[PointWithStatus]] included in an [[IModelCoordinatesResponseProps]] or [[GeoCoordinatesResponseProps]]. * @public - * @extensionApi + * @extensions */ export enum GeoCoordStatus { /** Indicates successful coordinate conversion. */ diff --git a/core/common/src/GeometryContainment.ts b/core/common/src/GeometryContainment.ts index b7f7e234ee7d..a93de6e2d779 100644 --- a/core/common/src/GeometryContainment.ts +++ b/core/common/src/GeometryContainment.ts @@ -12,7 +12,7 @@ import { ClipPlaneContainment, ClipVectorProps } from "@itwin/core-geometry"; /** Information required to request clip containment status for elements from the front end to the back end. * @public - * @extensionApi + * @extensions */ export interface GeometryContainmentRequestProps { candidates: Id64Array; @@ -24,7 +24,7 @@ export interface GeometryContainmentRequestProps { /** Information returned from the back end to the front end holding the result of the geometry containment query. * @public - * @extensionApi + * @extensions */ export interface GeometryContainmentResponseProps { status: BentleyStatus; diff --git a/core/common/src/GeometryParams.ts b/core/common/src/GeometryParams.ts index 43b06a9e1899..986d78e4fdd1 100644 --- a/core/common/src/GeometryParams.ts +++ b/core/common/src/GeometryParams.ts @@ -15,7 +15,7 @@ import { IModel } from "./IModel"; /** Whether a closed region should be drawn for wireframe display with its internal area filled or not. * @public - * @extensionApi + * @extensions */ export enum FillDisplay { /** don't fill, even if fill attribute is on for the viewport */ @@ -30,7 +30,7 @@ export enum FillDisplay { /** Describes how a view's background color affects the interior area of a closed region. * @public - * @extensionApi + * @extensions */ export enum BackgroundFill { /** single color fill uses the fill color and line color to draw either a solid or outline fill */ @@ -46,7 +46,7 @@ export enum BackgroundFill { * @see [[GeometryStreamProps]]. * @see [[Feature]]. * @public - * @extensionApi + * @extensions */ export enum GeometryClass { /** Used to classify the "real" geometry within a model. Most geometry falls within this class. */ diff --git a/core/common/src/GeometrySummary.ts b/core/common/src/GeometrySummary.ts index 7af739155a6d..971a16a64658 100644 --- a/core/common/src/GeometrySummary.ts +++ b/core/common/src/GeometrySummary.ts @@ -10,7 +10,7 @@ import { Id64Array } from "@itwin/core-bentley"; /** Describes the level of detail with which to report each geometric primitive in a [[GeometrySummaryRequestProps]]. * @public - * @extensionApi + * @extensions */ export enum GeometrySummaryVerbosity { /** Simply output the type of geometry as a string. */ @@ -23,7 +23,7 @@ export enum GeometrySummaryVerbosity { /** Describes what information to include in a [[GeometrySummaryRequestProps]]. * @public - * @extensionApi + * @extensions */ export interface GeometrySummaryOptions { /** If true, include detailed description of each symbology change (e.g., output material Id, line/fill color, etc). */ @@ -41,7 +41,7 @@ export interface GeometrySummaryOptions { /** Describes the elements for which to generate an array of geometry summaries and the options controlling the contents of each summary. * @see [IModelConnection.getGeometrySummary]($frontend). * @public - * @extensionApi + * @extensions */ export interface GeometrySummaryRequestProps { /** The Ids of the elements whose geometry is to be summarized. This can include the Ids of [GeometricElement]($backend)s and [GeometryPart]($backend)s. diff --git a/core/common/src/GraphicParams.ts b/core/common/src/GraphicParams.ts index 39ab205fdd72..cf973a1dbf70 100644 --- a/core/common/src/GraphicParams.ts +++ b/core/common/src/GraphicParams.ts @@ -13,7 +13,7 @@ import { RenderMaterial } from "./RenderMaterial"; /** Flags indicating whether and how the interiors of closed planar regions is displayed within a view. * @public - * @extensionApi + * @extensions */ export enum FillFlags { /** No fill */ diff --git a/core/common/src/GroundPlane.ts b/core/common/src/GroundPlane.ts index 8fb838ace18c..37b0b8af5d1a 100644 --- a/core/common/src/GroundPlane.ts +++ b/core/common/src/GroundPlane.ts @@ -13,7 +13,7 @@ import { ColorDef, ColorDefProps } from "./ColorDef"; /** JSON representation of a [[GroundPlane]]. * @see [[EnvironmentProps.ground]]. * @public - * @extensionApi + * @extensions */ export interface GroundPlaneProps { /** Whether the ground plane should be displayed. Defaults to false. */ diff --git a/core/common/src/HSVColor.ts b/core/common/src/HSVColor.ts index bd75402443b6..49884662260c 100644 --- a/core/common/src/HSVColor.ts +++ b/core/common/src/HSVColor.ts @@ -10,7 +10,7 @@ import { ColorDef } from "./ColorDef"; /** * @public - * @extensionApi + * @extensions */ export enum HSVConstants { VISIBILITY_GOAL = 40, diff --git a/core/common/src/IModel.ts b/core/common/src/IModel.ts index 1ca830022ebc..c8bfd2facc04 100644 --- a/core/common/src/IModel.ts +++ b/core/common/src/IModel.ts @@ -55,7 +55,7 @@ export interface IModelRpcProps extends IModelRpcOpenProps { * possibly offset in altitude by the terrain elevation above the ellipsoid but other general 3D coordinate systems * can be defined. * @public - * @extensionApi + * @extensions */ export interface EcefLocationProps { /** The Origin of an iModel on the earth in ECEF coordinates */ @@ -72,7 +72,7 @@ export interface EcefLocationProps { /** Properties of the [Root Subject]($docs/bis/intro/glossary#subject-root). * @public - * @extensionApi + * @extensions */ export interface RootSubjectProps { /** The name of the root subject. */ @@ -196,7 +196,7 @@ export type CreateEmptyStandaloneIModelProps = CreateIModelProps & CreateStandal /** * @public - * @extensionApi + * @extensions */ export interface FilePropertyProps { readonly namespace: string; diff --git a/core/common/src/Image.ts b/core/common/src/Image.ts index 8b385b482555..2278991c298b 100644 --- a/core/common/src/Image.ts +++ b/core/common/src/Image.ts @@ -10,7 +10,7 @@ * The format determines how many bytes are allocated for each pixel in the buffer and the semantics of each byte. * @see [[ImageBuffer.getNumBytesPerPixel]] * @public - * @extensionApi + * @extensions */ export enum ImageBufferFormat { /** RGBA format - 4 bytes per pixel. */ @@ -101,7 +101,7 @@ export function nextHighestPowerOfTwo(num: number): number { /** The format of an ImageSource. * @public - * @extensionApi + * @extensions */ export enum ImageSourceFormat { /** Image data is stored with JPEG compression. */ diff --git a/core/common/src/IpcAppProps.ts b/core/common/src/IpcAppProps.ts index 10064970c2a3..de6a5628edc8 100644 --- a/core/common/src/IpcAppProps.ts +++ b/core/common/src/IpcAppProps.ts @@ -26,7 +26,7 @@ export interface TileTreeContentIds { /** Specifies a [GeometricModel]($backend)'s Id and a Guid identifying the current state of the geometry contained within the model. * @see [TxnManager.onModelGeometryChanged]($backend) and [BriefcaseTxns.onModelGeometryChanged]($frontend). * @public - * @extensionApi + * @extensions */ export interface ModelIdAndGeometryGuid { /** The model's Id. */ diff --git a/core/common/src/LightSettings.ts b/core/common/src/LightSettings.ts index 42ba5e82c5e8..2f96f0b8091d 100644 --- a/core/common/src/LightSettings.ts +++ b/core/common/src/LightSettings.ts @@ -20,7 +20,7 @@ function extractIntensity(value: number | undefined, defaultValue: number) { * It will cast shadows if it is above the world XY plane and if the shadows view flag is enabled for the view. * By default, the solar light is only applied when shadows are enabled, but can be set to be applied unconditionally. * @public - * @extensionApi + * @extensions */ export interface SolarLightProps { /** Intensity of the light, typically in [0..1] but can range up to 5. Default: 1.0 */ @@ -138,7 +138,7 @@ export class SolarLight { /** Wire format for the ambient light associated with a [[LightSettingsProps]]. * Ambient light applies equally to all surfaces in the scene. * @public - * @extensionApi + * @extensions */ export interface AmbientLightProps { /** The color of the light. Black is treated as a special case, indicating that the surface's own diffuse color should be used. */ @@ -202,7 +202,7 @@ export class AmbientLight { * They are often used to simulate outdoor reflection of light from the ground and sky, so the colors often match the ground and sky colors * of the [[SkyBox]]. * @public - * @extensionApi + * @extensions */ export interface HemisphereLightsProps { /** The color of the downward-facing light. Default: (143, 205, 255). */ @@ -278,7 +278,7 @@ export class HemisphereLights { /** JSON representation of a [[FresnelSettings]]. * @public - * @extensionApi + * @extensions */ export interface FresnelSettingsProps { /** @see [[FresnelSettings.intensity]]. @@ -389,7 +389,7 @@ export class FresnelSettings { * Light intensities are typically expressed in [0..1] but can be as large as 5. * @see [[DisplayStyle3dSettingsProps]] * @public - * @extensionApi + * @extensions */ export interface LightSettingsProps { /** A white portrait light affixed to the camera and pointing directly forward into the scene. */ diff --git a/core/common/src/LinePixels.ts b/core/common/src/LinePixels.ts index eafeea05c6c9..bd4a03ddbb37 100644 --- a/core/common/src/LinePixels.ts +++ b/core/common/src/LinePixels.ts @@ -9,7 +9,7 @@ /** Enumerates the available patterns for drawing patterned lines. * Each is a 32-bit pattern in which each bit specifies the on- or off-state of a pixel along the line. The pattern repeats along the length of the entire line. * @public - * @extensionApi + * @extensions */ export enum LinePixels { /** A solid line. */ diff --git a/core/common/src/Localization.ts b/core/common/src/Localization.ts index b84e8ca45a42..a684234c57be 100644 --- a/core/common/src/Localization.ts +++ b/core/common/src/Localization.ts @@ -36,7 +36,7 @@ interface LocalizationOptions { /** The interface defining the localization requirements of [IModelApp]($frontend). * @public - * @extensionApi + * @extensions */ export interface Localization { /** This method must be called and awaited before using an instance of Localization. diff --git a/core/common/src/MassProperties.ts b/core/common/src/MassProperties.ts index 57c914377985..46111847a4e9 100644 --- a/core/common/src/MassProperties.ts +++ b/core/common/src/MassProperties.ts @@ -11,7 +11,7 @@ import { XYZProps } from "@itwin/core-geometry"; /** Specify whether to accumulate volumes, areas, or lengths for the supplied elements. * @public - * @extensionApi + * @extensions */ export enum MassPropertiesOperation { /** Return lengths for open paths and planar regions. */ @@ -24,7 +24,7 @@ export enum MassPropertiesOperation { /** Information required to request mass properties for elements from the front end to the back end. * @public - * @extensionApi + * @extensions */ export interface MassPropertiesRequestProps { operation: MassPropertiesOperation; @@ -33,7 +33,7 @@ export interface MassPropertiesRequestProps { /** Information returned from the back end to the front end holding the result of the mass properties calculation. * @public - * @extensionApi + * @extensions */ export interface MassPropertiesResponseProps { status: BentleyStatus; diff --git a/core/common/src/MaterialProps.ts b/core/common/src/MaterialProps.ts index 64c3ae148e67..77425e28c2ba 100644 --- a/core/common/src/MaterialProps.ts +++ b/core/common/src/MaterialProps.ts @@ -14,20 +14,20 @@ import { TextureMapping } from "./TextureMapping"; * the second to green, and the third to blue. * @see usage in [[RenderMaterialAssetProps]]. * @public - * @extensionApi + * @extensions */ export type RgbFactorProps = number[]; /** A 2d point specified as an array of 2 numbers [x, y]. * @see usage in [[TextureMapProps]]. * @public - * @extensionApi + * @extensions */ export type Point2dProps = number[]; /** Describes the units in which a [[TextureMapProps]]' scale is expressed. * @public - * @extensionApi + * @extensions */ export enum TextureMapUnits { /** Indicates the scale has no units. */ @@ -42,7 +42,7 @@ export enum TextureMapUnits { /** As part of a [[RenderMaterialAssetProps]], describes how to map a [[RenderTexture]]'s image to the triangles of a mesh to which the material is applied. * @public - * @extensionApi + * @extensions */ export interface TextureMapProps { /** Angle in degrees to rotate texture when applying; defaults to 0.0 if undefined */ @@ -67,7 +67,7 @@ export interface TextureMapProps { /** Describes the graphical properties of a [RenderMaterialElement]($backend) as part of a [[RenderMaterialProps]]. * @public - * @extensionApi + * @extensions */ export interface RenderMaterialAssetProps { /** If true, this material has a fill/diffuse color; if undefined, defaults to false */ @@ -114,7 +114,7 @@ export interface RenderMaterialAssetProps { /** Properties that define a [RenderMaterialElement]($backend). * @see [[RenderMaterial]] for the representation used by the display system. * @public - * @extensionApi + * @extensions */ export interface RenderMaterialProps extends DefinitionElementProps { /** The name of a palette that can be used to categorize multiple materials. */ diff --git a/core/common/src/ModelClipGroup.ts b/core/common/src/ModelClipGroup.ts index 2359bb44bce7..f0aec24e8eaa 100644 --- a/core/common/src/ModelClipGroup.ts +++ b/core/common/src/ModelClipGroup.ts @@ -11,7 +11,7 @@ import { ClipVector, ClipVectorProps } from "@itwin/core-geometry"; /** JSON representation of a [[ModelClipGroup]]. * @public - * @extensionApi + * @extensions */ export interface ModelClipGroupProps { /** The Ids of the models in the group. */ diff --git a/core/common/src/ModelGeometryChanges.ts b/core/common/src/ModelGeometryChanges.ts index 49eceef0cf86..f90444ae9dad 100644 --- a/core/common/src/ModelGeometryChanges.ts +++ b/core/common/src/ModelGeometryChanges.ts @@ -15,7 +15,7 @@ import { Range3d, Range3dProps } from "@itwin/core-geometry"; * @see [[ElementGeometryChange]] for a more useful representation of an individual element change. * @see [[ModelGeometryChanges.iterable]] to iterate over [[ElementGeometryChange]]s. * @public - * @extensionApi + * @extensions */ export interface ElementIdsAndRangesProps { /** The Ids of the elements, compressed and sorted in ascending order. */ @@ -28,7 +28,7 @@ export interface ElementIdsAndRangesProps { * A given element Id will appear in no more than one of [[inserted]], [[updated]], or [[deleted]]. * @see [[ModelGeometryChanges]] for a more useful representation. * @public - * @extensionApi + * @extensions */ export interface ModelGeometryChangesProps { /** The Id of the model. */ @@ -48,7 +48,7 @@ export interface ModelGeometryChangesProps { /** Represents the insertion of a new [GeometricElement]($backend), or a change to the geometric properties of an existing [GeometricElement]($backend). * @see [[ElementGeometryChange]]. * @public - * @extensionApi + * @extensions */ export interface ExtantElementGeometryChange { /** Indicates whether this change resulted from the insertion of a new element or modification of an existing one. @@ -64,7 +64,7 @@ export interface ExtantElementGeometryChange { /** Represents the deletion of a [GeometricElement]($backend). * @see [[ElementGeometryChange]]. * @public - * @extensionApi + * @extensions */ export interface DeletedElementGeometryChange { /** Discriminant for [[ElementGeometryChange]] union. */ @@ -75,7 +75,7 @@ export interface DeletedElementGeometryChange { /** * @public - * @extensionApi + * @extensions */ export type ElementGeometryChange = ExtantElementGeometryChange | DeletedElementGeometryChange; @@ -119,7 +119,7 @@ export namespace ElementGeometryChange { // eslint-disable-line @typescript-esli /** Represents geometric changes to a set of [GeometricElement]($backend)s belonging to a single [GeometricModel]($backend). * @public - * @extensionApi + * @extensions */ export interface ModelGeometryChanges { /** The model's Id. */ diff --git a/core/common/src/ModelProps.ts b/core/common/src/ModelProps.ts index b0d1173e135a..2990ec8c44e0 100644 --- a/core/common/src/ModelProps.ts +++ b/core/common/src/ModelProps.ts @@ -14,7 +14,7 @@ import { EntityProps, EntityQueryParams } from "./EntityProps"; /** Properties that define a [Model]($docs/bis/intro/model-fundamentals) * @public - * @extensionApi + * @extensions */ export interface ModelProps extends EntityProps { modeledElement: RelatedElementProps; @@ -27,7 +27,7 @@ export interface ModelProps extends EntityProps { /** Properties that specify what model should be loaded. * @public - * @extensionApi + * @extensions */ export interface ModelLoadProps { id?: Id64String; @@ -36,7 +36,7 @@ export interface ModelLoadProps { /** Parameters for performing a query on [Model]($backend) classes. * @public - * @extensionApi + * @extensions */ export interface ModelQueryParams extends EntityQueryParams { wantTemplate?: boolean; @@ -45,7 +45,7 @@ export interface ModelQueryParams extends EntityQueryParams { /** Properties that describe a [GeometricModel]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricModelProps extends ModelProps { /** A unique identifier that is updated each time a change affecting the appearance of a geometric element within this model @@ -58,7 +58,7 @@ export interface GeometricModelProps extends ModelProps { /** Properties that define a [GeometricModel2d]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricModel2dProps extends GeometricModelProps { /** The actual coordinates of (0,0) in modeling coordinates. An offset applied to all modeling coordinates. */ @@ -67,7 +67,7 @@ export interface GeometricModel2dProps extends GeometricModelProps { /** Properties that define a [GeometricModel3d]($backend) * @public - * @extensionApi + * @extensions */ export interface GeometricModel3dProps extends GeometricModelProps { /** If true, then the elements in this GeometricModel3d are not in real-world coordinates and will not be in the spatial index. */ diff --git a/core/common/src/PlanProjectionSettings.ts b/core/common/src/PlanProjectionSettings.ts index 846291e3898c..fe01b5aee16a 100644 --- a/core/common/src/PlanProjectionSettings.ts +++ b/core/common/src/PlanProjectionSettings.ts @@ -8,7 +8,7 @@ /** Wire format describing [[PlanProjectionSettings]]. * @public - * @extensionApi + * @extensions */ export interface PlanProjectionSettingsProps { /** If defined, the absolute height in meters at which to display the model. */ diff --git a/core/common/src/PlanarClipMask.ts b/core/common/src/PlanarClipMask.ts index 0781e2d5e7e2..3222adfec3c0 100644 --- a/core/common/src/PlanarClipMask.ts +++ b/core/common/src/PlanarClipMask.ts @@ -10,7 +10,7 @@ import { CompressedId64Set, Id64String, OrderedId64Iterable } from "@itwin/core- /** The different modes by which a [[PlanarClipMaskSettings]] collects the geometry used to mask a model. * @public - * @extensionApi + * @extensions */ export enum PlanarClipMaskMode { /** No masking. */ @@ -33,7 +33,7 @@ export enum PlanarClipMaskMode { /** The default priority values for a [[PlanarClipMaskSettings]], based on model type. Models with a lower priority are masked by models with a higher priority. * The default can be overridden by [[PlanarClipMaskSettings.priority]]. * @public - * @extensionApi + * @extensions */ export enum PlanarClipMaskPriority { /** Background map. */ @@ -49,7 +49,7 @@ export enum PlanarClipMaskPriority { /** JSON representation of a [[PlanarClipMaskSettings]]. * @see [[DisplayStyleSettingsProps.planarClipOvr]] and [[ContextRealityModelProps.planarClipMask]]. * @public - * @extensionApi + * @extensions */ export interface PlanarClipMaskProps { /** Controls how the mask geometry is collected */ diff --git a/core/common/src/RgbColor.ts b/core/common/src/RgbColor.ts index 5df1ffdf9cb9..b59793dff487 100644 --- a/core/common/src/RgbColor.ts +++ b/core/common/src/RgbColor.ts @@ -10,7 +10,7 @@ import { ColorDef } from "./ColorDef"; /** JSON representation of an [[RgbColor]], with each component an integer in the range [0, 255]. * @public - * @extensionApi + * @extensions */ export interface RgbColorProps { r: number; diff --git a/core/common/src/SessionProps.ts b/core/common/src/SessionProps.ts index 57717bfdf053..3debb6628212 100644 --- a/core/common/src/SessionProps.ts +++ b/core/common/src/SessionProps.ts @@ -10,7 +10,7 @@ import { GuidString } from "@itwin/core-bentley"; /** Properties that identify a session. * @public - * @extensionApi + * @extensions */ export interface SessionProps { /** Used for logging and usage tracking to identify the application */ diff --git a/core/common/src/SkyBox.ts b/core/common/src/SkyBox.ts index d54989974dfb..da3e683a3244 100644 --- a/core/common/src/SkyBox.ts +++ b/core/common/src/SkyBox.ts @@ -13,7 +13,7 @@ import { TextureImageSpec } from "./RenderTexture"; /** Supported types of [[SkyBox]] images. * @see [[SkyBoxImageProps]]. * @public - * @extensionApi + * @extensions */ export enum SkyBoxImageType { /** No image, indicating a [[SkyGradient]] should be displayed. */ @@ -34,7 +34,7 @@ export enum SkyBoxImageType { * Each property specifies the image for a face of the cube as either an image URL, or the Id of a [Texture]($backend) element. * Each image must be square and have the same dimensions as all the other images. * @public - * @extensionApi + * @extensions */ export interface SkyCubeProps { front: TextureImageSpec; @@ -70,7 +70,7 @@ export interface SkyCubeImageProps { /** JSON representation of the image(s) to be mapped to the surfaces of a [[SkyBox]]. * @see [[SkyBoxProps.image]]. * @public - * @extensionApi + * @extensions */ export type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type?: SkyBoxImageType, texture?: never, textures?: never }; @@ -93,7 +93,7 @@ export type SkyBoxImageProps = SkySphereImageProps | SkyCubeImageProps | { type? * * @see [[DisplayStyle3dSettings.environment]] to define the skybox for a display style. * @public - * @extensionApi + * @extensions */ export interface SkyBoxProps { /** Whether or not the skybox should be displayed. diff --git a/core/common/src/SolarShadows.ts b/core/common/src/SolarShadows.ts index cfc18f21aefe..2f8c07136a05 100644 --- a/core/common/src/SolarShadows.ts +++ b/core/common/src/SolarShadows.ts @@ -13,7 +13,7 @@ import { RgbColor } from "./RgbColor"; /** JSON representation of [[SolarShadowSettings]]. * @public - * @extensionApi + * @extensions */ export interface SolarShadowSettingsProps { /** Shadow color. Default: [[ColorByName.grey]]. */ diff --git a/core/common/src/SpatialClassification.ts b/core/common/src/SpatialClassification.ts index 3d5ea68caabb..15ddacffe1e8 100644 --- a/core/common/src/SpatialClassification.ts +++ b/core/common/src/SpatialClassification.ts @@ -12,7 +12,7 @@ import { ModelMapLayerSettings } from "./MapLayerSettings"; /** Describes how a [[SpatialClassifier]] affects the display of classified geometry - that is, geometry intersecting * the classifier. * @public - * @extensionApi + * @extensions */ export enum SpatialClassifierInsideDisplay { /** The geometry is not displayed. */ @@ -30,7 +30,7 @@ export enum SpatialClassifierInsideDisplay { /** Describes how a [[SpatialClassifier]] affects the display of unclassified geometry - that is, geometry not intersecting * the classifier. * @public - * @extensionApi + * @extensions */ export enum SpatialClassifierOutsideDisplay { /** The geometry is not displayed. */ @@ -43,7 +43,7 @@ export enum SpatialClassifierOutsideDisplay { /** JSON representation of a [[SpatialClassifierFlags]]. * @public - * @extensionApi + * @extensions */ export interface SpatialClassifierFlagsProps { /** @see [[SpatialClassifierFlags.inside]]. */ @@ -114,7 +114,7 @@ export class SpatialClassifierFlags { /** JSON representation of a [[SpatialClassifier]]. * @public - * @extensionApi + * @extensions */ export interface SpatialClassifierProps { /** @see [[SpatialClassifier.modelId]]. */ @@ -221,7 +221,7 @@ export class SpatialClassifier { /** An object that can store the JSON representation of a list of [[SpatialClassifier]]s. * @see [[SpatialClassifiers]]. * @public - * @extensionApi + * @extensions */ export interface SpatialClassifiersContainer { /** The list of classifiers. */ diff --git a/core/common/src/TerrainSettings.ts b/core/common/src/TerrainSettings.ts index 2049517bc56b..994c7b49b3fc 100644 --- a/core/common/src/TerrainSettings.ts +++ b/core/common/src/TerrainSettings.ts @@ -11,7 +11,7 @@ import { BackgroundMapProps } from "./BackgroundMapSettings"; /** The current set of supported terrain providers. Currently only CesiumWorldTerrain. * @see [[TerrainProps]] * @public - * @extensionApi + * @extensions */ export type TerrainProviderName = "CesiumWorldTerrain"; @@ -19,7 +19,7 @@ export type TerrainProviderName = "CesiumWorldTerrain"; * @see [[DisplayStyleSettingsProps]] * @see [[BackgroundMapProps]] * @public - * @extensionApi + * @extensions */ export interface TerrainProps { /** Identifies the provider currently only CesiumWorldTerrain is supported. */ @@ -41,7 +41,7 @@ export interface TerrainProps { /** Correction modes for terrain height * @see [[TerrainProps]] * @public - * @extensionApi + * @extensions */ export enum TerrainHeightOriginMode { /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */ diff --git a/core/common/src/TextureProps.ts b/core/common/src/TextureProps.ts index 92014c7e1302..78cce8964f54 100644 --- a/core/common/src/TextureProps.ts +++ b/core/common/src/TextureProps.ts @@ -13,7 +13,7 @@ import { Base64EncodedString } from "./Base64EncodedString"; /** Properties that define a [Texture]($backend) element. * @public - * @extensionApi + * @extensions */ export interface TextureProps extends DefinitionElementProps { /** Format of the image data. */ @@ -29,7 +29,7 @@ export interface TextureProps extends DefinitionElementProps { /** Properties that specify what texture should be loaded and how it should be loaded. * @public - * @extensionApi + * @extensions */ export interface TextureLoadProps { /** A valid Id64 string identifying the texture */ @@ -58,7 +58,7 @@ export enum TextureTransparency { /** Information about [Texture]($backend) data returned by [[IModelReadRpcInterface.queryTextureData]]. * @public - * @extensionApi + * @extensions */ export interface TextureData { /** The width of the image, possibly reduced from the original width based on [[TextureLoadProps.maxTextureSize]]. */ diff --git a/core/common/src/ThematicDisplay.ts b/core/common/src/ThematicDisplay.ts index 1c4b1de95b4f..1b57a3753e68 100644 --- a/core/common/src/ThematicDisplay.ts +++ b/core/common/src/ThematicDisplay.ts @@ -14,7 +14,7 @@ import { Gradient } from "./Gradient"; /** A thematic gradient mode used to generate and apply a thematic effect to a scene. * @see [[ThematicGradientSettings.mode]] * @public - * @extensionApi + * @extensions */ export enum ThematicGradientMode { /** Apply a smooth color gradient to the scene. */ @@ -31,7 +31,7 @@ export enum ThematicGradientMode { * @see [[ThematicGradientSettings.colorScheme]] * @see [[ThematicDisplay.range]] * @public - * @extensionApi + * @extensions */ export enum ThematicGradientColorScheme { /** A color gradient scheme that represents a blue-to-red gradation. */ @@ -52,7 +52,7 @@ export enum ThematicGradientColorScheme { /** JSON representation of a [[ThematicGradientSettings]]. * @public - * @extensionApi + * @extensions **/ export interface ThematicGradientSettingsProps { /** The thematic image mode used to generate and apply the thematic gradient. Defaults to [[ThematicGradientMode.Smooth]]. */ @@ -240,7 +240,7 @@ export class ThematicGradientSettings { /** JSON representation of a [[ThematicDisplaySensor]]. * @public - * @extensionApi + * @extensions */ export interface ThematicDisplaySensorProps { /** The world position of the sensor in X, Y, and Z. Defaults to {0,0,0}. */ @@ -290,7 +290,7 @@ export class ThematicDisplaySensor { /** JSON representation of a [[ThematicDisplaySensorSettings]] for [[ThematicDisplayMode.InverseDistanceWeightedSensors]]. * @public - * @extensionApi + * @extensions */ export interface ThematicDisplaySensorSettingsProps { /** This is the list of sensors. Defaults to an empty array. */ @@ -364,7 +364,7 @@ export class ThematicDisplaySensorSettings { /** The thematic display mode. This determines how to apply the thematic color gradient to the geometry. * @public - * @extensionApi + * @extensions */ export enum ThematicDisplayMode { /** The color gradient will be mapped to surface geometry and point clouds based on world height in meters. */ @@ -385,7 +385,7 @@ export enum ThematicDisplayMode { /** JSON representation of the thematic display setup of a [[DisplayStyle3d]]. * @public - * @extensionApi + * @extensions */ export interface ThematicDisplayProps { /** The thematic display mode. This determines how to apply the thematic color gradient to the geometry. Defaults to [[ThematicDisplayMode.Height]]. */ diff --git a/core/common/src/Thumbnail.ts b/core/common/src/Thumbnail.ts index 0e6e3f4ca5a8..1cb5f91170d2 100644 --- a/core/common/src/Thumbnail.ts +++ b/core/common/src/Thumbnail.ts @@ -10,7 +10,7 @@ * outside of the image so it can be obtained without having to decode the image data. * @see [[ThumbnailProps]] * @public - * @extensionApi + * @extensions */ export interface ThumbnailFormatProps { /** X size of the image, in pixels. */ @@ -24,7 +24,7 @@ export interface ThumbnailFormatProps { /** Describes a thumbnail image for an [[IModel]] or [ViewDefinition]($backend). * @see [IModelDb.Views.getThumbnail]($backend) or [IModelConnection.Views.getThumbnail]($frontend) to obtain a thumbnail for a view. * @public - * @extensionApi + * @extensions */ export interface ThumbnailProps extends ThumbnailFormatProps { /** The image encoded as specified by [[ThumbnailFormatProps.format]]. */ diff --git a/core/common/src/TileProps.ts b/core/common/src/TileProps.ts index 4e572203c2d9..9a1889054ecd 100644 --- a/core/common/src/TileProps.ts +++ b/core/common/src/TileProps.ts @@ -64,7 +64,7 @@ export interface IModelTileTreeProps extends TileTreeProps { /** Metadata describing the version/format of the tiles supplied by the backend. * @see [[TileAdmin.queryVersionInfo]]. * @public - * @extensionApi + * @extensions */ export interface TileVersionInfo { /** The exact version of the "iMdl" tile format used by the backend when generating tile content. diff --git a/core/common/src/Tween.ts b/core/common/src/Tween.ts index 145a33e212dc..57eb28715a2e 100644 --- a/core/common/src/Tween.ts +++ b/core/common/src/Tween.ts @@ -115,22 +115,22 @@ export class Tweens { /** * @public - * @extensionApi + * @extensions */ export type TweenCallback = (obj: any) => void; /** * @public - * @extensionApi + * @extensions */ export type UpdateCallback = (obj: any, t: number) => void; /** * @public - * @extensionApi + * @extensions */ export type EasingFunction = (k: number) => number; /** * @public - * @extensionApi + * @extensions */ export type InterpolationFunction = (v: any, k: number) => number; diff --git a/core/common/src/TxnAction.ts b/core/common/src/TxnAction.ts index c7f1c7d6dd20..f74f242665b8 100644 --- a/core/common/src/TxnAction.ts +++ b/core/common/src/TxnAction.ts @@ -8,7 +8,7 @@ /** Describes the types of actions associated with [Txns]($docs/learning/InteractiveEditing.md). * @public - * @extensionApi + * @extensions */ export enum TxnAction { /** Not currently processing anything. */ diff --git a/core/common/src/ViewDetails.ts b/core/common/src/ViewDetails.ts index 360c3d27010a..cac8dd90ecbb 100644 --- a/core/common/src/ViewDetails.ts +++ b/core/common/src/ViewDetails.ts @@ -14,7 +14,7 @@ import { ModelClipGroupProps, ModelClipGroups } from "./ModelClipGroup"; * @see [[ViewDefinitionProps.jsonProperties]]. * @see [[ViewDetails3dProps]] for additional properties specific to 3d views. * @public - * @extensionApi + * @extensions */ export interface ViewDetailsProps { /** Id of the aux coord system. Default: invalid. */ @@ -35,7 +35,7 @@ export interface ViewDetailsProps { /** Describes the orientation of the grid displayed within a [Viewport]($frontend). * @public - * @extensionApi + * @extensions */ export enum GridOrientationType { /** Oriented with the view. */ @@ -53,7 +53,7 @@ export enum GridOrientationType { /** Properties of a [[ViewDefinition3dProps]] stored as JSON. * @see [[ViewDefinition3dProps.jsonProperties]]. * @public - * @extensionApi + * @extensions */ export interface ViewDetails3dProps extends ViewDetailsProps { /** Whether viewing tools are prohibited from operating in 3 dimensions on this view. Default: false. */ diff --git a/core/common/src/ViewFlags.ts b/core/common/src/ViewFlags.ts index bed70177ebba..11b27800797f 100644 --- a/core/common/src/ViewFlags.ts +++ b/core/common/src/ViewFlags.ts @@ -13,7 +13,7 @@ import { JsonUtils, Mutable, NonFunctionPropertiesOf } from "@itwin/core-bentley /** Enumerates the available basic rendering modes, as part of a [DisplayStyle]($backend)'s [[ViewFlags]]. * The rendering mode broadly affects various aspects of the display style - in particular, whether and how surfaces and their edges are drawn. * @public - * @extensionApi + * @extensions */ export enum RenderMode { /** Renders only the edges of surfaces, with exceptions for planar regions based on their [[FillFlags]]. @@ -50,7 +50,7 @@ export enum RenderMode { * those of the corresponding [[ViewFlags]] properties, making usage of this type in code error-prone. * Prefer to use [[ViewFlagsProperties]] unless you need to work directly with the persistence format. * @public - * @extensionApi + * @extensions */ export interface ViewFlagProps { /** If true, don't display geometry of class [[GeometryClass.Construction]]. */ @@ -528,13 +528,13 @@ export class ViewFlags { /** A type containing all of the properties of [[ViewFlags]] with none of the methods and with the `readonly` modifiers removed. * @see [[ViewFlags.create]], [[ViewFlags.copy]], and [[ViewFlags.override]] for methods accepting an object of this type. * @public - * @extensionApi + * @extensions */ export type ViewFlagsProperties = Mutable>; /** A type that describes how to override selected properties of a [[ViewFlags]]. * @see [[ViewFlags.override]] to apply the overrides to a ViewFlags object. * @public - * @extensionApi + * @extensions */ export type ViewFlagOverrides = Partial; diff --git a/core/common/src/ViewProps.ts b/core/common/src/ViewProps.ts index 82bf5cee6fbd..85a3bee6e718 100644 --- a/core/common/src/ViewProps.ts +++ b/core/common/src/ViewProps.ts @@ -17,7 +17,7 @@ import { ViewDetails3dProps, ViewDetailsProps } from "./ViewDetails"; /** As part of a [[ViewStateProps]], describes the [[SpatialViewDefinition]] from which a [SectionDrawing]($backend) was generated. * @see [[SectionDrawingProps]] * @public - * @extensionApi + * @extensions */ export interface SectionDrawingViewProps { /** The Id of the spatial view from which the SectionDrawing was generated. */ @@ -30,7 +30,7 @@ export interface SectionDrawingViewProps { /** Returned from [IModelDb.Views.getViewStateData]($backend). * @public - * @extensionApi + * @extensions */ export interface ViewStateProps { viewDefinitionProps: ViewDefinitionProps; @@ -49,7 +49,7 @@ export interface ViewStateProps { /** Options for loading a [[ViewStateProps]] via [IModelConnection.Views.load]($frontend) or [IModelDb.Views.getViewStateData]($backend). * @public - * @extensionApi + * @extensions */ export interface ViewStateLoadProps { /** Options for loading the view's [[DisplayStyleProps]]. */ @@ -58,7 +58,7 @@ export interface ViewStateLoadProps { /** Properties that define a ModelSelector * @public - * @extensionApi + * @extensions */ export interface ModelSelectorProps extends DefinitionElementProps { models: Id64Array; @@ -66,7 +66,7 @@ export interface ModelSelectorProps extends DefinitionElementProps { /** Properties that define a CategorySelector * @public - * @extensionApi + * @extensions */ export interface CategorySelectorProps extends DefinitionElementProps { categories: Id64Array; @@ -74,7 +74,7 @@ export interface CategorySelectorProps extends DefinitionElementProps { /** Parameters for performing a query on [ViewDefinition]($backend) classes. * @public - * @extensionApi + * @extensions */ export interface ViewQueryParams extends EntityQueryParams { wantPrivate?: boolean; @@ -82,7 +82,7 @@ export interface ViewQueryParams extends EntityQueryParams { /** Parameters used to construct a ViewDefinition * @public - * @extensionApi + * @extensions */ export interface ViewDefinitionProps extends DefinitionElementProps { categorySelectorId: Id64String; @@ -96,7 +96,7 @@ export interface ViewDefinitionProps extends DefinitionElementProps { /** Parameters to construct a ViewDefinition3d * @public - * @extensionApi + * @extensions */ export interface ViewDefinition3dProps extends ViewDefinitionProps { /** if true, camera is valid. */ @@ -117,7 +117,7 @@ export interface ViewDefinition3dProps extends ViewDefinitionProps { /** Parameters to construct a SpatialViewDefinition * @public - * @extensionApi + * @extensions */ export interface SpatialViewDefinitionProps extends ViewDefinition3dProps { modelSelectorId: Id64String; @@ -125,7 +125,7 @@ export interface SpatialViewDefinitionProps extends ViewDefinition3dProps { /** Parameters used to construct a ViewDefinition2d * @public - * @extensionApi + * @extensions */ export interface ViewDefinition2dProps extends ViewDefinitionProps { baseModelId: Id64String; @@ -136,7 +136,7 @@ export interface ViewDefinition2dProps extends ViewDefinitionProps { /** * @public - * @extensionApi + * @extensions */ export interface AuxCoordSystemProps extends ElementProps { type?: number; @@ -145,7 +145,7 @@ export interface AuxCoordSystemProps extends ElementProps { /** Properties of AuxCoordSystem2d * @public - * @extensionApi + * @extensions */ export interface AuxCoordSystem2dProps extends AuxCoordSystemProps { /** Origin of the AuxCoordSystem2d */ @@ -156,7 +156,7 @@ export interface AuxCoordSystem2dProps extends AuxCoordSystemProps { /** Properties of AuxCoordSystem3d * @public - * @extensionApi + * @extensions */ export interface AuxCoordSystem3dProps extends AuxCoordSystemProps { /** Origin of the AuxCoordSystem3d */ diff --git a/core/common/src/WhiteOnWhiteReversalSettings.ts b/core/common/src/WhiteOnWhiteReversalSettings.ts index e4b928df6e5a..45fffc270c0b 100644 --- a/core/common/src/WhiteOnWhiteReversalSettings.ts +++ b/core/common/src/WhiteOnWhiteReversalSettings.ts @@ -8,7 +8,7 @@ /** JSON representation of a [[WhiteOnWhiteReversalSettings]]. * @public - * @extensionApi + * @extensions */ export interface WhiteOnWhiteReversalProps { /** Default: false. diff --git a/core/common/src/domains/FunctionalElementProps.ts b/core/common/src/domains/FunctionalElementProps.ts index 7ed6a7398be6..424571d8906d 100644 --- a/core/common/src/domains/FunctionalElementProps.ts +++ b/core/common/src/domains/FunctionalElementProps.ts @@ -10,7 +10,7 @@ import { ElementProps, RelatedElementProps } from "../ElementProps"; /** * @public - * @extensionApi + * @extensions */ export interface FunctionalElementProps extends ElementProps { typeDefinition?: RelatedElementProps; diff --git a/core/common/src/domains/GenericElementProps.ts b/core/common/src/domains/GenericElementProps.ts index 19cb305e0677..a169f72c13be 100644 --- a/core/common/src/domains/GenericElementProps.ts +++ b/core/common/src/domains/GenericElementProps.ts @@ -10,7 +10,7 @@ import { GeometricElement2dProps, RelatedElementProps } from "../ElementProps"; /** * @public - * @extensionApi + * @extensions */ export interface ViewAttachmentLabelProps extends GeometricElement2dProps { viewAttachment?: RelatedElementProps; @@ -18,7 +18,7 @@ export interface ViewAttachmentLabelProps extends GeometricElement2dProps { /** * @public - * @extensionApi + * @extensions */ export interface CalloutProps extends GeometricElement2dProps { drawingModel?: RelatedElementProps; diff --git a/core/common/src/geometry/AdditionalTransform.ts b/core/common/src/geometry/AdditionalTransform.ts index 12ddc39f7b1f..629b32440a5d 100644 --- a/core/common/src/geometry/AdditionalTransform.ts +++ b/core/common/src/geometry/AdditionalTransform.ts @@ -16,7 +16,7 @@ import { Geometry } from "@itwin/core-geometry"; * Y = b * x + a * y + translationY * Z = z + translationZ * @public - * @extensionApi + * @extensions */ export interface Helmert2DWithZOffsetProps { /** The X post translation */ @@ -88,7 +88,7 @@ export class Helmert2DWithZOffset implements Helmert2DWithZOffsetProps { /** Additional Transform definition * @public - * @extensionApi + * @extensions */ export interface AdditionalTransformProps { /** The properties of a 2D Helmert transform with Z offset if one is defined. */ diff --git a/core/common/src/geometry/Cartographic.ts b/core/common/src/geometry/Cartographic.ts index a029b95081cd..8473059b3fc7 100644 --- a/core/common/src/geometry/Cartographic.ts +++ b/core/common/src/geometry/Cartographic.ts @@ -13,7 +13,7 @@ import { assert } from "@itwin/core-bentley"; /** The JSON representation of a Cartographic object. * @public - * @extensionApi + * @extensions **/ export interface CartographicProps { /** The longitude, specified in radians. */ diff --git a/core/common/src/geometry/CoordinateReferenceSystem.ts b/core/common/src/geometry/CoordinateReferenceSystem.ts index ce7dfb1d6c9d..b112598066b1 100644 --- a/core/common/src/geometry/CoordinateReferenceSystem.ts +++ b/core/common/src/geometry/CoordinateReferenceSystem.ts @@ -13,13 +13,13 @@ import { Carto2DDegrees, Carto2DDegreesProps, Projection, ProjectionProps } from import { AdditionalTransform, AdditionalTransformProps } from "./AdditionalTransform"; /** This type indicates possible linear and angular units supported. * @public - * @extensionApi + * @extensions */ export type UnitType = "Meter" | "InternationalFoot" | "USSurveyFoot" | "Degree" | "Unsupported"; /** The extent in latitude, longitude bounds where a horizontal CRS is applicable * @public - * @extensionApi + * @extensions */ export interface HorizontalCRSExtentProps { /** The South West point in latitude and longitude in degrees for the user-defined extent of the CRS */ @@ -78,7 +78,7 @@ export class HorizontalCRSExtent implements HorizontalCRSExtentProps { /** Horizontal Geographic Coordinate Reference System definition * @public - * @extensionApi + * @extensions */ export interface HorizontalCRSProps { /** The identifier of the horizontal CRS as stored in the dictionary or the service database */ @@ -285,7 +285,7 @@ export class HorizontalCRS implements HorizontalCRSProps { /** Vertical Geographic Coordinate reference System definition * @public - * @extensionApi + * @extensions */ export interface VerticalCRSProps { /** Vertical CRS Key name. @@ -343,7 +343,7 @@ export class VerticalCRS implements VerticalCRSProps { * additional transformation. * @see [[GeographicCRS]]. * @public - * @extensionApi + * @extensions */ export interface GeographicCRSProps { /** The horizontal portion of the geographic coordinate reference system. */ diff --git a/core/common/src/geometry/ElementGeometry.ts b/core/common/src/geometry/ElementGeometry.ts index 7677c1d328f3..4eeaf46a7a9a 100644 --- a/core/common/src/geometry/ElementGeometry.ts +++ b/core/common/src/geometry/ElementGeometry.ts @@ -25,7 +25,7 @@ import { isPlacement2dProps, PlacementProps } from "../ElementProps"; /** Specifies the type of an entry in a geometry stream. * @see [[ElementGeometryDataEntry.opcode]]. * @public - * @extensionApi + * @extensions */ export enum ElementGeometryOpcode { /** Local range of the next geometric primitive in the geometry stream. */ @@ -73,7 +73,7 @@ export enum ElementGeometryOpcode { /** Describes an entry in a geometry stream as an op-code plus the binary flatbuffer representation of the associated data. * @see [[FlatBufferGeometryStream]]. * @public - * @extensionApi + * @extensions */ export interface ElementGeometryDataEntry { /** The type of this entry. */ diff --git a/core/common/src/geometry/GeodeticDatum.ts b/core/common/src/geometry/GeodeticDatum.ts index 88b52d830e54..79796fb9c83f 100644 --- a/core/common/src/geometry/GeodeticDatum.ts +++ b/core/common/src/geometry/GeodeticDatum.ts @@ -12,7 +12,7 @@ import { GeodeticEllipsoid, GeodeticEllipsoidProps } from "./GeodeticEllipsoid"; /** Holds 3 components of a Positional Vector rotation definition in arc seconds * @public - * @extensionApi + * @extensions */ export interface XyzRotationProps { /** X rotation component in arc second */ @@ -65,7 +65,7 @@ export class XyzRotation implements XyzRotationProps { /** Type indicating the geodetic transformation method * @public - * @extensionApi + * @extensions */ export type GeodeticTransformMethod = "None" | @@ -77,7 +77,7 @@ export type GeodeticTransformMethod = /** This interface represents a geocentric (three parameters) geodetic transformation. * @public - * @extensionApi + * @extensions */ export interface GeocentricTransformProps { /** The frame translation components in meters */ @@ -120,7 +120,7 @@ export class GeocentricTransform implements GeocentricTransformProps { * EPSG operation 9606. Beware that the convention relative to rotation direction is different * from the Coordinate Frame operation (epsg 9607). * @public - * @extensionApi + * @extensions */ export interface PositionalVectorTransformProps { /** The frame translation components in meters */ @@ -185,7 +185,7 @@ export class PositionalVectorTransform implements PositionalVectorTransformProps /** Type indicating the file format of the grid files. * @public - * @extensionApi + * @extensions */ export type GridFileFormat = "NONE" | @@ -199,13 +199,13 @@ export type GridFileFormat = /** type to indicate the grid file application direction. * @public - * @extensionApi + * @extensions */ export type GridFileDirection = "Direct" | "Inverse"; /** Grid file definition containing name of the file, the format and the direction it should be applied * @public - * @extensionApi + * @extensions */ export interface GridFileDefinitionProps { /** Name of the grid shift file. This name is relative to the expected dictionary root document. @@ -270,7 +270,7 @@ export class GridFileDefinition implements GridFileDefinitionProps { /** This interface represents a grid files based geodetic transformation. * @public - * @extensionApi + * @extensions */ export interface GridFileTransformProps { /** The list of grid files. The order of file is meaningful, the first encountered that covers the extent of coordinate @@ -343,7 +343,7 @@ export class GridFileTransform implements GridFileTransformProps { /** This interface represents a geodetic transformation that enables transforming longitude/latitude coordinates * from one datum to another. * @public - * @extensionApi + * @extensions */ export interface GeodeticTransformProps { /** The method used by the geodetic transform */ @@ -461,7 +461,7 @@ export class GeodeticTransform implements GeodeticTransformProps { * Sometimes there exists transformation paths direct from one non-WGS84 datum to another non-WGS84. The current model * does not allow specifications of these special paths at the moment. * @public - * @extensionApi + * @extensions */ export interface GeodeticDatumProps { /** GeodeticDatum key name */ diff --git a/core/common/src/geometry/GeodeticEllipsoid.ts b/core/common/src/geometry/GeodeticEllipsoid.ts index 21add849538f..e0b7a82fb4b1 100644 --- a/core/common/src/geometry/GeodeticEllipsoid.ts +++ b/core/common/src/geometry/GeodeticEllipsoid.ts @@ -14,7 +14,7 @@ import { Geometry } from "@itwin/core-geometry"; * the simple equations that are defined at: * https://en.wikipedia.org/wiki/Flattening and https://en.wikipedia.org/wiki/Earth_ellipsoid. * @public - * @extensionApi + * @extensions */ export interface GeodeticEllipsoidProps { /** Ellipsoid key name */ diff --git a/core/common/src/geometry/GeometryStream.ts b/core/common/src/geometry/GeometryStream.ts index f30a91a32a90..5da7a621307f 100644 --- a/core/common/src/geometry/GeometryStream.ts +++ b/core/common/src/geometry/GeometryStream.ts @@ -27,7 +27,7 @@ import { Placement2d, Placement3d } from "./Placement"; * A GeometryAppearanceProps always signifies a reset to the [[SubCategoryAppearance]] for subsequent [[GeometryStreamProps]] entries for undefined values. * @see [[GeometryStreamEntryProps]] * @public - * @extensionApi + * @extensions */ export interface GeometryAppearanceProps { /** Optional [[SubCategory]] id for subsequent geometry. Use to create a GeometryStream with geometry that is not on the default [[SubCategory]] for the element's [[Category]] or is has geometry on multiple subCategories. */ @@ -50,7 +50,7 @@ export interface GeometryAppearanceProps { * Only one value among [[gradient]], [[backgroundFill]], and [[color]] should be set. * @see [[GeometryStreamEntryProps]] * @public - * @extensionApi + * @extensions */ export interface AreaFillProps { /** Fill display type, must be set to something other than [[FillDisplay.Never]] to display fill */ @@ -68,7 +68,7 @@ export interface AreaFillProps { /** Override [[SubCategoryAppearance.materialId]] for subsequent surface and solid geometry. * @see [[GeometryStreamEntryProps]] * @public - * @extensionApi + * @extensions */ export interface MaterialProps { /** Material id to use, specify an invalid [[Id64]] to override [[SubCategoryAppearance.materialId]] with no material. */ @@ -123,7 +123,7 @@ export namespace BRepEntity { /** Add a reference to a [[GeometryPart]] from the GeometryStream of a [[GeometricElement]]. * @see [[GeometryStreamEntryProps]] * @public - * @extensionApi + * @extensions */ export interface GeometryPartInstanceProps { /** GeometryPart id */ @@ -139,7 +139,7 @@ export interface GeometryPartInstanceProps { /** Flags applied to the entire contents of a [[GeometryStreamProps]]. * @see GeometryStreamHeaderProps * @public - * @extensionApi + * @extensions */ export enum GeometryStreamFlags { /** No flags. */ @@ -153,7 +153,7 @@ export enum GeometryStreamFlags { /** An entry in a [[GeometryStreamProps]] containing [[GeometryStreamFlags]] that apply to the geometry stream as a whole. * If this entry exists in the [[GeometryStreamProps]] array, it will always be the *first* entry. * @public - * @extensionApi + * @extensions */ export interface GeometryStreamHeaderProps { /** The flags applied to the geometry stream. */ @@ -163,7 +163,7 @@ export interface GeometryStreamHeaderProps { /** Allowed GeometryStream entries - should only set one value. * @see [GeometryStream]($docs/learning/common/geometrystream.md) * @public - * @extensionApi + * @extensions */ export interface GeometryStreamEntryProps extends GeomJson.GeometryProps { header?: GeometryStreamHeaderProps; @@ -181,7 +181,7 @@ export interface GeometryStreamEntryProps extends GeomJson.GeometryProps { /** A [[GeometricElement]]'s GeometryStream is represented by an array of [[GeometryStreamEntryProps]]. * @public - * @extensionApi + * @extensions */ export type GeometryStreamProps = GeometryStreamEntryProps[]; @@ -420,7 +420,7 @@ export class GeometryStreamBuilder { /** Represents a text string within a GeometryStream. * @public - * @extensionApi + * @extensions */ export interface TextStringPrimitive { type: "textString"; @@ -429,7 +429,7 @@ export interface TextStringPrimitive { /** Represents an image within a GeometryStream. * @public - * @extensionApi + * @extensions */ export interface ImagePrimitive { type: "image"; @@ -438,7 +438,7 @@ export interface ImagePrimitive { /** Represents a reference to a GeometryPart within a GeometryStream. * @public - * @extensionApi + * @extensions */ export interface PartReference { type: "partReference"; @@ -450,7 +450,7 @@ export interface PartReference { /** Represents a BRep within a GeometryStream. * @public - * @extensionApi + * @extensions */ export interface BRepPrimitive { type: "brep"; @@ -460,7 +460,7 @@ export interface BRepPrimitive { /** Represents one of a variety of GeometryQuery objects within a GeometryStream. * @public - * @extensionApi + * @extensions */ export interface GeometryPrimitive { type: "geometryQuery"; @@ -469,13 +469,13 @@ export interface GeometryPrimitive { /** Union of all possible geometric primitive types that may appear within a GeometryStream. * @public - * @extensionApi + * @extensions */ export type GeometryStreamPrimitive = TextStringPrimitive | PartReference | BRepPrimitive | GeometryPrimitive | ImagePrimitive; /** Holds current state information for [[GeometryStreamIterator]]. Each entry represents exactly one geometry primitive in the stream. * @public - * @extensionApi + * @extensions */ export interface GeometryStreamIteratorEntry { /** A [[GeometryParams]] representing the appearance of the current geometric entry */ diff --git a/core/common/src/geometry/ImageGraphic.ts b/core/common/src/geometry/ImageGraphic.ts index 47b216108ea3..4939964de55b 100644 --- a/core/common/src/geometry/ImageGraphic.ts +++ b/core/common/src/geometry/ImageGraphic.ts @@ -11,14 +11,14 @@ import { Point3d, Range3d, Transform, XYZProps } from "@itwin/core-geometry"; /** JSON representation of the 4 corners of an [[ImageGraphicProps]]. @see [[ImageGraphicCorners]]. * @public - * @extensionApi + * @extensions */ export type ImageGraphicCornersProps = [XYZProps, XYZProps, XYZProps, XYZProps]; /** JSON representation of an [[ImageGraphic]]. * @see [[GeometryStreamEntryProps]]. * @public - * @extensionApi + * @extensions */ export interface ImageGraphicProps { /** The 4 corners of defining the quadrilateral on which the image is displayed. */ diff --git a/core/common/src/geometry/Placement.ts b/core/common/src/geometry/Placement.ts index 93ca8c110782..7eb5edafc209 100644 --- a/core/common/src/geometry/Placement.ts +++ b/core/common/src/geometry/Placement.ts @@ -16,37 +16,37 @@ import { IModelError } from "../IModelError"; /** A Range3d that is aligned with the axes of spatial coordinates. * @public - * @extensionApi + * @extensions */ export type AxisAlignedBox3d = Range3d; /** The properties of a Range3d. * @public - * @extensionApi + * @extensions */ export type AxisAlignedBox3dProps = Range3dProps; /** A bounding box aligned to the orientation of a 3d Element * @public - * @extensionApi + * @extensions */ export type ElementAlignedBox3d = Range3d; /** A bounding box aligned to the orientation of a 2d Element * @public - * @extensionApi + * @extensions */ export type ElementAlignedBox2d = Range2d; /** A bounding box aligned to a local coordinate system * @public - * @extensionApi + * @extensions */ export type LocalAlignedBox3d = Range3d; /** Either a Placement2d or Placement3d * @public - * @extensionApi + * @extensions */ export type Placement = Placement2d | Placement3d; diff --git a/core/common/src/geometry/Projection.ts b/core/common/src/geometry/Projection.ts index b677f6679c36..50a8a8b3a69e 100644 --- a/core/common/src/geometry/Projection.ts +++ b/core/common/src/geometry/Projection.ts @@ -14,7 +14,7 @@ import { Geometry } from "@itwin/core-geometry"; * with units as degrees. * All other projection indicated a projected CRS. * @public - * @extensionApi + * @extensions */ export type ProjectionMethod = "None" | @@ -73,7 +73,7 @@ export type ProjectionMethod = * Y1 = b1*X + b2*Y + translationY * An affine representing no transformation will have: a1 = 1.0, a2 = 0.0, b1 = 0.0, b2 = 1.0. * @public - * @extensionApi + * @extensions */ export interface AffineTransformProps { /** The X post translation */ @@ -148,20 +148,20 @@ export class AffineTransform implements AffineTransformProps { /** Type used in the definition of UTM Zoning projection. This projection only requires a zone number and * the hemisphere North or South. * @public - * @extensionApi + * @extensions */ export type HemisphereEnum = "South" | "North"; /** The type to define the three zones of the Danish System 34 projections. * @public - * @extensionApi + * @extensions */ export type DanishSystem34Region = "Jylland" | "Sjaelland" | "Bornholm"; /** This class encapsulates the projection of the CRS. The projection relies on a projection method * and a set of projection parameters specific to projection method selected. * @public - * @extensionApi + * @extensions */ export interface ProjectionProps { /** The projection method. */ @@ -403,7 +403,7 @@ export class Projection implements ProjectionProps { /** A 2D cartographic point in degrees * @public - * @extensionApi + * @extensions */ export interface Carto2DDegreesProps { /** Latitude value in degrees */ diff --git a/core/common/src/geometry/TextString.ts b/core/common/src/geometry/TextString.ts index 57a70696479d..8368388255bc 100644 --- a/core/common/src/geometry/TextString.ts +++ b/core/common/src/geometry/TextString.ts @@ -12,7 +12,7 @@ import { FontId } from "../Fonts"; /** Properties for a TextString class. * @see [[GeometryStreamEntryProps]] * @public - * @extensionApi + * @extensions */ export interface TextStringProps { /** text string */ diff --git a/core/common/src/ipc/IpcSocket.ts b/core/common/src/ipc/IpcSocket.ts index ca3e6f6a9c42..fca79c9b7db2 100644 --- a/core/common/src/ipc/IpcSocket.ts +++ b/core/common/src/ipc/IpcSocket.ts @@ -21,7 +21,7 @@ export type IpcListener = (evt: Event, ...args: any[]) => void; /** * Function returned when establishing an Ipc `receive` listener or `invoke` handler. Call this method to remove the listener/handler. * @public - * @extensionApi + * @extensions */ export type RemoveFunction = () => void; diff --git a/core/common/src/rpc/core/RpcInvocation.ts b/core/common/src/rpc/core/RpcInvocation.ts index bd35b9e95248..eb01620f6eb8 100644 --- a/core/common/src/rpc/core/RpcInvocation.ts +++ b/core/common/src/rpc/core/RpcInvocation.ts @@ -22,7 +22,7 @@ import { CURRENT_INVOCATION, RpcRegistry } from "./RpcRegistry"; /** The properties of an RpcActivity. * @public - * @extensionApi + * @extensions */ export interface RpcActivity extends SessionProps { /** Used for logging to correlate an Rpc activity between frontend and backend */ diff --git a/core/common/src/tile/ElementGraphics.ts b/core/common/src/tile/ElementGraphics.ts index ae093972e433..1599e1780582 100644 --- a/core/common/src/tile/ElementGraphics.ts +++ b/core/common/src/tile/ElementGraphics.ts @@ -16,7 +16,7 @@ import { ContentFlags, EdgeType, TreeFlags } from "../tile/TileMetadata"; /** Wire format describing properties common to [[PersistentGraphicsRequestProps]] and [[DynamicGraphicsRequestProps]]. * @see [[ElementGraphicsRequestProps]] for more details. * @public - * @extensionApi + * @extensions */ export interface GraphicsRequestProps { /** Uniquely identifies this request among all [[ElementGraphicsRequestProps]] for a given [[IModel]]. */ @@ -52,7 +52,7 @@ export interface GraphicsRequestProps { /** Wire format describing a request to produce graphics in "iMdl" format for a single element. * @see [[ElementGraphicsRequestProps]] for more details. * @public - * @extensionApi + * @extensions */ export interface PersistentGraphicsRequestProps extends GraphicsRequestProps { /** The element whose geometry is to be used to generate the graphics. */ @@ -61,7 +61,7 @@ export interface PersistentGraphicsRequestProps extends GraphicsRequestProps { /** As part of a [[DynamicGraphicsRequestProps]], specifies the geometry from which to generate the graphics in JSON format. * @public - * @extensionApi + * @extensions */ export interface JsonGeometryStream { /** Discriminator for [[DynamicGraphicsRequestProps.geometry]]. */ @@ -72,7 +72,7 @@ export interface JsonGeometryStream { /** As part of a [[DynamicGraphicsRequestProps]], specifies the geometry from which to generate the graphics in binary flatbuffer-encoded format. * @public - * @extensionApi + * @extensions */ export interface FlatBufferGeometryStream { /** Discriminator for [[DynamicGraphicsRequestProps.geometry]]. */ @@ -85,7 +85,7 @@ export interface FlatBufferGeometryStream { * @see [[DynamicGraphicsRequest2dProps]] and [[DynamicGraphicsRequest3dProps]]. * @see [[ElementGraphicsRequestProps]] for more details. * @public - * @extensionApi + * @extensions */ export interface DynamicGraphicsRequestProps extends GraphicsRequestProps { /** The geometry from which to generate the graphics. */ @@ -106,7 +106,7 @@ export interface DynamicGraphicsRequestProps extends GraphicsRequestProps { /** Wire format describing a request to produce graphics in "iMdl" format for a 2d geometry stream. * @see [[ElementGraphicsRequestProps]] for more details. * @public - * @extensionApi + * @extensions */ export interface DynamicGraphicsRequest2dProps extends DynamicGraphicsRequestProps { /** Specifies the geometry is 2d. */ @@ -118,7 +118,7 @@ export interface DynamicGraphicsRequest2dProps extends DynamicGraphicsRequestPro /** Wire format describing a request to produce graphics in "iMdl" format for a 3d geometry stream. * @see [[ElementGraphicsRequestProps]] for more details. * @public - * @extensionApi + * @extensions */ export interface DynamicGraphicsRequest3dProps extends DynamicGraphicsRequestProps { /** Specifies the geometry is 3d. */ @@ -132,6 +132,6 @@ export interface DynamicGraphicsRequest3dProps extends DynamicGraphicsRequestPro * @see [TileAdmin.requestElementGraphics]($frontend) and [IModelDb.generateElementGraphics]($backend) to fulfill such a request. * @see [readElementGraphics]($frontend) to convert the result of a request to a [RenderGraphic]($frontend) for display. * @public - * @extensionApi + * @extensions */ export type ElementGraphicsRequestProps = PersistentGraphicsRequestProps | DynamicGraphicsRequest2dProps | DynamicGraphicsRequest3dProps; diff --git a/core/frontend/src/AccuDraw.ts b/core/frontend/src/AccuDraw.ts index 5bab8d339d3c..3048dc2dee7e 100644 --- a/core/frontend/src/AccuDraw.ts +++ b/core/frontend/src/AccuDraw.ts @@ -3084,7 +3084,7 @@ export class AccuDraw { /** Specify the rotation to return from [[AccuDrawHintBuilder.getContextRotation]]. * @public - * @extensionApi + * @extensions */ export enum ContextRotationId { Top, Front, Left, Bottom, Back, Right, View, Face } @@ -3097,7 +3097,7 @@ export enum ContextRotationId { Top, Front, Left, Bottom, Back, Right, View, Fac * through keyboard shortcuts. * @see [Using AccuDraw]($docs/learning/frontend/primitivetools.md#AccuDraw)* * @public - * @extensionApi REAL + * @extensions REAL */ export class AccuDrawHintBuilder { private _flagOrigin = false; diff --git a/core/frontend/src/AccuSnap.ts b/core/frontend/src/AccuSnap.ts index 039a4185f69f..0360f35dc59c 100644 --- a/core/frontend/src/AccuSnap.ts +++ b/core/frontend/src/AccuSnap.ts @@ -171,7 +171,7 @@ export class TouchCursor implements CanvasDecoration { /** AccuSnap is an aide for snapping to interesting points on elements or decorations as the cursor moves over them. * @see [Using AccuSnap]($docs/learning/frontend/primitivetools.md#AccuSnap) * @public - * @extensionApi + * @extensions */ export class AccuSnap implements Decorator { /** Currently active hit */ diff --git a/core/frontend/src/AuxCoordSys.ts b/core/frontend/src/AuxCoordSys.ts index e220f65e3024..a6bb6ea1cebb 100644 --- a/core/frontend/src/AuxCoordSys.ts +++ b/core/frontend/src/AuxCoordSys.ts @@ -21,7 +21,7 @@ import { ViewState } from "./ViewState"; /** * @public - * @extensionApi + * @extensions */ export enum ACSType { None = 0, @@ -32,7 +32,7 @@ export enum ACSType { /** * @public - * @extensionApi + * @extensions */ export enum ACSDisplayOptions { None = 0, // used for testing individual bits. @@ -59,7 +59,7 @@ const enum ACSDisplaySizes { // eslint-disable-line no-restricted-syntax /** The state of an AuxCoordSystem element in the frontend * @public - * @extensionApi + * @extensions */ export abstract class AuxCoordSystemState extends ElementState implements AuxCoordSystemProps { /** @internal */ @@ -300,7 +300,7 @@ export abstract class AuxCoordSystemState extends ElementState implements AuxCoo /** The state of an AuxCoordSystem2d element in the frontend * @public - * @extensionApi + * @extensions */ export class AuxCoordSystem2dState extends AuxCoordSystemState implements AuxCoordSystem2dProps { /** @internal */ @@ -335,7 +335,7 @@ export class AuxCoordSystem2dState extends AuxCoordSystemState implements AuxCoo /** The state of an AuxCoordSystem3d element in the frontend * @public - * @extensionApi + * @extensions */ export class AuxCoordSystem3dState extends AuxCoordSystemState implements AuxCoordSystem3dProps { /** @internal */ @@ -379,7 +379,7 @@ export class AuxCoordSystem3dState extends AuxCoordSystemState implements AuxCoo /** The state of an AuxCoordSystemSpatial element in the frontend * @public - * @extensionApi + * @extensions */ export class AuxCoordSystemSpatialState extends AuxCoordSystem3dState { /** @internal */ diff --git a/core/frontend/src/BingLocation.ts b/core/frontend/src/BingLocation.ts index 78bda18b68c8..8bf7b479eb09 100644 --- a/core/frontend/src/BingLocation.ts +++ b/core/frontend/src/BingLocation.ts @@ -13,7 +13,7 @@ import { GlobalLocation } from "./ViewGlobalLocation"; /** Provides an interface to the [Bing Maps location services](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/). * @public - * @extensionApi REAL + * @extensions REAL */ export class BingLocationProvider { private _locationRequestTemplate: string; diff --git a/core/frontend/src/CategorySelectorState.ts b/core/frontend/src/CategorySelectorState.ts index d548e1419aaf..53deee332879 100644 --- a/core/frontend/src/CategorySelectorState.ts +++ b/core/frontend/src/CategorySelectorState.ts @@ -18,7 +18,7 @@ import { IModelConnection } from "./IModelConnection"; * use [[ViewState.changeCategoryDisplay]] to ensure the view updates appropriately on screen. * @see [[Category]] * @public - * @extensionApi + * @extensions */ export class CategorySelectorState extends ElementState { /** @internal */ diff --git a/core/frontend/src/ChangeFlags.ts b/core/frontend/src/ChangeFlags.ts index 772d8c4469a9..91851088d739 100644 --- a/core/frontend/src/ChangeFlags.ts +++ b/core/frontend/src/ChangeFlags.ts @@ -28,7 +28,7 @@ export enum ChangeFlag { /** Describes which aspects of a [[Viewport]] have changed. Each time [[Viewport.renderFrame]] is invoked, the aspects of the viewport that have changed since * the previous call to `renderFrame` are computed and dispatched via the [[Viewport.onViewportChanged]] event. * @public - * @extensionApi + * @extensions */ export class ChangeFlags { /** @internal */ diff --git a/core/frontend/src/ContextRealityModelState.ts b/core/frontend/src/ContextRealityModelState.ts index efad7d13ec14..ccce3982366c 100644 --- a/core/frontend/src/ContextRealityModelState.ts +++ b/core/frontend/src/ContextRealityModelState.ts @@ -20,7 +20,7 @@ import { createOrbitGtTileTreeReference, createRealityTileTreeReference, Reality * @see [[DisplayStyleState.contextRealityModelStates]]. * @see [[DisplayStyleState.attachRealityModel]]. * @public - * @extensionApi + * @extensions */ export class ContextRealityModelState extends ContextRealityModel { private readonly _treeRef: RealityModelTileTree.Reference; diff --git a/core/frontend/src/CoordSystem.ts b/core/frontend/src/CoordSystem.ts index 93e3f7d0f540..d9513d248b7c 100644 --- a/core/frontend/src/CoordSystem.ts +++ b/core/frontend/src/CoordSystem.ts @@ -8,7 +8,7 @@ /** Coordinate system types * @public - * @extensionApi + * @extensions */ export enum CoordSystem { /** Coordinates are relative to the origin of the viewing rectangle. diff --git a/core/frontend/src/DisplayStyleState.ts b/core/frontend/src/DisplayStyleState.ts index fbe2b580b919..b1d4fc70381b 100644 --- a/core/frontend/src/DisplayStyleState.ts +++ b/core/frontend/src/DisplayStyleState.ts @@ -37,7 +37,7 @@ export class TerrainDisplayOverrides { /** Options controlling display of [OpenStreetMap Buildings](https://cesium.com/platform/cesium-ion/content/cesium-osm-buildings/). * @see [[DisplayStyleState.setOSMBuildingDisplay]]. * @public - * @extensionApi + * @extensions */ export interface OsmBuildingDisplayOptions { /** If defined, enables or disables display of the buildings by attaching or detaching the OpenStreetMap Buildings reality model. */ @@ -48,7 +48,7 @@ export interface OsmBuildingDisplayOptions { /** A DisplayStyle defines the parameters for 'styling' the contents of a [[ViewState]]. * @public - * @extensionApi + * @extensions */ export abstract class DisplayStyleState extends ElementState implements DisplayStyleProps { /** @internal */ @@ -788,7 +788,7 @@ export abstract class DisplayStyleState extends ElementState implements DisplayS /** A display style that can be applied to 2d views. * @public - * @extensionApi + * @extensions */ export class DisplayStyle2dState extends DisplayStyleState { /** @internal */ @@ -809,7 +809,7 @@ export class DisplayStyle2dState extends DisplayStyleState { /** A [[DisplayStyleState]] that can be applied to spatial views. * @public - * @extensionApi + * @extensions */ export class DisplayStyle3dState extends DisplayStyleState { /** @internal */ diff --git a/core/frontend/src/DrawingViewState.ts b/core/frontend/src/DrawingViewState.ts index 3db04b4db45f..21d54d087124 100644 --- a/core/frontend/src/DrawingViewState.ts +++ b/core/frontend/src/DrawingViewState.ts @@ -265,7 +265,7 @@ class SectionAttachment { /** A view of a [DrawingModel]($backend) * @public - * @extensionApi + * @extensions */ export class DrawingViewState extends ViewState2d { /** @internal */ diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index 80fac3c85217..6c1730640d5b 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -17,7 +17,7 @@ import { ViewRect } from "./ViewRect"; /** The possible actions for which a locate filter can be called. * @public - * @extensionApi + * @extensions */ export enum LocateAction { Identify = 0, @@ -27,7 +27,7 @@ export enum LocateAction { /** Values to return from a locate filter. * Return `Reject` to indicate the element is unacceptable. * @public - * @extensionApi + * @extensions */ export enum LocateFilterStatus { Accept = 0, @@ -36,7 +36,7 @@ export enum LocateFilterStatus { /** * @public - * @extensionApi + * @extensions */ export enum SnapStatus { Success = 0, @@ -51,7 +51,7 @@ export enum SnapStatus { /** Options that customize the way element location (i.e. *picking*) works. * @public - * @extensionApi + * @extensions */ export class LocateOptions { /** If true, also test graphics from view decorations. */ @@ -100,7 +100,7 @@ export class LocateOptions { /** * @public - * @extensionApi REAL + * @extensions REAL */ export class LocateResponse { public snapStatus = SnapStatus.Success; @@ -126,7 +126,7 @@ export class LocateResponse { /** * @public - * @extensionApi + * @extensions */ export interface HitListHolder { setHitList(list: HitList | undefined): void; @@ -134,7 +134,7 @@ export interface HitListHolder { /** * @public - * @extensionApi + * @extensions */ export class ElementPicker { public viewport?: Viewport; @@ -281,7 +281,7 @@ export class ElementPicker { /** * @public - * @extensionApi + * @extensions */ export class ElementLocateManager { public hitList?: HitList; diff --git a/core/frontend/src/EmphasizeElements.ts b/core/frontend/src/EmphasizeElements.ts index 58983bc5b3ef..a8e6aa91d184 100644 --- a/core/frontend/src/EmphasizeElements.ts +++ b/core/frontend/src/EmphasizeElements.ts @@ -14,7 +14,7 @@ import { Viewport } from "./Viewport"; /** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides. * @public - * @extensionApi REAL + * @extensions REAL */ export class EmphasizeElements implements FeatureOverrideProvider { private _defaultAppearance?: FeatureAppearance; diff --git a/core/frontend/src/EntityState.ts b/core/frontend/src/EntityState.ts index d601d6424890..bd3b63b5f895 100644 --- a/core/frontend/src/EntityState.ts +++ b/core/frontend/src/EntityState.ts @@ -12,7 +12,7 @@ import { IModelConnection } from "./IModelConnection"; /** The "state" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class. * @public - * @extensionApi + * @extensions */ export class EntityState implements EntityProps { /** The name of the BIS schema for this class. @@ -76,7 +76,7 @@ export class EntityState implements EntityProps { /** The "state" of an Element as represented in a web browser. * @public - * @extensionApi + * @extensions */ export class ElementState extends EntityState implements ElementProps { /** @internal */ diff --git a/core/frontend/src/FeatureOverrideProvider.ts b/core/frontend/src/FeatureOverrideProvider.ts index 6f18f65623aa..022fd0059664 100644 --- a/core/frontend/src/FeatureOverrideProvider.ts +++ b/core/frontend/src/FeatureOverrideProvider.ts @@ -16,7 +16,7 @@ import { FeatureSymbology } from "./render/FeatureSymbology"; * * @see [[Viewport.addFeatureOverrideProvider]] to register a provider with a viewport. * @public - * @extensionApi + * @extensions */ export interface FeatureOverrideProvider { /** Add to the supplied overrides any symbology overrides to be applied to the specified viewport. */ diff --git a/core/frontend/src/FlashSettings.ts b/core/frontend/src/FlashSettings.ts index e10a2c377cc6..763154d7df5e 100644 --- a/core/frontend/src/FlashSettings.ts +++ b/core/frontend/src/FlashSettings.ts @@ -10,7 +10,7 @@ import { BeDuration, Mutable } from "@itwin/core-bentley"; /** As part of [[FlashSettings]], describes how geometry is flashed. * @public - * @extensionApi + * @extensions */ export enum FlashMode { /** The color of the geometry is mixed with the hilite color. */ @@ -24,7 +24,7 @@ export enum FlashMode { /** Options used to construct or clone a [[FlashSettings]]. All properties are mutable and optional; those left undefined receive their default * values. * @public - * @extensionApi + * @extensions */ export type FlashSettingsOptions = Mutable>; @@ -38,7 +38,7 @@ export type FlashSettingsOptions = Mutable>; * @see [[Viewport.flashSettings]] to customize the flash behavior for a viewport. * @see [[Viewport.hilite]] to customize the hilite color used by [[FlashMode.Hilite]]. * @public - * @extensionApi + * @extensions */ export class FlashSettings { /** The duration in seconds over which the flash effect increases from zero to [[maxIntensity]], in [0..10]. diff --git a/core/frontend/src/FrontendHubAccess.ts b/core/frontend/src/FrontendHubAccess.ts index 3924caef55de..feb374202049 100644 --- a/core/frontend/src/FrontendHubAccess.ts +++ b/core/frontend/src/FrontendHubAccess.ts @@ -11,7 +11,7 @@ import { ChangesetIndexAndId, IModelVersion } from "@itwin/core-common"; /** * @public - * @extensionApi + * @extensions */ export interface IModelIdArg { iModelId: GuidString; diff --git a/core/frontend/src/FrontendLoggerCategory.ts b/core/frontend/src/FrontendLoggerCategory.ts index 96ceb5f15d05..93fbdb381982 100644 --- a/core/frontend/src/FrontendLoggerCategory.ts +++ b/core/frontend/src/FrontendLoggerCategory.ts @@ -10,7 +10,7 @@ * @note All logger categories in this package start with the `core-frontend` prefix. * @see [Logger]($bentley) * @public - * @extensionApi + * @extensions */ export enum FrontendLoggerCategory { Package = "core-frontend", diff --git a/core/frontend/src/FrustumAnimator.ts b/core/frontend/src/FrustumAnimator.ts index 5a27c069d0f2..0593f8b66e77 100644 --- a/core/frontend/src/FrustumAnimator.ts +++ b/core/frontend/src/FrustumAnimator.ts @@ -46,7 +46,7 @@ function interpolateSwingingEye( } /** Animates the transition of a [[Viewport]] from one [Frustum]($common) to another. The viewport will render as many frames as necessary during the supplied duration. * @public - * @extensionApi REAL + * @extensions REAL */ export class FrustumAnimator implements Animator { private _tweens = new Tweens(); diff --git a/core/frontend/src/FuzzySearch.ts b/core/frontend/src/FuzzySearch.ts index 424b64a9af56..7a015ff4ff4d 100644 --- a/core/frontend/src/FuzzySearch.ts +++ b/core/frontend/src/FuzzySearch.ts @@ -111,7 +111,7 @@ export class FuzzySearch { /** Interface implemented by objects returned while iterating through FuzzySearchResults * @public - * @extensionApi + * @extensions */ export interface FuzzySearchResult { /** Return the current result object */ diff --git a/core/frontend/src/GlobeAnimator.ts b/core/frontend/src/GlobeAnimator.ts index 42338916567d..9d91ea599592 100644 --- a/core/frontend/src/GlobeAnimator.ts +++ b/core/frontend/src/GlobeAnimator.ts @@ -18,7 +18,7 @@ import { Animator } from "./ViewAnimation"; * The duration of the animation varies based on the distance traversed. * @see [[Viewport.animateFlyoverToGlobalLocation]]. * @public - * @extensionApi REAL + * @extensions REAL */ export class GlobeAnimator implements Animator { protected _flightTweens = new Tweens(); diff --git a/core/frontend/src/HitDetail.ts b/core/frontend/src/HitDetail.ts index 2cbc8369480c..27196ceac0f0 100644 --- a/core/frontend/src/HitDetail.ts +++ b/core/frontend/src/HitDetail.ts @@ -17,7 +17,7 @@ import { ScreenViewport } from "./Viewport"; /** * @public - * @extensionApi + * @extensions */ export enum SnapMode { Nearest = 1, @@ -31,7 +31,7 @@ export enum SnapMode { /** * @public - * @extensionApi + * @extensions */ export enum SnapHeat { None = 0, @@ -41,7 +41,7 @@ export enum SnapHeat { /** The procedure that generated this Hit. * @public - * @extensionApi + * @extensions */ export enum HitSource { None = 0, @@ -58,7 +58,7 @@ export enum HitSource { /** What was being tested to generate this hit. This is not the element or * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit. * @public - * @extensionApi + * @extensions */ export enum HitGeomType { None = 0, @@ -71,7 +71,7 @@ export enum HitGeomType { /** Classification of GeometricPrimitive that generated the Hit. * @public - * @extensionApi + * @extensions */ export enum HitParentGeomType { None = 0, @@ -84,7 +84,7 @@ export enum HitParentGeomType { /** * @public - * @extensionApi + * @extensions */ export enum HitPriority { WireEdge = 0, @@ -98,7 +98,7 @@ export enum HitPriority { /** * @public - * @extensionApi + * @extensions */ export enum HitDetailType { Hit = 1, @@ -109,7 +109,7 @@ export enum HitDetailType { /** A HitDetail stores the result when locating geometry displayed in a view. * It holds an approximate location on an element (or decoration) from a *pick*. * @public - * @extensionApi + * @extensions */ export class HitDetail { private readonly _iModel?: IModelConnection; @@ -197,7 +197,7 @@ export class HitDetail { /** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*, * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode. * @public - * @extensionApi + * @extensions */ export class SnapDetail extends HitDetail { /** A sprite to show the user the type of snap performed */ @@ -352,7 +352,7 @@ export class SnapDetail extends HitDetail { /** * @public - * @extensionApi + * @extensions */ export class IntersectDetail extends SnapDetail { public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) { @@ -388,7 +388,7 @@ export class IntersectDetail extends SnapDetail { /** The result of a "locate" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list * are somehow *better* than those later on. * @public - * @extensionApi + * @extensions */ export class HitList { public hits: T[] = []; diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index f7c589cd97c8..6bae173d4d83 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -56,7 +56,7 @@ require("./IModeljs-css"); /** Options that can be supplied with [[IModelAppOptions]] to customize frontend security. * @public - * @extensionApi + * @extensions */ export interface FrontendSecurityOptions { /** Configures protection from Cross Site Request Forgery attacks. */ diff --git a/core/frontend/src/IModelConnection.ts b/core/frontend/src/IModelConnection.ts index aab39c498729..49fedc9e8298 100644 --- a/core/frontend/src/IModelConnection.ts +++ b/core/frontend/src/IModelConnection.ts @@ -52,7 +52,7 @@ export interface BlankConnectionProps { /** A connection to a [IModelDb]($backend) hosted on the backend. * @public - * @extensionApi + * @extensions */ export abstract class IModelConnection extends IModel { /** The [[ModelState]]s in this IModelConnection. */ diff --git a/core/frontend/src/ImageUtil.ts b/core/frontend/src/ImageUtil.ts index 138bc6aa7dd5..936fdf8422c0 100644 --- a/core/frontend/src/ImageUtil.ts +++ b/core/frontend/src/ImageUtil.ts @@ -45,7 +45,7 @@ function rgbaFromRgba(rgba: Rgba, src: Uint8Array, idx: number): number { * @param barStyle CSS style string to apply to any side bars; defaults to "#C0C0C0", which is silver. * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars. * @public - * @extensionApi REAL + * @extensions REAL */ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize = new Point2d(0, 0), barStyle = "#C0C0C0"): HTMLCanvasElement { const canvasOut = document.createElement("canvas"); @@ -74,7 +74,7 @@ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targe * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails. * @public - * @extensionApi REAL + * @extensions REAL */ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean = true): HTMLCanvasElement | undefined { const canvas = document.createElement("canvas"); @@ -113,7 +113,7 @@ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean * @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]]. * @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails. * @public - * @extensionApi REAL + * @extensions REAL */ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBufferFormat.Rgba): ImageBuffer | undefined { const context = canvas.getContext("2d"); @@ -161,7 +161,7 @@ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBuf /** Get a string describing the mime type associated with an ImageSource format. * @public - * @extensionApi REAL + * @extensions REAL */ export function getImageSourceMimeType(format: ImageSourceFormat): string { @@ -178,7 +178,7 @@ export function getImageSourceMimeType(format: ImageSourceFormat): string { /** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat. * @public - * @extensionApi REAL + * @extensions REAL */ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFormat | undefined { switch (mimeType) { @@ -193,7 +193,7 @@ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFo * @param source The ImageSource containing the binary jpeg or png data. * @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format. * @public - * @extensionApi REAL + * @extensions REAL */ export async function imageElementFromImageSource(source: ImageSource): Promise { const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) }); @@ -205,7 +205,7 @@ export async function imageElementFromImageSource(source: ImageSource): Promise< * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL. * @see tryImageElementFromUrl. * @public - * @extensionApi REAL + * @extensions REAL */ export async function imageElementFromUrl(url: string): Promise { // We must set crossorigin property so that images loaded from same origin can be used with texImage2d. @@ -239,7 +239,7 @@ export async function tryImageElementFromUrl(url: string): Promise { const image = await imageElementFromImageSource(source); @@ -252,7 +252,7 @@ export async function extractImageSourceDimensions(source: ImageSource): Promise * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created. * @public - * @extensionApi REAL + * @extensions REAL */ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = true): string | undefined { // The default format (and the only format required to be supported) for toDataUrl() is "image/png". @@ -266,7 +266,7 @@ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = tru * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed. * @public - * @extensionApi REAL + * @extensions REAL */ export function imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha = true): string | undefined { const urlPrefix = "data:image/png;base64,"; @@ -318,7 +318,7 @@ export function getCenteredViewRect(viewRect: ViewRect, aspectRatio = 1.4): View * @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality). * @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met. * @public - * @extensionApi REAL + * @extensions REAL */ export function getCompressedJpegFromCanvas(canvas: HTMLCanvasElement, maxBytes = 60000, minCompressionQuality = 0.1): string | undefined { const decrements = 0.1; // Decrements of quality diff --git a/core/frontend/src/IpcApp.ts b/core/frontend/src/IpcApp.ts index 57311c499c54..348056915cbc 100644 --- a/core/frontend/src/IpcApp.ts +++ b/core/frontend/src/IpcApp.ts @@ -132,7 +132,7 @@ export class IpcApp { * * Then, call `MyNotificationHandler.register` at startup to connect your class to your channel. * @public - * @extensionApi + * @extensions */ export abstract class NotificationHandler { /** All subclasses must implement this method to specify their response channel name. */ diff --git a/core/frontend/src/MarginPercent.ts b/core/frontend/src/MarginPercent.ts index c3e069998de6..499e65e2b45e 100644 --- a/core/frontend/src/MarginPercent.ts +++ b/core/frontend/src/MarginPercent.ts @@ -10,7 +10,7 @@ import { Geometry } from "@itwin/core-geometry"; /** Margins for white space to be left around view volumes for [[ViewState.lookAtVolume]]. * Values mean "fraction of view size" and must be between 0 and .25. * @public - * @extensionApi REAL + * @extensions REAL */ export class MarginPercent { constructor(public left: number, public top: number, public right: number, public bottom: number) { diff --git a/core/frontend/src/Marker.ts b/core/frontend/src/Marker.ts index 6a08c0f1ce0c..b0601733be27 100644 --- a/core/frontend/src/Marker.ts +++ b/core/frontend/src/Marker.ts @@ -21,25 +21,25 @@ import { ViewRect } from "./ViewRect"; /** The types that may be used for Markers * @public - * @extensionApi + * @extensions */ export type MarkerImage = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap; /** * @public - * @extensionApi + * @extensions */ export type MarkerFillStyle = string | CanvasGradient | CanvasPattern; /** * @public - * @extensionApi + * @extensions */ export type MarkerTextAlign = "left" | "right" | "center" | "start" | "end"; /** * @public - * @extensionApi + * @extensions */ export type MarkerTextBaseline = "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom"; @@ -65,7 +65,7 @@ function getMinScaleViewW(vp: Viewport): number { * Markers draw on top of all scene graphics, and show visual cues about locations of interest. * @see [Markers]($docs/learning/frontend/Markers) * @public - * @extensionApi REAL + * @extensions REAL */ export class Marker implements CanvasDecoration { protected _scaleFactor?: Point2d; @@ -315,7 +315,7 @@ export class Marker implements CanvasDecoration { /** A cluster of one or more Markers that overlap one another in the view. The cluster's screen position is taken from its first entry. * Clusters also have a Marker themselves, that represents the whole group. The cluster marker isn't created until all entries have been added. * @public - * @extensionApi REAL + * @extensions REAL */ export class Cluster { public readonly markers: T[]; @@ -347,7 +347,7 @@ export class Cluster { /** A *set* of Markers that are logically related, such that they *cluster* when they overlap one another in screen space. * In that case, a *cluster marker* is drawn instead of the overlapping Markers. * @public - * @extensionApi + * @extensions */ export abstract class MarkerSet { private _viewport?: ScreenViewport; diff --git a/core/frontend/src/ModelSelectorState.ts b/core/frontend/src/ModelSelectorState.ts index e1d4c516a0c1..264cf3239b54 100644 --- a/core/frontend/src/ModelSelectorState.ts +++ b/core/frontend/src/ModelSelectorState.ts @@ -14,7 +14,7 @@ import { IModelConnection } from "./IModelConnection"; /** The state of a [ModelSelector]($backend). It holds a set of ids of GeometricModels for a [[SpatialViewState]]. * It defines the set of [[ModelState]]s drawn within the view as a set of IDs. * @public - * @extensionApi + * @extensions */ export class ModelSelectorState extends ElementState { /** @internal */ diff --git a/core/frontend/src/ModelState.ts b/core/frontend/src/ModelState.ts index 5b1934a99dae..0ba9ed22fa59 100644 --- a/core/frontend/src/ModelState.ts +++ b/core/frontend/src/ModelState.ts @@ -20,7 +20,7 @@ import { ViewState } from "./ViewState"; /** Represents the front-end state of a [Model]($backend). * @public - * @extensionApi + * @extensions */ export class ModelState extends EntityState implements ModelProps { /** @internal */ @@ -75,7 +75,7 @@ export class ModelState extends EntityState implements ModelProps { /** Represents the front-end state of a [GeometricModel]($backend). * The contents of a GeometricModelState can be rendered inside a [[Viewport]]. * @public - * @extensionApi + * @extensions */ export abstract class GeometricModelState extends ModelState implements GeometricModelProps { /** @internal */ @@ -188,7 +188,7 @@ export abstract class GeometricModelState extends ModelState implements Geometri } /** Represents the front-end state of a [GeometricModel2d]($backend). * @public - * @extensionApi + * @extensions */ export class GeometricModel2dState extends GeometricModelState implements GeometricModel2dProps { /** @internal */ @@ -215,7 +215,7 @@ export class GeometricModel2dState extends GeometricModelState implements Geomet /** Represents the front-end state of a [GeometricModel3d]($backend). * @public - * @extensionApi + * @extensions */ export class GeometricModel3dState extends GeometricModelState { /** @internal */ @@ -260,7 +260,7 @@ export class GeometricModel3dState extends GeometricModelState { /** Represents the front-end state of a [SheetModel]($backend). * @public - * @extensionApi + * @extensions */ export class SheetModelState extends GeometricModel2dState { /** @internal */ @@ -269,7 +269,7 @@ export class SheetModelState extends GeometricModel2dState { /** Represents the front-end state of a [SpatialModel]($backend). * @public - * @extensionApi + * @extensions */ export class SpatialModelState extends GeometricModel3dState { /** If this is a reality model, provides access to a list of available spatial classifiers that can be applied to it. */ @@ -293,7 +293,7 @@ export class SpatialModelState extends GeometricModel3dState { /** Represents the front-end state of a [PhysicalModel]($backend). * @public - * @extensionApi + * @extensions */ export class PhysicalModelState extends SpatialModelState { /** @internal */ @@ -302,7 +302,7 @@ export class PhysicalModelState extends SpatialModelState { /** Represents the front-end state of a [SpatialLocationModel]($backend). * @public - * @extensionApi + * @extensions */ export class SpatialLocationModelState extends SpatialModelState { /** @internal */ @@ -311,7 +311,7 @@ export class SpatialLocationModelState extends SpatialModelState { /** Represents the front-end state of a [DrawingModel]($backend). * @public - * @extensionApi + * @extensions */ export class DrawingModelState extends GeometricModel2dState { /** @internal */ @@ -320,7 +320,7 @@ export class DrawingModelState extends GeometricModel2dState { /** Represents the front-end state of a [SectionDrawingModel]($backend). * @public - * @extensionApi + * @extensions */ export class SectionDrawingModelState extends DrawingModelState { /** @internal */ diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 0d6176f8ce9e..8cd0b2131942 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -15,7 +15,7 @@ import { ToolAssistanceInstructions } from "./tools/ToolAssistance"; /** Describes the type and behavior of a [[NotifyMessageDetails]]. * @public - * @extensionApi + * @extensions */ export enum OutputMessageType { /** Temporary message box displays at the top or bottom of the screen then disappears automatically. */ @@ -32,7 +32,7 @@ export enum OutputMessageType { /** Classifies a [[NotifyMessageDetails]] by its level of importance. * @public - * @extensionApi + * @extensions */ export enum OutputMessagePriority { None = 0, @@ -46,7 +46,7 @@ export enum OutputMessagePriority { /** Describes the alert behavior of a [[NotifyMessageDetails]]. * @public - * @extensionApi + * @extensions */ export enum OutputMessageAlert { None = 0, @@ -56,7 +56,7 @@ export enum OutputMessageAlert { /** Reason for ending the activity message via endActivityMessage * @public - * @extensionApi + * @extensions */ export enum ActivityMessageEndReason { Completed = 0, @@ -65,7 +65,7 @@ export enum ActivityMessageEndReason { /** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]]. * @public - * @extensionApi + * @extensions */ export enum MessageBoxType { OkCancel, @@ -78,7 +78,7 @@ export enum MessageBoxType { /** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]]. * @public - * @extensionApi + * @extensions */ export enum MessageBoxIconType { NoSymbol = 0, // Means Don't draw Symbol @@ -91,7 +91,7 @@ export enum MessageBoxIconType { /** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]]. * @public - * @extensionApi + * @extensions */ export enum MessageBoxValue { Apply = 1, @@ -110,7 +110,7 @@ export enum MessageBoxValue { /** Describes the behavior of a tooltip created using [[NotificationManager.openToolTip]]. * @public - * @extensionApi + * @extensions */ export interface ToolTipOptions { duration?: BeDuration; @@ -119,7 +119,7 @@ export interface ToolTipOptions { /** Describes a message to be displayed to the user. * @public - * @extensionApi REAL + * @extensions REAL */ export class NotifyMessageDetails { public displayTime = BeDuration.fromSeconds(5); @@ -161,7 +161,7 @@ export class NotifyMessageDetails { /** Specifies the details of an activity message to be displayed to the user. * @public - * @extensionApi + * @extensions */ export class ActivityMessageDetails { public wasCancelled = false; @@ -185,7 +185,7 @@ export class ActivityMessageDetails { * Implementations of the NotificationManager may present the information in different ways. For example, in * non-interactive sessions, these messages may be saved to a log file or simply discarded. * @public - * @extensionApi + * @extensions */ export class NotificationManager implements MessagePresenter { public readonly toolTipLocation = new Point2d(); diff --git a/core/frontend/src/PerModelCategoryVisibility.ts b/core/frontend/src/PerModelCategoryVisibility.ts index 87188b96c2ea..d32b6bdc4dd7 100644 --- a/core/frontend/src/PerModelCategoryVisibility.ts +++ b/core/frontend/src/PerModelCategoryVisibility.ts @@ -17,7 +17,7 @@ import { Viewport } from "./Viewport"; * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]]. * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport. * @public - * @extensionApi + * @extensions */ export namespace PerModelCategoryVisibility { /** Describes whether and how a category's visibility is overridden. */ diff --git a/core/frontend/src/SelectionSet.ts b/core/frontend/src/SelectionSet.ts index 82178e965482..3ba710405e97 100644 --- a/core/frontend/src/SelectionSet.ts +++ b/core/frontend/src/SelectionSet.ts @@ -11,7 +11,7 @@ import { IModelConnection } from "./IModelConnection"; /** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]]. * @public - * @extensionApi + * @extensions */ export enum SelectionSetEventType { /** Elements have been added to the set. */ @@ -26,7 +26,7 @@ export enum SelectionSetEventType { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are added to the selection set. * @public - * @extensionApi + * @extensions */ export interface SelectAddEvent { type: SelectionSetEventType.Add; @@ -38,7 +38,7 @@ export interface SelectAddEvent { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are removed from the selection set. * @public - * @extensionApi + * @extensions */ export interface SelectRemoveEvent { /** The type of operation that produced this event. */ @@ -51,7 +51,7 @@ export interface SelectRemoveEvent { /** Passed to [[SelectionSet.onChanged]] event listeners when elements are simultaneously added to and removed from the selection set. * @public - * @extensionApi + * @extensions */ export interface SelectReplaceEvent { type: SelectionSetEventType.Replace; @@ -75,7 +75,7 @@ export interface SelectReplaceEvent { * } * ``` * @public - * @extensionApi + * @extensions */ export type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent; @@ -177,7 +177,7 @@ class HilitedElementIds extends HilitedIds { * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel. * @see [Hilite.Settings]($common) for customization of the hilite effect. * @public - * @extensionApi + * @extensions */ export class HiliteSet { private readonly _elements: HilitedElementIds; @@ -242,7 +242,7 @@ export class HiliteSet { * Selected elements are displayed with a customizable hilite effect within a [[Viewport]]. * @see [Hilite.Settings]($common) for customization of the hilite effect. * @public - * @extensionApi + * @extensions */ export class SelectionSet { private _elements = new Set(); diff --git a/core/frontend/src/SheetViewState.ts b/core/frontend/src/SheetViewState.ts index f053eb179d0b..8a6ffe6699c2 100644 --- a/core/frontend/src/SheetViewState.ts +++ b/core/frontend/src/SheetViewState.ts @@ -266,7 +266,7 @@ class ViewAttachments { /** A view of a [SheetModel]($backend). * @public - * @extensionApi + * @extensions */ export class SheetViewState extends ViewState2d { /** The width and height of the sheet in world coordinates. */ diff --git a/core/frontend/src/SpatialViewState.ts b/core/frontend/src/SpatialViewState.ts index d03e7df1d4e5..e7478420533e 100644 --- a/core/frontend/src/SpatialViewState.ts +++ b/core/frontend/src/SpatialViewState.ts @@ -22,7 +22,7 @@ import { SpatialTileTreeReferences, TileTreeReference } from "./tile/internal"; /** Defines a view of one or more SpatialModels. * The list of viewed models is stored in the ModelSelector. * @public - * @extensionApi + * @extensions */ export class SpatialViewState extends ViewState3d { /** @internal */ @@ -223,7 +223,7 @@ export class SpatialViewState extends ViewState3d { } /** Defines a spatial view that displays geometry on the image plane using a parallel orthographic projection. * @public - * @extensionApi + * @extensions */ export class OrthographicViewState extends SpatialViewState { /** @internal */ diff --git a/core/frontend/src/Sprites.ts b/core/frontend/src/Sprites.ts index 54f85769009e..68508879c0d8 100644 --- a/core/frontend/src/Sprites.ts +++ b/core/frontend/src/Sprites.ts @@ -28,7 +28,7 @@ import { ScreenViewport } from "./Viewport"; * can be used many times by many SpriteLocations and a single SpriteLocation can * change both position and which Sprite is shown at that position over time. * @public - * @extensionApi + * @extensions */ export class Sprite { /** The image for this Sprite. If undefined, the Spite is not valid. */ @@ -61,7 +61,7 @@ export class Sprite { /** Icon sprites are loaded from .png files in the assets directory of imodeljs-native. * They are cached by name, and the cache is cleared when the ToolAdmin is shut down. * @public - * @extensionApi + * @extensions */ export class IconSprites { private static readonly _sprites = new Map(); @@ -87,7 +87,7 @@ export class IconSprites { * * A SpriteLocation can also specify that a Sprite should be drawn partially transparent. * @public - * @extensionApi + * @extensions */ export class SpriteLocation implements CanvasDecoration { private _viewport?: ScreenViewport; diff --git a/core/frontend/src/StandardView.ts b/core/frontend/src/StandardView.ts index b007f0a8f4b6..661d3e58959e 100644 --- a/core/frontend/src/StandardView.ts +++ b/core/frontend/src/StandardView.ts @@ -9,7 +9,7 @@ import { Matrix3d } from "@itwin/core-geometry"; /** Describes a set of commonly-used view rotations. * @public - * @extensionApi + * @extensions */ export enum StandardViewId { /** Any rotation which does not match one of the standard rotations. diff --git a/core/frontend/src/TentativePoint.ts b/core/frontend/src/TentativePoint.ts index 019ead39dc53..6427a8ee08f0 100644 --- a/core/frontend/src/TentativePoint.ts +++ b/core/frontend/src/TentativePoint.ts @@ -18,7 +18,7 @@ import { ScreenViewport } from "./Viewport"; /** * @public - * @extensionApi + * @extensions */ export class TentativePoint { public isActive = false; diff --git a/core/frontend/src/Tiles.ts b/core/frontend/src/Tiles.ts index ed64fa017e13..e7b17a37e0f4 100644 --- a/core/frontend/src/Tiles.ts +++ b/core/frontend/src/Tiles.ts @@ -72,7 +72,7 @@ class TreeOwner implements TileTreeOwner { * change. * @see [[IModelConnection.tiles]]. * @public - * @extensionApi + * @extensions */ export class Tiles implements Iterable<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> { private _iModel: IModelConnection; diff --git a/core/frontend/src/ViewAnimation.ts b/core/frontend/src/ViewAnimation.ts index c0224e83c6c0..679e67d1798f 100644 --- a/core/frontend/src/ViewAnimation.ts +++ b/core/frontend/src/ViewAnimation.ts @@ -19,7 +19,7 @@ import { Point3d } from "@itwin/core-geometry"; * the viewport is closed, or viewing tools operate on it, etc. * @see [[Viewport.setAnimator]] to apply an animator to a viewport. * @public - * @extensionApi + * @extensions */ export interface Animator { /** Apply animation to the viewport. Return true when animation is completed, causing the animator to be removed from the viewport. */ @@ -31,7 +31,7 @@ export interface Animator { /** Options that control how an Viewport animation behaves. * @public - * @extensionApi + * @extensions */ export interface ViewAnimationOptions { /** Amount of time for animation, in milliseconds. Default is [[ScreenViewport.animation.time.normal]] */ @@ -46,7 +46,7 @@ export interface ViewAnimationOptions { /** Options that control how a view is aligned with the globe. * @public - * @extensionApi + * @extensions */ export interface GlobalAlignmentOptions { /** The target point about which the alignment occurs. This point will remain stationary in the view */ @@ -59,7 +59,7 @@ export interface GlobalAlignmentOptions { /** A method to be called if an error occurs while adjusting a ViewState's extents * @public - * @extensionApi + * @extensions */ export interface OnViewExtentsError { /** Function to be called when the extents are adjusted due to a limits error (view too larger or too small) */ @@ -68,7 +68,7 @@ export interface OnViewExtentsError { /** Options that control the margin around the edges of a volume for lookAt and Fit view operations * @public - * @extensionApi + * @extensions */ export interface MarginOptions { /** The percentage of the view to leave blank around the edges. */ @@ -77,7 +77,7 @@ export interface MarginOptions { /** Options that control how operations that change a viewport behave. * @public - * @extensionApi + * @extensions */ export interface ViewChangeOptions extends OnViewExtentsError, ViewAnimationOptions { /** Whether to save the result of this change into the view undo stack. Default is to save in undo. */ diff --git a/core/frontend/src/ViewCreator2d.ts b/core/frontend/src/ViewCreator2d.ts index 3ba1f39f9765..74838cf6c422 100644 --- a/core/frontend/src/ViewCreator2d.ts +++ b/core/frontend/src/ViewCreator2d.ts @@ -27,7 +27,7 @@ import { ViewState, ViewState2d } from "./ViewState"; /** Options for creating a [[ViewState2d]] via [[ViewCreator2d]]. * @public - * @extensionApi + * @extensions */ export interface ViewCreator2dOptions { /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */ @@ -48,7 +48,7 @@ export interface ViewCreator2dOptions { * const view = await viewCreator.createViewForModel(models[0].id!); * ``` * @public - * @extensionApi + * @extensions */ export class ViewCreator2d { diff --git a/core/frontend/src/ViewCreator3d.ts b/core/frontend/src/ViewCreator3d.ts index 783dae038be8..310bf0cb6f96 100644 --- a/core/frontend/src/ViewCreator3d.ts +++ b/core/frontend/src/ViewCreator3d.ts @@ -25,7 +25,7 @@ import { SpatialViewState } from "./SpatialViewState"; /** Options for creating a [[ViewState3d]] via [[ViewCreator3d]]. * @public - * @extensionApi + * @extensions */ export interface ViewCreator3dOptions { /** Turn [[Camera]] on when generating the view. Defaults to true (on) */ @@ -48,7 +48,7 @@ export interface ViewCreator3dOptions { * const defaultView = await viewCreator.createDefaultView({skyboxOn: true}); * ``` * @public - * @extensionApi + * @extensions */ export class ViewCreator3d { diff --git a/core/frontend/src/ViewGlobalLocation.ts b/core/frontend/src/ViewGlobalLocation.ts index 9769b3b4a164..5ea46f1165b2 100644 --- a/core/frontend/src/ViewGlobalLocation.ts +++ b/core/frontend/src/ViewGlobalLocation.ts @@ -14,7 +14,7 @@ import { ViewState3d } from "./ViewState"; /** Describes a rectangular area of the earth using cartographic data structures. * @public - * @extensionApi + * @extensions */ export interface GlobalLocationArea { southwest: Cartographic, northeast: Cartographic } @@ -22,7 +22,7 @@ export interface GlobalLocationArea { southwest: Cartographic, northeast: Cartog * The viewed area of the location can be optionally specified. * The center of the location is specified with the center position. * @public - * @extensionApi + * @extensions */ export interface GlobalLocation { center: Cartographic, area?: GlobalLocationArea } @@ -59,7 +59,7 @@ export function metersToRange(inputMeters: number, minimumOutput: number = 500, /** Queries the actual elevation of a cartographic point on the globe (using Bing elevation services) * @public - * @extensionApi REAL + * @extensions REAL */ export async function queryTerrainElevationOffset(viewport: ScreenViewport, carto: Cartographic): Promise { const bingElevationProvider = new BingElevationProvider(); diff --git a/core/frontend/src/ViewManager.ts b/core/frontend/src/ViewManager.ts index 164524fb8247..6e07fbded376 100644 --- a/core/frontend/src/ViewManager.ts +++ b/core/frontend/src/ViewManager.ts @@ -19,7 +19,7 @@ import { System } from "./render/webgl/System"; /** Interface for drawing [decoration graphics]($docs/learning/frontend/ViewDecorations.md) into, or on top of, the active [[ScreenViewport]]s managed by [[ViewManager]]. * Decorators generate [[Decorations]]. * @public - * @extensionApi + * @extensions */ export interface Decorator extends ViewportDecorator { /** If the [[decorate]] method created pickable graphics, return true if the supplied Id is from this Decorator. @@ -63,7 +63,7 @@ export interface Decorator extends ViewportDecorator { /** Argument for [[ViewManager.onSelectedViewportChanged]] * @public - * @extensionApi + * @extensions */ export interface SelectedViewportChangedArgs { current?: ScreenViewport; @@ -87,7 +87,7 @@ export interface ToolTipProvider { * * The ViewManager controls the render loop, which causes the contents of each registered [[Viewport]] to update on the screen. * @public - * @extensionApi + * @extensions */ export class ViewManager implements Iterable { public inDynamicsMode = false; diff --git a/core/frontend/src/ViewPose.ts b/core/frontend/src/ViewPose.ts index 83f5a7235470..40f2adf9bb64 100644 --- a/core/frontend/src/ViewPose.ts +++ b/core/frontend/src/ViewPose.ts @@ -15,7 +15,7 @@ import { ViewState, ViewState2d, ViewState3d } from "./ViewState"; * plus the camera position/angle, if it is enabled. * @note a ViewPose is immutable. * @public - * @extensionApi + * @extensions */ export abstract class ViewPose { public undoTime?: BeTimePoint; // the time this pose was created, if it is saved in the view undo stack. diff --git a/core/frontend/src/ViewRect.ts b/core/frontend/src/ViewRect.ts index a40174a4a674..917ad2a44cf6 100644 --- a/core/frontend/src/ViewRect.ts +++ b/core/frontend/src/ViewRect.ts @@ -12,7 +12,7 @@ import { LowAndHighXY, XAndY } from "@itwin/core-geometry"; * * Increasing **x** moves from left to right, and increasing **y** moves from top to bottom. * @public - * @extensionApi REAL + * @extensions REAL */ export class ViewRect { private _left!: number; diff --git a/core/frontend/src/ViewState.ts b/core/frontend/src/ViewState.ts index 9df58fe85747..6c332c5570a2 100644 --- a/core/frontend/src/ViewState.ts +++ b/core/frontend/src/ViewState.ts @@ -46,7 +46,7 @@ import { EnvironmentDecorations } from "./EnvironmentDecorations"; /** Describes the largest and smallest values allowed for the extents of a [[ViewState]]. * Attempts to exceed these limits in any dimension will fail, preserving the previous extents. * @public - * @extensionApi + * @extensions */ export interface ExtentLimits { /** The smallest allowed extent in any dimension. */ @@ -176,7 +176,7 @@ export interface AttachToViewportArgs { * discouraged - changes made to the style by one Viewport will affect the contents of the other Viewport. * * @see [Views]($docs/learning/frontend/Views.md) * @public - * @extensionApi + * @extensions */ export abstract class ViewState extends ElementState { /** @internal */ @@ -1288,7 +1288,7 @@ export abstract class ViewState extends ElementState { /** Defines the state of a view of 3d models. * @see [ViewState Parameters]($docs/learning/frontend/views#viewstate-parameters) * @public - * @extensionApi + * @extensions */ export abstract class ViewState3d extends ViewState { private readonly _details: ViewDetails3d; @@ -2160,7 +2160,7 @@ export abstract class ViewState3d extends ViewState { /** Defines the state of a view of a single 2d model. * @public - * @extensionApi + * @extensions */ export abstract class ViewState2d extends ViewState { private readonly _details: ViewDetails; diff --git a/core/frontend/src/ViewStatus.ts b/core/frontend/src/ViewStatus.ts index eaba1dd28277..ed65319774b9 100644 --- a/core/frontend/src/ViewStatus.ts +++ b/core/frontend/src/ViewStatus.ts @@ -8,7 +8,7 @@ /** Describes the result of a viewing operation such as those exposed by [[ViewState]] and [[Viewport]]. * @public - * @extensionApi + * @extensions */ export enum ViewStatus { Success = 0, diff --git a/core/frontend/src/ViewingSpace.ts b/core/frontend/src/ViewingSpace.ts index 96d8dbba134a..62dfb190b167 100644 --- a/core/frontend/src/ViewingSpace.ts +++ b/core/frontend/src/ViewingSpace.ts @@ -22,7 +22,7 @@ import { getFrustumPlaneIntersectionDepthRange } from "./BackgroundMapGeometry"; * instance of ViewingSpace is created every time the Viewport's frustum changes. * @see [[Viewport.viewingSpace]]. * @public - * @extensionApi + * @extensions */ export class ViewingSpace { private readonly _viewRange = new ViewRect(); // scratch variable diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 65a1b9066d66..224291185c5a 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -59,7 +59,7 @@ const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) throw new Error("Multiple @itwin/core-frontend imports detected!"); -const getExtensionApi = (id: string) => { +const getextensions = (id: string) => { return { exports: { // Tools @@ -99,5 +99,5 @@ const getExtensionApi = (id: string) => { }; (globalThis as any)[globalSymbol] = { - getExtensionApi, + getextensions, }; diff --git a/core/frontend/src/render/CanvasDecoration.ts b/core/frontend/src/render/CanvasDecoration.ts index 8e046020d004..a4a9b79cc86f 100644 --- a/core/frontend/src/render/CanvasDecoration.ts +++ b/core/frontend/src/render/CanvasDecoration.ts @@ -13,7 +13,7 @@ import { BeButtonEvent, BeWheelEvent } from "../tools/Tool"; * [2d canvas](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D) on top of a ScreenViewport. * CanvasDecorations may be pickable by implementing [[pick]]. * @public - * @extensionApi + * @extensions */ export interface CanvasDecoration { /** @@ -59,6 +59,6 @@ export interface CanvasDecoration { /** An array of [[CanvasDecoration]]s. * @public - * @extensionApi + * @extensions */ export type CanvasDecorationList = CanvasDecoration[]; diff --git a/core/frontend/src/render/Decorations.ts b/core/frontend/src/render/Decorations.ts index 9c9fe8e11f58..f7541f5b68cb 100644 --- a/core/frontend/src/render/Decorations.ts +++ b/core/frontend/src/render/Decorations.ts @@ -12,7 +12,7 @@ import { GraphicList, RenderGraphic } from "./RenderGraphic"; /** A set of [[RenderGraphic]]s and [[CanvasDecoration]]s produced by [[Tool]]s and [[Decorator]]s, used to decorate the contents of a [[Viewport]]. * @public - * @extensionApi + * @extensions */ export class Decorations implements IDisposable { private _skyBox?: RenderGraphic; diff --git a/core/frontend/src/render/FeatureSymbology.ts b/core/frontend/src/render/FeatureSymbology.ts index f6045342423d..ffd3128cb157 100644 --- a/core/frontend/src/render/FeatureSymbology.ts +++ b/core/frontend/src/render/FeatureSymbology.ts @@ -15,7 +15,7 @@ import { ViewState } from "../ViewState"; /** Contains types that enable an application to customize how [Feature]($common)s are drawn within a [[Viewport]]. * @public - * @extensionApi REAL + * @extensions REAL */ export namespace FeatureSymbology { /** An object that serves as the source of a [[FeatureSymbology.Overrides]]. diff --git a/core/frontend/src/render/GraphicBranch.ts b/core/frontend/src/render/GraphicBranch.ts index ca8173114071..48ac9f6634bb 100644 --- a/core/frontend/src/render/GraphicBranch.ts +++ b/core/frontend/src/render/GraphicBranch.ts @@ -41,7 +41,7 @@ export enum AnimationNodeId { * Branches can be nested to build an arbitrarily-complex scene graph. * @see [[RenderSystem.createBranch]] * @public - * @extensionApi REAL + * @extensions REAL */ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ { /** The child nodes of this branch */ @@ -120,7 +120,7 @@ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ /** Options passed to [[RenderSystem.createGraphicBranch]]. * @public - * @extensionApi + * @extensions */ export interface GraphicBranchOptions { /** Clip applied to the graphics in the branch. */ diff --git a/core/frontend/src/render/GraphicBuilder.ts b/core/frontend/src/render/GraphicBuilder.ts index 159147b2a50c..363a135e8650 100644 --- a/core/frontend/src/render/GraphicBuilder.ts +++ b/core/frontend/src/render/GraphicBuilder.ts @@ -23,7 +23,7 @@ import { GraphicPrimitive } from "./GraphicPrimitive"; * - Within a [[GraphicList]], each [[RenderGraphic]] is rendered in the order in which it appears in the list; and * - Within a single [[RenderGraphic]], each geometric primitive is rendered in the ordered in which it was added to the GraphicBuilder. * @public - * @extensionApi + * @extensions */ export enum GraphicType { /** @@ -82,7 +82,7 @@ export enum GraphicType { * For example, to prevent graphics produced by [[readElementGraphics]] from being hilited when their corresponding element is in the [[SelectionSet]], * pass `{ noHilite: true }` to [[readElementGraphics]]. * @public - * @extensionApi + * @extensions */ export interface BatchOptions { /** Identifies the [[Tile]] associated with the batch, chiefly for debugging purposes. @@ -101,7 +101,7 @@ export interface BatchOptions { /** Options used as part of [[GraphicBuilderOptions]] to describe a [pickable]($docs/learning/frontend/ViewDecorations#pickable-view-graphic-decorations) [[RenderGraphic]]. * @public - * @extensionApi + * @extensions */ export interface PickableGraphicOptions extends BatchOptions { /** Unique identifier for the graphic. @@ -114,7 +114,7 @@ export interface PickableGraphicOptions extends BatchOptions { * @see [[ViewportGraphicBuilderOptions]] to create a graphic builder for a [[Viewport]]. * @see [[CustomGraphicBuilderOptions]] to create a graphic builder unassociated with any [[Viewport]]. * @public - * @extensionApi + * @extensions */ export interface GraphicBuilderOptions { /** The type of graphic to produce. */ @@ -165,7 +165,7 @@ export interface GraphicBuilderOptions { * Default values for [[GraphicBuilderOptions.wantNormals]] and [[GraphicBuilderOptions.generateEdges]] will be determined by the viewport's [ViewFlags]($common). * The [[GraphicBuilder.iModel]] will be set to the viewport's [[IModelConnection]]. * @public - * @extensionApi + * @extensions */ export interface ViewportGraphicBuilderOptions extends GraphicBuilderOptions { /** The viewport in which the resultant [[RenderGraphic]] is to be drawn. */ @@ -183,7 +183,7 @@ export interface ViewportGraphicBuilderOptions extends GraphicBuilderOptions { * For [[GraphicType.ViewOverlay]] and [[GraphicType.ViewBackground]], which already define their geometry in pixels, the chord tolerance should typically be 1. * @see [[CustomGraphicBuilderOptions.computeChordTolerance]]. * @public - * @extensionApi + * @extensions */ export interface ComputeChordToleranceArgs { /** The graphic builder being used to produce the graphics. */ @@ -197,7 +197,7 @@ export interface ComputeChordToleranceArgs { * This is primarily useful when the same graphic is to be saved and reused for display in multiple viewports and for which a chord tolerance can be computed * independently of each viewport's [Frustum]($common). * @public - * @extensionApi + * @extensions */ export interface CustomGraphicBuilderOptions extends GraphicBuilderOptions { /** Optionally, the IModelConnection with which the graphic is associated. */ @@ -222,7 +222,7 @@ export interface CustomGraphicBuilderOptions extends GraphicBuilderOptions { * So, for example, if you pass an array of points to addLineString(), you should not subsequently modify that array. * * @public - * @extensionApi + * @extensions */ export abstract class GraphicBuilder { /** The local coordinate system transform applied to this builder's geometry. diff --git a/core/frontend/src/render/GraphicPrimitive.ts b/core/frontend/src/render/GraphicPrimitive.ts index 917293c741f8..bba372f8c44f 100644 --- a/core/frontend/src/render/GraphicPrimitive.ts +++ b/core/frontend/src/render/GraphicPrimitive.ts @@ -10,7 +10,7 @@ import { Arc3d, Loop, Path, Point2d, Point3d, Polyface, SolidPrimitive } from "@ /** Base interface for a 2d [[GraphicPrimitive]] that can be supplied to [[GraphicBuilder.addPrimitive]]. * @public - * @extensionApi + * @extensions */ export interface GraphicPrimitive2d { /** Z value in local coordinates to use for each point. */ @@ -20,7 +20,7 @@ export interface GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString]]. * @public - * @extensionApi + * @extensions */ export interface GraphicLineString { type: "linestring"; @@ -30,7 +30,7 @@ export interface GraphicLineString { /** A [[GraphicPrimitive]] representing a 2d line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString2d]]. * @public - * @extensionApi + * @extensions */ export interface GraphicLineString2d extends GraphicPrimitive2d { type: "linestring2d"; @@ -40,7 +40,7 @@ export interface GraphicLineString2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString]]. * @public - * @extensionApi + * @extensions */ export interface GraphicPointString { type: "pointstring"; @@ -50,7 +50,7 @@ export interface GraphicPointString { /** A [[GraphicPrimitive]] representing a 2d point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString2d]]. * @public - * @extensionApi + * @extensions */ export interface GraphicPointString2d extends GraphicPrimitive2d { type: "pointstring2d"; @@ -60,7 +60,7 @@ export interface GraphicPointString2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a closed 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape]]. * @public - * @extensionApi + * @extensions */ export interface GraphicShape { type: "shape"; @@ -70,7 +70,7 @@ export interface GraphicShape { /** A [[GraphicPrimitive]] representing a closed 2d region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape2d]]. * @public - * @extensionApi + * @extensions */ export interface GraphicShape2d extends GraphicPrimitive2d { type: "shape2d"; @@ -80,7 +80,7 @@ export interface GraphicShape2d extends GraphicPrimitive2d { /** A [[GraphicPrimitive]] representing a 3d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc]]. * @public - * @extensionApi + * @extensions */ export interface GraphicArc { type: "arc"; @@ -92,7 +92,7 @@ export interface GraphicArc { /** A [[GraphicPrimitive]] representing a 2d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc2d]]. * @public - * @extensionApi + * @extensions */ export interface GraphicArc2d { type: "arc2d"; @@ -105,7 +105,7 @@ export interface GraphicArc2d { /** A [[GraphicPrimitive]] representing a 3d open path that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPath]]. * @public - * @extensionApi + * @extensions */ export interface GraphicPath { type: "path"; @@ -115,7 +115,7 @@ export interface GraphicPath { /** A [[GraphicPrimitive]] representing a 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLoop]]. * @public - * @extensionApi + * @extensions */ export interface GraphicLoop { type: "loop"; @@ -125,7 +125,7 @@ export interface GraphicLoop { /** A [[GraphicPrimitive]] representing a mesh that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPolyface]]. * @public - * @extensionApi + * @extensions */ export interface GraphicPolyface { type: "polyface"; @@ -136,7 +136,7 @@ export interface GraphicPolyface { /** A [[GraphicPrimitive]] representing a [SolidPrimitive]($core-geometry) to be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addSolidPrimitive]]. * @public - * @extensionApi + * @extensions */ export interface GraphicSolidPrimitive { type: "solidPrimitive"; @@ -163,6 +163,6 @@ export interface GraphicSolidPrimitive { * } * ``` * @public - * @extensionApi + * @extensions */ export type GraphicPrimitive = GraphicLineString | GraphicLineString2d | GraphicPointString | GraphicPointString2d | GraphicShape | GraphicShape2d | GraphicArc | GraphicArc2d | GraphicPath | GraphicLoop | GraphicPolyface | GraphicSolidPrimitive; diff --git a/core/frontend/src/render/ParticleCollectionBuilder.ts b/core/frontend/src/render/ParticleCollectionBuilder.ts index cf89266fabda..370758f0ad69 100644 --- a/core/frontend/src/render/ParticleCollectionBuilder.ts +++ b/core/frontend/src/render/ParticleCollectionBuilder.ts @@ -20,7 +20,7 @@ import { DisplayParams } from "./primitives/DisplayParams"; /** Parameters used to construct a [[ParticleCollectionBuilder]]. * @public - * @extensionApi + * @extensions */ export interface ParticleCollectionBuilderParams { /** The image mapped to each particle quad. @@ -58,7 +58,7 @@ export interface ParticleCollectionBuilderParams { /** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]]. * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space. * @public - * @extensionApi + * @extensions */ export interface ParticleProps extends XYAndZ { /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]]. @@ -84,7 +84,7 @@ export interface ParticleProps extends XYAndZ { * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects. * @see [SnowEffect]($frontend-devtools) for an example of a particle effect. * @public - * @extensionApi + * @extensions */ export interface ParticleCollectionBuilder { /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted. diff --git a/core/frontend/src/render/Pixel.ts b/core/frontend/src/render/Pixel.ts index 9c4b1e40e751..f2058a68f198 100644 --- a/core/frontend/src/render/Pixel.ts +++ b/core/frontend/src/render/Pixel.ts @@ -13,7 +13,7 @@ import { IModelConnection } from "../IModelConnection"; /** Describes aspects of a pixel as read from a [[Viewport]]. * @see [[Viewport.readPixels]]. * @public - * @extensionApi REAL + * @extensions REAL */ export namespace Pixel { /** Describes a single pixel within a [[Pixel.Buffer]]. */ diff --git a/core/frontend/src/render/RenderClipVolume.ts b/core/frontend/src/render/RenderClipVolume.ts index 74bac2a34d32..1cdade854324 100644 --- a/core/frontend/src/render/RenderClipVolume.ts +++ b/core/frontend/src/render/RenderClipVolume.ts @@ -12,7 +12,7 @@ import { ClipVector } from "@itwin/core-geometry"; * A RenderClipVolume is created from a [[ClipVector]] and takes ownership of that ClipVector, expecting that it will not be modified while the RenderClipVolume still references it. * @see [[RenderSystem.createClipVolume]] to create a clip volume. * @public - * @extensionApi + * @extensions */ export abstract class RenderClipVolume { /** The ClipVector from which this volume was created. It must not be modified. */ diff --git a/core/frontend/src/render/RenderGraphic.ts b/core/frontend/src/render/RenderGraphic.ts index c76085477d45..cdbbb0f618d3 100644 --- a/core/frontend/src/render/RenderGraphic.ts +++ b/core/frontend/src/render/RenderGraphic.ts @@ -15,7 +15,7 @@ import { RenderMemory } from "./RenderMemory"; * - [[Decorations]] created on the front-end to be rendered along with the scene. * The latter are produced using a [[GraphicBuilder]]. * @public - * @extensionApi + * @extensions */ export abstract class RenderGraphic implements IDisposable /* , RenderMemory.Consumer */ { public abstract dispose(): void; @@ -29,7 +29,7 @@ export abstract class RenderGraphic implements IDisposable /* , RenderMemory.Con * will never be automatically disposed of. Instead, you assume responsibility for disposing of the owned graphic by calling [[disposeGraphic]] when the owned graphic is no longer in use. Failure * to do so will result in leaks of graphics memory or other webgl resources. * @public - * @extensionApi + * @extensions */ export abstract class RenderGraphicOwner extends RenderGraphic { /** The owned graphic. */ @@ -44,6 +44,6 @@ export abstract class RenderGraphicOwner extends RenderGraphic { /** An array of [[RenderGraphic]]s. * @public - * @extensionApi + * @extensions */ export type GraphicList = RenderGraphic[]; diff --git a/core/frontend/src/render/RenderSystem.ts b/core/frontend/src/render/RenderSystem.ts index 58c164843b4a..2062dcf1a81b 100644 --- a/core/frontend/src/render/RenderSystem.ts +++ b/core/frontend/src/render/RenderSystem.ts @@ -244,7 +244,7 @@ export type RenderSkyBoxParams = RenderSkyGradientParams | RenderSkySphereParams * @see [Display system overview]($docs/learning/display/index.md) * @see [[IModelApp.renderSystem]]. * @public - * @extensionApi + * @extensions */ export abstract class RenderSystem implements IDisposable { /** Options used to initialize the RenderSystem. These are primarily used for feature-gating. diff --git a/core/frontend/src/render/RenderTexture.ts b/core/frontend/src/render/RenderTexture.ts index 731e27293cd9..df480dfaae67 100644 --- a/core/frontend/src/render/RenderTexture.ts +++ b/core/frontend/src/render/RenderTexture.ts @@ -12,7 +12,7 @@ import { IModelConnection } from "../IModelConnection"; /** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching. * @see [[TextureCacheOwnership]]. * @public - * @extensionApi + * @extensions */ export type TextureCacheKey = string | Gradient.Symb; @@ -20,7 +20,7 @@ export type TextureCacheKey = string | Gradient.Symb; * which point it will be disposed. * @see [[TextureOwnership]] * @public - * @extensionApi + * @extensions */ export interface TextureCacheOwnership { /** The iModel on which the texture will be cached. */ @@ -37,21 +37,21 @@ export interface TextureCacheOwnership { * texture is responsible for calling its `dispose` method when it is no longer needed. * @see [[CreateTextureArgs.ownership]] * @public - * @extensionApi + * @extensions */ export type TextureOwnership = TextureCacheOwnership | "external"; /** An object from which a [RenderTexture]($common) can be created. * @see [[TextureImage.source]] * @public - * @extensionApi + * @extensions */ export type TextureImageSource = HTMLImageElement | ImageBuffer; // ###TODO | HTMLCanvasElement etc /** Describes the image from which to create a [RenderTexture]($common). * @see [[CreateTextureArgs.image]] * @public - * @extensionApi + * @extensions */ export interface TextureImage { /** The object that supplies the texture image. */ @@ -64,7 +64,7 @@ export interface TextureImage { /** Arguments supplied to [[RenderSystem.createTexture]] to create a [RenderTexture]($common). * @public - * @extensionApi + * @extensions */ export interface CreateTextureArgs { /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */ @@ -82,7 +82,7 @@ export interface CreateTextureArgs { /** Arguments supplied to [[RenderSystem.createTextureFromSource]]. * @public - * @extensionApi + * @extensions */ export interface CreateTextureFromSourceArgs { /** The type of texture to create. Default: [RenderTexture.Type.Normal]($common). */ diff --git a/core/frontend/src/render/Scene.ts b/core/frontend/src/render/Scene.ts index 78c7ab7dccff..3e04cce5e2bf 100644 --- a/core/frontend/src/render/Scene.ts +++ b/core/frontend/src/render/Scene.ts @@ -23,7 +23,7 @@ export interface SceneVolumeClassifier { /** Holds a collection of objects comprising the scene to be drawn by a [[Viewport]]'s. * @see [[SceneContext]] for the context in which the scene is created. * @public - * @extensionApi + * @extensions */ export class Scene { /** Graphics to be drawn as a "normal" part of the scene - that is, with depth. */ diff --git a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts index 98ec241aca48..4855c85a581c 100644 --- a/core/frontend/src/render/ScreenSpaceEffectBuilder.ts +++ b/core/frontend/src/render/ScreenSpaceEffectBuilder.ts @@ -12,7 +12,7 @@ import { Viewport } from "../Viewport"; * @see [[ScreenSpaceEffectBuilder.addUniform]] to define a uniform variable. * @see [[Uniform]] to set the value of a uniform variable. * @public - * @extensionApi + * @extensions */ export enum UniformType { /** GLSL `bool`. */ @@ -32,7 +32,7 @@ export enum UniformType { /** The underlying data types that can be used for varying variables in screen-space effect shaders. * @see [[ScreenSpaceEffectBuilder.addVarying]] to define a varying variable. * @public - * @extensionApi + * @extensions */ export enum VaryingType { /** GLSL `float`. */ @@ -49,7 +49,7 @@ export enum VaryingType { * @see [[UniformParams.bind]] to provide the value of the variable. * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader. * @public - * @extensionApi + * @extensions */ export interface Uniform { /** Sets the value to an integer - equivalent to `WebGLRenderingContext.uniform1i`. */ @@ -70,7 +70,7 @@ export interface Uniform { /** Context supplied to [[UniformParams.bind]]. * @public - * @extensionApi + * @extensions */ export interface UniformContext { /** The viewport to which the screen-space effect is to be applied. */ @@ -80,7 +80,7 @@ export interface UniformContext { /** Parameters used to define a uniform variable for a [[ScreenSpaceEffectBuilder]]'s shader program. * @see [[ScreenSpaceEffectBuilder.addUniform]] to add a uniform variable to an effect shader. * @public - * @extensionApi + * @extensions */ export interface UniformParams { /** The data type of the uniform variable. */ @@ -94,7 +94,7 @@ export interface UniformParams { /** Parameters used to define an array of uniform variables for a [[ScreenSpaceEffectBuilder]]'s shader program. * @see [[ScreenSpaceEffectBuilder.addUniformArray]] to add a uniform array to an effect shader. * @public - * @extensionApi + * @extensions */ export interface UniformArrayParams extends UniformParams { /** The number of elements in the array. */ @@ -110,7 +110,7 @@ export interface UniformArrayParams extends UniformParams { * The [[RenderSystem]] takes care of adjusting the source code for some of these differences, e.g., `varying` (WebGL1) vs `in` and `out` (WebGL2); * and `TEXTURE`, `TEXTURE_CUBE`, and `TEXTURE_PROJ` macros are provided to replace `texture2D`, `textureCube`, and `texture2DProj` with their WebGL2 equivalents when applicable. * @public - * @extensionApi + * @extensions */ export interface ScreenSpaceEffectSource { /** The GLSL implementation of the vertex shader. Instead of `main`, it implements `void effectMain(vec4 position)` where `position` is the vertex position in normalized device coordinates ([-1..1]). @@ -141,7 +141,7 @@ export interface ScreenSpaceEffectSource { /** Parameters used to create a [[ScreenSpaceEffectBuilder]]. * @see [[RenderSystem.createScreenSpaceEffectBuilder]]. * @public - * @extensionApi + * @extensions */ export interface ScreenSpaceEffectBuilderParams { /** The name of the effect. Must be unique among all registered screen-space effects. It is not displayed to the user. */ @@ -157,7 +157,7 @@ export interface ScreenSpaceEffectBuilderParams { /** Context passed to [[ScreenSpaceEffectBuilder.shouldApply]]. * @public - * @extensionApi + * @extensions */ export interface ScreenSpaceEffectContext { /** The viewport to which the screen-space effect is to be applied. */ @@ -191,7 +191,7 @@ export interface ScreenSpaceEffectContext { * @see [ConvolutionEffect]($frontend-devtools) for examples of effects like blur, sharpen, and emboss. * @see [FlipImageEffect]($frontend-devtools) for a very simple example of an effect that shifts pixels from their original locations. * @public - * @extensionApi + * @extensions */ export interface ScreenSpaceEffectBuilder { /** True if the shader will be used with a WebGL 2 rendering context. */ diff --git a/core/frontend/src/tile/DisclosedTileTreeSet.ts b/core/frontend/src/tile/DisclosedTileTreeSet.ts index 6b321013bd21..cd8402954110 100644 --- a/core/frontend/src/tile/DisclosedTileTreeSet.ts +++ b/core/frontend/src/tile/DisclosedTileTreeSet.ts @@ -12,7 +12,7 @@ import { TileTree } from "./internal"; /** Interface adopted by an object that contains references to [[TileTree]]s, to expose those trees. * @see [[DisclosedTileTreeSet]]. * @public - * @extensionApi + * @extensions */ export interface TileTreeDiscloser { /** Add all [[TileTree]]s referenced by this object to the set. */ @@ -21,7 +21,7 @@ export interface TileTreeDiscloser { /** A set of [[TileTree]]s disclosed by a set of objects implementing [[TileTreeDiscloser]], used to collect references to tile trees in use by those objects. * @public - * @extensionApi + * @extensions */ export class DisclosedTileTreeSet implements Iterable { private readonly _processed = new Set(); diff --git a/core/frontend/src/tile/ImdlReader.ts b/core/frontend/src/tile/ImdlReader.ts index 314b10e19c2d..5aa38ec91fa9 100644 --- a/core/frontend/src/tile/ImdlReader.ts +++ b/core/frontend/src/tile/ImdlReader.ts @@ -96,7 +96,7 @@ export class GltfHeader extends TileHeader { * @param is3d True if the graphics are 3d. * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch. * @public - * @extensionApi REAL + * @extensions REAL */ export async function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise { const stream = ByteStream.fromUint8Array(bytes); diff --git a/core/frontend/src/tile/Tile.ts b/core/frontend/src/tile/Tile.ts index bfcf9e6be681..cc8bf66efe38 100644 --- a/core/frontend/src/tile/Tile.ts +++ b/core/frontend/src/tile/Tile.ts @@ -58,7 +58,7 @@ const scratchFrustum = new Frustum(); * Several public [[Tile]] methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be overridden instead. * For example, [[loadChildren]] should not be overridden, but it calls [[_loadChildren]], which must be overridden because it is abstract. * @public - * @extensionApi + * @extensions */ export abstract class Tile { private _state: TileState = TileState.NotReady; @@ -552,7 +552,7 @@ export abstract class Tile { /** Describes the current status of a [[Tile]]'s content. Tile content is loaded via an asynchronous [[TileRequest]]. * @see [[Tile.loadStatus]]. * @public - * @extensionApi + * @extensions */ export enum TileLoadStatus { /** No attempt to load the tile's content has been made, or the tile has since been unloaded. It currently has no graphics. */ @@ -572,7 +572,7 @@ export enum TileLoadStatus { /** * Describes the visibility of a tile based on its size and a view frustum. * @public - * @extensionApi + * @extensions */ export enum TileVisibility { /** The tile is entirely outside of the viewing frustum. */ @@ -587,7 +587,7 @@ export enum TileVisibility { * Loosely describes the "importance" of a [[Tile]]. Requests for tiles of greater "importance" are prioritized for loading. * @note A lower priority value indicates higher importance. * @public - * @extensionApi + * @extensions */ export enum TileLoadPriority { /** Contents of geometric models that are being interactively edited. */ @@ -613,7 +613,7 @@ export enum TileLoadPriority { * - Red: A tile which refines to a single higher-resolution child occupying the same volume. * @see [[Viewport.debugBoundingBoxes]] * @public - * @extensionApi + * @extensions */ export enum TileBoundingBoxes { /** Display no bounding boxes */ diff --git a/core/frontend/src/tile/TileAdmin.ts b/core/frontend/src/tile/TileAdmin.ts index d6dfefe8194d..b28f9e80ab45 100644 --- a/core/frontend/src/tile/TileAdmin.ts +++ b/core/frontend/src/tile/TileAdmin.ts @@ -79,7 +79,7 @@ export interface SelectedAndReadyTiles { * @see [[TileAdmin.gpuMemoryLimit]] to adjust the limit after startup. * @see [[TileAdmin.totalTileContentBytes]] for the current amount of GPU memory being used for tile contents. * @public - * @extensionApi + * @extensions */ export type GpuMemoryLimit = "none" | "default" | "aggressive" | "relaxed" | number; @@ -87,7 +87,7 @@ export type GpuMemoryLimit = "none" | "default" | "aggressive" | "relaxed" | num * @see [[TileAdmin.Props.gpuMemoryLimits]] to configure the limit at startup. * @see [[GpuMemoryLimit]] for a description of how the available limits and how they are imposed. * @public - * @extensionApi + * @extensions */ export interface GpuMemoryLimits { /** Limits applied to clients running on mobile devices. Defaults to "default" if undefined. */ @@ -101,7 +101,7 @@ export interface GpuMemoryLimits { * @see [[IModelApp.tileAdmin]] to access the instance of the TileAdmin. * @see [[TileAdmin.Props]] to configure the TileAdmin at startup. * @public - * @extensionApi + * @extensions */ export class TileAdmin { private _versionInfo?: TileVersionInfo; diff --git a/core/frontend/src/tile/TileContent.ts b/core/frontend/src/tile/TileContent.ts index ef038a37ab1d..d23d9d679f6b 100644 --- a/core/frontend/src/tile/TileContent.ts +++ b/core/frontend/src/tile/TileContent.ts @@ -13,7 +13,7 @@ import { RenderGraphic } from "../render/RenderGraphic"; * Describes the contents of a [[Tile]]. Specific sub-types of [[Tile]] may describe their content using sub-types of this interface. * @see [[Tile.readContent]]. * @public - * @extensionApi + * @extensions */ export interface TileContent { /** Graphical representation of the tile's geometry. */ diff --git a/core/frontend/src/tile/TileDrawArgs.ts b/core/frontend/src/tile/TileDrawArgs.ts index 10177d934fa4..1ed2a04e7425 100644 --- a/core/frontend/src/tile/TileDrawArgs.ts +++ b/core/frontend/src/tile/TileDrawArgs.ts @@ -29,7 +29,7 @@ const scratchMatrix4d = Matrix4d.createIdentity(); /** Parameters used to construct [[TileDrawArgs]]. * @public - * @extensionApi + * @extensions */ export interface TileDrawArgParams { /** Context for the scene into which the tiles are to be rendered. */ @@ -67,7 +67,7 @@ export interface TileDrawArgParams { * @see [[TileTree.selectTiles]] * @see [[TileTree.draw]] * @public - * @extensionApi + * @extensions */ export class TileDrawArgs { /** Transform to the location in iModel coordinates at which the tiles are to be drawn. */ diff --git a/core/frontend/src/tile/TileParams.ts b/core/frontend/src/tile/TileParams.ts index 5093337453db..6b608f74b180 100644 --- a/core/frontend/src/tile/TileParams.ts +++ b/core/frontend/src/tile/TileParams.ts @@ -12,7 +12,7 @@ import { Tile } from "./internal"; /** * Parameters used to construct a [[Tile]]. * @public - * @extensionApi + * @extensions */ export interface TileParams { /** This tile's parent tile, if any. diff --git a/core/frontend/src/tile/TileRequest.ts b/core/frontend/src/tile/TileRequest.ts index 13ab827d4c94..21633281c578 100644 --- a/core/frontend/src/tile/TileRequest.ts +++ b/core/frontend/src/tile/TileRequest.ts @@ -15,7 +15,7 @@ import { ReadonlyTileUserSet, Tile, TileContent, TileRequestChannel, TileTree, T /** Represents a pending or active request to load the contents of a [[Tile]]. The request coordinates with the [[Tile.requestContent]] to obtain the raw content and * [[Tile.readContent]] to convert the result into a [[RenderGraphic]]. TileRequests are created internally as needed; it is never necessary or useful for external code to create them. * @public - * @extensionApi + * @extensions */ export class TileRequest { /** The requested tile. While the request is pending or active, `tile.request` points back to this TileRequest. */ diff --git a/core/frontend/src/tile/TileRequestChannel.ts b/core/frontend/src/tile/TileRequestChannel.ts index 9769c351b8e9..d1b30fdf0147 100644 --- a/core/frontend/src/tile/TileRequestChannel.ts +++ b/core/frontend/src/tile/TileRequestChannel.ts @@ -24,7 +24,7 @@ class TileRequestQueue extends PriorityQueue { * @see [[TileRequestChannels.statistics]] for statistics from all channels. * @see [[TileAdmin.statistics]] for additional statistics. * @public - * @extensionApi + * @extensions */ export class TileRequestChannelStatistics { /** The number of queued requests that have not yet been dispatched. */ @@ -76,7 +76,7 @@ export class TileRequestChannelStatistics { * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system. * @see [[Tile.channel]] to specify the channel to be used to request a given tile's content. * @public - * @extensionApi + * @extensions */ export class TileRequestChannel { /** The channel's name. It must be unique among all registered [[TileRequestChannels]]. */ diff --git a/core/frontend/src/tile/TileRequestChannels.ts b/core/frontend/src/tile/TileRequestChannels.ts index b651821d849a..d91fd2d71c9b 100644 --- a/core/frontend/src/tile/TileRequestChannels.ts +++ b/core/frontend/src/tile/TileRequestChannels.ts @@ -44,7 +44,7 @@ class ElementGraphicsChannel extends TileRequestChannel { * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system. * @see [[TileRequestChannels.getForHttp]] for the most typical way of obtaining or registering a channel. * @public - * @extensionApi + * @extensions */ export class TileRequestChannels { /** @internal */ diff --git a/core/frontend/src/tile/TileTree.ts b/core/frontend/src/tile/TileTree.ts index 7ffa5df0ec67..56a3c9c921f7 100644 --- a/core/frontend/src/tile/TileTree.ts +++ b/core/frontend/src/tile/TileTree.ts @@ -19,7 +19,7 @@ import { Tile, TileDrawArgs, TileGeometryCollector, TileLoadPriority, TileTreePa /** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse. * @see [[TileTreeOwner]]. * @public - * @extensionApi + * @extensions */ export enum TileTreeLoadStatus { /** No attempt to load the tile tree has yet been made. */ @@ -46,7 +46,7 @@ export enum TileTreeLoadStatus { * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method * that it calls. * @public - * @extensionApi + * @extensions */ export abstract class TileTree { private _isDisposed = false; diff --git a/core/frontend/src/tile/TileTreeOwner.ts b/core/frontend/src/tile/TileTreeOwner.ts index f5db81c1f22d..0c5893c22579 100644 --- a/core/frontend/src/tile/TileTreeOwner.ts +++ b/core/frontend/src/tile/TileTreeOwner.ts @@ -14,7 +14,7 @@ import { TileTree, TileTreeLoadStatus } from "./internal"; * @see [[TileTreeReference]] for an indirect reference to a TileTree by way of a TileTreeOwner. * @see [[Tiles.getTileTreeOwner]] to obtain a TileTreeOwner. * @public - * @extensionApi + * @extensions */ export interface TileTreeOwner { /** The iModel for this TileTree */ diff --git a/core/frontend/src/tile/TileTreeParams.ts b/core/frontend/src/tile/TileTreeParams.ts index 1fb98dab3309..9127ce85cbd9 100644 --- a/core/frontend/src/tile/TileTreeParams.ts +++ b/core/frontend/src/tile/TileTreeParams.ts @@ -15,7 +15,7 @@ import { TileLoadPriority } from "./internal"; /** Parameters used to construct a [[TileTree]]. * @public - * @extensionApi + * @extensions */ export interface TileTreeParams { /** Uniquely identifies the tile tree in the context of the [[IModelConnection]]. */ diff --git a/core/frontend/src/tile/TileTreeReference.ts b/core/frontend/src/tile/TileTreeReference.ts index cbb10eef433f..836dd6a52ecb 100644 --- a/core/frontend/src/tile/TileTreeReference.ts +++ b/core/frontend/src/tile/TileTreeReference.ts @@ -21,7 +21,7 @@ import { /** Describes the type of graphics produced by a [[TileTreeReference]]. * @public - * @extensionApi + * @extensions */ export enum TileGraphicType { /** Rendered behind all other geometry without depth. */ @@ -41,7 +41,7 @@ export enum TileGraphicType { * differing levels of transparency. * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]]. * @public - * @extensionApi + * @extensions */ export abstract class TileTreeReference /* implements RenderMemory.Consumer */ { /** The owner of the currently-referenced [[TileTree]]. Do not store a direct reference to it, because it may change or become disposed at any time. */ diff --git a/core/frontend/src/tile/TileTreeSupplier.ts b/core/frontend/src/tile/TileTreeSupplier.ts index 520a9c557545..42535eae4f9e 100644 --- a/core/frontend/src/tile/TileTreeSupplier.ts +++ b/core/frontend/src/tile/TileTreeSupplier.ts @@ -17,7 +17,7 @@ import { TileTree, TileTreeOwner } from "./internal"; * changes to its properties may affect comparison and therefore sorting order. * @see [[Tiles.getTileTreeOwner]] to obtain a tile tree from a supplier. * @public - * @extensionApi + * @extensions */ export interface TileTreeSupplier { /** Compare two tree Ids returning a negative number if `lhs` < rhs, a positive number if `lhs` > rhs, or 0 if the Ids are equivalent. */ diff --git a/core/frontend/src/tile/TileUsageMarker.ts b/core/frontend/src/tile/TileUsageMarker.ts index b1285d72cf98..9e1449fe1374 100644 --- a/core/frontend/src/tile/TileUsageMarker.ts +++ b/core/frontend/src/tile/TileUsageMarker.ts @@ -17,7 +17,7 @@ import { TileUser } from "./internal"; * The marker is used to allow tiles to be discarded after they become disused by any tile user, via [[Tile.prune]]. * @see [[Tile.usageMarker]]. * @public - * @extensionApi + * @extensions */ export class TileUsageMarker { private _timePoint = BeTimePoint.now(); diff --git a/core/frontend/src/tile/TiledGraphicsProvider.ts b/core/frontend/src/tile/TiledGraphicsProvider.ts index ed6fdba0237e..000f5d68bfe1 100644 --- a/core/frontend/src/tile/TiledGraphicsProvider.ts +++ b/core/frontend/src/tile/TiledGraphicsProvider.ts @@ -15,7 +15,7 @@ import { TileTreeReference } from "./internal"; * @see [Exploded View Sample](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=explode-sample&imodel=House+Sample) for an interactive * demonstration of a custom provider. * @public - * @extensionApi + * @extensions */ export interface TiledGraphicsProvider { /** For each [[TileTreeReference]] belonging to this provider that should be drawn in the specified [[Viewport]], apply the provided function. */ diff --git a/core/frontend/src/tile/map/BingElevation.ts b/core/frontend/src/tile/map/BingElevation.ts index 26d46654e359..0336a00689d6 100644 --- a/core/frontend/src/tile/map/BingElevation.ts +++ b/core/frontend/src/tile/map/BingElevation.ts @@ -23,7 +23,7 @@ import { RenderSystem } from "../../render/RenderSystem"; /** Provides an interface to the [Bing Maps elevation services](https://docs.microsoft.com/en-us/bingmaps/rest-services/elevations/). * @public - * @extensionApi REAL + * @extensions REAL */ export class BingElevationProvider { private static _scratchRange = Range3d.createNull(); diff --git a/core/frontend/src/tools/ClipViewTool.ts b/core/frontend/src/tools/ClipViewTool.ts index 738649742577..f8c54f191d5f 100644 --- a/core/frontend/src/tools/ClipViewTool.ts +++ b/core/frontend/src/tools/ClipViewTool.ts @@ -31,7 +31,7 @@ import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAss /** An object that can react to a view's clip being changed by tools or modify handles. * @public - * @extensionApi + * @extensions */ export interface ViewClipEventHandler { /** Add newly created clip geometry to selection set and show modify controls. */ @@ -1901,7 +1901,7 @@ export class ViewClipDecoration extends EditManipulator.HandleProvider { /** Event types for ViewClipDecorationProvider.onActiveClipChanged \ * @public - * @extensionApi + * @extensions */ export enum ClipEventType { New, NewPlane, Modify, Clear } diff --git a/core/frontend/src/tools/EditManipulator.ts b/core/frontend/src/tools/EditManipulator.ts index 073ff8c6ec99..bc18ea359a11 100644 --- a/core/frontend/src/tools/EditManipulator.ts +++ b/core/frontend/src/tools/EditManipulator.ts @@ -25,7 +25,7 @@ import { ManipulatorToolEvent } from "./ToolAdmin"; * - Respond to selection changed event to create control handles as pickable decorations when the desired element(s) or pickable decoration is selected. * - Respond to button events on the control handle decoration and run a sub-class of [[EditManipulator.HandleTool]] to modify. * @public - * @extensionApi REAL + * @extensions REAL */ export namespace EditManipulator { /** Specifies the event for [[EditManipulator.HandleProvider.onManipulatorEvent]] */ diff --git a/core/frontend/src/tools/EventController.ts b/core/frontend/src/tools/EventController.ts index c3c386f1fb58..5652b6767d67 100644 --- a/core/frontend/src/tools/EventController.ts +++ b/core/frontend/src/tools/EventController.ts @@ -13,7 +13,7 @@ import { ToolAdmin } from "./ToolAdmin"; * An EventController maps user input events from a Viewport to the ToolAdmin so that tools can process them. * Viewports are assigned an EventController when they are registered with ViewManager.addViewport and they are destroyed with ViewManager.dropViewport. * @public - * @extensionApi + * @extensions */ export class EventController { private readonly _removals: VoidFunction[] = []; diff --git a/core/frontend/src/tools/PrimitiveTool.ts b/core/frontend/src/tools/PrimitiveTool.ts index 48363821d45c..ef72e0bcf791 100644 --- a/core/frontend/src/tools/PrimitiveTool.ts +++ b/core/frontend/src/tools/PrimitiveTool.ts @@ -17,7 +17,7 @@ import { BeButton, BeButtonEvent, CoordinateLockOverrides, CoreTools, Interactiv /** The PrimitiveTool class can be used to implement tools to create or modify geometric elements. * @see [Writing a PrimitiveTool]($docs/learning/frontend/primitivetools.md) * @public - * @extensionApi REAL + * @extensions REAL */ export abstract class PrimitiveTool extends InteractiveTool { /** The viewport within which the tool operates. diff --git a/core/frontend/src/tools/SelectTool.ts b/core/frontend/src/tools/SelectTool.ts index 77d510d2aa46..f0df3e7458c5 100644 --- a/core/frontend/src/tools/SelectTool.ts +++ b/core/frontend/src/tools/SelectTool.ts @@ -28,7 +28,7 @@ import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAss /** The method for choosing elements with the [[SelectionTool]] * @public - * @extensionApi + * @extensions */ export enum SelectionMethod { /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */ @@ -41,7 +41,7 @@ export enum SelectionMethod { /** The mode for choosing elements with the [[SelectionTool]] * @public - * @extensionApi + * @extensions */ export enum SelectionMode { /** Identified elements replace the current selection set (use control key to add or remove) */ @@ -54,7 +54,7 @@ export enum SelectionMode { /** The processing method to use to update the current selection. * @public - * @extensionApi + * @extensions */ export enum SelectionProcessing { /** Add element to selection. */ diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index f18687d3f615..9cb6813c6084 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -19,25 +19,25 @@ import { ScreenViewport } from "../Viewport"; /** * @public - * @extensionApi + * @extensions */ export type ToolType = typeof Tool; /** * @public - * @extensionApi + * @extensions */ export type ToolList = ToolType[]; /** * @public - * @extensionApi + * @extensions */ export enum BeButton { Data = 0, Reset = 1, Middle = 2 } /** * @public - * @extensionApi + * @extensions */ export enum CoordinateLockOverrides { None = 0, @@ -48,7 +48,7 @@ export enum CoordinateLockOverrides { /** The *source* that generated an event. * @public - * @extensionApi + * @extensions */ export enum InputSource { /** Source not defined */ @@ -61,7 +61,7 @@ export enum InputSource { /** The *source* that generated a coordinate. * @public - * @extensionApi + * @extensions */ export enum CoordSource { /** Event was created by an action from the user */ @@ -76,13 +76,13 @@ export enum CoordSource { /** Numeric mask for a set of modifier keys (control, shift, and alt). * @public - * @extensionApi + * @extensions */ export enum BeModifierKeys { None = 0, Control = 1 << 0, Shift = 1 << 1, Alt = 1 << 2 } /** * @public - * @extensionApi + * @extensions */ export class BeButtonState { private readonly _downUorPt: Point3d = new Point3d(); @@ -111,7 +111,7 @@ export class BeButtonState { /** Properties for constructing a BeButtonEvent * @public - * @extensionApi + * @extensions */ export interface BeButtonEventProps { /** The point for this event, in world coordinates. @@ -143,7 +143,7 @@ export interface BeButtonEventProps { /** Object sent to Tools that holds information about button/touch/wheel events. * @public - * @extensionApi REAL + * @extensions REAL */ export class BeButtonEvent implements BeButtonEventProps { private readonly _point: Point3d = new Point3d(); @@ -238,7 +238,7 @@ export class BeButtonEvent implements BeButtonEventProps { /** Properties for initializing a BeTouchEvent * @public - * @extensionApi + * @extensions */ export interface BeTouchEventProps extends BeButtonEventProps { touchEvent: TouchEvent; @@ -246,7 +246,7 @@ export interface BeTouchEventProps extends BeButtonEventProps { /** A ButtonEvent generated by touch input. * @public - * @extensionApi + * @extensions */ export class BeTouchEvent extends BeButtonEvent implements BeTouchEventProps { public tapCount: number = 0; @@ -307,7 +307,7 @@ export class BeTouchEvent extends BeButtonEvent implements BeTouchEventProps { /** Properties for constructing a BeWheelEvent * @public - * @extensionApi + * @extensions */ export interface BeWheelEventProps extends BeButtonEventProps { wheelDelta?: number; @@ -316,7 +316,7 @@ export interface BeWheelEventProps extends BeButtonEventProps { /** A BeButtonEvent generated by movement of a mouse wheel. * @note wheel events include mouse location. * @public - * @extensionApi + * @extensions */ export class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps { public wheelDelta: number; @@ -339,7 +339,7 @@ export class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps { * @see [[InteractiveTool]] for a base Tool class to handle user input events from a Viewport. * @see [Tools]($docs/learning/frontend/tools.md) * @public - * @extensionApi REAL + * @extensions REAL */ export class Tool { /** If true, this Tool will not appear in the list from [[ToolRegistry.getToolList]]. This should be overridden in subclasses to hide them. */ @@ -468,14 +468,14 @@ export class Tool { /** * @public - * @extensionApi + * @extensions */ export enum EventHandled { No = 0, Yes = 1 } /** A Tool that may be installed, via [[ToolAdmin]], to handle user input. The ToolAdmin manages the currently installed ViewingTool, PrimitiveTool, * InputCollector, and IdleTool. Each must derive from this class and there may only be one of each type installed at a time. * @public - * @extensionApi REAL + * @extensions REAL */ export abstract class InteractiveTool extends Tool { @@ -825,7 +825,7 @@ export abstract class InteractiveTool extends Tool { * (ex. get a distance by snapping to 2 points) without affecting the state of the active primitive tool. * An InputCollector will suspend the active PrimitiveTool and can be suspended by a ViewTool. * @public - * @extensionApi REAL + * @extensions REAL */ export abstract class InputCollector extends InteractiveTool { public override async run(..._args: any[]): Promise { @@ -850,7 +850,7 @@ export abstract class InputCollector extends InteractiveTool { /** The result type of [[ToolRegistry.parseAndRun]]. * @public - * @extensionApi + * @extensions */ export enum ParseAndRunResult { /** The tool's `parseAndRun` method was invoked and returned `true`. */ @@ -867,7 +867,7 @@ export enum ParseAndRunResult { /** Possible errors resulting from [[ToolRegistry.parseKeyin]]. * @public - * @extensionApi + * @extensions */ export enum KeyinParseError { /** No registered tool matching the keyin was found. */ @@ -878,7 +878,7 @@ export enum KeyinParseError { /** Possible errors form [[ToolRegistry.parseKeyin]]. * @public - * @extensionApi + * @extensions */ export interface ParseKeyinError { /** Union discriminator for [[ParseKeyinResult]]. */ @@ -889,7 +889,7 @@ export interface ParseKeyinError { /** Successful result from [[ToolRegistry.parseKeyin]]. * @public - * @extensionApi + * @extensions */ export interface ParsedKeyin { /** Union discriminator for [[ParseKeyinResult]]. */ @@ -902,7 +902,7 @@ export interface ParsedKeyin { /** The result type of [[ToolRegistry.parseKeyin]]. * @public - * @extensionApi + * @extensions */ export type ParseKeyinResult = ParsedKeyin | ParseKeyinError; diff --git a/core/frontend/src/tools/ToolAdmin.ts b/core/frontend/src/tools/ToolAdmin.ts index e5a2bfc40072..1f8c272ae453 100644 --- a/core/frontend/src/tools/ToolAdmin.ts +++ b/core/frontend/src/tools/ToolAdmin.ts @@ -33,13 +33,13 @@ import { ViewTool } from "./ViewTool"; /** * @public - * @extensionApi + * @extensions */ export enum StartOrResume { Start = 1, Resume = 2 } /** * @public - * @extensionApi + * @extensions */ export enum ManipulatorToolEvent { Start = 1, Stop = 2, Suspend = 3, Unsuspend = 4 } @@ -301,7 +301,7 @@ interface ToolEvent { /** Controls the operation of [[Tool]]s, administering the current [[ViewTool]], [[PrimitiveTool]], and [[IdleTool]] and forwarding events to the appropriate tool. * @public - * @extensionApi + * @extensions */ export class ToolAdmin { public markupView?: ScreenViewport; diff --git a/core/frontend/src/tools/ToolAssistance.ts b/core/frontend/src/tools/ToolAssistance.ts index ec8e7554d743..47735e7f5e1e 100644 --- a/core/frontend/src/tools/ToolAssistance.ts +++ b/core/frontend/src/tools/ToolAssistance.ts @@ -12,7 +12,7 @@ import { CoreTools } from "./Tool"; /** Tool Assistance known images * @public - * @extensionApi + * @extensions */ export enum ToolAssistanceImage { /** When Keyboard is specified, ToolAssistanceInstruction.keyboardInfo should be set. */ @@ -53,7 +53,7 @@ export enum ToolAssistanceImage { /** Input Method for Tool Assistance instruction * @public - * @extensionApi + * @extensions */ export enum ToolAssistanceInputMethod { /** Instruction applies to both touch & mouse input methods */ @@ -66,7 +66,7 @@ export enum ToolAssistanceInputMethod { /** Tool Assistance image keyboard keys * @public - * @extensionApi + * @extensions */ export interface ToolAssistanceKeyboardInfo { /** Text for keys to display */ @@ -77,7 +77,7 @@ export interface ToolAssistanceKeyboardInfo { /** Interface used to describe a Tool Assistance instruction. * @public - * @extensionApi + * @extensions */ export interface ToolAssistanceInstruction { /** Name of icon WebFont entry, or if specifying an SVG symbol, use "svg:" prefix to imported symbol Id. @@ -96,7 +96,7 @@ export interface ToolAssistanceInstruction { /** Interface used to describe a Tool Assistance section with a label and a set of instructions. * @public - * @extensionApi + * @extensions */ export interface ToolAssistanceSection { /** Instructions in the section. */ @@ -107,7 +107,7 @@ export interface ToolAssistanceSection { /** Interface used to describe Tool Assistance for a tool's state. * @public - * @extensionApi + * @extensions */ export interface ToolAssistanceInstructions { /** The main instruction. */ @@ -118,7 +118,7 @@ export interface ToolAssistanceInstructions { /** Tool Assistance helper methods. * @public - * @extensionApi REAL + * @extensions REAL */ export class ToolAssistance { diff --git a/core/frontend/src/tools/ToolSettings.ts b/core/frontend/src/tools/ToolSettings.ts index 79b3090d50c2..ffa3c04200c5 100644 --- a/core/frontend/src/tools/ToolSettings.ts +++ b/core/frontend/src/tools/ToolSettings.ts @@ -11,7 +11,7 @@ import { Angle, Constant } from "@itwin/core-geometry"; /** Settings that control the behavior of built-in tools. Applications may modify these values. * @public - * @extensionApi + * @extensions */ export class ToolSettings { /** Two tap must be within this period to be a double tap. */ diff --git a/core/frontend/src/tools/ViewTool.ts b/core/frontend/src/tools/ViewTool.ts index b2c87370a1c7..e6b96b349d9a 100644 --- a/core/frontend/src/tools/ViewTool.ts +++ b/core/frontend/src/tools/ViewTool.ts @@ -88,7 +88,7 @@ const inertialDampen = (pt: Vector3d) => { /** An InteractiveTool that manipulates a view. * @public - * @extensionApi REAL + * @extensions REAL */ export abstract class ViewTool extends InteractiveTool { public static translate(val: string) { return CoreTools.translate(`View.${val}`); } @@ -296,7 +296,7 @@ export class ViewHandleArray { /** Base class for tools that manipulate the frustum of a Viewport. * @public - * @extensionApi + * @extensions */ export abstract class ViewManip extends ViewTool { /** @internal */ diff --git a/tools/build/scripts/utils/validateTags.js b/tools/build/scripts/utils/validateTags.js index d9a0cabf0bb5..cc6515c4213d 100644 --- a/tools/build/scripts/utils/validateTags.js +++ b/tools/build/scripts/utils/validateTags.js @@ -27,7 +27,7 @@ const validTags = [ "public", // Following flags are added for internal Extension tooling (public-extension-api) - "extensionApi", + "extensions", ]; function validateTags(path) { diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 9a8df6604f22..c5234f88821f 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -69,7 +69,7 @@ module.exports = { const parserServices = getParserServices(context); const releaseTags = (context.options.length > 0 && context.options[0].releaseTags) || ["public"]; - const extensionApiTag = "extensionApi"; // SWB temporary extension tag name + const extensionsTag = "extensions"; // SWB temporary extension tag name const outputApiFile = (context.options.length > 0 && context.options[0].outputApiFile) || false; const apiFilePath = "./lib/GeneratedExtensionApi.csv"; @@ -139,7 +139,7 @@ module.exports = { for (const jsDoc of declaration.jsDoc) if (jsDoc.tags) { - let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionApiTag); + let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionsTag); // Has extension API tag if (jsDocExtensionTag) { addToApiList(declaration, jsDocExtensionTag); From 8b1544d2c02ea51636ab413145413b29e9546e61 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Wed, 2 Mar 2022 13:08:27 -0500 Subject: [PATCH 42/76] fix typo --- tools/eslint-plugin/dist/rules/public-extension-exports.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index c5234f88821f..5f38b45281fe 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -38,7 +38,7 @@ module.exports = { meta: { type: "problem", docs: { - description: "Prevent the exporting of extension APIs that not meet certain release tags.", + description: "Prevent the exporting of extension APIs that do not meet certain release tags.", category: "TypeScript", }, messages: { From d93debbc59d95965625d880997e751e33d592fac Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Thu, 3 Mar 2022 11:07:41 -0500 Subject: [PATCH 43/76] fix find/replace mishap --- core/frontend/src/extension/ExtensionRuntime.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 224291185c5a..65a1b9066d66 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -59,7 +59,7 @@ const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) throw new Error("Multiple @itwin/core-frontend imports detected!"); -const getextensions = (id: string) => { +const getExtensionApi = (id: string) => { return { exports: { // Tools @@ -99,5 +99,5 @@ const getextensions = (id: string) => { }; (globalThis as any)[globalSymbol] = { - getextensions, + getExtensionApi, }; From 2384b82047c6e39cd09e152caf2e5289aa7196a0 Mon Sep 17 00:00:00 2001 From: kckst8 <6283674+kckst8@users.noreply.github.com> Date: Fri, 4 Mar 2022 11:51:42 -0500 Subject: [PATCH 44/76] remove extra unnecessary types --- core/extension/common_types.d.ts | 290 --------------------------- core/extension/frontend_types.d.ts | 295 ---------------------------- core/extension/index.d.ts | 5 +- core/extension/itwin-extension.d.ts | 92 --------- 4 files changed, 1 insertion(+), 681 deletions(-) delete mode 100644 core/extension/common_types.d.ts delete mode 100644 core/extension/frontend_types.d.ts delete mode 100644 core/extension/itwin-extension.d.ts diff --git a/core/extension/common_types.d.ts b/core/extension/common_types.d.ts deleted file mode 100644 index 9f191cba26fc..000000000000 --- a/core/extension/common_types.d.ts +++ /dev/null @@ -1,290 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Enums (note these are all real!) -export { - BackgroundFill, - BackgroundMapType, - BatchType, - BisCodeSpec, - ChangedValueState, - ChangeOpCode, - ColorByName, - CommonLoggerCategory, - ECSqlSystemProperty, - ECSqlValueType, - ElementGeometryOpcode, - FeatureOverrideType, - FillDisplay, - FillFlags, - FontType, - GeoCoordStatus, - GeometryClass, - GeometryStreamFlags, - GeometrySummaryVerbosity, - GlobeMode, - GridOrientationType, - HSVConstants, - ImageBufferFormat, - ImageSourceFormat, - LinePixels, - MassPropertiesOperation, - MonochromeMode, - Npc, - PlanarClipMaskMode, - PlanarClipMaskPriority, - QueryRowFormat, - Rank, - RenderMode, - SectionType, - SkyBoxImageType, - SpatialClassifierInsideDisplay, - SpatialClassifierOutsideDisplay, - TerrainHeightOriginMode, - TextureMapUnits, - ThematicDisplayMode, - ThematicGradientColorScheme, - ThematicGradientMode, - TxnAction, - TypeOfChange, -} from "@itwin/core-common"; - -// Interfaces -export type { - AdditionalTransformProps, - AffineTransformProps, - AmbientLightProps, - AnalysisStyleDisplacementProps, - AnalysisStyleProps, - AnalysisStyleThematicProps, - AppearanceOverrideProps, - AreaFillProps, - AuxCoordSystem2dProps, - AuxCoordSystem3dProps, - AuxCoordSystemProps, - BackgroundMapProps, - BaseReaderOptions, - BRepPrimitive, - CalloutProps, - CameraProps, - Carto2DDegreesProps, - CartographicProps, - CategoryProps, - CategorySelectorProps, - ChangedElements, - ChangedEntities, - ChangesetIdWithIndex, - ChangesetIndexAndId, - ChangesetRange, - ChannelRootAspectProps, - ClipStyleProps, - CodeProps, - ContextRealityModelProps, - ContextRealityModelsContainer, - CutStyleProps, - DefinitionElementProps, - DeletedElementGeometryChange, - DeprecatedBackgroundMapProps, - DisplayStyle3dProps, - DisplayStyle3dSettingsProps, - DisplayStyleLoadProps, - DisplayStyleModelAppearanceProps, - DisplayStyleOverridesOptions, - DisplayStylePlanarClipMaskProps, - DisplayStyleProps, - DisplayStyleSettingsOptions, - DisplayStyleSettingsProps, - DisplayStyleSubCategoryProps, - DynamicGraphicsRequest2dProps, - DynamicGraphicsRequest3dProps, - DynamicGraphicsRequestProps, - EcefLocationProps, - ElementAspectProps, - ElementGeometryDataEntry, - ElementIdsAndRangesProps, - ElementLoadOptions, - ElementLoadProps, - ElementProps, - EmphasizeElementsProps, - EntityIdAndClassId, - EntityProps, - EntityQueryParams, - EnvironmentProps, - ExtantElementGeometryChange, - ExternalSourceAspectProps, - FeatureAppearanceProps, - FeatureAppearanceProvider, - FeatureAppearanceSource, - FilePropertyProps, - FlatBufferGeometryStream, - FontMapProps, - FontProps, - FresnelSettingsProps, - FunctionalElementProps, - GeocentricTransformProps, - GeodeticDatumProps, - GeodeticEllipsoidProps, - GeodeticTransformProps, - GeographicCRSProps, - GeometricElement2dProps, - GeometricElement3dProps, - GeometricElementProps, - GeometricModel2dProps, - GeometricModel3dProps, - GeometricModelProps, - GeometryAppearanceProps, - GeometryContainmentRequestProps, - GeometryContainmentResponseProps, - GeometryPartInstanceProps, - GeometryPartProps, - GeometryPrimitive, - GeometryStreamEntryProps, - GeometryStreamHeaderProps, - GeometryStreamIteratorEntry, - GeometrySummaryOptions, - GeometrySummaryRequestProps, - GraphicsRequestProps, - GridFileDefinitionProps, - GridFileTransformProps, - GroundPlaneProps, - Helmert2DWithZOffsetProps, - HemisphereLightsProps, - HorizontalCRSExtentProps, - HorizontalCRSProps, - ImageGraphicProps, - ImagePrimitive, - InformationPartitionElementProps, - JsonGeometryStream, - LightSettingsProps, - LineStyleProps, - LocalBriefcaseProps, - Localization, - MassPropertiesRequestProps, - MassPropertiesResponseProps, - MaterialProps, - ModelClipGroupProps, - ModelGeometryChanges, - ModelGeometryChangesProps, - ModelIdAndGeometryGuid, - ModelLoadProps, - ModelProps, - ModelQueryParams, - ModelSelectorProps, - NavigationBindingValue, - NavigationValue, - PartReference, - PersistentGraphicsRequestProps, - PhysicalElementProps, - PhysicalTypeProps, - Placement2dProps, - Placement3dProps, - PlanarClipMaskProps, - PlanProjectionSettingsProps, - PositionalVectorTransformProps, - ProjectionProps, - QueryLimit, - QueryOptions, - QueryQuota, - RelatedElementProps, - RelationshipProps, - RenderMaterialAssetProps, - RenderMaterialProps, - RenderTimelineLoadProps, - RenderTimelineProps, - RepositoryLinkProps, - RequestNewBriefcaseProps, - RgbColorProps, - RootSubjectProps, - RpcActivity, - SectionDrawingLocationProps, - SectionDrawingProps, - SectionDrawingViewProps, - SessionProps, - SheetProps, - SkyBoxImageProps, - SkyBoxProps, - SkyCubeProps, - SolarLightProps, - SolarShadowSettingsProps, - SourceAndTarget, - SpatialClassifierFlagsProps, - SpatialClassifierProps, - SpatialClassifiersContainer, - SpatialViewDefinitionProps, - SubCategoryProps, - SubjectProps, - TerrainProps, - TextStringPrimitive, - TextStringProps, - TextureData, - TextureLoadProps, - TextureMapProps, - TextureProps, - ThematicDisplayProps, - ThematicDisplaySensorProps, - ThematicDisplaySensorSettingsProps, - ThematicGradientSettingsProps, - ThumbnailFormatProps, - ThumbnailProps, - TileVersionInfo, - TypeDefinitionElementProps, - UrlLinkProps, - VerticalCRSProps, - ViewAttachmentLabelProps, - ViewAttachmentProps, - ViewDefinition2dProps, - ViewDefinition3dProps, - ViewDefinitionProps, - ViewDetails3dProps, - ViewDetailsProps, - ViewFlagProps, - ViewQueryParams, - ViewStateLoadProps, - ViewStateProps, - WhiteOnWhiteReversalProps, - XyzRotationProps, -} from "@itwin/core-common" - -// Types -export { - AxisAlignedBox3d, - AxisAlignedBox3dProps, - BackgroundMapProviderName, - Base64EncodedString, - BriefcaseId, - ChangesetId, - ChangesetIndex, - ChangesetIndexOrId, - CodeScopeProps, - ColorDefProps, - DanishSystem34Region, - EasingFunction, - ElementAlignedBox2d, - ElementAlignedBox3d, - ElementGeometryChange, - ElementGraphicsRequestProps, - EntityIdAndClassIdIterable, - GeodeticTransformMethod, - GeometryStreamPrimitive, - GeometryStreamProps, - GridFileDirection, - GridFileFormat, - HemisphereEnum, - ImageGraphicCornersProps, - InterpolationFunction, - LocalAlignedBox3d, - PersistentBackgroundMapProps, - Placement, - PlacementProps, - Point2dProps, - ProjectionMethod, - RemoveFunction, - RgbFactorProps, - TerrainProviderName, - TweenCallback, - UnitType, - UpdateCallback, - ViewFlagOverrides, - ViewFlagsProperties, -} from "@itwin/core-common" \ No newline at end of file diff --git a/core/extension/frontend_types.d.ts b/core/extension/frontend_types.d.ts deleted file mode 100644 index 7c0f7323b185..000000000000 --- a/core/extension/frontend_types.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Interfaces -export type { - Animator, - BatchOptions, - BeButtonEventProps, - BeTouchEventProps, - BeWheelEventProps, - CanvasDecoration, - ChangeViewedModel2dOptions, - ComputeChordToleranceArgs, - CreateTextureArgs, - CreateTextureFromSourceArgs, - CustomGraphicBuilderOptions, - Decorator, - DepthPointOptions, - DepthRangeNpc, - ExtentLimits, - FeatureOverrideProvider, - FrontendSecurityOptions, - FuzzySearchResult, - GlobalAlignmentOptions, - GlobalLocation, - GlobalLocationArea, - GpuMemoryLimits, - GraphicArc, - GraphicArc2d, - GraphicBranchOptions, - GraphicBuilderOptions, - GraphicLineString, - GraphicLineString2d, - GraphicLoop, - GraphicPath, - GraphicPointString, - GraphicPointString2d, - GraphicPolyface, - GraphicPrimitive2d, - GraphicShape, - GraphicShape2d, - GraphicSolidPrimitive, - HitListHolder, - IModelIdArg, - MarginOptions, - OffScreenViewportOptions, - OnViewExtentsError, - OsmBuildingDisplayOptions, - ParsedKeyin, - ParseKeyinError, - ParticleCollectionBuilder, - ParticleCollectionBuilderParams, - ParticleProps, - PickableGraphicOptions, - ScreenSpaceEffectBuilder, - ScreenSpaceEffectBuilderParams, - ScreenSpaceEffectContext, - ScreenSpaceEffectSource, - SelectAddEvent, - SelectedViewportChangedArgs, - SelectRemoveEvent, - SelectReplaceEvent, - TextureCacheOwnership, - TextureImage, - TileContent, - TiledGraphicsProvider, - TileDrawArgParams, - TileParams, - TileTreeDiscloser, - TileTreeOwner, - TileTreeParams, - TileTreeSupplier, - ToolAssistanceInstruction, - ToolAssistanceInstructions, - ToolAssistanceKeyboardInfo, - ToolAssistanceSection, - ToolTipOptions, - Uniform, - UniformArrayParams, - UniformContext, - UniformParams, - ViewAnimationOptions, - ViewChangeOptions, - ViewClipEventHandler, - ViewCreator2dOptions, - ViewCreator3dOptions, - ViewportDecorator, - ViewportGraphicBuilderOptions, - ZoomToOptions, -} from "@itwin/core-frontend"; - -// Types -export type { - CanvasDecorationList, - FlashSettingsOptions, - GpuMemoryLimit, - GraphicList, - GraphicPrimitive, - MarkerFillStyle, - MarkerImage, - MarkerTextAlign, - MarkerTextBaseline, - OnFlashedIdChangedEventArgs, - ParseKeyinResult, - SelectionSetEvent, - TextureCacheKey, - TextureImageSource, - TextureOwnership, - ToolList, - ToolType, -} from "@itwin/core-frontend"; - -// Enums (note these are all real!) -export { - ACSDisplayOptions, - ACSType, - ActivityMessageEndReason, - BeButton, - BeModifierKeys, - ClipEventType, - ContextRotationId, - CoordinateLockOverrides, - CoordSource, - CoordSystem, - DepthPointSource, - EventHandled, - FlashMode, - GraphicType, - HitDetailType, - HitGeomType, - HitParentGeomType, - HitPriority, - HitSource, - InputSource, - KeyinParseError, - LocateAction, - LocateFilterStatus, - ManipulatorToolEvent, - MessageBoxIconType, - MessageBoxType, - MessageBoxValue, - OutputMessageAlert, - OutputMessagePriority, - OutputMessageType, - ParseAndRunResult, - SelectionMethod, - SelectionMode, - SelectionProcessing, - SelectionSetEventType, - SnapHeat, - SnapMode, - SnapStatus, - StandardViewId, - StartOrResume, - TextureTransparency, - TileBoundingBoxes, - TileGraphicType, - TileLoadPriority, - TileLoadStatus, - TileTreeLoadStatus, - TileVisibility, - ToolAssistanceImage, - ToolAssistanceInputMethod, - UniformType, - VaryingType, - ViewStatus, - ViewUndoEvent, -} from "@itwin/core-frontend"; - -// Abstract Classes -export type { - AuxCoordSystemState, - DisplayStyleState, - GeometricModelState, - GraphicBuilder, - IModelConnection, - // InputCollector, @REAL - // InteractiveTool, @REAL - MarkerSet, - NotificationHandler, - // PrimitiveTool, @REAL - RenderClipVolume, - RenderGraphic, - RenderGraphicOwner, - RenderSystem, - Tile, - TileTree, - TileTreeReference, - ViewManip, - Viewport, - ViewPose, - ViewState, - ViewState2d, - ViewState3d, - // ViewTool @REAL -} from "@itwin/core-frontend"; - -// Classes -export type { - // AccuDrawHintBuilder, @REAL - AccuSnap, - ActivityMessageDetails, - AuxCoordSystem2dState, - AuxCoordSystem3dState, - AuxCoordSystemSpatialState, - // BeButtonEvent, @REAL - BeButtonState, - BeTouchEvent, - BeWheelEvent, - // BingElevationProvider, @REAL - // BingLocationProvider, @REAL - CategorySelectorState, - ChangeFlags, - // Cluster, @REAL - ContextRealityModelState, - DecorateContext, - Decorations, - DisclosedTileTreeSet, - DisplayStyle2dState, - DisplayStyle3dState, - DrawingModelState, - DrawingViewState, - DynamicsContext, - ElementLocateManager, - ElementPicker, - ElementState, - // EmphasizeElements, @REAL - EntityState, - EventController, - FlashSettings, - // FrustumAnimator, @REAL - GeometricModel2dState, - GeometricModel3dState, - // GlobeAnimator, @REAL - // GraphicBranch, @REAL - HiliteSet, - HitDetail, - HitList, - IconSprites, - // IModelApp, @BANNED - IntersectDetail, - // IpcApp, @BANNED - LocateOptions, - // LocateResponse, @REAL - // MarginPercent, @REAL - // Marker, @REAL - ModelSelectorState, - ModelState, - NotificationManager, - // NotifyMessageDetails, @REAL - OffScreenViewport, - OrthographicViewState, - PhysicalModelState, - RenderContext, - Scene, - SceneContext, - ScreenViewport, - SectionDrawingModelState, - SelectionSet, - SheetModelState, - SheetViewState, - SnapDetail, - SpatialLocationModelState, - SpatialModelState, - SpatialViewState, - Sprite, - SpriteLocation, - TentativePoint, - TileAdmin, - TileDrawArgs, - TileRequest, - TileRequestChannel, - TileRequestChannels, - TileRequestChannelStatistics, - Tiles, - TileUsageMarker, - // Tool, @REAL - ToolAdmin, - // ToolAssistance, @REAL - ToolSettings, - ViewCreator2d, - ViewCreator3d, - ViewingSpace, - ViewManager, - // ViewRect, @REAL -} from "@itwin/core-frontend"; - -// namespaces (minus conflicts) -export type { - // EditManipulator, @REAL - // FeatureSymbology, @REAL - PerModelCategoryVisibility, - // Pixel @REAL -} from "@itwin/core-frontend"; diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index 0bbd154a6c95..97b7cf00f441 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -3,10 +3,7 @@ * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ -// Export all types here. -export * from "./common_types"; -export * from "./frontend_types"; - +// manually curated section export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise // BEGIN GENERATED CODE diff --git a/core/extension/itwin-extension.d.ts b/core/extension/itwin-extension.d.ts deleted file mode 100644 index faf3c2224a3e..000000000000 --- a/core/extension/itwin-extension.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ - -declare module "itwin-extension" { - /** - * @alpha - */ - export type ActivationEvent = - | "onIModelAppStartup" - | "onIModelAppStartupFinished" - | "onIModelConnected" - | `onCommand:${string}` // key-ins too? - | "onSelectionChanged" - | `onSchemaLoaded:${string}`; // for civil - - /** - * @alpha - */ - export interface ContributionPoint { - commands?: Command[]; - tools?: Tool[]; - } - - /** - * @alpha - */ - export interface ExtensionManifest { - /** The extension name */ - readonly name: string; - /** The extension display name */ - readonly displayName?: string; - /** The extension version */ - readonly version: string; - /** The minimum compatible version of iTwin.js used */ - readonly coreVersion: string; - /** The minimum compatible version of iTwin.js Extension Api used */ - readonly apiVersion: string; - /** The extension description */ - readonly description?: string; - /** The extension author */ - readonly author: string; - /** List of all Activation Events */ - readonly activationEvents: ActivationEvent[]; - /** List of all Contribution Points */ - readonly contributionPoints: ContributionPoint[]; - } - - /** - * @alpha - */ - export interface Command { - name: string; - description?: string; - arguments?: any[]; - execute: (args: any) => void; - } - - export namespace Commands { - export function registerCommand(command: Command): void; - export function executeCommand(command: string, ...args: any[]): void; - } - - /** - * @alpha - */ - export interface Tool { - readonly name: string; - readonly toolId: string; - readonly icon: HTMLElement; - readonly label?: string; - tooltip?: string; - arguments?: any[]; - readonly execute: (...args: any[]) => void; - } - - export namespace Tools { - /** Registers a tool that can be invoked */ - export function registerTool(tool: Tool); - - /** Executes the tool denoted by the identifier. - * - * @param toolId Identifier of the tool to execute - * @param args Parameters passed to the tool when executed. - */ - export function executeTool( - toolId: string, - ...args: any[] - ): Promise; - } -} From fc65024da3cd4e2a965fd58ed124415a24190427 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Mon, 7 Mar 2022 14:07:34 -0500 Subject: [PATCH 45/76] only export @public and @extension tags (no @beta) --- core/common/package.json | 2 +- core/frontend/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index 5ca9048803d3..c27f925f88ad 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"beta\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" diff --git a/core/frontend/package.json b/core/frontend/package.json index 140d0e769a92..e801756298e8 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,7 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"beta\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", From 3507120412e28386fa85aebc8129b31b472dc8da Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 8 Mar 2022 13:22:57 -0500 Subject: [PATCH 46/76] remove all REAL comments - default to a value export if not a type or interface --- core/common/src/ColorDef.ts | 2 +- core/extension/codeGen/generate-exports.js | 4 +- core/extension/index.d.ts | 396 +++++++++--------- core/extension/index.js | 166 ++++++-- core/frontend/src/AccuDraw.ts | 2 +- core/frontend/src/BingLocation.ts | 2 +- core/frontend/src/ElementLocateManager.ts | 2 +- core/frontend/src/EmphasizeElements.ts | 2 +- core/frontend/src/FrustumAnimator.ts | 2 +- core/frontend/src/GlobeAnimator.ts | 2 +- core/frontend/src/ImageUtil.ts | 22 +- core/frontend/src/MarginPercent.ts | 2 +- core/frontend/src/Marker.ts | 4 +- core/frontend/src/NotificationManager.ts | 2 +- core/frontend/src/ViewGlobalLocation.ts | 2 +- core/frontend/src/ViewRect.ts | 2 +- core/frontend/src/render/FeatureSymbology.ts | 2 +- core/frontend/src/render/GraphicBranch.ts | 2 +- core/frontend/src/render/Pixel.ts | 2 +- core/frontend/src/tile/ImdlReader.ts | 2 +- core/frontend/src/tile/map/BingElevation.ts | 2 +- core/frontend/src/tools/EditManipulator.ts | 2 +- core/frontend/src/tools/PrimitiveTool.ts | 2 +- core/frontend/src/tools/Tool.ts | 8 +- core/frontend/src/tools/ToolAssistance.ts | 2 +- core/frontend/src/tools/ViewTool.ts | 2 +- .../dist/rules/public-extension-exports.js | 10 +- 27 files changed, 366 insertions(+), 284 deletions(-) diff --git a/core/common/src/ColorDef.ts b/core/common/src/ColorDef.ts index 551ee0b79fd9..494b08fb49c2 100644 --- a/core/common/src/ColorDef.ts +++ b/core/common/src/ColorDef.ts @@ -43,7 +43,7 @@ export type ColorDefProps = number; * const semiTransparentBlue = ColorDef.blue.withTransparency(100); * ``` * @public - * @extensions REAL + * @extensions */ export class ColorDef { private readonly _tbgr: number; diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index 79a90279725c..b13894b75efa 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -62,7 +62,7 @@ function generateDeclarationCode(exportList) { realExports += `\t${enumExport},\n`; }); exportList[packageName].real.forEach((realExport) => { - realExports += `\t${realExport}, // REAL \n`; + realExports += `\t${realExport},\n`; }); exportList[packageName].interface.forEach((interfaceExport) => { @@ -91,7 +91,7 @@ function generateJsCode(exportList) { exportCode += `\t${enumExport},\n`; }); exportList[packageName].real.forEach((realExport) => { - exportCode += `\t${realExport}, // REAL \n`; + exportCode += `\t${realExport},\n`; }); }; diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index 97b7cf00f441..862b1e556cc2 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -31,12 +31,11 @@ export { MessageBoxType, MessageBoxIconType, MessageBoxValue, - SelectionSetEventType, - StandardViewId, - ViewStatus, GraphicType, UniformType, VaryingType, + SelectionSetEventType, + StandardViewId, TileLoadStatus, TileVisibility, TileLoadPriority, @@ -59,42 +58,125 @@ export { ManipulatorToolEvent, ToolAssistanceImage, ToolAssistanceInputMethod, - AccuDrawHintBuilder, // REAL - BingLocationProvider, // REAL - LocateResponse, // REAL - EmphasizeElements, // REAL - FrustumAnimator, // REAL - GlobeAnimator, // REAL - canvasToResizedCanvasWithBars, // REAL - imageBufferToCanvas, // REAL - canvasToImageBuffer, // REAL - getImageSourceMimeType, // REAL - getImageSourceFormatForMimeType, // REAL - imageElementFromImageSource, // REAL - imageElementFromUrl, // REAL - extractImageSourceDimensions, // REAL - imageBufferToPngDataUrl, // REAL - imageBufferToBase64EncodedPng, // REAL - getCompressedJpegFromCanvas, // REAL - MarginPercent, // REAL - Marker, // REAL - Cluster, // REAL - NotifyMessageDetails, // REAL - queryTerrainElevationOffset, // REAL - ViewRect, // REAL - FeatureSymbology, // REAL - GraphicBranch, // REAL - Pixel, // REAL - readElementGraphics, // REAL - BingElevationProvider, // REAL - EditManipulator, // REAL - PrimitiveTool, // REAL - BeButtonEvent, // REAL - Tool, // REAL - InteractiveTool, // REAL - InputCollector, // REAL - ToolAssistance, // REAL - ViewTool, // REAL + ViewStatus, + AccuDrawHintBuilder, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + BingLocationProvider, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + LocateResponse, + ElementPicker, + ElementLocateManager, + EmphasizeElements, + EntityState, + ElementState, + FlashSettings, + FrustumAnimator, + GlobeAnimator, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + canvasToResizedCanvasWithBars, + imageBufferToCanvas, + canvasToImageBuffer, + getImageSourceMimeType, + getImageSourceFormatForMimeType, + imageElementFromImageSource, + imageElementFromUrl, + extractImageSourceDimensions, + imageBufferToPngDataUrl, + imageBufferToBase64EncodedPng, + getCompressedJpegFromCanvas, + IModelConnection, + NotificationHandler, + MarginPercent, + Marker, + Cluster, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + NotifyMessageDetails, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + Decorations, + FeatureSymbology, + GraphicBranch, + GraphicBuilder, + Pixel, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + RenderSystem, + Scene, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + DisclosedTileTreeSet, + readElementGraphics, + BingElevationProvider, + Tile, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + Tiles, + EditManipulator, + EventController, + PrimitiveTool, + BeButtonState, + BeButtonEvent, + BeTouchEvent, + BeWheelEvent, + Tool, + InteractiveTool, + InputCollector, + ToolAdmin, + ToolAssistance, + ToolSettings, + ViewTool, + ViewManip, + ViewCreator2d, + ViewCreator3d, + queryTerrainElevationOffset, + ViewingSpace, + ViewManager, + ViewPose, + ViewRect, + ViewState, + ViewState3d, + ViewState2d, } from "@itwin/core-frontend"; export type { @@ -105,22 +187,6 @@ export type { FuzzySearchResult, FrontendSecurityOptions, ToolTipOptions, - SelectAddEvent, - SelectRemoveEvent, - SelectReplaceEvent, - Animator, - ViewAnimationOptions, - GlobalAlignmentOptions, - OnViewExtentsError, - MarginOptions, - ViewChangeOptions, - ViewCreator2dOptions, - ViewCreator3dOptions, - GlobalLocationArea, - GlobalLocation, - Decorator, - SelectedViewportChangedArgs, - ExtentLimits, CanvasDecoration, GraphicBranchOptions, BatchOptions, @@ -157,15 +223,18 @@ export type { ScreenSpaceEffectBuilderParams, ScreenSpaceEffectContext, ScreenSpaceEffectBuilder, + SelectAddEvent, + SelectRemoveEvent, + SelectReplaceEvent, TileTreeDiscloser, GpuMemoryLimits, TileContent, + TiledGraphicsProvider, TileDrawArgParams, TileParams, TileTreeOwner, TileTreeParams, TileTreeSupplier, - TiledGraphicsProvider, ViewClipEventHandler, BeButtonEventProps, BeTouchEventProps, @@ -176,104 +245,35 @@ export type { ToolAssistanceInstruction, ToolAssistanceSection, ToolAssistanceInstructions, - AccuSnap, - AuxCoordSystemState, - AuxCoordSystem2dState, - AuxCoordSystem3dState, - AuxCoordSystemSpatialState, - CategorySelectorState, - ChangeFlags, - ContextRealityModelState, - DisplayStyleState, - DisplayStyle2dState, - DisplayStyle3dState, - DrawingViewState, - LocateOptions, - ElementPicker, - ElementLocateManager, - EntityState, - ElementState, + Animator, + ViewAnimationOptions, + GlobalAlignmentOptions, + OnViewExtentsError, + MarginOptions, + ViewChangeOptions, + ViewCreator2dOptions, + ViewCreator3dOptions, + GlobalLocationArea, + GlobalLocation, + Decorator, + SelectedViewportChangedArgs, + ExtentLimits, FlashSettingsOptions, - FlashSettings, - HitDetail, - SnapDetail, - IntersectDetail, - HitList, - IModelConnection, - NotificationHandler, MarkerImage, MarkerFillStyle, MarkerTextAlign, MarkerTextBaseline, - MarkerSet, - ModelSelectorState, - ModelState, - GeometricModelState, - GeometricModel2dState, - GeometricModel3dState, - SheetModelState, - SpatialModelState, - PhysicalModelState, - SpatialLocationModelState, - DrawingModelState, - SectionDrawingModelState, - ActivityMessageDetails, - NotificationManager, - PerModelCategoryVisibility, - SelectionSetEvent, - HiliteSet, - SelectionSet, - SheetViewState, - SpatialViewState, - OrthographicViewState, - Sprite, - IconSprites, - SpriteLocation, - TentativePoint, - Tiles, - ViewCreator2d, - ViewCreator3d, - ViewManager, - ViewPose, - ViewState, - ViewState3d, - ViewState2d, - ViewingSpace, CanvasDecorationList, - Decorations, - GraphicBuilder, GraphicPrimitive, - RenderClipVolume, - RenderGraphic, - RenderGraphicOwner, GraphicList, - RenderSystem, TextureCacheKey, TextureOwnership, TextureImageSource, - Scene, - DisclosedTileTreeSet, - Tile, + SelectionSetEvent, GpuMemoryLimit, - TileAdmin, - TileDrawArgs, - TileRequest, - TileRequestChannelStatistics, - TileRequestChannel, - TileRequestChannels, - TileTree, - TileTreeReference, - TileUsageMarker, - EventController, ToolType, ToolList, - BeButtonState, - BeTouchEvent, - BeWheelEvent, ParseKeyinResult, - ToolAdmin, - ToolSettings, - ViewManip, } from "@itwin/core-frontend"; export { @@ -299,6 +299,8 @@ export { FontType, Npc, GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, FillDisplay, BackgroundFill, GeometryClass, @@ -322,9 +324,7 @@ export { TxnAction, GridOrientationType, RenderMode, - ElementGeometryOpcode, - GeometryStreamFlags, - ColorDef, // REAL + ColorDef, } from "@itwin/core-common"; export type { @@ -360,6 +360,9 @@ export type { DisplayStyle3dProps, DisplayStyleOverridesOptions, DisplayStyleSettingsOptions, + FunctionalElementProps, + ViewAttachmentLabelProps, + CalloutProps, NavigationValue, NavigationBindingValue, RelatedElementProps, @@ -404,6 +407,39 @@ export type { FeatureAppearanceSource, FeatureAppearanceProvider, FontMapProps, + Helmert2DWithZOffsetProps, + AdditionalTransformProps, + CartographicProps, + HorizontalCRSExtentProps, + HorizontalCRSProps, + VerticalCRSProps, + GeographicCRSProps, + ElementGeometryDataEntry, + XyzRotationProps, + GeocentricTransformProps, + PositionalVectorTransformProps, + GridFileDefinitionProps, + GridFileTransformProps, + GeodeticTransformProps, + GeodeticDatumProps, + GeodeticEllipsoidProps, + GeometryAppearanceProps, + AreaFillProps, + MaterialProps, + GeometryPartInstanceProps, + GeometryStreamHeaderProps, + GeometryStreamEntryProps, + TextStringPrimitive, + ImagePrimitive, + PartReference, + BRepPrimitive, + GeometryPrimitive, + GeometryStreamIteratorEntry, + ImageGraphicProps, + AffineTransformProps, + ProjectionProps, + Carto2DDegreesProps, + TextStringProps, GeometryContainmentRequestProps, GeometryContainmentResponseProps, GeometrySummaryOptions, @@ -436,9 +472,10 @@ export type { GeometricModelProps, GeometricModel2dProps, GeometricModel3dProps, - PlanProjectionSettingsProps, PlanarClipMaskProps, + PlanProjectionSettingsProps, RgbColorProps, + RpcActivity, SessionProps, SkyCubeProps, SkyBoxProps, @@ -456,6 +493,13 @@ export type { ThematicDisplayProps, ThumbnailFormatProps, ThumbnailProps, + GraphicsRequestProps, + PersistentGraphicsRequestProps, + JsonGeometryStream, + FlatBufferGeometryStream, + DynamicGraphicsRequestProps, + DynamicGraphicsRequest2dProps, + DynamicGraphicsRequest3dProps, TileVersionInfo, ViewDetailsProps, ViewDetails3dProps, @@ -474,50 +518,6 @@ export type { AuxCoordSystem2dProps, AuxCoordSystem3dProps, WhiteOnWhiteReversalProps, - FunctionalElementProps, - ViewAttachmentLabelProps, - CalloutProps, - Helmert2DWithZOffsetProps, - AdditionalTransformProps, - CartographicProps, - HorizontalCRSExtentProps, - HorizontalCRSProps, - VerticalCRSProps, - GeographicCRSProps, - ElementGeometryDataEntry, - XyzRotationProps, - GeocentricTransformProps, - PositionalVectorTransformProps, - GridFileDefinitionProps, - GridFileTransformProps, - GeodeticTransformProps, - GeodeticDatumProps, - GeodeticEllipsoidProps, - GeometryAppearanceProps, - AreaFillProps, - MaterialProps, - GeometryPartInstanceProps, - GeometryStreamHeaderProps, - GeometryStreamEntryProps, - TextStringPrimitive, - ImagePrimitive, - PartReference, - BRepPrimitive, - GeometryPrimitive, - GeometryStreamIteratorEntry, - ImageGraphicProps, - AffineTransformProps, - ProjectionProps, - Carto2DDegreesProps, - TextStringProps, - RpcActivity, - GraphicsRequestProps, - PersistentGraphicsRequestProps, - JsonGeometryStream, - FlatBufferGeometryStream, - DynamicGraphicsRequestProps, - DynamicGraphicsRequest2dProps, - DynamicGraphicsRequest3dProps, BackgroundMapProviderName, PersistentBackgroundMapProps, Base64EncodedString, @@ -530,17 +530,6 @@ export type { ColorDefProps, PlacementProps, FontId, - RgbFactorProps, - Point2dProps, - ElementGeometryChange, - SkyBoxImageProps, - TerrainProviderName, - TweenCallback, - UpdateCallback, - EasingFunction, - InterpolationFunction, - ViewFlagsProperties, - ViewFlagOverrides, UnitType, GeodeticTransformMethod, GridFileFormat, @@ -558,7 +547,18 @@ export type { HemisphereEnum, DanishSystem34Region, RemoveFunction, + RgbFactorProps, + Point2dProps, + ElementGeometryChange, + SkyBoxImageProps, + TerrainProviderName, ElementGraphicsRequestProps, + TweenCallback, + UpdateCallback, + EasingFunction, + InterpolationFunction, + ViewFlagsProperties, + ViewFlagOverrides, } from "@itwin/core-common"; // END GENERATED CODE diff --git a/core/extension/index.js b/core/extension/index.js index 50d6428bffb4..cf5ad7621f73 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -36,12 +36,11 @@ export const { MessageBoxType, MessageBoxIconType, MessageBoxValue, - SelectionSetEventType, - StandardViewId, - ViewStatus, GraphicType, UniformType, VaryingType, + SelectionSetEventType, + StandardViewId, TileLoadStatus, TileVisibility, TileLoadPriority, @@ -64,42 +63,125 @@ export const { ManipulatorToolEvent, ToolAssistanceImage, ToolAssistanceInputMethod, - AccuDrawHintBuilder, // REAL - BingLocationProvider, // REAL - LocateResponse, // REAL - EmphasizeElements, // REAL - FrustumAnimator, // REAL - GlobeAnimator, // REAL - canvasToResizedCanvasWithBars, // REAL - imageBufferToCanvas, // REAL - canvasToImageBuffer, // REAL - getImageSourceMimeType, // REAL - getImageSourceFormatForMimeType, // REAL - imageElementFromImageSource, // REAL - imageElementFromUrl, // REAL - extractImageSourceDimensions, // REAL - imageBufferToPngDataUrl, // REAL - imageBufferToBase64EncodedPng, // REAL - getCompressedJpegFromCanvas, // REAL - MarginPercent, // REAL - Marker, // REAL - Cluster, // REAL - NotifyMessageDetails, // REAL - queryTerrainElevationOffset, // REAL - ViewRect, // REAL - FeatureSymbology, // REAL - GraphicBranch, // REAL - Pixel, // REAL - readElementGraphics, // REAL - BingElevationProvider, // REAL - EditManipulator, // REAL - PrimitiveTool, // REAL - BeButtonEvent, // REAL - Tool, // REAL - InteractiveTool, // REAL - InputCollector, // REAL - ToolAssistance, // REAL - ViewTool, // REAL + ViewStatus, + AccuDrawHintBuilder, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + BingLocationProvider, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + LocateResponse, + ElementPicker, + ElementLocateManager, + EmphasizeElements, + EntityState, + ElementState, + FlashSettings, + FrustumAnimator, + GlobeAnimator, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + canvasToResizedCanvasWithBars, + imageBufferToCanvas, + canvasToImageBuffer, + getImageSourceMimeType, + getImageSourceFormatForMimeType, + imageElementFromImageSource, + imageElementFromUrl, + extractImageSourceDimensions, + imageBufferToPngDataUrl, + imageBufferToBase64EncodedPng, + getCompressedJpegFromCanvas, + IModelConnection, + NotificationHandler, + MarginPercent, + Marker, + Cluster, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + NotifyMessageDetails, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + Decorations, + FeatureSymbology, + GraphicBranch, + GraphicBuilder, + Pixel, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + RenderSystem, + Scene, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + DisclosedTileTreeSet, + readElementGraphics, + BingElevationProvider, + Tile, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + Tiles, + EditManipulator, + EventController, + PrimitiveTool, + BeButtonState, + BeButtonEvent, + BeTouchEvent, + BeWheelEvent, + Tool, + InteractiveTool, + InputCollector, + ToolAdmin, + ToolAssistance, + ToolSettings, + ViewTool, + ViewManip, + ViewCreator2d, + ViewCreator3d, + queryTerrainElevationOffset, + ViewingSpace, + ViewManager, + ViewPose, + ViewRect, + ViewState, + ViewState3d, + ViewState2d, // @itwin/core-common: BackgroundMapType, GlobeMode, @@ -123,6 +205,8 @@ export const { FontType, Npc, GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, FillDisplay, BackgroundFill, GeometryClass, @@ -146,8 +230,6 @@ export const { TxnAction, GridOrientationType, RenderMode, - ElementGeometryOpcode, - GeometryStreamFlags, - ColorDef, // REAL + ColorDef, } = ext.exports; // END GENERATED CODE diff --git a/core/frontend/src/AccuDraw.ts b/core/frontend/src/AccuDraw.ts index 3048dc2dee7e..df35bb5555ab 100644 --- a/core/frontend/src/AccuDraw.ts +++ b/core/frontend/src/AccuDraw.ts @@ -3097,7 +3097,7 @@ export enum ContextRotationId { Top, Front, Left, Bottom, Back, Right, View, Fac * through keyboard shortcuts. * @see [Using AccuDraw]($docs/learning/frontend/primitivetools.md#AccuDraw)* * @public - * @extensions REAL + * @extensions */ export class AccuDrawHintBuilder { private _flagOrigin = false; diff --git a/core/frontend/src/BingLocation.ts b/core/frontend/src/BingLocation.ts index 8bf7b479eb09..d9bd7adee8a0 100644 --- a/core/frontend/src/BingLocation.ts +++ b/core/frontend/src/BingLocation.ts @@ -13,7 +13,7 @@ import { GlobalLocation } from "./ViewGlobalLocation"; /** Provides an interface to the [Bing Maps location services](https://docs.microsoft.com/en-us/bingmaps/rest-services/locations/). * @public - * @extensions REAL + * @extensions */ export class BingLocationProvider { private _locationRequestTemplate: string; diff --git a/core/frontend/src/ElementLocateManager.ts b/core/frontend/src/ElementLocateManager.ts index 6c1730640d5b..ea7702255f9e 100644 --- a/core/frontend/src/ElementLocateManager.ts +++ b/core/frontend/src/ElementLocateManager.ts @@ -100,7 +100,7 @@ export class LocateOptions { /** * @public - * @extensions REAL + * @extensions */ export class LocateResponse { public snapStatus = SnapStatus.Success; diff --git a/core/frontend/src/EmphasizeElements.ts b/core/frontend/src/EmphasizeElements.ts index a8e6aa91d184..c569feb4c4c6 100644 --- a/core/frontend/src/EmphasizeElements.ts +++ b/core/frontend/src/EmphasizeElements.ts @@ -14,7 +14,7 @@ import { Viewport } from "./Viewport"; /** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides. * @public - * @extensions REAL + * @extensions */ export class EmphasizeElements implements FeatureOverrideProvider { private _defaultAppearance?: FeatureAppearance; diff --git a/core/frontend/src/FrustumAnimator.ts b/core/frontend/src/FrustumAnimator.ts index 0593f8b66e77..80fb1b9c03d9 100644 --- a/core/frontend/src/FrustumAnimator.ts +++ b/core/frontend/src/FrustumAnimator.ts @@ -46,7 +46,7 @@ function interpolateSwingingEye( } /** Animates the transition of a [[Viewport]] from one [Frustum]($common) to another. The viewport will render as many frames as necessary during the supplied duration. * @public - * @extensions REAL + * @extensions */ export class FrustumAnimator implements Animator { private _tweens = new Tweens(); diff --git a/core/frontend/src/GlobeAnimator.ts b/core/frontend/src/GlobeAnimator.ts index 9d91ea599592..14af78c81eeb 100644 --- a/core/frontend/src/GlobeAnimator.ts +++ b/core/frontend/src/GlobeAnimator.ts @@ -18,7 +18,7 @@ import { Animator } from "./ViewAnimation"; * The duration of the animation varies based on the distance traversed. * @see [[Viewport.animateFlyoverToGlobalLocation]]. * @public - * @extensions REAL + * @extensions */ export class GlobeAnimator implements Animator { protected _flightTweens = new Tweens(); diff --git a/core/frontend/src/ImageUtil.ts b/core/frontend/src/ImageUtil.ts index 936fdf8422c0..72879f512d62 100644 --- a/core/frontend/src/ImageUtil.ts +++ b/core/frontend/src/ImageUtil.ts @@ -45,7 +45,7 @@ function rgbaFromRgba(rgba: Rgba, src: Uint8Array, idx: number): number { * @param barStyle CSS style string to apply to any side bars; defaults to "#C0C0C0", which is silver. * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the resized image and any requested side bars. * @public - * @extensions REAL + * @extensions */ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targetSize: Point2d, barSize = new Point2d(0, 0), barStyle = "#C0C0C0"): HTMLCanvasElement { const canvasOut = document.createElement("canvas"); @@ -74,7 +74,7 @@ export function canvasToResizedCanvasWithBars(canvasIn: HTMLCanvasElement, targe * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns an [HTMLCanvasElement](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement) object containing the contents of the source image buffer, or undefined if the conversion fails. * @public - * @extensions REAL + * @extensions */ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean = true): HTMLCanvasElement | undefined { const canvas = document.createElement("canvas"); @@ -113,7 +113,7 @@ export function imageBufferToCanvas(buffer: ImageBuffer, preserveAlpha: boolean * @param format the desired format of the created ImageBuffer; defaults to [[ImageBufferFormat.Rgba]]. * @returns an [[ImageBuffer]] object containing the contents of the source canvas, or undefined if the conversion fails. * @public - * @extensions REAL + * @extensions */ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBufferFormat.Rgba): ImageBuffer | undefined { const context = canvas.getContext("2d"); @@ -161,7 +161,7 @@ export function canvasToImageBuffer(canvas: HTMLCanvasElement, format = ImageBuf /** Get a string describing the mime type associated with an ImageSource format. * @public - * @extensions REAL + * @extensions */ export function getImageSourceMimeType(format: ImageSourceFormat): string { @@ -178,7 +178,7 @@ export function getImageSourceMimeType(format: ImageSourceFormat): string { /** Get the ImageSourceFormat corresponding to the mime type string, or undefined if the string does not identify a supported ImageSourceFormat. * @public - * @extensions REAL + * @extensions */ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFormat | undefined { switch (mimeType) { @@ -193,7 +193,7 @@ export function getImageSourceFormatForMimeType(mimeType: string): ImageSourceFo * @param source The ImageSource containing the binary jpeg or png data. * @returns a Promise which resolves to an HTMLImageElement containing the uncompressed bitmap image in RGBA format. * @public - * @extensions REAL + * @extensions */ export async function imageElementFromImageSource(source: ImageSource): Promise { const blob = new Blob([source.data], { type: getImageSourceMimeType(source.format) }); @@ -205,7 +205,7 @@ export async function imageElementFromImageSource(source: ImageSource): Promise< * @returns A Promise resolving to an HTMLImageElement when the image data has been loaded from the URL. * @see tryImageElementFromUrl. * @public - * @extensions REAL + * @extensions */ export async function imageElementFromUrl(url: string): Promise { // We must set crossorigin property so that images loaded from same origin can be used with texImage2d. @@ -239,7 +239,7 @@ export async function tryImageElementFromUrl(url: string): Promise { const image = await imageElementFromImageSource(source); @@ -252,7 +252,7 @@ export async function extractImageSourceDimensions(source: ImageSource): Promise * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns a data url as a string suitable for setting as the `src` property of an HTMLImageElement, or undefined if the url could not be created. * @public - * @extensions REAL + * @extensions */ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = true): string | undefined { // The default format (and the only format required to be supported) for toDataUrl() is "image/png". @@ -266,7 +266,7 @@ export function imageBufferToPngDataUrl(buffer: ImageBuffer, preserveAlpha = tru * @param preserveAlpha If false, the alpha channel will be set to 255 (fully opaque). This is recommended when converting an already-blended image (e.g., one obtained from [[Viewport.readImageBuffer]]). * @returns a base64-encoded string representing the image as a PNG, or undefined if the conversion failed. * @public - * @extensions REAL + * @extensions */ export function imageBufferToBase64EncodedPng(buffer: ImageBuffer, preserveAlpha = true): string | undefined { const urlPrefix = "data:image/png;base64,"; @@ -318,7 +318,7 @@ export function getCenteredViewRect(viewRect: ViewRect, aspectRatio = 1.4): View * @param minCompressionQuality The minimum acceptable image quality as a number between 0 (lowest quality) and 1 (highest quality). * @returns A [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) for the image, or `undefined` if the compression and size constraints could not be met. * @public - * @extensions REAL + * @extensions */ export function getCompressedJpegFromCanvas(canvas: HTMLCanvasElement, maxBytes = 60000, minCompressionQuality = 0.1): string | undefined { const decrements = 0.1; // Decrements of quality diff --git a/core/frontend/src/MarginPercent.ts b/core/frontend/src/MarginPercent.ts index 499e65e2b45e..8c01d2ea4c6b 100644 --- a/core/frontend/src/MarginPercent.ts +++ b/core/frontend/src/MarginPercent.ts @@ -10,7 +10,7 @@ import { Geometry } from "@itwin/core-geometry"; /** Margins for white space to be left around view volumes for [[ViewState.lookAtVolume]]. * Values mean "fraction of view size" and must be between 0 and .25. * @public - * @extensions REAL + * @extensions */ export class MarginPercent { constructor(public left: number, public top: number, public right: number, public bottom: number) { diff --git a/core/frontend/src/Marker.ts b/core/frontend/src/Marker.ts index b0601733be27..26887bbe89d0 100644 --- a/core/frontend/src/Marker.ts +++ b/core/frontend/src/Marker.ts @@ -65,7 +65,7 @@ function getMinScaleViewW(vp: Viewport): number { * Markers draw on top of all scene graphics, and show visual cues about locations of interest. * @see [Markers]($docs/learning/frontend/Markers) * @public - * @extensions REAL + * @extensions */ export class Marker implements CanvasDecoration { protected _scaleFactor?: Point2d; @@ -315,7 +315,7 @@ export class Marker implements CanvasDecoration { /** A cluster of one or more Markers that overlap one another in the view. The cluster's screen position is taken from its first entry. * Clusters also have a Marker themselves, that represents the whole group. The cluster marker isn't created until all entries have been added. * @public - * @extensions REAL + * @extensions */ export class Cluster { public readonly markers: T[]; diff --git a/core/frontend/src/NotificationManager.ts b/core/frontend/src/NotificationManager.ts index 8cd0b2131942..58ff90bae069 100644 --- a/core/frontend/src/NotificationManager.ts +++ b/core/frontend/src/NotificationManager.ts @@ -119,7 +119,7 @@ export interface ToolTipOptions { /** Describes a message to be displayed to the user. * @public - * @extensions REAL + * @extensions */ export class NotifyMessageDetails { public displayTime = BeDuration.fromSeconds(5); diff --git a/core/frontend/src/ViewGlobalLocation.ts b/core/frontend/src/ViewGlobalLocation.ts index 5ea46f1165b2..f66c63411732 100644 --- a/core/frontend/src/ViewGlobalLocation.ts +++ b/core/frontend/src/ViewGlobalLocation.ts @@ -59,7 +59,7 @@ export function metersToRange(inputMeters: number, minimumOutput: number = 500, /** Queries the actual elevation of a cartographic point on the globe (using Bing elevation services) * @public - * @extensions REAL + * @extensions */ export async function queryTerrainElevationOffset(viewport: ScreenViewport, carto: Cartographic): Promise { const bingElevationProvider = new BingElevationProvider(); diff --git a/core/frontend/src/ViewRect.ts b/core/frontend/src/ViewRect.ts index 917ad2a44cf6..a369ffc8fc06 100644 --- a/core/frontend/src/ViewRect.ts +++ b/core/frontend/src/ViewRect.ts @@ -12,7 +12,7 @@ import { LowAndHighXY, XAndY } from "@itwin/core-geometry"; * * Increasing **x** moves from left to right, and increasing **y** moves from top to bottom. * @public - * @extensions REAL + * @extensions */ export class ViewRect { private _left!: number; diff --git a/core/frontend/src/render/FeatureSymbology.ts b/core/frontend/src/render/FeatureSymbology.ts index ffd3128cb157..8cc2a848dc35 100644 --- a/core/frontend/src/render/FeatureSymbology.ts +++ b/core/frontend/src/render/FeatureSymbology.ts @@ -15,7 +15,7 @@ import { ViewState } from "../ViewState"; /** Contains types that enable an application to customize how [Feature]($common)s are drawn within a [[Viewport]]. * @public - * @extensions REAL + * @extensions */ export namespace FeatureSymbology { /** An object that serves as the source of a [[FeatureSymbology.Overrides]]. diff --git a/core/frontend/src/render/GraphicBranch.ts b/core/frontend/src/render/GraphicBranch.ts index 48ac9f6634bb..6a6348b56aeb 100644 --- a/core/frontend/src/render/GraphicBranch.ts +++ b/core/frontend/src/render/GraphicBranch.ts @@ -41,7 +41,7 @@ export enum AnimationNodeId { * Branches can be nested to build an arbitrarily-complex scene graph. * @see [[RenderSystem.createBranch]] * @public - * @extensions REAL + * @extensions */ export class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ { /** The child nodes of this branch */ diff --git a/core/frontend/src/render/Pixel.ts b/core/frontend/src/render/Pixel.ts index f2058a68f198..e24be21d11e8 100644 --- a/core/frontend/src/render/Pixel.ts +++ b/core/frontend/src/render/Pixel.ts @@ -13,7 +13,7 @@ import { IModelConnection } from "../IModelConnection"; /** Describes aspects of a pixel as read from a [[Viewport]]. * @see [[Viewport.readPixels]]. * @public - * @extensions REAL + * @extensions */ export namespace Pixel { /** Describes a single pixel within a [[Pixel.Buffer]]. */ diff --git a/core/frontend/src/tile/ImdlReader.ts b/core/frontend/src/tile/ImdlReader.ts index 5aa38ec91fa9..066be0ee4ecf 100644 --- a/core/frontend/src/tile/ImdlReader.ts +++ b/core/frontend/src/tile/ImdlReader.ts @@ -96,7 +96,7 @@ export class GltfHeader extends TileHeader { * @param is3d True if the graphics are 3d. * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch. * @public - * @extensions REAL + * @extensions */ export async function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise { const stream = ByteStream.fromUint8Array(bytes); diff --git a/core/frontend/src/tile/map/BingElevation.ts b/core/frontend/src/tile/map/BingElevation.ts index 0336a00689d6..81040cf79dea 100644 --- a/core/frontend/src/tile/map/BingElevation.ts +++ b/core/frontend/src/tile/map/BingElevation.ts @@ -23,7 +23,7 @@ import { RenderSystem } from "../../render/RenderSystem"; /** Provides an interface to the [Bing Maps elevation services](https://docs.microsoft.com/en-us/bingmaps/rest-services/elevations/). * @public - * @extensions REAL + * @extensions */ export class BingElevationProvider { private static _scratchRange = Range3d.createNull(); diff --git a/core/frontend/src/tools/EditManipulator.ts b/core/frontend/src/tools/EditManipulator.ts index bc18ea359a11..767ce43208ca 100644 --- a/core/frontend/src/tools/EditManipulator.ts +++ b/core/frontend/src/tools/EditManipulator.ts @@ -25,7 +25,7 @@ import { ManipulatorToolEvent } from "./ToolAdmin"; * - Respond to selection changed event to create control handles as pickable decorations when the desired element(s) or pickable decoration is selected. * - Respond to button events on the control handle decoration and run a sub-class of [[EditManipulator.HandleTool]] to modify. * @public - * @extensions REAL + * @extensions */ export namespace EditManipulator { /** Specifies the event for [[EditManipulator.HandleProvider.onManipulatorEvent]] */ diff --git a/core/frontend/src/tools/PrimitiveTool.ts b/core/frontend/src/tools/PrimitiveTool.ts index ef72e0bcf791..07856cd24623 100644 --- a/core/frontend/src/tools/PrimitiveTool.ts +++ b/core/frontend/src/tools/PrimitiveTool.ts @@ -17,7 +17,7 @@ import { BeButton, BeButtonEvent, CoordinateLockOverrides, CoreTools, Interactiv /** The PrimitiveTool class can be used to implement tools to create or modify geometric elements. * @see [Writing a PrimitiveTool]($docs/learning/frontend/primitivetools.md) * @public - * @extensions REAL + * @extensions */ export abstract class PrimitiveTool extends InteractiveTool { /** The viewport within which the tool operates. diff --git a/core/frontend/src/tools/Tool.ts b/core/frontend/src/tools/Tool.ts index 9cb6813c6084..0831eceb43a4 100644 --- a/core/frontend/src/tools/Tool.ts +++ b/core/frontend/src/tools/Tool.ts @@ -143,7 +143,7 @@ export interface BeButtonEventProps { /** Object sent to Tools that holds information about button/touch/wheel events. * @public - * @extensions REAL + * @extensions */ export class BeButtonEvent implements BeButtonEventProps { private readonly _point: Point3d = new Point3d(); @@ -339,7 +339,7 @@ export class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps { * @see [[InteractiveTool]] for a base Tool class to handle user input events from a Viewport. * @see [Tools]($docs/learning/frontend/tools.md) * @public - * @extensions REAL + * @extensions */ export class Tool { /** If true, this Tool will not appear in the list from [[ToolRegistry.getToolList]]. This should be overridden in subclasses to hide them. */ @@ -475,7 +475,7 @@ export enum EventHandled { No = 0, Yes = 1 } /** A Tool that may be installed, via [[ToolAdmin]], to handle user input. The ToolAdmin manages the currently installed ViewingTool, PrimitiveTool, * InputCollector, and IdleTool. Each must derive from this class and there may only be one of each type installed at a time. * @public - * @extensions REAL + * @extensions */ export abstract class InteractiveTool extends Tool { @@ -825,7 +825,7 @@ export abstract class InteractiveTool extends Tool { * (ex. get a distance by snapping to 2 points) without affecting the state of the active primitive tool. * An InputCollector will suspend the active PrimitiveTool and can be suspended by a ViewTool. * @public - * @extensions REAL + * @extensions */ export abstract class InputCollector extends InteractiveTool { public override async run(..._args: any[]): Promise { diff --git a/core/frontend/src/tools/ToolAssistance.ts b/core/frontend/src/tools/ToolAssistance.ts index 47735e7f5e1e..e9ab35ba76a6 100644 --- a/core/frontend/src/tools/ToolAssistance.ts +++ b/core/frontend/src/tools/ToolAssistance.ts @@ -118,7 +118,7 @@ export interface ToolAssistanceInstructions { /** Tool Assistance helper methods. * @public - * @extensions REAL + * @extensions */ export class ToolAssistance { diff --git a/core/frontend/src/tools/ViewTool.ts b/core/frontend/src/tools/ViewTool.ts index e6b96b349d9a..5b2f5e38b721 100644 --- a/core/frontend/src/tools/ViewTool.ts +++ b/core/frontend/src/tools/ViewTool.ts @@ -88,7 +88,7 @@ const inertialDampen = (pt: Vector3d) => { /** An InteractiveTool that manipulates a view. * @public - * @extensions REAL + * @extensions */ export abstract class ViewTool extends InteractiveTool { public static translate(val: string) { return CoreTools.translate(`View.${val}`); } diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 5f38b45281fe..606079056d72 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -82,21 +82,21 @@ module.exports = { } } - function addToApiList(declaration, jsDocExtensionTag) { + function addToApiList(declaration) { if (!outputApiFile) { return; } // Separate interfaces, items marked as real, enums, and others (treated as types) - let trailer = ",type\n"; + let trailer = ",real\n"; if (declaration.kind === ts.SyntaxKind.EnumDeclaration) { trailer = ",enum\n"; } else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { trailer = ",interface\n"; } - else if (jsDocExtensionTag.comment && jsDocExtensionTag.comment.toLowerCase().includes("real")) { - trailer = ",real\n"; + else if (declaration.kind === ts.SyntaxKind.TypeAliasDeclaration) { + trailer = ",type\n"; } if (declaration.kind === ts.SyntaxKind.VariableStatement) { @@ -142,7 +142,7 @@ module.exports = { let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionsTag); // Has extension API tag if (jsDocExtensionTag) { - addToApiList(declaration, jsDocExtensionTag); + addToApiList(declaration); // Does not have any of the required release tags if (!jsDoc.tags.some(tag => releaseTags.includes(tag.tagName.escapedText))) { let name; From ae6ca3b969539f2ef59e6b0361527950b7c29eb5 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 8 Mar 2022 13:58:03 -0500 Subject: [PATCH 47/76] eslint extension support for the @ preview tag, overruling any other tags (e.g., alpha or beta) --- core/common/package.json | 2 +- core/frontend/package.json | 2 +- tools/eslint-plugin/dist/rules/public-extension-exports.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index c27f925f88ad..dbdc0959bf76 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" diff --git a/core/frontend/package.json b/core/frontend/package.json index e801756298e8..0e0081372315 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,7 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 606079056d72..fee1464e996c 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -54,7 +54,7 @@ module.exports = { uniqueItems: true, items: { type: "string", - enum: ["public", "beta", "alpha", "internal"] + enum: ["public", "beta", "alpha", "internal", "preview"] } }, outputApiFile: { From 8f8f9a84b3e4b7493fb25e4db3c333febea5ddf9 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 8 Mar 2022 16:03:19 -0500 Subject: [PATCH 48/76] items with the preview tag are in a separate export --- core/extension/codeGen/generate-exports.js | 39 ++++++++++++++----- core/extension/preview.d.ts | 18 +++++++++ core/extension/preview.js | 9 +++++ .../dist/rules/public-extension-exports.js | 16 +++++--- 4 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 core/extension/preview.d.ts create mode 100644 core/extension/preview.js diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index b13894b75efa..18e617757b75 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -6,7 +6,9 @@ const fs = require("fs"); const declarationFilePath = "index.d.ts"; +const declarationFilePathPreview = "preview.d.ts"; const jsFilePath = "index.js"; +const jsFilePathPreview = "preview.js"; const generatedCsvPath = "/lib/GeneratedExtensionApi.csv"; const codeGenOpeningComment = `// BEGIN GENERATED CODE`; @@ -23,22 +25,30 @@ args = args.split(" "); // Convert extension linter's output file to a set of lists separated by export type function interpretCsv(csvString) { - let apiByType = { - // property names to match the type names from extension eslint rule output - enum: [], - interface: [], - type: [], - real: [] + const apiByType = { + public: { + // property names to match the type names from extension eslint rule output + enum: [], + interface: [], + type: [], + real: [] + }, + preview: { + enum: [], + interface: [], + type: [], + real: [] + } }; - // Data in exportName,exportType order + // csv order must be exportName,exportType,releaseTag try { csvString.split("\n").forEach(line => { if (line.length === 0) { return; } line = line.split(","); - apiByType[line[1]].push(line[0]); + apiByType[line[2]][line[1]].push(line[0]); }); } catch (error) { console.log("Provided csv with Extension API was malformed.", error); @@ -139,9 +149,12 @@ function addToFile(filePath, generatedCode) { // Use the extension linter's output file to add export statements to .d.ts and .js files function addGeneratedExports(packages) { let exportList = {}; + let exportListPreview = {}; packages.forEach((package) => { - exportList[package.name] = collectExports(package.path); + const { public, preview } = collectExports(package.path); + exportList[package.name] = public; + exportListPreview[package.name] = preview; }); // Generate declaration code @@ -151,6 +164,14 @@ function addGeneratedExports(packages) { // Generate js code const jsCode = generateJsCode(exportList); addToFile(jsFilePath, jsCode); + + // Generate declaration code for preview.d.ts + const declarationCodePreview = generateDeclarationCode(exportListPreview); + addToFile(declarationFilePathPreview, declarationCodePreview); + + // Generate js code for preview.js + const jsCodePreview = generateJsCode(exportListPreview); + addToFile(jsFilePathPreview, jsCodePreview); } const packages = []; diff --git a/core/extension/preview.d.ts b/core/extension/preview.d.ts new file mode 100644 index 000000000000..bd63a76eadd1 --- /dev/null +++ b/core/extension/preview.d.ts @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +// BEGIN GENERATED CODE +export { +} from "@itwin/core-frontend"; + +export type { +} from "@itwin/core-frontend"; + +export { +} from "@itwin/core-common"; + +export type { +} from "@itwin/core-common"; + +// END GENERATED CODE diff --git a/core/extension/preview.js b/core/extension/preview.js new file mode 100644 index 000000000000..084337904d7d --- /dev/null +++ b/core/extension/preview.js @@ -0,0 +1,9 @@ +const globalSymbol = Symbol.for("itwin.core.frontend.globals"); +const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); + +// BEGIN GENERATED CODE +export const { +// @itwin/core-frontend: +// @itwin/core-common: +} = ext.exports; +// END GENERATED CODE diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index fee1464e996c..20e10811f0b2 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -70,6 +70,7 @@ module.exports = { const releaseTags = (context.options.length > 0 && context.options[0].releaseTags) || ["public"]; const extensionsTag = "extensions"; // SWB temporary extension tag name + const previewTag = "preview"; const outputApiFile = (context.options.length > 0 && context.options[0].outputApiFile) || false; const apiFilePath = "./lib/GeneratedExtensionApi.csv"; @@ -82,23 +83,25 @@ module.exports = { } } - function addToApiList(declaration) { + function addToApiList(declaration, isPreview) { if (!outputApiFile) { return; } // Separate interfaces, items marked as real, enums, and others (treated as types) - let trailer = ",real\n"; + let kind = "real"; if (declaration.kind === ts.SyntaxKind.EnumDeclaration) { - trailer = ",enum\n"; + kind = "enum"; } else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { - trailer = ",interface\n"; + kind = "interface"; } else if (declaration.kind === ts.SyntaxKind.TypeAliasDeclaration) { - trailer = ",type\n"; + kind = "type"; } + const trailer = `,${kind},${isPreview ? 'preview' : 'public'}\n`; + if (declaration.kind === ts.SyntaxKind.VariableStatement) { fs.writeFileSync(apiFilePath, declaration.declarationList.declarations[0].symbol.escapedName + trailer, { flag: "a" }); return; @@ -140,9 +143,10 @@ module.exports = { for (const jsDoc of declaration.jsDoc) if (jsDoc.tags) { let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionsTag); + let jsDocPreviewTag = jsDoc.tags.find(tag => tag.tagName.escapedText === previewTag); // Has extension API tag if (jsDocExtensionTag) { - addToApiList(declaration); + addToApiList(declaration, jsDocPreviewTag); // Does not have any of the required release tags if (!jsDoc.tags.some(tag => releaseTags.includes(tag.tagName.escapedText))) { let name; From 64c32bc68b5fb82c1a5b8e0e578f9fbcc7f3df56 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 9 Mar 2022 14:26:09 -0500 Subject: [PATCH 49/76] avoid circular dependencies as a result of ExtensionRuntime.ts generation --- core/frontend/src/extension/ExtensionAdmin.ts | 2 ++ core/frontend/src/extension/extensions.ts | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index 0749a5d07add..0e154d8a5637 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -6,6 +6,7 @@ * @module Extensions */ +import "./ExtensionRuntime"; import { IModelApp } from "../IModelApp"; import { ActivationEvent, BuildExtensionManifest, ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; import { ExtensionLoader } from "./ExtensionLoader"; @@ -53,6 +54,7 @@ export class ExtensionAdmin { }; public constructor() { + // TODO: potential circular dependency - look into refactoring IModelApp.onAfterStartup.addListener(this.onStartup); } diff --git a/core/frontend/src/extension/extensions.ts b/core/frontend/src/extension/extensions.ts index c5bbfaefa00d..524edc80ab84 100644 --- a/core/frontend/src/extension/extensions.ts +++ b/core/frontend/src/extension/extensions.ts @@ -19,8 +19,3 @@ */ export * from "./Extension"; -export * from "./ExtensionAdmin"; -export * from "./ExtensionImpl"; -export * from "./ExtensionLoader"; -export * from "./ExtensionHost"; -import "./ExtensionRuntime"; From d5156a5f81bf81030b7f7e83375533e41c3e6f2f Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 10 Mar 2022 09:10:30 -0500 Subject: [PATCH 50/76] generate ExtensionRuntime.ts but keep ExtensionHost as manual exception --- core/extension/codeGen/generate-exports.js | 57 +- core/extension/index.d.ts | 2 + core/extension/index.js | 2 + .../src/extension/ExtensionRuntime.ts | 525 +++++++++++++++--- 4 files changed, 511 insertions(+), 75 deletions(-) diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index 18e617757b75..bf7c6e8baea5 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -9,6 +9,7 @@ const declarationFilePath = "index.d.ts"; const declarationFilePathPreview = "preview.d.ts"; const jsFilePath = "index.js"; const jsFilePathPreview = "preview.js"; +const runtimeFilePath = '../frontend/src/extension/ExtensionRuntime.ts'; const generatedCsvPath = "/lib/GeneratedExtensionApi.csv"; const codeGenOpeningComment = `// BEGIN GENERATED CODE`; @@ -108,6 +109,52 @@ function generateJsCode(exportList) { return exportCode + exportTrailer; } +// Create the export code for the .ts file +function generateRuntimeCode(exportListPreview, exportList) { + let exportCode = ""; + let exports = "const extensionExports = {\n"; + const exportTrailer = `};\n\n`; + const addComment = (packageName, release, kind) => ` // @${release} ${kind}(s) from ${packageName}\n`; + const tab = " "; // two space tab + + for (const packageName in exportList) { + let imports = "import {\n"; + let importTrailer = `} from "${packageName}";\n\n`; + // since ExtensionRuntime.ts is also in core-frontend we have to add this exception + if (packageName === '@itwin/core-frontend') + importTrailer = `} from "../core-frontend";\n\n`; + + imports += exportListPreview[packageName].enum.length > 0 ? addComment(packageName, 'preview', 'enum') : ""; + exportListPreview[packageName].enum.forEach((enumExport) => { + imports += `${tab}${enumExport},\n`; + exports += `${tab}${enumExport},\n`; + }); + + imports += exportListPreview[packageName].real.length > 0 ? addComment(packageName, 'preview', 'real') : ""; + exportListPreview[packageName].real.forEach((realExport) => { + imports += `${tab}${realExport},\n`; + exports += `${tab}${realExport},\n`; + }); + + imports += exportList[packageName].enum.length > 0 ? addComment(packageName, 'public', 'enum') : ""; + exportList[packageName].enum.forEach((enumExport) => { + imports += `${tab}${enumExport},\n`; + exports += `${tab}${enumExport},\n`; + }); + + imports += exportList[packageName].real > 0 ? addComment(packageName, 'public', 'real') : ""; + exportList[packageName].real.forEach((realExport) => { + imports += `${tab}${realExport},\n`; + exports += `${tab}${realExport},\n`; + }); + + exportCode += imports + importTrailer; + }; + + return exportCode + exports + exportTrailer; +} + + // Find the extension linter's output file and convert to a set of useful lists function collectExports(packagePath) { @@ -129,11 +176,13 @@ function collectExports(packagePath) { // Replace the target file's code gen block with the provided code function addToFile(filePath, generatedCode) { + if (!fs.existsSync(filePath)) + throw Error(`File: ${filePath} does not exist.`); + let fileContents = fs.readFileSync(filePath, "utf8"); - if (!codeGenBlock.test(fileContents)) { + if (!codeGenBlock.test(fileContents)) throw Error(`No block for generated code found in '${filePath}. A block with the code gen opening and closing comments is required.`); - } // Embed generated code in codeGen block generatedCode = `${codeGenOpeningComment}\n${generatedCode}${codeGenClosingComment}`; @@ -172,6 +221,10 @@ function addGeneratedExports(packages) { // Generate js code for preview.js const jsCodePreview = generateJsCode(exportListPreview); addToFile(jsFilePathPreview, jsCodePreview); + + // Generate ts code for ExtensionRuntime.ts + const runtimeCode = generateRuntimeCode(exportListPreview, exportList); + addToFile(runtimeFilePath, runtimeCode); } const packages = []; diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index 862b1e556cc2..d83b5b86ced6 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -5,6 +5,8 @@ // manually curated section export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise +// ExtensionHost must always be in the API +export { ExtensionHost } from "@itwin/core-frontend/src/extension/ExtensionHost"; // BEGIN GENERATED CODE export { diff --git a/core/extension/index.js b/core/extension/index.js index cf5ad7621f73..c4e1a3593e9e 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -9,6 +9,8 @@ const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); // export extension stuff export const { registerTool } = ext.api; +// exception for ExtensionHost +export const { ExtensionHost } = ext.exports; // BEGIN GENERATED CODE export const { diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 65a1b9066d66..009483959a89 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -7,92 +7,471 @@ */ /* eslint-disable @typescript-eslint/naming-convention */ +/* eslint-disable @itwin/no-internal-barrel-imports */ +/* eslint-disable sort-imports */ -import { - BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, ColorDef, CommonLoggerCategory, - ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, - GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, - Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, - TerrainHeightOriginMode, TextureMapUnits, TextureTransparency, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, -} from "@itwin/core-common"; import { ExtensionImpl } from "./ExtensionImpl"; import { ExtensionHost } from "./ExtensionHost"; -import { AccuDrawHintBuilder, ContextRotationId } from "../AccuDraw"; -import { ACSDisplayOptions, ACSType } from "../AuxCoordSys"; -import { CoordSystem } from "../CoordSystem"; -import { LocateAction, LocateFilterStatus, LocateResponse, SnapStatus } from "../ElementLocateManager"; -import { FlashMode } from "../FlashSettings"; -import { FrontendLoggerCategory } from "../FrontendLoggerCategory"; -import { HitDetailType, HitGeomType, HitParentGeomType, HitPriority, HitSource, SnapHeat, SnapMode } from "../HitDetail"; -import { ActivityMessageEndReason, MessageBoxIconType, MessageBoxType, MessageBoxValue, NotifyMessageDetails, OutputMessageAlert, OutputMessagePriority, OutputMessageType } from "../NotificationManager"; -import { SelectionSetEventType } from "../SelectionSet"; -import { StandardViewId } from "../StandardView"; -import { ViewRect } from "../ViewRect"; -import { ViewStatus } from "../ViewStatus"; -import { DepthPointSource, ViewUndoEvent } from "../Viewport"; -import { GraphicType } from "../render/GraphicBuilder"; -import { Pixel } from "../render/Pixel"; -import { UniformType, VaryingType } from "../render/ScreenSpaceEffectBuilder"; -import { BingElevationProvider, readElementGraphics, TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility } from "../tile/internal"; -import { ClipEventType } from "../tools/ClipViewTool"; -import { PrimitiveTool } from "../tools/PrimitiveTool"; -import { SelectionMethod, SelectionMode, SelectionProcessing } from "../tools/SelectTool"; -import { BeButton, BeButtonEvent, BeModifierKeys, CoordinateLockOverrides, CoordSource, EventHandled, InputCollector, InputSource, InteractiveTool, KeyinParseError, ParseAndRunResult, Tool } from "../tools/Tool"; -import { ManipulatorToolEvent, StartOrResume } from "../tools/ToolAdmin"; -import { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod } from "../tools/ToolAssistance"; -import { ViewTool } from "../tools/ViewTool"; -import { EditManipulator } from "../tools/EditManipulator"; -import { EmphasizeElements } from "../EmphasizeElements"; -import { FeatureSymbology } from "../render/FeatureSymbology"; -import { GraphicBranch } from "../render/GraphicBranch"; -import { canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, - imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, imageElementFromImageSource, imageElementFromUrl } from "../ImageUtil"; -import { queryTerrainElevationOffset } from "../ViewGlobalLocation"; -import { BingLocationProvider } from "../BingLocation"; -import { FrustumAnimator } from "../FrustumAnimator"; -import { GlobeAnimator } from "../GlobeAnimator"; -import { MarginPercent } from "../MarginPercent"; -import { Cluster, Marker } from "../Marker"; - const globalSymbol = Symbol.for("itwin.core.frontend.globals"); if ((globalThis as any)[globalSymbol]) throw new Error("Multiple @itwin/core-frontend imports detected!"); -const getExtensionApi = (id: string) => { - return { - exports: { - // Tools - InteractiveTool, PrimitiveTool, ViewTool, Tool, - - ToolAssistance, BeButtonEvent, ViewRect, Pixel, LocateResponse, EditManipulator, AccuDrawHintBuilder, EmphasizeElements, FeatureSymbology, GraphicBranch, NotifyMessageDetails, +// BEGIN GENERATED CODE +import { + // @public enum(s) from @itwin/core-frontend + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + GraphicType, + UniformType, + VaryingType, + SelectionSetEventType, + StandardViewId, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + ViewStatus, + AccuDrawHintBuilder, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + BingLocationProvider, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + LocateResponse, + ElementPicker, + ElementLocateManager, + EmphasizeElements, + EntityState, + ElementState, + FlashSettings, + FrustumAnimator, + GlobeAnimator, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + canvasToResizedCanvasWithBars, + imageBufferToCanvas, + canvasToImageBuffer, + getImageSourceMimeType, + getImageSourceFormatForMimeType, + imageElementFromImageSource, + imageElementFromUrl, + extractImageSourceDimensions, + imageBufferToPngDataUrl, + imageBufferToBase64EncodedPng, + getCompressedJpegFromCanvas, + IModelConnection, + NotificationHandler, + MarginPercent, + Marker, + Cluster, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + NotifyMessageDetails, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + Decorations, + FeatureSymbology, + GraphicBranch, + GraphicBuilder, + Pixel, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + RenderSystem, + Scene, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + DisclosedTileTreeSet, + readElementGraphics, + BingElevationProvider, + Tile, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + Tiles, + EditManipulator, + EventController, + PrimitiveTool, + BeButtonState, + BeButtonEvent, + BeTouchEvent, + BeWheelEvent, + Tool, + InteractiveTool, + InputCollector, + ToolAdmin, + ToolAssistance, + ToolSettings, + ViewTool, + ViewManip, + ViewCreator2d, + ViewCreator3d, + queryTerrainElevationOffset, + ViewingSpace, + ViewManager, + ViewPose, + ViewRect, + ViewState, + ViewState3d, + ViewState2d, +} from "../core-frontend"; - ColorDef, +import { + // @public enum(s) from @itwin/core-common + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ColorDef, +} from "@itwin/core-common"; - // Frontend functions - getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, - imageElementFromImageSource, imageElementFromUrl, queryTerrainElevationOffset, readElementGraphics, canvasToImageBuffer, canvasToResizedCanvasWithBars, extractImageSourceDimensions, +const extensionExports = { + ContextRotationId, + ACSType, + ACSDisplayOptions, + CoordSystem, + LocateAction, + LocateFilterStatus, + SnapStatus, + FlashMode, + FrontendLoggerCategory, + SnapMode, + SnapHeat, + HitSource, + HitGeomType, + HitParentGeomType, + HitPriority, + HitDetailType, + OutputMessageType, + OutputMessagePriority, + OutputMessageAlert, + ActivityMessageEndReason, + MessageBoxType, + MessageBoxIconType, + MessageBoxValue, + GraphicType, + UniformType, + VaryingType, + SelectionSetEventType, + StandardViewId, + TileLoadStatus, + TileVisibility, + TileLoadPriority, + TileBoundingBoxes, + TileTreeLoadStatus, + TileGraphicType, + ClipEventType, + SelectionMethod, + SelectionMode, + SelectionProcessing, + BeButton, + CoordinateLockOverrides, + InputSource, + CoordSource, + BeModifierKeys, + EventHandled, + ParseAndRunResult, + KeyinParseError, + StartOrResume, + ManipulatorToolEvent, + ToolAssistanceImage, + ToolAssistanceInputMethod, + ViewStatus, + AccuDrawHintBuilder, + AccuSnap, + AuxCoordSystemState, + AuxCoordSystem2dState, + AuxCoordSystem3dState, + AuxCoordSystemSpatialState, + BingLocationProvider, + CategorySelectorState, + ChangeFlags, + ContextRealityModelState, + DisplayStyleState, + DisplayStyle2dState, + DisplayStyle3dState, + DrawingViewState, + LocateOptions, + LocateResponse, + ElementPicker, + ElementLocateManager, + EmphasizeElements, + EntityState, + ElementState, + FlashSettings, + FrustumAnimator, + GlobeAnimator, + HitDetail, + SnapDetail, + IntersectDetail, + HitList, + canvasToResizedCanvasWithBars, + imageBufferToCanvas, + canvasToImageBuffer, + getImageSourceMimeType, + getImageSourceFormatForMimeType, + imageElementFromImageSource, + imageElementFromUrl, + extractImageSourceDimensions, + imageBufferToPngDataUrl, + imageBufferToBase64EncodedPng, + getCompressedJpegFromCanvas, + IModelConnection, + NotificationHandler, + MarginPercent, + Marker, + Cluster, + MarkerSet, + ModelSelectorState, + ModelState, + GeometricModelState, + GeometricModel2dState, + GeometricModel3dState, + SheetModelState, + SpatialModelState, + PhysicalModelState, + SpatialLocationModelState, + DrawingModelState, + SectionDrawingModelState, + NotifyMessageDetails, + ActivityMessageDetails, + NotificationManager, + PerModelCategoryVisibility, + Decorations, + FeatureSymbology, + GraphicBranch, + GraphicBuilder, + Pixel, + RenderClipVolume, + RenderGraphic, + RenderGraphicOwner, + RenderSystem, + Scene, + HiliteSet, + SelectionSet, + SheetViewState, + SpatialViewState, + OrthographicViewState, + Sprite, + IconSprites, + SpriteLocation, + TentativePoint, + DisclosedTileTreeSet, + readElementGraphics, + BingElevationProvider, + Tile, + TileAdmin, + TileDrawArgs, + TileRequest, + TileRequestChannelStatistics, + TileRequestChannel, + TileRequestChannels, + TileTree, + TileTreeReference, + TileUsageMarker, + Tiles, + EditManipulator, + EventController, + PrimitiveTool, + BeButtonState, + BeButtonEvent, + BeTouchEvent, + BeWheelEvent, + Tool, + InteractiveTool, + InputCollector, + ToolAdmin, + ToolAssistance, + ToolSettings, + ViewTool, + ViewManip, + ViewCreator2d, + ViewCreator3d, + queryTerrainElevationOffset, + ViewingSpace, + ViewManager, + ViewPose, + ViewRect, + ViewState, + ViewState3d, + ViewState2d, + BackgroundMapType, + GlobeMode, + BriefcaseIdValue, + SyncMode, + TypeOfChange, + ChangesetType, + BisCodeSpec, + ColorByName, + CommonLoggerCategory, + QueryRowFormat, + MonochromeMode, + ECSqlValueType, + ChangeOpCode, + ChangedValueState, + ECSqlSystemProperty, + SectionType, + Rank, + FeatureOverrideType, + BatchType, + FontType, + Npc, + GeoCoordStatus, + ElementGeometryOpcode, + GeometryStreamFlags, + FillDisplay, + BackgroundFill, + GeometryClass, + GeometrySummaryVerbosity, + FillFlags, + HSVConstants, + ImageBufferFormat, + ImageSourceFormat, + LinePixels, + MassPropertiesOperation, + TextureMapUnits, + PlanarClipMaskMode, + PlanarClipMaskPriority, + SkyBoxImageType, + SpatialClassifierInsideDisplay, + SpatialClassifierOutsideDisplay, + TerrainHeightOriginMode, + ThematicGradientMode, + ThematicGradientColorScheme, + ThematicDisplayMode, + TxnAction, + GridOrientationType, + RenderMode, + ColorDef, +}; - // Frontend classes - BingElevationProvider, BingLocationProvider, InputCollector, FrustumAnimator, GlobeAnimator, MarginPercent, Marker, Cluster, +// END GENERATED CODE +const getExtensionApi = (id: string) => { + return { + exports: { + // exceptions ExtensionHost, - - ACSDisplayOptions, ACSType, ActivityMessageEndReason, BeButton, BeModifierKeys, ClipEventType, ContextRotationId, CoordinateLockOverrides, - CoordSource, CoordSystem, DepthPointSource, EventHandled, FlashMode, FrontendLoggerCategory, GraphicType, HitDetailType, HitGeomType, - HitParentGeomType, HitPriority, HitSource, InputSource, KeyinParseError, LocateAction, LocateFilterStatus, ManipulatorToolEvent, - MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessageAlert, OutputMessagePriority, OutputMessageType, ParseAndRunResult, - SelectionMethod, SelectionMode, SelectionProcessing, SelectionSetEventType, SnapHeat, SnapMode, SnapStatus, StandardViewId, StartOrResume, - TextureTransparency, TileBoundingBoxes, TileGraphicType, TileLoadPriority, TileLoadStatus, TileTreeLoadStatus, TileVisibility, - ToolAssistanceImage, ToolAssistanceInputMethod, UniformType, VaryingType, ViewStatus, ViewUndoEvent, - - BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangedValueState, ChangeOpCode, ChangesetType, ColorByName, - CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, - GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, - ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, - RenderMode, SectionType, - SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, - ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange, + // automated + ...extensionExports, }, api: new ExtensionImpl(id), }; From 9c98328fc288105596b099eab24eda01897fd07f Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 10 Mar 2022 11:14:33 -0500 Subject: [PATCH 51/76] move types into Extension.ts --- core/frontend/src/extension/Extension.ts | 24 ++++++++++++++ core/frontend/src/extension/ExtensionAdmin.ts | 4 +-- .../frontend/src/extension/ExtensionLoader.ts | 33 ------------------- 3 files changed, 26 insertions(+), 35 deletions(-) delete mode 100644 core/frontend/src/extension/ExtensionLoader.ts diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts index f24f678e3ac9..0fde6acb1c63 100644 --- a/core/frontend/src/extension/Extension.ts +++ b/core/frontend/src/extension/Extension.ts @@ -54,3 +54,27 @@ export interface LocalExtensionProps { readonly manifest: ExtensionManifest; readonly mainFunc?: ResolveFunc; } + +/** The minimum information required to download an Extension + * @alpha +*/ +export interface ExtensionLoaderProps { + name: string; + version: string; +} + +/** @alpha */ +export interface BuiltInExtensionLoaderProps { + manifest: Promise; + loader: ResolveFunc; +} + +/** Describes what is needed in order to write an Extension Loader. + * @alpha + */ +export interface ExtensionLoader { + /** Retrieves an Extension manifest for the provided Extension identifier */ + getManifest(arg: ExtensionLoaderProps): Promise; + /** Downloads an Extension provided the name of the Extension */ + downloadExtension(arg: ExtensionLoaderProps): Promise; +} diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index 0e154d8a5637..d2ba76a9b20c 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -8,8 +8,8 @@ import "./ExtensionRuntime"; import { IModelApp } from "../IModelApp"; -import { ActivationEvent, BuildExtensionManifest, ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; -import { ExtensionLoader } from "./ExtensionLoader"; +import { ActivationEvent, BuildExtensionManifest, ExtensionLoader, ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; +// import { ExtensionLoader } from "./ExtensionLoader"; /** The Extensions loading system has the following goals: * 1. Only fetch what is needed when it is required diff --git a/core/frontend/src/extension/ExtensionLoader.ts b/core/frontend/src/extension/ExtensionLoader.ts deleted file mode 100644 index 7e2ec3bbc40d..000000000000 --- a/core/frontend/src/extension/ExtensionLoader.ts +++ /dev/null @@ -1,33 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -/** @packageDocumentation - * @module Extensions - */ - -import { ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; - -/** The minimum information required to download an Extension - * @alpha -*/ -export interface ExtensionLoaderProps { - name: string; - version: string; -} - -/** @alpha */ -export interface BuiltInExtensionLoaderProps { - manifest: Promise; - loader: ResolveFunc; -} - -/** Describes what is needed in order to write an Extension Loader. - * @alpha - */ -export interface ExtensionLoader { - /** Retrieves an Extension manifest for the provided Extension identifier */ - getManifest(arg: ExtensionLoaderProps): Promise; - /** Downloads an Extension provided the name of the Extension */ - downloadExtension(arg: ExtensionLoaderProps): Promise; -} From 52203d25b44356e4d71347afe190668a60bf3e60 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 10 Mar 2022 11:15:16 -0500 Subject: [PATCH 52/76] declare ExtensionHost class types --- core/extension/index.d.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index d83b5b86ced6..c5bb782527ae 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -5,8 +5,24 @@ // manually curated section export function registerTool(t: typeof import("@itwin/core-frontend").Tool): Promise +// these types are needed for ExtensionHost +import type { + ToolAdmin, + NotificationManager, + ViewManager, + ElementLocateManager, + AccuSnap, + RenderSystem +} from "@itwin/core-frontend"; // ExtensionHost must always be in the API -export { ExtensionHost } from "@itwin/core-frontend/src/extension/ExtensionHost"; +export declare class ExtensionHost { + public static get toolAdmin(): ToolAdmin; + public static get notifications(): NotificationManager; + public static get viewManager(): ViewManager; + public static get locateManager(): ElementLocateManager; + public static get accuSnap(): AccuSnap; + public static get renderSystem(): RenderSystem; +} // BEGIN GENERATED CODE export { From 3ed53263f145c589f85a0fa4ed5e03633805d2ec Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:14:43 -0500 Subject: [PATCH 53/76] check length of array - not the array itself --- core/extension/codeGen/generate-exports.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index bf7c6e8baea5..ff8250292659 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -142,7 +142,7 @@ function generateRuntimeCode(exportListPreview, exportList) { exports += `${tab}${enumExport},\n`; }); - imports += exportList[packageName].real > 0 ? addComment(packageName, 'public', 'real') : ""; + imports += exportList[packageName].real.length > 0 ? addComment(packageName, 'public', 'real') : ""; exportList[packageName].real.forEach((realExport) => { imports += `${tab}${realExport},\n`; exports += `${tab}${realExport},\n`; From 3fe5ae0df652cbc464eb6bcacf4b0f6a0b57dba2 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:42:33 -0500 Subject: [PATCH 54/76] removed extensions barrel, use Extension.ts instead --- core/extension/tsconfig.json | 14 ------------- core/frontend/package.json | 2 +- core/frontend/src/core-frontend.ts | 3 +-- .../src/extension/ExtensionRuntime.ts | 2 ++ core/frontend/src/extension/extensions.ts | 21 ------------------- 5 files changed, 4 insertions(+), 38 deletions(-) delete mode 100644 core/extension/tsconfig.json delete mode 100644 core/frontend/src/extension/extensions.ts diff --git a/core/extension/tsconfig.json b/core/extension/tsconfig.json deleted file mode 100644 index c81a00de21cb..000000000000 --- a/core/extension/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "./node_modules/@itwin/build-tools/tsconfig-base.json", - "compilerOptions": { - "declaration": false, - "declarationMap": false, - "outDir": "./lib", - "module": "ES2020", - "moduleResolution": "node", - "isolatedModules": true, - "skipLibCheck": true, - "allowJs": true - }, - "include": ["./src/**/*.js", "./src/**/*.ts"] -} diff --git a/core/frontend/package.json b/core/frontend/package.json index 0e0081372315..822ae4bce050 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -126,7 +126,7 @@ { "releaseTags": [ "public", - "beta" + "preview" ] } ] diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index a2a9b853bd0f..d78cebe839b4 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -22,7 +22,6 @@ export * from "./ElementLocateManager"; export * from "./EmphasizeElements"; export * from "./EntityState"; export * from "./EnvironmentDecorations"; -export * from "./extension/extensions"; export * from "./FeatureOverrideProvider"; export * from "./FlashSettings"; export * from "./FrontendLoggerCategory"; @@ -75,7 +74,7 @@ export * from "./ViewPose"; export * from "./ViewRect"; export * from "./ViewState"; export * from "./ViewStatus"; -export * from "./extension/extensions"; +export * from "./extension/Extension"; export * from "./properties/AngleDescription"; export * from "./properties/FormattedQuantityDescription"; export * from "./properties/LengthDescription"; diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index 009483959a89..c88d13c89047 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -71,6 +71,7 @@ import { ToolAssistanceImage, ToolAssistanceInputMethod, ViewStatus, + // @public real(s) from @itwin/core-frontend AccuDrawHintBuilder, AccuSnap, AuxCoordSystemState, @@ -240,6 +241,7 @@ import { TxnAction, GridOrientationType, RenderMode, + // @public real(s) from @itwin/core-common ColorDef, } from "@itwin/core-common"; diff --git a/core/frontend/src/extension/extensions.ts b/core/frontend/src/extension/extensions.ts deleted file mode 100644 index 524edc80ab84..000000000000 --- a/core/frontend/src/extension/extensions.ts +++ /dev/null @@ -1,21 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ - -// Barrel file for all extension related files. - -/** - * The Extension framework is made up of multiple pieces: - * - * - Extension API - * - The Extension API defines all of the types and API that can be used by an Extension. - * - Extension Impl - * - The current implementation of the Extension API - * - Extension Admin - * - Handles loading and managing Extensions - * - Extension Hooks - * - Defines the contribution points for Extensions - */ - -export * from "./Extension"; From 11fafb650c0e137cff789b6358bc67eb073a3154 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Fri, 11 Mar 2022 10:19:07 -0500 Subject: [PATCH 55/76] add preview to valid tags list, small comment fixes --- tools/build/scripts/utils/validateTags.js | 3 ++- tools/eslint-plugin/dist/rules/public-extension-exports.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/build/scripts/utils/validateTags.js b/tools/build/scripts/utils/validateTags.js index cc6515c4213d..7fb8e06b13a9 100644 --- a/tools/build/scripts/utils/validateTags.js +++ b/tools/build/scripts/utils/validateTags.js @@ -26,8 +26,9 @@ const validTags = [ "internal", "public", - // Following flags are added for internal Extension tooling (public-extension-api) + // Following flags are added for Extension tooling (public-extension-api) "extensions", + "preview" ]; function validateTags(path) { diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 20e10811f0b2..933e8b29f3a3 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -29,7 +29,7 @@ const syntaxKindFriendlyNames = { [ts.SyntaxKind.VariableStatement]: "variable statement" } -var firstRun = true; +let firstRun = true; /** * This rule prevents the exporting of extension APIs that not not meet certain release tags. @@ -69,7 +69,7 @@ module.exports = { const parserServices = getParserServices(context); const releaseTags = (context.options.length > 0 && context.options[0].releaseTags) || ["public"]; - const extensionsTag = "extensions"; // SWB temporary extension tag name + const extensionsTag = "extensions"; const previewTag = "preview"; const outputApiFile = (context.options.length > 0 && context.options[0].outputApiFile) || false; From bc5ec8a2ef300a587cf5529250ddb88e0d4e6645 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Fri, 11 Mar 2022 10:23:54 -0500 Subject: [PATCH 56/76] combine extract-extension-api and extract-api scripts in package.json --- core/common/package.json | 2 +- core/frontend/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index dbdc0959bf76..512c95ee502e 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -14,7 +14,7 @@ "build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm", "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", - "extract-api": "betools extract-api --entry=core-common", + "extract-api": "betools extract-api --entry=core-common && npm run -s extract-extension-api", "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", diff --git a/core/frontend/package.json b/core/frontend/package.json index 822ae4bce050..9aac82843d03 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", - "extract-api": "betools extract-api --entry=core-frontend", + "extract-api": "betools extract-api --entry=core-frontend && npm run -s extract-extension-api", "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "pseudolocalize": "betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO", From d6fb1b455ff3d9a39b2f6ce7fd8352c0605838b3 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Mon, 21 Mar 2022 16:06:11 -0400 Subject: [PATCH 57/76] fixed circular dependency issues preventing extensions from working --- core/frontend/src/IModelApp.ts | 14 +++++++++++++- core/frontend/src/core-frontend.ts | 2 ++ core/frontend/src/extension/Extension.ts | 4 +--- core/frontend/src/extension/ExtensionAdmin.ts | 14 +++----------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index 6bae173d4d83..9647e32eb004 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -278,7 +278,7 @@ export class IModelApp { public static readonly telemetry: TelemetryManager = new TelemetryManager(); /** @alpha */ - public static readonly extensionAdmin = new ExtensionAdmin(); + public static readonly extensionAdmin = this._createExtensionAdmin(); /** Map of classFullName to EntityState class */ private static _entityClasses = new Map(); @@ -725,4 +725,16 @@ export class IModelApp { return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key); } + + + /** + * Creates an instance of the ExtensionAdmin + * and registers an event to execute after startup is complete + * @returns an instance of ExtensionAdmin + */ + private static _createExtensionAdmin(): ExtensionAdmin { + const extensionAdmin = new ExtensionAdmin(); + IModelApp.onAfterStartup.addListener(extensionAdmin.onStartup); + return extensionAdmin; + } } diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index d78cebe839b4..6e2db78faeff 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -127,6 +127,8 @@ export * from "./ViewCreator2d"; export * from "./ViewCreator3d"; export * from "./LocalhostIpcApp"; export * from "./RealityDataSource"; +// TODO/FIX: "./extension/ExtensionRuntime" import has to be last to avoid circular dependency errors. +import "./extension/ExtensionRuntime"; /** @docs-package-description * The core-frontend package always runs in a web browser. It contains classes for [querying iModels and showing views]($docs/learning/frontend/index.md). diff --git a/core/frontend/src/extension/Extension.ts b/core/frontend/src/extension/Extension.ts index 0fde6acb1c63..2c578cfc93b0 100644 --- a/core/frontend/src/extension/Extension.ts +++ b/core/frontend/src/extension/Extension.ts @@ -9,9 +9,7 @@ /** * @alpha */ -export enum ActivationEvent { - onStartup = "onStartup", -} +export type ActivationEvent = "onStartup"; /** * @alpha diff --git a/core/frontend/src/extension/ExtensionAdmin.ts b/core/frontend/src/extension/ExtensionAdmin.ts index d2ba76a9b20c..0bc51ebeb2f5 100644 --- a/core/frontend/src/extension/ExtensionAdmin.ts +++ b/core/frontend/src/extension/ExtensionAdmin.ts @@ -6,10 +6,7 @@ * @module Extensions */ -import "./ExtensionRuntime"; -import { IModelApp } from "../IModelApp"; -import { ActivationEvent, BuildExtensionManifest, ExtensionLoader, ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; -// import { ExtensionLoader } from "./ExtensionLoader"; +import type { ActivationEvent, BuildExtensionManifest, ExtensionLoader, ExtensionManifest, LocalExtensionProps, ResolveFunc } from "./Extension"; /** The Extensions loading system has the following goals: * 1. Only fetch what is needed when it is required @@ -50,14 +47,9 @@ export class ExtensionAdmin { * @internal */ public onStartup = async () => { - await this.activateExtensionEvents(ActivationEvent.onStartup); + await this.activateExtensionEvents("onStartup"); }; - public constructor() { - // TODO: potential circular dependency - look into refactoring - IModelApp.onAfterStartup.addListener(this.onStartup); - } - /** Add an ExtensionLoader to the front of the list of extension loaders. Extension loaders are invoked front to back. * @param extensionLoader Extension loader to add */ @@ -82,7 +74,7 @@ export class ExtensionAdmin { } /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */ - private async activateExtensionEvents(event: string) { + private async activateExtensionEvents(event: ActivationEvent) { for (const extension of this._installedExtensions.values()) { if (!extension.manifest.activationEvents) continue; From 83419ea36726b844d765883e97cf7bc34b4d18a6 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Mon, 21 Mar 2022 17:04:23 -0400 Subject: [PATCH 58/76] syntaxFriendlyNames now matches up with the type names we publish to the csv file --- .../dist/rules/public-extension-exports.js | 54 +++++++------------ 1 file changed, 18 insertions(+), 36 deletions(-) diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 933e8b29f3a3..f35ff21fa9f9 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -11,24 +11,18 @@ const { getParserServices } = require("./utils/parser"); const ts = require("typescript"); const fs = require("fs"); -const syntaxKindFriendlyNames = { - [ts.SyntaxKind.ClassDeclaration]: "class", - [ts.SyntaxKind.EnumDeclaration]: "enum", - [ts.SyntaxKind.InterfaceDeclaration]: "interface", - [ts.SyntaxKind.ModuleDeclaration]: "module", - [ts.SyntaxKind.MethodDeclaration]: "method", - [ts.SyntaxKind.MethodSignature]: "method", - [ts.SyntaxKind.FunctionDeclaration]: "function", - [ts.SyntaxKind.PropertyDeclaration]: "property", - [ts.SyntaxKind.PropertySignature]: "property", - [ts.SyntaxKind.Constructor]: "constructor", - [ts.SyntaxKind.EnumMember]: "enum member", - [ts.SyntaxKind.TypeAliasDeclaration]: "type alias", - [ts.SyntaxKind.ExportDeclaration]: "export", - [ts.SyntaxKind.NamespaceExportDeclaration]: "namespace export", - [ts.SyntaxKind.VariableStatement]: "variable statement" +/** converts the numeric typescript enum value for ts.SyntaxKind to a string. Defaults to "real". */ +const getSyntaxKindFriendlyName = (syntaxKind) => { + const syntaxKindFriendlyNames = { + [ts.SyntaxKind.ClassDeclaration]: "real", + [ts.SyntaxKind.EnumDeclaration]: "enum", + [ts.SyntaxKind.InterfaceDeclaration]: "interface", + [ts.SyntaxKind.TypeAliasDeclaration]: "type", + } + return syntaxKindFriendlyNames[syntaxKind] || "real"; } + let firstRun = true; /** @@ -88,26 +82,14 @@ module.exports = { return; } - // Separate interfaces, items marked as real, enums, and others (treated as types) - let kind = "real"; - if (declaration.kind === ts.SyntaxKind.EnumDeclaration) { - kind = "enum"; - } - else if (declaration.kind === ts.SyntaxKind.InterfaceDeclaration) { - kind = "interface"; - } - else if (declaration.kind === ts.SyntaxKind.TypeAliasDeclaration) { - kind = "type"; - } - - const trailer = `,${kind},${isPreview ? 'preview' : 'public'}\n`; - - if (declaration.kind === ts.SyntaxKind.VariableStatement) { - fs.writeFileSync(apiFilePath, declaration.declarationList.declarations[0].symbol.escapedName + trailer, { flag: "a" }); - return; - } + const createCsvString = (name, kind) => `${name},${kind},${isPreview ? 'preview' : 'public'}\n`; - fs.writeFileSync(apiFilePath, declaration.symbol.escapedName + trailer, { flag: "a" }); + const name = declaration.kind === ts.SyntaxKind.VariableStatement ? + declaration.declarationList.declarations[0].symbol.escapedName : + declaration.symbol.escapedName; + const kind = getSyntaxKindFriendlyName(declaration.kind); + const csvString = createCsvString(name, kind); + fs.writeFileSync(apiFilePath, csvString, { flag: "a" }); } function getFileName(parent) { @@ -163,7 +145,7 @@ module.exports = { node, messageId: "forbidden", data: { - kind: syntaxKindFriendlyNames.hasOwnProperty(declaration.kind) ? syntaxKindFriendlyNames[declaration.kind] : "unknown object type " + declaration.kind, + kind: getSyntaxKindFriendlyName(declaration.kind), name, releaseTags: releaseTags, } From 5f4f04cbbfd7ef70eee0d71c771c862ef88ce383 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 22 Mar 2022 10:07:10 -0400 Subject: [PATCH 59/76] separate eslint config file to only check specific rule --- core/common/package.json | 2 +- core/frontend/package.json | 2 +- core/frontend/src/IModelApp.ts | 1 - .../dist/configs/extension-exports-config.js | 28 +++++++++++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 tools/eslint-plugin/dist/configs/extension-exports-config.js diff --git a/core/common/package.json b/core/common/package.json index 512c95ee502e..ebd480b79692 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -15,7 +15,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", "extract-api": "betools extract-api --entry=core-common && npm run -s extract-extension-api", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint --no-eslintrc -c \"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\" \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", "cover": "nyc npm -s test" diff --git a/core/frontend/package.json b/core/frontend/package.json index 9aac82843d03..2392a2e3b5c9 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -16,7 +16,7 @@ "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", "extract-api": "betools extract-api --entry=core-frontend && npm run -s extract-extension-api", - "extract-extension-api": "eslint -f visualstudio --rule '\"@itwin/public-extension-exports\":[\"error\",{\"releaseTags\":[\"public\",\"preview\"],\"outputApiFile\":true}]' \"./src/**/*.ts\" 1>&2", + "extract-extension-api": "eslint --no-eslintrc -c \"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\" \"./src/**/*.ts\" 1>&2", "lint": "eslint -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", diff --git a/core/frontend/src/IModelApp.ts b/core/frontend/src/IModelApp.ts index 9647e32eb004..1de0da4d6460 100644 --- a/core/frontend/src/IModelApp.ts +++ b/core/frontend/src/IModelApp.ts @@ -726,7 +726,6 @@ export class IModelApp { return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key); } - /** * Creates an instance of the ExtensionAdmin * and registers an event to execute after startup is complete diff --git a/tools/eslint-plugin/dist/configs/extension-exports-config.js b/tools/eslint-plugin/dist/configs/extension-exports-config.js new file mode 100644 index 000000000000..97dd1db60174 --- /dev/null +++ b/tools/eslint-plugin/dist/configs/extension-exports-config.js @@ -0,0 +1,28 @@ +module.exports = { + plugins: [ + "@itwin", + "@typescript-eslint", + "react-hooks", + "import", + "prefer-arrow", + "deprecation", + "react" + ], + parser: "@typescript-eslint/parser", + parserOptions: { + "project": "tsconfig.json", + "sourceType": "module" + }, + rules: { + "@itwin/public-extension-exports": [ + "error", + { + "releaseTags": [ + "public", + "preview" + ], + "outputApiFile": true + } + ] + } +} \ No newline at end of file From 348fa713abd1d7f19844371ce94d10f7a1883450 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 29 Mar 2022 15:14:40 -0400 Subject: [PATCH 60/76] regenerate pnpm lock file --- common/config/rush/pnpm-lock.yaml | 290 +++++++++++++++++++----------- 1 file changed, 189 insertions(+), 101 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b980de4a8579..c610c5e7938c 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -89,7 +89,7 @@ importers: ../../core/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.1.6 + '@bentley/imodeljs-native': 3.2.3 '@itwin/build-tools': workspace:* '@itwin/core-bentley': workspace:* '@itwin/core-common': workspace:* @@ -127,7 +127,7 @@ importers: ws: ^7.5.3 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.1.6 + '@bentley/imodeljs-native': 3.2.3 '@itwin/core-telemetry': link:../telemetry form-data: 2.5.1 fs-extra: 8.1.0 @@ -206,7 +206,7 @@ importers: '@types/mocha': ^8.2.2 '@types/node': 14.14.31 '@types/semver': ^5.5.0 - '@ungap/url-search-params': ^0.1.2 + buffer: ^6.0.3 chai: ^4.1.2 eslint: ^7.11.0 flatbuffers: ~1.12.0 @@ -215,12 +215,14 @@ importers: nyc: ^15.1.0 rimraf: ^3.0.2 semver: ^5.5.0 + string_decoder: ^1.3.0 typescript: ~4.4.0 dependencies: - '@ungap/url-search-params': 0.1.4 + buffer: 6.0.3 flatbuffers: 1.12.0 js-base64: 3.7.2 semver: 5.7.1 + string_decoder: 1.3.0 devDependencies: '@itwin/build-tools': link:../../tools/build '@itwin/core-bentley': link:../bentley @@ -1454,7 +1456,7 @@ importers: '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@testing-library/react': ^12.0.0 @@ -1483,7 +1485,6 @@ importers: nyc: ^15.1.0 react: ^17.0.0 react-beautiful-dnd: ^13.0.0 - react-resize-detector: ^6.7.6 rimraf: ^3.0.2 sinon: ^9.0.2 sinon-chai: ^3.2.0 @@ -1492,7 +1493,6 @@ importers: dependencies: classnames: 2.3.1 react-beautiful-dnd: 13.1.0_react@17.0.2 - react-resize-detector: 6.7.6_react@17.0.2 devDependencies: '@itwin/appui-abstract': link:../../ui/appui-abstract '@itwin/appui-layout-react': link:../../ui/appui-layout-react @@ -1507,7 +1507,7 @@ importers: '@itwin/core-react': link:../../ui/core-react '@itwin/eslint-plugin': link:../../tools/eslint-plugin '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@testing-library/react': 12.1.2_react@17.0.2 @@ -1566,7 +1566,24 @@ importers: ../../full-stack-tests/backend: specifiers: '@azure/storage-blob': ^12.7.0 - '@bentley/imodeljs-native': 3.1.6 + '@bentley/aec-units-schema': ^1.0.3 + '@bentley/cif-bridge-schema': ^1.0.5 + '@bentley/cif-common-schema': ^1.0.3 + '@bentley/cif-geometric-rules-schema': ^1.0.1 + '@bentley/cif-hydraulic-analysis-schema': ^1.0.3 + '@bentley/cif-hydraulic-results-schema': ^1.0.3 + '@bentley/cif-quantity-takeoffs-schema': ^1.0.1 + '@bentley/cif-rail-schema': ^1.0.2 + '@bentley/cif-roads-schema': ^1.0.1 + '@bentley/cif-subsurface-conflict-analysis-schema': ^1.0.3 + '@bentley/cif-subsurface-schema': ^1.0.3 + '@bentley/cif-units-schema': ^1.0.1 + '@bentley/imodeljs-native': 3.2.3 + '@bentley/plant-custom-attributes-schema': ^1.0.1 + '@bentley/process-functional-schema': ^1.0.1 + '@bentley/process-physical-schema': ^1.0.2 + '@bentley/quantity-takeoffs-aspects-schema': ^1.0.1 + '@bentley/road-rail-units-schema': ^1.0.1 '@itwin/build-tools': workspace:* '@itwin/core-backend': workspace:* '@itwin/core-bentley': workspace:* @@ -1600,7 +1617,24 @@ importers: typescript: ~4.4.0 dependencies: '@azure/storage-blob': 12.8.0 - '@bentley/imodeljs-native': 3.1.6 + '@bentley/aec-units-schema': 1.0.3 + '@bentley/cif-bridge-schema': 1.0.5 + '@bentley/cif-common-schema': 1.0.3 + '@bentley/cif-geometric-rules-schema': 1.0.1 + '@bentley/cif-hydraulic-analysis-schema': 1.0.3 + '@bentley/cif-hydraulic-results-schema': 1.0.3 + '@bentley/cif-quantity-takeoffs-schema': 1.0.1 + '@bentley/cif-rail-schema': 1.0.2 + '@bentley/cif-roads-schema': 1.0.1 + '@bentley/cif-subsurface-conflict-analysis-schema': 1.0.3 + '@bentley/cif-subsurface-schema': 1.0.3 + '@bentley/cif-units-schema': 1.0.1 + '@bentley/imodeljs-native': 3.2.3 + '@bentley/plant-custom-attributes-schema': 1.0.1 + '@bentley/process-functional-schema': 1.0.1 + '@bentley/process-physical-schema': 1.0.2 + '@bentley/quantity-takeoffs-aspects-schema': 1.0.1 + '@bentley/road-rail-units-schema': 1.0.1 '@itwin/core-backend': link:../../core/backend '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common @@ -1663,7 +1697,7 @@ importers: '@itwin/imodels-client-management': ^1.0.1 '@itwin/oidc-signin-tool': ^3.2.2 '@itwin/projects-client': ^0.6.0 - '@itwin/reality-data-client': ^0.7.0 + '@itwin/reality-data-client': 0.7.0 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 '@types/fs-extra': ^4.0.7 @@ -1850,6 +1884,7 @@ importers: '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* '@itwin/presentation-testing': workspace:* + '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 '@types/chai': ^4.1.4 '@types/chai-as-promised': ^7 @@ -1909,6 +1944,7 @@ importers: '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend '@itwin/presentation-testing': link:../../presentation/testing + '@testing-library/react': 12.1.2_react-dom@17.0.2+react@17.0.2 '@testing-library/react-hooks': 7.0.2_fc2bb8a5b006d3f25c5f84ea777e678d '@types/chai': 4.2.22 '@types/chai-as-promised': 7.1.4 @@ -2549,13 +2585,13 @@ importers: '@itwin/imodels-access-frontend': ^1.0.1 '@itwin/imodels-client-authoring': ^1.0.1 '@itwin/perf-tools': workspace:* - '@itwin/reality-data-client': ^0.7.0 + '@itwin/reality-data-client': 0.7.0 '@types/body-parser': ^1.17.0 '@types/express': ^4.16.1 '@types/node': 14.14.31 body-parser: ^1.18.2 child_process: ^1.0.2 - chrome-launcher: ^0.10.5 + chrome-launcher: ^0.15.0 cpx2: ^3.0.0 cross-env: ^5.1.4 dotenv: ^10.0.0 @@ -2596,7 +2632,7 @@ importers: '@types/express': 4.17.13 '@types/node': 14.14.31 child_process: 1.0.2 - chrome-launcher: 0.10.7 + chrome-launcher: 0.15.0 cpx2: 3.0.2 cross-env: 5.2.1 dotenv: 10.0.0 @@ -2641,7 +2677,7 @@ importers: '@itwin/imodels-access-backend': ^1.0.1 '@itwin/imodels-access-frontend': ^1.0.1 '@itwin/imodels-client-authoring': ^1.0.1 - '@itwin/reality-data-client': ^0.7.0 + '@itwin/reality-data-client': 0.7.0 '@itwin/webgl-compatibility': workspace:* '@types/express': ^4.16.1 '@types/express-ws': ^3.0.1 @@ -2967,7 +3003,7 @@ importers: '@itwin/eslint-plugin': workspace:* '@itwin/express-server': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-backend': workspace:* '@itwin/presentation-common': workspace:* @@ -3011,7 +3047,7 @@ importers: '@itwin/electron-authorization': 0.8.3 '@itwin/express-server': link:../../core/express-server '@itwin/imodel-components-react': link:../../ui/imodel-components-react - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-backend': link:../../presentation/backend '@itwin/presentation-common': link:../../presentation/common @@ -3060,7 +3096,8 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x + '@itwin/itwinui-icons-react': ^1.8.0 '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -3088,7 +3125,8 @@ importers: '@itwin/core-geometry': link:../../core/geometry '@itwin/core-quantity': link:../../core/quantity '@itwin/core-react': link:../../ui/core-react - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 + '@itwin/itwinui-icons-react': 1.8.0_react-dom@17.0.2+react@17.0.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components @@ -3149,7 +3187,8 @@ importers: '@itwin/imodels-access-frontend': ^1.0.1 '@itwin/imodels-client-authoring': ^1.0.1 '@itwin/imodels-client-management': ^1.0.1 - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x + '@itwin/itwinui-icons-react': ^1.8.0 '@itwin/itwinui-react': ^1.32.0 '@itwin/map-layers': workspace:* '@itwin/presentation-backend': workspace:* @@ -3157,7 +3196,7 @@ importers: '@itwin/presentation-components': workspace:* '@itwin/presentation-frontend': workspace:* '@itwin/projects-client': ^0.6.0 - '@itwin/reality-data-client': ^0.7.0 + '@itwin/reality-data-client': 0.7.0 '@itwin/ui-items-providers-test': workspace:* '@types/lorem-ipsum': ^1.0.2 '@types/node': 14.14.31 @@ -3224,7 +3263,8 @@ importers: '@itwin/imodels-access-frontend': 1.0.1 '@itwin/imodels-client-authoring': 1.0.1 '@itwin/imodels-client-management': 1.0.1 - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 + '@itwin/itwinui-icons-react': 1.8.0_react-dom@17.0.2+react@17.0.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/map-layers': link:../../extensions/map-layers '@itwin/presentation-backend': link:../../presentation/backend @@ -3674,7 +3714,7 @@ importers: '@itwin/core-bentley': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -3700,6 +3740,7 @@ importers: eslint: ^7.11.0 ignore-styles: ^5.0.1 immer: 9.0.6 + jsdom: ^17.0.0 jsdom-global: 3.0.2 mocha: ^8.3.2 nyc: ^15.1.0 @@ -3713,8 +3754,9 @@ importers: typemoq: ^2.1.0 typescript: ~4.4.0 uuid: ^7.0.3 + xmlhttprequest: ^1.8.0 dependencies: - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 immer: 9.0.6 @@ -3747,7 +3789,8 @@ importers: enzyme-to-json: 3.6.2_enzyme@3.11.0 eslint: 7.32.0 ignore-styles: 5.0.1 - jsdom-global: 3.0.2 + jsdom: 17.0.0 + jsdom-global: 3.0.2_jsdom@17.0.0 mocha: 8.4.0 nyc: 15.1.0 raf: 3.4.1 @@ -3759,6 +3802,7 @@ importers: ts-node: 7.0.1 typemoq: 2.1.0 typescript: 4.4.4 + xmlhttprequest: 1.8.0 ../../ui/appui-react: specifiers: @@ -3778,7 +3822,8 @@ importers: '@itwin/core-telemetry': workspace:* '@itwin/eslint-plugin': workspace:* '@itwin/imodel-components-react': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x + '@itwin/itwinui-icons-react': ^1.8.0 '@itwin/itwinui-react': ^1.32.0 '@itwin/presentation-common': workspace:* '@itwin/presentation-components': workspace:* @@ -3840,7 +3885,8 @@ importers: '@bentley/icons-generic': 1.0.34 '@bentley/icons-generic-webfont': 1.0.34 '@itwin/core-telemetry': link:../../core/telemetry - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 + '@itwin/itwinui-icons-react': 1.8.0_react-dom@17.0.2+react@17.0.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@itwin/presentation-components': link:../../presentation/components classnames: 2.3.1 @@ -3923,7 +3969,7 @@ importers: '@itwin/core-i18n': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -3965,6 +4011,7 @@ importers: immer: 9.0.6 immutable: ^3.8.2 inspire-tree: ^5.0.1 + jsdom: ^17.0.0 jsdom-global: 3.0.2 linkify-it: ~2.2.0 lodash: ^4.17.10 @@ -3994,7 +4041,7 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 '@types/shortid': 0.0.29 callable-instance2: 1.0.0 @@ -4055,7 +4102,8 @@ importers: eslint: 7.32.0 faker: 4.1.0 ignore-styles: 5.0.1 - jsdom-global: 3.0.2 + jsdom: 17.0.0 + jsdom-global: 3.0.2_jsdom@17.0.0 mocha: 8.4.0 nyc: 15.1.0 raf: 3.4.1 @@ -4081,7 +4129,7 @@ importers: '@itwin/core-common': workspace:* '@itwin/core-i18n': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -4135,7 +4183,7 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 classnames: 2.3.1 dompurify: 2.3.3 @@ -4208,7 +4256,7 @@ importers: '@itwin/core-quantity': workspace:* '@itwin/core-react': workspace:* '@itwin/eslint-plugin': workspace:* - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.x '@itwin/itwinui-react': ^1.32.0 '@testing-library/react': ^12.0.0 '@testing-library/react-hooks': ^7.0.2 @@ -4261,7 +4309,7 @@ importers: xmlhttprequest: ^1.8.0 dependencies: '@bentley/icons-generic-webfont': 1.0.34 - '@itwin/itwinui-css': 0.44.2 + '@itwin/itwinui-css': 0.48.2 '@itwin/itwinui-react': 1.32.0_react-dom@17.0.2+react@17.0.2 callable-instance2: 1.0.0 classnames: 2.3.1 @@ -4618,7 +4666,7 @@ packages: '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 convert-source-map: 1.8.0 - debug: 4.3.2 + debug: 4.3.3 gensync: 1.0.0-beta.2 json5: 2.2.0 lodash: 4.17.21 @@ -4737,7 +4785,7 @@ packages: '@babel/helper-module-imports': 7.16.0 '@babel/helper-plugin-utils': 7.14.5 '@babel/traverse': 7.16.3 - debug: 4.3.2 + debug: 4.3.3 lodash.debounce: 4.0.8 resolve: 1.19.0 semver: 6.3.0 @@ -6073,7 +6121,7 @@ packages: '@babel/helper-split-export-declaration': 7.16.0 '@babel/parser': 7.16.3 '@babel/types': 7.16.0 - debug: 4.3.2 + debug: 4.3.3 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6089,6 +6137,54 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@bentley/aec-units-schema/1.0.3: + resolution: {integrity: sha512-Rpc+g75LZfDaapej3OBUOx67p5vOi9xF34gAhfWlmdm2cWeMZzjkjzVLR/Fn8NMdvhn/QS8HRAVLlXLSOtm6kg==} + dev: false + + /@bentley/cif-bridge-schema/1.0.5: + resolution: {integrity: sha512-uEgOHy5pDx+5aKu5DOAShxlECtYEJfYuX+cmFPoNOJyLKZtWkKUSBxu2oFT1sWhugEhqvUxAsJbvDnW3HEwRCA==} + dev: false + + /@bentley/cif-common-schema/1.0.3: + resolution: {integrity: sha512-9HwVOFuJmq6s2QuYd2We2qbbha5CtLAK0TnvSVXBiTDGixQLnf3U80o6HMShL729l1vD/7vQKoB4sDOqLeZCKA==} + dev: false + + /@bentley/cif-geometric-rules-schema/1.0.1: + resolution: {integrity: sha512-LfHqc3HzEcKojyziSjD4+fmt1801IySPEzajUFTIdzmqsw0lsCpSbFQI4RiMiYsS78hqoPT7eYf+SBl0S3NVWQ==} + dev: false + + /@bentley/cif-hydraulic-analysis-schema/1.0.3: + resolution: {integrity: sha512-i1u5Pxt3YWhwD+dgrKQxJK2SNOufkBOJPT2eP+86nkeWHcSyqnnRfgvflp1y748Dsnw4EQL5xTho+JshWZMz9A==} + dev: false + + /@bentley/cif-hydraulic-results-schema/1.0.3: + resolution: {integrity: sha512-rw4XLs6dbuzp6bxGzSlbsgkwpA93OQ0O7LHb7/0kerpxmL7ShO4n8Lr0mtgW763lb93p1HuJ9HEMG5y3Z8oKEw==} + dev: false + + /@bentley/cif-quantity-takeoffs-schema/1.0.1: + resolution: {integrity: sha512-NlrEv0zl3xO/vLnKz5JJ4N2ix2cxMLtUBscfFGxsUOAFjv0CaLlgPicAJDjIiKTSzTfXlAhRq7WPzBOnZjKmXA==} + dev: false + + /@bentley/cif-rail-schema/1.0.2: + resolution: {integrity: sha512-qLh07oGlT84obuv8haCQnjk9Zh14I8XuJ56g7BVINRYFjSL0W8ch00/dfBxUDEq9Tg60cKNQyRY4ARJC7Z6Pwg==} + dev: false + + /@bentley/cif-roads-schema/1.0.1: + resolution: {integrity: sha512-pIVqWPH7s4qUnBs6HIwTsvrT8ixLJKVP9hIYmxY2xTf5bwafl+5wW6isDKre0nHtYKawG/3N+edDpJ1O1Sa/Qw==} + dev: false + + /@bentley/cif-subsurface-conflict-analysis-schema/1.0.3: + resolution: {integrity: sha512-bFtOuTYnT7AK0QyWUxU5ZcZP+m5Q6Xm5wBMr8jMoOBKS6aWdoMteWG/t0khJooATjeW16+3gNdD7aZtIpZ4GFg==} + dev: false + + /@bentley/cif-subsurface-schema/1.0.3: + resolution: {integrity: sha512-m5HoxGrgdGel+xWdf4NUzFQ7jMSeyjymsbvGzTlsuc8fLsyjHKo+afTOsIci1zWrZ3tSWIO0nHdzcz862/bnuQ==} + dev: false + + /@bentley/cif-units-schema/1.0.1: + resolution: {integrity: sha512-K2TvSF7L5T5RBG82BTRhaqnlWdstlFpVCSGUUVtU2iiqEBizkYgVDuS6wBf8Lj/RquaHJyvbV3WAkU6SxopyFQ==} + dev: false + /@bentley/icons-generic-webfont/1.0.34: resolution: {integrity: sha512-5zZgs+himE2vjf39CVlDXMHCFAwSfcoORqJBk3Vji8QVCF8AIX4IX2DO6HlsIAM7szxMNqhz1kd07Xfppro6MA==} dev: false @@ -6097,11 +6193,27 @@ packages: resolution: {integrity: sha512-IIs1wDcY2oZ8tJ3EZRw0U51M+0ZL3MvwoDYYmhUXaa9/UZqpFoOyLBGaxjirQteWXqTIMm3mFvmC+Nbn1ok4Iw==} dev: false - /@bentley/imodeljs-native/3.1.6: - resolution: {integrity: sha512-e4FfMt7h/YrsvMag+1hYpvdSy9ooFEsGHwpmJkjiscx16PThfK5cbqgwEV/SY79q4zJKeragPVjWbO9BJo5hTg==} + /@bentley/imodeljs-native/3.2.3: + resolution: {integrity: sha512-6TJbZ8TkkLJFewa51l0e1hDaMaEP/Sc+Qax3P+Mn0XJvpzFZskp50UQaweHwTto1GJL0U0B5XbV2WAmkLpaLTw==} requiresBuild: true dev: false + /@bentley/plant-custom-attributes-schema/1.0.1: + resolution: {integrity: sha512-RS45hmfj2Tz7HPTkSfxL9J3VWAyKMFyFNkThr4C/aL2dz3dBx5xmFtI8J+ngQncRNjN21jitDRxVV7bj91qNnQ==} + dev: false + + /@bentley/process-functional-schema/1.0.1: + resolution: {integrity: sha512-3vGBu2TcLwH5ZONzLPdAA1BH+usowxneSgldbawya6fLEvuhuqyUmrm3eCqhxo1SM9wolF/BFdclRd5Ktb7W9w==} + dev: false + + /@bentley/process-physical-schema/1.0.2: + resolution: {integrity: sha512-u4u3L83JaxI/2NfWHVMWYUUi4CP9sIA7sJXiioJQgSgnz+hXZOb+KPe3t+6YH7CAgv30lTUWOYMMtqJTXd016A==} + dev: false + + /@bentley/quantity-takeoffs-aspects-schema/1.0.1: + resolution: {integrity: sha512-ufOI4M0zyRuf9qvQfVuvra3AFNA2xo9OOPjYq6/ffLptQtoocrmnLq+pfhMMPnY5JnSSt0CavzhxM0d6Ynzkhg==} + dev: false + /@bentley/react-scripts/4.0.3_react@17.0.2+typescript@4.4.4: resolution: {integrity: sha512-gET4e/0PWe/FVvSJR3QKi+m1ct9CND6ZwNdZcAoTvLlkrb/6i/SexR3ZjOIMFXgKKBsCVjf2c83BZBzjAsRCWg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -6303,6 +6415,10 @@ packages: - webpack-plugin-serve dev: true + /@bentley/road-rail-units-schema/1.0.1: + resolution: {integrity: sha512-7vHunp5SZrxiCErMhibOmbO1DYCx1Fm3pJZ4SYBAJBtEDbmkdI8yrhcNf6PRYHBpTsfbzdWeOWCcG1A4zulY/A==} + dev: false + /@bentley/units-schema/1.0.7: resolution: {integrity: sha512-yVPl8DLeD0sczWp1AFnKR+4+whQRvYgJupToQUOFUrlCGeVCvzyJw+mp38ciO3tRdWYZmW/k7lOx/by1hAiyrg==} dev: true @@ -6631,9 +6747,6 @@ packages: - debug dev: false - /@itwin/itwinui-css/0.44.2: - resolution: {integrity: sha512-n+ju00BaRaLZe8LqjEcl5i0Um8oKliyTagyz5SHi6IGqQKZilMs1feLsfyqWzNbDYaI4M4Bn4SBWJBFgXtDOjg==} - /@itwin/itwinui-css/0.48.2: resolution: {integrity: sha512-/+0VoBF71e2a8ThzDyoVLUoFvGNSGJ2L4NNV0CLpaEUiI1cnGuVo8+k5sAsexqfqfi6EgSv93MVWzkxFSZHk/Q==} @@ -6751,6 +6864,7 @@ packages: /@itwin/reality-data-client/0.7.0: resolution: {integrity: sha512-fUbS3953g3zXNagcgwmJ7n2DHvL15KlBQZ5NlpWpGdotRgtOKAxeJqybPJBnoM10dErmJVC+Cbv3JVc2Nar/Mw==} dependencies: + '@itwin/core-bentley': link:../../core/bentley '@itwin/core-common': link:../../core/common '@itwin/core-geometry': link:../../core/geometry axios: 0.25.0 @@ -6966,7 +7080,6 @@ packages: '@types/node': 14.14.31 '@types/yargs': 16.0.4 chalk: 4.1.2 - dev: true /@js-joda/core/4.3.1: resolution: {integrity: sha512-oeaetlodcqVsiZDxnEcqsbs+sXBkASxua0mXs5OXuPQXz3/wdPTMlxwfQ4z2HKcOik3S9voW3QJkp/KLWDhvRQ==} @@ -7095,7 +7208,7 @@ packages: '@types/base64-js': 1.3.0 '@types/jquery': 3.5.8 base64-js: 1.5.1 - follow-redirects: 1.14.5_debug@4.3.2 + follow-redirects: 1.14.5_debug@4.3.3 form-data: 4.0.0 opener: 1.5.2 transitivePeerDependencies: @@ -7407,7 +7520,6 @@ packages: dom-accessibility-api: 0.5.10 lz-string: 1.4.4 pretty-format: 27.3.1 - dev: true /@testing-library/react-hooks/7.0.2_fc2bb8a5b006d3f25c5f84ea777e678d: resolution: {integrity: sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==} @@ -7485,7 +7597,6 @@ packages: '@testing-library/dom': 8.11.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - dev: true /@testing-library/react/12.1.2_react@17.0.2: resolution: {integrity: sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==} @@ -7543,7 +7654,6 @@ packages: /@types/aria-query/4.2.2: resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} - dev: true /@types/babel__core/7.1.16: resolution: {integrity: sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==} @@ -7799,19 +7909,16 @@ packages: /@types/istanbul-lib-coverage/2.0.3: resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} - dev: true /@types/istanbul-lib-report/3.0.0: resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} dependencies: '@types/istanbul-lib-coverage': 2.0.3 - dev: true /@types/istanbul-reports/3.0.1: resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} dependencies: '@types/istanbul-lib-report': 3.0.0 - dev: true /@types/jquery/3.5.8: resolution: {integrity: sha512-cXk6NwqjDYg+UI9p2l3x0YmPa4m7RrXqmbK4IpVVpRJiYXU/QTo+UZrn54qfE1+9Gao4qpYqUnxm5ZCy2FTXAw==} @@ -8163,7 +8270,6 @@ packages: /@types/yargs-parser/20.2.1: resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} - dev: true /@types/yargs/12.0.20: resolution: {integrity: sha512-MjOKUoDmNattFOBJvAZng7X9KXIKSGy6XHoXY9mASkKwCn35X4Ckh+Ugv1DewXZXrWYXMNtLiXhlCfWlpcAV+Q==} @@ -8179,7 +8285,6 @@ packages: resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} dependencies: '@types/yargs-parser': 20.2.1 - dev: true /@types/yauzl/2.9.2: resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} @@ -8362,7 +8467,7 @@ packages: dependencies: '@typescript-eslint/types': 4.33.0 '@typescript-eslint/visitor-keys': 4.33.0 - debug: 4.3.2 + debug: 4.3.3 globby: 11.0.4 is-glob: 4.0.3 semver: 7.3.5 @@ -8396,10 +8501,6 @@ packages: /@ungap/promise-all-settled/1.1.2: resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - /@ungap/url-search-params/0.1.4: - resolution: {integrity: sha512-RLwrxCTDNiNev9hpr9rDq8NyeQ8Nn0X1we4Wu7Tlf368I8r+7hBj3uObhifhuLk74egaYaSX5nUsBlWz6kjj+A==} - dev: false - /@webassemblyjs/ast/1.8.5: resolution: {integrity: sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==} dependencies: @@ -8906,7 +9007,6 @@ packages: /ansi-styles/5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true /any-promise/1.3.0: resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} @@ -8972,7 +9072,6 @@ packages: /aria-query/5.0.0: resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} engines: {node: '>=6.0'} - dev: true /arity-n/1.0.4: resolution: {integrity: sha1-2edrEXM+CFacCEeuezmyhgswt0U=} @@ -9170,7 +9269,7 @@ packages: /axios/0.22.0: resolution: {integrity: sha512-Z0U3uhqQeg1oNcihswf4ZD57O3NrR1+ZXhxaROaWpDmsDTx7T2HNBV2ulBtie2hwJptu8UvgnJoK+BIqdzh/1w==} dependencies: - follow-redirects: 1.14.5_debug@4.3.2 + follow-redirects: 1.14.5_debug@4.3.3 transitivePeerDependencies: - debug dev: false @@ -9595,6 +9694,7 @@ packages: /bindings/1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + requiresBuild: true dependencies: file-uri-to-path: 1.0.0 optional: true @@ -10220,14 +10320,15 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - /chrome-launcher/0.10.7: - resolution: {integrity: sha512-IoQLp64s2n8OQuvKZwt77CscVj3UlV2Dj7yZtd1EBMld9mSdGcsGy9fN5hd/r4vJuWZR09it78n1+A17gB+AIQ==} + /chrome-launcher/0.15.0: + resolution: {integrity: sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==} + engines: {node: '>=12.13.0'} + hasBin: true dependencies: '@types/node': 14.14.31 - is-wsl: 1.1.0 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 lighthouse-logger: 1.3.0 - mkdirp: 0.5.1 - rimraf: 2.7.1 dev: true /chrome-trace-event/1.0.3: @@ -11122,6 +11223,19 @@ packages: dependencies: ms: 2.1.2 + /debug/4.3.3_supports-color@6.1.0: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 6.1.0 + dev: true + /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} @@ -11414,7 +11528,6 @@ packages: /dom-accessibility-api/0.5.10: resolution: {integrity: sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g==} - dev: true /dom-converter/0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} @@ -12714,6 +12827,7 @@ packages: /file-uri-to-path/1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + requiresBuild: true optional: true /filesize/6.1.0: @@ -12848,7 +12962,7 @@ packages: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: false - /follow-redirects/1.14.5_debug@4.3.2: + /follow-redirects/1.14.5_debug@4.3.3: resolution: {integrity: sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==} engines: {node: '>=4.0'} peerDependencies: @@ -12857,7 +12971,7 @@ packages: debug: optional: true dependencies: - debug: 4.3.2_supports-color@6.1.0 + debug: 4.3.3_supports-color@6.1.0 /follow-redirects/1.14.9: resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==} @@ -13688,11 +13802,11 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-middleware/0.19.1_debug@4.3.2: + /http-proxy-middleware/0.19.1_debug@4.3.3: resolution: {integrity: sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==} engines: {node: '>=4.0.0'} dependencies: - http-proxy: 1.18.1_debug@4.3.2 + http-proxy: 1.18.1_debug@4.3.3 is-glob: 4.0.3 lodash: 4.17.21 micromatch: 3.1.10 @@ -13700,12 +13814,12 @@ packages: - debug dev: true - /http-proxy/1.18.1_debug@4.3.2: + /http-proxy/1.18.1_debug@4.3.3: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.14.5_debug@4.3.2 + follow-redirects: 1.14.5_debug@4.3.3 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -15742,7 +15856,6 @@ packages: /lz-string/1.4.4: resolution: {integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=} hasBin: true - dev: true /magic-string/0.25.7: resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} @@ -16022,10 +16135,6 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimist/0.0.8: - resolution: {integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=} - dev: true - /minimist/1.2.5: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} @@ -16089,14 +16198,6 @@ packages: /mkdirp-classic/0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - /mkdirp/0.5.1: - resolution: {integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=} - deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) - hasBin: true - dependencies: - minimist: 0.0.8 - dev: true - /mkdirp/0.5.5: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} hasBin: true @@ -16262,6 +16363,7 @@ packages: /nan/2.15.0: resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} + requiresBuild: true optional: true /nanoid/2.1.11: @@ -18068,7 +18170,6 @@ packages: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true /probe.gl/3.5.0: resolution: {integrity: sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==} @@ -18608,19 +18709,6 @@ packages: resize-observer-polyfill: 1.5.1 dev: false - /react-resize-detector/6.7.6_react@17.0.2: - resolution: {integrity: sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 - react-dom: ^16.0.0 || ^17.0.0 - dependencies: - '@types/resize-observer-browser': 0.1.6 - lodash.debounce: 4.0.8 - lodash.throttle: 4.1.1 - react: 17.0.2 - resize-observer-polyfill: 1.5.1 - dev: false - /react-select-event/5.0.0: resolution: {integrity: sha512-bESECffhi//x1nlMoRJtwI0nGl5n6OKaVYeIEcPTV8flVPycvUoBGank/1RIoxVc6WtoQ4QbPbU8xMvX0xAiOA==} dependencies: @@ -21384,11 +21472,11 @@ packages: chokidar: 2.1.8 compression: 1.7.4 connect-history-api-fallback: 1.6.0 - debug: 4.3.2_supports-color@6.1.0 + debug: 4.3.3_supports-color@6.1.0 del: 4.1.1 express: 4.17.1 html-entities: 1.4.0 - http-proxy-middleware: 0.19.1_debug@4.3.2 + http-proxy-middleware: 0.19.1_debug@4.3.3 import-local: 2.0.0 internal-ip: 4.3.0 ip: 1.1.5 From d6ef097ddd088949064770ab5e46933ace539d37 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 29 Mar 2022 15:24:36 -0400 Subject: [PATCH 61/76] add ViewClipTool, ViewClipDecorationProvider, and ViewClipClearTool to extension api --- core/frontend/src/tools/ClipViewTool.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/frontend/src/tools/ClipViewTool.ts b/core/frontend/src/tools/ClipViewTool.ts index f8c54f191d5f..a905aa94d88b 100644 --- a/core/frontend/src/tools/ClipViewTool.ts +++ b/core/frontend/src/tools/ClipViewTool.ts @@ -71,7 +71,7 @@ export interface DrawClipOptions { } /** A tool to define a clip volume for a view - * @public + * @public @extensions */ export class ViewClipTool extends PrimitiveTool { constructor(protected _clipEventHandler?: ViewClipEventHandler) { super(); } @@ -429,7 +429,7 @@ export class ViewClipTool extends PrimitiveTool { } /** A tool to remove a clip volume for a view - * @public + * @public @extensions */ export class ViewClipClearTool extends ViewClipTool { public static override toolId = "ViewClip.Clear"; @@ -1906,7 +1906,7 @@ export class ViewClipDecoration extends EditManipulator.HandleProvider { export enum ClipEventType { New, NewPlane, Modify, Clear } /** An implementation of ViewClipEventHandler that responds to new clips by presenting clip modification handles - * @public + * @public @extensions */ export class ViewClipDecorationProvider implements ViewClipEventHandler { private static _provider?: ViewClipDecorationProvider; From 03ce175c59b4d06ae7e50fc49a33188868cfd19f Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 29 Mar 2022 16:25:46 -0400 Subject: [PATCH 62/76] change beta tag to preview in core common --- core/common/package.json | 4 ++-- core/frontend/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index 8cd5396a0fb3..1fb4115bdcca 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -13,7 +13,7 @@ "build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm", "clean": "rimraf lib .rush/temp/package-deps*.json", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-common/file.json --tsIndexFile=./core-common.ts --onlyJson", - "extract-api": "betools extract-api --entry=core-common && npm run -s extract-extension-api", + "extract-api": "betools extract-api --entry=core-common && npm run extract-extension-api", "extract-extension-api": "eslint --no-eslintrc -c \"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\" \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "test": "mocha", @@ -77,7 +77,7 @@ { "releaseTags": [ "public", - "beta" + "preview" ], "outputApiFile": false } diff --git a/core/frontend/package.json b/core/frontend/package.json index 140260e2d89f..5961ee05cf22 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -14,7 +14,7 @@ "clean": "rimraf lib .rush/temp/package-deps*.json", "copy:public": "cpx \"./src/public/**/*\" ./lib/public", "docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts", - "extract-api": "betools extract-api --entry=core-frontend && npm run -s extract-extension-api", + "extract-api": "betools extract-api --entry=core-frontend && npm run extract-extension-api", "extract-extension-api": "eslint --no-eslintrc -c \"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\" \"./src/**/*.ts\" 1>&2", "lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2", "pseudolocalize": "betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO", From 8ad48200d8f2629bdd48f1cd5921044f40c18214 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:30:55 -0400 Subject: [PATCH 63/76] formatting --- core/extension/codeGen/generate-exports.js | 11 +++-------- core/frontend/package.json | 3 ++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index ff8250292659..4e85dd491c02 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -58,7 +58,6 @@ function interpretCsv(csvString) { return apiByType; } - // Create the export code for the .d.ts file function generateDeclarationCode(exportList) { let exportCode = ""; @@ -89,7 +88,6 @@ function generateDeclarationCode(exportList) { return exportCode; } - // Create the export code for the .js file function generateJsCode(exportList) { let exportCode = "export const {\n"; @@ -154,15 +152,13 @@ function generateRuntimeCode(exportListPreview, exportList) { return exportCode + exports + exportTrailer; } - - // Find the extension linter's output file and convert to a set of useful lists function collectExports(packagePath) { // Adjust to relative path from monorepo root and add path to generated extension API packagePath = "../../" + packagePath + generatedCsvPath; try { - var fileContents = fs.readFileSync(packagePath, "utf8"); + let fileContents = fs.readFileSync(packagePath, "utf8"); if (fileContents.length === 0) { throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); } @@ -173,7 +169,6 @@ function collectExports(packagePath) { return interpretCsv(fileContents); } - // Replace the target file's code gen block with the provided code function addToFile(filePath, generatedCode) { if (!fs.existsSync(filePath)) @@ -194,7 +189,6 @@ function addToFile(filePath, generatedCode) { fs.writeFileSync(filePath, fileContents); } - // Use the extension linter's output file to add export statements to .d.ts and .js files function addGeneratedExports(packages) { let exportList = {}; @@ -239,4 +233,5 @@ args.forEach((paramPair) => { path: paramPair[1] }); }); -addGeneratedExports(packages); \ No newline at end of file + +addGeneratedExports(packages); diff --git a/core/frontend/package.json b/core/frontend/package.json index 5961ee05cf22..7ae6ee8bf775 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -126,7 +126,8 @@ "releaseTags": [ "public", "preview" - ] + ], + "outputApiFile": false } ] }, From 4c1011bb803f713f71313753d278d8efb59d7cfe Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:49:22 -0400 Subject: [PATCH 64/76] rush extract-api --- common/api/core-frontend.api.md | 58 +++------------------------------ 1 file changed, 4 insertions(+), 54 deletions(-) diff --git a/common/api/core-frontend.api.md b/common/api/core-frontend.api.md index c63057563875..cd8991dff23f 100644 --- a/common/api/core-frontend.api.md +++ b/common/api/core-frontend.api.md @@ -54,7 +54,6 @@ import { CodeSpec } from '@itwin/core-common'; import { ColorDef } from '@itwin/core-common'; import { ColorDefProps } from '@itwin/core-common'; import { ColorIndex } from '@itwin/core-common'; -import { CommonToolbarItem } from '@itwin/appui-abstract'; import { CompressedId64Set } from '@itwin/core-bentley'; import { Constructor } from '@itwin/core-bentley'; import { ContentIdProvider } from '@itwin/core-common'; @@ -293,15 +292,12 @@ import { TileHeader } from '@itwin/core-common'; import { TileProps } from '@itwin/core-common'; import { TileReadStatus } from '@itwin/core-common'; import { TileVersionInfo } from '@itwin/core-common'; -import { ToolbarOrientation } from '@itwin/appui-abstract'; -import { ToolbarUsage } from '@itwin/appui-abstract'; import { Transform } from '@itwin/core-geometry'; import { TransformProps } from '@itwin/core-geometry'; import { TransientIdSequence } from '@itwin/core-bentley'; import { Tweens } from '@itwin/core-common'; import { TxnNotifications } from '@itwin/core-common'; import { UiAdmin } from '@itwin/appui-abstract'; -import { UiItemsProvider } from '@itwin/appui-abstract'; import { UnitConversion } from '@itwin/core-quantity'; import { UnitProps } from '@itwin/core-quantity'; import { UnitsProvider } from '@itwin/core-quantity'; @@ -1027,10 +1023,7 @@ export enum ACSType { } // @alpha (undocumented) -export enum ActivationEvent { - // (undocumented) - onStartup = "onStartup" -} +export type ActivationEvent = "onStartup"; // @public export class ActivityMessageDetails { @@ -3098,40 +3091,6 @@ export enum EventHandled { Yes = 1 } -// @alpha -export class ExtensionAdmin { - constructor(); - addBuildExtension(manifestPromise: Promise, mainFunc?: ResolveFunc): Promise; - addExtensionLoader(extensionLoader: ExtensionLoader): void; - addExtensionLoaderFront(extensionLoader: ExtensionLoader): void; - // @internal - onStartup: () => Promise; -} - -// @alpha -export class ExtensionHost { - protected constructor(); - // (undocumented) - static get accuSnap(): AccuSnap; - // (undocumented) - static get locateManager(): ElementLocateManager; - // (undocumented) - static get notifications(): NotificationManager; - // (undocumented) - static get renderSystem(): RenderSystem; - // (undocumented) - static get toolAdmin(): ToolAdmin; - // (undocumented) - static get viewManager(): ViewManager; -} - -// @alpha (undocumented) -export class ExtensionImpl { - constructor(_id: string); - // (undocumented) - registerTool(tool: ToolType, onRegistered?: () => any): Promise; -} - // @alpha export interface ExtensionLoader { downloadExtension(arg: ExtensionLoaderProps): Promise; @@ -5450,7 +5409,7 @@ export class LocateOptions { setFrom(other: LocateOptions): void; } -// @public +// @public (undocumented) export class LocateResponse { // @internal (undocumented) clone(): LocateResponse; @@ -11578,8 +11537,8 @@ export class ToolAdmin { getDecorationGeometry(hit: HitDetail): GeometryStreamProps | undefined; getToolTip(hit: HitDetail): Promise; gridLock: boolean; - get idleTool(): IdleTool; - set idleTool(idleTool: IdleTool); + get idleTool(): InteractiveTool; + set idleTool(idleTool: InteractiveTool); // (undocumented) get isLocateCircleOn(): boolean; readonly manipulatorToolEvent: BeEvent<(tool: Tool, event: ManipulatorToolEvent) => void>; @@ -11747,15 +11706,6 @@ export interface ToolAssistanceSection { // @public (undocumented) export type ToolList = ToolType[]; -// @alpha (undocumented) -export class ToolProvider implements UiItemsProvider { - constructor(tool: ToolType); - // (undocumented) - readonly id: string; - // (undocumented) - provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[]; - } - // @public export class ToolRegistry { create(toolId: string, ...args: any[]): Tool | undefined; From 8a6a6fbe1d194abcc3275044da760b6a24be6f83 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 30 Mar 2022 13:23:42 -0400 Subject: [PATCH 65/76] remove isLocalFile() and helper functions and use all declarationList names --- .../dist/rules/public-extension-exports.js | 35 +++++-------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index f35ff21fa9f9..4c8df61a1b6f 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -84,31 +84,14 @@ module.exports = { const createCsvString = (name, kind) => `${name},${kind},${isPreview ? 'preview' : 'public'}\n`; - const name = declaration.kind === ts.SyntaxKind.VariableStatement ? - declaration.declarationList.declarations[0].symbol.escapedName : - declaration.symbol.escapedName; - const kind = getSyntaxKindFriendlyName(declaration.kind); - const csvString = createCsvString(name, kind); - fs.writeFileSync(apiFilePath, csvString, { flag: "a" }); - } - - function getFileName(parent) { - let currentParent = parent; - while (currentParent) { - if (currentParent.fileName !== undefined) - return currentParent.fileName; - currentParent = currentParent.parent; - } - return undefined; - } - - function isLocalFile(declaration) { - if (declaration) { - const fileName = getFileName(declaration.parent); - if (fileName && typeof fileName === "string" && !fileName.includes("node_modules")) - return true; - } - return false; + const names = declaration.kind === ts.SyntaxKind.VariableStatement ? + declaration.declarationList.declarations.map(d => d.symbol.escapedName) : + [declaration.symbol.escapedName]; + names.forEach(name => { + const kind = getSyntaxKindFriendlyName(declaration.kind); + const csvString = createCsvString(name, kind); + fs.writeFileSync(apiFilePath, csvString, { flag: "a" }); + }); } function getParentSymbolName(declaration) { @@ -119,7 +102,7 @@ module.exports = { function checkJsDoc(declaration, node) { // Only check local elements, not consumed ones - if (!declaration || !declaration.jsDoc || !isLocalFile(declaration)) + if (!declaration || !declaration.jsDoc) return undefined; for (const jsDoc of declaration.jsDoc) From af6c67e56a447409e26473e6c48de5a5700954ab Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 30 Mar 2022 13:40:59 -0400 Subject: [PATCH 66/76] add ViewClipTools to initial extension api --- core/extension/codeGen/generate-exports.js | 3 ++- core/extension/index.d.ts | 5 ++++- core/extension/index.js | 5 ++++- core/frontend/src/extension/ExtensionRuntime.ts | 10 ++++++++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index 4e85dd491c02..c75b9799a864 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -156,9 +156,10 @@ function generateRuntimeCode(exportListPreview, exportList) { function collectExports(packagePath) { // Adjust to relative path from monorepo root and add path to generated extension API packagePath = "../../" + packagePath + generatedCsvPath; + let fileContents; try { - let fileContents = fs.readFileSync(packagePath, "utf8"); + fileContents = fs.readFileSync(packagePath, "utf8"); if (fileContents.length === 0) { throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); } diff --git a/core/extension/index.d.ts b/core/extension/index.d.ts index c5bb782527ae..8abf6ad119da 100644 --- a/core/extension/index.d.ts +++ b/core/extension/index.d.ts @@ -170,6 +170,9 @@ export { TileTreeReference, TileUsageMarker, Tiles, + ViewClipTool, + ViewClipClearTool, + ViewClipDecorationProvider, EditManipulator, EventController, PrimitiveTool, @@ -302,7 +305,6 @@ export { TypeOfChange, ChangesetType, BisCodeSpec, - ColorByName, CommonLoggerCategory, QueryRowFormat, MonochromeMode, @@ -342,6 +344,7 @@ export { TxnAction, GridOrientationType, RenderMode, + ColorByName, ColorDef, } from "@itwin/core-common"; diff --git a/core/extension/index.js b/core/extension/index.js index 6ccd30d6fdf3..07ce42b90060 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -159,6 +159,9 @@ export const { TileTreeReference, TileUsageMarker, Tiles, + ViewClipTool, + ViewClipClearTool, + ViewClipDecorationProvider, EditManipulator, EventController, PrimitiveTool, @@ -192,7 +195,6 @@ export const { TypeOfChange, ChangesetType, BisCodeSpec, - ColorByName, CommonLoggerCategory, QueryRowFormat, MonochromeMode, @@ -232,6 +234,7 @@ export const { TxnAction, GridOrientationType, RenderMode, + ColorByName, ColorDef, } = ext.exports; // END GENERATED CODE diff --git a/core/frontend/src/extension/ExtensionRuntime.ts b/core/frontend/src/extension/ExtensionRuntime.ts index c88d13c89047..0ff0821a20cb 100644 --- a/core/frontend/src/extension/ExtensionRuntime.ts +++ b/core/frontend/src/extension/ExtensionRuntime.ts @@ -165,6 +165,9 @@ import { TileTreeReference, TileUsageMarker, Tiles, + ViewClipTool, + ViewClipClearTool, + ViewClipDecorationProvider, EditManipulator, EventController, PrimitiveTool, @@ -201,7 +204,6 @@ import { TypeOfChange, ChangesetType, BisCodeSpec, - ColorByName, CommonLoggerCategory, QueryRowFormat, MonochromeMode, @@ -242,6 +244,7 @@ import { GridOrientationType, RenderMode, // @public real(s) from @itwin/core-common + ColorByName, ColorDef, } from "@itwin/core-common"; @@ -390,6 +393,9 @@ const extensionExports = { TileTreeReference, TileUsageMarker, Tiles, + ViewClipTool, + ViewClipClearTool, + ViewClipDecorationProvider, EditManipulator, EventController, PrimitiveTool, @@ -422,7 +428,6 @@ const extensionExports = { TypeOfChange, ChangesetType, BisCodeSpec, - ColorByName, CommonLoggerCategory, QueryRowFormat, MonochromeMode, @@ -462,6 +467,7 @@ const extensionExports = { TxnAction, GridOrientationType, RenderMode, + ColorByName, ColorDef, }; From 5c5c5512eeb59b30c559acf25ae039795f8b2abf Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Wed, 30 Mar 2022 17:22:37 -0400 Subject: [PATCH 67/76] import.meta.url causing issues --- core/extension/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/extension/index.js b/core/extension/index.js index 07ce42b90060..c7320123f5d4 100644 --- a/core/extension/index.js +++ b/core/extension/index.js @@ -5,7 +5,7 @@ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis const globalSymbol = Symbol.for("itwin.core.frontend.globals"); -const ext = globalThis[globalSymbol].getExtensionApi(import.meta.url); +const ext = globalThis[globalSymbol].getExtensionApi("import.meta.url"); // export extension stuff export const { registerTool } = ext.api; From 87cc6194bcbab979dea0b01310eca6dbe070fc6b Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 31 Mar 2022 14:31:24 -0400 Subject: [PATCH 68/76] eslint rule for namespace members --- core/extension/codeGen/generate-exports.js | 2 +- .../dist/rules/public-extension-exports.js | 120 +++++++++++------- 2 files changed, 73 insertions(+), 49 deletions(-) diff --git a/core/extension/codeGen/generate-exports.js b/core/extension/codeGen/generate-exports.js index c75b9799a864..e6220ac99b9b 100644 --- a/core/extension/codeGen/generate-exports.js +++ b/core/extension/codeGen/generate-exports.js @@ -161,7 +161,7 @@ function collectExports(packagePath) { try { fileContents = fs.readFileSync(packagePath, "utf8"); if (fileContents.length === 0) { - throw Error(`Extension api csv (${packagePath + generatedCsvPath}) is empty.`); + throw Error(`Extension api csv (${packagePath}) is empty.`); } } catch (error) { throw Error("Failed to read extension api csv, it may not exist or has no content.\n" + error); diff --git a/tools/eslint-plugin/dist/rules/public-extension-exports.js b/tools/eslint-plugin/dist/rules/public-extension-exports.js index 4c8df61a1b6f..2ea6d2bb91a8 100644 --- a/tools/eslint-plugin/dist/rules/public-extension-exports.js +++ b/tools/eslint-plugin/dist/rules/public-extension-exports.js @@ -37,6 +37,7 @@ module.exports = { }, messages: { forbidden: `{{kind}} "{{name}}" without one of the release tags "{{releaseTags}}".`, + namespace: `Namespace "{{name}}" is without an @extensions tag but one of its members has one.`, }, schema: [ { @@ -100,55 +101,78 @@ module.exports = { return undefined; } + // reports an error if namespace doesn't have a valid @extensions tag but a member does + function checkNamespaceTags(declaration, node) { + const tags = ts.getJSDocTags(declaration.parent); + if (!tags || tags.length === 0) + return; + + for (const tag of tags) { + if (tag.tagName.escapedText === extensionsTag) { + return; + } + } + context.report({ + node, + messageId: "namespace", + data: { + name: ts.getNameOfDeclaration(declaration.parent)?.getFullText(), + } + }); + } + + // returns true if it was added to the API without error function checkJsDoc(declaration, node) { - // Only check local elements, not consumed ones if (!declaration || !declaration.jsDoc) - return undefined; - - for (const jsDoc of declaration.jsDoc) - if (jsDoc.tags) { - let jsDocExtensionTag = jsDoc.tags.find(tag => tag.tagName.escapedText === extensionsTag); - let jsDocPreviewTag = jsDoc.tags.find(tag => tag.tagName.escapedText === previewTag); - // Has extension API tag - if (jsDocExtensionTag) { - addToApiList(declaration, jsDocPreviewTag); - // Does not have any of the required release tags - if (!jsDoc.tags.some(tag => releaseTags.includes(tag.tagName.escapedText))) { - let name; - if (declaration.kind === ts.SyntaxKind.Constructor) - name = declaration.parent.symbol.escapedName; - else { - name = declaration.symbol.escapedName; - const parentSymbol = getParentSymbolName(declaration); - if (parentSymbol) - name = `${parentSymbol}.${name}`; - } - - context.report({ - node, - messageId: "forbidden", - data: { - kind: getSyntaxKindFriendlyName(declaration.kind), - name, - releaseTags: releaseTags, - } - }); - } + return; + + const tags = ts.getJSDocTags(declaration); + if (!tags || tags.length === 0) + return; + + let jsDocExtensionTag = tags.find(tag => tag?.tagName?.escapedText === extensionsTag); + let jsDocPreviewTag = tags.find(tag => tag?.tagName?.escapedText === previewTag); + // Has extension API tag + if (jsDocExtensionTag) { + addToApiList(declaration, jsDocPreviewTag); + const validReleaseTag = tags.some(tag => releaseTags.includes(tag?.tagName?.escapedText)); + if (validReleaseTag) { + return true; + } else { + let name; + if (declaration.kind === ts.SyntaxKind.Constructor) + name = declaration.parent?.symbol?.escapedName; + else { + name = declaration.symbol?.escapedName; + const parentSymbol = getParentSymbolName(declaration); + if (parentSymbol) + name = `${parentSymbol}.${name}`; } + + context.report({ + node, + messageId: "forbidden", + data: { + kind: getSyntaxKindFriendlyName(declaration.kind), + name, + releaseTags: releaseTags, + } + }); } + } } - function checkWithParent(declaration, node) { + function isNamespace(declaration) { + return ts.isModuleBlock(declaration) && ts.isModuleDeclaration(declaration.parent); + } + + function check(declaration, node) { if (!declaration) return; - checkJsDoc(declaration, node); - if (declaration.parent && [ - ts.SyntaxKind.ClassDeclaration, - ts.SyntaxKind.EnumDeclaration, - ts.SyntaxKind.InterfaceDeclaration, - ts.SyntaxKind.ModuleDeclaration, - ].includes(declaration.parent.kind)) - checkJsDoc(declaration.parent, node); + if (checkJsDoc(declaration, node)) { + if (declaration.parent && isNamespace(declaration.parent)) + checkNamespaceTags(declaration.parent, node); + } } return { @@ -156,49 +180,49 @@ module.exports = { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, TSExportAssignment(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, TSExportKeyword(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, ExportDefaultDeclaration(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, ExportNamedDeclaration(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, ExportAllDeclaration(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, ExportSpecifier(node) { const tsCall = parserServices.esTreeNodeToTSNodeMap.get(node); if (!tsCall) return; - checkWithParent(tsCall, node); + check(tsCall, node); }, }; } From d10d8ab97a8c952bfbb8d8c0985dce6aa7058a8f Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 5 Apr 2022 08:59:31 -0400 Subject: [PATCH 69/76] remove unnecessary code --- core/frontend/src/ViewContext.ts | 924 ++++++++++---------- core/frontend/src/core-frontend.ts | 3 - extensions/test-extension/src/SelectTool.ts | 1 - 3 files changed, 462 insertions(+), 466 deletions(-) diff --git a/core/frontend/src/ViewContext.ts b/core/frontend/src/ViewContext.ts index d601d2149f3c..444c93765ce6 100644 --- a/core/frontend/src/ViewContext.ts +++ b/core/frontend/src/ViewContext.ts @@ -1,462 +1,462 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -/** @packageDocumentation - * @module Rendering - */ - -import { assert, Id64String } from "@itwin/core-bentley"; -import { - Matrix3d, Point2d, - Point3d, Range1d, Transform, XAndY, -} from "@itwin/core-geometry"; -import { Frustum, FrustumPlanes, SpatialClassifier, ViewFlags } from "@itwin/core-common"; -import { CachedDecoration, DecorationsCache } from "./DecorationsCache"; -import { IModelApp } from "./IModelApp"; -import { PlanarClipMaskState } from "./PlanarClipMaskState"; -import { CanvasDecoration } from "./render/CanvasDecoration"; -import { Decorations } from "./render/Decorations"; -import { GraphicBranch, GraphicBranchOptions } from "./render/GraphicBranch"; -import { GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from "./render/GraphicBuilder"; -import { GraphicList, RenderGraphic } from "./render/RenderGraphic"; -import { RenderPlanarClassifier } from "./render/RenderPlanarClassifier"; -import { RenderSystem, RenderTextureDrape } from "./render/RenderSystem"; -import { RenderTarget } from "./render/RenderTarget"; -import { Scene } from "./render/Scene"; -import { SpatialClassifierTileTreeReference, Tile, TileGraphicType, TileLoadStatus, TileTreeReference } from "./tile/internal"; -import { ViewingSpace } from "./ViewingSpace"; -import { ELEMENT_MARKED_FOR_REMOVAL, ScreenViewport, Viewport, ViewportDecorator } from "./Viewport"; - -/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]]. - * @public - */ -export class RenderContext { - /** ViewFlags extracted from the context's [[Viewport]]. */ - public readonly viewFlags: ViewFlags; - private readonly _viewport: Viewport; - /** Frustum extracted from the context's [[Viewport]]. */ - public readonly frustum: Frustum; - /** Frustum planes extracted from the context's [[Viewport]]. */ - public readonly frustumPlanes: FrustumPlanes; - - constructor(vp: Viewport, frustum?: Frustum) { - this._viewport = vp; - this.viewFlags = vp.viewFlags; - this.frustum = frustum ? frustum : vp.getFrustum(); - this.frustumPlanes = new FrustumPlanes(this.frustum); - } - - /** Given a point in world coordinates, determine approximately how many pixels it occupies on screen based on this context's frustum. */ - public getPixelSizeAtPoint(inPoint?: Point3d): number { - return this.viewport.viewingSpace.getPixelSizeAtPoint(inPoint); - } - - /** The [[Viewport]] associated with this context. */ - public get viewport(): Viewport { - return this._viewport; - } - - /** The [[RenderSystem]] being used to produce graphics for this context. */ - public get renderSystem(): RenderSystem { - return this.target.renderSystem; - } - - /** @internal */ - public get target(): RenderTarget { return this.viewport.target; } - - /** @internal */ - protected _createGraphicBuilder(options: Omit): GraphicBuilder { - return this.target.createGraphicBuilder({ ...options, viewport: this.viewport }); - } - - /** Create a builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]]. - * @param transform the local-to-world transform in which the builder's geometry is to be defined. - * @returns A builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]]. - */ - public createSceneGraphicBuilder(transform?: Transform): GraphicBuilder { - return this._createGraphicBuilder({ type: GraphicType.Scene, placement: transform }); - } - - /** Create a graphic from a [[GraphicBranch]]. */ - public createGraphicBranch(branch: GraphicBranch, location: Transform, opts?: GraphicBranchOptions): RenderGraphic { - return this.target.renderSystem.createGraphicBranch(branch, location, opts); - } - - /** Create a [[RenderGraphic]] which groups a set of graphics into a node in a scene graph, applying to each a transform and optional clip volume and symbology overrides. - * @param branch Contains the group of graphics and the symbology overrides. - * @param location the local-to-world transform applied to the grouped graphics. - * @returns A RenderGraphic suitable for drawing the scene graph node within this context's [[Viewport]]. - * @see [[RenderSystem.createBranch]] - */ - public createBranch(branch: GraphicBranch, location: Transform): RenderGraphic { return this.createGraphicBranch(branch, location); } - - /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`. - * Used when computing LOD for graphics. - * @internal - */ - public adjustPixelSizeForLOD(cssPixelSize: number): number { - return this.viewport.target.adjustPixelSizeForLOD(cssPixelSize); - } -} - -/** Provides context for an [[InteractiveTool]] to display decorations representing its current state. - * @see [[InteractiveTool.onDynamicFrame]] - * @public - */ -export class DynamicsContext extends RenderContext { - private _dynamics?: GraphicList; - - /** Add a graphic to the list of dynamic graphics to be drawn in this context's [[Viewport]]. */ - public addGraphic(graphic: RenderGraphic) { - if (undefined === this._dynamics) - this._dynamics = []; - this._dynamics.push(graphic); - } - - /** @internal */ - public changeDynamics(): void { - this.viewport.changeDynamics(this._dynamics); - } - - /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]]. - * @param options Options describing how to create the builder. - * @returns A builder that produces a [[RenderGraphic]]. - */ - public createGraphic(options: Omit): GraphicBuilder { - return this._createGraphicBuilder(options); - } -} - -/** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]]. - * @public - */ -export class DecorateContext extends RenderContext { - private readonly _decorations: Decorations; - private readonly _cache: DecorationsCache; - private _curCacheableDecorator?: ViewportDecorator; - - /** The [[ScreenViewport]] in which this context's [[Decorations]] will be drawn. */ - public override get viewport(): ScreenViewport { - return super.viewport as ScreenViewport; - } - - /** @internal */ - constructor(vp: ScreenViewport, decorations: Decorations, cache: DecorationsCache) { - super(vp); - this._decorations = decorations; - this._cache = cache; - } - - /** Create a builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]]. - * @param type The type of builder to create. - * @param transform the local-to-world transform in which the builder's geometry is to be defined. - * @param id If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]]. - * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]]. - * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration. - * @see [[createGraphic]] for more options. - */ - public createGraphicBuilder(type: GraphicType, transform?: Transform, id?: Id64String): GraphicBuilder { - return this.createGraphic({ type, placement: transform, pickable: undefined !== id ? { id } : undefined }); - } - - /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]]. - * @param options Options describing how to create the builder. - * @returns A builder that produces a [[RenderGraphic]]. - */ - public createGraphic(options: Omit): GraphicBuilder { - return this._createGraphicBuilder(options); - } - - /** @internal */ - public addFromDecorator(decorator: ViewportDecorator): void { - assert(undefined === this._curCacheableDecorator); - try { - if (decorator.useCachedDecorations) { - const cached = this._cache.get(decorator); - if (cached) { - this.restoreCache(cached); - return; - } - - this._curCacheableDecorator = decorator; - } - - decorator.decorate(this); - } finally { - this._curCacheableDecorator = undefined; - } - } - - /** Restores decorations onto this context from the specified array of cached decorations. */ - private restoreCache(cachedDecorations: CachedDecoration[]) { - cachedDecorations.forEach((cachedDecoration) => { - switch (cachedDecoration.type) { - case "graphic": - this.addDecoration(cachedDecoration.graphicType, cachedDecoration.graphicOwner); - break; - case "canvas": - this.addCanvasDecoration(cachedDecoration.canvasDecoration, cachedDecoration.atFront); - break; - case "html": - this.addHtmlDecoration(cachedDecoration.htmlElement); - break; - } - }); - } - - private _appendToCache(decoration: CachedDecoration) { - assert(undefined !== this._curCacheableDecorator); - this._cache.add(this._curCacheableDecorator, decoration); - } - - /** Calls [[GraphicBuilder.finish]] on the supplied builder to obtain a [[RenderGraphic]], then adds the graphic to the appropriate list of - * [[Decorations]]. - * @param builder The builder from which to extract the graphic. - * @note The builder should not be used after calling this method. - */ - public addDecorationFromBuilder(builder: GraphicBuilder) { - this.addDecoration(builder.type, builder.finish()); - } - - /** Adds a graphic to the set of [[Decorations]] to be drawn in this context's [[ScreenViewport]]. - * @param The type of the graphic, which determines to which list of decorations it is added. - * @param decoration The decoration graphic to add. - * @note The type must match the type with which the [[RenderGraphic]]'s [[GraphicBuilder]] was constructed. - * @see [[DecorateContext.addDecorationFromBuilder]] for a more convenient API. - */ - public addDecoration(type: GraphicType, decoration: RenderGraphic) { - if (this._curCacheableDecorator) { - const graphicOwner = this.target.renderSystem.createGraphicOwner(decoration); - this._appendToCache({ type: "graphic", graphicOwner, graphicType: type }); - decoration = graphicOwner; - } - - switch (type) { - case GraphicType.Scene: - if (undefined === this._decorations.normal) - this._decorations.normal = []; - this._decorations.normal.push(decoration); - break; - - case GraphicType.WorldDecoration: - if (!this._decorations.world) - this._decorations.world = []; - this._decorations.world.push(decoration); - break; - - case GraphicType.WorldOverlay: - if (!this._decorations.worldOverlay) - this._decorations.worldOverlay = []; - this._decorations.worldOverlay.push(decoration); - break; - - case GraphicType.ViewOverlay: - if (!this._decorations.viewOverlay) - this._decorations.viewOverlay = []; - this._decorations.viewOverlay.push(decoration); - break; - - case GraphicType.ViewBackground: - this.setViewBackground(decoration); - break; - } - } - - /** Add a [[CanvasDecoration]] to be drawn in this context's [[ScreenViewport]]. */ - public addCanvasDecoration(decoration: CanvasDecoration, atFront = false) { - if (this._curCacheableDecorator) - this._appendToCache({ type: "canvas", canvasDecoration: decoration, atFront }); - - if (undefined === this._decorations.canvasDecorations) - this._decorations.canvasDecorations = []; - - const list = this._decorations.canvasDecorations; - if (0 === list.length || true === atFront) - list.push(decoration); - else - list.unshift(decoration); - } - - /** Add an HTMLElement to be drawn as a decoration in this context's [[ScreenViewport]]. */ - public addHtmlDecoration(decoration: HTMLElement) { - if (this._curCacheableDecorator) - this._appendToCache({ type: "html", htmlElement: decoration }); - - // an element decoration being added might already be on the decorationDiv, just marked for removal - if (decoration[ELEMENT_MARKED_FOR_REMOVAL]) { - decoration[ELEMENT_MARKED_FOR_REMOVAL] = false; - } else if (decoration.parentElement !== this.viewport.decorationDiv) { - this.viewport.decorationDiv.appendChild(decoration); - } - } - - /** @internal */ - public drawStandardGrid(gridOrigin: Point3d, rMatrix: Matrix3d, spacing: XAndY, gridsPerRef: number, _isoGrid: boolean = false, _fixedRepetitions?: Point2d): void { - const vp = this.viewport; - - if (vp.viewingGlobe) - return; - - const color = vp.getContrastToBackgroundColor(); - const planarGrid = this.viewport.target.renderSystem.createPlanarGrid(vp.getFrustum(), { origin: gridOrigin, rMatrix, spacing, gridsPerRef, color }); - if (planarGrid) { - this.addDecoration(GraphicType.WorldDecoration, planarGrid); - } - } - - /** Display skyBox graphic that encompasses entire scene and rotates with camera. - * @see [[RenderSystem.createSkyBox]]. - */ - public setSkyBox(graphic: RenderGraphic) { - this._decorations.skyBox = graphic; - } - - /** Set the graphic to be displayed behind all other geometry as the background of this context's [[ScreenViewport]]. */ - public setViewBackground(graphic: RenderGraphic) { - this._decorations.viewBackground = graphic; - } -} - -/** Context used to create the scene to be drawn in a [[Viewport]]. The scene consists of a set of [[RenderGraphic]]s produced by the - * [[TileTree]]s visible within the viewport. Creating the scene may result in the enqueueing of requests for [[Tile]] content which - * should be displayed in the viewport but are not yet loaded. - * @public - */ -export class SceneContext extends RenderContext { - private _missingChildTiles = false; - /** The graphics comprising the scene. */ - public readonly scene = new Scene(); - - /** @internal */ - public readonly missingTiles = new Set(); - - /** @internal */ - public markChildrenLoading(): void { - this._missingChildTiles = true; - } - - /** @internal */ - public get hasMissingTiles(): boolean { - return this._missingChildTiles || this.missingTiles.size > 0; - } - - private _viewingSpace?: ViewingSpace; - private _graphicType: TileGraphicType = TileGraphicType.Scene; - - public constructor(vp: Viewport, frustum?: Frustum) { - super(vp, frustum); - } - - /** The viewed volume containing the scene. */ - public get viewingSpace(): ViewingSpace { - return undefined !== this._viewingSpace ? this._viewingSpace : this.viewport.viewingSpace; - } - - /** @internal */ - public get graphicType() { return this._graphicType; } - - /** Add the specified graphic to the scene. */ - public outputGraphic(graphic: RenderGraphic): void { - switch (this._graphicType) { - case TileGraphicType.BackgroundMap: - this.backgroundGraphics.push(graphic); - break; - case TileGraphicType.Overlay: - this.overlayGraphics.push(graphic); - break; - default: - this.graphics.push(graphic); - break; - } - } - - /** Indicate that the specified tile is desired for the scene but is not yet ready. A request to load its contents will later be enqueued. */ - public insertMissingTile(tile: Tile): void { - switch (tile.loadStatus) { - case TileLoadStatus.NotLoaded: - case TileLoadStatus.Queued: - case TileLoadStatus.Loading: - this.missingTiles.add(tile); - break; - } - } - - /** @internal */ - public requestMissingTiles(): void { - IModelApp.tileAdmin.requestTiles(this.viewport, this.missingTiles); - } - - /** @internal */ - public addPlanarClassifier(classifiedModelId: Id64String, classifierTree?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState): RenderPlanarClassifier | undefined { - // Target may have the classifier from a previous frame; if not we must create one. - let classifier = this.viewport.target.getPlanarClassifier(classifiedModelId); - if (undefined === classifier) - classifier = this.viewport.target.createPlanarClassifier(classifierTree?.activeClassifier); - - // Either way, we need to collect the graphics to draw for this frame, and record that we did so. - if (undefined !== classifier) { - this.planarClassifiers.set(classifiedModelId, classifier); - classifier.setSource(classifierTree, planarClipMask); - } - - return classifier; - } - - /** @internal */ - public getPlanarClassifierForModel(modelId: Id64String) { - return this.planarClassifiers.get(modelId); - } - - /** @internal */ - public addBackgroundDrapedModel(drapedTreeRef: TileTreeReference, _heightRange: Range1d | undefined): RenderTextureDrape | undefined { - const drapedTree = drapedTreeRef.treeOwner.tileTree; - if (undefined === drapedTree) - return undefined; - - const id = drapedTree.modelId; - let drape = this.getTextureDrapeForModel(id); - if (undefined !== drape) - return drape; - - drape = this.viewport.target.getTextureDrape(id); - if (undefined === drape && this.viewport.backgroundDrapeMap) - drape = this.viewport.target.renderSystem.createBackgroundMapDrape(drapedTreeRef, this.viewport.backgroundDrapeMap); - - if (undefined !== drape) - this.textureDrapes.set(id, drape); - - return drape; - } - - /** @internal */ - public getTextureDrapeForModel(modelId: Id64String) { - return this.textureDrapes.get(modelId); - } - - /** @internal */ - public withGraphicType(type: TileGraphicType, func: () => void): void { - const prevType = this._graphicType; - this._graphicType = type; - - func(); - - this._graphicType = prevType; - } - - /** The graphics in the scene that will be drawn with depth. */ - public get graphics() { return this.scene.foreground; } - /** The graphics that will be drawn behind everything else in the scene. */ - public get backgroundGraphics() { return this.scene.background; } - /** The graphics that will be drawn in front of everything else in the scene. */ - public get overlayGraphics() { return this.scene.overlay; } - /** @internal */ - public get planarClassifiers() { return this.scene.planarClassifiers; } - /** @internal */ - public get textureDrapes() { return this.scene.textureDrapes; } - - /** @internal */ - public setVolumeClassifier(classifier: SpatialClassifier, modelId: Id64String): void { - this.scene.volumeClassifier = { classifier, modelId }; - } -} +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ +/** @packageDocumentation + * @module Rendering + */ + +import { assert, Id64String } from "@itwin/core-bentley"; +import { + Matrix3d, Point2d, + Point3d, Range1d, Transform, XAndY, +} from "@itwin/core-geometry"; +import { Frustum, FrustumPlanes, SpatialClassifier, ViewFlags } from "@itwin/core-common"; +import { CachedDecoration, DecorationsCache } from "./DecorationsCache"; +import { IModelApp } from "./IModelApp"; +import { PlanarClipMaskState } from "./PlanarClipMaskState"; +import { CanvasDecoration } from "./render/CanvasDecoration"; +import { Decorations } from "./render/Decorations"; +import { GraphicBranch, GraphicBranchOptions } from "./render/GraphicBranch"; +import { GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from "./render/GraphicBuilder"; +import { GraphicList, RenderGraphic } from "./render/RenderGraphic"; +import { RenderPlanarClassifier } from "./render/RenderPlanarClassifier"; +import { RenderSystem, RenderTextureDrape } from "./render/RenderSystem"; +import { RenderTarget } from "./render/RenderTarget"; +import { Scene } from "./render/Scene"; +import { SpatialClassifierTileTreeReference, Tile, TileGraphicType, TileLoadStatus, TileTreeReference } from "./tile/internal"; +import { ViewingSpace } from "./ViewingSpace"; +import { ELEMENT_MARKED_FOR_REMOVAL, ScreenViewport, Viewport, ViewportDecorator } from "./Viewport"; + +/** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]]. + * @public + */ +export class RenderContext { + /** ViewFlags extracted from the context's [[Viewport]]. */ + public readonly viewFlags: ViewFlags; + private readonly _viewport: Viewport; + /** Frustum extracted from the context's [[Viewport]]. */ + public readonly frustum: Frustum; + /** Frustum planes extracted from the context's [[Viewport]]. */ + public readonly frustumPlanes: FrustumPlanes; + + constructor(vp: Viewport, frustum?: Frustum) { + this._viewport = vp; + this.viewFlags = vp.viewFlags; + this.frustum = frustum ? frustum : vp.getFrustum(); + this.frustumPlanes = new FrustumPlanes(this.frustum); + } + + /** Given a point in world coordinates, determine approximately how many pixels it occupies on screen based on this context's frustum. */ + public getPixelSizeAtPoint(inPoint?: Point3d): number { + return this.viewport.viewingSpace.getPixelSizeAtPoint(inPoint); + } + + /** The [[Viewport]] associated with this context. */ + public get viewport(): Viewport { + return this._viewport; + } + + /** The [[RenderSystem]] being used to produce graphics for this context. */ + public get renderSystem(): RenderSystem { + return this.target.renderSystem; + } + + /** @internal */ + public get target(): RenderTarget { return this.viewport.target; } + + /** @internal */ + protected _createGraphicBuilder(options: Omit): GraphicBuilder { + return this.target.createGraphicBuilder({ ...options, viewport: this.viewport }); + } + + /** Create a builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]]. + * @param transform the local-to-world transform in which the builder's geometry is to be defined. + * @returns A builder for creating a [[GraphicType.Scene]] [[RenderGraphic]] for rendering within this context's [[Viewport]]. + */ + public createSceneGraphicBuilder(transform?: Transform): GraphicBuilder { + return this._createGraphicBuilder({ type: GraphicType.Scene, placement: transform }); + } + + /** Create a graphic from a [[GraphicBranch]]. */ + public createGraphicBranch(branch: GraphicBranch, location: Transform, opts?: GraphicBranchOptions): RenderGraphic { + return this.target.renderSystem.createGraphicBranch(branch, location, opts); + } + + /** Create a [[RenderGraphic]] which groups a set of graphics into a node in a scene graph, applying to each a transform and optional clip volume and symbology overrides. + * @param branch Contains the group of graphics and the symbology overrides. + * @param location the local-to-world transform applied to the grouped graphics. + * @returns A RenderGraphic suitable for drawing the scene graph node within this context's [[Viewport]]. + * @see [[RenderSystem.createBranch]] + */ + public createBranch(branch: GraphicBranch, location: Transform): RenderGraphic { return this.createGraphicBranch(branch, location); } + + /** Given the size of a logical pixel in meters, convert it to the size of a physical pixel in meters, if [[RenderSystem.dpiAwareLOD]] is `true`. + * Used when computing LOD for graphics. + * @internal + */ + public adjustPixelSizeForLOD(cssPixelSize: number): number { + return this.viewport.target.adjustPixelSizeForLOD(cssPixelSize); + } +} + +/** Provides context for an [[InteractiveTool]] to display decorations representing its current state. + * @see [[InteractiveTool.onDynamicFrame]] + * @public + */ +export class DynamicsContext extends RenderContext { + private _dynamics?: GraphicList; + + /** Add a graphic to the list of dynamic graphics to be drawn in this context's [[Viewport]]. */ + public addGraphic(graphic: RenderGraphic) { + if (undefined === this._dynamics) + this._dynamics = []; + this._dynamics.push(graphic); + } + + /** @internal */ + public changeDynamics(): void { + this.viewport.changeDynamics(this._dynamics); + } + + /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]]. + * @param options Options describing how to create the builder. + * @returns A builder that produces a [[RenderGraphic]]. + */ + public createGraphic(options: Omit): GraphicBuilder { + return this._createGraphicBuilder(options); + } +} + +/** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]]. + * @public + */ +export class DecorateContext extends RenderContext { + private readonly _decorations: Decorations; + private readonly _cache: DecorationsCache; + private _curCacheableDecorator?: ViewportDecorator; + + /** The [[ScreenViewport]] in which this context's [[Decorations]] will be drawn. */ + public override get viewport(): ScreenViewport { + return super.viewport as ScreenViewport; + } + + /** @internal */ + constructor(vp: ScreenViewport, decorations: Decorations, cache: DecorationsCache) { + super(vp); + this._decorations = decorations; + this._cache = cache; + } + + /** Create a builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]]. + * @param type The type of builder to create. + * @param transform the local-to-world transform in which the builder's geometry is to be defined. + * @param id If the decoration is to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]]. + * @returns A builder for creating a [[RenderGraphic]] of the specified type appropriate for rendering within this context's [[Viewport]]. + * @see [[IModelConnection.transientIds]] for obtaining an ID for a pickable decoration. + * @see [[createGraphic]] for more options. + */ + public createGraphicBuilder(type: GraphicType, transform?: Transform, id?: Id64String): GraphicBuilder { + return this.createGraphic({ type, placement: transform, pickable: undefined !== id ? { id } : undefined }); + } + + /** Create a builder for producing a [[RenderGraphic]] appropriate for rendering within this context's [[Viewport]]. + * @param options Options describing how to create the builder. + * @returns A builder that produces a [[RenderGraphic]]. + */ + public createGraphic(options: Omit): GraphicBuilder { + return this._createGraphicBuilder(options); + } + + /** @internal */ + public addFromDecorator(decorator: ViewportDecorator): void { + assert(undefined === this._curCacheableDecorator); + try { + if (decorator.useCachedDecorations) { + const cached = this._cache.get(decorator); + if (cached) { + this.restoreCache(cached); + return; + } + + this._curCacheableDecorator = decorator; + } + + decorator.decorate(this); + } finally { + this._curCacheableDecorator = undefined; + } + } + + /** Restores decorations onto this context from the specified array of cached decorations. */ + private restoreCache(cachedDecorations: CachedDecoration[]) { + cachedDecorations.forEach((cachedDecoration) => { + switch (cachedDecoration.type) { + case "graphic": + this.addDecoration(cachedDecoration.graphicType, cachedDecoration.graphicOwner); + break; + case "canvas": + this.addCanvasDecoration(cachedDecoration.canvasDecoration, cachedDecoration.atFront); + break; + case "html": + this.addHtmlDecoration(cachedDecoration.htmlElement); + break; + } + }); + } + + private _appendToCache(decoration: CachedDecoration) { + assert(undefined !== this._curCacheableDecorator); + this._cache.add(this._curCacheableDecorator, decoration); + } + + /** Calls [[GraphicBuilder.finish]] on the supplied builder to obtain a [[RenderGraphic]], then adds the graphic to the appropriate list of + * [[Decorations]]. + * @param builder The builder from which to extract the graphic. + * @note The builder should not be used after calling this method. + */ + public addDecorationFromBuilder(builder: GraphicBuilder) { + this.addDecoration(builder.type, builder.finish()); + } + + /** Adds a graphic to the set of [[Decorations]] to be drawn in this context's [[ScreenViewport]]. + * @param The type of the graphic, which determines to which list of decorations it is added. + * @param decoration The decoration graphic to add. + * @note The type must match the type with which the [[RenderGraphic]]'s [[GraphicBuilder]] was constructed. + * @see [[DecorateContext.addDecorationFromBuilder]] for a more convenient API. + */ + public addDecoration(type: GraphicType, decoration: RenderGraphic) { + if (this._curCacheableDecorator) { + const graphicOwner = this.target.renderSystem.createGraphicOwner(decoration); + this._appendToCache({ type: "graphic", graphicOwner, graphicType: type }); + decoration = graphicOwner; + } + + switch (type) { + case GraphicType.Scene: + if (undefined === this._decorations.normal) + this._decorations.normal = []; + this._decorations.normal.push(decoration); + break; + + case GraphicType.WorldDecoration: + if (!this._decorations.world) + this._decorations.world = []; + this._decorations.world.push(decoration); + break; + + case GraphicType.WorldOverlay: + if (!this._decorations.worldOverlay) + this._decorations.worldOverlay = []; + this._decorations.worldOverlay.push(decoration); + break; + + case GraphicType.ViewOverlay: + if (!this._decorations.viewOverlay) + this._decorations.viewOverlay = []; + this._decorations.viewOverlay.push(decoration); + break; + + case GraphicType.ViewBackground: + this.setViewBackground(decoration); + break; + } + } + + /** Add a [[CanvasDecoration]] to be drawn in this context's [[ScreenViewport]]. */ + public addCanvasDecoration(decoration: CanvasDecoration, atFront = false) { + if (this._curCacheableDecorator) + this._appendToCache({ type: "canvas", canvasDecoration: decoration, atFront }); + + if (undefined === this._decorations.canvasDecorations) + this._decorations.canvasDecorations = []; + + const list = this._decorations.canvasDecorations; + if (0 === list.length || true === atFront) + list.push(decoration); + else + list.unshift(decoration); + } + + /** Add an HTMLElement to be drawn as a decoration in this context's [[ScreenViewport]]. */ + public addHtmlDecoration(decoration: HTMLElement) { + if (this._curCacheableDecorator) + this._appendToCache({ type: "html", htmlElement: decoration }); + + // an element decoration being added might already be on the decorationDiv, just marked for removal + if (decoration[ELEMENT_MARKED_FOR_REMOVAL]) { + decoration[ELEMENT_MARKED_FOR_REMOVAL] = false; + } else if (decoration.parentElement !== this.viewport.decorationDiv) { + this.viewport.decorationDiv.appendChild(decoration); + } + } + + /** @internal */ + public drawStandardGrid(gridOrigin: Point3d, rMatrix: Matrix3d, spacing: XAndY, gridsPerRef: number, _isoGrid: boolean = false, _fixedRepetitions?: Point2d): void { + const vp = this.viewport; + + if (vp.viewingGlobe) + return; + + const color = vp.getContrastToBackgroundColor(); + const planarGrid = this.viewport.target.renderSystem.createPlanarGrid(vp.getFrustum(), { origin: gridOrigin, rMatrix, spacing, gridsPerRef, color }); + if (planarGrid) { + this.addDecoration(GraphicType.WorldDecoration, planarGrid); + } + } + + /** Display skyBox graphic that encompasses entire scene and rotates with camera. + * @see [[RenderSystem.createSkyBox]]. + */ + public setSkyBox(graphic: RenderGraphic) { + this._decorations.skyBox = graphic; + } + + /** Set the graphic to be displayed behind all other geometry as the background of this context's [[ScreenViewport]]. */ + public setViewBackground(graphic: RenderGraphic) { + this._decorations.viewBackground = graphic; + } +} + +/** Context used to create the scene to be drawn in a [[Viewport]]. The scene consists of a set of [[RenderGraphic]]s produced by the + * [[TileTree]]s visible within the viewport. Creating the scene may result in the enqueueing of requests for [[Tile]] content which + * should be displayed in the viewport but are not yet loaded. + * @public + */ +export class SceneContext extends RenderContext { + private _missingChildTiles = false; + /** The graphics comprising the scene. */ + public readonly scene = new Scene(); + + /** @internal */ + public readonly missingTiles = new Set(); + + /** @internal */ + public markChildrenLoading(): void { + this._missingChildTiles = true; + } + + /** @internal */ + public get hasMissingTiles(): boolean { + return this._missingChildTiles || this.missingTiles.size > 0; + } + + private _viewingSpace?: ViewingSpace; + private _graphicType: TileGraphicType = TileGraphicType.Scene; + + public constructor(vp: Viewport, frustum?: Frustum) { + super(vp, frustum); + } + + /** The viewed volume containing the scene. */ + public get viewingSpace(): ViewingSpace { + return undefined !== this._viewingSpace ? this._viewingSpace : this.viewport.viewingSpace; + } + + /** @internal */ + public get graphicType() { return this._graphicType; } + + /** Add the specified graphic to the scene. */ + public outputGraphic(graphic: RenderGraphic): void { + switch (this._graphicType) { + case TileGraphicType.BackgroundMap: + this.backgroundGraphics.push(graphic); + break; + case TileGraphicType.Overlay: + this.overlayGraphics.push(graphic); + break; + default: + this.graphics.push(graphic); + break; + } + } + + /** Indicate that the specified tile is desired for the scene but is not yet ready. A request to load its contents will later be enqueued. */ + public insertMissingTile(tile: Tile): void { + switch (tile.loadStatus) { + case TileLoadStatus.NotLoaded: + case TileLoadStatus.Queued: + case TileLoadStatus.Loading: + this.missingTiles.add(tile); + break; + } + } + + /** @internal */ + public requestMissingTiles(): void { + IModelApp.tileAdmin.requestTiles(this.viewport, this.missingTiles); + } + + /** @internal */ + public addPlanarClassifier(classifiedModelId: Id64String, classifierTree?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState): RenderPlanarClassifier | undefined { + // Target may have the classifier from a previous frame; if not we must create one. + let classifier = this.viewport.target.getPlanarClassifier(classifiedModelId); + if (undefined === classifier) + classifier = this.viewport.target.createPlanarClassifier(classifierTree?.activeClassifier); + + // Either way, we need to collect the graphics to draw for this frame, and record that we did so. + if (undefined !== classifier) { + this.planarClassifiers.set(classifiedModelId, classifier); + classifier.setSource(classifierTree, planarClipMask); + } + + return classifier; + } + + /** @internal */ + public getPlanarClassifierForModel(modelId: Id64String) { + return this.planarClassifiers.get(modelId); + } + + /** @internal */ + public addBackgroundDrapedModel(drapedTreeRef: TileTreeReference, _heightRange: Range1d | undefined): RenderTextureDrape | undefined { + const drapedTree = drapedTreeRef.treeOwner.tileTree; + if (undefined === drapedTree) + return undefined; + + const id = drapedTree.modelId; + let drape = this.getTextureDrapeForModel(id); + if (undefined !== drape) + return drape; + + drape = this.viewport.target.getTextureDrape(id); + if (undefined === drape && this.viewport.backgroundDrapeMap) + drape = this.viewport.target.renderSystem.createBackgroundMapDrape(drapedTreeRef, this.viewport.backgroundDrapeMap); + + if (undefined !== drape) + this.textureDrapes.set(id, drape); + + return drape; + } + + /** @internal */ + public getTextureDrapeForModel(modelId: Id64String) { + return this.textureDrapes.get(modelId); + } + + /** @internal */ + public withGraphicType(type: TileGraphicType, func: () => void): void { + const prevType = this._graphicType; + this._graphicType = type; + + func(); + + this._graphicType = prevType; + } + + /** The graphics in the scene that will be drawn with depth. */ + public get graphics() { return this.scene.foreground; } + /** The graphics that will be drawn behind everything else in the scene. */ + public get backgroundGraphics() { return this.scene.background; } + /** The graphics that will be drawn in front of everything else in the scene. */ + public get overlayGraphics() { return this.scene.overlay; } + /** @internal */ + public get planarClassifiers() { return this.scene.planarClassifiers; } + /** @internal */ + public get textureDrapes() { return this.scene.textureDrapes; } + + /** @internal */ + public setVolumeClassifier(classifier: SpatialClassifier, modelId: Id64String): void { + this.scene.volumeClassifier = { classifier, modelId }; + } +} diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index 6e2db78faeff..ecfc94142928 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -49,9 +49,6 @@ export * from "./NoRenderApp"; export * from "./NotificationManager"; export * from "./PerModelCategoryVisibility"; export * from "./PlanarClipMaskState"; -export * from "./quantity-formatting/QuantityFormatter"; -export * from "./quantity-formatting/BaseUnitFormattingSettingsProvider"; -export * from "./quantity-formatting/LocalUnitFormatProvider"; export * from "./quantity-formatting/QuantityTypesEditorSpecs"; export * from "./RenderScheduleState"; export * from "./SelectionSet"; diff --git a/extensions/test-extension/src/SelectTool.ts b/extensions/test-extension/src/SelectTool.ts index 28673c9378e5..ae2d92cdc3ae 100644 --- a/extensions/test-extension/src/SelectTool.ts +++ b/extensions/test-extension/src/SelectTool.ts @@ -10,7 +10,6 @@ import { } from "@itwin/core-extension"; /** Minimalistic extension tool for a user to pick a set of elements of interest - * @public */ export class ExtensionSelectTool extends PrimitiveTool { From 60ae2343ad99d390a87f2ace9f7a43a1c7a81a94 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 5 Apr 2022 11:34:18 -0400 Subject: [PATCH 70/76] keep quantity-formatting set together --- core/frontend/src/core-frontend.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/frontend/src/core-frontend.ts b/core/frontend/src/core-frontend.ts index ecfc94142928..ea40ccd3f4dd 100644 --- a/core/frontend/src/core-frontend.ts +++ b/core/frontend/src/core-frontend.ts @@ -49,7 +49,6 @@ export * from "./NoRenderApp"; export * from "./NotificationManager"; export * from "./PerModelCategoryVisibility"; export * from "./PlanarClipMaskState"; -export * from "./quantity-formatting/QuantityTypesEditorSpecs"; export * from "./RenderScheduleState"; export * from "./SelectionSet"; export * from "./SheetViewState"; @@ -78,6 +77,7 @@ export * from "./properties/LengthDescription"; export * from "./quantity-formatting/QuantityFormatter"; export * from "./quantity-formatting/BaseUnitFormattingSettingsProvider"; export * from "./quantity-formatting/LocalUnitFormatProvider"; +export * from "./quantity-formatting/QuantityTypesEditorSpecs"; export * from "./render/CanvasDecoration"; export * from "./render/Decorations"; export * from "./render/FeatureSymbology"; From 742333a2b42f179a3b8d471fdd317532b75b8f01 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Tue, 5 Apr 2022 11:35:45 -0400 Subject: [PATCH 71/76] manually add copyright header --- tools/eslint-plugin/dist/configs/extension-exports-config.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/eslint-plugin/dist/configs/extension-exports-config.js b/tools/eslint-plugin/dist/configs/extension-exports-config.js index 97dd1db60174..197c95b3d1f8 100644 --- a/tools/eslint-plugin/dist/configs/extension-exports-config.js +++ b/tools/eslint-plugin/dist/configs/extension-exports-config.js @@ -1,3 +1,8 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ + module.exports = { plugins: [ "@itwin", From 6fc2df3e5e4bbdd883cc958e19b81d75d573fa6d Mon Sep 17 00:00:00 2001 From: Arun George Date: Wed, 6 Apr 2022 15:05:56 -0400 Subject: [PATCH 72/76] rm eslintrc, fix DISABLE_ELSINT_PLUGIN env var name --- .vscode/settings.json | 18 +++++------- extensions/test-extension/.eslintrc.js | 27 ------------------ .../display-performance-test-app/.eslintrc.js | 27 ------------------ .../display-performance-test-app/package.json | 4 +-- test-apps/display-test-app/.eslintrc.js | 27 ------------------ test-apps/display-test-app/package.json | 4 +-- test-apps/presentation-test-app/.eslintrc.js | 28 ------------------- test-apps/presentation-test-app/package.json | 4 +-- test-apps/ui-test-app/.eslintrc.js | 27 ------------------ test-apps/ui-test-app/package.json | 4 +-- 10 files changed, 15 insertions(+), 155 deletions(-) delete mode 100644 extensions/test-extension/.eslintrc.js delete mode 100644 test-apps/display-performance-test-app/.eslintrc.js delete mode 100644 test-apps/display-test-app/.eslintrc.js delete mode 100644 test-apps/presentation-test-app/.eslintrc.js delete mode 100644 test-apps/ui-test-app/.eslintrc.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 969073542186..87c650603d6f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ { "editor.tabSize": 2, "editor.insertSpaces": true, - "editor.formatOnSave": true, + // "editor.formatOnSave": true, "search.exclude": { "**/node_modules": true, "**/bower_components": true, @@ -49,25 +49,21 @@ ], "json.schemas": [ { - "fileMatch": [ - "certa.json" - ], + "fileMatch": ["certa.json"], "url": "./tools/certa/certa.schema.json" - }, + } ], "markdownlint.config": { "MD024": { "allow_different_nesting": true - }, + } }, - "markdownlint.ignore": [ - "**/CHANGELOG.md" - ], + "markdownlint.ignore": ["**/CHANGELOG.md"], "eslint.validate": [ "javascript", "javascriptreact", "typescript", - "typescriptreact", + "typescriptreact" ], "eslint.workingDirectories": [ { @@ -114,5 +110,5 @@ "source.fixAll.markdownlint": true, // first run the markdown linter "editor.action.fixAll": true, // Run the default formatter before eslint, it handles whitespace better "source.fixAll.eslint": true // then run ESLint auto-fix - }, + } } diff --git a/extensions/test-extension/.eslintrc.js b/extensions/test-extension/.eslintrc.js deleted file mode 100644 index 7c4150405de5..000000000000 --- a/extensions/test-extension/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step -// The plugins need to be loaded to avoid getting errors from eslint-disable comments -// npm lint script uses an alternative configuration provided in package.json - -module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: [ - "tsconfig.json", - "tsconfig.backend.json" - ], - sourceType: "module" - }, - plugins: [ - "@bentley", - "@typescript-eslint", - "react", - "react-hooks", - "import", - "prefer-arrow", - "deprecation" - ] -} \ No newline at end of file diff --git a/test-apps/display-performance-test-app/.eslintrc.js b/test-apps/display-performance-test-app/.eslintrc.js deleted file mode 100644 index ba3a2e577c4d..000000000000 --- a/test-apps/display-performance-test-app/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step -// The plugins need to be loaded to avoid getting errors from eslint-disable comments -// npm lint script uses an alternative configuration provided in package.json - -module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: [ - "tsconfig.json", - "tsconfig.backend.json" - ], - sourceType: "module" - }, - plugins: [ - "@itwin", - "@typescript-eslint", - "react", - "react-hooks", - "import", - "prefer-arrow", - "deprecation" - ] -} \ No newline at end of file diff --git a/test-apps/display-performance-test-app/package.json b/test-apps/display-performance-test-app/package.json index 6f753e161648..fbf3ae51f27c 100644 --- a/test-apps/display-performance-test-app/package.json +++ b/test-apps/display-performance-test-app/package.json @@ -15,14 +15,14 @@ "build": "npm run -s build:backend & npm run -s build:frontend", "build:ci": "npm run -s build", "build:backend": "tsc -p tsconfig.backend.json", - "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts --max_old_space_size=8192 build", + "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts --max_old_space_size=8192 build", "clean": "rimraf lib build .rush/temp/package-deps*.json", "compile": "npm run -s build:backend & tsc", "docs": "", "lint": "eslint -f visualstudio --config package.json --no-eslintrc \"./src/**/*.ts\" 1>&2", "mobile": "tsc 1>&2 && webpack --config mobile.backend.webpack.config.js 1>&2 && webpack --config mobile.frontend.webpack.config.js 1>&2 && cpx \"public/**/*\" ./lib/mobile/public && cpx \"assets/**/*\" ./lib/mobile/assets ", "start": "npm run -s start:electron", - "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", + "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", "start:electron": "electron ./lib/backend/ElectronMain.js", "start:web": "node lib/backend/WebMain.js", "test:electron": "electron ./lib/backend/ElectronMain.js", diff --git a/test-apps/display-test-app/.eslintrc.js b/test-apps/display-test-app/.eslintrc.js deleted file mode 100644 index ba3a2e577c4d..000000000000 --- a/test-apps/display-test-app/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step -// The plugins need to be loaded to avoid getting errors from eslint-disable comments -// npm lint script uses an alternative configuration provided in package.json - -module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: [ - "tsconfig.json", - "tsconfig.backend.json" - ], - sourceType: "module" - }, - plugins: [ - "@itwin", - "@typescript-eslint", - "react", - "react-hooks", - "import", - "prefer-arrow", - "deprecation" - ] -} \ No newline at end of file diff --git a/test-apps/display-test-app/package.json b/test-apps/display-test-app/package.json index 58aef8fb9286..a0401dff07b5 100644 --- a/test-apps/display-test-app/package.json +++ b/test-apps/display-test-app/package.json @@ -16,7 +16,7 @@ "build:ci": "npm run -s build", "build:backend": "tsc -p tsconfig.backend.json", "build:backend-webpack": "backend-webpack-tools build -s ./lib/backend/DtaElectronMain.js -o ./lib/build/", - "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true NODE_OPTIONS=--max_old_space_size=4096 react-scripts build", + "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true NODE_OPTIONS=--max_old_space_size=4096 react-scripts build", "clean": "rimraf build lib .rush/temp/package-deps*.json", "compile": "npm run -s build:backend & tsc", "copy:assets": "cpx \"./node_modules/@bentley/icons-generic-webfont/dist/**/*\" ./build", @@ -24,7 +24,7 @@ "lint": "eslint -f visualstudio --config package.json --no-eslintrc \"./src/**/*.ts\" 1>&2", "start": "cross-env NODE_ENV=development run-p start:webserver start:electron", "start:electron": "electron ./lib/backend/DtaElectronMain.js", - "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none USE_FULL_SOURCEMAP=true DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts start", + "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none USE_FULL_SOURCEMAP=true DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts start", "start:backend": "node --max-http-header-size=16000 lib/backend/WebMain.js", "start:servers": "run-p \"start:webserver\" \"start:backend\"", "test": "", diff --git a/test-apps/presentation-test-app/.eslintrc.js b/test-apps/presentation-test-app/.eslintrc.js deleted file mode 100644 index 00446cbc9b89..000000000000 --- a/test-apps/presentation-test-app/.eslintrc.js +++ /dev/null @@ -1,28 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step -// The plugins need to be loaded to avoid getting errors from eslint-disable comments -// npm lint script uses an alternative configuration provided in package.json - -module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: [ - "tsconfig.json", - "tsconfig.backend.json" - ], - sourceType: "module" - }, - plugins: [ - "@itwin", - "@typescript-eslint", - "react", - "react-hooks", - "import", - "prefer-arrow", - "deprecation", - "jsx-a11y" - ] -} \ No newline at end of file diff --git a/test-apps/presentation-test-app/package.json b/test-apps/presentation-test-app/package.json index 5dcfaf93665a..ae7f04f75478 100644 --- a/test-apps/presentation-test-app/package.json +++ b/test-apps/presentation-test-app/package.json @@ -15,7 +15,7 @@ "build": "npm run -s build:backend & tsc", "build:ci": "npm run -s build:backend && npm run -s build:frontend", "build:backend": "npm run -s copy:assets && tsc -p tsconfig.backend.json", - "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true GENERATE_SOURCEMAP=false DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts --max_old_space_size=8192 build", + "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true GENERATE_SOURCEMAP=false DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts --max_old_space_size=8192 build", "copy:assets": "symlink-dir \"./assets\" ./lib/assets", "copy:config": "internal-tools copy-config", "clean": "rimraf build lib .rush/temp/package-deps*.json", @@ -24,7 +24,7 @@ "lint": "eslint -f visualstudio --config package.json --no-eslintrc \"./src/**/*.{ts,tsx}\" 1>&2", "electron": "run-p start:webserver start:electron", "start:electron": "cross-env NODE_ENV=development electron ./lib/backend/main.js", - "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none USE_FULL_SOURCEMAP=true DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", + "start:webserver": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none USE_FULL_SOURCEMAP=true DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", "start:backend": "node --inspect --max-http-header-size=16000 lib/backend/main.js", "start:servers": "run-p start:webserver start:backend", "test": "", diff --git a/test-apps/ui-test-app/.eslintrc.js b/test-apps/ui-test-app/.eslintrc.js deleted file mode 100644 index ba3a2e577c4d..000000000000 --- a/test-apps/ui-test-app/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Bentley Systems, Incorporated. All rights reserved. -* See LICENSE.md in the project root for license terms and full copyright notice. -*--------------------------------------------------------------------------------------------*/ -// Provide a blank config so that build doesn't fail due to ESLint warnings from react-scripts build step -// The plugins need to be loaded to avoid getting errors from eslint-disable comments -// npm lint script uses an alternative configuration provided in package.json - -module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: [ - "tsconfig.json", - "tsconfig.backend.json" - ], - sourceType: "module" - }, - plugins: [ - "@itwin", - "@typescript-eslint", - "react", - "react-hooks", - "import", - "prefer-arrow", - "deprecation" - ] -} \ No newline at end of file diff --git a/test-apps/ui-test-app/package.json b/test-apps/ui-test-app/package.json index d22d77532e18..487fdf713c29 100644 --- a/test-apps/ui-test-app/package.json +++ b/test-apps/ui-test-app/package.json @@ -9,13 +9,13 @@ "build": "npm run -s build:backend & tsc", "build:ci": "npm run -s build:backend && npm run -s build:frontend", "build:backend": "tsc -p tsconfig.backend.json", - "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true GENERATE_SOURCEMAP=false DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts --max_old_space_size=8192 build", + "build:frontend": "cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true GENERATE_SOURCEMAP=false DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true DISABLE_TERSER=true react-scripts --max_old_space_size=8192 build", "clean": "rimraf lib build .rush/temp/package-deps*.json", "lint": "eslint -f visualstudio --config package.json --no-eslintrc \"./src/**/*.{ts,tsx}\" 1>&2", "start": "run-p start:webserver start:electron", "start:electron": "cross-env NODE_ENV=development electron ./lib/backend/main.js", "start:electron:prod": "electron ./lib/backend/main.js", - "start:webserver": "npm run -s pseudolocalize && cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none DISABLE_ESLINT=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", + "start:webserver": "npm run -s pseudolocalize && cross-env DISABLE_NEW_JSX_TRANSFORM=true SKIP_PREFLIGHT_CHECK=true DISABLE_NEW_ASSET_COPY=true BROWSER=none DISABLE_ESLINT_PLUGIN=true TRANSPILE_DEPS=false USE_FAST_SASS=true react-scripts start", "start:backend": "node --max-http-header-size=16000 lib/backend/main.js", "start:servers": "run-p \"start:webserver\" \"start:backend\"", "pseudolocalize": "betools pseudolocalize --englishDir ./public/locales/en --out ./build/public/locales/en-PSEUDO", From 36b0d9aed044efe20815a1f1e856fa34fa93b4fc Mon Sep 17 00:00:00 2001 From: Arun George Date: Wed, 6 Apr 2022 17:14:34 -0400 Subject: [PATCH 73/76] revert --- .vscode/settings.json | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 87c650603d6f..969073542186 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ { "editor.tabSize": 2, "editor.insertSpaces": true, - // "editor.formatOnSave": true, + "editor.formatOnSave": true, "search.exclude": { "**/node_modules": true, "**/bower_components": true, @@ -49,21 +49,25 @@ ], "json.schemas": [ { - "fileMatch": ["certa.json"], + "fileMatch": [ + "certa.json" + ], "url": "./tools/certa/certa.schema.json" - } + }, ], "markdownlint.config": { "MD024": { "allow_different_nesting": true - } + }, }, - "markdownlint.ignore": ["**/CHANGELOG.md"], + "markdownlint.ignore": [ + "**/CHANGELOG.md" + ], "eslint.validate": [ "javascript", "javascriptreact", "typescript", - "typescriptreact" + "typescriptreact", ], "eslint.workingDirectories": [ { @@ -110,5 +114,5 @@ "source.fixAll.markdownlint": true, // first run the markdown linter "editor.action.fixAll": true, // Run the default formatter before eslint, it handles whitespace better "source.fixAll.eslint": true // then run ESLint auto-fix - } + }, } From 36d77937d8116c30b46d1a74db7c5408eae213ee Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 7 Apr 2022 11:17:43 -0400 Subject: [PATCH 74/76] added initial documentation for how to use extensions tag --- .../guidelines/release-tags-guidelines.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/learning/guidelines/release-tags-guidelines.md b/docs/learning/guidelines/release-tags-guidelines.md index bd176ba79c47..13ca949ef79b 100644 --- a/docs/learning/guidelines/release-tags-guidelines.md +++ b/docs/learning/guidelines/release-tags-guidelines.md @@ -13,6 +13,7 @@ The supported release tags are: - `@alpha` - `@internal` - `@deprecated` +- `@extensions` Details about each tag are below. @@ -57,6 +58,12 @@ From the maintainer perspective, *deprecated* API items follow the same rules as The deprecation message should include the replacement API item linked using the `[[replacement]]` (double square bracket) link syntax so that the SDK documentation will have a hyperlink and the lint message will mention the replacement item in a readable form. More advanced linking syntax should not be used as it would distract in the lint rule case. +### @extensions + +The `@extensions` tag indicates that an API item is officially included in the `@twin/core-extension` API and can be used to develop *iTwinjs Extensions*. + +> Note: only *public* API items can have an `@extensions` tag (there is an lint rule to check). + ### Release Tag Summary The following table summarizes the affects of each release tag: @@ -68,6 +75,7 @@ Release Tag | Affects Package Semantic Version | Included in Public SDK Document `@alpha` | No | No `@internal` | Yes | No `@deprecated` | Yes | Yes +`@extensions` | No | - ## API Items @@ -164,3 +172,12 @@ Likewise, *deprecated* API items should include documentation that indicates wha ```ts /** @alpha Private comment reminding maintainer why API item was marked alpha. */ ``` + +*Extensions* API tag should be on its own line after the supported release tag: + +```ts +/** Sample description of an exported API item. + * @public + * @extensions + */ +``` From 56cc1f91e087ab737985aa9b18b9b49b94c0ff15 Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 7 Apr 2022 11:36:01 -0400 Subject: [PATCH 75/76] iTwin.js not iTwinjs --- docs/learning/guidelines/release-tags-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learning/guidelines/release-tags-guidelines.md b/docs/learning/guidelines/release-tags-guidelines.md index 13ca949ef79b..46fd205258dd 100644 --- a/docs/learning/guidelines/release-tags-guidelines.md +++ b/docs/learning/guidelines/release-tags-guidelines.md @@ -60,7 +60,7 @@ More advanced linking syntax should not be used as it would distract in the lint ### @extensions -The `@extensions` tag indicates that an API item is officially included in the `@twin/core-extension` API and can be used to develop *iTwinjs Extensions*. +The `@extensions` tag indicates that an API item is officially included in the `@twin/core-extension` API and can be used to develop *iTwin.js Extensions*. > Note: only *public* API items can have an `@extensions` tag (there is an lint rule to check). From 66eb837ddad4efc6dec49f047b2bc4b27b2877cd Mon Sep 17 00:00:00 2001 From: johnnyd710 <19596966+johnnyd710@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:56:46 -0400 Subject: [PATCH 76/76] revert react-redux from 7.2.8 to 7.2.6 in appui-react --- common/config/rush/pnpm-lock.yaml | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 088432d267f7..6d317d7274a9 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -3139,11 +3139,11 @@ importers: '@itwin/presentation-common': link:../../presentation/common '@itwin/presentation-components': link:../../presentation/components '@itwin/presentation-frontend': link:../../presentation/frontend - '@reduxjs/toolkit': 1.8.1_react-redux@7.2.8+react@17.0.2 + '@reduxjs/toolkit': 1.8.0_react-redux@7.2.6+react@17.0.2 classnames: 2.3.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - react-redux: 7.2.8_react-dom@17.0.2+react@17.0.2 + react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 react-select: 3.2.0_react-dom@17.0.2+react@17.0.2 devDependencies: '@bentley/react-scripts': 4.0.3_react@17.0.2+typescript@4.4.4 @@ -3286,7 +3286,7 @@ importers: react: 17.0.2 react-beautiful-dnd: 13.1.0_react-dom@17.0.2+react@17.0.2 react-dom: 17.0.2_react@17.0.2 - react-redux: 7.2.8_react-dom@17.0.2+react@17.0.2 + react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 react-resize-detector: 6.7.8_react-dom@17.0.2+react@17.0.2 react-select: 3.2.0_react-dom@17.0.2+react@17.0.2 react-table: 7.7.0_react@17.0.2 @@ -3961,7 +3961,7 @@ importers: raf: 3.4.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - react-redux: 7.2.8_react-dom@17.0.2+react@17.0.2 + react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 react-test-renderer: 17.0.2_react@17.0.2 redux: 4.1.2 rimraf: 3.0.2 @@ -8121,10 +8121,10 @@ packages: resolution: {integrity: sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==} dev: false - /@reduxjs/toolkit/1.8.1_react-redux@7.2.8+react@17.0.2: - resolution: {integrity: sha512-Q6mzbTpO9nOYRnkwpDlFOAbQnd3g7zj7CtHAZWz5SzE5lcV97Tf8f3SzOO8BoPOMYBFgfZaqTUZqgGu+a0+Fng==} + /@reduxjs/toolkit/1.8.0_react-redux@7.2.6+react@17.0.2: + resolution: {integrity: sha512-cdfHWfcvLyhBUDicoFwG1u32JqvwKDxLxDd7zSmSoFw/RhYLOygIRtmaMjPRUUHmVmmAGAvquLLsKKU/677kSQ==} peerDependencies: - react: ^16.9.0 || ^17.0.0 || ^18 + react: ^16.9.0 || ^17.0.0 || 18.0.0-beta react-redux: ^7.2.1 || ^8.0.0-beta peerDependenciesMeta: react: @@ -8134,7 +8134,7 @@ packages: dependencies: immer: 9.0.12 react: 17.0.2 - react-redux: 7.2.8_react-dom@17.0.2+react@17.0.2 + react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 redux: 4.1.2 redux-thunk: 2.4.1_redux@4.1.2 reselect: 4.1.5 @@ -19478,7 +19478,7 @@ packages: raf-schd: 4.0.3 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - react-redux: 7.2.8_react-dom@17.0.2+react@17.0.2 + react-redux: 7.2.6_react-dom@17.0.2+react@17.0.2 redux: 4.1.2 use-memo-one: 1.1.2_react@17.0.2 transitivePeerDependencies: @@ -19496,7 +19496,7 @@ packages: memoize-one: 5.2.1 raf-schd: 4.0.3 react: 17.0.2 - react-redux: 7.2.8_react@17.0.2 + react-redux: 7.2.6_react@17.0.2 redux: 4.1.2 use-memo-one: 1.1.2_react@17.0.2 transitivePeerDependencies: @@ -19636,10 +19636,10 @@ packages: /react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - /react-redux/7.2.8_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==} + /react-redux/7.2.6_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==} peerDependencies: - react: ^16.8.3 || ^17 || ^18 + react: ^16.8.3 || ^17 react-dom: '*' react-native: '*' peerDependenciesMeta: @@ -19648,7 +19648,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.17.9 + '@babel/runtime': 7.17.8 '@types/react-redux': 7.1.23 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -19657,10 +19657,10 @@ packages: react-dom: 17.0.2_react@17.0.2 react-is: 17.0.2 - /react-redux/7.2.8_react@17.0.2: - resolution: {integrity: sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==} + /react-redux/7.2.6_react@17.0.2: + resolution: {integrity: sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==} peerDependencies: - react: ^16.8.3 || ^17 || ^18 + react: ^16.8.3 || ^17 react-dom: '*' react-native: '*' peerDependenciesMeta: @@ -19669,7 +19669,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.17.9 + '@babel/runtime': 7.17.8 '@types/react-redux': 7.1.23 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0