@hangtime/grip-connect 0.6.2 → 0.8.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 +25 -10
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/interfaces/base.interface.d.ts +1 -0
- package/dist/interfaces/base.interface.d.ts.map +1 -0
- package/dist/interfaces/base.interface.js +1 -0
- package/dist/interfaces/base.interface.js.map +1 -0
- package/dist/interfaces/callback.interface.d.ts +1 -0
- package/dist/interfaces/callback.interface.d.ts.map +1 -0
- package/dist/interfaces/callback.interface.js +1 -0
- package/dist/interfaces/callback.interface.js.map +1 -0
- package/dist/interfaces/command.interface.d.ts +7 -0
- package/dist/interfaces/command.interface.d.ts.map +1 -0
- package/dist/interfaces/command.interface.js +1 -0
- package/dist/interfaces/command.interface.js.map +1 -0
- package/dist/interfaces/device/climbro.interface.d.ts +1 -0
- package/dist/interfaces/device/climbro.interface.d.ts.map +1 -0
- package/dist/interfaces/device/climbro.interface.js +1 -0
- package/dist/interfaces/device/climbro.interface.js.map +1 -0
- package/dist/interfaces/device/entralpi.interface.d.ts +1 -0
- package/dist/interfaces/device/entralpi.interface.d.ts.map +1 -0
- package/dist/interfaces/device/entralpi.interface.js +1 -0
- package/dist/interfaces/device/entralpi.interface.js.map +1 -0
- package/dist/interfaces/device/forceboard.interface.d.ts +30 -3
- package/dist/interfaces/device/forceboard.interface.d.ts.map +1 -0
- package/dist/interfaces/device/forceboard.interface.js +1 -0
- package/dist/interfaces/device/forceboard.interface.js.map +1 -0
- package/dist/interfaces/device/kilterboard.interface.d.ts +1 -0
- package/dist/interfaces/device/kilterboard.interface.d.ts.map +1 -0
- package/dist/interfaces/device/kilterboard.interface.js +1 -0
- package/dist/interfaces/device/kilterboard.interface.js.map +1 -0
- package/dist/interfaces/device/motherboard.interface.d.ts +1 -0
- package/dist/interfaces/device/motherboard.interface.d.ts.map +1 -0
- package/dist/interfaces/device/motherboard.interface.js +1 -0
- package/dist/interfaces/device/motherboard.interface.js.map +1 -0
- package/dist/interfaces/device/mysmartboard.interface.d.ts +1 -0
- package/dist/interfaces/device/mysmartboard.interface.d.ts.map +1 -0
- package/dist/interfaces/device/mysmartboard.interface.js +1 -0
- package/dist/interfaces/device/mysmartboard.interface.js.map +1 -0
- package/dist/interfaces/device/progressor.interface.d.ts +1 -0
- package/dist/interfaces/device/progressor.interface.d.ts.map +1 -0
- package/dist/interfaces/device/progressor.interface.js +1 -0
- package/dist/interfaces/device/progressor.interface.js.map +1 -0
- package/dist/interfaces/device/smartboard-pro.interface.d.ts +7 -0
- package/dist/interfaces/device/smartboard-pro.interface.d.ts.map +1 -0
- package/dist/interfaces/device/smartboard-pro.interface.js +2 -0
- package/dist/interfaces/device/smartboard-pro.interface.js.map +1 -0
- package/dist/interfaces/device/wh-c06.interface.d.ts +1 -0
- package/dist/interfaces/device/wh-c06.interface.d.ts.map +1 -0
- package/dist/interfaces/device/wh-c06.interface.js +1 -0
- package/dist/interfaces/device/wh-c06.interface.js.map +1 -0
- package/dist/interfaces/device.interface.d.ts +1 -0
- package/dist/interfaces/device.interface.d.ts.map +1 -0
- package/dist/interfaces/device.interface.js +1 -0
- package/dist/interfaces/device.interface.js.map +1 -0
- package/dist/interfaces/download.interface.d.ts +1 -0
- package/dist/interfaces/download.interface.d.ts.map +1 -0
- package/dist/interfaces/download.interface.js +1 -0
- package/dist/interfaces/download.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +2 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/models/base.model.d.ts +1 -0
- package/dist/models/base.model.d.ts.map +1 -0
- package/dist/models/base.model.js +1 -0
- package/dist/models/base.model.js.map +1 -0
- package/dist/models/device/climbro.model.d.ts +1 -0
- package/dist/models/device/climbro.model.d.ts.map +1 -0
- package/dist/models/device/climbro.model.js +1 -0
- package/dist/models/device/climbro.model.js.map +1 -0
- package/dist/models/device/entralpi.model.d.ts +3 -2
- package/dist/models/device/entralpi.model.d.ts.map +1 -0
- package/dist/models/device/entralpi.model.js +3 -3
- package/dist/models/device/entralpi.model.js.map +1 -0
- package/dist/models/device/forceboard.model.d.ts +30 -5
- package/dist/models/device/forceboard.model.d.ts.map +1 -0
- package/dist/models/device/forceboard.model.js +97 -54
- package/dist/models/device/forceboard.model.js.map +1 -0
- package/dist/models/device/kilterboard.model.d.ts +1 -0
- package/dist/models/device/kilterboard.model.d.ts.map +1 -0
- package/dist/models/device/kilterboard.model.js +1 -0
- package/dist/models/device/kilterboard.model.js.map +1 -0
- package/dist/models/device/motherboard.model.d.ts +3 -2
- package/dist/models/device/motherboard.model.d.ts.map +1 -0
- package/dist/models/device/motherboard.model.js +3 -3
- package/dist/models/device/motherboard.model.js.map +1 -0
- package/dist/models/device/mysmartboard.model.d.ts +1 -0
- package/dist/models/device/mysmartboard.model.d.ts.map +1 -0
- package/dist/models/device/mysmartboard.model.js +1 -0
- package/dist/models/device/mysmartboard.model.js.map +1 -0
- package/dist/models/device/progressor.model.d.ts +3 -2
- package/dist/models/device/progressor.model.d.ts.map +1 -0
- package/dist/models/device/progressor.model.js +3 -3
- package/dist/models/device/progressor.model.js.map +1 -0
- package/dist/models/device/smartboard-pro.model.d.ts +11 -0
- package/dist/models/device/smartboard-pro.model.d.ts.map +1 -0
- package/dist/models/device/smartboard-pro.model.js +52 -0
- package/dist/models/device/smartboard-pro.model.js.map +1 -0
- package/dist/models/device/wh-c06.model.d.ts +1 -0
- package/dist/models/device/wh-c06.model.d.ts.map +1 -0
- package/dist/models/device/wh-c06.model.js +1 -0
- package/dist/models/device/wh-c06.model.js.map +1 -0
- package/dist/models/device.model.d.ts +6 -5
- package/dist/models/device.model.d.ts.map +1 -0
- package/dist/models/device.model.js +25 -38
- package/dist/models/device.model.js.map +1 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -0
- package/package.json +2 -5
- package/src/index.ts +2 -0
- package/src/interfaces/command.interface.ts +9 -0
- package/src/interfaces/device/forceboard.interface.ts +33 -3
- package/src/interfaces/device/smartboard-pro.interface.ts +6 -0
- package/src/interfaces/index.ts +2 -0
- package/src/models/device/entralpi.model.ts +2 -4
- package/src/models/device/forceboard.model.ts +104 -54
- package/src/models/device/motherboard.model.ts +2 -4
- package/src/models/device/progressor.model.ts +2 -4
- package/src/models/device/smartboard-pro.model.ts +53 -0
- package/src/models/device.model.ts +27 -43
- package/src/models/index.ts +2 -0
- package/tsconfig.json +4 -0
- package/deno.json +0 -8
|
@@ -344,7 +344,7 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
344
344
|
* const csvData = device.downloadToCSV();
|
|
345
345
|
* console.log(csvData);
|
|
346
346
|
*/
|
|
347
|
-
|
|
347
|
+
protected downloadToCSV = (): string => {
|
|
348
348
|
const packets = [...this.downloadPackets]
|
|
349
349
|
if (packets.length === 0) {
|
|
350
350
|
return ""
|
|
@@ -374,7 +374,7 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
374
374
|
* const jsonData = device.downloadToJSON();
|
|
375
375
|
* console.log(jsonData);
|
|
376
376
|
*/
|
|
377
|
-
|
|
377
|
+
protected downloadToJSON = (): string => {
|
|
378
378
|
// Pretty print JSON with 2-space indentation
|
|
379
379
|
return JSON.stringify(this.downloadPackets, null, 2)
|
|
380
380
|
}
|
|
@@ -388,7 +388,7 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
388
388
|
* const xmlData = device.downloadToXML();
|
|
389
389
|
* console.log(xmlData);
|
|
390
390
|
*/
|
|
391
|
-
|
|
391
|
+
protected downloadToXML = (): string => {
|
|
392
392
|
const xmlPackets = this.downloadPackets
|
|
393
393
|
.map((packet) => {
|
|
394
394
|
const samples = packet.samples.map((sample) => `<sample>${sample}</sample>`).join("")
|
|
@@ -439,39 +439,33 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
439
439
|
|
|
440
440
|
const fileName = `data-export-${date}-${time}.${format}`
|
|
441
441
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
}
|
|
442
|
+
const mimeTypes = {
|
|
443
|
+
csv: "text/csv",
|
|
444
|
+
json: "application/json",
|
|
445
|
+
xml: "application/xml",
|
|
446
|
+
}
|
|
448
447
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
448
|
+
// Create a Blob object containing the data
|
|
449
|
+
const blob = new Blob([content], { type: mimeTypes[format] })
|
|
450
|
+
// Create a URL for the Blob
|
|
451
|
+
const url = globalThis.URL.createObjectURL(blob)
|
|
453
452
|
|
|
454
|
-
|
|
455
|
-
|
|
453
|
+
// Create a link element
|
|
454
|
+
const link = document.createElement("a")
|
|
456
455
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
456
|
+
// Set link attributes
|
|
457
|
+
link.href = url
|
|
458
|
+
link.setAttribute("download", fileName)
|
|
460
459
|
|
|
461
|
-
|
|
462
|
-
|
|
460
|
+
// Append link to document body
|
|
461
|
+
document.body.appendChild(link)
|
|
463
462
|
|
|
464
|
-
|
|
465
|
-
|
|
463
|
+
// Programmatically click the link to trigger the download
|
|
464
|
+
link.click()
|
|
466
465
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
} else {
|
|
471
|
-
const { writeFile } = await import("node:fs/promises")
|
|
472
|
-
await writeFile(fileName, content)
|
|
473
|
-
console.log(`File saved as ${fileName}`)
|
|
474
|
-
}
|
|
466
|
+
// Clean up: remove the link and revoke the URL
|
|
467
|
+
document.body.removeChild(link)
|
|
468
|
+
globalThis.URL.revokeObjectURL(url)
|
|
475
469
|
}
|
|
476
470
|
|
|
477
471
|
/**
|
|
@@ -501,28 +495,18 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
501
495
|
if (typeof navigator !== "undefined" && navigator.bluetooth) {
|
|
502
496
|
return navigator.bluetooth
|
|
503
497
|
}
|
|
504
|
-
|
|
505
|
-
const process = await import("node:process")
|
|
506
|
-
|
|
507
|
-
// If running in Node, Bun, or Deno environment
|
|
508
|
-
if (typeof process !== "undefined" && process.versions?.node) {
|
|
509
|
-
const { bluetooth } = await import("webbluetooth")
|
|
510
|
-
return bluetooth
|
|
511
|
-
}
|
|
512
|
-
|
|
513
498
|
// If none of the above conditions are met, throw an error.
|
|
514
499
|
throw new Error("Bluetooth not available.")
|
|
515
500
|
}
|
|
516
501
|
|
|
517
502
|
/**
|
|
518
503
|
* Handles notifications received from a characteristic.
|
|
519
|
-
* @param {
|
|
504
|
+
* @param {DataView} value - The notification event.
|
|
520
505
|
*
|
|
521
506
|
* @example
|
|
522
507
|
* device.handleNotifications(someCharacteristic);
|
|
523
508
|
*/
|
|
524
|
-
protected handleNotifications = (
|
|
525
|
-
const value = characteristic.value
|
|
509
|
+
protected handleNotifications = (value: DataView): void => {
|
|
526
510
|
if (!value) return
|
|
527
511
|
|
|
528
512
|
this.updateTimestamp()
|
|
@@ -617,7 +601,7 @@ export abstract class Device extends BaseModel implements IDevice {
|
|
|
617
601
|
const target = event.target as BluetoothRemoteGATTCharacteristic
|
|
618
602
|
if (target && target.value) {
|
|
619
603
|
// Delegate the data to handleNotifications method
|
|
620
|
-
this.handleNotifications(target)
|
|
604
|
+
this.handleNotifications(target.value)
|
|
621
605
|
}
|
|
622
606
|
}
|
|
623
607
|
// Attach the event listener to listen for changes in the characteristic's value
|
package/src/models/index.ts
CHANGED
package/tsconfig.json
CHANGED