@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.
@@ -1,6 +1,6 @@
1
1
  import * as nuxt_app from 'nuxt/app';
2
2
  import { ShallowRef } from 'vue';
3
- import { H as HaexVaultSdk } from '../client-Y1a7Vkgk.mjs';
3
+ import { H as HaexVaultSdk } from '../client-DwGxAKzx.mjs';
4
4
  import { A as ApplicationContext } from '../types-D4ft4_oG.mjs';
5
5
  import 'drizzle-orm/sqlite-proxy';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import * as nuxt_app from 'nuxt/app';
2
2
  import { ShallowRef } from 'vue';
3
- import { H as HaexVaultSdk } from '../client-DGSamcol.js';
3
+ import { H as HaexVaultSdk } from '../client-s83JV-k0.js';
4
4
  import { A as ApplicationContext } from '../types-D4ft4_oG.js';
5
5
  import 'drizzle-orm/sqlite-proxy';
6
6
 
@@ -187,6 +187,52 @@ var REMOTE_STORAGE_COMMANDS = {
187
187
  list: "extension_remote_storage_list"
188
188
  };
189
189
 
190
+ // src/commands/localsend.ts
191
+ var LOCALSEND_COMMANDS = {
192
+ // Initialization
193
+ /** Initialize LocalSend (generate identity, etc.) */
194
+ init: "localsend_init",
195
+ /** Get our device info */
196
+ getDeviceInfo: "localsend_get_device_info",
197
+ /** Set our device alias */
198
+ setAlias: "localsend_set_alias",
199
+ // Settings
200
+ /** Get current settings */
201
+ getSettings: "localsend_get_settings",
202
+ /** Update settings */
203
+ setSettings: "localsend_set_settings",
204
+ // Discovery (desktop only)
205
+ /** Start device discovery via multicast UDP */
206
+ startDiscovery: "localsend_start_discovery",
207
+ /** Stop device discovery */
208
+ stopDiscovery: "localsend_stop_discovery",
209
+ /** Get list of discovered devices */
210
+ getDevices: "localsend_get_devices",
211
+ // Network scan (mobile only)
212
+ /** Scan network for devices via HTTP */
213
+ scanNetwork: "localsend_scan_network",
214
+ // Server (receiving files)
215
+ /** Start the HTTPS server for receiving files */
216
+ startServer: "localsend_start_server",
217
+ /** Stop the HTTPS server */
218
+ stopServer: "localsend_stop_server",
219
+ /** Get server status */
220
+ getServerStatus: "localsend_get_server_status",
221
+ /** Get pending incoming transfer requests */
222
+ getPendingTransfers: "localsend_get_pending_transfers",
223
+ /** Accept an incoming transfer */
224
+ acceptTransfer: "localsend_accept_transfer",
225
+ /** Reject an incoming transfer */
226
+ rejectTransfer: "localsend_reject_transfer",
227
+ // Client (sending files)
228
+ /** Prepare files for sending - collect metadata */
229
+ prepareFiles: "localsend_prepare_files",
230
+ /** Send files to a device */
231
+ sendFiles: "localsend_send_files",
232
+ /** Cancel an outgoing transfer */
233
+ cancelSend: "localsend_cancel_send"
234
+ };
235
+
190
236
  // src/api/storage.ts
191
237
  var StorageAPI = class {
192
238
  constructor(client) {
@@ -824,6 +870,177 @@ var BackendManagement = class {
824
870
  }
825
871
  };
826
872
 
873
+ // src/api/localsend.ts
874
+ var LOCALSEND_EVENTS = {
875
+ /** New device discovered */
876
+ deviceDiscovered: "localsend:device-discovered",
877
+ /** Device lost (no longer visible) */
878
+ deviceLost: "localsend:device-lost",
879
+ /** New incoming transfer request */
880
+ transferRequest: "localsend:transfer-request",
881
+ /** Transfer progress update */
882
+ transferProgress: "localsend:transfer-progress",
883
+ /** Transfer completed */
884
+ transferComplete: "localsend:transfer-complete",
885
+ /** Transfer failed */
886
+ transferFailed: "localsend:transfer-failed"
887
+ };
888
+ var LocalSendAPI = class {
889
+ constructor(client) {
890
+ this.client = client;
891
+ }
892
+ // ==========================================================================
893
+ // Initialization
894
+ // ==========================================================================
895
+ /**
896
+ * Initialize LocalSend (generate identity, etc.)
897
+ * Call this on app start
898
+ * @returns Our device info
899
+ */
900
+ async init() {
901
+ return this.client.request(LOCALSEND_COMMANDS.init, {});
902
+ }
903
+ /**
904
+ * Get our device info
905
+ * @returns Our device info
906
+ */
907
+ async getDeviceInfo() {
908
+ return this.client.request(LOCALSEND_COMMANDS.getDeviceInfo, {});
909
+ }
910
+ /**
911
+ * Set our device alias (display name)
912
+ * @param alias New alias
913
+ */
914
+ async setAlias(alias) {
915
+ await this.client.request(LOCALSEND_COMMANDS.setAlias, { alias });
916
+ }
917
+ // ==========================================================================
918
+ // Settings
919
+ // ==========================================================================
920
+ /**
921
+ * Get current LocalSend settings
922
+ * @returns Settings
923
+ */
924
+ async getSettings() {
925
+ return this.client.request(LOCALSEND_COMMANDS.getSettings, {});
926
+ }
927
+ /**
928
+ * Update LocalSend settings
929
+ * @param settings New settings
930
+ */
931
+ async setSettings(settings) {
932
+ await this.client.request(LOCALSEND_COMMANDS.setSettings, { settings });
933
+ }
934
+ // ==========================================================================
935
+ // Discovery (Desktop only - multicast UDP)
936
+ // ==========================================================================
937
+ /**
938
+ * Start device discovery via multicast UDP
939
+ * Desktop only - on mobile use scanNetwork()
940
+ */
941
+ async startDiscovery() {
942
+ await this.client.request(LOCALSEND_COMMANDS.startDiscovery, {});
943
+ }
944
+ /**
945
+ * Stop device discovery
946
+ * Desktop only
947
+ */
948
+ async stopDiscovery() {
949
+ await this.client.request(LOCALSEND_COMMANDS.stopDiscovery, {});
950
+ }
951
+ /**
952
+ * Get list of discovered devices
953
+ * @returns Array of discovered devices
954
+ */
955
+ async getDevices() {
956
+ return this.client.request(LOCALSEND_COMMANDS.getDevices, {});
957
+ }
958
+ // ==========================================================================
959
+ // Network Scan (Mobile only - HTTP)
960
+ // ==========================================================================
961
+ /**
962
+ * Scan network for devices via HTTP
963
+ * Mobile only - on desktop use startDiscovery()
964
+ * @returns Array of discovered devices
965
+ */
966
+ async scanNetwork() {
967
+ return this.client.request(LOCALSEND_COMMANDS.scanNetwork, {});
968
+ }
969
+ // ==========================================================================
970
+ // Server (Receiving files)
971
+ // ==========================================================================
972
+ /**
973
+ * Start the HTTPS server for receiving files
974
+ * @param port Optional port to listen on (default: 53317)
975
+ * @returns Server info with port, fingerprint, and addresses
976
+ */
977
+ async startServer(port) {
978
+ return this.client.request(LOCALSEND_COMMANDS.startServer, { port });
979
+ }
980
+ /**
981
+ * Stop the HTTPS server
982
+ */
983
+ async stopServer() {
984
+ await this.client.request(LOCALSEND_COMMANDS.stopServer, {});
985
+ }
986
+ /**
987
+ * Get server status
988
+ * @returns Server status
989
+ */
990
+ async getServerStatus() {
991
+ return this.client.request(LOCALSEND_COMMANDS.getServerStatus, {});
992
+ }
993
+ /**
994
+ * Get pending incoming transfer requests
995
+ * @returns Array of pending transfers
996
+ */
997
+ async getPendingTransfers() {
998
+ return this.client.request(LOCALSEND_COMMANDS.getPendingTransfers, {});
999
+ }
1000
+ /**
1001
+ * Accept an incoming transfer
1002
+ * @param sessionId Session ID of the transfer
1003
+ * @param saveDir Directory to save files to
1004
+ */
1005
+ async acceptTransfer(sessionId, saveDir) {
1006
+ await this.client.request(LOCALSEND_COMMANDS.acceptTransfer, { sessionId, saveDir });
1007
+ }
1008
+ /**
1009
+ * Reject an incoming transfer
1010
+ * @param sessionId Session ID of the transfer
1011
+ */
1012
+ async rejectTransfer(sessionId) {
1013
+ await this.client.request(LOCALSEND_COMMANDS.rejectTransfer, { sessionId });
1014
+ }
1015
+ // ==========================================================================
1016
+ // Client (Sending files)
1017
+ // ==========================================================================
1018
+ /**
1019
+ * Prepare files for sending - collect metadata
1020
+ * @param paths Array of file/folder paths to send
1021
+ * @returns Array of file info with metadata
1022
+ */
1023
+ async prepareFiles(paths) {
1024
+ return this.client.request(LOCALSEND_COMMANDS.prepareFiles, { paths });
1025
+ }
1026
+ /**
1027
+ * Send files to a device
1028
+ * @param device Target device
1029
+ * @param files Files to send (from prepareFiles)
1030
+ * @returns Session ID for tracking progress
1031
+ */
1032
+ async sendFiles(device, files) {
1033
+ return this.client.request(LOCALSEND_COMMANDS.sendFiles, { device, files });
1034
+ }
1035
+ /**
1036
+ * Cancel an outgoing transfer
1037
+ * @param sessionId Session ID of the transfer
1038
+ */
1039
+ async cancelSend(sessionId) {
1040
+ await this.client.request(LOCALSEND_COMMANDS.cancelSend, { sessionId });
1041
+ }
1042
+ };
1043
+
827
1044
  // src/messages.ts
828
1045
  var HAEXSPACE_MESSAGE_TYPES = {
829
1046
  /** Debug message for development/troubleshooting */
@@ -1096,6 +1313,105 @@ async function setupTauriEventListeners(ctx, log, onEvent, onContextChange) {
1096
1313
  console.error("[HaexVault SDK] Failed to setup sync tables updated listener:", error);
1097
1314
  log("Failed to setup sync tables updated listener:", error);
1098
1315
  }
1316
+ await setupLocalSendEventListeners(log, onEvent);
1317
+ }
1318
+ async function setupLocalSendEventListeners(log, onEvent) {
1319
+ const { listen } = getTauriEvent();
1320
+ try {
1321
+ await listen(LOCALSEND_EVENTS.deviceDiscovered, (event) => {
1322
+ console.log("[HaexVault SDK] LocalSend device discovered:", event.payload);
1323
+ log("Received LocalSend device discovered event:", event);
1324
+ if (event.payload) {
1325
+ onEvent({
1326
+ type: LOCALSEND_EVENTS.deviceDiscovered,
1327
+ data: event.payload,
1328
+ timestamp: Date.now()
1329
+ });
1330
+ }
1331
+ });
1332
+ console.log("[HaexVault SDK] LocalSend device discovered listener registered");
1333
+ } catch (error) {
1334
+ console.error("[HaexVault SDK] Failed to setup LocalSend device discovered listener:", error);
1335
+ }
1336
+ try {
1337
+ await listen(LOCALSEND_EVENTS.deviceLost, (event) => {
1338
+ console.log("[HaexVault SDK] LocalSend device lost:", event.payload);
1339
+ log("Received LocalSend device lost event:", event);
1340
+ if (event.payload) {
1341
+ onEvent({
1342
+ type: LOCALSEND_EVENTS.deviceLost,
1343
+ data: event.payload,
1344
+ timestamp: Date.now()
1345
+ });
1346
+ }
1347
+ });
1348
+ console.log("[HaexVault SDK] LocalSend device lost listener registered");
1349
+ } catch (error) {
1350
+ console.error("[HaexVault SDK] Failed to setup LocalSend device lost listener:", error);
1351
+ }
1352
+ try {
1353
+ await listen(LOCALSEND_EVENTS.transferRequest, (event) => {
1354
+ console.log("[HaexVault SDK] LocalSend transfer request:", event.payload);
1355
+ log("Received LocalSend transfer request event:", event);
1356
+ if (event.payload) {
1357
+ onEvent({
1358
+ type: LOCALSEND_EVENTS.transferRequest,
1359
+ data: event.payload,
1360
+ timestamp: Date.now()
1361
+ });
1362
+ }
1363
+ });
1364
+ console.log("[HaexVault SDK] LocalSend transfer request listener registered");
1365
+ } catch (error) {
1366
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer request listener:", error);
1367
+ }
1368
+ try {
1369
+ await listen(LOCALSEND_EVENTS.transferProgress, (event) => {
1370
+ log("Received LocalSend transfer progress event:", event);
1371
+ if (event.payload) {
1372
+ onEvent({
1373
+ type: LOCALSEND_EVENTS.transferProgress,
1374
+ data: event.payload,
1375
+ timestamp: Date.now()
1376
+ });
1377
+ }
1378
+ });
1379
+ console.log("[HaexVault SDK] LocalSend transfer progress listener registered");
1380
+ } catch (error) {
1381
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer progress listener:", error);
1382
+ }
1383
+ try {
1384
+ await listen(LOCALSEND_EVENTS.transferComplete, (event) => {
1385
+ console.log("[HaexVault SDK] LocalSend transfer complete:", event.payload);
1386
+ log("Received LocalSend transfer complete event:", event);
1387
+ if (event.payload) {
1388
+ onEvent({
1389
+ type: LOCALSEND_EVENTS.transferComplete,
1390
+ data: event.payload,
1391
+ timestamp: Date.now()
1392
+ });
1393
+ }
1394
+ });
1395
+ console.log("[HaexVault SDK] LocalSend transfer complete listener registered");
1396
+ } catch (error) {
1397
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer complete listener:", error);
1398
+ }
1399
+ try {
1400
+ await listen(LOCALSEND_EVENTS.transferFailed, (event) => {
1401
+ console.log("[HaexVault SDK] LocalSend transfer failed:", event.payload);
1402
+ log("Received LocalSend transfer failed event:", event);
1403
+ if (event.payload) {
1404
+ onEvent({
1405
+ type: LOCALSEND_EVENTS.transferFailed,
1406
+ data: event.payload,
1407
+ timestamp: Date.now()
1408
+ });
1409
+ }
1410
+ });
1411
+ console.log("[HaexVault SDK] LocalSend transfer failed listener registered");
1412
+ } catch (error) {
1413
+ console.error("[HaexVault SDK] Failed to setup LocalSend transfer failed listener:", error);
1414
+ }
1099
1415
  }
1100
1416
  async function initIframeMode(ctx, log, messageHandler, request) {
1101
1417
  if (!isInIframe()) {
@@ -1429,6 +1745,7 @@ var HaexVaultSdk = class {
1429
1745
  this.web = new WebAPI(this);
1430
1746
  this.permissions = new PermissionsAPI(this);
1431
1747
  this.remoteStorage = new RemoteStorageAPI(this);
1748
+ this.localsend = new LocalSendAPI(this);
1432
1749
  installConsoleForwarding(this.config.debug);
1433
1750
  this.readyPromise = new Promise((resolve) => {
1434
1751
  this.resolveReady = resolve;