@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.
package/dist/index.es.js CHANGED
@@ -403,6 +403,7 @@ var Balancy = function() {
403
403
  "__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi",
404
404
  "__Z35jsbalancyClearAllSingletonCallbacksv",
405
405
  "__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE",
406
+ "__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_",
406
407
  "__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
407
408
  "__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
408
409
  "__Z48jsbalancyLocalization_GetCurrentLocalizationCodev",
@@ -416,6 +417,7 @@ var Balancy = function() {
416
417
  "__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
417
418
  "__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
418
419
  "__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb",
420
+ "__Z20jsbalancyGetProductsN10emscripten3valE",
419
421
  "__Z21jsbalancyAuth_AsGuestN10emscripten3valE",
420
422
  "__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE",
421
423
  "__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE",
@@ -559,6 +561,12 @@ var Balancy = function() {
559
561
  "_balancyInventory_AddItems",
560
562
  "_balancyInventory_RemoveItems",
561
563
  "_balancyInventory_GetTotalItemsCount",
564
+ "_balancyStartAbTestManually",
565
+ "_balancyConditionCanPass",
566
+ "_balancyConditionSubscribe",
567
+ "_balancyConditionUnsubscribe",
568
+ "_balancyConditionGetSecondsLeftBeforeDeactivation",
569
+ "_balancyConditionGetSecondsBeforeActivation",
562
570
  "_js_init_websocket_storage",
563
571
  "_js_websocket_connect",
564
572
  "_js_websocket_disconnect",
@@ -1330,46 +1338,9 @@ var Balancy = function() {
1330
1338
  return;
1331
1339
  }
1332
1340
  var contentType = response.headers.get("content-type") || "";
1333
- var binaryExtensions = [
1334
- ".png",
1335
- ".jpg",
1336
- ".jpeg",
1337
- ".gif",
1338
- ".bmp",
1339
- ".webp",
1340
- ".ico",
1341
- ".mp3",
1342
- ".mp4",
1343
- ".wav",
1344
- ".avi",
1345
- ".mov",
1346
- ".pdf",
1347
- ".zip",
1348
- ".rar",
1349
- ".7z",
1350
- ".exe",
1351
- ".dll",
1352
- ".so",
1353
- ".dylib",
1354
- ".ttf",
1355
- ".otf",
1356
- ".woff",
1357
- ".woff2"
1358
- ];
1359
- var textMimeTypes = [
1360
- "application/json",
1361
- "text/",
1362
- "application/xml",
1363
- "application/javascript",
1364
- "application/x-javascript"
1365
- ];
1366
- var hasBinaryExtension = binaryExtensions.some(function(ext) {
1367
- return urlString.toLowerCase().includes(ext);
1368
- });
1369
- var isTextMimeType = textMimeTypes.some(function(type) {
1370
- return contentType.toLowerCase().includes(type);
1371
- });
1372
- var isBinary = contentType.includes("application/octet-stream") || hasBinaryExtension || !isTextMimeType && !contentType.includes("charset");
1341
+ var contentTypeLower = contentType.toLowerCase();
1342
+ var isTextContent = contentTypeLower.includes("application/json") || contentTypeLower.includes("text/") || contentTypeLower.includes("application/xml") || contentTypeLower.includes("application/javascript");
1343
+ var isBinary = !isTextContent;
1373
1344
  if (isBinary) {
1374
1345
  response.arrayBuffer().then(function(arrayBuffer) {
1375
1346
  var dataSize = arrayBuffer.byteLength;
@@ -1456,6 +1427,203 @@ var Balancy = function() {
1456
1427
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1457
1428
  });
1458
1429
  }
1430
+ function js_websocket_connect(connectionId, url, authData) {
1431
+ if (!Module.balancyWebSockets) {
1432
+ Module.balancyWebSockets = new Map;
1433
+ }
1434
+ var urlStr = UTF8ToString(url);
1435
+ var authDataStr = UTF8ToString(authData);
1436
+ var wsUrl = urlStr;
1437
+ if (wsUrl.startsWith("http://")) {
1438
+ wsUrl = wsUrl.replace("http://", "ws://");
1439
+ } else if (wsUrl.startsWith("https://")) {
1440
+ wsUrl = wsUrl.replace("https://", "wss://");
1441
+ }
1442
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1443
+ wsUrl = wsUrl.replace("wss://", "ws://");
1444
+ }
1445
+ if (!wsUrl.endsWith("/")) {
1446
+ wsUrl += "/";
1447
+ }
1448
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1449
+ try {
1450
+ var socket = new WebSocket(wsUrl);
1451
+ socket.binaryType = "arraybuffer";
1452
+ var connection = {
1453
+ socket: socket,
1454
+ authData: authDataStr,
1455
+ subscribedEvents: new Set
1456
+ };
1457
+ Module.balancyWebSockets.set(connectionId, connection);
1458
+ socket.onopen = function() {
1459
+ var emptyMsg = "";
1460
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1461
+ var emptyPtr = _malloc(emptyLen);
1462
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1463
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1464
+ _free(emptyPtr);
1465
+ };
1466
+ socket.onclose = function() {
1467
+ var closeMsg = "Connection closed";
1468
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1469
+ var closePtr = _malloc(closeLen);
1470
+ stringToUTF8(closeMsg, closePtr, closeLen);
1471
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1472
+ _free(closePtr);
1473
+ Module.balancyWebSockets.delete(connectionId);
1474
+ };
1475
+ socket.onerror = function(error) {
1476
+ console.error("[WebSocket] Connection failed:", error);
1477
+ var errorMsg = "WebSocket connection failed";
1478
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1479
+ var errorPtr = _malloc(errorLen);
1480
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1481
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1482
+ _free(errorPtr);
1483
+ };
1484
+ socket.onmessage = function(event) {
1485
+ if (typeof event.data !== "string") return;
1486
+ var message = event.data;
1487
+ if (message.startsWith("0")) {
1488
+ try {
1489
+ var authJson = JSON.parse(connection.authData);
1490
+ var connectMessage = "40" + JSON.stringify({
1491
+ game_id: authJson.gameId,
1492
+ user_id: authJson.userId,
1493
+ env: authJson.environment,
1494
+ token: authJson.token,
1495
+ device_id: authJson.deviceId || ""
1496
+ });
1497
+ socket.send(connectMessage);
1498
+ } catch (e) {
1499
+ console.error("[WebSocket] Failed to send auth:", e);
1500
+ socket.send("40");
1501
+ }
1502
+ return;
1503
+ }
1504
+ if (message.startsWith("2")) {
1505
+ socket.send("3");
1506
+ return;
1507
+ }
1508
+ if (message.startsWith("40")) {
1509
+ return;
1510
+ }
1511
+ if (message.startsWith("41")) {
1512
+ return;
1513
+ }
1514
+ if (message.startsWith("42")) {
1515
+ var afterType = message.substring(2);
1516
+ var ackId = 0;
1517
+ var hasAckId = false;
1518
+ var jsonPart = afterType;
1519
+ var jsonStart = afterType.indexOf("[");
1520
+ if (jsonStart > 0) {
1521
+ var ackIdStr = afterType.substring(0, jsonStart);
1522
+ var parsedAckId = parseInt(ackIdStr);
1523
+ if (!isNaN(parsedAckId)) {
1524
+ hasAckId = true;
1525
+ ackId = parsedAckId;
1526
+ jsonPart = afterType.substring(jsonStart);
1527
+ }
1528
+ }
1529
+ try {
1530
+ var eventArray = JSON.parse(jsonPart);
1531
+ if (eventArray && eventArray.length >= 1) {
1532
+ var eventName = eventArray[0];
1533
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1534
+ if (eventName === "system:ping") {
1535
+ if (hasAckId) {
1536
+ socket.send("43" + ackId + "[]");
1537
+ }
1538
+ return;
1539
+ }
1540
+ if (eventName === "profile:updated") {
1541
+ if (hasAckId) {
1542
+ socket.send("43" + ackId + "[]");
1543
+ }
1544
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1545
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1546
+ var eventNamePtr = _malloc(eventNameLen);
1547
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1548
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1549
+ var eventDataPtr = _malloc(eventDataLen);
1550
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1551
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, false, 0);
1552
+ _free(eventNamePtr);
1553
+ _free(eventDataPtr);
1554
+ }
1555
+ return;
1556
+ }
1557
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1558
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1559
+ var eventNamePtr = _malloc(eventNameLen);
1560
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1561
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1562
+ var eventDataPtr = _malloc(eventDataLen);
1563
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1564
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, hasAckId, ackId);
1565
+ _free(eventNamePtr);
1566
+ _free(eventDataPtr);
1567
+ } else {
1568
+ if (hasAckId) {
1569
+ socket.send("43" + ackId + "[]");
1570
+ }
1571
+ }
1572
+ }
1573
+ } catch (e) {
1574
+ console.error("[WebSocket] Failed to parse event:", e);
1575
+ }
1576
+ return;
1577
+ }
1578
+ if (message.startsWith("44")) {
1579
+ var errorJson = message.substring(2);
1580
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1581
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1582
+ var errorPtr = _malloc(errorLen);
1583
+ stringToUTF8(errorJson, errorPtr, errorLen);
1584
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1585
+ _free(errorPtr);
1586
+ return;
1587
+ }
1588
+ };
1589
+ } catch (e) {
1590
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1591
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1592
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1593
+ var errorPtr = _malloc(errorLen);
1594
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1595
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1596
+ _free(errorPtr);
1597
+ }
1598
+ }
1599
+ function js_websocket_disconnect(connectionId) {
1600
+ if (!Module.balancyWebSockets) return;
1601
+ var connection = Module.balancyWebSockets.get(connectionId);
1602
+ if (connection && connection.socket) {
1603
+ try {
1604
+ connection.socket.close();
1605
+ } catch (e) {}
1606
+ }
1607
+ Module.balancyWebSockets.delete(connectionId);
1608
+ }
1609
+ function js_websocket_subscribe(connectionId, eventName) {
1610
+ if (!Module.balancyWebSockets) return;
1611
+ var eventNameStr = UTF8ToString(eventName);
1612
+ var connection = Module.balancyWebSockets.get(connectionId);
1613
+ if (connection) {
1614
+ connection.subscribedEvents.add(eventNameStr);
1615
+ }
1616
+ }
1617
+ function js_websocket_send_message(connectionId, eventName, data) {
1618
+ if (!Module.balancyWebSockets) return;
1619
+ var eventNameStr = UTF8ToString(eventName);
1620
+ var dataStr = UTF8ToString(data);
1621
+ var connection = Module.balancyWebSockets.get(connectionId);
1622
+ if (connection && connection.socket) {
1623
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1624
+ connection.socket.send(message);
1625
+ }
1626
+ }
1459
1627
  function js_websocket_send_ack(connectionId, ackId, responseData) {
1460
1628
  if (!Module.balancyWebSockets) return;
1461
1629
  var responseDataStr = UTF8ToString(responseData);
@@ -7298,7 +7466,11 @@ var Balancy = function() {
7298
7466
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7299
7467
  invoke_viijii: invoke_viijii,
7300
7468
  js_fetch: js_fetch,
7469
+ js_websocket_connect: js_websocket_connect,
7470
+ js_websocket_disconnect: js_websocket_disconnect,
7301
7471
  js_websocket_send_ack: js_websocket_send_ack,
7472
+ js_websocket_send_message: js_websocket_send_message,
7473
+ js_websocket_subscribe: js_websocket_subscribe,
7302
7474
  random_get: _random_get
7303
7475
  };
7304
7476
  var wasmExports;
@@ -7369,6 +7541,7 @@ var Balancy = function() {
7369
7541
  Module["__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi"] = createExportWrapper("_Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi", 2);
7370
7542
  Module["__Z35jsbalancyClearAllSingletonCallbacksv"] = createExportWrapper("_Z35jsbalancyClearAllSingletonCallbacksv", 0);
7371
7543
  Module["__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE", 2);
7544
+ Module["__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_"] = createExportWrapper("_Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_", 2);
7372
7545
  Module["__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 1);
7373
7546
  Module["__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7374
7547
  Module["__Z48jsbalancyLocalization_GetCurrentLocalizationCodev"] = createExportWrapper("_Z48jsbalancyLocalization_GetCurrentLocalizationCodev", 1);
@@ -7382,6 +7555,7 @@ var Balancy = function() {
7382
7555
  Module["__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7383
7556
  Module["__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7384
7557
  Module["__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb", 5);
7558
+ Module["__Z20jsbalancyGetProductsN10emscripten3valE"] = createExportWrapper("_Z20jsbalancyGetProductsN10emscripten3valE", 1);
7385
7559
  Module["__Z21jsbalancyAuth_AsGuestN10emscripten3valE"] = createExportWrapper("_Z21jsbalancyAuth_AsGuestN10emscripten3valE", 1);
7386
7560
  Module["__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE"] = createExportWrapper("_Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE", 3);
7387
7561
  Module["__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE"] = createExportWrapper("_Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE", 4);
@@ -7416,9 +7590,9 @@ var Balancy = function() {
7416
7590
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7417
7591
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7418
7592
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7419
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7420
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7421
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7593
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7594
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7595
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7422
7596
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7423
7597
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7424
7598
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7527,6 +7701,12 @@ var Balancy = function() {
7527
7701
  Module["_balancyInventory_AddItems"] = createExportWrapper("balancyInventory_AddItems", 2);
7528
7702
  Module["_balancyInventory_RemoveItems"] = createExportWrapper("balancyInventory_RemoveItems", 2);
7529
7703
  Module["_balancyInventory_GetTotalItemsCount"] = createExportWrapper("balancyInventory_GetTotalItemsCount", 1);
7704
+ Module["_balancyStartAbTestManually"] = createExportWrapper("balancyStartAbTestManually", 2);
7705
+ Module["_balancyConditionCanPass"] = createExportWrapper("balancyConditionCanPass", 1);
7706
+ Module["_balancyConditionSubscribe"] = createExportWrapper("balancyConditionSubscribe", 2);
7707
+ Module["_balancyConditionUnsubscribe"] = createExportWrapper("balancyConditionUnsubscribe", 1);
7708
+ Module["_balancyConditionGetSecondsLeftBeforeDeactivation"] = createExportWrapper("balancyConditionGetSecondsLeftBeforeDeactivation", 1);
7709
+ Module["_balancyConditionGetSecondsBeforeActivation"] = createExportWrapper("balancyConditionGetSecondsBeforeActivation", 2);
7530
7710
  var _fflush = createExportWrapper("fflush", 1);
7531
7711
  var _strerror = createExportWrapper("strerror", 1);
7532
7712
  var _setThrew = createExportWrapper("setThrew", 2);
@@ -7580,6 +7760,7 @@ var Balancy = function() {
7580
7760
  Module["dynCall_viiid"] = createExportWrapper("dynCall_viiid", 5);
7581
7761
  Module["dynCall_iiiid"] = createExportWrapper("dynCall_iiiid", 5);
7582
7762
  Module["dynCall_iiiij"] = createExportWrapper("dynCall_iiiij", 6);
7763
+ Module["dynCall_fi"] = createExportWrapper("dynCall_fi", 2);
7583
7764
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = createExportWrapper("dynCall_iiiiii", 6);
7584
7765
  Module["dynCall_iidd"] = createExportWrapper("dynCall_iidd", 4);
7585
7766
  Module["dynCall_didd"] = createExportWrapper("dynCall_didd", 4);