@balancy/wasm 1.1.34 → 1.1.37

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.
@@ -392,6 +392,7 @@
392
392
  "__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_",
393
393
  "__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE",
394
394
  "_balancySetDataRequestedCallback",
395
+ "__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
395
396
  "_balancyViewAllowOptimization",
396
397
  "_balancyConfigLaunch",
397
398
  "_balancyConfigClose",
@@ -479,6 +480,7 @@
479
480
  "_balancyGetBoolArrayParam",
480
481
  "_balancyGetStringArrayParam",
481
482
  "_balancyFreeStringArray",
483
+ "_balancyDataRequestedResponse",
482
484
  "_balancyConfigGetStatus",
483
485
  "_balancyConfigLoadListOfGames",
484
486
  "_balancyConfigAuth",
@@ -541,6 +543,7 @@
541
543
  "_balancyWebViewRequest",
542
544
  "_balancyGetProductsIdAndType",
543
545
  "_balancyGetParsedObject",
546
+ "_balancyUnzipCompleted",
544
547
  "_balancyAuth_NameAndPassword",
545
548
  "_balancyLink_NameAndPassword",
546
549
  "__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE",
@@ -548,13 +551,12 @@
548
551
  "_balancyInventory_AddItems",
549
552
  "_balancyInventory_RemoveItems",
550
553
  "_balancyInventory_GetTotalItemsCount",
551
- "_js_call_typescript_bridge_connect",
552
- "_js_call_typescript_bridge_disconnect",
553
- "_js_call_typescript_bridge_is_connected",
554
- "_js_call_typescript_bridge_subscribe",
555
- "_js_call_typescript_bridge_send_message",
556
- "_js_call_typescript_bridge_send_ack",
557
- "_js_initialize_typescript_bridge",
554
+ "_js_init_websocket_storage",
555
+ "_js_websocket_connect",
556
+ "_js_websocket_disconnect",
557
+ "_js_websocket_subscribe",
558
+ "_js_websocket_send_message",
559
+ "_js_websocket_send_ack",
558
560
  "_main",
559
561
  "onRuntimeInitialized"
560
562
  ].forEach(function(prop) {
@@ -1452,40 +1454,210 @@
1452
1454
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1453
1455
  });
1454
1456
  }
1455
- function js_call_typescript_bridge_send_ack(connectionId, ackId, responseData) {
1456
- var success = false;
1457
- if (typeof Module !== "undefined" && Module.typescript_websocket_send_ack) {
1458
- try {
1459
- var responseStr = UTF8ToString(responseData);
1460
- console.log("[C++ -> TS Bridge] Send ack", connectionId, ackId);
1461
- Module.typescript_websocket_send_ack(connectionId, ackId, responseStr);
1462
- success = true;
1463
- } catch (error) {
1464
- console.error("[ERROR] calling typescript_websocket_send_ack via Module:", error);
1465
- }
1457
+ function js_websocket_connect(connectionId, url, authData) {
1458
+ if (!Module.balancyWebSockets) {
1459
+ Module.balancyWebSockets = new Map;
1466
1460
  }
1467
- if (!success && typeof window !== "undefined" && window.Module && window.Module.typescript_websocket_send_ack) {
1468
- try {
1469
- var responseStr1 = UTF8ToString(responseData);
1470
- console.log("[C++ -> TS Bridge] Send ack via window.Module", connectionId, ackId);
1471
- window.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr1);
1472
- success = true;
1473
- } catch (error) {
1474
- console.error("[ERROR] calling typescript_websocket_send_ack via window.Module:", error);
1475
- }
1461
+ var urlStr = UTF8ToString(url);
1462
+ var authDataStr = UTF8ToString(authData);
1463
+ var wsUrl = urlStr;
1464
+ if (wsUrl.startsWith("http://")) {
1465
+ wsUrl = wsUrl.replace("http://", "ws://");
1466
+ } else if (wsUrl.startsWith("https://")) {
1467
+ wsUrl = wsUrl.replace("https://", "wss://");
1468
+ }
1469
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1470
+ wsUrl = wsUrl.replace("wss://", "ws://");
1476
1471
  }
1477
- if (!success && typeof globalThis !== "undefined" && globalThis.Module && globalThis.Module.typescript_websocket_send_ack) {
1472
+ if (!wsUrl.endsWith("/")) {
1473
+ wsUrl += "/";
1474
+ }
1475
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1476
+ try {
1477
+ var socket = new WebSocket(wsUrl);
1478
+ socket.binaryType = "arraybuffer";
1479
+ var connection = {
1480
+ socket: socket,
1481
+ authData: authDataStr,
1482
+ subscribedEvents: new Set
1483
+ };
1484
+ Module.balancyWebSockets.set(connectionId, connection);
1485
+ socket.onopen = function() {
1486
+ var emptyMsg = "";
1487
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1488
+ var emptyPtr = _malloc(emptyLen);
1489
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1490
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1491
+ _free(emptyPtr);
1492
+ };
1493
+ socket.onclose = function() {
1494
+ var closeMsg = "Connection closed";
1495
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1496
+ var closePtr = _malloc(closeLen);
1497
+ stringToUTF8(closeMsg, closePtr, closeLen);
1498
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1499
+ _free(closePtr);
1500
+ Module.balancyWebSockets.delete(connectionId);
1501
+ };
1502
+ socket.onerror = function(error) {
1503
+ console.error("[WebSocket] Connection failed:", error);
1504
+ var errorMsg = "WebSocket connection failed";
1505
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1506
+ var errorPtr = _malloc(errorLen);
1507
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1508
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1509
+ _free(errorPtr);
1510
+ };
1511
+ socket.onmessage = function(event) {
1512
+ if (typeof event.data !== "string") return;
1513
+ var message = event.data;
1514
+ if (message.startsWith("0")) {
1515
+ try {
1516
+ var authJson = JSON.parse(connection.authData);
1517
+ var connectMessage = "40" + JSON.stringify({
1518
+ game_id: authJson.gameId,
1519
+ user_id: authJson.userId,
1520
+ env: authJson.environment,
1521
+ token: authJson.token,
1522
+ device_id: authJson.deviceId || ""
1523
+ });
1524
+ socket.send(connectMessage);
1525
+ } catch (e) {
1526
+ console.error("[WebSocket] Failed to send auth:", e);
1527
+ socket.send("40");
1528
+ }
1529
+ return;
1530
+ }
1531
+ if (message.startsWith("2")) {
1532
+ socket.send("3");
1533
+ return;
1534
+ }
1535
+ if (message.startsWith("40")) {
1536
+ return;
1537
+ }
1538
+ if (message.startsWith("41")) {
1539
+ return;
1540
+ }
1541
+ if (message.startsWith("42")) {
1542
+ var afterType = message.substring(2);
1543
+ var ackId = 0;
1544
+ var hasAckId = false;
1545
+ var jsonPart = afterType;
1546
+ var jsonStart = afterType.indexOf("[");
1547
+ if (jsonStart > 0) {
1548
+ var ackIdStr = afterType.substring(0, jsonStart);
1549
+ var parsedAckId = parseInt(ackIdStr);
1550
+ if (!isNaN(parsedAckId)) {
1551
+ hasAckId = true;
1552
+ ackId = parsedAckId;
1553
+ jsonPart = afterType.substring(jsonStart);
1554
+ }
1555
+ }
1556
+ try {
1557
+ var eventArray = JSON.parse(jsonPart);
1558
+ if (eventArray && eventArray.length >= 1) {
1559
+ var eventName = eventArray[0];
1560
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1561
+ if (eventName === "system:ping") {
1562
+ if (hasAckId) {
1563
+ socket.send("43" + ackId + "[]");
1564
+ }
1565
+ return;
1566
+ }
1567
+ if (eventName === "profile:updated") {
1568
+ if (hasAckId) {
1569
+ socket.send("43" + ackId + "[]");
1570
+ }
1571
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1572
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1573
+ var eventNamePtr = _malloc(eventNameLen);
1574
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1575
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1576
+ var eventDataPtr = _malloc(eventDataLen);
1577
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1578
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, false, 0);
1579
+ _free(eventNamePtr);
1580
+ _free(eventDataPtr);
1581
+ }
1582
+ return;
1583
+ }
1584
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1585
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1586
+ var eventNamePtr = _malloc(eventNameLen);
1587
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1588
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1589
+ var eventDataPtr = _malloc(eventDataLen);
1590
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1591
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, hasAckId, ackId);
1592
+ _free(eventNamePtr);
1593
+ _free(eventDataPtr);
1594
+ } else {
1595
+ if (hasAckId) {
1596
+ socket.send("43" + ackId + "[]");
1597
+ }
1598
+ }
1599
+ }
1600
+ } catch (e) {
1601
+ console.error("[WebSocket] Failed to parse event:", e);
1602
+ }
1603
+ return;
1604
+ }
1605
+ if (message.startsWith("44")) {
1606
+ var errorJson = message.substring(2);
1607
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1608
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1609
+ var errorPtr = _malloc(errorLen);
1610
+ stringToUTF8(errorJson, errorPtr, errorLen);
1611
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1612
+ _free(errorPtr);
1613
+ return;
1614
+ }
1615
+ };
1616
+ } catch (e) {
1617
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1618
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1619
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1620
+ var errorPtr = _malloc(errorLen);
1621
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1622
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1623
+ _free(errorPtr);
1624
+ }
1625
+ }
1626
+ function js_websocket_disconnect(connectionId) {
1627
+ if (!Module.balancyWebSockets) return;
1628
+ var connection = Module.balancyWebSockets.get(connectionId);
1629
+ if (connection && connection.socket) {
1478
1630
  try {
1479
- var responseStr2 = UTF8ToString(responseData);
1480
- console.log("[C++ -> TS Bridge] Send ack via globalThis.Module", connectionId, ackId);
1481
- globalThis.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr2);
1482
- success = true;
1483
- } catch (error) {
1484
- console.error("[ERROR] calling typescript_websocket_send_ack via globalThis.Module:", error);
1485
- }
1631
+ connection.socket.close();
1632
+ } catch (e) {}
1633
+ }
1634
+ Module.balancyWebSockets.delete(connectionId);
1635
+ }
1636
+ function js_websocket_subscribe(connectionId, eventName) {
1637
+ if (!Module.balancyWebSockets) return;
1638
+ var eventNameStr = UTF8ToString(eventName);
1639
+ var connection = Module.balancyWebSockets.get(connectionId);
1640
+ if (connection) {
1641
+ connection.subscribedEvents.add(eventNameStr);
1486
1642
  }
1487
- if (!success) {
1488
- console.error("[ERROR] TypeScript WebSocket Bridge send ack method not found");
1643
+ }
1644
+ function js_websocket_send_message(connectionId, eventName, data) {
1645
+ if (!Module.balancyWebSockets) return;
1646
+ var eventNameStr = UTF8ToString(eventName);
1647
+ var dataStr = UTF8ToString(data);
1648
+ var connection = Module.balancyWebSockets.get(connectionId);
1649
+ if (connection && connection.socket) {
1650
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1651
+ connection.socket.send(message);
1652
+ }
1653
+ }
1654
+ function js_websocket_send_ack(connectionId, ackId, responseData) {
1655
+ if (!Module.balancyWebSockets) return;
1656
+ var responseDataStr = UTF8ToString(responseData);
1657
+ var connection = Module.balancyWebSockets.get(connectionId);
1658
+ if (connection && connection.socket) {
1659
+ var message = "43" + ackId + responseDataStr;
1660
+ connection.socket.send(message);
1489
1661
  }
1490
1662
  }
1491
1663
  var ExitStatus = function ExitStatus(status) {
@@ -7334,8 +7506,12 @@
7334
7506
  invoke_viiiiiiiiii: invoke_viiiiiiiiii,
7335
7507
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7336
7508
  invoke_viijii: invoke_viijii,
7337
- js_call_typescript_bridge_send_ack: js_call_typescript_bridge_send_ack,
7338
7509
  js_fetch: js_fetch,
7510
+ js_websocket_connect: js_websocket_connect,
7511
+ js_websocket_disconnect: js_websocket_disconnect,
7512
+ js_websocket_send_ack: js_websocket_send_ack,
7513
+ js_websocket_send_message: js_websocket_send_message,
7514
+ js_websocket_subscribe: js_websocket_subscribe,
7339
7515
  random_get: _random_get
7340
7516
  };
7341
7517
  var wasmExports;
@@ -7388,6 +7564,7 @@
7388
7564
  Module["__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_"] = createExportWrapper("_Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_", 2);
7389
7565
  Module["__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE", 3);
7390
7566
  Module["_balancySetDataRequestedCallback"] = createExportWrapper("balancySetDataRequestedCallback", 1);
7567
+ Module["__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7391
7568
  Module["_balancyViewAllowOptimization"] = createExportWrapper("balancyViewAllowOptimization", 1);
7392
7569
  Module["_balancyConfigLaunch"] = createExportWrapper("balancyConfigLaunch", 1);
7393
7570
  Module["_balancyConfigClose"] = createExportWrapper("balancyConfigClose", 0);
@@ -7445,9 +7622,9 @@
7445
7622
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7446
7623
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7447
7624
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7448
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7449
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7450
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7625
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7626
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7627
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7451
7628
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7452
7629
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7453
7630
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7477,6 +7654,7 @@
7477
7654
  Module["_balancyGetBoolArrayParam"] = createExportWrapper("balancyGetBoolArrayParam", 3);
7478
7655
  Module["_balancyGetStringArrayParam"] = createExportWrapper("balancyGetStringArrayParam", 3);
7479
7656
  Module["_balancyFreeStringArray"] = createExportWrapper("balancyFreeStringArray", 2);
7657
+ Module["_balancyDataRequestedResponse"] = createExportWrapper("balancyDataRequestedResponse", 2);
7480
7658
  Module["_balancyConfigGetStatus"] = createExportWrapper("balancyConfigGetStatus", 0);
7481
7659
  Module["_balancyConfigLoadListOfGames"] = createExportWrapper("balancyConfigLoadListOfGames", 1);
7482
7660
  Module["_balancyConfigAuth"] = createExportWrapper("balancyConfigAuth", 3);
@@ -7539,6 +7717,7 @@
7539
7717
  Module["_balancyWebViewRequest"] = createExportWrapper("balancyWebViewRequest", 3);
7540
7718
  Module["_balancyGetProductsIdAndType"] = createExportWrapper("balancyGetProductsIdAndType", 1);
7541
7719
  Module["_balancyGetParsedObject"] = createExportWrapper("balancyGetParsedObject", 3);
7720
+ Module["_balancyUnzipCompleted"] = createExportWrapper("balancyUnzipCompleted", 2);
7542
7721
  Module["_balancyAuth_NameAndPassword"] = createExportWrapper("balancyAuth_NameAndPassword", 4);
7543
7722
  Module["_balancyLink_NameAndPassword"] = createExportWrapper("balancyLink_NameAndPassword", 5);
7544
7723
  Module["__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE", 2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balancy/wasm",
3
- "version": "1.1.34",
3
+ "version": "1.1.37",
4
4
  "scripts": {
5
5
  "build:web": "vite build --mode web",
6
6
  "build:node": "vite build --mode node",