@haex-space/vault-sdk 2.5.87 → 2.5.90

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/dist/svelte.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { H as HaexVaultSdk, S as StorageAPI } from './client-Y1a7Vkgk.mjs';
1
+ import { H as HaexVaultSdk, S as StorageAPI } from './client-DwGxAKzx.mjs';
2
2
  import * as drizzle_orm_sqlite_proxy from 'drizzle-orm/sqlite-proxy';
3
3
  import { Readable } from 'svelte/store';
4
4
  import { H as HaexHubConfig, a as ExtensionInfo, A as ApplicationContext } from './types-D4ft4_oG.mjs';
package/dist/svelte.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { H as HaexVaultSdk, S as StorageAPI } from './client-DGSamcol.js';
1
+ import { H as HaexVaultSdk, S as StorageAPI } from './client-s83JV-k0.js';
2
2
  import * as drizzle_orm_sqlite_proxy from 'drizzle-orm/sqlite-proxy';
3
3
  import { Readable } from 'svelte/store';
4
4
  import { H as HaexHubConfig, a as ExtensionInfo, A as ApplicationContext } from './types-D4ft4_oG.js';
package/dist/svelte.js CHANGED
@@ -513,6 +513,52 @@ var REMOTE_STORAGE_COMMANDS = {
513
513
  list: "extension_remote_storage_list"
514
514
  };
515
515
 
516
+ // src/commands/localsend.ts
517
+ var LOCALSEND_COMMANDS = {
518
+ // Initialization
519
+ /** Initialize LocalSend (generate identity, etc.) */
520
+ init: "localsend_init",
521
+ /** Get our device info */
522
+ getDeviceInfo: "localsend_get_device_info",
523
+ /** Set our device alias */
524
+ setAlias: "localsend_set_alias",
525
+ // Settings
526
+ /** Get current settings */
527
+ getSettings: "localsend_get_settings",
528
+ /** Update settings */
529
+ setSettings: "localsend_set_settings",
530
+ // Discovery (desktop only)
531
+ /** Start device discovery via multicast UDP */
532
+ startDiscovery: "localsend_start_discovery",
533
+ /** Stop device discovery */
534
+ stopDiscovery: "localsend_stop_discovery",
535
+ /** Get list of discovered devices */
536
+ getDevices: "localsend_get_devices",
537
+ // Network scan (mobile only)
538
+ /** Scan network for devices via HTTP */
539
+ scanNetwork: "localsend_scan_network",
540
+ // Server (receiving files)
541
+ /** Start the HTTPS server for receiving files */
542
+ startServer: "localsend_start_server",
543
+ /** Stop the HTTPS server */
544
+ stopServer: "localsend_stop_server",
545
+ /** Get server status */
546
+ getServerStatus: "localsend_get_server_status",
547
+ /** Get pending incoming transfer requests */
548
+ getPendingTransfers: "localsend_get_pending_transfers",
549
+ /** Accept an incoming transfer */
550
+ acceptTransfer: "localsend_accept_transfer",
551
+ /** Reject an incoming transfer */
552
+ rejectTransfer: "localsend_reject_transfer",
553
+ // Client (sending files)
554
+ /** Prepare files for sending - collect metadata */
555
+ prepareFiles: "localsend_prepare_files",
556
+ /** Send files to a device */
557
+ sendFiles: "localsend_send_files",
558
+ /** Cancel an outgoing transfer */
559
+ cancelSend: "localsend_cancel_send"
560
+ };
561
+
516
562
  // src/api/storage.ts
517
563
  var StorageAPI = class {
518
564
  constructor(client) {
@@ -1150,6 +1196,177 @@ var BackendManagement = class {
1150
1196
  }
1151
1197
  };
1152
1198
 
1199
+ // src/api/localsend.ts
1200
+ var LOCALSEND_EVENTS = {
1201
+ /** New device discovered */
1202
+ deviceDiscovered: "localsend:device-discovered",
1203
+ /** Device lost (no longer visible) */
1204
+ deviceLost: "localsend:device-lost",
1205
+ /** New incoming transfer request */
1206
+ transferRequest: "localsend:transfer-request",
1207
+ /** Transfer progress update */
1208
+ transferProgress: "localsend:transfer-progress",
1209
+ /** Transfer completed */
1210
+ transferComplete: "localsend:transfer-complete",
1211
+ /** Transfer failed */
1212
+ transferFailed: "localsend:transfer-failed"
1213
+ };
1214
+ var LocalSendAPI = class {
1215
+ constructor(client) {
1216
+ this.client = client;
1217
+ }
1218
+ // ==========================================================================
1219
+ // Initialization
1220
+ // ==========================================================================
1221
+ /**
1222
+ * Initialize LocalSend (generate identity, etc.)
1223
+ * Call this on app start
1224
+ * @returns Our device info
1225
+ */
1226
+ async init() {
1227
+ return this.client.request(LOCALSEND_COMMANDS.init, {});
1228
+ }
1229
+ /**
1230
+ * Get our device info
1231
+ * @returns Our device info
1232
+ */
1233
+ async getDeviceInfo() {
1234
+ return this.client.request(LOCALSEND_COMMANDS.getDeviceInfo, {});
1235
+ }
1236
+ /**
1237
+ * Set our device alias (display name)
1238
+ * @param alias New alias
1239
+ */
1240
+ async setAlias(alias) {
1241
+ await this.client.request(LOCALSEND_COMMANDS.setAlias, { alias });
1242
+ }
1243
+ // ==========================================================================
1244
+ // Settings
1245
+ // ==========================================================================
1246
+ /**
1247
+ * Get current LocalSend settings
1248
+ * @returns Settings
1249
+ */
1250
+ async getSettings() {
1251
+ return this.client.request(LOCALSEND_COMMANDS.getSettings, {});
1252
+ }
1253
+ /**
1254
+ * Update LocalSend settings
1255
+ * @param settings New settings
1256
+ */
1257
+ async setSettings(settings) {
1258
+ await this.client.request(LOCALSEND_COMMANDS.setSettings, { settings });
1259
+ }
1260
+ // ==========================================================================
1261
+ // Discovery (Desktop only - multicast UDP)
1262
+ // ==========================================================================
1263
+ /**
1264
+ * Start device discovery via multicast UDP
1265
+ * Desktop only - on mobile use scanNetwork()
1266
+ */
1267
+ async startDiscovery() {
1268
+ await this.client.request(LOCALSEND_COMMANDS.startDiscovery, {});
1269
+ }
1270
+ /**
1271
+ * Stop device discovery
1272
+ * Desktop only
1273
+ */
1274
+ async stopDiscovery() {
1275
+ await this.client.request(LOCALSEND_COMMANDS.stopDiscovery, {});
1276
+ }
1277
+ /**
1278
+ * Get list of discovered devices
1279
+ * @returns Array of discovered devices
1280
+ */
1281
+ async getDevices() {
1282
+ return this.client.request(LOCALSEND_COMMANDS.getDevices, {});
1283
+ }
1284
+ // ==========================================================================
1285
+ // Network Scan (Mobile only - HTTP)
1286
+ // ==========================================================================
1287
+ /**
1288
+ * Scan network for devices via HTTP
1289
+ * Mobile only - on desktop use startDiscovery()
1290
+ * @returns Array of discovered devices
1291
+ */
1292
+ async scanNetwork() {
1293
+ return this.client.request(LOCALSEND_COMMANDS.scanNetwork, {});
1294
+ }
1295
+ // ==========================================================================
1296
+ // Server (Receiving files)
1297
+ // ==========================================================================
1298
+ /**
1299
+ * Start the HTTPS server for receiving files
1300
+ * @param port Optional port to listen on (default: 53317)
1301
+ * @returns Server info with port, fingerprint, and addresses
1302
+ */
1303
+ async startServer(port) {
1304
+ return this.client.request(LOCALSEND_COMMANDS.startServer, { port });
1305
+ }
1306
+ /**
1307
+ * Stop the HTTPS server
1308
+ */
1309
+ async stopServer() {
1310
+ await this.client.request(LOCALSEND_COMMANDS.stopServer, {});
1311
+ }
1312
+ /**
1313
+ * Get server status
1314
+ * @returns Server status
1315
+ */
1316
+ async getServerStatus() {
1317
+ return this.client.request(LOCALSEND_COMMANDS.getServerStatus, {});
1318
+ }
1319
+ /**
1320
+ * Get pending incoming transfer requests
1321
+ * @returns Array of pending transfers
1322
+ */
1323
+ async getPendingTransfers() {
1324
+ return this.client.request(LOCALSEND_COMMANDS.getPendingTransfers, {});
1325
+ }
1326
+ /**
1327
+ * Accept an incoming transfer
1328
+ * @param sessionId Session ID of the transfer
1329
+ * @param saveDir Directory to save files to
1330
+ */
1331
+ async acceptTransfer(sessionId, saveDir) {
1332
+ await this.client.request(LOCALSEND_COMMANDS.acceptTransfer, { sessionId, saveDir });
1333
+ }
1334
+ /**
1335
+ * Reject an incoming transfer
1336
+ * @param sessionId Session ID of the transfer
1337
+ */
1338
+ async rejectTransfer(sessionId) {
1339
+ await this.client.request(LOCALSEND_COMMANDS.rejectTransfer, { sessionId });
1340
+ }
1341
+ // ==========================================================================
1342
+ // Client (Sending files)
1343
+ // ==========================================================================
1344
+ /**
1345
+ * Prepare files for sending - collect metadata
1346
+ * @param paths Array of file/folder paths to send
1347
+ * @returns Array of file info with metadata
1348
+ */
1349
+ async prepareFiles(paths) {
1350
+ return this.client.request(LOCALSEND_COMMANDS.prepareFiles, { paths });
1351
+ }
1352
+ /**
1353
+ * Send files to a device
1354
+ * @param device Target device
1355
+ * @param files Files to send (from prepareFiles)
1356
+ * @returns Session ID for tracking progress
1357
+ */
1358
+ async sendFiles(device, files) {
1359
+ return this.client.request(LOCALSEND_COMMANDS.sendFiles, { device, files });
1360
+ }
1361
+ /**
1362
+ * Cancel an outgoing transfer
1363
+ * @param sessionId Session ID of the transfer
1364
+ */
1365
+ async cancelSend(sessionId) {
1366
+ await this.client.request(LOCALSEND_COMMANDS.cancelSend, { sessionId });
1367
+ }
1368
+ };
1369
+
1153
1370
  // src/client/tableName.ts
1154
1371
  function validatePublicKey(publicKey) {
1155
1372
  if (!publicKey || typeof publicKey !== "string" || publicKey.trim() === "") {
@@ -1348,6 +1565,105 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1348
1565
  console.error("[HaexVault SDK] Failed to setup sync tables updated listener:", error);
1349
1566
  log("Failed to setup sync tables updated listener:", error);
1350
1567
  }
1568
+ await setupLocalSendEventListeners(log, onEvent);
1569
+ }
1570
+ async function setupLocalSendEventListeners(log, onEvent) {
1571
+ const { listen } = getTauriEvent();
1572
+ try {
1573
+ await listen(LOCALSEND_EVENTS.deviceDiscovered, (event) => {
1574
+ console.log("[HaexVault SDK] LocalSend device discovered:", event.payload);
1575
+ log("Received LocalSend device discovered event:", event);
1576
+ if (event.payload) {
1577
+ onEvent({
1578
+ type: LOCALSEND_EVENTS.deviceDiscovered,
1579
+ data: event.payload,
1580
+ timestamp: Date.now()
1581
+ });
1582
+ }
1583
+ });
1584
+ console.log("[HaexVault SDK] LocalSend device discovered listener registered");
1585
+ } catch (error) {
1586
+ console.error("[HaexVault SDK] Failed to setup LocalSend device discovered listener:", error);
1587
+ }
1588
+ try {
1589
+ await listen(LOCALSEND_EVENTS.deviceLost, (event) => {
1590
+ console.log("[HaexVault SDK] LocalSend device lost:", event.payload);
1591
+ log("Received LocalSend device lost event:", event);
1592
+ if (event.payload) {
1593
+ onEvent({
1594
+ type: LOCALSEND_EVENTS.deviceLost,
1595
+ data: event.payload,
1596
+ timestamp: Date.now()
1597
+ });
1598
+ }
1599
+ });
1600
+ console.log("[HaexVault SDK] LocalSend device lost listener registered");
1601
+ } catch (error) {
1602
+ console.error("[HaexVault SDK] Failed to setup LocalSend device lost listener:", error);
1603
+ }
1604
+ try {
1605
+ await listen(LOCALSEND_EVENTS.transferRequest, (event) => {
1606
+ console.log("[HaexVault SDK] LocalSend transfer request:", event.payload);
1607
+ log("Received LocalSend transfer request event:", event);
1608
+ if (event.payload) {
1609
+ onEvent({
1610
+ type: LOCALSEND_EVENTS.transferRequest,
1611
+ data: event.payload,
1612
+ timestamp: Date.now()
1613
+ });
1614
+ }
1615
+ });
1616
+ console.log("[HaexVault SDK] LocalSend transfer request listener registered");
1617
+ } catch (error) {
1618
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer request listener:", error);
1619
+ }
1620
+ try {
1621
+ await listen(LOCALSEND_EVENTS.transferProgress, (event) => {
1622
+ log("Received LocalSend transfer progress event:", event);
1623
+ if (event.payload) {
1624
+ onEvent({
1625
+ type: LOCALSEND_EVENTS.transferProgress,
1626
+ data: event.payload,
1627
+ timestamp: Date.now()
1628
+ });
1629
+ }
1630
+ });
1631
+ console.log("[HaexVault SDK] LocalSend transfer progress listener registered");
1632
+ } catch (error) {
1633
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer progress listener:", error);
1634
+ }
1635
+ try {
1636
+ await listen(LOCALSEND_EVENTS.transferComplete, (event) => {
1637
+ console.log("[HaexVault SDK] LocalSend transfer complete:", event.payload);
1638
+ log("Received LocalSend transfer complete event:", event);
1639
+ if (event.payload) {
1640
+ onEvent({
1641
+ type: LOCALSEND_EVENTS.transferComplete,
1642
+ data: event.payload,
1643
+ timestamp: Date.now()
1644
+ });
1645
+ }
1646
+ });
1647
+ console.log("[HaexVault SDK] LocalSend transfer complete listener registered");
1648
+ } catch (error) {
1649
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer complete listener:", error);
1650
+ }
1651
+ try {
1652
+ await listen(LOCALSEND_EVENTS.transferFailed, (event) => {
1653
+ console.log("[HaexVault SDK] LocalSend transfer failed:", event.payload);
1654
+ log("Received LocalSend transfer failed event:", event);
1655
+ if (event.payload) {
1656
+ onEvent({
1657
+ type: LOCALSEND_EVENTS.transferFailed,
1658
+ data: event.payload,
1659
+ timestamp: Date.now()
1660
+ });
1661
+ }
1662
+ });
1663
+ console.log("[HaexVault SDK] LocalSend transfer failed listener registered");
1664
+ } catch (error) {
1665
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer failed listener:", error);
1666
+ }
1351
1667
  }
1352
1668
  async function initIframeMode(ctx, log, messageHandler, request) {
1353
1669
  if (!isInIframe()) {
@@ -1681,6 +1997,7 @@ var HaexVaultSdk = class {
1681
1997
  this.web = new WebAPI(this);
1682
1998
  this.permissions = new PermissionsAPI(this);
1683
1999
  this.remoteStorage = new RemoteStorageAPI(this);
2000
+ this.localsend = new LocalSendAPI(this);
1684
2001
  installConsoleForwarding(this.config.debug);
1685
2002
  this.readyPromise = new Promise((resolve) => {
1686
2003
  this.resolveReady = resolve;