@balancy/wasm 1.2.0 → 1.2.2

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.
@@ -405,6 +405,7 @@ var Balancy = function() {
405
405
  "__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi",
406
406
  "__Z35jsbalancyClearAllSingletonCallbacksv",
407
407
  "__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE",
408
+ "__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_",
408
409
  "__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
409
410
  "__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
410
411
  "__Z48jsbalancyLocalization_GetCurrentLocalizationCodev",
@@ -418,6 +419,7 @@ var Balancy = function() {
418
419
  "__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
419
420
  "__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
420
421
  "__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb",
422
+ "__Z20jsbalancyGetProductsN10emscripten3valE",
421
423
  "__Z21jsbalancyAuth_AsGuestN10emscripten3valE",
422
424
  "__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE",
423
425
  "__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE",
@@ -561,6 +563,12 @@ var Balancy = function() {
561
563
  "_balancyInventory_AddItems",
562
564
  "_balancyInventory_RemoveItems",
563
565
  "_balancyInventory_GetTotalItemsCount",
566
+ "_balancyStartAbTestManually",
567
+ "_balancyConditionCanPass",
568
+ "_balancyConditionSubscribe",
569
+ "_balancyConditionUnsubscribe",
570
+ "_balancyConditionGetSecondsLeftBeforeDeactivation",
571
+ "_balancyConditionGetSecondsBeforeActivation",
564
572
  "_js_init_websocket_storage",
565
573
  "_js_websocket_connect",
566
574
  "_js_websocket_disconnect",
@@ -1338,46 +1346,9 @@ var Balancy = function() {
1338
1346
  return;
1339
1347
  }
1340
1348
  var contentType = response.headers.get("content-type") || "";
1341
- var binaryExtensions = [
1342
- ".png",
1343
- ".jpg",
1344
- ".jpeg",
1345
- ".gif",
1346
- ".bmp",
1347
- ".webp",
1348
- ".ico",
1349
- ".mp3",
1350
- ".mp4",
1351
- ".wav",
1352
- ".avi",
1353
- ".mov",
1354
- ".pdf",
1355
- ".zip",
1356
- ".rar",
1357
- ".7z",
1358
- ".exe",
1359
- ".dll",
1360
- ".so",
1361
- ".dylib",
1362
- ".ttf",
1363
- ".otf",
1364
- ".woff",
1365
- ".woff2"
1366
- ];
1367
- var textMimeTypes = [
1368
- "application/json",
1369
- "text/",
1370
- "application/xml",
1371
- "application/javascript",
1372
- "application/x-javascript"
1373
- ];
1374
- var hasBinaryExtension = binaryExtensions.some(function(ext) {
1375
- return urlString.toLowerCase().includes(ext);
1376
- });
1377
- var isTextMimeType = textMimeTypes.some(function(type) {
1378
- return contentType.toLowerCase().includes(type);
1379
- });
1380
- var isBinary = contentType.includes("application/octet-stream") || hasBinaryExtension || !isTextMimeType && !contentType.includes("charset");
1349
+ var contentTypeLower = contentType.toLowerCase();
1350
+ var isTextContent = contentTypeLower.includes("application/json") || contentTypeLower.includes("text/") || contentTypeLower.includes("application/xml") || contentTypeLower.includes("application/javascript");
1351
+ var isBinary = !isTextContent;
1381
1352
  if (isBinary) {
1382
1353
  response.arrayBuffer().then(function(arrayBuffer) {
1383
1354
  var dataSize = arrayBuffer.byteLength;
@@ -1464,6 +1435,203 @@ var Balancy = function() {
1464
1435
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1465
1436
  });
1466
1437
  }
1438
+ function js_websocket_connect(connectionId, url, authData) {
1439
+ if (!Module.balancyWebSockets) {
1440
+ Module.balancyWebSockets = new Map;
1441
+ }
1442
+ var urlStr = UTF8ToString(url);
1443
+ var authDataStr = UTF8ToString(authData);
1444
+ var wsUrl = urlStr;
1445
+ if (wsUrl.startsWith("http://")) {
1446
+ wsUrl = wsUrl.replace("http://", "ws://");
1447
+ } else if (wsUrl.startsWith("https://")) {
1448
+ wsUrl = wsUrl.replace("https://", "wss://");
1449
+ }
1450
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1451
+ wsUrl = wsUrl.replace("wss://", "ws://");
1452
+ }
1453
+ if (!wsUrl.endsWith("/")) {
1454
+ wsUrl += "/";
1455
+ }
1456
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1457
+ try {
1458
+ var socket = new WebSocket(wsUrl);
1459
+ socket.binaryType = "arraybuffer";
1460
+ var connection = {
1461
+ socket: socket,
1462
+ authData: authDataStr,
1463
+ subscribedEvents: new Set
1464
+ };
1465
+ Module.balancyWebSockets.set(connectionId, connection);
1466
+ socket.onopen = function() {
1467
+ var emptyMsg = "";
1468
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1469
+ var emptyPtr = _malloc(emptyLen);
1470
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1471
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1472
+ _free(emptyPtr);
1473
+ };
1474
+ socket.onclose = function() {
1475
+ var closeMsg = "Connection closed";
1476
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1477
+ var closePtr = _malloc(closeLen);
1478
+ stringToUTF8(closeMsg, closePtr, closeLen);
1479
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1480
+ _free(closePtr);
1481
+ Module.balancyWebSockets.delete(connectionId);
1482
+ };
1483
+ socket.onerror = function(error) {
1484
+ console.error("[WebSocket] Connection failed:", error);
1485
+ var errorMsg = "WebSocket connection failed";
1486
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1487
+ var errorPtr = _malloc(errorLen);
1488
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1489
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1490
+ _free(errorPtr);
1491
+ };
1492
+ socket.onmessage = function(event) {
1493
+ if (typeof event.data !== "string") return;
1494
+ var message = event.data;
1495
+ if (message.startsWith("0")) {
1496
+ try {
1497
+ var authJson = JSON.parse(connection.authData);
1498
+ var connectMessage = "40" + JSON.stringify({
1499
+ game_id: authJson.gameId,
1500
+ user_id: authJson.userId,
1501
+ env: authJson.environment,
1502
+ token: authJson.token,
1503
+ device_id: authJson.deviceId || ""
1504
+ });
1505
+ socket.send(connectMessage);
1506
+ } catch (e) {
1507
+ console.error("[WebSocket] Failed to send auth:", e);
1508
+ socket.send("40");
1509
+ }
1510
+ return;
1511
+ }
1512
+ if (message.startsWith("2")) {
1513
+ socket.send("3");
1514
+ return;
1515
+ }
1516
+ if (message.startsWith("40")) {
1517
+ return;
1518
+ }
1519
+ if (message.startsWith("41")) {
1520
+ return;
1521
+ }
1522
+ if (message.startsWith("42")) {
1523
+ var afterType = message.substring(2);
1524
+ var ackId = 0;
1525
+ var hasAckId = false;
1526
+ var jsonPart = afterType;
1527
+ var jsonStart = afterType.indexOf("[");
1528
+ if (jsonStart > 0) {
1529
+ var ackIdStr = afterType.substring(0, jsonStart);
1530
+ var parsedAckId = parseInt(ackIdStr);
1531
+ if (!isNaN(parsedAckId)) {
1532
+ hasAckId = true;
1533
+ ackId = parsedAckId;
1534
+ jsonPart = afterType.substring(jsonStart);
1535
+ }
1536
+ }
1537
+ try {
1538
+ var eventArray = JSON.parse(jsonPart);
1539
+ if (eventArray && eventArray.length >= 1) {
1540
+ var eventName = eventArray[0];
1541
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1542
+ if (eventName === "system:ping") {
1543
+ if (hasAckId) {
1544
+ socket.send("43" + ackId + "[]");
1545
+ }
1546
+ return;
1547
+ }
1548
+ if (eventName === "profile:updated") {
1549
+ if (hasAckId) {
1550
+ socket.send("43" + ackId + "[]");
1551
+ }
1552
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1553
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1554
+ var eventNamePtr = _malloc(eventNameLen);
1555
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1556
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1557
+ var eventDataPtr = _malloc(eventDataLen);
1558
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1559
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, false, 0);
1560
+ _free(eventNamePtr);
1561
+ _free(eventDataPtr);
1562
+ }
1563
+ return;
1564
+ }
1565
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1566
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1567
+ var eventNamePtr = _malloc(eventNameLen);
1568
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1569
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1570
+ var eventDataPtr = _malloc(eventDataLen);
1571
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1572
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, hasAckId, ackId);
1573
+ _free(eventNamePtr);
1574
+ _free(eventDataPtr);
1575
+ } else {
1576
+ if (hasAckId) {
1577
+ socket.send("43" + ackId + "[]");
1578
+ }
1579
+ }
1580
+ }
1581
+ } catch (e) {
1582
+ console.error("[WebSocket] Failed to parse event:", e);
1583
+ }
1584
+ return;
1585
+ }
1586
+ if (message.startsWith("44")) {
1587
+ var errorJson = message.substring(2);
1588
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1589
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1590
+ var errorPtr = _malloc(errorLen);
1591
+ stringToUTF8(errorJson, errorPtr, errorLen);
1592
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1593
+ _free(errorPtr);
1594
+ return;
1595
+ }
1596
+ };
1597
+ } catch (e) {
1598
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1599
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1600
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1601
+ var errorPtr = _malloc(errorLen);
1602
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1603
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1604
+ _free(errorPtr);
1605
+ }
1606
+ }
1607
+ function js_websocket_disconnect(connectionId) {
1608
+ if (!Module.balancyWebSockets) return;
1609
+ var connection = Module.balancyWebSockets.get(connectionId);
1610
+ if (connection && connection.socket) {
1611
+ try {
1612
+ connection.socket.close();
1613
+ } catch (e) {}
1614
+ }
1615
+ Module.balancyWebSockets.delete(connectionId);
1616
+ }
1617
+ function js_websocket_subscribe(connectionId, eventName) {
1618
+ if (!Module.balancyWebSockets) return;
1619
+ var eventNameStr = UTF8ToString(eventName);
1620
+ var connection = Module.balancyWebSockets.get(connectionId);
1621
+ if (connection) {
1622
+ connection.subscribedEvents.add(eventNameStr);
1623
+ }
1624
+ }
1625
+ function js_websocket_send_message(connectionId, eventName, data) {
1626
+ if (!Module.balancyWebSockets) return;
1627
+ var eventNameStr = UTF8ToString(eventName);
1628
+ var dataStr = UTF8ToString(data);
1629
+ var connection = Module.balancyWebSockets.get(connectionId);
1630
+ if (connection && connection.socket) {
1631
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1632
+ connection.socket.send(message);
1633
+ }
1634
+ }
1467
1635
  function js_websocket_send_ack(connectionId, ackId, responseData) {
1468
1636
  if (!Module.balancyWebSockets) return;
1469
1637
  var responseDataStr = UTF8ToString(responseData);
@@ -7331,7 +7499,11 @@ var Balancy = function() {
7331
7499
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7332
7500
  invoke_viijii: invoke_viijii,
7333
7501
  js_fetch: js_fetch,
7502
+ js_websocket_connect: js_websocket_connect,
7503
+ js_websocket_disconnect: js_websocket_disconnect,
7334
7504
  js_websocket_send_ack: js_websocket_send_ack,
7505
+ js_websocket_send_message: js_websocket_send_message,
7506
+ js_websocket_subscribe: js_websocket_subscribe,
7335
7507
  random_get: _random_get
7336
7508
  };
7337
7509
  var wasmExports;
@@ -7402,6 +7574,7 @@ var Balancy = function() {
7402
7574
  Module["__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi"] = createExportWrapper("_Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi", 2);
7403
7575
  Module["__Z35jsbalancyClearAllSingletonCallbacksv"] = createExportWrapper("_Z35jsbalancyClearAllSingletonCallbacksv", 0);
7404
7576
  Module["__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE", 2);
7577
+ Module["__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_"] = createExportWrapper("_Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_", 2);
7405
7578
  Module["__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 1);
7406
7579
  Module["__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7407
7580
  Module["__Z48jsbalancyLocalization_GetCurrentLocalizationCodev"] = createExportWrapper("_Z48jsbalancyLocalization_GetCurrentLocalizationCodev", 1);
@@ -7415,6 +7588,7 @@ var Balancy = function() {
7415
7588
  Module["__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7416
7589
  Module["__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7417
7590
  Module["__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb", 5);
7591
+ Module["__Z20jsbalancyGetProductsN10emscripten3valE"] = createExportWrapper("_Z20jsbalancyGetProductsN10emscripten3valE", 1);
7418
7592
  Module["__Z21jsbalancyAuth_AsGuestN10emscripten3valE"] = createExportWrapper("_Z21jsbalancyAuth_AsGuestN10emscripten3valE", 1);
7419
7593
  Module["__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE"] = createExportWrapper("_Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE", 3);
7420
7594
  Module["__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE"] = createExportWrapper("_Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE", 4);
@@ -7449,9 +7623,9 @@ var Balancy = function() {
7449
7623
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7450
7624
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7451
7625
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7452
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7453
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7454
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7626
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7627
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7628
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7455
7629
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7456
7630
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7457
7631
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7560,6 +7734,12 @@ var Balancy = function() {
7560
7734
  Module["_balancyInventory_AddItems"] = createExportWrapper("balancyInventory_AddItems", 2);
7561
7735
  Module["_balancyInventory_RemoveItems"] = createExportWrapper("balancyInventory_RemoveItems", 2);
7562
7736
  Module["_balancyInventory_GetTotalItemsCount"] = createExportWrapper("balancyInventory_GetTotalItemsCount", 1);
7737
+ Module["_balancyStartAbTestManually"] = createExportWrapper("balancyStartAbTestManually", 2);
7738
+ Module["_balancyConditionCanPass"] = createExportWrapper("balancyConditionCanPass", 1);
7739
+ Module["_balancyConditionSubscribe"] = createExportWrapper("balancyConditionSubscribe", 2);
7740
+ Module["_balancyConditionUnsubscribe"] = createExportWrapper("balancyConditionUnsubscribe", 1);
7741
+ Module["_balancyConditionGetSecondsLeftBeforeDeactivation"] = createExportWrapper("balancyConditionGetSecondsLeftBeforeDeactivation", 1);
7742
+ Module["_balancyConditionGetSecondsBeforeActivation"] = createExportWrapper("balancyConditionGetSecondsBeforeActivation", 2);
7563
7743
  var _fflush = createExportWrapper("fflush", 1);
7564
7744
  var _strerror = createExportWrapper("strerror", 1);
7565
7745
  var _setThrew = createExportWrapper("setThrew", 2);
@@ -7613,6 +7793,7 @@ var Balancy = function() {
7613
7793
  Module["dynCall_viiid"] = createExportWrapper("dynCall_viiid", 5);
7614
7794
  Module["dynCall_iiiid"] = createExportWrapper("dynCall_iiiid", 5);
7615
7795
  Module["dynCall_iiiij"] = createExportWrapper("dynCall_iiiij", 6);
7796
+ Module["dynCall_fi"] = createExportWrapper("dynCall_fi", 2);
7616
7797
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = createExportWrapper("dynCall_iiiiii", 6);
7617
7798
  Module["dynCall_iidd"] = createExportWrapper("dynCall_iidd", 4);
7618
7799
  Module["dynCall_didd"] = createExportWrapper("dynCall_didd", 4);