@hotlap.ai/telemetry 1.0.0 → 1.2.0

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/README.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @hotlap.ai/telemetry
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@hotlap.ai/telemetry.svg)](https://www.npmjs.com/package/@hotlap.ai/telemetry)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@hotlap.ai/telemetry.svg)](https://www.npmjs.com/package/@hotlap.ai/telemetry)
5
+ [![CI](https://github.com/hotlap-ai/telemetry/actions/workflows/ci.yml/badge.svg)](https://github.com/hotlap-ai/telemetry/actions/workflows/ci.yml)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/)
8
+ [![Bun](https://img.shields.io/badge/Bun-%3E%3D1.0.0-black.svg)](https://bun.sh/)
9
+
3
10
  High-performance iRacing telemetry SDK for [Bun](https://bun.sh). Parse IBT telemetry files and stream live data from iRacing via Windows shared memory.
4
11
 
5
12
  ## Features
@@ -1,190 +1,23 @@
1
1
  // @bun
2
2
  import {
3
- VAR_TYPE_SIZES
4
- } from "./constants.js";
5
-
6
- // src/binary-reader.ts
7
- var textDecoder = new TextDecoder;
8
- function readInt32LE(view, offset) {
9
- return view.getInt32(offset, true);
10
- }
11
- function readUint32LE(view, offset) {
12
- return view.getUint32(offset, true);
13
- }
14
- function readFloat32LE(view, offset) {
15
- return view.getFloat32(offset, true);
16
- }
17
- function readFloat64LE(view, offset) {
18
- return view.getFloat64(offset, true);
19
- }
20
- function readBigUint64LE(view, offset) {
21
- return view.getBigUint64(offset, true);
22
- }
23
- function readBoolLE(view, offset) {
24
- return view.getUint8(offset) !== 0;
25
- }
26
- function readCharLE(view, offset) {
27
- return view.getInt8(offset);
28
- }
29
- function readString(buffer, offset, length) {
30
- let end = offset;
31
- const maxEnd = offset + length;
32
- while (end < maxEnd && buffer[end] !== 0)
33
- end++;
34
- return textDecoder.decode(buffer.subarray(offset, end));
35
- }
36
- function readVarValue(view, offset, type, count) {
37
- const size = VAR_TYPE_SIZES[type];
38
- if (count === 1) {
39
- switch (type) {
40
- case 0:
41
- return readCharLE(view, offset);
42
- case 1:
43
- return readBoolLE(view, offset);
44
- case 2:
45
- return readInt32LE(view, offset);
46
- case 3:
47
- return readUint32LE(view, offset);
48
- case 4:
49
- return readFloat32LE(view, offset);
50
- case 5:
51
- return readFloat64LE(view, offset);
52
- }
53
- }
54
- if (type === 1) {
55
- const result2 = new Array(count);
56
- for (let i = 0;i < count; i++) {
57
- result2[i] = readBoolLE(view, offset + i);
58
- }
59
- return result2;
60
- }
61
- const result = new Array(count);
62
- for (let i = 0;i < count; i++) {
63
- const pos = offset + i * size;
64
- switch (type) {
65
- case 0:
66
- result[i] = readCharLE(view, pos);
67
- break;
68
- case 2:
69
- result[i] = readInt32LE(view, pos);
70
- break;
71
- case 3:
72
- result[i] = readUint32LE(view, pos);
73
- break;
74
- case 4:
75
- result[i] = readFloat32LE(view, pos);
76
- break;
77
- case 5:
78
- result[i] = readFloat64LE(view, pos);
79
- break;
80
- }
81
- }
82
- return result;
83
- }
84
- function readVarValueBatch(view, baseOffset, varOffset, type, bufLen, recordCount, output) {
85
- const size = VAR_TYPE_SIZES[type];
86
- let writeIdx = 0;
87
- switch (type) {
88
- case 4:
89
- for (let i = 0;i < recordCount; i++) {
90
- output[writeIdx++] = view.getFloat32(baseOffset + i * bufLen + varOffset, true);
91
- }
92
- break;
93
- case 5:
94
- for (let i = 0;i < recordCount; i++) {
95
- output[writeIdx++] = view.getFloat64(baseOffset + i * bufLen + varOffset, true);
96
- }
97
- break;
98
- case 2:
99
- for (let i = 0;i < recordCount; i++) {
100
- output[writeIdx++] = view.getInt32(baseOffset + i * bufLen + varOffset, true);
101
- }
102
- break;
103
- case 3:
104
- for (let i = 0;i < recordCount; i++) {
105
- output[writeIdx++] = view.getUint32(baseOffset + i * bufLen + varOffset, true);
106
- }
107
- break;
108
- }
109
- }
110
- function parseHeader(view) {
111
- const version = readInt32LE(view, 0);
112
- const status = readInt32LE(view, 4);
113
- const tickRate = readInt32LE(view, 8);
114
- const sessionInfoUpdate = readInt32LE(view, 12);
115
- const sessionInfoLen = readInt32LE(view, 16);
116
- const sessionInfoOffset = readInt32LE(view, 20);
117
- const numVars = readInt32LE(view, 24);
118
- const varHeaderOffset = readInt32LE(view, 28);
119
- const numBuf = readInt32LE(view, 32);
120
- const bufLen = readInt32LE(view, 36);
121
- const varBuf = new Array(numBuf);
122
- for (let i = 0;i < numBuf; i++) {
123
- const offset = 48 + i * 16;
124
- varBuf[i] = {
125
- tickCount: readInt32LE(view, offset),
126
- bufOffset: readInt32LE(view, offset + 4)
127
- };
128
- }
129
- return {
130
- version,
131
- status,
132
- tickRate,
133
- sessionInfoUpdate,
134
- sessionInfoLen,
135
- sessionInfoOffset,
136
- numVars,
137
- varHeaderOffset,
138
- numBuf,
139
- bufLen,
140
- varBuf
141
- };
142
- }
143
- function parseVarHeader(view, buffer, offset) {
144
- return {
145
- type: readInt32LE(view, offset),
146
- offset: readInt32LE(view, offset + 4),
147
- count: readInt32LE(view, offset + 8),
148
- countAsTime: readBoolLE(view, offset + 12),
149
- name: readString(buffer, offset + 16, 32),
150
- desc: readString(buffer, offset + 48, 64),
151
- unit: readString(buffer, offset + 112, 32)
152
- };
153
- }
154
- function parseDiskSubHeader(view, offset) {
155
- return {
156
- sessionStartDate: readBigUint64LE(view, offset),
157
- sessionStartTime: readFloat64LE(view, offset + 8),
158
- sessionEndTime: readFloat64LE(view, offset + 16),
159
- sessionLapCount: readInt32LE(view, offset + 24),
160
- sessionRecordCount: readInt32LE(view, offset + 28)
161
- };
162
- }
163
- function parseVarHeaders(view, buffer, header) {
164
- const headers = new Map;
165
- for (let i = 0;i < header.numVars; i++) {
166
- const varHeader = parseVarHeader(view, buffer, header.varHeaderOffset + i * 144);
167
- headers.set(varHeader.name, varHeader);
168
- }
169
- return headers;
170
- }
171
- function getLatestVarBuffer(varBufs) {
172
- if (varBufs.length === 0) {
173
- throw new Error("varBufs array is empty");
174
- }
175
- let latest = varBufs[0];
176
- let secondLatest = varBufs[1] ?? varBufs[0];
177
- for (let i = 1;i < varBufs.length; i++) {
178
- const current = varBufs[i];
179
- if (current.tickCount > latest.tickCount) {
180
- secondLatest = latest;
181
- latest = current;
182
- } else if (current.tickCount > secondLatest.tickCount) {
183
- secondLatest = current;
184
- }
185
- }
186
- return secondLatest;
187
- }
3
+ getLatestVarBuffer,
4
+ parseDiskSubHeader,
5
+ parseHeader,
6
+ parseVarHeader,
7
+ parseVarHeaders,
8
+ readBigUint64LE,
9
+ readBoolLE,
10
+ readCharLE,
11
+ readFloat32LE,
12
+ readFloat64LE,
13
+ readInt32LE,
14
+ readString,
15
+ readUint32LE,
16
+ readVarValue,
17
+ readVarValueBatch
18
+ } from "./index-c5jf6rjt.js";
19
+ import"./index-wb6ebd0j.js";
20
+ import"./index-ftpvnye9.js";
188
21
  export {
189
22
  readVarValueBatch,
190
23
  readVarValue,
@@ -202,5 +35,3 @@ export {
202
35
  parseDiskSubHeader,
203
36
  getLatestVarBuffer
204
37
  };
205
-
206
- export { readInt32LE, readUint32LE, readFloat32LE, readFloat64LE, readBigUint64LE, readBoolLE, readCharLE, readString, readVarValue, readVarValueBatch, parseHeader, parseVarHeader, parseDiskSubHeader, parseVarHeaders, getLatestVarBuffer };
package/dist/cli.js CHANGED
@@ -2,15 +2,16 @@
2
2
  // @bun
3
3
  import {
4
4
  parseIbt
5
- } from "./ibt.js";
5
+ } from "./index-6wrtvcny.js";
6
6
  import {
7
7
  createIRSDK
8
- } from "./live.js";
9
- import"./index-k5bgtn4c.js";
10
- import"./binary-reader.js";
8
+ } from "./index-t4qz2011.js";
9
+ import"./index-hxw291vy.js";
10
+ import"./index-c5jf6rjt.js";
11
11
  import {
12
12
  VERSION
13
- } from "./constants.js";
13
+ } from "./index-wb6ebd0j.js";
14
+ import"./index-ftpvnye9.js";
14
15
 
15
16
  // src/cli.ts
16
17
  import { parseArgs } from "util";
package/dist/constants.js CHANGED
@@ -1,250 +1,44 @@
1
1
  // @bun
2
- var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3
- var __require = import.meta.require;
4
-
5
- // src/constants.ts
6
- var VERSION = "1.0.0";
7
- var SIM_STATUS_URL = "http://127.0.0.1:32034/get_sim_status?object=simStatus";
8
- var DATA_VALID_EVENT_NAME = "LocalIRSDKDataValidEvent";
9
- var MEMMAPFILE = "LocalIRSDKMemMapFileName";
10
- var MEMMAPFILESIZE = 1164 * 1024;
11
- var BROADCASTMSGNAME = "IRSDK_BROADCASTMSG";
12
- var VAR_TYPE_SIZES = [1, 1, 4, 4, 4, 8];
13
- var HEADER_SIZE = 112;
14
- var VAR_HEADER_SIZE = 144;
15
- var VAR_BUFFER_SIZE = 16;
16
- var DISK_SUB_HEADER_OFFSET = 112;
17
- var DISK_SUB_HEADER_SIZE = 32;
18
- var YAML_CODE_PAGE = "windows-1252";
19
- var StatusField = {
20
- STATUS_CONNECTED: 1
21
- };
22
- var EngineWarnings = {
23
- WATER_TEMP_WARNING: 1,
24
- FUEL_PRESSURE_WARNING: 2,
25
- OIL_PRESSURE_WARNING: 4,
26
- ENGINE_STALLED: 8,
27
- PIT_SPEED_LIMITER: 16,
28
- REV_LIMITER_ACTIVE: 32,
29
- OIL_TEMP_WARNING: 64
30
- };
31
- var Flags = {
32
- CHECKERED: 1,
33
- WHITE: 2,
34
- GREEN: 4,
35
- YELLOW: 8,
36
- RED: 16,
37
- BLUE: 32,
38
- DEBRIS: 64,
39
- CROSSED: 128,
40
- YELLOW_WAVING: 256,
41
- ONE_LAP_TO_GREEN: 512,
42
- GREEN_HELD: 1024,
43
- TEN_TO_GO: 2048,
44
- FIVE_TO_GO: 4096,
45
- RANDOM_WAVING: 8192,
46
- CAUTION: 16384,
47
- CAUTION_WAVING: 32768,
48
- BLACK: 65536,
49
- DISQUALIFY: 131072,
50
- SERVICIBLE: 262144,
51
- FURLED: 524288,
52
- REPAIR: 1048576,
53
- START_HIDDEN: 268435456,
54
- START_READY: 536870912,
55
- START_SET: 1073741824,
56
- START_GO: 2147483648
57
- };
58
- var TrkLoc = {
59
- NOT_IN_WORLD: -1,
60
- OFF_TRACK: 0,
61
- IN_PIT_STALL: 1,
62
- APPROACHING_PITS: 2,
63
- ON_TRACK: 3
64
- };
65
- var TrkSurf = {
66
- NOT_IN_WORLD: -1,
67
- UNDEFINED: 0,
68
- ASPHALT_1: 1,
69
- ASPHALT_2: 2,
70
- ASPHALT_3: 3,
71
- ASPHALT_4: 4,
72
- CONCRETE_1: 5,
73
- CONCRETE_2: 6,
74
- RACING_DIRT_1: 7,
75
- RACING_DIRT_2: 8,
76
- PAINT_1: 9,
77
- PAINT_2: 10,
78
- RUMBLE_1: 11,
79
- RUMBLE_2: 12,
80
- RUMBLE_3: 13,
81
- RUMBLE_4: 14,
82
- GRASS_1: 15,
83
- GRASS_2: 16,
84
- GRASS_3: 17,
85
- GRASS_4: 18,
86
- DIRT_1: 19,
87
- DIRT_2: 20,
88
- DIRT_3: 21,
89
- DIRT_4: 22,
90
- SAND: 23,
91
- GRAVEL_1: 24,
92
- GRAVEL_2: 25,
93
- GRASSCRETE: 26,
94
- ASTROTURF: 27
95
- };
96
- var SessionState = {
97
- INVALID: 0,
98
- GET_IN_CAR: 1,
99
- WARMUP: 2,
100
- PARADE_LAPS: 3,
101
- RACING: 4,
102
- CHECKERED: 5,
103
- COOL_DOWN: 6
104
- };
105
- var CameraState = {
106
- IS_SESSION_SCREEN: 1,
107
- IS_SCENIC_ACTIVE: 2,
108
- CAM_TOOL_ACTIVE: 4,
109
- UI_HIDDEN: 8,
110
- USE_AUTO_SHOT_SELECTION: 16,
111
- USE_TEMPORARY_EDITS: 32,
112
- USE_KEY_ACCELERATION: 64,
113
- USE_KEY10X_ACCELERATION: 128,
114
- USE_MOUSE_AIM_MODE: 256
115
- };
116
- var BroadcastMsg = {
117
- CAM_SWITCH_POS: 0,
118
- CAM_SWITCH_NUM: 1,
119
- CAM_SET_STATE: 2,
120
- REPLAY_SET_PLAY_SPEED: 3,
121
- REPLAY_SET_PLAY_POSITION: 4,
122
- REPLAY_SEARCH: 5,
123
- REPLAY_SET_STATE: 6,
124
- RELOAD_TEXTURES: 7,
125
- CHAT_COMMAND: 8,
126
- PIT_COMMAND: 9,
127
- TELEM_COMMAND: 10,
128
- FFB_COMMAND: 11,
129
- REPLAY_SEARCH_SESSION_TIME: 12,
130
- VIDEO_CAPTURE: 13
131
- };
132
- var ChatCommandMode = {
133
- MACRO: 0,
134
- BEGIN_CHAT: 1,
135
- REPLY: 2,
136
- CANCEL: 3
137
- };
138
- var PitCommandMode = {
139
- CLEAR: 0,
140
- WS: 1,
141
- FUEL: 2,
142
- LF: 3,
143
- RF: 4,
144
- LR: 5,
145
- RR: 6,
146
- CLEAR_TIRES: 7,
147
- FR: 8,
148
- CLEAR_WS: 9,
149
- CLEAR_FR: 10,
150
- CLEAR_FUEL: 11
151
- };
152
- var TelemCommandMode = {
153
- STOP: 0,
154
- START: 1,
155
- RESTART: 2
156
- };
157
- var RpyStateMode = {
158
- ERASE_TAPE: 0
159
- };
160
- var ReloadTexturesMode = {
161
- ALL: 0,
162
- CAR_IDX: 1
163
- };
164
- var RpySrchMode = {
165
- TO_START: 0,
166
- TO_END: 1,
167
- PREV_SESSION: 2,
168
- NEXT_SESSION: 3,
169
- PREV_LAP: 4,
170
- NEXT_LAP: 5,
171
- PREV_FRAME: 6,
172
- NEXT_FRAME: 7,
173
- PREV_INCIDENT: 8,
174
- NEXT_INCIDENT: 9
175
- };
176
- var RpyPosMode = {
177
- BEGIN: 0,
178
- CURRENT: 1,
179
- END: 2
180
- };
181
- var CsMode = {
182
- AT_INCIDENT: -3,
183
- AT_LEADER: -2,
184
- AT_EXCITING: -1
185
- };
186
- var PitSvFlags = {
187
- LF_TIRE_CHANGE: 1,
188
- RF_TIRE_CHANGE: 2,
189
- LR_TIRE_CHANGE: 4,
190
- RR_TIRE_CHANGE: 8,
191
- FUEL_FILL: 16,
192
- WINDSHIELD_TEAROFF: 32,
193
- FAST_REPAIR: 64
194
- };
195
- var PitSvStatus = {
196
- NONE: 0,
197
- IN_PROGRESS: 1,
198
- COMPLETE: 2,
199
- TOO_FAR_LEFT: 100,
200
- TOO_FAR_RIGHT: 101,
201
- TOO_FAR_FORWARD: 102,
202
- TOO_FAR_BACK: 103,
203
- BAD_ANGLE: 104,
204
- CANT_FIX_THAT: 105
205
- };
206
- var PaceMode = {
207
- SINGLE_FILE_START: 0,
208
- DOUBLE_FILE_START: 1,
209
- SINGLE_FILE_RESTART: 2,
210
- DOUBLE_FILE_RESTART: 3,
211
- NOT_PACING: 4
212
- };
213
- var PaceFlags = {
214
- END_OF_LINE: 1,
215
- FREE_PASS: 2,
216
- WAVED_AROUND: 4
217
- };
218
- var CarLeftRight = {
219
- OFF: 0,
220
- CLEAR: 1,
221
- CAR_LEFT: 2,
222
- CAR_RIGHT: 3,
223
- CAR_LEFT_RIGHT: 4,
224
- TWO_CARS_LEFT: 5,
225
- TWO_CARS_RIGHT: 6
226
- };
227
- var FFBCommandMode = {
228
- FFB_COMMAND_MAX_FORCE: 0
229
- };
230
- var VideoCaptureMode = {
231
- TRIGGER_SCREEN_SHOT: 0,
232
- START_VIDEO_CAPTURE: 1,
233
- END_VIDEO_CAPTURE: 2,
234
- TOGGLE_VIDEO_CAPTURE: 3,
235
- SHOW_VIDEO_TIMER: 4,
236
- HIDE_VIDEO_TIMER: 5
237
- };
238
- var TrackWetness = {
239
- UNKNOWN: 0,
240
- DRY: 1,
241
- MOSTLY_DRY: 2,
242
- VERY_LIGHTLY_WET: 3,
243
- LIGHTLY_WET: 4,
244
- MODERATELY_WET: 5,
245
- VERY_WET: 6,
246
- EXTREMELY_WET: 7
247
- };
2
+ import {
3
+ BROADCASTMSGNAME,
4
+ BroadcastMsg,
5
+ CameraState,
6
+ CarLeftRight,
7
+ ChatCommandMode,
8
+ CsMode,
9
+ DATA_VALID_EVENT_NAME,
10
+ DISK_SUB_HEADER_OFFSET,
11
+ DISK_SUB_HEADER_SIZE,
12
+ EngineWarnings,
13
+ FFBCommandMode,
14
+ Flags,
15
+ HEADER_SIZE,
16
+ MEMMAPFILE,
17
+ MEMMAPFILESIZE,
18
+ PaceFlags,
19
+ PaceMode,
20
+ PitCommandMode,
21
+ PitSvFlags,
22
+ PitSvStatus,
23
+ ReloadTexturesMode,
24
+ RpyPosMode,
25
+ RpySrchMode,
26
+ RpyStateMode,
27
+ SIM_STATUS_URL,
28
+ SessionState,
29
+ StatusField,
30
+ TelemCommandMode,
31
+ TrackWetness,
32
+ TrkLoc,
33
+ TrkSurf,
34
+ VAR_BUFFER_SIZE,
35
+ VAR_HEADER_SIZE,
36
+ VAR_TYPE_SIZES,
37
+ VERSION,
38
+ VideoCaptureMode,
39
+ YAML_CODE_PAGE
40
+ } from "./index-wb6ebd0j.js";
41
+ import"./index-ftpvnye9.js";
248
42
  export {
249
43
  YAML_CODE_PAGE,
250
44
  VideoCaptureMode,
@@ -284,5 +78,3 @@ export {
284
78
  BroadcastMsg,
285
79
  BROADCASTMSGNAME
286
80
  };
287
-
288
- export { __commonJS, __require, VERSION, SIM_STATUS_URL, DATA_VALID_EVENT_NAME, MEMMAPFILE, MEMMAPFILESIZE, BROADCASTMSGNAME, VAR_TYPE_SIZES, HEADER_SIZE, VAR_HEADER_SIZE, VAR_BUFFER_SIZE, DISK_SUB_HEADER_OFFSET, DISK_SUB_HEADER_SIZE, YAML_CODE_PAGE, StatusField, EngineWarnings, Flags, TrkLoc, TrkSurf, SessionState, CameraState, BroadcastMsg, ChatCommandMode, PitCommandMode, TelemCommandMode, RpyStateMode, ReloadTexturesMode, RpySrchMode, RpyPosMode, CsMode, PitSvFlags, PitSvStatus, PaceMode, PaceFlags, CarLeftRight, FFBCommandMode, VideoCaptureMode, TrackWetness };
package/dist/ibt.d.ts CHANGED
@@ -10,8 +10,10 @@ export declare class IBT {
10
10
  private diskHeader;
11
11
  private varHeaders;
12
12
  private sessionInfoCache;
13
+ private static readonly sessionRegexCache;
13
14
  private rawSessionInfo;
14
15
  private filePath;
16
+ private static getSectionRegex;
15
17
  get fileName(): string | null;
16
18
  get varHeaderBufferTick(): number | null;
17
19
  get varHeaderNames(): string[] | null;
@@ -33,7 +35,6 @@ export declare class IBT {
33
35
  iterate(keys: string[]): Generator<Map<string, TelemetryValue>, void, unknown>;
34
36
  getRawSessionInfo(): string | null;
35
37
  getSessionInfo<T = unknown>(key?: string): T | null;
36
- private cleanYaml;
37
38
  }
38
39
  export declare function parseIbt(filePath: string): Promise<IBT>;
39
40
  export declare function parseIbtBuffer(buffer: ArrayBuffer | Uint8Array): Promise<IBT>;
package/dist/ibt.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ibt.d.ts","sourceRoot":"","sources":["../src/ibt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,SAAS,EAAiB,cAAc,EAAe,MAAM,SAAS,CAAC;AAY7F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEvC;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,GAAG,IAAI,CAGpC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;WAgBnB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAUvE,KAAK,IAAI,IAAI;IAWb,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAatD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI;IAuB5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI;IAmCvF,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IAgC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;IA8B/E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAYlC,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAmCnD,OAAO,CAAC,SAAS;CAiBlB;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAI7D;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAEnF"}
1
+ {"version":3,"file":"ibt.d.ts","sourceRoot":"","sources":["../src/ibt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAU,SAAS,EAAiB,cAAc,EAAe,MAAM,SAAS,CAAC;AAc7F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IACtE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,IAAI,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEvC;IAED,IAAI,cAAc,IAAI,MAAM,EAAE,GAAG,IAAI,CAGpC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEK,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;WAgBnB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAUvE,KAAK,IAAI,IAAI;IAWb,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAatD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,GAAG,IAAI;IAuB5C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI;IAmCvF,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IAgC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;IA8B/E,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAYlC,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;CAkCpD;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAI7D;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAEnF"}