@itwin/imodel-transformer 2.0.0-dev.2 → 2.0.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  * @module Logging
3
3
  */
4
4
  /** Logger categories used by this package
5
- * @note All logger categories in this package start with the `core-backend` prefix.
5
+ * @note All logger categories in this package start with the `imodel-transformer` prefix.
6
6
  * @see [Logger]($bentley)
7
7
  * @public
8
8
  */
@@ -10,18 +10,19 @@ export declare enum TransformerLoggerCategory {
10
10
  /** The logger category used by the [IModelExporter]($transformer) class.
11
11
  * @beta
12
12
  */
13
- IModelExporter = "core-backend.IModelExporter",
13
+ IModelExporter = "imodel-transformer.IModelExporter",
14
14
  /** The logger category used by the [IModelImporter]($transformer) class.
15
15
  * @beta
16
16
  */
17
- IModelImporter = "core-backend.IModelImporter",
17
+ IModelImporter = "imodel-transformer.IModelImporter",
18
18
  /** The logger category used by the [IModelTransformer]($transformer) class.
19
19
  * @beta
20
20
  */
21
- IModelTransformer = "core-backend.IModelTransformer",
21
+ IModelTransformer = "imodel-transformer.IModelTransformer",
22
22
  /** The logger category used by the [IModelCloneContext]($transformer) class.
23
23
  * @beta
24
24
  */
25
- IModelCloneContext = "core-backend.IModelCloneContext"
25
+ IModelCloneContext = "imodel-transformer.IModelCloneContext",
26
+ ECReferenceTypesCache = "imodel-transformer.ECReferenceTypesCache"
26
27
  }
27
28
  //# sourceMappingURL=TransformerLoggerCategory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransformerLoggerCategory.d.ts","sourceRoot":"","sources":["../../src/TransformerLoggerCategory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,yBAAyB;IACnC;;OAEG;IACH,cAAc,gCAAgC;IAE9C;;OAEG;IACH,cAAc,gCAAgC;IAE9C;;OAEG;IACH,iBAAiB,mCAAmC;IAEpD;;OAEG;IACH,kBAAkB,oCAAoC;CACvD"}
1
+ {"version":3,"file":"TransformerLoggerCategory.d.ts","sourceRoot":"","sources":["../../src/TransformerLoggerCategory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,yBAAyB;IACnC;;OAEG;IACH,cAAc,sCAAsC;IAEpD;;OAEG;IACH,cAAc,sCAAsC;IAEpD;;OAEG;IACH,iBAAiB,yCAAyC;IAE1D;;OAEG;IACH,kBAAkB,0CAA0C;IAE5D,qBAAqB,6CAA6C;CACnE"}
@@ -9,7 +9,7 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.TransformerLoggerCategory = void 0;
11
11
  /** Logger categories used by this package
12
- * @note All logger categories in this package start with the `core-backend` prefix.
12
+ * @note All logger categories in this package start with the `imodel-transformer` prefix.
13
13
  * @see [Logger]($bentley)
14
14
  * @public
15
15
  */
@@ -18,18 +18,19 @@ var TransformerLoggerCategory;
18
18
  /** The logger category used by the [IModelExporter]($transformer) class.
19
19
  * @beta
20
20
  */
21
- TransformerLoggerCategory["IModelExporter"] = "core-backend.IModelExporter";
21
+ TransformerLoggerCategory["IModelExporter"] = "imodel-transformer.IModelExporter";
22
22
  /** The logger category used by the [IModelImporter]($transformer) class.
23
23
  * @beta
24
24
  */
25
- TransformerLoggerCategory["IModelImporter"] = "core-backend.IModelImporter";
25
+ TransformerLoggerCategory["IModelImporter"] = "imodel-transformer.IModelImporter";
26
26
  /** The logger category used by the [IModelTransformer]($transformer) class.
27
27
  * @beta
28
28
  */
29
- TransformerLoggerCategory["IModelTransformer"] = "core-backend.IModelTransformer";
29
+ TransformerLoggerCategory["IModelTransformer"] = "imodel-transformer.IModelTransformer";
30
30
  /** The logger category used by the [IModelCloneContext]($transformer) class.
31
31
  * @beta
32
32
  */
33
- TransformerLoggerCategory["IModelCloneContext"] = "core-backend.IModelCloneContext";
33
+ TransformerLoggerCategory["IModelCloneContext"] = "imodel-transformer.IModelCloneContext";
34
+ TransformerLoggerCategory["ECReferenceTypesCache"] = "imodel-transformer.ECReferenceTypesCache";
34
35
  })(TransformerLoggerCategory || (exports.TransformerLoggerCategory = TransformerLoggerCategory = {}));
35
36
  //# sourceMappingURL=TransformerLoggerCategory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransformerLoggerCategory.js","sourceRoot":"","sources":["../../src/TransformerLoggerCategory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;;GAIG;AACH,IAAY,yBAoBX;AApBD,WAAY,yBAAyB;IACnC;;OAEG;IACH,2EAA8C,CAAA;IAE9C;;OAEG;IACH,2EAA8C,CAAA;IAE9C;;OAEG;IACH,iFAAoD,CAAA;IAEpD;;OAEG;IACH,mFAAsD,CAAA;AACxD,CAAC,EApBW,yBAAyB,yCAAzB,yBAAyB,QAoBpC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Logging\n */\n\n/** Logger categories used by this package\n * @note All logger categories in this package start with the `core-backend` prefix.\n * @see [Logger]($bentley)\n * @public\n */\nexport enum TransformerLoggerCategory {\n /** The logger category used by the [IModelExporter]($transformer) class.\n * @beta\n */\n IModelExporter = \"core-backend.IModelExporter\",\n\n /** The logger category used by the [IModelImporter]($transformer) class.\n * @beta\n */\n IModelImporter = \"core-backend.IModelImporter\",\n\n /** The logger category used by the [IModelTransformer]($transformer) class.\n * @beta\n */\n IModelTransformer = \"core-backend.IModelTransformer\",\n\n /** The logger category used by the [IModelCloneContext]($transformer) class.\n * @beta\n */\n IModelCloneContext = \"core-backend.IModelCloneContext\",\n}\n"]}
1
+ {"version":3,"file":"TransformerLoggerCategory.js","sourceRoot":"","sources":["../../src/TransformerLoggerCategory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;;GAIG;AACH,IAAY,yBAsBX;AAtBD,WAAY,yBAAyB;IACnC;;OAEG;IACH,iFAAoD,CAAA;IAEpD;;OAEG;IACH,iFAAoD,CAAA;IAEpD;;OAEG;IACH,uFAA0D,CAAA;IAE1D;;OAEG;IACH,yFAA4D,CAAA;IAE5D,+FAAkE,CAAA;AACpE,CAAC,EAtBW,yBAAyB,yCAAzB,yBAAyB,QAsBpC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Logging\n */\n\n/** Logger categories used by this package\n * @note All logger categories in this package start with the `imodel-transformer` prefix.\n * @see [Logger]($bentley)\n * @public\n */\nexport enum TransformerLoggerCategory {\n /** The logger category used by the [IModelExporter]($transformer) class.\n * @beta\n */\n IModelExporter = \"imodel-transformer.IModelExporter\",\n\n /** The logger category used by the [IModelImporter]($transformer) class.\n * @beta\n */\n IModelImporter = \"imodel-transformer.IModelImporter\",\n\n /** The logger category used by the [IModelTransformer]($transformer) class.\n * @beta\n */\n IModelTransformer = \"imodel-transformer.IModelTransformer\",\n\n /** The logger category used by the [IModelCloneContext]($transformer) class.\n * @beta\n */\n IModelCloneContext = \"imodel-transformer.IModelCloneContext\",\n\n ECReferenceTypesCache = \"imodel-transformer.ECReferenceTypesCache\",\n}\n"]}
@@ -27,7 +27,7 @@ const semver = require("semver");
27
27
  const package_json_1 = require("@itwin/core-backend/package.json");
28
28
  // must use an untyped require to not hoist src into lib/cjs, also the compiled output will be in 'lib/cjs', not 'src' so use `../..` to reach package.json
29
29
  const { version: ourVersion, name: ourName, peerDependencies,
30
- // eslint-disable-next-line @typescript-eslint/no-var-requires
30
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
31
31
  } = require("../../package.json");
32
32
  const ourITwinCoreBackendDepRange = peerDependencies["@itwin/core-backend"];
33
33
  const noStrictDepCheckEnvVar = "TRANSFORMER_NO_STRICT_DEP_CHECK";
@@ -48,7 +48,7 @@ if (process.env[noStrictDepCheckEnvVar] !== "1" &&
48
48
  `If you know exactly what you are doing, you can disable this check by setting ${noStrictDepCheckEnvVar}=1 in the environment\n`;
49
49
  if (process.env[suggestEnvVarName]) {
50
50
  // let's not import https except in this case
51
- // eslint-disable-next-line @typescript-eslint/no-var-requires
51
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
52
52
  const https = require("https");
53
53
  https.get(`https://registry.npmjs.org/${ourName}`, async (resp) => {
54
54
  const chunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"imodel-transformer.js","sourceRoot":"","sources":["../../src/imodel-transformer.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nexport * from \"./TransformerLoggerCategory\";\nexport * from \"./IModelExporter\";\nexport * from \"./IModelImporter\";\nexport * from \"./IModelTransformer\";\nexport * from \"./BranchProvenanceInitializer\";\n\nimport * as semver from \"semver\";\nimport { version as iTwinCoreBackendVersion } from \"@itwin/core-backend/package.json\";\n\n// must use an untyped require to not hoist src into lib/cjs, also the compiled output will be in 'lib/cjs', not 'src' so use `../..` to reach package.json\nconst {\n version: ourVersion,\n name: ourName,\n peerDependencies,\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n} = require(\"../../package.json\");\n\nconst ourITwinCoreBackendDepRange = peerDependencies[\"@itwin/core-backend\"];\n\nconst noStrictDepCheckEnvVar = \"TRANSFORMER_NO_STRICT_DEP_CHECK\";\nconst suggestEnvVarName = \"SUGGEST_TRANSFORMER_VERSIONS\";\n\n// warn if using a prerelease or dev version\nif (semver.prerelease(iTwinCoreBackendVersion)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Warning: dev version detected (${iTwinCoreBackendVersion}). ` +\n \"This version is most likely fine, but it may introduce new behavior that could cause \" +\n \"unexpected issues or changes in the transformer's functionality. Please proceed with caution.\"\n );\n}\n\nif (\n process.env[noStrictDepCheckEnvVar] !== \"1\" &&\n !semver.satisfies(iTwinCoreBackendVersion, ourITwinCoreBackendDepRange, {\n includePrerelease: true,\n })\n) {\n const errHeader =\n `${ourName}@${ourVersion} only supports @itwin/core-backend@${ourITwinCoreBackendDepRange}, ` +\n `but @itwin/core-backend${iTwinCoreBackendVersion} was resolved when looking for the peer dependency.\\n` +\n `If you know exactly what you are doing, you can disable this check by setting ${noStrictDepCheckEnvVar}=1 in the environment\\n`;\n\n if (process.env[suggestEnvVarName]) {\n // let's not import https except in this case\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const https = require(\"https\") as typeof import(\"https\");\n https.get(`https://registry.npmjs.org/${ourName}`, async (resp) => {\n const chunks: string[] = [];\n const packumentSrc = await new Promise<string>((r) =>\n resp\n .setEncoding(\"utf8\")\n .on(\"data\", (d) => chunks.push(d))\n .on(\"end\", () => r(chunks.join(\"\")))\n );\n interface PackumentSubset {\n versions: Record<\n string,\n {\n peerDependencies?: {\n \"@itwin/core-backend\": string; // eslint-disable-line @typescript-eslint/naming-convention\n };\n }\n >;\n }\n\n const packumentJson = JSON.parse(packumentSrc) as PackumentSubset;\n const isTaglessVersion = (version: string) => version.includes(\"-\");\n const latestFirstApplicableVersions = Object.entries(\n packumentJson.versions\n )\n .filter(([, v]) =>\n semver.satisfies(\n iTwinCoreBackendVersion,\n v.peerDependencies?.[\"@itwin/core-backend\"] ?? \"\"\n )\n )\n .map(([k]) => k)\n .filter(isTaglessVersion)\n .reverse();\n\n throw Error(\n [\n errHeader,\n `You have ${suggestEnvVarName}=1 set in the environment, so we suggest one of the following versions.`,\n \"Be aware that older versions may be missing bug fixes.\",\n ...latestFirstApplicableVersions,\n ].join(\"\\n\")\n );\n });\n } else {\n throw Error(\n `${errHeader}You can rerun with the environment variable ${suggestEnvVarName}=1 to have this error suggest a version`\n );\n }\n}\n\n/** @docs-package-description\n * The @itwin/imodel-transformer package contains classes that [backend code]($docs/learning/backend/index.md) can use to\n * traverse iModels, as well as *transform* an iModel into another existing or empty one, by exporting elements from one during\n * traversal and importing them into another.\n *\n * You can read further in [iModelTransformation and Data Exchange]($docs/learning/transformer/index.md) here.\n */\n/**\n * @docs-group-description iModels\n * Classes for working with [iModels]($docs/learning/iModels.md).\n * See [the learning article]($docs/learning/backend/index.md).\n */\n/**\n * @docs-group-description Utils\n * Miscellaneous utility classes.\n */\n/**\n * @docs-group-description Logging\n * Logger categories used by this package.\n */\n"]}
1
+ {"version":3,"file":"imodel-transformer.js","sourceRoot":"","sources":["../../src/imodel-transformer.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nexport * from \"./TransformerLoggerCategory\";\nexport * from \"./IModelExporter\";\nexport * from \"./IModelImporter\";\nexport * from \"./IModelTransformer\";\nexport * from \"./BranchProvenanceInitializer\";\n\nimport * as semver from \"semver\";\nimport { version as iTwinCoreBackendVersion } from \"@itwin/core-backend/package.json\";\n\n// must use an untyped require to not hoist src into lib/cjs, also the compiled output will be in 'lib/cjs', not 'src' so use `../..` to reach package.json\nconst {\n version: ourVersion,\n name: ourName,\n peerDependencies,\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n} = require(\"../../package.json\");\n\nconst ourITwinCoreBackendDepRange = peerDependencies[\"@itwin/core-backend\"];\n\nconst noStrictDepCheckEnvVar = \"TRANSFORMER_NO_STRICT_DEP_CHECK\";\nconst suggestEnvVarName = \"SUGGEST_TRANSFORMER_VERSIONS\";\n\n// warn if using a prerelease or dev version\nif (semver.prerelease(iTwinCoreBackendVersion)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Warning: dev version detected (${iTwinCoreBackendVersion}). ` +\n \"This version is most likely fine, but it may introduce new behavior that could cause \" +\n \"unexpected issues or changes in the transformer's functionality. Please proceed with caution.\"\n );\n}\n\nif (\n process.env[noStrictDepCheckEnvVar] !== \"1\" &&\n !semver.satisfies(iTwinCoreBackendVersion, ourITwinCoreBackendDepRange, {\n includePrerelease: true,\n })\n) {\n const errHeader =\n `${ourName}@${ourVersion} only supports @itwin/core-backend@${ourITwinCoreBackendDepRange}, ` +\n `but @itwin/core-backend${iTwinCoreBackendVersion} was resolved when looking for the peer dependency.\\n` +\n `If you know exactly what you are doing, you can disable this check by setting ${noStrictDepCheckEnvVar}=1 in the environment\\n`;\n\n if (process.env[suggestEnvVarName]) {\n // let's not import https except in this case\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n const https = require(\"https\") as typeof import(\"https\");\n https.get(`https://registry.npmjs.org/${ourName}`, async (resp) => {\n const chunks: string[] = [];\n const packumentSrc = await new Promise<string>((r) =>\n resp\n .setEncoding(\"utf8\")\n .on(\"data\", (d) => chunks.push(d))\n .on(\"end\", () => r(chunks.join(\"\")))\n );\n interface PackumentSubset {\n versions: Record<\n string,\n {\n peerDependencies?: {\n \"@itwin/core-backend\": string; // eslint-disable-line @typescript-eslint/naming-convention\n };\n }\n >;\n }\n\n const packumentJson = JSON.parse(packumentSrc) as PackumentSubset;\n const isTaglessVersion = (version: string) => version.includes(\"-\");\n const latestFirstApplicableVersions = Object.entries(\n packumentJson.versions\n )\n .filter(([, v]) =>\n semver.satisfies(\n iTwinCoreBackendVersion,\n v.peerDependencies?.[\"@itwin/core-backend\"] ?? \"\"\n )\n )\n .map(([k]) => k)\n .filter(isTaglessVersion)\n .reverse();\n\n throw Error(\n [\n errHeader,\n `You have ${suggestEnvVarName}=1 set in the environment, so we suggest one of the following versions.`,\n \"Be aware that older versions may be missing bug fixes.\",\n ...latestFirstApplicableVersions,\n ].join(\"\\n\")\n );\n });\n } else {\n throw Error(\n `${errHeader}You can rerun with the environment variable ${suggestEnvVarName}=1 to have this error suggest a version`\n );\n }\n}\n\n/** @docs-package-description\n * The @itwin/imodel-transformer package contains classes that [backend code]($docs/learning/backend/index.md) can use to\n * traverse iModels, as well as *transform* an iModel into another existing or empty one, by exporting elements from one during\n * traversal and importing them into another.\n *\n * You can read further in [iModelTransformation and Data Exchange]($docs/learning/transformer/index.md) here.\n */\n/**\n * @docs-group-description iModels\n * Classes for working with [iModels]($docs/learning/iModels.md).\n * See [the learning article]($docs/learning/backend/index.md).\n */\n/**\n * @docs-group-description Utils\n * Miscellaneous utility classes.\n */\n/**\n * @docs-group-description Logging\n * Logger categories used by this package.\n */\n"]}
package/package.json CHANGED
@@ -1,16 +1,15 @@
1
1
  {
2
2
  "name": "@itwin/imodel-transformer",
3
- "version": "2.0.0-dev.2",
3
+ "version": "2.0.0-dev.4",
4
4
  "description": "API for exporting an iModel's parts and also importing them into another iModel",
5
5
  "main": "lib/cjs/imodel-transformer.js",
6
6
  "typings": "lib/cjs/imodel-transformer",
7
7
  "license": "MIT",
8
8
  "engines": {
9
- "node": "^20.18.0"
9
+ "node": "^22.12.0"
10
10
  },
11
11
  "scripts": {
12
- "build": "npm run -s build:cjs && npm run -s copy:test-assets",
13
- "build:ci": "npm run -s build",
12
+ "build": "npm run -s build:cjs && npm run -s copy:test-assets && npm run -s extract-api",
14
13
  "build:cjs": "tsc 1>&2 --outDir lib/cjs",
15
14
  "clean": "rimraf lib",
16
15
  "docs": "npm run -s docs:extract && npm run -s docs:reference && npm run -s docs:changelog",
@@ -54,52 +53,53 @@
54
53
  "You can find a script to see the latest @itwin/imodel-transformer version for your iTwin.js version in the README"
55
54
  ],
56
55
  "peerDependencies": {
57
- "@itwin/core-backend": "^5.0.0",
58
- "@itwin/core-bentley": "^5.0.0",
59
- "@itwin/core-common": "^5.0.0",
60
- "@itwin/core-geometry": "^5.0.0",
61
- "@itwin/core-quantity": "^5.0.0",
62
- "@itwin/ecschema-metadata": "^5.0.0"
56
+ "@itwin/core-backend": "^5.2.4",
57
+ "@itwin/core-bentley": "^5.2.4",
58
+ "@itwin/core-common": "^5.2.4",
59
+ "@itwin/core-geometry": "^5.2.4",
60
+ "@itwin/core-quantity": "^5.2.4",
61
+ "@itwin/ecschema-metadata": "^5.2.4"
63
62
  },
64
63
  "//devDependencies": [
65
64
  "NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
66
65
  "NOTE: All tools used by scripts in this package must be listed as devDependencies"
67
66
  ],
68
67
  "devDependencies": {
69
- "@itwin/build-tools": "^5.0.0",
70
- "@itwin/core-backend": "^5.0.0",
71
- "@itwin/core-bentley": "^5.0.0",
72
- "@itwin/core-common": "^5.0.0",
73
- "@itwin/core-geometry": "^5.0.0",
74
- "@itwin/core-quantity": "^5.0.0",
75
- "@itwin/ecschema-metadata": "^5.0.0",
76
- "@itwin/ecschema-locaters": "^5.0.0",
68
+ "@itwin/build-tools": "^5.2.4",
69
+ "@itwin/core-backend": "^5.2.4",
70
+ "@itwin/core-bentley": "^5.2.4",
71
+ "@itwin/core-common": "^5.2.4",
72
+ "@itwin/core-geometry": "^5.2.4",
73
+ "@itwin/core-quantity": "^5.2.4",
74
+ "@itwin/ecschema-locaters": "^5.2.4",
75
+ "@itwin/ecschema-metadata": "^5.2.4",
77
76
  "@itwin/eslint-plugin": "^5.2.1",
78
- "@types/chai": "4.3.1",
79
- "@types/chai-as-promised": "^7.1.5",
77
+ "@types/chai": "^4.3.20",
78
+ "@types/chai-as-promised": "^7.1.8",
80
79
  "@types/mocha": "^8.2.3",
81
- "@types/node": "^18.16.14",
82
- "@types/node-fetch": "2.6.11",
83
- "@types/semver": "7.3.10",
80
+ "@types/node": "^22.18.8",
81
+ "@types/node-fetch": "^2.6.13",
82
+ "@types/semver": "^7.7.1",
84
83
  "@types/sinon": "^9.0.11",
85
- "chai": "^4.3.7",
86
- "chai-as-promised": "^7.1.1",
84
+ "@typescript-eslint/parser": "^8.45.0",
85
+ "chai": "^4.5.0",
86
+ "chai-as-promised": "^7.1.2",
87
87
  "cpx2": "^3.0.2",
88
88
  "cross-env": "^5.2.1",
89
- "eslint": "^9.11.1",
90
- "eslint-config-prettier": "^9.1.0",
91
- "prettier": "^3.1.1",
92
- "js-base64": "^3.7.5",
93
- "mocha": "^10.2.0",
89
+ "eslint": "^9.36.0",
90
+ "eslint-config-prettier": "^9.1.2",
91
+ "js-base64": "^3.7.8",
92
+ "mocha": "^10.8.2",
94
93
  "npm-run-all": "^4.1.5",
95
94
  "nyc": "^15.1.0",
95
+ "prettier": "^3.6.2",
96
96
  "rimraf": "^3.0.2",
97
97
  "sinon": "^9.2.4",
98
98
  "source-map-support": "^0.5.21",
99
- "typescript": "^5.6.2"
99
+ "typescript": "^5.9.3"
100
100
  },
101
101
  "dependencies": {
102
- "semver": "^7.5.1"
102
+ "semver": "^7.7.2"
103
103
  },
104
104
  "nyc": {
105
105
  "extends": "./node_modules/@itwin/build-tools/.nycrc"