@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.
@@ -410,6 +410,7 @@
410
410
  "__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi",
411
411
  "__Z35jsbalancyClearAllSingletonCallbacksv",
412
412
  "__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE",
413
+ "__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_",
413
414
  "__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
414
415
  "__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE",
415
416
  "__Z48jsbalancyLocalization_GetCurrentLocalizationCodev",
@@ -423,6 +424,7 @@
423
424
  "__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
424
425
  "__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb",
425
426
  "__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb",
427
+ "__Z20jsbalancyGetProductsN10emscripten3valE",
426
428
  "__Z21jsbalancyAuth_AsGuestN10emscripten3valE",
427
429
  "__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE",
428
430
  "__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE",
@@ -566,6 +568,12 @@
566
568
  "_balancyInventory_AddItems",
567
569
  "_balancyInventory_RemoveItems",
568
570
  "_balancyInventory_GetTotalItemsCount",
571
+ "_balancyStartAbTestManually",
572
+ "_balancyConditionCanPass",
573
+ "_balancyConditionSubscribe",
574
+ "_balancyConditionUnsubscribe",
575
+ "_balancyConditionGetSecondsLeftBeforeDeactivation",
576
+ "_balancyConditionGetSecondsBeforeActivation",
569
577
  "_js_init_websocket_storage",
570
578
  "_js_websocket_connect",
571
579
  "_js_websocket_disconnect",
@@ -1343,46 +1351,9 @@
1343
1351
  return;
1344
1352
  }
1345
1353
  var contentType = response.headers.get("content-type") || "";
1346
- var binaryExtensions = [
1347
- ".png",
1348
- ".jpg",
1349
- ".jpeg",
1350
- ".gif",
1351
- ".bmp",
1352
- ".webp",
1353
- ".ico",
1354
- ".mp3",
1355
- ".mp4",
1356
- ".wav",
1357
- ".avi",
1358
- ".mov",
1359
- ".pdf",
1360
- ".zip",
1361
- ".rar",
1362
- ".7z",
1363
- ".exe",
1364
- ".dll",
1365
- ".so",
1366
- ".dylib",
1367
- ".ttf",
1368
- ".otf",
1369
- ".woff",
1370
- ".woff2"
1371
- ];
1372
- var textMimeTypes = [
1373
- "application/json",
1374
- "text/",
1375
- "application/xml",
1376
- "application/javascript",
1377
- "application/x-javascript"
1378
- ];
1379
- var hasBinaryExtension = binaryExtensions.some(function(ext) {
1380
- return urlString.toLowerCase().includes(ext);
1381
- });
1382
- var isTextMimeType = textMimeTypes.some(function(type) {
1383
- return contentType.toLowerCase().includes(type);
1384
- });
1385
- var isBinary = contentType.includes("application/octet-stream") || hasBinaryExtension || !isTextMimeType && !contentType.includes("charset");
1354
+ var contentTypeLower = contentType.toLowerCase();
1355
+ var isTextContent = contentTypeLower.includes("application/json") || contentTypeLower.includes("text/") || contentTypeLower.includes("application/xml") || contentTypeLower.includes("application/javascript");
1356
+ var isBinary = !isTextContent;
1386
1357
  if (isBinary) {
1387
1358
  response.arrayBuffer().then(function(arrayBuffer) {
1388
1359
  var dataSize = arrayBuffer.byteLength;
@@ -1469,6 +1440,203 @@
1469
1440
  invokeErrorCallback(-1, error.message, "Network fetch failed");
1470
1441
  });
1471
1442
  }
1443
+ function js_websocket_connect(connectionId, url, authData) {
1444
+ if (!Module.balancyWebSockets) {
1445
+ Module.balancyWebSockets = new Map;
1446
+ }
1447
+ var urlStr = UTF8ToString(url);
1448
+ var authDataStr = UTF8ToString(authData);
1449
+ var wsUrl = urlStr;
1450
+ if (wsUrl.startsWith("http://")) {
1451
+ wsUrl = wsUrl.replace("http://", "ws://");
1452
+ } else if (wsUrl.startsWith("https://")) {
1453
+ wsUrl = wsUrl.replace("https://", "wss://");
1454
+ }
1455
+ if (location.protocol === "http:" && wsUrl.startsWith("wss://")) {
1456
+ wsUrl = wsUrl.replace("wss://", "ws://");
1457
+ }
1458
+ if (!wsUrl.endsWith("/")) {
1459
+ wsUrl += "/";
1460
+ }
1461
+ wsUrl += "socket.io/?EIO=4&transport=websocket";
1462
+ try {
1463
+ var socket = new WebSocket(wsUrl);
1464
+ socket.binaryType = "arraybuffer";
1465
+ var connection = {
1466
+ socket: socket,
1467
+ authData: authDataStr,
1468
+ subscribedEvents: new Set
1469
+ };
1470
+ Module.balancyWebSockets.set(connectionId, connection);
1471
+ socket.onopen = function() {
1472
+ var emptyMsg = "";
1473
+ var emptyLen = lengthBytesUTF8(emptyMsg) + 1;
1474
+ var emptyPtr = _malloc(emptyLen);
1475
+ stringToUTF8(emptyMsg, emptyPtr, emptyLen);
1476
+ _emscripten_websocket_on_connection_status(connectionId, true, emptyPtr);
1477
+ _free(emptyPtr);
1478
+ };
1479
+ socket.onclose = function() {
1480
+ var closeMsg = "Connection closed";
1481
+ var closeLen = lengthBytesUTF8(closeMsg) + 1;
1482
+ var closePtr = _malloc(closeLen);
1483
+ stringToUTF8(closeMsg, closePtr, closeLen);
1484
+ _emscripten_websocket_on_connection_status(connectionId, false, closePtr);
1485
+ _free(closePtr);
1486
+ Module.balancyWebSockets.delete(connectionId);
1487
+ };
1488
+ socket.onerror = function(error) {
1489
+ console.error("[WebSocket] Connection failed:", error);
1490
+ var errorMsg = "WebSocket connection failed";
1491
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1492
+ var errorPtr = _malloc(errorLen);
1493
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1494
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1495
+ _free(errorPtr);
1496
+ };
1497
+ socket.onmessage = function(event) {
1498
+ if (typeof event.data !== "string") return;
1499
+ var message = event.data;
1500
+ if (message.startsWith("0")) {
1501
+ try {
1502
+ var authJson = JSON.parse(connection.authData);
1503
+ var connectMessage = "40" + JSON.stringify({
1504
+ game_id: authJson.gameId,
1505
+ user_id: authJson.userId,
1506
+ env: authJson.environment,
1507
+ token: authJson.token,
1508
+ device_id: authJson.deviceId || ""
1509
+ });
1510
+ socket.send(connectMessage);
1511
+ } catch (e) {
1512
+ console.error("[WebSocket] Failed to send auth:", e);
1513
+ socket.send("40");
1514
+ }
1515
+ return;
1516
+ }
1517
+ if (message.startsWith("2")) {
1518
+ socket.send("3");
1519
+ return;
1520
+ }
1521
+ if (message.startsWith("40")) {
1522
+ return;
1523
+ }
1524
+ if (message.startsWith("41")) {
1525
+ return;
1526
+ }
1527
+ if (message.startsWith("42")) {
1528
+ var afterType = message.substring(2);
1529
+ var ackId = 0;
1530
+ var hasAckId = false;
1531
+ var jsonPart = afterType;
1532
+ var jsonStart = afterType.indexOf("[");
1533
+ if (jsonStart > 0) {
1534
+ var ackIdStr = afterType.substring(0, jsonStart);
1535
+ var parsedAckId = parseInt(ackIdStr);
1536
+ if (!isNaN(parsedAckId)) {
1537
+ hasAckId = true;
1538
+ ackId = parsedAckId;
1539
+ jsonPart = afterType.substring(jsonStart);
1540
+ }
1541
+ }
1542
+ try {
1543
+ var eventArray = JSON.parse(jsonPart);
1544
+ if (eventArray && eventArray.length >= 1) {
1545
+ var eventName = eventArray[0];
1546
+ var eventData = eventArray.length > 1 ? JSON.stringify(eventArray[1]) : "{}";
1547
+ if (eventName === "system:ping") {
1548
+ if (hasAckId) {
1549
+ socket.send("43" + ackId + "[]");
1550
+ }
1551
+ return;
1552
+ }
1553
+ if (eventName === "profile:updated") {
1554
+ if (hasAckId) {
1555
+ socket.send("43" + ackId + "[]");
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, false, 0);
1565
+ _free(eventNamePtr);
1566
+ _free(eventDataPtr);
1567
+ }
1568
+ return;
1569
+ }
1570
+ if (connection.subscribedEvents.has(eventName) || connection.subscribedEvents.size === 0) {
1571
+ var eventNameLen = lengthBytesUTF8(eventName) + 1;
1572
+ var eventNamePtr = _malloc(eventNameLen);
1573
+ stringToUTF8(eventName, eventNamePtr, eventNameLen);
1574
+ var eventDataLen = lengthBytesUTF8(eventData) + 1;
1575
+ var eventDataPtr = _malloc(eventDataLen);
1576
+ stringToUTF8(eventData, eventDataPtr, eventDataLen);
1577
+ _emscripten_websocket_on_socketio_event(connectionId, eventNamePtr, eventDataPtr, hasAckId, ackId);
1578
+ _free(eventNamePtr);
1579
+ _free(eventDataPtr);
1580
+ } else {
1581
+ if (hasAckId) {
1582
+ socket.send("43" + ackId + "[]");
1583
+ }
1584
+ }
1585
+ }
1586
+ } catch (e) {
1587
+ console.error("[WebSocket] Failed to parse event:", e);
1588
+ }
1589
+ return;
1590
+ }
1591
+ if (message.startsWith("44")) {
1592
+ var errorJson = message.substring(2);
1593
+ console.error("[WebSocket] Socket.IO error:", errorJson);
1594
+ var errorLen = lengthBytesUTF8(errorJson) + 1;
1595
+ var errorPtr = _malloc(errorLen);
1596
+ stringToUTF8(errorJson, errorPtr, errorLen);
1597
+ _emscripten_websocket_on_socketio_error(connectionId, 44, errorPtr);
1598
+ _free(errorPtr);
1599
+ return;
1600
+ }
1601
+ };
1602
+ } catch (e) {
1603
+ console.error("[WebSocket] Failed to create WebSocket:", e);
1604
+ var errorMsg = "Failed to create WebSocket: " + e.toString();
1605
+ var errorLen = lengthBytesUTF8(errorMsg) + 1;
1606
+ var errorPtr = _malloc(errorLen);
1607
+ stringToUTF8(errorMsg, errorPtr, errorLen);
1608
+ _emscripten_websocket_on_connection_status(connectionId, false, errorPtr);
1609
+ _free(errorPtr);
1610
+ }
1611
+ }
1612
+ function js_websocket_disconnect(connectionId) {
1613
+ if (!Module.balancyWebSockets) return;
1614
+ var connection = Module.balancyWebSockets.get(connectionId);
1615
+ if (connection && connection.socket) {
1616
+ try {
1617
+ connection.socket.close();
1618
+ } catch (e) {}
1619
+ }
1620
+ Module.balancyWebSockets.delete(connectionId);
1621
+ }
1622
+ function js_websocket_subscribe(connectionId, eventName) {
1623
+ if (!Module.balancyWebSockets) return;
1624
+ var eventNameStr = UTF8ToString(eventName);
1625
+ var connection = Module.balancyWebSockets.get(connectionId);
1626
+ if (connection) {
1627
+ connection.subscribedEvents.add(eventNameStr);
1628
+ }
1629
+ }
1630
+ function js_websocket_send_message(connectionId, eventName, data) {
1631
+ if (!Module.balancyWebSockets) return;
1632
+ var eventNameStr = UTF8ToString(eventName);
1633
+ var dataStr = UTF8ToString(data);
1634
+ var connection = Module.balancyWebSockets.get(connectionId);
1635
+ if (connection && connection.socket) {
1636
+ var message = '42["' + eventNameStr + '",' + dataStr + "]";
1637
+ connection.socket.send(message);
1638
+ }
1639
+ }
1472
1640
  function js_websocket_send_ack(connectionId, ackId, responseData) {
1473
1641
  if (!Module.balancyWebSockets) return;
1474
1642
  var responseDataStr = UTF8ToString(responseData);
@@ -7336,7 +7504,11 @@
7336
7504
  invoke_viiiiiiiiiiiiiii: invoke_viiiiiiiiiiiiiii,
7337
7505
  invoke_viijii: invoke_viijii,
7338
7506
  js_fetch: js_fetch,
7507
+ js_websocket_connect: js_websocket_connect,
7508
+ js_websocket_disconnect: js_websocket_disconnect,
7339
7509
  js_websocket_send_ack: js_websocket_send_ack,
7510
+ js_websocket_send_message: js_websocket_send_message,
7511
+ js_websocket_subscribe: js_websocket_subscribe,
7340
7512
  random_get: _random_get
7341
7513
  };
7342
7514
  var wasmExports;
@@ -7407,6 +7579,7 @@
7407
7579
  Module["__Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi"] = createExportWrapper("_Z36jsbalancyUnsubscribeSingletonChangedNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEi", 2);
7408
7580
  Module["__Z35jsbalancyClearAllSingletonCallbacksv"] = createExportWrapper("_Z35jsbalancyClearAllSingletonCallbacksv", 0);
7409
7581
  Module["__Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z18jsbalancyGetUnnyIdPN7Balancy5Utils15JsonBasedObjectE", 2);
7582
+ Module["__Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_"] = createExportWrapper("_Z28jsbalancyStartAbTestManuallyPN7Balancy5Utils15JsonBasedObjectES2_", 2);
7410
7583
  Module["__Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z19jsbalancyGetProfileNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 1);
7411
7584
  Module["__Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"] = createExportWrapper("_Z39jsbalancyLocalization_GetLocalizedValueNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE", 2);
7412
7585
  Module["__Z48jsbalancyLocalization_GetCurrentLocalizationCodev"] = createExportWrapper("_Z48jsbalancyLocalization_GetCurrentLocalizationCodev", 1);
@@ -7420,6 +7593,7 @@
7420
7593
  Module["__Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z29jsbalancyHardPurchaseShopSlotPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7421
7594
  Module["__Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z30jsbalancyHardPurchaseGameOfferPN7Balancy4Data8BaseDataEPNS_4Core11PaymentInfoEN10emscripten3valEb", 4);
7422
7595
  Module["__Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb"] = createExportWrapper("_Z35jsbalancyHardPurchaseGameOfferGroupPN7Balancy4Data8BaseDataEPNS_5Utils15JsonBasedObjectEPNS_4Core11PaymentInfoEN10emscripten3valEb", 5);
7596
+ Module["__Z20jsbalancyGetProductsN10emscripten3valE"] = createExportWrapper("_Z20jsbalancyGetProductsN10emscripten3valE", 1);
7423
7597
  Module["__Z21jsbalancyAuth_AsGuestN10emscripten3valE"] = createExportWrapper("_Z21jsbalancyAuth_AsGuestN10emscripten3valE", 1);
7424
7598
  Module["__Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE"] = createExportWrapper("_Z29jsbalancyAuth_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_N10emscripten3valE", 3);
7425
7599
  Module["__Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE"] = createExportWrapper("_Z29jsbalancyLink_NameAndPasswordNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_bN10emscripten3valE", 4);
@@ -7454,9 +7628,9 @@
7454
7628
  Module["__Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE"] = createExportWrapper("_Z37jsbalancyInventory_GetTotalItemsCountPN7Balancy5Utils15JsonBasedObjectE", 1);
7455
7629
  Module["_balancyGenenal_LevelCompleted"] = createExportWrapper("balancyGenenal_LevelCompleted", 0);
7456
7630
  Module["_balancyGenenal_LevelFailed"] = createExportWrapper("balancyGenenal_LevelFailed", 0);
7457
- Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7458
- Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7459
- Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7631
+ var _emscripten_websocket_on_connection_status = Module["_emscripten_websocket_on_connection_status"] = createExportWrapper("emscripten_websocket_on_connection_status", 3);
7632
+ var _emscripten_websocket_on_socketio_event = Module["_emscripten_websocket_on_socketio_event"] = createExportWrapper("emscripten_websocket_on_socketio_event", 5);
7633
+ var _emscripten_websocket_on_socketio_error = Module["_emscripten_websocket_on_socketio_error"] = createExportWrapper("emscripten_websocket_on_socketio_error", 3);
7460
7634
  var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1);
7461
7635
  var ___getTypeName = createExportWrapper("__getTypeName", 1);
7462
7636
  Module["_downloadSucceededBinary"] = createExportWrapper("downloadSucceededBinary", 3);
@@ -7565,6 +7739,12 @@
7565
7739
  Module["_balancyInventory_AddItems"] = createExportWrapper("balancyInventory_AddItems", 2);
7566
7740
  Module["_balancyInventory_RemoveItems"] = createExportWrapper("balancyInventory_RemoveItems", 2);
7567
7741
  Module["_balancyInventory_GetTotalItemsCount"] = createExportWrapper("balancyInventory_GetTotalItemsCount", 1);
7742
+ Module["_balancyStartAbTestManually"] = createExportWrapper("balancyStartAbTestManually", 2);
7743
+ Module["_balancyConditionCanPass"] = createExportWrapper("balancyConditionCanPass", 1);
7744
+ Module["_balancyConditionSubscribe"] = createExportWrapper("balancyConditionSubscribe", 2);
7745
+ Module["_balancyConditionUnsubscribe"] = createExportWrapper("balancyConditionUnsubscribe", 1);
7746
+ Module["_balancyConditionGetSecondsLeftBeforeDeactivation"] = createExportWrapper("balancyConditionGetSecondsLeftBeforeDeactivation", 1);
7747
+ Module["_balancyConditionGetSecondsBeforeActivation"] = createExportWrapper("balancyConditionGetSecondsBeforeActivation", 2);
7568
7748
  var _fflush = createExportWrapper("fflush", 1);
7569
7749
  var _strerror = createExportWrapper("strerror", 1);
7570
7750
  var _setThrew = createExportWrapper("setThrew", 2);
@@ -7618,6 +7798,7 @@
7618
7798
  Module["dynCall_viiid"] = createExportWrapper("dynCall_viiid", 5);
7619
7799
  Module["dynCall_iiiid"] = createExportWrapper("dynCall_iiiid", 5);
7620
7800
  Module["dynCall_iiiij"] = createExportWrapper("dynCall_iiiij", 6);
7801
+ Module["dynCall_fi"] = createExportWrapper("dynCall_fi", 2);
7621
7802
  var dynCall_iiiiii = Module["dynCall_iiiiii"] = createExportWrapper("dynCall_iiiiii", 6);
7622
7803
  Module["dynCall_iidd"] = createExportWrapper("dynCall_iidd", 4);
7623
7804
  Module["dynCall_didd"] = createExportWrapper("dynCall_didd", 4);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balancy/wasm",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "scripts": {
5
5
  "build:web": "vite build --mode web",
6
6
  "build:node": "vite build --mode node",