Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
a55c0ed
update ci
aruniverse Feb 10, 2025
395b14f
Upgrade core dependencies to 5.0 (#225)
pmconne Feb 10, 2025
6ebbb4a
Merge branch 'main' into itwinjs-v5
aruniverse Feb 10, 2025
b831fd1
Merge branch 'main' into itwinjs-v5
pachhaibipin May 8, 2025
3d70107
WIP- updating to 5.x
pachhaibipin May 9, 2025
0fcca08
passing build
anmolshres98 May 9, 2025
646cf6d
remove cmnt
pachhaibipin May 13, 2025
70ec6d8
extract row as object
pachhaibipin May 14, 2025
0e2c80c
update latest itjs rc + other deps
anmolshres98 May 19, 2025
902cd87
disableThinnedNativeInstanceWorkflow = true
anmolshres98 May 20, 2025
867b607
format
anmolshres98 May 20, 2025
73017a9
replace hubAccess.queryChangeset() with Briefcase manager
pachhaibipin May 21, 2025
b077dbb
Version bump [skip actions]
imodeljs-admin May 27, 2025
cde2d17
latest rc
anmolshres98 May 27, 2025
7f780d7
2.0.0-dev.0
anmolshres98 May 27, 2025
45d5bd1
Version bump [skip actions]
imodeljs-admin May 27, 2025
b292c28
swap `IModelHost[_hubAccess]` with `BriefcaseManager`
anmolshres98 May 27, 2025
1ef96d0
Version bump [skip actions]
imodeljs-admin May 27, 2025
bc67e9a
rc - 5.0.0-dev.116
anmolshres98 May 28, 2025
c5accff
fix so not throwing in 5.x itjs core-backend
anmolshres98 Jun 2, 2025
640d9e4
Version bump [skip actions]
imodeljs-admin Jun 2, 2025
7576435
itjs 5.0 official
anmolshres98 Jun 16, 2025
0813ad5
Version bump [skip actions]
imodeljs-admin Jun 16, 2025
028d92f
compile w/ latest 5.1
aruniverse Jul 10, 2025
07e83c3
update to 5.2
aruniverse Oct 2, 2025
8ede14e
Merge branch 'main' into itwinjs-v5
aruniverse Oct 2, 2025
674dc94
extract-api
aruniverse Oct 2, 2025
33bcb58
bump husky
aruniverse Oct 2, 2025
92ecd1f
bump lint-staged
aruniverse Oct 2, 2025
8879229
got linter working
aruniverse Oct 2, 2025
d7cb3de
shrink scope for now
aruniverse Oct 2, 2025
eaa2e4f
non null assertion lint
DanRod1999 Oct 10, 2025
ea8b35c
wip 5.x changes
DanRod1999 Oct 14, 2025
f57a105
pass at deprecated apis; fonts need to be reviewed in core, api is co…
aruniverse Oct 16, 2025
608378a
^5.2.0
DanRod1999 Oct 21, 2025
f061c1d
Merge branch 'itwinjs-v5' of https://github.com/iTwin/imodel-transfor…
DanRod1999 Oct 21, 2025
9884750
Add a fall back if extentsWithOutliers is undefined
MichaelSwigerAtBentley Oct 22, 2025
fbec227
Correct non-null assertions
MichaelSwigerAtBentley Oct 23, 2025
cc7c3fa
Bump to Node 22
MichaelSwigerAtBentley Oct 23, 2025
317d98d
Revert "pass at deprecated apis; fonts need to be reviewed in core, a…
DanRod1999 Oct 27, 2025
674c9e0
5.2.4
DanRod1999 Oct 28, 2025
b5b57e4
modify query for substation
DanRod1999 Oct 28, 2025
28e0999
update all packages to latest 5.2
DanRod1999 Oct 28, 2025
0d9f822
Version bump [skip actions]
imodeljs-admin Oct 28, 2025
ac070b6
skip codes with non standard spaces test
DanRod1999 Oct 29, 2025
294689a
Merge branch 'itwinjs-v5' of https://github.com/iTwin/imodel-transfor…
DanRod1999 Oct 29, 2025
6c79e8a
Fix infinite loop change processing bug in 5.0 branch (#275)
mindaugasdirg Oct 30, 2025
a893069
substation test optimizations
DanRod1999 Oct 30, 2025
25c91fe
Merge branch 'main' into itwinjs-v5
DanRod1999 Oct 30, 2025
4540d92
dev.4
DanRod1999 Oct 30, 2025
a9423db
Merge branch 'substation-schema-caching' into itwinjs-v5
DanRod1999 Oct 31, 2025
16441a2
modify log levels
DanRod1999 Oct 31, 2025
2246bed
remove eslint ignore deprecated comments
DanRod1999 Nov 12, 2025
dbed9e5
replace fontMap apis
DanRod1999 Nov 12, 2025
94e2d36
forEach()
DanRod1999 Nov 17, 2025
84dcc0e
replace getMetaData
DanRod1999 Nov 19, 2025
c0a3aec
remove uneeded helper
DanRod1999 Nov 20, 2025
104adac
lint cleanup
DanRod1999 Nov 20, 2025
1399902
allow skipping over reused IDs during changeset processing
khanaffan Nov 25, 2025
ff63850
Add addChangeKey method to ChangedInstanceIds for handling ChangeInst…
khanaffan Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ name: CI

on:
pull_request:
branches: [ "main" ]
branches: [ "main", "itwinjs-v5" ]
workflow_dispatch:

jobs:
check-change-files:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
name: Check change files
name: Check change files

steps:
- name: Checkout
Expand All @@ -21,10 +22,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
cache: 'pnpm'

- name: Install dependencies
Expand All @@ -48,10 +49,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
cache: 'pnpm'

- id: set-matrix
Expand Down Expand Up @@ -104,10 +105,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
cache: 'pnpm'

- name: Force dependency resolution
Expand Down Expand Up @@ -161,6 +162,7 @@ jobs:
CORE_VERSION: ${{ matrix.version }}

- name: Lint
if: github.ref == 'refs/heads/main'
run: pnpm run lint

- name: Build
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/extract-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
cache: 'pnpm'

- name: Pnpm install
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
registry-url: https://registry.npmjs.org/

- name: Install dependencies
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
with:
version: 9.14.2

- name: Use Node.js 20
- name: Use Node.js 22
uses: actions/setup-node@v3
with:
node-version: 20.18.1
node-version: 22.12.0
registry-url: https://registry.npmjs.org/

- name: Install dependencies
Expand Down
5 changes: 1 addition & 4 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run pre-commit
lint-staged
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "major",
"comment": "Upgrade to iTwin.js 5.0.",
"packageName": "@itwin/imodel-transformer",
"email": "22944042+pmconne@users.noreply.github.com",
"dependentChangeType": "patch"
}
16 changes: 11 additions & 5 deletions common/api/imodel-transformer.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { EntityProps } from '@itwin/core-common';
import { EntityReference } from '@itwin/core-common';
import { ExternalSourceAspect } from '@itwin/core-backend';
import { ExternalSourceAspectProps } from '@itwin/core-common';
import { FontFamilyDescriptor } from '@itwin/core-common';
import { FontProps } from '@itwin/core-common';
import { Helmert2DWithZOffset } from '@itwin/core-common';
import { Id64Arg } from '@itwin/core-bentley';
Expand All @@ -45,6 +46,8 @@ import { Transform } from '@itwin/core-geometry';
export class ChangedInstanceIds {
constructor(db: IModelDb);
addChange(change: ChangedECInstance): Promise<void>;
// (undocumented)
addChangeKey(change: ChangeInstanceKey): Promise<void>;
// @beta
addCustomAspectChange(changeType: SqliteChangeOp, ids: Id64Arg): void;
// @beta
Expand Down Expand Up @@ -149,6 +152,8 @@ export class IModelExporter {
exportCodeSpecByName(codeSpecName: string): Promise<void>;
exportCodeSpecs(): Promise<void>;
exportElement(elementId: Id64String): Promise<void>;
exportFontByFontFamilyDescriptor(fontFamily: FontFamilyDescriptor): Promise<void>;
exportFontByFontProps(fontProps: FontProps): Promise<void>;
exportFontByName(fontName: string): Promise<void>;
exportFontByNumber(fontNumber: number): Promise<void>;
exportFonts(): Promise<void>;
Expand Down Expand Up @@ -273,7 +278,6 @@ export class IModelTransformer extends IModelExportHandler {
fn: (sourceElementId: Id64String, targetElementId: Id64String) => void;
skipPropagateChangesToRootElements: boolean;
}): void;
protected get hasDefinitionContainerDeletionFeature(): boolean;
protected hasElementChanged(sourceElement: Element_2): boolean;
readonly importer: IModelImporter;
initElementProvenance(sourceElementId: Id64String, targetElementId: Id64String): ExternalSourceAspectProps;
Expand Down Expand Up @@ -447,14 +451,16 @@ export class TemplateModelCloner extends IModelTransformer {

// @public
export enum TransformerLoggerCategory {
// (undocumented)
ECReferenceTypesCache = "imodel-transformer.ECReferenceTypesCache",
// @beta
IModelCloneContext = "core-backend.IModelCloneContext",
IModelCloneContext = "imodel-transformer.IModelCloneContext",
// @beta
IModelExporter = "core-backend.IModelExporter",
IModelExporter = "imodel-transformer.IModelExporter",
// @beta
IModelImporter = "core-backend.IModelImporter",
IModelImporter = "imodel-transformer.IModelImporter",
// @beta
IModelTransformer = "core-backend.IModelTransformer"
IModelTransformer = "imodel-transformer.IModelTransformer"
}

// (No @packageDocumentation comment for this package)
Expand Down
201 changes: 102 additions & 99 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,110 +3,113 @@ const iTwinPlugin = require("@itwin/eslint-plugin");
const prettier = require("eslint-config-prettier/prettier");

module.exports = [
{
files: ["**/*.ts"],
...iTwinPlugin.configs.iTwinjsRecommendedConfig,
{
files: ["**/*.ts"],
...iTwinPlugin.configs.iTwinjsRecommendedConfig,
},
{
files: ["**/*.ts"],
rules: {
"@itwin/no-internal": [
"warn",
{
tag: ["internal"],
},
],
"@typescript-eslint/naming-convention": [
...itwinjsRecommended.rules["@typescript-eslint/naming-convention"],
{
selector: "objectLiteralProperty",
format: null,
leadingUnderscore: "allowSingleOrDouble",
},
],
"@typescript-eslint/indent": ["off"],
"@typescript-eslint/dot-notation": [
"error",
{
allowProtectedClassPropertyAccess: true,
allowPrivateClassPropertyAccess: true,
},
],
/** The following set of rules were manually turned off by using the output of 'npx eslint-config-prettier ./src/IModelTransformer.ts'
* which shows conflicting or unnecessary rules when using eslint + prettier.
*/
"@typescript-eslint/member-delimiter-style": ["off"],
"@typescript-eslint/no-extra-semi": ["off"],
"@typescript-eslint/semi": ["off"],
"@typescript-eslint/space-before-function-paren": ["off"],
"@typescript-eslint/type-annotation-spacing": ["off"],
"eol-last": ["off"],
"max-statements-per-line": ["off"],
"new-parens": ["off"],
"no-multiple-empty-lines": ["off"],
"no-trailing-spaces": ["off"],
"nonblock-statement-body-position": ["off"],
"quote-props": ["off"],
"arrow-parens": ["off"],
"brace-style": ["off"],
"comma-dangle": ["off"],
/** https://github.com/prettier/eslint-config-prettier#special-rules */
quotes: [
"error",
"double",
{ avoidEscape: true, allowTemplateLiterals: false },
],
},
{
files: ["**/*.ts"],
rules: {
"@itwin/no-internal": [
"warn",
{
tag: ["internal"],
},
],
"@typescript-eslint/naming-convention": [
...itwinjsRecommended.rules["@typescript-eslint/naming-convention"],
{
selector: "objectLiteralProperty",
format: null,
leadingUnderscore: "allowSingleOrDouble",
},
],
"@typescript-eslint/indent": ["off"],
"@typescript-eslint/dot-notation": [
"error",
{
allowProtectedClassPropertyAccess: true,
allowPrivateClassPropertyAccess: true,
},
],
/** The following set of rules were manually turned off by using the output of 'npx eslint-config-prettier ./src/IModelTransformer.ts'
* which shows conflicting or unnecessary rules when using eslint + prettier.
*/
"@typescript-eslint/member-delimiter-style": ["off"],
"@typescript-eslint/no-extra-semi": ["off"],
"@typescript-eslint/semi": ["off"],
"@typescript-eslint/space-before-function-paren": ["off"],
"@typescript-eslint/type-annotation-spacing": ["off"],
"eol-last": ["off"],
"max-statements-per-line": ["off"],
"new-parens": ["off"],
"no-multiple-empty-lines": ["off"],
"no-trailing-spaces": ["off"],
"nonblock-statement-body-position": ["off"],
"quote-props": ["off"],
"arrow-parens": ["off"],
"brace-style": ["off"],
"comma-dangle": ["off"],
/** https://github.com/prettier/eslint-config-prettier#special-rules */
"@typescript-eslint/quotes": [
"error", "double", { "avoidEscape": true, "allowTemplateLiterals": false }
]
},
},
{
files: ["**/*.ts"],
...prettier,
},
{
files: ["packages/transformer/**/*.ts"],
rules: {
"@typescript-eslint/no-unsafe-enum-comparison": "off",
},
{
files: ["**/*.ts"],
...prettier,
languageOptions: {
parserOptions: {
project: "packages/transformer/tsconfig.json",
tsconfigRootDir: __dirname,
},
sourceType: "commonjs",
},
{
files: ["packages/transformer/**/*.ts"],
rules: {
"@typescript-eslint/no-unsafe-enum-comparison": "off",
},
{
files: ["packages/transformer/src/test/**/*.ts"],
rules: {
"@itwin/no-internal-barrel-imports": "off",
"@typescript-eslint/no-non-null-assertion": "off",
},
},
{
files: ["packages/performance-tests/**/*.ts"],
rules: {
"@typescript-eslint/naming-convention": [
...itwinjsRecommended.rules["@typescript-eslint/naming-convention"],
{
selector: ["objectLiteralProperty", "typeProperty"],
format: null,
leadingUnderscore: "allowSingleOrDouble",
},
languageOptions: {
parserOptions: {
project: "packages/transformer/tsconfig.json",
tsconfigRootDir: __dirname
},
sourceType: "commonjs",
}
],
},
{
files: ["packages/transformer/src/test/**/*.ts"],
rules: {
"@itwin/no-internal-barrel-imports": "off"
}
languageOptions: {
parserOptions: {
project: "packages/performance-tests/tsconfig.json",
tsconfigRootDir: __dirname,
},
sourceType: "commonjs",
},
{
files: ["packages/performance-tests/**/*.ts"],
rules: {
"@typescript-eslint/naming-convention": [
...itwinjsRecommended.rules["@typescript-eslint/naming-convention"],
{
selector: ["objectLiteralProperty", "typeProperty"],
format: null,
leadingUnderscore: "allowSingleOrDouble",
},
],
},
languageOptions: {
parserOptions: {
project: "packages/performance-tests/tsconfig.json",
tsconfigRootDir: __dirname
},
sourceType: "commonjs",
}
},
{
files: ["packages/test-app/**/*.ts"],
languageOptions: {
parserOptions: {
project: "packages/test-app/tsconfig.json",
tsconfigRootDir: __dirname,
},
sourceType: "commonjs",
},
{
files: ["packages/test-app/**/*.ts"],
languageOptions: {
parserOptions: {
project: "packages/test-app/tsconfig.json",
tsconfigRootDir: __dirname
},
sourceType: "commonjs",
}
}
},
];
Loading
Loading