@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.
package/dist/Balancy.wasm CHANGED
Binary file
package/dist/index.cjs.js CHANGED
@@ -390,6 +390,7 @@ var Balancy = function() {
390
390
  "__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_",
391
391
  "__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE",
392
392
  "_balancySetDataRequestedCallback",
393
+ "__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
393
394
  "_balancyViewAllowOptimization",
394
395
  "_balancyConfigLaunch",
395
396
  "_balancyConfigClose",
@@ -477,6 +478,7 @@ var Balancy = function() {
477
478
  "_balancyGetBoolArrayParam",
478
479
  "_balancyGetStringArrayParam",
479
480
  "_balancyFreeStringArray",
481
+ "_balancyDataRequestedResponse",
480
482
  "_balancyConfigGetStatus",
481
483
  "_balancyConfigLoadListOfGames",
482
484
  "_balancyConfigAuth",
@@ -539,6 +541,7 @@ var Balancy = function() {
539
541
  "_balancyWebViewRequest",
540
542
  "_balancyGetProductsIdAndType",
541
543
  "_balancyGetParsedObject",
544
+ "_balancyUnzipCompleted",
542
545
  "_balancyAuth_NameAndPassword",
543
546
  "_balancyLink_NameAndPassword",
544
547
  "__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE",
@@ -546,13 +549,12 @@ var Balancy = function() {
546
549
  "_balancyInventory_AddItems",
547
550
  "_balancyInventory_RemoveItems",
548
551
  "_balancyInventory_GetTotalItemsCount",
549
- "_js_call_typescript_bridge_connect",
550
- "_js_call_typescript_bridge_disconnect",
551
- "_js_call_typescript_bridge_is_connected",
552
- "_js_call_typescript_bridge_subscribe",
553
- "_js_call_typescript_bridge_send_message",
554
- "_js_call_typescript_bridge_send_ack",
555
- "_js_initialize_typescript_bridge",
552
+ "_js_init_websocket_storage",
553
+ "_js_websocket_connect",
554
+ "_js_websocket_disconnect",
555
+ "_js_websocket_subscribe",
556
+ "_js_websocket_send_message",
557
+ "_js_websocket_send_ack",
556
558
  "_main",
557
559
  "onRuntimeInitialized"
558
560
  ].forEach(function(prop) {
@@ -1444,40 +1446,210 @@ var Balancy = function() {
1444
1446
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1445
1447
  });
1446
1448
  }
1447
- function js_call_typescript_bridge_send_ack(connectionId, ackId, responseData) {
1448
- var success = false;
1449
- if (typeof Module !== "undefined" && Module.typescript_websocket_send_ack) {
1450
- try {
1451
- var responseStr = UTF8ToString(responseData);
1452
- console.log("[C++ -> TS Bridge] Send ack", connectionId, ackId);
1453
- Module.typescript_websocket_send_ack(connectionId, ackId, responseStr);
1454
- success = true;
1455
- } catch (error) {
1456
- console.error("[ERROR] calling typescript_websocket_send_ack via Module:", error);
1457
- }
1449
+ function js_websocket_connect(connectionId, url, authData) {
1450
+ if (!Module.balancyWebSockets) {
1451
+ Module.balancyWebSockets = new Map;
1458
1452
  }
1459
- if (!success && typeof window !== "undefined" && window.Module && window.Module.typescript_websocket_send_ack) {
1460
- try {
1461
- var responseStr1 = UTF8ToString(responseData);
1462
- console.log("[C++ -> TS Bridge] Send ack via window.Module", connectionId, ackId);
1463
- window.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr1);
1464
- success = true;
1465
- } catch (error) {
1466
- console.error("[ERROR] calling typescript_websocket_send_ack via window.Module:", error);
1467
- }
1453
+ var urlStr = UTF8ToString(url);
1454
+ var authDataStr = UTF8ToString(authData);
1455
+ var wsUrl = urlStr;
1456
+ if (wsUrl.startsWith("http://")) {
1457
+ wsUrl = wsUrl.replace("http://", "ws://");
1458
+ } else if (wsUrl.startsWith("https://")) {
1459
+ wsUrl = wsUrl.replace("https://", "wss://");
1460
+ }
1461
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1462
+ wsUrl = wsUrl.replace("wss://", "ws://");
1468
1463
  }
1469
- if (!success && typeof globalThis !== "undefined" && globalThis.Module && globalThis.Module.typescript_websocket_send_ack) {
1464
+ if (!wsUrl.endsWith("/")) {
1465
+ wsUrl += "/";
1466
+ }
1467
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1468
+ try {
1469
+ var socket = new WebSocket(wsUrl);
1470
+ socket.binaryType = "arraybuffer";
1471
+ var connection = {
1472
+ socket: socket,
1473
+ authData: authDataStr,
1474
+ subscribedEvents: new Set
1475
+ };
1476
+ Module.balancyWebSockets.set(connectionId, connection);
1477
+ socket.onopen = function() {
1478
+ var emptyMsg = "";
1479
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1480
+ var emptyPtr = _malloc(emptyLen);
1481
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1482
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1483
+ _free(emptyPtr);
1484
+ };
1485
+ socket.onclose = function() {
1486
+ var closeMsg = "Connection closed";
1487
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1488
+ var closePtr = _malloc(closeLen);
1489
+ stringToUTF8(closeMsg, closePtr, closeLen);
1490
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1491
+ _free(closePtr);
1492
+ Module.balancyWebSockets.delete(connectionId);
1493
+ };
1494
+ socket.onerror = function(error) {
1495
+ console.error("[WebSocket] Connection failed:", error);
1496
+ var errorMsg = "WebSocket connection failed";
1497
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1498
+ var errorPtr = _malloc(errorLen);
1499
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1500
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1501
+ _free(errorPtr);
1502
+ };
1503
+ socket.onmessage = function(event) {
1504
+ if (typeof event.data !== "string") return;
1505
+ var message = event.data;
1506
+ if (message.startsWith("0")) {
1507
+ try {
1508
+ var authJson = JSON.parse(connection.authData);
1509
+ var connectMessage = "40" + JSON.stringify({
1510
+ game_id: authJson.gameId,
1511
+ user_id: authJson.userId,
1512
+ env: authJson.environment,
1513
+ token: authJson.token,
1514
+ device_id: authJson.deviceId || ""
1515
+ });
1516
+ socket.send(connectMessage);
1517
+ } catch (e) {
1518
+ console.error("[WebSocket] Failed to send auth:", e);
1519
+ socket.send("40");
1520
+ }
1521
+ return;
1522
+ }
1523
+ if (message.startsWith("2")) {
1524
+ socket.send("3");
1525
+ return;
1526
+ }
1527
+ if (message.startsWith("40")) {
1528
+ return;
1529
+ }
1530
+ if (message.startsWith("41")) {
1531
+ return;
1532
+ }
1533
+ if (message.startsWith("42")) {
1534
+ var afterType = message.substring(2);
1535
+ var ackId = 0;
1536
+ var hasAckId = false;
1537
+ var jsonPart = afterType;
1538
+ var jsonStart = afterType.indexOf("[");
1539
+ if (jsonStart > 0) {
1540
+ var ackIdStr = afterType.substring(0, jsonStart);
1541
+ var parsedAckId = parseInt(ackIdStr);
1542
+ if (!isNaN(parsedAckId)) {
1543
+ hasAckId = true;
1544
+ ackId = parsedAckId;
1545
+ jsonPart = afterType.substring(jsonStart);
1546
+ }
1547
+ }
1548
+ try {
1549
+ var eventArray = JSON.parse(jsonPart);
1550
+ if (eventArray && eventArray.length >= 1) {
1551
+ var eventName = eventArray[0];
1552
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1553
+ if (eventName === "system:ping") {
1554
+ if (hasAckId) {
1555
+ socket.send("43" + ackId + "[]");
1556
+ }
1557
+ return;
1558
+ }
1559
+ if (eventName === "profile:updated") {
1560
+ if (hasAckId) {
1561
+ socket.send("43" + ackId + "[]");
1562
+ }
1563
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1564
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1565
+ var eventNamePtr = _malloc(eventNameLen);
1566
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1567
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1568
+ var eventDataPtr = _malloc(eventDataLen);
1569
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1570
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, false, 0);
1571
+ _free(eventNamePtr);
1572
+ _free(eventDataPtr);
1573
+ }
1574
+ return;
1575
+ }
1576
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1577
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1578
+ var eventNamePtr = _malloc(eventNameLen);
1579
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1580
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1581
+ var eventDataPtr = _malloc(eventDataLen);
1582
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1583
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, hasAckId, ackId);
1584
+ _free(eventNamePtr);
1585
+ _free(eventDataPtr);
1586
+ } else {
1587
+ if (hasAckId) {
1588
+ socket.send("43" + ackId + "[]");
1589
+ }
1590
+ }
1591
+ }
1592
+ } catch (e) {
1593
+ console.error("[WebSocket] Failed to parse event:", e);
1594
+ }
1595
+ return;
1596
+ }
1597
+ if (message.startsWith("44")) {
1598
+ var errorJson = message.substring(2);
1599
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1600
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1601
+ var errorPtr = _malloc(errorLen);
1602
+ stringToUTF8(errorJson, errorPtr, errorLen);
1603
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1604
+ _free(errorPtr);
1605
+ return;
1606
+ }
1607
+ };
1608
+ } catch (e) {
1609
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1610
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1611
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1612
+ var errorPtr = _malloc(errorLen);
1613
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1614
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1615
+ _free(errorPtr);
1616
+ }
1617
+ }
1618
+ function js_websocket_disconnect(connectionId) {
1619
+ if (!Module.balancyWebSockets) return;
1620
+ var connection = Module.balancyWebSockets.get(connectionId);
1621
+ if (connection && connection.socket) {
1470
1622
  try {
1471
- var responseStr2 = UTF8ToString(responseData);
1472
- console.log("[C++ -> TS Bridge] Send ack via globalThis.Module", connectionId, ackId);
1473
- globalThis.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr2);
1474
- success = true;
1475
- } catch (error) {
1476
- console.error("[ERROR] calling typescript_websocket_send_ack via globalThis.Module:", error);
1477
- }
1623
+ connection.socket.close();
1624
+ } catch (e) {}
1625
+ }
1626
+ Module.balancyWebSockets.delete(connectionId);
1627
+ }
1628
+ function js_websocket_subscribe(connectionId, eventName) {
1629
+ if (!Module.balancyWebSockets) return;
1630
+ var eventNameStr = UTF8ToString(eventName);
1631
+ var connection = Module.balancyWebSockets.get(connectionId);
1632
+ if (connection) {
1633
+ connection.subscribedEvents.add(eventNameStr);
1478
1634
  }
1479
- if (!success) {
1480
- console.error("[ERROR] TypeScript WebSocket Bridge send ack method not found");
1635
+ }
1636
+ function js_websocket_send_message(connectionId, eventName, data) {
1637
+ if (!Module.balancyWebSockets) return;
1638
+ var eventNameStr = UTF8ToString(eventName);
1639
+ var dataStr = UTF8ToString(data);
1640
+ var connection = Module.balancyWebSockets.get(connectionId);
1641
+ if (connection && connection.socket) {
1642
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1643
+ connection.socket.send(message);
1644
+ }
1645
+ }
1646
+ function js_websocket_send_ack(connectionId, ackId, responseData) {
1647
+ if (!Module.balancyWebSockets) return;
1648
+ var responseDataStr = UTF8ToString(responseData);
1649
+ var connection = Module.balancyWebSockets.get(connectionId);
1650
+ if (connection && connection.socket) {
1651
+ var message = "43" + ackId + responseDataStr;
1652
+ connection.socket.send(message);
1481
1653
  }
1482
1654
  }
1483
1655
  var ExitStatus = function ExitStatus(status) {
@@ -7301,8 +7473,12 @@ var Balancy = function() {
7301
7473
  invoke_viiiiiiiiii: invoke_viiiiiiiiii,
7302
7474
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7303
7475
  invoke_viijii: invoke_viijii,
7304
- js_call_typescript_bridge_send_ack: js_call_typescript_bridge_send_ack,
7305
7476
  js_fetch: js_fetch,
7477
+ js_websocket_connect: js_websocket_connect,
7478
+ js_websocket_disconnect: js_websocket_disconnect,
7479
+ js_websocket_send_ack: js_websocket_send_ack,
7480
+ js_websocket_send_message: js_websocket_send_message,
7481
+ js_websocket_subscribe: js_websocket_subscribe,
7306
7482
  random_get: _random_get
7307
7483
  };
7308
7484
  var wasmExports;
@@ -7355,6 +7531,7 @@ var Balancy = function() {
7355
7531
  Module["__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_"] = createExportWrapper("_Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_", 2);
7356
7532
  Module["__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE", 3);
7357
7533
  Module["_balancySetDataRequestedCallback"] = createExportWrapper("balancySetDataRequestedCallback", 1);
7534
+ Module["__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7358
7535
  Module["_balancyViewAllowOptimization"] = createExportWrapper("balancyViewAllowOptimization", 1);
7359
7536
  Module["_balancyConfigLaunch"] = createExportWrapper("balancyConfigLaunch", 1);
7360
7537
  Module["_balancyConfigClose"] = createExportWrapper("balancyConfigClose", 0);
@@ -7412,9 +7589,9 @@ var Balancy = function() {
7412
7589
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7413
7590
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7414
7591
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7415
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7416
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7417
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7592
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7593
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7594
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7418
7595
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7419
7596
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7420
7597
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7444,6 +7621,7 @@ var Balancy = function() {
7444
7621
  Module["_balancyGetBoolArrayParam"] = createExportWrapper("balancyGetBoolArrayParam", 3);
7445
7622
  Module["_balancyGetStringArrayParam"] = createExportWrapper("balancyGetStringArrayParam", 3);
7446
7623
  Module["_balancyFreeStringArray"] = createExportWrapper("balancyFreeStringArray", 2);
7624
+ Module["_balancyDataRequestedResponse"] = createExportWrapper("balancyDataRequestedResponse", 2);
7447
7625
  Module["_balancyConfigGetStatus"] = createExportWrapper("balancyConfigGetStatus", 0);
7448
7626
  Module["_balancyConfigLoadListOfGames"] = createExportWrapper("balancyConfigLoadListOfGames", 1);
7449
7627
  Module["_balancyConfigAuth"] = createExportWrapper("balancyConfigAuth", 3);
@@ -7506,6 +7684,7 @@ var Balancy = function() {
7506
7684
  Module["_balancyWebViewRequest"] = createExportWrapper("balancyWebViewRequest", 3);
7507
7685
  Module["_balancyGetProductsIdAndType"] = createExportWrapper("balancyGetProductsIdAndType", 1);
7508
7686
  Module["_balancyGetParsedObject"] = createExportWrapper("balancyGetParsedObject", 3);
7687
+ Module["_balancyUnzipCompleted"] = createExportWrapper("balancyUnzipCompleted", 2);
7509
7688
  Module["_balancyAuth_NameAndPassword"] = createExportWrapper("balancyAuth_NameAndPassword", 4);
7510
7689
  Module["_balancyLink_NameAndPassword"] = createExportWrapper("balancyLink_NameAndPassword", 5);
7511
7690
  Module["__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE", 2);