@balancy/wasm 1.1.34 → 1.1.36

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/index.es.js CHANGED
@@ -385,6 +385,7 @@ var Balancy = function() {
385
385
  "__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_",
386
386
  "__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE",
387
387
  "_balancySetDataRequestedCallback",
388
+ "__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
388
389
  "_balancyViewAllowOptimization",
389
390
  "_balancyConfigLaunch",
390
391
  "_balancyConfigClose",
@@ -472,6 +473,7 @@ var Balancy = function() {
472
473
  "_balancyGetBoolArrayParam",
473
474
  "_balancyGetStringArrayParam",
474
475
  "_balancyFreeStringArray",
476
+ "_balancyDataRequestedResponse",
475
477
  "_balancyConfigGetStatus",
476
478
  "_balancyConfigLoadListOfGames",
477
479
  "_balancyConfigAuth",
@@ -534,6 +536,7 @@ var Balancy = function() {
534
536
  "_balancyWebViewRequest",
535
537
  "_balancyGetProductsIdAndType",
536
538
  "_balancyGetParsedObject",
539
+ "_balancyUnzipCompleted",
537
540
  "_balancyAuth_NameAndPassword",
538
541
  "_balancyLink_NameAndPassword",
539
542
  "__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE",
@@ -541,13 +544,12 @@ var Balancy = function() {
541
544
  "_balancyInventory_AddItems",
542
545
  "_balancyInventory_RemoveItems",
543
546
  "_balancyInventory_GetTotalItemsCount",
544
- "_js_call_typescript_bridge_connect",
545
- "_js_call_typescript_bridge_disconnect",
546
- "_js_call_typescript_bridge_is_connected",
547
- "_js_call_typescript_bridge_subscribe",
548
- "_js_call_typescript_bridge_send_message",
549
- "_js_call_typescript_bridge_send_ack",
550
- "_js_initialize_typescript_bridge",
547
+ "_js_init_websocket_storage",
548
+ "_js_websocket_connect",
549
+ "_js_websocket_disconnect",
550
+ "_js_websocket_subscribe",
551
+ "_js_websocket_send_message",
552
+ "_js_websocket_send_ack",
551
553
  "_main",
552
554
  "onRuntimeInitialized"
553
555
  ].forEach(function(prop) {
@@ -1439,40 +1441,210 @@ var Balancy = function() {
1439
1441
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1440
1442
  });
1441
1443
  }
1442
- function js_call_typescript_bridge_send_ack(connectionId, ackId, responseData) {
1443
- var success = false;
1444
- if (typeof Module !== "undefined" && Module.typescript_websocket_send_ack) {
1445
- try {
1446
- var responseStr = UTF8ToString(responseData);
1447
- console.log("[C++ -> TS Bridge] Send ack", connectionId, ackId);
1448
- Module.typescript_websocket_send_ack(connectionId, ackId, responseStr);
1449
- success = true;
1450
- } catch (error) {
1451
- console.error("[ERROR] calling typescript_websocket_send_ack via Module:", error);
1452
- }
1444
+ function js_websocket_connect(connectionId, url, authData) {
1445
+ if (!Module.balancyWebSockets) {
1446
+ Module.balancyWebSockets = new Map;
1453
1447
  }
1454
- if (!success && typeof window !== "undefined" && window.Module && window.Module.typescript_websocket_send_ack) {
1455
- try {
1456
- var responseStr1 = UTF8ToString(responseData);
1457
- console.log("[C++ -> TS Bridge] Send ack via window.Module", connectionId, ackId);
1458
- window.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr1);
1459
- success = true;
1460
- } catch (error) {
1461
- console.error("[ERROR] calling typescript_websocket_send_ack via window.Module:", error);
1462
- }
1448
+ var urlStr = UTF8ToString(url);
1449
+ var authDataStr = UTF8ToString(authData);
1450
+ var wsUrl = urlStr;
1451
+ if (wsUrl.startsWith("http://")) {
1452
+ wsUrl = wsUrl.replace("http://", "ws://");
1453
+ } else if (wsUrl.startsWith("https://")) {
1454
+ wsUrl = wsUrl.replace("https://", "wss://");
1455
+ }
1456
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1457
+ wsUrl = wsUrl.replace("wss://", "ws://");
1463
1458
  }
1464
- if (!success && typeof globalThis !== "undefined" && globalThis.Module && globalThis.Module.typescript_websocket_send_ack) {
1459
+ if (!wsUrl.endsWith("/")) {
1460
+ wsUrl += "/";
1461
+ }
1462
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1463
+ try {
1464
+ var socket = new WebSocket(wsUrl);
1465
+ socket.binaryType = "arraybuffer";
1466
+ var connection = {
1467
+ socket: socket,
1468
+ authData: authDataStr,
1469
+ subscribedEvents: new Set
1470
+ };
1471
+ Module.balancyWebSockets.set(connectionId, connection);
1472
+ socket.onopen = function() {
1473
+ var emptyMsg = "";
1474
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1475
+ var emptyPtr = _malloc(emptyLen);
1476
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1477
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1478
+ _free(emptyPtr);
1479
+ };
1480
+ socket.onclose = function() {
1481
+ var closeMsg = "Connection closed";
1482
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1483
+ var closePtr = _malloc(closeLen);
1484
+ stringToUTF8(closeMsg, closePtr, closeLen);
1485
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1486
+ _free(closePtr);
1487
+ Module.balancyWebSockets.delete(connectionId);
1488
+ };
1489
+ socket.onerror = function(error) {
1490
+ console.error("[WebSocket] Connection failed:", error);
1491
+ var errorMsg = "WebSocket connection failed";
1492
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1493
+ var errorPtr = _malloc(errorLen);
1494
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1495
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1496
+ _free(errorPtr);
1497
+ };
1498
+ socket.onmessage = function(event) {
1499
+ if (typeof event.data !== "string") return;
1500
+ var message = event.data;
1501
+ if (message.startsWith("0")) {
1502
+ try {
1503
+ var authJson = JSON.parse(connection.authData);
1504
+ var connectMessage = "40" + JSON.stringify({
1505
+ game_id: authJson.gameId,
1506
+ user_id: authJson.userId,
1507
+ env: authJson.environment,
1508
+ token: authJson.token,
1509
+ device_id: authJson.deviceId || ""
1510
+ });
1511
+ socket.send(connectMessage);
1512
+ } catch (e) {
1513
+ console.error("[WebSocket] Failed to send auth:", e);
1514
+ socket.send("40");
1515
+ }
1516
+ return;
1517
+ }
1518
+ if (message.startsWith("2")) {
1519
+ socket.send("3");
1520
+ return;
1521
+ }
1522
+ if (message.startsWith("40")) {
1523
+ return;
1524
+ }
1525
+ if (message.startsWith("41")) {
1526
+ return;
1527
+ }
1528
+ if (message.startsWith("42")) {
1529
+ var afterType = message.substring(2);
1530
+ var ackId = 0;
1531
+ var hasAckId = false;
1532
+ var jsonPart = afterType;
1533
+ var jsonStart = afterType.indexOf("[");
1534
+ if (jsonStart > 0) {
1535
+ var ackIdStr = afterType.substring(0, jsonStart);
1536
+ var parsedAckId = parseInt(ackIdStr);
1537
+ if (!isNaN(parsedAckId)) {
1538
+ hasAckId = true;
1539
+ ackId = parsedAckId;
1540
+ jsonPart = afterType.substring(jsonStart);
1541
+ }
1542
+ }
1543
+ try {
1544
+ var eventArray = JSON.parse(jsonPart);
1545
+ if (eventArray && eventArray.length >= 1) {
1546
+ var eventName = eventArray[0];
1547
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1548
+ if (eventName === "system:ping") {
1549
+ if (hasAckId) {
1550
+ socket.send("43" + ackId + "[]");
1551
+ }
1552
+ return;
1553
+ }
1554
+ if (eventName === "profile:updated") {
1555
+ if (hasAckId) {
1556
+ socket.send("43" + ackId + "[]");
1557
+ }
1558
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1559
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1560
+ var eventNamePtr = _malloc(eventNameLen);
1561
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1562
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1563
+ var eventDataPtr = _malloc(eventDataLen);
1564
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1565
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, false, 0);
1566
+ _free(eventNamePtr);
1567
+ _free(eventDataPtr);
1568
+ }
1569
+ return;
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, hasAckId, ackId);
1579
+ _free(eventNamePtr);
1580
+ _free(eventDataPtr);
1581
+ } else {
1582
+ if (hasAckId) {
1583
+ socket.send("43" + ackId + "[]");
1584
+ }
1585
+ }
1586
+ }
1587
+ } catch (e) {
1588
+ console.error("[WebSocket] Failed to parse event:", e);
1589
+ }
1590
+ return;
1591
+ }
1592
+ if (message.startsWith("44")) {
1593
+ var errorJson = message.substring(2);
1594
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1595
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1596
+ var errorPtr = _malloc(errorLen);
1597
+ stringToUTF8(errorJson, errorPtr, errorLen);
1598
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1599
+ _free(errorPtr);
1600
+ return;
1601
+ }
1602
+ };
1603
+ } catch (e) {
1604
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1605
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1606
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1607
+ var errorPtr = _malloc(errorLen);
1608
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1609
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1610
+ _free(errorPtr);
1611
+ }
1612
+ }
1613
+ function js_websocket_disconnect(connectionId) {
1614
+ if (!Module.balancyWebSockets) return;
1615
+ var connection = Module.balancyWebSockets.get(connectionId);
1616
+ if (connection && connection.socket) {
1465
1617
  try {
1466
- var responseStr2 = UTF8ToString(responseData);
1467
- console.log("[C++ -> TS Bridge] Send ack via globalThis.Module", connectionId, ackId);
1468
- globalThis.Module.typescript_websocket_send_ack(connectionId, ackId, responseStr2);
1469
- success = true;
1470
- } catch (error) {
1471
- console.error("[ERROR] calling typescript_websocket_send_ack via globalThis.Module:", error);
1472
- }
1618
+ connection.socket.close();
1619
+ } catch (e) {}
1620
+ }
1621
+ Module.balancyWebSockets.delete(connectionId);
1622
+ }
1623
+ function js_websocket_subscribe(connectionId, eventName) {
1624
+ if (!Module.balancyWebSockets) return;
1625
+ var eventNameStr = UTF8ToString(eventName);
1626
+ var connection = Module.balancyWebSockets.get(connectionId);
1627
+ if (connection) {
1628
+ connection.subscribedEvents.add(eventNameStr);
1473
1629
  }
1474
- if (!success) {
1475
- console.error("[ERROR] TypeScript WebSocket Bridge send ack method not found");
1630
+ }
1631
+ function js_websocket_send_message(connectionId, eventName, data) {
1632
+ if (!Module.balancyWebSockets) return;
1633
+ var eventNameStr = UTF8ToString(eventName);
1634
+ var dataStr = UTF8ToString(data);
1635
+ var connection = Module.balancyWebSockets.get(connectionId);
1636
+ if (connection && connection.socket) {
1637
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1638
+ connection.socket.send(message);
1639
+ }
1640
+ }
1641
+ function js_websocket_send_ack(connectionId, ackId, responseData) {
1642
+ if (!Module.balancyWebSockets) return;
1643
+ var responseDataStr = UTF8ToString(responseData);
1644
+ var connection = Module.balancyWebSockets.get(connectionId);
1645
+ if (connection && connection.socket) {
1646
+ var message = "43" + ackId + responseDataStr;
1647
+ connection.socket.send(message);
1476
1648
  }
1477
1649
  }
1478
1650
  var ExitStatus = function ExitStatus(status) {
@@ -7296,8 +7468,12 @@ var Balancy = function() {
7296
7468
  invoke_viiiiiiiiii: invoke_viiiiiiiiii,
7297
7469
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7298
7470
  invoke_viijii: invoke_viijii,
7299
- js_call_typescript_bridge_send_ack: js_call_typescript_bridge_send_ack,
7300
7471
  js_fetch: js_fetch,
7472
+ js_websocket_connect: js_websocket_connect,
7473
+ js_websocket_disconnect: js_websocket_disconnect,
7474
+ js_websocket_send_ack: js_websocket_send_ack,
7475
+ js_websocket_send_message: js_websocket_send_message,
7476
+ js_websocket_subscribe: js_websocket_subscribe,
7301
7477
  random_get: _random_get
7302
7478
  };
7303
7479
  var wasmExports;
@@ -7350,6 +7526,7 @@ var Balancy = function() {
7350
7526
  Module["__Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_"] = createExportWrapper("_Z23jsbalancyUnzipCompletedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_", 2);
7351
7527
  Module["__Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z23jsbalancyWebViewRequestPN7Balancy5Utils15JsonBasedObjectENSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEN10emscripten3valE", 3);
7352
7528
  Module["_balancySetDataRequestedCallback"] = createExportWrapper("balancySetDataRequestedCallback", 1);
7529
+ Module["__Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z30jsbalancyDataRequestedResponseiNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7353
7530
  Module["_balancyViewAllowOptimization"] = createExportWrapper("balancyViewAllowOptimization", 1);
7354
7531
  Module["_balancyConfigLaunch"] = createExportWrapper("balancyConfigLaunch", 1);
7355
7532
  Module["_balancyConfigClose"] = createExportWrapper("balancyConfigClose", 0);
@@ -7407,9 +7584,9 @@ var Balancy = function() {
7407
7584
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7408
7585
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7409
7586
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7410
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7411
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7412
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7587
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7588
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7589
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7413
7590
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7414
7591
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7415
7592
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7439,6 +7616,7 @@ var Balancy = function() {
7439
7616
  Module["_balancyGetBoolArrayParam"] = createExportWrapper("balancyGetBoolArrayParam", 3);
7440
7617
  Module["_balancyGetStringArrayParam"] = createExportWrapper("balancyGetStringArrayParam", 3);
7441
7618
  Module["_balancyFreeStringArray"] = createExportWrapper("balancyFreeStringArray", 2);
7619
+ Module["_balancyDataRequestedResponse"] = createExportWrapper("balancyDataRequestedResponse", 2);
7442
7620
  Module["_balancyConfigGetStatus"] = createExportWrapper("balancyConfigGetStatus", 0);
7443
7621
  Module["_balancyConfigLoadListOfGames"] = createExportWrapper("balancyConfigLoadListOfGames", 1);
7444
7622
  Module["_balancyConfigAuth"] = createExportWrapper("balancyConfigAuth", 3);
@@ -7501,6 +7679,7 @@ var Balancy = function() {
7501
7679
  Module["_balancyWebViewRequest"] = createExportWrapper("balancyWebViewRequest", 3);
7502
7680
  Module["_balancyGetProductsIdAndType"] = createExportWrapper("balancyGetProductsIdAndType", 1);
7503
7681
  Module["_balancyGetParsedObject"] = createExportWrapper("balancyGetParsedObject", 3);
7682
+ Module["_balancyUnzipCompleted"] = createExportWrapper("balancyUnzipCompleted", 2);
7504
7683
  Module["_balancyAuth_NameAndPassword"] = createExportWrapper("balancyAuth_NameAndPassword", 4);
7505
7684
  Module["_balancyLink_NameAndPassword"] = createExportWrapper("balancyLink_NameAndPassword", 5);
7506
7685
  Module["__Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE"] = createExportWrapper("_Z22jsbalancyAuth_DeviceIdNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN10emscripten3valE", 2);