@itwin/core-common 5.12.0-dev.8 → 5.13.0-dev.1
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.
- package/CHANGELOG.md +11 -1
- package/lib/cjs/ConcurrentQuery.d.ts +14 -1
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +28 -6
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/core-common.d.ts +2 -0
- package/lib/cjs/core-common.d.ts.map +1 -1
- package/lib/cjs/core-common.js +2 -0
- package/lib/cjs/core-common.js.map +1 -1
- package/lib/cjs/ipc/IpcErrors.d.ts +34 -0
- package/lib/cjs/ipc/IpcErrors.d.ts.map +1 -0
- package/lib/cjs/ipc/IpcErrors.js +167 -0
- package/lib/cjs/ipc/IpcErrors.js.map +1 -0
- package/lib/cjs/ipc/IpcInvoke.d.ts +44 -0
- package/lib/cjs/ipc/IpcInvoke.d.ts.map +1 -0
- package/lib/cjs/ipc/IpcInvoke.js +83 -0
- package/lib/cjs/ipc/IpcInvoke.js.map +1 -0
- package/lib/esm/ConcurrentQuery.d.ts +14 -1
- package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
- package/lib/esm/ConcurrentQuery.js +28 -6
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/core-common.d.ts +2 -0
- package/lib/esm/core-common.d.ts.map +1 -1
- package/lib/esm/core-common.js +2 -0
- package/lib/esm/core-common.js.map +1 -1
- package/lib/esm/ipc/IpcErrors.d.ts +34 -0
- package/lib/esm/ipc/IpcErrors.d.ts.map +1 -0
- package/lib/esm/ipc/IpcErrors.js +163 -0
- package/lib/esm/ipc/IpcErrors.js.map +1 -0
- package/lib/esm/ipc/IpcInvoke.d.ts +44 -0
- package/lib/esm/ipc/IpcInvoke.d.ts.map +1 -0
- package/lib/esm/ipc/IpcInvoke.js +78 -0
- package/lib/esm/ipc/IpcInvoke.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module IpcSocket
|
|
3
|
+
*/
|
|
4
|
+
import { LoggingMetaData, PickAsyncMethods } from "@itwin/core-bentley";
|
|
5
|
+
import { IpcInvokeReturn } from "./IpcSocket";
|
|
6
|
+
/**
|
|
7
|
+
* Unwrap an [[IpcInvokeReturn]] produced by an Ipc handler: return its `result` on success, or rethrow the
|
|
8
|
+
* serialized `error` on failure (rebuilt via [[rebuildIpcError]]; non-object values are rethrown as-is).
|
|
9
|
+
*
|
|
10
|
+
* Shared by both Ipc directions. By default the error is rebuilt as a plain `Error` following the `ITwinError`
|
|
11
|
+
* paradigm (identify via [ITwinError.isError]($bentley)); the backend (`IpcHost`) uses this. A caller may pass
|
|
12
|
+
* `typedErrorClass` to rebuild a legacy typed error instead — the frontend (`IpcApp`) passes [BackendError]($common)
|
|
13
|
+
* to preserve `instanceof BackendError` for existing consumers.
|
|
14
|
+
* @param retVal The [[IpcInvokeReturn]] returned by the remote handler.
|
|
15
|
+
* @param typedErrorClass Optional constructor for a legacy typed error to build when the serialized error carries
|
|
16
|
+
* `BentleyError` identity (e.g. [BackendError]($common) on the frontend). Omit it for the ITwinError paradigm.
|
|
17
|
+
* @returns The handler's `result` value, typed as `T` (defaults to `unknown`, so untyped callers must narrow).
|
|
18
|
+
* @throws The reconstructed error when `retVal` carries an `error`.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function unwrapIpcInvokeReturn<T = unknown>(retVal: IpcInvokeReturn, typedErrorClass?: new (errorNumber: number, name: string, message: string, getMetaData?: LoggingMetaData) => Error): T;
|
|
22
|
+
/**
|
|
23
|
+
* Create a type-safe `Proxy` that routes every method access to `call`, forwarding the accessed method name and
|
|
24
|
+
* its arguments. Shared by the frontend (`IpcApp.makeIpcProxy`) and backend (`IpcHost.makeIpcProxy`) so both build
|
|
25
|
+
* their remote-interface proxies identically; each supplies a `call` bound to its own `callIpcChannel`.
|
|
26
|
+
* @param call Invoked with the accessed method name followed by the call arguments.
|
|
27
|
+
* @returns A `Proxy` exposing `K`'s async methods.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare function createIpcProxy<K>(call: (methodName: string, ...args: any[]) => Promise<any>): PickAsyncMethods<K>;
|
|
31
|
+
/**
|
|
32
|
+
* Create the handler that an `IpcHandler` registers on its channel: it looks up `funcName` on `impl`, invokes it
|
|
33
|
+
* with `args`, and packages the outcome as an [[IpcInvokeReturn]] (`{ result }` on success, or a serialized `error`
|
|
34
|
+
* via [[serializeIpcError]] on failure). Shared by the frontend and backend `IpcHandler.register` implementations
|
|
35
|
+
* so method dispatch and error packaging behave identically in both directions.
|
|
36
|
+
* @param impl The handler instance whose methods are exposed over the channel.
|
|
37
|
+
* @param channelName The channel `impl` is registered on, used for diagnostic messages.
|
|
38
|
+
* @param includeStack Whether to include `Error.stack` in serialized errors, or a function evaluated per
|
|
39
|
+
* invocation to decide (the backend omits stacks when [[IpcHost.noStack]] is set, which can change at runtime).
|
|
40
|
+
* @returns An async dispatcher `(funcName, ...args) => Promise<IpcInvokeReturn>`.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export declare function createIpcDispatcher(impl: object, channelName: string, includeStack: boolean | (() => boolean)): (funcName: string, ...args: any[]) => Promise<IpcInvokeReturn>;
|
|
44
|
+
//# sourceMappingURL=IpcInvoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpcInvoke.d.ts","sourceRoot":"","sources":["../../../src/ipc/IpcInvoke.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAA2B,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGjG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAC/C,MAAM,EAAE,eAAe,EACvB,eAAe,CAAC,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,KAAK,KAAK,GACjH,CAAC,CAUH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAMjH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,GACtC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAiBhE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/** @packageDocumentation
|
|
6
|
+
* @module IpcSocket
|
|
7
|
+
*/
|
|
8
|
+
import { IModelStatus, JsonUtils } from "@itwin/core-bentley";
|
|
9
|
+
import { IModelError } from "../IModelError";
|
|
10
|
+
import { rebuildIpcError, serializeIpcError } from "./IpcErrors";
|
|
11
|
+
/**
|
|
12
|
+
* Unwrap an [[IpcInvokeReturn]] produced by an Ipc handler: return its `result` on success, or rethrow the
|
|
13
|
+
* serialized `error` on failure (rebuilt via [[rebuildIpcError]]; non-object values are rethrown as-is).
|
|
14
|
+
*
|
|
15
|
+
* Shared by both Ipc directions. By default the error is rebuilt as a plain `Error` following the `ITwinError`
|
|
16
|
+
* paradigm (identify via [ITwinError.isError]($bentley)); the backend (`IpcHost`) uses this. A caller may pass
|
|
17
|
+
* `typedErrorClass` to rebuild a legacy typed error instead — the frontend (`IpcApp`) passes [BackendError]($common)
|
|
18
|
+
* to preserve `instanceof BackendError` for existing consumers.
|
|
19
|
+
* @param retVal The [[IpcInvokeReturn]] returned by the remote handler.
|
|
20
|
+
* @param typedErrorClass Optional constructor for a legacy typed error to build when the serialized error carries
|
|
21
|
+
* `BentleyError` identity (e.g. [BackendError]($common) on the frontend). Omit it for the ITwinError paradigm.
|
|
22
|
+
* @returns The handler's `result` value, typed as `T` (defaults to `unknown`, so untyped callers must narrow).
|
|
23
|
+
* @throws The reconstructed error when `retVal` carries an `error`.
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export function unwrapIpcInvokeReturn(retVal, typedErrorClass) {
|
|
27
|
+
if (retVal.error === undefined)
|
|
28
|
+
return retVal.result; // method was successful
|
|
29
|
+
// remote handler threw an exception, rethrow one on this side
|
|
30
|
+
const err = retVal.error;
|
|
31
|
+
if (!JsonUtils.isObject(err)) // exception wasn't an object?
|
|
32
|
+
throw retVal.error; // eslint-disable-line @typescript-eslint/only-throw-error
|
|
33
|
+
throw rebuildIpcError(err, typedErrorClass);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a type-safe `Proxy` that routes every method access to `call`, forwarding the accessed method name and
|
|
37
|
+
* its arguments. Shared by the frontend (`IpcApp.makeIpcProxy`) and backend (`IpcHost.makeIpcProxy`) so both build
|
|
38
|
+
* their remote-interface proxies identically; each supplies a `call` bound to its own `callIpcChannel`.
|
|
39
|
+
* @param call Invoked with the accessed method name followed by the call arguments.
|
|
40
|
+
* @returns A `Proxy` exposing `K`'s async methods.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export function createIpcProxy(call) {
|
|
44
|
+
return new Proxy({}, {
|
|
45
|
+
get(_target, methodName) {
|
|
46
|
+
return async (...args) => call(methodName, ...args);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create the handler that an `IpcHandler` registers on its channel: it looks up `funcName` on `impl`, invokes it
|
|
52
|
+
* with `args`, and packages the outcome as an [[IpcInvokeReturn]] (`{ result }` on success, or a serialized `error`
|
|
53
|
+
* via [[serializeIpcError]] on failure). Shared by the frontend and backend `IpcHandler.register` implementations
|
|
54
|
+
* so method dispatch and error packaging behave identically in both directions.
|
|
55
|
+
* @param impl The handler instance whose methods are exposed over the channel.
|
|
56
|
+
* @param channelName The channel `impl` is registered on, used for diagnostic messages.
|
|
57
|
+
* @param includeStack Whether to include `Error.stack` in serialized errors, or a function evaluated per
|
|
58
|
+
* invocation to decide (the backend omits stacks when [[IpcHost.noStack]] is set, which can change at runtime).
|
|
59
|
+
* @returns An async dispatcher `(funcName, ...args) => Promise<IpcInvokeReturn>`.
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export function createIpcDispatcher(impl, channelName, includeStack) {
|
|
63
|
+
const prohibitedFunctions = Object.getOwnPropertyNames(Object.getPrototypeOf({}));
|
|
64
|
+
return async (funcName, ...args) => {
|
|
65
|
+
try {
|
|
66
|
+
if (prohibitedFunctions.includes(funcName))
|
|
67
|
+
throw new Error(`Method "${funcName}" not available for channel: ${channelName}`);
|
|
68
|
+
const func = impl[funcName];
|
|
69
|
+
if (typeof func !== "function")
|
|
70
|
+
throw new IModelError(IModelStatus.FunctionNotFound, `Method "${impl.constructor.name}.${funcName}" not found on IpcHandler registered for channel: ${channelName}`);
|
|
71
|
+
return { result: await func.call(impl, ...args) };
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
return serializeIpcError(err, typeof includeStack === "function" ? includeStack() : includeStack);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=IpcInvoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpcInvoke.js","sourceRoot":"","sources":["../../../src/ipc/IpcInvoke.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAqC,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,eAAkH;IAElH,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,MAAM,CAAC,MAAW,CAAC,CAAC,wBAAwB;IAErD,8DAA8D;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,8BAA8B;QAC1D,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,0DAA0D;IAEhF,MAAM,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAI,IAA0D;IAC1F,OAAO,IAAI,KAAK,CAAC,EAAyB,EAAE;QAC1C,GAAG,CAAC,OAAO,EAAE,UAAkB;YAC7B,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,WAAmB,EACnB,YAAuC;IAEvC,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO,KAAK,EAAE,QAAgB,EAAE,GAAG,IAAW,EAA4B,EAAE;QAC1E,IAAI,CAAC;YACH,IAAI,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,gCAAgC,WAAW,EAAE,CAAC,CAAC;YAEpF,MAAM,IAAI,GAAI,IAAY,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,OAAO,IAAI,KAAK,UAAU;gBAC5B,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,gBAAgB,EAAE,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,QAAQ,qDAAqD,WAAW,EAAE,CAAC,CAAC;YAEvK,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,iBAAiB,CAAC,GAAG,EAAE,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACpG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","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 IpcSocket\n */\n\nimport { IModelStatus, JsonUtils, LoggingMetaData, PickAsyncMethods } from \"@itwin/core-bentley\";\nimport { IModelError } from \"../IModelError\";\nimport { rebuildIpcError, serializeIpcError } from \"./IpcErrors\";\nimport { IpcInvokeReturn } from \"./IpcSocket\";\n\n/**\n * Unwrap an [[IpcInvokeReturn]] produced by an Ipc handler: return its `result` on success, or rethrow the\n * serialized `error` on failure (rebuilt via [[rebuildIpcError]]; non-object values are rethrown as-is).\n *\n * Shared by both Ipc directions. By default the error is rebuilt as a plain `Error` following the `ITwinError`\n * paradigm (identify via [ITwinError.isError]($bentley)); the backend (`IpcHost`) uses this. A caller may pass\n * `typedErrorClass` to rebuild a legacy typed error instead — the frontend (`IpcApp`) passes [BackendError]($common)\n * to preserve `instanceof BackendError` for existing consumers.\n * @param retVal The [[IpcInvokeReturn]] returned by the remote handler.\n * @param typedErrorClass Optional constructor for a legacy typed error to build when the serialized error carries\n * `BentleyError` identity (e.g. [BackendError]($common) on the frontend). Omit it for the ITwinError paradigm.\n * @returns The handler's `result` value, typed as `T` (defaults to `unknown`, so untyped callers must narrow).\n * @throws The reconstructed error when `retVal` carries an `error`.\n * @internal\n */\nexport function unwrapIpcInvokeReturn<T = unknown>(\n retVal: IpcInvokeReturn,\n typedErrorClass?: new (errorNumber: number, name: string, message: string, getMetaData?: LoggingMetaData) => Error,\n): T {\n if (retVal.error === undefined)\n return retVal.result as T; // method was successful\n\n // remote handler threw an exception, rethrow one on this side\n const err = retVal.error;\n if (!JsonUtils.isObject(err)) // exception wasn't an object?\n throw retVal.error; // eslint-disable-line @typescript-eslint/only-throw-error\n\n throw rebuildIpcError(err, typedErrorClass);\n}\n\n/**\n * Create a type-safe `Proxy` that routes every method access to `call`, forwarding the accessed method name and\n * its arguments. Shared by the frontend (`IpcApp.makeIpcProxy`) and backend (`IpcHost.makeIpcProxy`) so both build\n * their remote-interface proxies identically; each supplies a `call` bound to its own `callIpcChannel`.\n * @param call Invoked with the accessed method name followed by the call arguments.\n * @returns A `Proxy` exposing `K`'s async methods.\n * @internal\n */\nexport function createIpcProxy<K>(call: (methodName: string, ...args: any[]) => Promise<any>): PickAsyncMethods<K> {\n return new Proxy({} as PickAsyncMethods<K>, {\n get(_target, methodName: string) {\n return async (...args: any[]) => call(methodName, ...args);\n },\n });\n}\n\n/**\n * Create the handler that an `IpcHandler` registers on its channel: it looks up `funcName` on `impl`, invokes it\n * with `args`, and packages the outcome as an [[IpcInvokeReturn]] (`{ result }` on success, or a serialized `error`\n * via [[serializeIpcError]] on failure). Shared by the frontend and backend `IpcHandler.register` implementations\n * so method dispatch and error packaging behave identically in both directions.\n * @param impl The handler instance whose methods are exposed over the channel.\n * @param channelName The channel `impl` is registered on, used for diagnostic messages.\n * @param includeStack Whether to include `Error.stack` in serialized errors, or a function evaluated per\n * invocation to decide (the backend omits stacks when [[IpcHost.noStack]] is set, which can change at runtime).\n * @returns An async dispatcher `(funcName, ...args) => Promise<IpcInvokeReturn>`.\n * @internal\n */\nexport function createIpcDispatcher(\n impl: object,\n channelName: string,\n includeStack: boolean | (() => boolean),\n): (funcName: string, ...args: any[]) => Promise<IpcInvokeReturn> {\n const prohibitedFunctions = Object.getOwnPropertyNames(Object.getPrototypeOf({}));\n\n return async (funcName: string, ...args: any[]): Promise<IpcInvokeReturn> => {\n try {\n if (prohibitedFunctions.includes(funcName))\n throw new Error(`Method \"${funcName}\" not available for channel: ${channelName}`);\n\n const func = (impl as any)[funcName];\n if (typeof func !== \"function\")\n throw new IModelError(IModelStatus.FunctionNotFound, `Method \"${impl.constructor.name}.${funcName}\" not found on IpcHandler registered for channel: ${channelName}`);\n\n return { result: await func.call(impl, ...args) };\n } catch (err: unknown) {\n return serializeIpcError(err, typeof includeStack === \"function\" ? includeStack() : includeStack);\n }\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-common",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.13.0-dev.1",
|
|
4
4
|
"description": "iTwin.js components common to frontend and backend",
|
|
5
5
|
"main": "lib/cjs/core-common.js",
|
|
6
6
|
"module": "lib/esm/core-common.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"js-base64": "^3.6.1"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@itwin/core-bentley": "5.
|
|
31
|
-
"@itwin/core-geometry": "5.
|
|
30
|
+
"@itwin/core-bentley": "5.13.0-dev.1",
|
|
31
|
+
"@itwin/core-geometry": "5.13.0-dev.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@itwin/eslint-plugin": "^6.0.0",
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
"@types/chai": "4.3.1",
|
|
37
37
|
"@types/flatbuffers": "~1.10.0",
|
|
38
38
|
"@types/node": "~20.17.0",
|
|
39
|
-
"@vitest/coverage-v8": "^4.1.
|
|
39
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
40
40
|
"eslint": "^9.31.0",
|
|
41
41
|
"nyc": "^17.1.0",
|
|
42
42
|
"rimraf": "^6.0.1",
|
|
43
43
|
"typescript": "~5.6.2",
|
|
44
|
-
"vitest": "^4.1.
|
|
45
|
-
"@itwin/build-tools": "5.
|
|
46
|
-
"@itwin/core-
|
|
47
|
-
"@itwin/core-
|
|
44
|
+
"vitest": "^4.1.10",
|
|
45
|
+
"@itwin/build-tools": "5.13.0-dev.1",
|
|
46
|
+
"@itwin/core-geometry": "5.13.0-dev.1",
|
|
47
|
+
"@itwin/core-bentley": "5.13.0-dev.1"
|
|
48
48
|
},
|
|
49
49
|
"nyc": {
|
|
50
50
|
"extends": "./node_modules/@itwin/build-tools/.nycrc",
|