@irsdk-node/native 5.1.0 → 5.2.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/binding.gyp +5 -13
- package/dist/cjs/index.cjs +24 -9
- package/dist/esm/index.js +23 -9
- package/dist/types/INativeSDK.d.ts +11 -0
- package/dist/types/MockSdk.d.ts +4 -1
- package/dist/types/index.d.ts +1 -0
- package/install.js +4 -0
- package/lib/irsdk_node.cpp +533 -0
- package/lib/irsdk_node.h +93 -36
- package/lib/logger.cpp +68 -0
- package/lib/logger.h +57 -0
- package/lib/root.cpp +11 -0
- package/package.json +6 -6
- package/prebuilds/@irsdk-node+native.node +0 -0
- package/lib/irsdk_node.cc +0 -457
- package/lib/irsdk_node_mocked.cc +0 -226
- package/prebuilds/darwin-arm64/@irsdk-node+native.node +0 -0
- package/prebuilds/linux-x64/@irsdk-node+native.node +0 -0
- package/prebuilds/win32-x64/@irsdk-node+native.node +0 -0
package/binding.gyp
CHANGED
|
@@ -3,19 +3,11 @@
|
|
|
3
3
|
{
|
|
4
4
|
"target_name": "irsdk_node",
|
|
5
5
|
"sources": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"lib/irsdk_node.cc",
|
|
12
|
-
"lib/irsdk_utils.cpp",
|
|
13
|
-
"lib/irsdk_defines.h"
|
|
14
|
-
]
|
|
15
|
-
}],
|
|
16
|
-
["OS!='win'", {
|
|
17
|
-
"sources": ["lib/irsdk_node_mocked.cc"]
|
|
18
|
-
}]
|
|
6
|
+
"lib/root.cpp",
|
|
7
|
+
"lib/logger.cpp",
|
|
8
|
+
"lib/irsdk_node.cpp",
|
|
9
|
+
"lib/irsdk_utils.cpp",
|
|
10
|
+
"lib/irsdk_defines.h"
|
|
19
11
|
],
|
|
20
12
|
"defines": [
|
|
21
13
|
"NAPI_DISABLE_CPP_EXCEPTIONS",
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -9336,6 +9336,7 @@ var require_telemetry = __commonJS({
|
|
|
9336
9336
|
// src/index.ts
|
|
9337
9337
|
var index_exports = {};
|
|
9338
9338
|
__export(index_exports, {
|
|
9339
|
+
LogLevel: () => LogLevel,
|
|
9339
9340
|
NativeSDK: () => NativeSDK,
|
|
9340
9341
|
sdkIsMocked: () => sdkIsMocked
|
|
9341
9342
|
});
|
|
@@ -9351,6 +9352,16 @@ var import_node_gyp_build = __toESM(require("node-gyp-build"), 1);
|
|
|
9351
9352
|
// src/MockSdk.ts
|
|
9352
9353
|
var import_node_console = require("node:console");
|
|
9353
9354
|
|
|
9355
|
+
// src/INativeSDK.ts
|
|
9356
|
+
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
9357
|
+
LogLevel2[LogLevel2["None"] = 0] = "None";
|
|
9358
|
+
LogLevel2[LogLevel2["Error"] = 1] = "Error";
|
|
9359
|
+
LogLevel2[LogLevel2["Warn"] = 2] = "Warn";
|
|
9360
|
+
LogLevel2[LogLevel2["Info"] = 3] = "Info";
|
|
9361
|
+
LogLevel2[LogLevel2["Debug"] = 4] = "Debug";
|
|
9362
|
+
return LogLevel2;
|
|
9363
|
+
})(LogLevel || {});
|
|
9364
|
+
|
|
9354
9365
|
// src/mock-data/loader.ts
|
|
9355
9366
|
var import_js_yaml = require("js-yaml");
|
|
9356
9367
|
var loadMockSessionData = async () => {
|
|
@@ -9369,6 +9380,7 @@ var MockSDK = class {
|
|
|
9369
9380
|
currDataVersion = 1;
|
|
9370
9381
|
isMocked = true;
|
|
9371
9382
|
enableLogging = false;
|
|
9383
|
+
logLevel = 0 /* None */;
|
|
9372
9384
|
_isRunning = false;
|
|
9373
9385
|
constructor() {
|
|
9374
9386
|
this._loadMockData().catch((reason) => {
|
|
@@ -9398,14 +9410,21 @@ var MockSDK = class {
|
|
|
9398
9410
|
return this._isRunning;
|
|
9399
9411
|
}
|
|
9400
9412
|
waitForData(_timeout) {
|
|
9401
|
-
|
|
9413
|
+
const dataNotReady = !mockSession || !mockTelemetry;
|
|
9414
|
+
return this._isRunning && !dataNotReady;
|
|
9402
9415
|
}
|
|
9403
9416
|
getSessionData() {
|
|
9404
9417
|
return mockSession ?? "";
|
|
9405
9418
|
}
|
|
9419
|
+
getSessionConnectionID() {
|
|
9420
|
+
return mockSession ? 1 : -1;
|
|
9421
|
+
}
|
|
9422
|
+
getSessionVersionNum() {
|
|
9423
|
+
return mockSession ? 1 : -1;
|
|
9424
|
+
}
|
|
9406
9425
|
getTelemetryData() {
|
|
9407
9426
|
if (!mockTelemetry) {
|
|
9408
|
-
|
|
9427
|
+
return {};
|
|
9409
9428
|
}
|
|
9410
9429
|
return mockTelemetry;
|
|
9411
9430
|
}
|
|
@@ -9430,16 +9449,11 @@ var MockSDK = class {
|
|
|
9430
9449
|
// src/index.ts
|
|
9431
9450
|
var DIR_NAME = getDirname();
|
|
9432
9451
|
var sdkBinding;
|
|
9433
|
-
var isMocked;
|
|
9452
|
+
var isMocked = false;
|
|
9434
9453
|
try {
|
|
9435
9454
|
const rootDir = (0, import_node_path.join)(DIR_NAME, "../..");
|
|
9436
9455
|
const binding = (0, import_node_gyp_build.default)(rootDir);
|
|
9437
|
-
|
|
9438
|
-
if (isMocked) {
|
|
9439
|
-
sdkBinding = MockSDK;
|
|
9440
|
-
} else {
|
|
9441
|
-
sdkBinding = binding.iRacingSdkNode;
|
|
9442
|
-
}
|
|
9456
|
+
sdkBinding = binding.iRacingSdkNode;
|
|
9443
9457
|
} catch {
|
|
9444
9458
|
console.warn("Failed to load native iRacing SDK module. Loading mock SDK instead.");
|
|
9445
9459
|
isMocked = true;
|
|
@@ -9449,6 +9463,7 @@ var NativeSDK = sdkBinding;
|
|
|
9449
9463
|
var sdkIsMocked = isMocked;
|
|
9450
9464
|
// Annotate the CommonJS export names for ESM import in node:
|
|
9451
9465
|
0 && (module.exports = {
|
|
9466
|
+
LogLevel,
|
|
9452
9467
|
NativeSDK,
|
|
9453
9468
|
sdkIsMocked
|
|
9454
9469
|
});
|
package/dist/esm/index.js
CHANGED
|
@@ -9339,6 +9339,16 @@ import importNativeModule from "node-gyp-build";
|
|
|
9339
9339
|
// src/MockSdk.ts
|
|
9340
9340
|
import { error, warn, log } from "node:console";
|
|
9341
9341
|
|
|
9342
|
+
// src/INativeSDK.ts
|
|
9343
|
+
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
9344
|
+
LogLevel2[LogLevel2["None"] = 0] = "None";
|
|
9345
|
+
LogLevel2[LogLevel2["Error"] = 1] = "Error";
|
|
9346
|
+
LogLevel2[LogLevel2["Warn"] = 2] = "Warn";
|
|
9347
|
+
LogLevel2[LogLevel2["Info"] = 3] = "Info";
|
|
9348
|
+
LogLevel2[LogLevel2["Debug"] = 4] = "Debug";
|
|
9349
|
+
return LogLevel2;
|
|
9350
|
+
})(LogLevel || {});
|
|
9351
|
+
|
|
9342
9352
|
// src/mock-data/loader.ts
|
|
9343
9353
|
import { dump } from "js-yaml";
|
|
9344
9354
|
var loadMockSessionData = async () => {
|
|
@@ -9357,6 +9367,7 @@ var MockSDK = class {
|
|
|
9357
9367
|
currDataVersion = 1;
|
|
9358
9368
|
isMocked = true;
|
|
9359
9369
|
enableLogging = false;
|
|
9370
|
+
logLevel = 0 /* None */;
|
|
9360
9371
|
_isRunning = false;
|
|
9361
9372
|
constructor() {
|
|
9362
9373
|
this._loadMockData().catch((reason) => {
|
|
@@ -9386,14 +9397,21 @@ var MockSDK = class {
|
|
|
9386
9397
|
return this._isRunning;
|
|
9387
9398
|
}
|
|
9388
9399
|
waitForData(_timeout) {
|
|
9389
|
-
|
|
9400
|
+
const dataNotReady = !mockSession || !mockTelemetry;
|
|
9401
|
+
return this._isRunning && !dataNotReady;
|
|
9390
9402
|
}
|
|
9391
9403
|
getSessionData() {
|
|
9392
9404
|
return mockSession ?? "";
|
|
9393
9405
|
}
|
|
9406
|
+
getSessionConnectionID() {
|
|
9407
|
+
return mockSession ? 1 : -1;
|
|
9408
|
+
}
|
|
9409
|
+
getSessionVersionNum() {
|
|
9410
|
+
return mockSession ? 1 : -1;
|
|
9411
|
+
}
|
|
9394
9412
|
getTelemetryData() {
|
|
9395
9413
|
if (!mockTelemetry) {
|
|
9396
|
-
|
|
9414
|
+
return {};
|
|
9397
9415
|
}
|
|
9398
9416
|
return mockTelemetry;
|
|
9399
9417
|
}
|
|
@@ -9418,16 +9436,11 @@ var MockSDK = class {
|
|
|
9418
9436
|
// src/index.ts
|
|
9419
9437
|
var DIR_NAME = getDirname();
|
|
9420
9438
|
var sdkBinding;
|
|
9421
|
-
var isMocked;
|
|
9439
|
+
var isMocked = false;
|
|
9422
9440
|
try {
|
|
9423
9441
|
const rootDir = join(DIR_NAME, "../..");
|
|
9424
9442
|
const binding = importNativeModule(rootDir);
|
|
9425
|
-
|
|
9426
|
-
if (isMocked) {
|
|
9427
|
-
sdkBinding = MockSDK;
|
|
9428
|
-
} else {
|
|
9429
|
-
sdkBinding = binding.iRacingSdkNode;
|
|
9430
|
-
}
|
|
9443
|
+
sdkBinding = binding.iRacingSdkNode;
|
|
9431
9444
|
} catch {
|
|
9432
9445
|
console.warn("Failed to load native iRacing SDK module. Loading mock SDK instead.");
|
|
9433
9446
|
isMocked = true;
|
|
@@ -9436,6 +9449,7 @@ try {
|
|
|
9436
9449
|
var NativeSDK = sdkBinding;
|
|
9437
9450
|
var sdkIsMocked = isMocked;
|
|
9438
9451
|
export {
|
|
9452
|
+
LogLevel,
|
|
9439
9453
|
NativeSDK,
|
|
9440
9454
|
sdkIsMocked
|
|
9441
9455
|
};
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { BroadcastCommand, BroadcastCommandArgs, TelemetryVariable, TelemetryVarList } from '@irsdk-node/types';
|
|
2
2
|
export type TelemetryTypesDict = Record<string, number>;
|
|
3
|
+
export declare enum LogLevel {
|
|
4
|
+
None = 0,
|
|
5
|
+
Error = 1,
|
|
6
|
+
Warn = 2,
|
|
7
|
+
Info = 3,
|
|
8
|
+
Debug = 4
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* Interface of the iRacing SDK native module.
|
|
5
12
|
*
|
|
@@ -9,13 +16,17 @@ export type TelemetryTypesDict = Record<string, number>;
|
|
|
9
16
|
export interface INativeSDK {
|
|
10
17
|
readonly currDataVersion: number;
|
|
11
18
|
readonly isMocked: boolean;
|
|
19
|
+
/** @deprecated use .logLevel instead */
|
|
12
20
|
enableLogging: boolean;
|
|
21
|
+
logLevel: LogLevel;
|
|
13
22
|
startSDK(): boolean;
|
|
14
23
|
stopSDK(): void;
|
|
15
24
|
isRunning(): boolean;
|
|
16
25
|
waitForData(timeout?: number): boolean;
|
|
17
26
|
getSessionData(): string;
|
|
18
27
|
getTelemetryData(): TelemetryVarList;
|
|
28
|
+
getSessionVersionNum(): number;
|
|
29
|
+
getSessionConnectionID(): number;
|
|
19
30
|
getTelemetryVariable<T>(index: number): TelemetryVariable<T>;
|
|
20
31
|
getTelemetryVariable<T>(name: string): TelemetryVariable<T>;
|
|
21
32
|
__getTelemetryTypes(): TelemetryTypesDict;
|
package/dist/types/MockSdk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BroadcastCommand, BroadcastCommandArgs, TelemetryVariable, TelemetryVarList } from '@irsdk-node/types';
|
|
2
|
-
import type
|
|
2
|
+
import { LogLevel, type INativeSDK, type TelemetryTypesDict } from './INativeSDK.js';
|
|
3
3
|
type TelemetryVarKey = keyof TelemetryVarList;
|
|
4
4
|
type TelemetryResultTypes = boolean | number | string;
|
|
5
5
|
/**
|
|
@@ -14,6 +14,7 @@ export declare class MockSDK implements INativeSDK {
|
|
|
14
14
|
currDataVersion: number;
|
|
15
15
|
isMocked: boolean;
|
|
16
16
|
enableLogging: boolean;
|
|
17
|
+
logLevel: LogLevel;
|
|
17
18
|
private _isRunning;
|
|
18
19
|
constructor();
|
|
19
20
|
private _loadMockData;
|
|
@@ -22,6 +23,8 @@ export declare class MockSDK implements INativeSDK {
|
|
|
22
23
|
isRunning(): boolean;
|
|
23
24
|
waitForData(_timeout?: number): boolean;
|
|
24
25
|
getSessionData(): string;
|
|
26
|
+
getSessionConnectionID(): number;
|
|
27
|
+
getSessionVersionNum(): number;
|
|
25
28
|
getTelemetryData(): TelemetryVarList;
|
|
26
29
|
getTelemetryVariable<T extends TelemetryResultTypes>(index: number): TelemetryVariable<T[]>;
|
|
27
30
|
getTelemetryVariable<T extends TelemetryResultTypes>(name: TelemetryVarKey): TelemetryVariable<T[]>;
|
package/dist/types/index.d.ts
CHANGED
package/install.js
ADDED