homebridge-bedjet 0.2.5 → 0.2.7

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
@@ -6,50 +6,81 @@ Exposes a **Thermostat** and a **Fan** accessory in HomeKit so you can control t
6
6
 
7
7
  ## Features
8
8
 
9
- - Direct BLE connection from the Homebridge host (no cloud required)
9
+ - Direct BLE connection from the Homebridge host no cloud required
10
10
  - Thermostat service: current/target temperature, heating/cooling mode
11
11
  - FanV2 service: on/off and rotation speed (5–100%)
12
- - Automatic reconnection with exponential backoff (up to 5 attempts)
13
- - Multi-device support (dual-zone BedJet setup)
14
- - 60-second inactivity disconnect to share the BLE slot with the BedJet app
12
+ - Automatic reconnection with exponential backoff (retries indefinitely)
13
+ - Multi-device support for dual-zone BedJet setups
14
+ - Bluetooth discovery UI built into the Homebridge config panel — no need to find the MAC address manually
15
15
 
16
16
  ## Prerequisites
17
17
 
18
- ### Linux / Raspberry Pi
18
+ ### Linux / Raspberry Pi (recommended)
19
19
 
20
20
  ```bash
21
- # BlueZ and BLE dev headers
22
- sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
21
+ # Install BlueZ
22
+ sudo apt-get install bluetooth bluez
23
23
 
24
- # Grant Node.js BLE access without root
25
- sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))
24
+ # Make sure the Bluetooth service is running
25
+ sudo systemctl enable bluetooth
26
+ sudo systemctl start bluetooth
27
+
28
+ # Add the homebridge user to the bluetooth group so it can use BlueZ without root
29
+ sudo usermod -aG bluetooth homebridge
30
+
31
+ # Reboot (or restart Homebridge) for group membership to take effect
32
+ sudo reboot
26
33
  ```
27
34
 
35
+ Then pair your BedJet **once** before starting the plugin (see [Pairing your BedJet](#pairing-your-bedjet) below).
36
+
28
37
  ### macOS
29
38
 
30
- Works out of the box. A CoreBluetooth permission prompt will appear on first run. Grant it.
39
+ Works out of the box. A CoreBluetooth permission prompt will appear on first run.
31
40
 
32
- ## Finding your BedJet MAC address
41
+ ## Installation
33
42
 
34
- **Linux:**
43
+ Search for **homebridge-bedjet** in the Homebridge UI plugins tab and install from there.
44
+
45
+ Or via terminal:
35
46
  ```bash
36
- sudo hcitool lescan
37
- # Look for a line like: AA:BB:CC:DD:EE:FF BedJet
47
+ npm install -g homebridge-bedjet
38
48
  ```
39
49
 
40
- **macOS / iOS / Android:** Use the [nRF Connect](https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-mobile) app — it lists nearby BLE devices and their MAC addresses.
50
+ ## Pairing your BedJet
41
51
 
42
- ## Installation
52
+ The BedJet V3 requires a one-time Bluetooth pairing before the plugin can connect to it. You only need to do this once.
53
+
54
+ On your Raspberry Pi:
43
55
 
44
56
  ```bash
45
- npm install -g homebridge-bedjet
57
+ bluetoothctl
46
58
  ```
47
59
 
48
- Or install via the Homebridge UI — search for `homebridge-bedjet`.
60
+ Then inside the bluetoothctl prompt:
61
+
62
+ ```
63
+ scan on
64
+ ```
65
+
66
+ Wait until you see your BedJet appear (it will show up as `BEDJET_V3` with its MAC address). Then:
67
+
68
+ ```
69
+ pair AA:BB:CC:DD:EE:FF
70
+ trust AA:BB:CC:DD:EE:FF
71
+ disconnect AA:BB:CC:DD:EE:FF
72
+ exit
73
+ ```
74
+
75
+ > **Note:** When you run `pair`, the BedJet will prompt you to press the **WiFi/BT button** on the top of the unit to confirm the pairing. Press it when prompted.
76
+
77
+ After pairing, restart Homebridge and the plugin will connect automatically.
49
78
 
50
79
  ## Configuration
51
80
 
52
- Add to your `~/.homebridge/config.json`:
81
+ The easiest way is to use the **Bluetooth Discovery** panel in the Homebridge plugin settings — click **Scan for BedJets**, wait ~12 seconds, then click **Add to Config** next to your device. Restart Homebridge when done.
82
+
83
+ To configure manually, add to your `~/.homebridge/config.json`:
53
84
 
54
85
  ```json
55
86
  {
@@ -58,7 +89,7 @@ Add to your `~/.homebridge/config.json`:
58
89
  "platform": "BedJetPlatform",
59
90
  "devices": [
60
91
  {
61
- "name": "Bedroom BedJet",
92
+ "name": "BedJet",
62
93
  "address": "AA:BB:CC:DD:EE:FF"
63
94
  }
64
95
  ]
@@ -75,8 +106,8 @@ For a dual-zone setup, add both units:
75
106
  {
76
107
  "platform": "BedJetPlatform",
77
108
  "devices": [
78
- { "name": "Left Side BedJet", "address": "AA:BB:CC:DD:EE:FF" },
79
- { "name": "Right Side BedJet", "address": "11:22:33:44:55:66" }
109
+ { "name": "Left BedJet", "address": "AA:BB:CC:DD:EE:FF" },
110
+ { "name": "Right BedJet", "address": "11:22:33:44:55:66" }
80
111
  ]
81
112
  }
82
113
  ]
@@ -89,26 +120,96 @@ For a dual-zone setup, add both units:
89
120
  |-------|----------|---------|-------------|
90
121
  | `name` | Yes | — | Display name in HomeKit |
91
122
  | `address` | Yes | — | BLE MAC address of your BedJet V3 |
92
- | `scanTimeout` | No | `30` | Seconds to scan before giving up on first connect |
123
+ | `scanTimeout` | No | `30` | Seconds to wait for the device on connect |
93
124
 
94
- ## BedJet BLE limitation
125
+ ## Troubleshooting
126
+
127
+ ### Plugin says "Connect failed" or never shows Ready
128
+
129
+ **1. Check Bluetooth is enabled and unblocked:**
130
+ ```bash
131
+ # See all radio devices and whether they're blocked
132
+ rfkill list
133
+
134
+ # Unblock Bluetooth if it shows as blocked
135
+ sudo rfkill unblock bluetooth
136
+
137
+ # Check the adapter is up
138
+ hciconfig
139
+ ```
140
+
141
+ **2. Make sure BlueZ is running:**
142
+ ```bash
143
+ sudo systemctl status bluetooth
144
+
145
+ # If it's not running:
146
+ sudo systemctl enable bluetooth
147
+ sudo systemctl start bluetooth
148
+ ```
149
+
150
+ **3. Check the homebridge user is in the bluetooth group:**
151
+ ```bash
152
+ groups homebridge
153
+ # Should include "bluetooth" in the list
154
+ ```
155
+
156
+ If it's missing:
157
+ ```bash
158
+ sudo usermod -aG bluetooth homebridge
159
+ sudo reboot
160
+ ```
161
+
162
+ **4. Make sure the BedJet is paired** (see [Pairing your BedJet](#pairing-your-bedjet) above). Without pairing, BlueZ can see the device during a scan but won't be able to connect to it and access GATT services.
163
+
164
+ **5. Close the BedJet mobile app** — the BedJet V3 only allows one BLE connection at a time. If the app is connected, this plugin cannot connect.
165
+
166
+ ---
167
+
168
+ ### Plugin connects but then disconnects frequently
169
+
170
+ This usually means BLE signal is weak. Move your Raspberry Pi closer to the BedJet, or add a USB Bluetooth adapter with better range.
95
171
 
96
- The BedJet V3 only allows **one active BLE connection at a time**. The BedJet mobile app must be fully closed (not just backgrounded) before this plugin can connect.
172
+ ---
97
173
 
98
- This plugin automatically disconnects after **60 seconds of inactivity** to free the BLE slot for app use if needed. It will reconnect automatically the next time you interact with the accessory in HomeKit.
174
+ ### "Scan found 0 devices" in the discovery panel
175
+
176
+ - Make sure the BedJet is powered on and not already connected to your phone or the app
177
+ - The scan runs for 12 seconds — make sure you wait for it to finish
178
+ - Try running `bluetoothctl scan on` in a terminal on the Pi to confirm the Pi can see it
179
+
180
+ ---
181
+
182
+ ### Homebridge log shows D-Bus or permissions errors
183
+
184
+ The plugin uses the BlueZ D-Bus API (the same method used by Python's `bleak` library and the Home Assistant BedJet integration). If you see D-Bus permission errors, the homebridge user doesn't have access to BlueZ:
185
+
186
+ ```bash
187
+ sudo usermod -aG bluetooth homebridge
188
+ sudo reboot
189
+ ```
99
190
 
100
191
  ## HomeKit behaviour
101
192
 
102
193
  | HomeKit control | BedJet action |
103
194
  |---|---|
104
- | Thermostat → Off | Standby (fan off) |
195
+ | Thermostat → Off | Standby |
105
196
  | Thermostat → Heat | Standard heat mode |
106
- | Thermostat → Cool | Fan-only mode (BedJet has no compressor) |
197
+ | Thermostat → Cool | Fan-only cool mode |
107
198
  | Thermostat → Auto | Heat mode |
108
- | Temperature slider | SET_TEMPERATURE command |
199
+ | Temperature slider | Set target temperature |
109
200
  | Fan → Off | Standby |
110
201
  | Fan → On | Heat mode (if currently off) |
111
- | Fan speed slider | SET_FAN command (5–100% in 5% steps) |
202
+ | Fan speed slider | Set fan speed (5–100% in 5% steps) |
203
+
204
+ ## BedJet BLE limitation
205
+
206
+ The BedJet V3 only allows **one active BLE connection at a time**. Close the BedJet mobile app fully before using this plugin.
207
+
208
+ ## Credits
209
+
210
+ The BedJet V3 BLE protocol details — service/characteristic UUIDs, notification packet layout, and command encoding — were derived from the [**pybedjet**](https://github.com/jfparis/pybedjet) library and the [Home Assistant BedJet integration](https://www.home-assistant.io/integrations/bedjet/). This plugin would not exist without that prior reverse-engineering work.
211
+
212
+ BLE communication uses [node-ble](https://github.com/chrvadala/node-ble), which wraps the Linux BlueZ D-Bus API — the same approach used by Python's `bleak` library and the HA integration.
112
213
 
113
214
  ## License
114
215
 
@@ -144,7 +144,7 @@
144
144
  <h6>Bluetooth Discovery</h6>
145
145
 
146
146
  <div class="scan-row">
147
- <button id="scanBtn" onclick="startScan()">Scan for BedJets</button>
147
+ <button id="scanBtn">Scan for BedJets</button>
148
148
  <div id="scanStatus"></div>
149
149
  </div>
150
150
 
@@ -155,44 +155,57 @@
155
155
  <div id="results"></div>
156
156
 
157
157
  <script>
158
- const SCAN_MS = 12000;
159
- let scanning = false;
158
+ var SCAN_MS = 12000;
159
+ var scanning = false;
160
160
 
161
- // ── Scan ─────────────────────────────────────────────────────────────────
161
+ // ── Wire up buttons via addEventListener, never inline onclick ────────────
162
+
163
+ document.getElementById('scanBtn').addEventListener('click', startScan);
164
+
165
+ // Event delegation for dynamically created Add buttons
166
+ document.getElementById('results').addEventListener('click', function (e) {
167
+ var btn = e.target;
168
+ if (!btn.classList.contains('add-btn') || btn.disabled) return;
169
+ var name = btn.getAttribute('data-name');
170
+ var address = btn.getAttribute('data-address');
171
+ addDevice(btn, name, address);
172
+ });
173
+
174
+ // ── Scan ──────────────────────────────────────────────────────────────────
162
175
 
163
176
  async function startScan() {
164
177
  if (scanning) return;
165
178
  scanning = true;
166
179
 
167
- const btn = document.getElementById('scanBtn');
168
- const status = document.getElementById('scanStatus');
169
- const pWrap = document.getElementById('progressWrap');
170
- const pFill = document.getElementById('progressFill');
171
- const results = document.getElementById('results');
180
+ var scanBtn = document.getElementById('scanBtn');
181
+ var status = document.getElementById('scanStatus');
182
+ var pWrap = document.getElementById('progressWrap');
183
+ var pFill = document.getElementById('progressFill');
184
+ var results = document.getElementById('results');
172
185
 
173
- btn.disabled = true;
186
+ scanBtn.disabled = true;
174
187
  results.innerHTML = '';
175
188
  pFill.style.width = '0%';
176
189
  pWrap.style.display = 'block';
177
190
  status.innerHTML = '<div class="spinner"></div>&nbsp;Scanning…';
178
191
 
179
- let elapsed = 0;
180
- const tickMs = 200;
181
- const timer = setInterval(() => {
192
+ var elapsed = 0;
193
+ var tickMs = 200;
194
+ var timer = setInterval(function () {
182
195
  elapsed += tickMs;
183
196
  pFill.style.width = Math.min(100, (elapsed / SCAN_MS) * 100) + '%';
184
197
  if (elapsed >= SCAN_MS) clearInterval(timer);
185
198
  }, tickMs);
186
199
 
187
200
  try {
188
- const res = await homebridge.request('/scan');
201
+ var res = await homebridge.request('/scan');
189
202
  clearInterval(timer);
190
203
  pFill.style.width = '100%';
191
204
  status.innerHTML = '';
192
205
 
193
- const devices = (res && Array.isArray(res.devices)) ? res.devices : [];
206
+ var devices = (res && Array.isArray(res.devices)) ? res.devices : [];
194
207
  if (devices.length === 0) {
195
- results.innerHTML = '<div class="notice">No BedJet devices found. Make sure your BedJet is powered on and not already connected to another app, then try again.</div>';
208
+ results.innerHTML = '<div class="notice">No BedJet devices found nearby. Make sure your BedJet is powered on and not connected to another app, then try again.</div>';
196
209
  } else {
197
210
  results.innerHTML = devices.map(renderCard).join('');
198
211
  }
@@ -201,70 +214,81 @@
201
214
  status.innerHTML = '';
202
215
  results.innerHTML = '<div class="notice error">Scan failed: ' + esc(err && err.message ? err.message : String(err)) + '</div>';
203
216
  } finally {
204
- setTimeout(() => { pWrap.style.display = 'none'; pFill.style.width = '0%'; }, 500);
205
- btn.disabled = false;
217
+ setTimeout(function () { pWrap.style.display = 'none'; pFill.style.width = '0%'; }, 500);
218
+ scanBtn.disabled = false;
206
219
  scanning = false;
207
220
  }
208
221
  }
209
222
 
210
- // ── Card rendering ────────────────────────────────────────────────────────
223
+ // ── Card ──────────────────────────────────────────────────────────────────
224
+ // Device name/address stored in data-* attributes — no inline JS strings
211
225
 
212
226
  function renderCard(d) {
213
- // Use address as a safe DOM-id suffix
214
- const safeid = d.address.replace(/[^a-zA-Z0-9]/g, '_');
215
- return [
216
- '<div class="device-card">',
217
- ' <div>',
218
- ' <div class="device-name">' + esc(d.name) + '</div>',
219
- ' <div class="device-addr">' + esc(d.address) + '</div>',
220
- ' </div>',
221
- ' <div class="device-right">',
222
- ' <button class="add-btn" id="btn_' + safeid + '"',
223
- ' onclick="addDevice(' + JSON.stringify(d.name) + ',' + JSON.stringify(d.address) + ',' + JSON.stringify(safeid) + ')">',
224
- ' Add to Config',
225
- ' </button>',
226
- ' <div class="card-msg" id="msg_' + safeid + '"></div>',
227
- ' </div>',
228
- '</div>',
229
- ].join('\n');
227
+ var card = document.createElement('div');
228
+ card.className = 'device-card';
229
+
230
+ var info = document.createElement('div');
231
+
232
+ var nameEl = document.createElement('div');
233
+ nameEl.className = 'device-name';
234
+ nameEl.textContent = d.name;
235
+
236
+ var addrEl = document.createElement('div');
237
+ addrEl.className = 'device-addr';
238
+ addrEl.textContent = d.address;
239
+
240
+ info.appendChild(nameEl);
241
+ info.appendChild(addrEl);
242
+
243
+ var right = document.createElement('div');
244
+ right.className = 'device-right';
245
+
246
+ var btn = document.createElement('button');
247
+ btn.className = 'add-btn';
248
+ btn.textContent = 'Add to Config';
249
+ btn.setAttribute('data-name', d.name);
250
+ btn.setAttribute('data-address', d.address);
251
+
252
+ var msgEl = document.createElement('div');
253
+ msgEl.className = 'card-msg';
254
+
255
+ right.appendChild(btn);
256
+ right.appendChild(msgEl);
257
+ card.appendChild(info);
258
+ card.appendChild(right);
259
+
260
+ // Store msgEl reference on btn for easy access in handler
261
+ btn._msgEl = msgEl;
262
+
263
+ return card.outerHTML;
230
264
  }
231
265
 
232
- // ── Add device via server endpoint ────────────────────────────────────────
233
- // Uses homebridge.request() — same path as the scan, which we know works.
234
- // The server reads/writes config.json directly; no client-side config APIs needed.
266
+ // ── Add device ─────────────────────────────────────────────────────────────
235
267
 
236
- async function addDevice(name, address, safeid) {
237
- const btn = document.getElementById('btn_' + safeid);
238
- const msg = document.getElementById('msg_' + safeid);
268
+ async function addDevice(btn, name, address) {
269
+ // Find the sibling message element
270
+ var msg = btn.parentElement ? btn.parentElement.querySelector('.card-msg') : null;
239
271
 
240
- // Immediate visual feedback before any async work
241
272
  btn.disabled = true;
242
273
  btn.textContent = 'Saving…';
243
- msg.textContent = '';
244
- msg.className = 'card-msg';
274
+ if (msg) { msg.textContent = ''; msg.className = 'card-msg'; }
245
275
 
246
- let result;
247
276
  try {
248
- result = await homebridge.request('/add-device', { name: name, address: address });
277
+ var result = await homebridge.request('/add-device', { name: name, address: address });
278
+
279
+ if (result && result.status === 'already_exists') {
280
+ btn.textContent = '✓ Already added';
281
+ if (msg) { msg.textContent = 'Already in config.'; msg.className = 'card-msg ok'; }
282
+ } else {
283
+ btn.textContent = '✓ Added!';
284
+ btn.style.background = '#145c30';
285
+ if (msg) { msg.textContent = 'Saved — restart Homebridge.'; msg.className = 'card-msg ok'; }
286
+ }
249
287
  } catch (err) {
250
- // Request itself failed — show error and re-enable
251
288
  btn.disabled = false;
252
289
  btn.textContent = 'Add to Config';
253
- msg.textContent = 'Error: ' + esc(err && err.message ? err.message : String(err));
254
- msg.className = 'card-msg err';
255
- return;
256
- }
257
-
258
- // Request succeeded
259
- if (result && result.status === 'already_exists') {
260
- btn.textContent = '✓ Already in config';
261
- msg.textContent = 'Restart Homebridge to see it.';
262
- msg.className = 'card-msg ok';
263
- } else {
264
- btn.textContent = '✓ Added!';
265
- btn.style.background = '#145c30';
266
- msg.textContent = 'Saved. Restart Homebridge.';
267
- msg.className = 'card-msg ok';
290
+ var errMsg = err && err.message ? err.message : String(err);
291
+ if (msg) { msg.textContent = 'Error: ' + errMsg; msg.className = 'card-msg err'; }
268
292
  }
269
293
  }
270
294
 
package/package.json CHANGED
@@ -1,10 +1,18 @@
1
1
  {
2
2
  "name": "homebridge-bedjet",
3
3
  "displayName": "BedJet",
4
- "version": "0.2.5",
4
+ "version": "0.2.7",
5
5
  "description": "Homebridge plugin for BedJet V3 via Bluetooth LE",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/OwenKelly05/homebridge-bedjet.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/OwenKelly05/homebridge-bedjet/issues"
14
+ },
15
+ "homepage": "https://github.com/OwenKelly05/homebridge-bedjet#readme",
8
16
  "scripts": {
9
17
  "build": "tsc",
10
18
  "watch": "tsc --watch",
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BedJet.js","sourceRoot":"","sources":["../../src/bedjet/BedJet.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAEtC,oCAAqC;AACrC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;AACpC,2CAWqB;AAErB,4CAA4C;AAC5C,MAAM,sBAAsB,GAAG,KAAM,CAAC;AAEtC,mCAAwC;AAExC,+EAA+E;AAC/E,qEAAqE;AAErE,MAAa,MAAO,SAAQ,qBAAY;IAatC,YACmB,MAAoB,EACpB,GAAW;QAE5B,KAAK,EAAE,CAAC;QAHS,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAQ;QAdtB,WAAM,GAAgB,EAAE,GAAG,qBAAa,EAAE,CAAC;QAC3C,eAAU,GAAkB,IAAI,CAAC;QACjC,oBAAe,GAAkB,IAAI,CAAC;QAEtC,sBAAiB,GAAG,CAAC,CAAC;QACtB,eAAU,GAAG,KAAK,CAAC;QACnB,cAAS,GAAG,KAAK,CAAC;QAElB,eAAU,GAAwB,IAAI,CAAC;QACvC,gBAAW,GAAsC,IAAI,CAAC;QACtD,eAAU,GAA0B,IAAI,CAAC;IAOjD,CAAC;IAED,IAAI,KAAK,KAAkB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAoB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9D,8EAA8E;IAE9E,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,qBAAqB,GAAG,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,2CAA2C;QAC3C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAE1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QAEjD,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAElF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EACjC,SAAS,CACV,CAAC;QAEF,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAmC,CAAC,CAAC,CAAC;QAE/E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,oCAAoC,CAAC,CAAC;QAExE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,6CAA6C,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gCAAoB,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,0CAA0C,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,+BAAmB,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,GAAI,MAAM,OAAO,CAAC,iBAAiB,CAAC,gCAAoB,CAAC,CAAC;QAE1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,uDAAuD,CAAC,CAAC;QAC3F,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACtC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,uCAAuC,CAAC,CAAC;QAE3E,kDAAkD;QAClD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,mCAAmC,GAAG,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,6BAAiB,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,iCAAiC,GAAG,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,+EAA+E;IAEvE,mBAAmB,CAAC,IAAY;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,uCAA2B,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,IAAI,CAAC,MAAM;YACd,cAAc,EAAM,IAAI,CAAC,CAAC,CAAC;YAC3B,gBAAgB,EAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,gBAAgB,EAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/B,iBAAiB,EAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/B,aAAa,EAAO,IAAI,CAAC,CAAC,CAAkB;YAC5C,QAAQ,EAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACtC,yDAAyD;YACzD,gBAAgB,EAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAC9C,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;YAChC,WAAW,EAAS,IAAI;SACzB,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,IAAI,IAAI,CAAC,MAAM,KAAK,iCAAqB,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,IAAI,CAAC,MAAM;YACd,UAAU,EAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,cAAc,EAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,UAAU,EAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,UAAU,EAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,UAAU,EAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,+EAA+E;IAEvE,KAAK,CAAC,YAAY,CAAC,OAAsB,EAAE,GAAG,IAAc;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,oDAAoD,CAAC,CAAC;gBACxF,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,kCAAkC,GAAG,EAAE,CAAC,CAC5E,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,uEAAuE;YACvE,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACzF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAmB;QACxC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,MAAM,EAAE,qCAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAoB;QACpC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAc;QACzC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,OAAe;QACtD,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAa,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAW;QACtB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAY,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAY,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc;QAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAY,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,+EAA+E;IAEvE,gBAAgB;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,mDAAmD,CAAC,CAAC;YACvF,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,EAAE,KAAM,CAAC,CAAC;IACb,CAAC;IAED,+EAA+E;IAEvE,eAAe;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,8EAA8E;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/F,uDAAuD;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,qBAAqB,KAAK,GAAG,IAAI,cAAc,IAAI,CAAC,iBAAiB,GAAG,CAC7F,CAAC;QACF,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,uBAAuB,GAAG,EAAE,CAAC,CACjE,CAAC;QACJ,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AArRD,wBAqRC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/bedjet/constants.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AAC7C,QAAA,oBAAoB,GAAQ,sCAAsC,CAAC;AACnE,QAAA,mBAAmB,GAAS,sCAAsC,CAAC;AACnE,QAAA,iBAAiB,GAAW,sCAAsC,CAAC;AACnE,QAAA,iBAAiB,GAAW,sCAAsC,CAAC;AACnE,QAAA,qBAAqB,GAAO,sCAAsC,CAAC;AACnE,QAAA,oBAAoB,GAAQ,sCAAsC,CAAC;AACnE,QAAA,oBAAoB,GAAQ,sCAAsC,CAAC;AACnE,QAAA,yBAAyB,GAAG,sCAAsC,CAAC;AAEhF,gEAAgE;AACnD,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAC9C,+DAA+D;AAClD,QAAA,qBAAqB,GAAS,EAAE,CAAC;AAEjC,QAAA,mBAAmB,GAAQ,KAAM,CAAC;AAClC,QAAA,sBAAsB,GAAK,CAAC,CAAC;AAE1C,kCAAkC;AAClC,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,uDAAiB,CAAA;IACjB,iDAAiB,CAAA;IACjB,mDAAiB,CAAA;IACjB,mEAAiB,CAAA;IACjB,iDAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,iDAAiB,CAAA;AACnB,CAAC,EARW,aAAa,6BAAb,aAAa,QAQxB;AAED,wEAAwE;AACxE,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,qDAAsB,CAAA;IACtB,+DAAsB,CAAA;IACtB,uEAAsB,CAAA;IACtB,yDAAsB,CAAA;IACtB,2DAAsB,CAAA;IACtB,qDAAsB,CAAA;IACtB,uDAAsB,CAAA;IACtB,2DAAsB,CAAA;IACtB,wDAAsB,CAAA;IACtB,wDAAsB,CAAA;AACxB,CAAC,EAXW,aAAa,6BAAb,aAAa,QAWxB;AAED,IAAY,YAsBX;AAtBD,WAAY,YAAY;IACtB,6CAAsB,CAAA;IACtB,+CAAsB,CAAA;IACtB,+CAAsB,CAAA;IACtB,iDAAsB,CAAA;IACtB,6CAAsB,CAAA;IACtB,iEAAsB,CAAA;IACtB,4CAAsB,CAAA;IACtB,4CAAsB,CAAA;IACtB,4CAAsB,CAAA;IACtB,wDAAsB,CAAA;IACtB,0DAAsB,CAAA;IACtB,sEAAsB,CAAA;IACtB,sEAAsB,CAAA;IACtB,oDAAsB,CAAA;IACtB,sDAAsB,CAAA;IACtB,gDAAsB,CAAA;IACtB,oDAAsB,CAAA;IACtB,4DAAsB,CAAA;IACtB,+DAAsB,CAAA;IACtB,+DAAsB,CAAA;IACtB,+DAAsB,CAAA;AACxB,CAAC,EAtBW,YAAY,4BAAZ,YAAY,QAsBvB;AAEY,QAAA,yBAAyB,GAAwC;IAC5E,CAAC,aAAa,CAAC,OAAO,CAAC,EAAQ,YAAY,CAAC,GAAG;IAC/C,CAAC,aAAa,CAAC,IAAI,CAAC,EAAW,YAAY,CAAC,IAAI;IAChD,CAAC,aAAa,CAAC,KAAK,CAAC,EAAU,YAAY,CAAC,KAAK;IACjD,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,aAAa;IACzD,CAAC,aAAa,CAAC,IAAI,CAAC,EAAW,YAAY,CAAC,IAAI;IAChD,CAAC,aAAa,CAAC,GAAG,CAAC,EAAY,YAAY,CAAC,GAAG;IAC/C,CAAC,aAAa,CAAC,IAAI,CAAC,EAAW,YAAY,CAAC,GAAG;CAChD,CAAC;AAEF,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,iEAAqB,CAAA;IACrB,mEAAqB,CAAA;IACrB,yEAAqB,CAAA;IACrB,8EAAsB,CAAA;AACxB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bedjet/types.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AA4B/B,QAAA,aAAa,GAAgB;IACxC,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,EAAE;IACrB,aAAa,EAAE,yBAAa,CAAC,OAAO;IACpC,QAAQ,EAAE,EAAE;IACZ,kBAAkB,EAAE,EAAE;IACtB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE,KAAK;CACnB,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,yCAAwE;AAExE,iBAAS,CAAC,GAAQ,EAAE,EAAE;IACpB,GAAG,CAAC,gBAAgB,CAAC,sBAAW,EAAE,wBAAa,EAAE,yBAAc,CAAC,CAAC;AACnE,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
Binary file
Binary file