@waku/message-encryption 0.0.26-b5e8b17.0 → 0.0.26

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.
@@ -1,4 +1,4 @@
1
- import { c as allocUnsafe, f as fromString, d as concat, u as utf8ToBytes$1, e as getDefaultExportFromCjs, h as encrypt, i as hexToBytes, j as decrypt, k as generateIv, l as encrypt$1, S as Symmetric, m as decrypt$1, r as randomBytes, n as keccak256, s as sign, o as Signature, p as recoverPublicKey, V as Version$1, O as OneMillion$1, a as generateSymmetricKey } from './symmetric-TylJB-2X.js';
1
+ import { h as allocUnsafe, i as fromString, j as alloc$1, l as concat, u as utf8ToBytes$1, m as getDefaultExportFromCjs, n as encrypt, o as hexToBytes, p as decrypt, q as generateIv, t as encrypt$1, S as Symmetric, v as decrypt$1, r as randomBytes, k as keccak256, d as sign, w as Signature, x as recoverPublicKey } from './symmetric-qyNI8P98.js';
2
2
 
3
3
  /* eslint-disable no-fallthrough */
4
4
  const N1 = Math.pow(2, 7);
@@ -1320,6 +1320,25 @@ function message(encode, decode) {
1320
1320
  return createCodec('message', CODEC_TYPES.LENGTH_DELIMITED, encode, decode);
1321
1321
  }
1322
1322
 
1323
+ /**
1324
+ * @packageDocumentation
1325
+ *
1326
+ * This module contains serialization/deserialization code used when encoding/decoding protobufs.
1327
+ *
1328
+ * It should be declared as a dependency of your project:
1329
+ *
1330
+ * ```console
1331
+ * npm i protons-runtime
1332
+ * ```
1333
+ */
1334
+ class CodeError extends Error {
1335
+ code;
1336
+ constructor(message, code, options) {
1337
+ super(message, options);
1338
+ this.code = code;
1339
+ }
1340
+ }
1341
+
1323
1342
  /* eslint-disable import/export */
1324
1343
  /* eslint-disable complexity */
1325
1344
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -1365,44 +1384,52 @@ var RateLimitProof$4;
1365
1384
  if (opts.lengthDelimited !== false) {
1366
1385
  w.ldelim();
1367
1386
  }
1368
- }, (reader, length) => {
1387
+ }, (reader, length, opts = {}) => {
1369
1388
  const obj = {
1370
- proof: new Uint8Array(0),
1371
- merkleRoot: new Uint8Array(0),
1372
- epoch: new Uint8Array(0),
1373
- shareX: new Uint8Array(0),
1374
- shareY: new Uint8Array(0),
1375
- nullifier: new Uint8Array(0),
1376
- rlnIdentifier: new Uint8Array(0)
1389
+ proof: alloc$1(0),
1390
+ merkleRoot: alloc$1(0),
1391
+ epoch: alloc$1(0),
1392
+ shareX: alloc$1(0),
1393
+ shareY: alloc$1(0),
1394
+ nullifier: alloc$1(0),
1395
+ rlnIdentifier: alloc$1(0)
1377
1396
  };
1378
1397
  const end = length == null ? reader.len : reader.pos + length;
1379
1398
  while (reader.pos < end) {
1380
1399
  const tag = reader.uint32();
1381
1400
  switch (tag >>> 3) {
1382
- case 1:
1401
+ case 1: {
1383
1402
  obj.proof = reader.bytes();
1384
1403
  break;
1385
- case 2:
1404
+ }
1405
+ case 2: {
1386
1406
  obj.merkleRoot = reader.bytes();
1387
1407
  break;
1388
- case 3:
1408
+ }
1409
+ case 3: {
1389
1410
  obj.epoch = reader.bytes();
1390
1411
  break;
1391
- case 4:
1412
+ }
1413
+ case 4: {
1392
1414
  obj.shareX = reader.bytes();
1393
1415
  break;
1394
- case 5:
1416
+ }
1417
+ case 5: {
1395
1418
  obj.shareY = reader.bytes();
1396
1419
  break;
1397
- case 6:
1420
+ }
1421
+ case 6: {
1398
1422
  obj.nullifier = reader.bytes();
1399
1423
  break;
1400
- case 7:
1424
+ }
1425
+ case 7: {
1401
1426
  obj.rlnIdentifier = reader.bytes();
1402
1427
  break;
1403
- default:
1428
+ }
1429
+ default: {
1404
1430
  reader.skipType(tag & 7);
1405
1431
  break;
1432
+ }
1406
1433
  }
1407
1434
  }
1408
1435
  return obj;
@@ -1413,8 +1440,8 @@ var RateLimitProof$4;
1413
1440
  RateLimitProof.encode = (obj) => {
1414
1441
  return encodeMessage(obj, RateLimitProof.codec());
1415
1442
  };
1416
- RateLimitProof.decode = (buf) => {
1417
- return decodeMessage(buf, RateLimitProof.codec());
1443
+ RateLimitProof.decode = (buf, opts) => {
1444
+ return decodeMessage(buf, RateLimitProof.codec(), opts);
1418
1445
  };
1419
1446
  })(RateLimitProof$4 || (RateLimitProof$4 = {}));
1420
1447
  var WakuMessage$4;
@@ -1457,39 +1484,49 @@ var WakuMessage$4;
1457
1484
  if (opts.lengthDelimited !== false) {
1458
1485
  w.ldelim();
1459
1486
  }
1460
- }, (reader, length) => {
1487
+ }, (reader, length, opts = {}) => {
1461
1488
  const obj = {
1462
- payload: new Uint8Array(0),
1489
+ payload: alloc$1(0),
1463
1490
  contentTopic: ''
1464
1491
  };
1465
1492
  const end = length == null ? reader.len : reader.pos + length;
1466
1493
  while (reader.pos < end) {
1467
1494
  const tag = reader.uint32();
1468
1495
  switch (tag >>> 3) {
1469
- case 1:
1496
+ case 1: {
1470
1497
  obj.payload = reader.bytes();
1471
1498
  break;
1472
- case 2:
1499
+ }
1500
+ case 2: {
1473
1501
  obj.contentTopic = reader.string();
1474
1502
  break;
1475
- case 3:
1503
+ }
1504
+ case 3: {
1476
1505
  obj.version = reader.uint32();
1477
1506
  break;
1478
- case 10:
1507
+ }
1508
+ case 10: {
1479
1509
  obj.timestamp = reader.sint64();
1480
1510
  break;
1481
- case 11:
1511
+ }
1512
+ case 11: {
1482
1513
  obj.meta = reader.bytes();
1483
1514
  break;
1484
- case 21:
1485
- obj.rateLimitProof = RateLimitProof$4.codec().decode(reader, reader.uint32());
1515
+ }
1516
+ case 21: {
1517
+ obj.rateLimitProof = RateLimitProof$4.codec().decode(reader, reader.uint32(), {
1518
+ limits: opts.limits?.rateLimitProof
1519
+ });
1486
1520
  break;
1487
- case 31:
1521
+ }
1522
+ case 31: {
1488
1523
  obj.ephemeral = reader.bool();
1489
1524
  break;
1490
- default:
1525
+ }
1526
+ default: {
1491
1527
  reader.skipType(tag & 7);
1492
1528
  break;
1529
+ }
1493
1530
  }
1494
1531
  }
1495
1532
  return obj;
@@ -1500,8 +1537,8 @@ var WakuMessage$4;
1500
1537
  WakuMessage.encode = (obj) => {
1501
1538
  return encodeMessage(obj, WakuMessage.codec());
1502
1539
  };
1503
- WakuMessage.decode = (buf) => {
1504
- return decodeMessage(buf, WakuMessage.codec());
1540
+ WakuMessage.decode = (buf, opts) => {
1541
+ return decodeMessage(buf, WakuMessage.codec(), opts);
1505
1542
  };
1506
1543
  })(WakuMessage$4 || (WakuMessage$4 = {}));
1507
1544
 
@@ -1527,7 +1564,7 @@ var FilterRequest;
1527
1564
  if (opts.lengthDelimited !== false) {
1528
1565
  w.ldelim();
1529
1566
  }
1530
- }, (reader, length) => {
1567
+ }, (reader, length, opts = {}) => {
1531
1568
  const obj = {
1532
1569
  contentTopic: ''
1533
1570
  };
@@ -1535,12 +1572,14 @@ var FilterRequest;
1535
1572
  while (reader.pos < end) {
1536
1573
  const tag = reader.uint32();
1537
1574
  switch (tag >>> 3) {
1538
- case 1:
1575
+ case 1: {
1539
1576
  obj.contentTopic = reader.string();
1540
1577
  break;
1541
- default:
1578
+ }
1579
+ default: {
1542
1580
  reader.skipType(tag & 7);
1543
1581
  break;
1582
+ }
1544
1583
  }
1545
1584
  }
1546
1585
  return obj;
@@ -1551,8 +1590,8 @@ var FilterRequest;
1551
1590
  ContentFilter.encode = (obj) => {
1552
1591
  return encodeMessage(obj, ContentFilter.codec());
1553
1592
  };
1554
- ContentFilter.decode = (buf) => {
1555
- return decodeMessage(buf, ContentFilter.codec());
1593
+ ContentFilter.decode = (buf, opts) => {
1594
+ return decodeMessage(buf, ContentFilter.codec(), opts);
1556
1595
  };
1557
1596
  })(FilterRequest.ContentFilter || (FilterRequest.ContentFilter = {}));
1558
1597
  let _codec;
@@ -1579,7 +1618,7 @@ var FilterRequest;
1579
1618
  if (opts.lengthDelimited !== false) {
1580
1619
  w.ldelim();
1581
1620
  }
1582
- }, (reader, length) => {
1621
+ }, (reader, length, opts = {}) => {
1583
1622
  const obj = {
1584
1623
  subscribe: false,
1585
1624
  topic: '',
@@ -1589,18 +1628,27 @@ var FilterRequest;
1589
1628
  while (reader.pos < end) {
1590
1629
  const tag = reader.uint32();
1591
1630
  switch (tag >>> 3) {
1592
- case 1:
1631
+ case 1: {
1593
1632
  obj.subscribe = reader.bool();
1594
1633
  break;
1595
- case 2:
1634
+ }
1635
+ case 2: {
1596
1636
  obj.topic = reader.string();
1597
1637
  break;
1598
- case 3:
1599
- obj.contentFilters.push(FilterRequest.ContentFilter.codec().decode(reader, reader.uint32()));
1638
+ }
1639
+ case 3: {
1640
+ if (opts.limits?.contentFilters != null && obj.contentFilters.length === opts.limits.contentFilters) {
1641
+ throw new CodeError('decode error - map field "contentFilters" had too many elements', 'ERR_MAX_LENGTH');
1642
+ }
1643
+ obj.contentFilters.push(FilterRequest.ContentFilter.codec().decode(reader, reader.uint32(), {
1644
+ limits: opts.limits?.contentFilters$
1645
+ }));
1600
1646
  break;
1601
- default:
1647
+ }
1648
+ default: {
1602
1649
  reader.skipType(tag & 7);
1603
1650
  break;
1651
+ }
1604
1652
  }
1605
1653
  }
1606
1654
  return obj;
@@ -1611,8 +1659,8 @@ var FilterRequest;
1611
1659
  FilterRequest.encode = (obj) => {
1612
1660
  return encodeMessage(obj, FilterRequest.codec());
1613
1661
  };
1614
- FilterRequest.decode = (buf) => {
1615
- return decodeMessage(buf, FilterRequest.codec());
1662
+ FilterRequest.decode = (buf, opts) => {
1663
+ return decodeMessage(buf, FilterRequest.codec(), opts);
1616
1664
  };
1617
1665
  })(FilterRequest || (FilterRequest = {}));
1618
1666
  var MessagePush$1;
@@ -1633,7 +1681,7 @@ var MessagePush$1;
1633
1681
  if (opts.lengthDelimited !== false) {
1634
1682
  w.ldelim();
1635
1683
  }
1636
- }, (reader, length) => {
1684
+ }, (reader, length, opts = {}) => {
1637
1685
  const obj = {
1638
1686
  messages: []
1639
1687
  };
@@ -1641,12 +1689,19 @@ var MessagePush$1;
1641
1689
  while (reader.pos < end) {
1642
1690
  const tag = reader.uint32();
1643
1691
  switch (tag >>> 3) {
1644
- case 1:
1645
- obj.messages.push(WakuMessage$3.codec().decode(reader, reader.uint32()));
1692
+ case 1: {
1693
+ if (opts.limits?.messages != null && obj.messages.length === opts.limits.messages) {
1694
+ throw new CodeError('decode error - map field "messages" had too many elements', 'ERR_MAX_LENGTH');
1695
+ }
1696
+ obj.messages.push(WakuMessage$3.codec().decode(reader, reader.uint32(), {
1697
+ limits: opts.limits?.messages$
1698
+ }));
1646
1699
  break;
1647
- default:
1700
+ }
1701
+ default: {
1648
1702
  reader.skipType(tag & 7);
1649
1703
  break;
1704
+ }
1650
1705
  }
1651
1706
  }
1652
1707
  return obj;
@@ -1657,8 +1712,8 @@ var MessagePush$1;
1657
1712
  MessagePush.encode = (obj) => {
1658
1713
  return encodeMessage(obj, MessagePush.codec());
1659
1714
  };
1660
- MessagePush.decode = (buf) => {
1661
- return decodeMessage(buf, MessagePush.codec());
1715
+ MessagePush.decode = (buf, opts) => {
1716
+ return decodeMessage(buf, MessagePush.codec(), opts);
1662
1717
  };
1663
1718
  })(MessagePush$1 || (MessagePush$1 = {}));
1664
1719
  var FilterRpc;
@@ -1685,7 +1740,7 @@ var FilterRpc;
1685
1740
  if (opts.lengthDelimited !== false) {
1686
1741
  w.ldelim();
1687
1742
  }
1688
- }, (reader, length) => {
1743
+ }, (reader, length, opts = {}) => {
1689
1744
  const obj = {
1690
1745
  requestId: ''
1691
1746
  };
@@ -1693,18 +1748,26 @@ var FilterRpc;
1693
1748
  while (reader.pos < end) {
1694
1749
  const tag = reader.uint32();
1695
1750
  switch (tag >>> 3) {
1696
- case 1:
1751
+ case 1: {
1697
1752
  obj.requestId = reader.string();
1698
1753
  break;
1699
- case 2:
1700
- obj.request = FilterRequest.codec().decode(reader, reader.uint32());
1754
+ }
1755
+ case 2: {
1756
+ obj.request = FilterRequest.codec().decode(reader, reader.uint32(), {
1757
+ limits: opts.limits?.request
1758
+ });
1701
1759
  break;
1702
- case 3:
1703
- obj.push = MessagePush$1.codec().decode(reader, reader.uint32());
1760
+ }
1761
+ case 3: {
1762
+ obj.push = MessagePush$1.codec().decode(reader, reader.uint32(), {
1763
+ limits: opts.limits?.push
1764
+ });
1704
1765
  break;
1705
- default:
1766
+ }
1767
+ default: {
1706
1768
  reader.skipType(tag & 7);
1707
1769
  break;
1770
+ }
1708
1771
  }
1709
1772
  }
1710
1773
  return obj;
@@ -1715,8 +1778,8 @@ var FilterRpc;
1715
1778
  FilterRpc.encode = (obj) => {
1716
1779
  return encodeMessage(obj, FilterRpc.codec());
1717
1780
  };
1718
- FilterRpc.decode = (buf) => {
1719
- return decodeMessage(buf, FilterRpc.codec());
1781
+ FilterRpc.decode = (buf, opts) => {
1782
+ return decodeMessage(buf, FilterRpc.codec(), opts);
1720
1783
  };
1721
1784
  })(FilterRpc || (FilterRpc = {}));
1722
1785
  var RateLimitProof$3;
@@ -1759,44 +1822,52 @@ var RateLimitProof$3;
1759
1822
  if (opts.lengthDelimited !== false) {
1760
1823
  w.ldelim();
1761
1824
  }
1762
- }, (reader, length) => {
1825
+ }, (reader, length, opts = {}) => {
1763
1826
  const obj = {
1764
- proof: new Uint8Array(0),
1765
- merkleRoot: new Uint8Array(0),
1766
- epoch: new Uint8Array(0),
1767
- shareX: new Uint8Array(0),
1768
- shareY: new Uint8Array(0),
1769
- nullifier: new Uint8Array(0),
1770
- rlnIdentifier: new Uint8Array(0)
1827
+ proof: alloc$1(0),
1828
+ merkleRoot: alloc$1(0),
1829
+ epoch: alloc$1(0),
1830
+ shareX: alloc$1(0),
1831
+ shareY: alloc$1(0),
1832
+ nullifier: alloc$1(0),
1833
+ rlnIdentifier: alloc$1(0)
1771
1834
  };
1772
1835
  const end = length == null ? reader.len : reader.pos + length;
1773
1836
  while (reader.pos < end) {
1774
1837
  const tag = reader.uint32();
1775
1838
  switch (tag >>> 3) {
1776
- case 1:
1839
+ case 1: {
1777
1840
  obj.proof = reader.bytes();
1778
1841
  break;
1779
- case 2:
1842
+ }
1843
+ case 2: {
1780
1844
  obj.merkleRoot = reader.bytes();
1781
1845
  break;
1782
- case 3:
1846
+ }
1847
+ case 3: {
1783
1848
  obj.epoch = reader.bytes();
1784
1849
  break;
1785
- case 4:
1850
+ }
1851
+ case 4: {
1786
1852
  obj.shareX = reader.bytes();
1787
1853
  break;
1788
- case 5:
1854
+ }
1855
+ case 5: {
1789
1856
  obj.shareY = reader.bytes();
1790
1857
  break;
1791
- case 6:
1858
+ }
1859
+ case 6: {
1792
1860
  obj.nullifier = reader.bytes();
1793
1861
  break;
1794
- case 7:
1862
+ }
1863
+ case 7: {
1795
1864
  obj.rlnIdentifier = reader.bytes();
1796
1865
  break;
1797
- default:
1866
+ }
1867
+ default: {
1798
1868
  reader.skipType(tag & 7);
1799
1869
  break;
1870
+ }
1800
1871
  }
1801
1872
  }
1802
1873
  return obj;
@@ -1807,8 +1878,8 @@ var RateLimitProof$3;
1807
1878
  RateLimitProof.encode = (obj) => {
1808
1879
  return encodeMessage(obj, RateLimitProof.codec());
1809
1880
  };
1810
- RateLimitProof.decode = (buf) => {
1811
- return decodeMessage(buf, RateLimitProof.codec());
1881
+ RateLimitProof.decode = (buf, opts) => {
1882
+ return decodeMessage(buf, RateLimitProof.codec(), opts);
1812
1883
  };
1813
1884
  })(RateLimitProof$3 || (RateLimitProof$3 = {}));
1814
1885
  var WakuMessage$3;
@@ -1851,39 +1922,49 @@ var WakuMessage$3;
1851
1922
  if (opts.lengthDelimited !== false) {
1852
1923
  w.ldelim();
1853
1924
  }
1854
- }, (reader, length) => {
1925
+ }, (reader, length, opts = {}) => {
1855
1926
  const obj = {
1856
- payload: new Uint8Array(0),
1927
+ payload: alloc$1(0),
1857
1928
  contentTopic: ''
1858
1929
  };
1859
1930
  const end = length == null ? reader.len : reader.pos + length;
1860
1931
  while (reader.pos < end) {
1861
1932
  const tag = reader.uint32();
1862
1933
  switch (tag >>> 3) {
1863
- case 1:
1934
+ case 1: {
1864
1935
  obj.payload = reader.bytes();
1865
1936
  break;
1866
- case 2:
1937
+ }
1938
+ case 2: {
1867
1939
  obj.contentTopic = reader.string();
1868
1940
  break;
1869
- case 3:
1941
+ }
1942
+ case 3: {
1870
1943
  obj.version = reader.uint32();
1871
1944
  break;
1872
- case 10:
1945
+ }
1946
+ case 10: {
1873
1947
  obj.timestamp = reader.sint64();
1874
1948
  break;
1875
- case 11:
1949
+ }
1950
+ case 11: {
1876
1951
  obj.meta = reader.bytes();
1877
1952
  break;
1878
- case 21:
1879
- obj.rateLimitProof = RateLimitProof$3.codec().decode(reader, reader.uint32());
1953
+ }
1954
+ case 21: {
1955
+ obj.rateLimitProof = RateLimitProof$3.codec().decode(reader, reader.uint32(), {
1956
+ limits: opts.limits?.rateLimitProof
1957
+ });
1880
1958
  break;
1881
- case 31:
1959
+ }
1960
+ case 31: {
1882
1961
  obj.ephemeral = reader.bool();
1883
1962
  break;
1884
- default:
1963
+ }
1964
+ default: {
1885
1965
  reader.skipType(tag & 7);
1886
1966
  break;
1967
+ }
1887
1968
  }
1888
1969
  }
1889
1970
  return obj;
@@ -1894,8 +1975,8 @@ var WakuMessage$3;
1894
1975
  WakuMessage.encode = (obj) => {
1895
1976
  return encodeMessage(obj, WakuMessage.codec());
1896
1977
  };
1897
- WakuMessage.decode = (buf) => {
1898
- return decodeMessage(buf, WakuMessage.codec());
1978
+ WakuMessage.decode = (buf, opts) => {
1979
+ return decodeMessage(buf, WakuMessage.codec(), opts);
1899
1980
  };
1900
1981
  })(WakuMessage$3 || (WakuMessage$3 = {}));
1901
1982
 
@@ -1920,7 +2001,7 @@ var TopicOnlyMessage;
1920
2001
  if (opts.lengthDelimited !== false) {
1921
2002
  w.ldelim();
1922
2003
  }
1923
- }, (reader, length) => {
2004
+ }, (reader, length, opts = {}) => {
1924
2005
  const obj = {
1925
2006
  contentTopic: ''
1926
2007
  };
@@ -1928,12 +2009,14 @@ var TopicOnlyMessage;
1928
2009
  while (reader.pos < end) {
1929
2010
  const tag = reader.uint32();
1930
2011
  switch (tag >>> 3) {
1931
- case 2:
2012
+ case 2: {
1932
2013
  obj.contentTopic = reader.string();
1933
2014
  break;
1934
- default:
2015
+ }
2016
+ default: {
1935
2017
  reader.skipType(tag & 7);
1936
2018
  break;
2019
+ }
1937
2020
  }
1938
2021
  }
1939
2022
  return obj;
@@ -1944,8 +2027,8 @@ var TopicOnlyMessage;
1944
2027
  TopicOnlyMessage.encode = (obj) => {
1945
2028
  return encodeMessage(obj, TopicOnlyMessage.codec());
1946
2029
  };
1947
- TopicOnlyMessage.decode = (buf) => {
1948
- return decodeMessage(buf, TopicOnlyMessage.codec());
2030
+ TopicOnlyMessage.decode = (buf, opts) => {
2031
+ return decodeMessage(buf, TopicOnlyMessage.codec(), opts);
1949
2032
  };
1950
2033
  })(TopicOnlyMessage || (TopicOnlyMessage = {}));
1951
2034
 
@@ -2003,7 +2086,7 @@ var FilterSubscribeRequest;
2003
2086
  if (opts.lengthDelimited !== false) {
2004
2087
  w.ldelim();
2005
2088
  }
2006
- }, (reader, length) => {
2089
+ }, (reader, length, opts = {}) => {
2007
2090
  const obj = {
2008
2091
  requestId: '',
2009
2092
  filterSubscribeType: FilterSubscribeType.SUBSCRIBER_PING,
@@ -2013,21 +2096,29 @@ var FilterSubscribeRequest;
2013
2096
  while (reader.pos < end) {
2014
2097
  const tag = reader.uint32();
2015
2098
  switch (tag >>> 3) {
2016
- case 1:
2099
+ case 1: {
2017
2100
  obj.requestId = reader.string();
2018
2101
  break;
2019
- case 2:
2102
+ }
2103
+ case 2: {
2020
2104
  obj.filterSubscribeType = FilterSubscribeRequest.FilterSubscribeType.codec().decode(reader);
2021
2105
  break;
2022
- case 10:
2106
+ }
2107
+ case 10: {
2023
2108
  obj.pubsubTopic = reader.string();
2024
2109
  break;
2025
- case 11:
2110
+ }
2111
+ case 11: {
2112
+ if (opts.limits?.contentTopics != null && obj.contentTopics.length === opts.limits.contentTopics) {
2113
+ throw new CodeError('decode error - map field "contentTopics" had too many elements', 'ERR_MAX_LENGTH');
2114
+ }
2026
2115
  obj.contentTopics.push(reader.string());
2027
2116
  break;
2028
- default:
2117
+ }
2118
+ default: {
2029
2119
  reader.skipType(tag & 7);
2030
2120
  break;
2121
+ }
2031
2122
  }
2032
2123
  }
2033
2124
  return obj;
@@ -2038,8 +2129,8 @@ var FilterSubscribeRequest;
2038
2129
  FilterSubscribeRequest.encode = (obj) => {
2039
2130
  return encodeMessage(obj, FilterSubscribeRequest.codec());
2040
2131
  };
2041
- FilterSubscribeRequest.decode = (buf) => {
2042
- return decodeMessage(buf, FilterSubscribeRequest.codec());
2132
+ FilterSubscribeRequest.decode = (buf, opts) => {
2133
+ return decodeMessage(buf, FilterSubscribeRequest.codec(), opts);
2043
2134
  };
2044
2135
  })(FilterSubscribeRequest || (FilterSubscribeRequest = {}));
2045
2136
  var FilterSubscribeResponse;
@@ -2066,7 +2157,7 @@ var FilterSubscribeResponse;
2066
2157
  if (opts.lengthDelimited !== false) {
2067
2158
  w.ldelim();
2068
2159
  }
2069
- }, (reader, length) => {
2160
+ }, (reader, length, opts = {}) => {
2070
2161
  const obj = {
2071
2162
  requestId: '',
2072
2163
  statusCode: 0
@@ -2075,18 +2166,22 @@ var FilterSubscribeResponse;
2075
2166
  while (reader.pos < end) {
2076
2167
  const tag = reader.uint32();
2077
2168
  switch (tag >>> 3) {
2078
- case 1:
2169
+ case 1: {
2079
2170
  obj.requestId = reader.string();
2080
2171
  break;
2081
- case 10:
2172
+ }
2173
+ case 10: {
2082
2174
  obj.statusCode = reader.uint32();
2083
2175
  break;
2084
- case 11:
2176
+ }
2177
+ case 11: {
2085
2178
  obj.statusDesc = reader.string();
2086
2179
  break;
2087
- default:
2180
+ }
2181
+ default: {
2088
2182
  reader.skipType(tag & 7);
2089
2183
  break;
2184
+ }
2090
2185
  }
2091
2186
  }
2092
2187
  return obj;
@@ -2097,8 +2192,8 @@ var FilterSubscribeResponse;
2097
2192
  FilterSubscribeResponse.encode = (obj) => {
2098
2193
  return encodeMessage(obj, FilterSubscribeResponse.codec());
2099
2194
  };
2100
- FilterSubscribeResponse.decode = (buf) => {
2101
- return decodeMessage(buf, FilterSubscribeResponse.codec());
2195
+ FilterSubscribeResponse.decode = (buf, opts) => {
2196
+ return decodeMessage(buf, FilterSubscribeResponse.codec(), opts);
2102
2197
  };
2103
2198
  })(FilterSubscribeResponse || (FilterSubscribeResponse = {}));
2104
2199
  var MessagePush;
@@ -2121,21 +2216,26 @@ var MessagePush;
2121
2216
  if (opts.lengthDelimited !== false) {
2122
2217
  w.ldelim();
2123
2218
  }
2124
- }, (reader, length) => {
2219
+ }, (reader, length, opts = {}) => {
2125
2220
  const obj = {};
2126
2221
  const end = length == null ? reader.len : reader.pos + length;
2127
2222
  while (reader.pos < end) {
2128
2223
  const tag = reader.uint32();
2129
2224
  switch (tag >>> 3) {
2130
- case 1:
2131
- obj.wakuMessage = WakuMessage$2.codec().decode(reader, reader.uint32());
2225
+ case 1: {
2226
+ obj.wakuMessage = WakuMessage$2.codec().decode(reader, reader.uint32(), {
2227
+ limits: opts.limits?.wakuMessage
2228
+ });
2132
2229
  break;
2133
- case 2:
2230
+ }
2231
+ case 2: {
2134
2232
  obj.pubsubTopic = reader.string();
2135
2233
  break;
2136
- default:
2234
+ }
2235
+ default: {
2137
2236
  reader.skipType(tag & 7);
2138
2237
  break;
2238
+ }
2139
2239
  }
2140
2240
  }
2141
2241
  return obj;
@@ -2146,8 +2246,8 @@ var MessagePush;
2146
2246
  MessagePush.encode = (obj) => {
2147
2247
  return encodeMessage(obj, MessagePush.codec());
2148
2248
  };
2149
- MessagePush.decode = (buf) => {
2150
- return decodeMessage(buf, MessagePush.codec());
2249
+ MessagePush.decode = (buf, opts) => {
2250
+ return decodeMessage(buf, MessagePush.codec(), opts);
2151
2251
  };
2152
2252
  })(MessagePush || (MessagePush = {}));
2153
2253
  var RateLimitProof$2;
@@ -2190,44 +2290,52 @@ var RateLimitProof$2;
2190
2290
  if (opts.lengthDelimited !== false) {
2191
2291
  w.ldelim();
2192
2292
  }
2193
- }, (reader, length) => {
2293
+ }, (reader, length, opts = {}) => {
2194
2294
  const obj = {
2195
- proof: new Uint8Array(0),
2196
- merkleRoot: new Uint8Array(0),
2197
- epoch: new Uint8Array(0),
2198
- shareX: new Uint8Array(0),
2199
- shareY: new Uint8Array(0),
2200
- nullifier: new Uint8Array(0),
2201
- rlnIdentifier: new Uint8Array(0)
2295
+ proof: alloc$1(0),
2296
+ merkleRoot: alloc$1(0),
2297
+ epoch: alloc$1(0),
2298
+ shareX: alloc$1(0),
2299
+ shareY: alloc$1(0),
2300
+ nullifier: alloc$1(0),
2301
+ rlnIdentifier: alloc$1(0)
2202
2302
  };
2203
2303
  const end = length == null ? reader.len : reader.pos + length;
2204
2304
  while (reader.pos < end) {
2205
2305
  const tag = reader.uint32();
2206
2306
  switch (tag >>> 3) {
2207
- case 1:
2307
+ case 1: {
2208
2308
  obj.proof = reader.bytes();
2209
2309
  break;
2210
- case 2:
2310
+ }
2311
+ case 2: {
2211
2312
  obj.merkleRoot = reader.bytes();
2212
2313
  break;
2213
- case 3:
2314
+ }
2315
+ case 3: {
2214
2316
  obj.epoch = reader.bytes();
2215
2317
  break;
2216
- case 4:
2318
+ }
2319
+ case 4: {
2217
2320
  obj.shareX = reader.bytes();
2218
2321
  break;
2219
- case 5:
2322
+ }
2323
+ case 5: {
2220
2324
  obj.shareY = reader.bytes();
2221
2325
  break;
2222
- case 6:
2326
+ }
2327
+ case 6: {
2223
2328
  obj.nullifier = reader.bytes();
2224
2329
  break;
2225
- case 7:
2330
+ }
2331
+ case 7: {
2226
2332
  obj.rlnIdentifier = reader.bytes();
2227
2333
  break;
2228
- default:
2334
+ }
2335
+ default: {
2229
2336
  reader.skipType(tag & 7);
2230
2337
  break;
2338
+ }
2231
2339
  }
2232
2340
  }
2233
2341
  return obj;
@@ -2238,8 +2346,8 @@ var RateLimitProof$2;
2238
2346
  RateLimitProof.encode = (obj) => {
2239
2347
  return encodeMessage(obj, RateLimitProof.codec());
2240
2348
  };
2241
- RateLimitProof.decode = (buf) => {
2242
- return decodeMessage(buf, RateLimitProof.codec());
2349
+ RateLimitProof.decode = (buf, opts) => {
2350
+ return decodeMessage(buf, RateLimitProof.codec(), opts);
2243
2351
  };
2244
2352
  })(RateLimitProof$2 || (RateLimitProof$2 = {}));
2245
2353
  var WakuMessage$2;
@@ -2282,39 +2390,49 @@ var WakuMessage$2;
2282
2390
  if (opts.lengthDelimited !== false) {
2283
2391
  w.ldelim();
2284
2392
  }
2285
- }, (reader, length) => {
2393
+ }, (reader, length, opts = {}) => {
2286
2394
  const obj = {
2287
- payload: new Uint8Array(0),
2395
+ payload: alloc$1(0),
2288
2396
  contentTopic: ''
2289
2397
  };
2290
2398
  const end = length == null ? reader.len : reader.pos + length;
2291
2399
  while (reader.pos < end) {
2292
2400
  const tag = reader.uint32();
2293
2401
  switch (tag >>> 3) {
2294
- case 1:
2402
+ case 1: {
2295
2403
  obj.payload = reader.bytes();
2296
2404
  break;
2297
- case 2:
2405
+ }
2406
+ case 2: {
2298
2407
  obj.contentTopic = reader.string();
2299
2408
  break;
2300
- case 3:
2409
+ }
2410
+ case 3: {
2301
2411
  obj.version = reader.uint32();
2302
2412
  break;
2303
- case 10:
2413
+ }
2414
+ case 10: {
2304
2415
  obj.timestamp = reader.sint64();
2305
2416
  break;
2306
- case 11:
2417
+ }
2418
+ case 11: {
2307
2419
  obj.meta = reader.bytes();
2308
2420
  break;
2309
- case 21:
2310
- obj.rateLimitProof = RateLimitProof$2.codec().decode(reader, reader.uint32());
2421
+ }
2422
+ case 21: {
2423
+ obj.rateLimitProof = RateLimitProof$2.codec().decode(reader, reader.uint32(), {
2424
+ limits: opts.limits?.rateLimitProof
2425
+ });
2311
2426
  break;
2312
- case 31:
2427
+ }
2428
+ case 31: {
2313
2429
  obj.ephemeral = reader.bool();
2314
2430
  break;
2315
- default:
2431
+ }
2432
+ default: {
2316
2433
  reader.skipType(tag & 7);
2317
2434
  break;
2435
+ }
2318
2436
  }
2319
2437
  }
2320
2438
  return obj;
@@ -2325,8 +2443,8 @@ var WakuMessage$2;
2325
2443
  WakuMessage.encode = (obj) => {
2326
2444
  return encodeMessage(obj, WakuMessage.codec());
2327
2445
  };
2328
- WakuMessage.decode = (buf) => {
2329
- return decodeMessage(buf, WakuMessage.codec());
2446
+ WakuMessage.decode = (buf, opts) => {
2447
+ return decodeMessage(buf, WakuMessage.codec(), opts);
2330
2448
  };
2331
2449
  })(WakuMessage$2 || (WakuMessage$2 = {}));
2332
2450
 
@@ -2355,7 +2473,7 @@ var PushRequest;
2355
2473
  if (opts.lengthDelimited !== false) {
2356
2474
  w.ldelim();
2357
2475
  }
2358
- }, (reader, length) => {
2476
+ }, (reader, length, opts = {}) => {
2359
2477
  const obj = {
2360
2478
  pubsubTopic: ''
2361
2479
  };
@@ -2363,15 +2481,20 @@ var PushRequest;
2363
2481
  while (reader.pos < end) {
2364
2482
  const tag = reader.uint32();
2365
2483
  switch (tag >>> 3) {
2366
- case 1:
2484
+ case 1: {
2367
2485
  obj.pubsubTopic = reader.string();
2368
2486
  break;
2369
- case 2:
2370
- obj.message = WakuMessage$1.codec().decode(reader, reader.uint32());
2487
+ }
2488
+ case 2: {
2489
+ obj.message = WakuMessage$1.codec().decode(reader, reader.uint32(), {
2490
+ limits: opts.limits?.message
2491
+ });
2371
2492
  break;
2372
- default:
2493
+ }
2494
+ default: {
2373
2495
  reader.skipType(tag & 7);
2374
2496
  break;
2497
+ }
2375
2498
  }
2376
2499
  }
2377
2500
  return obj;
@@ -2382,8 +2505,8 @@ var PushRequest;
2382
2505
  PushRequest.encode = (obj) => {
2383
2506
  return encodeMessage(obj, PushRequest.codec());
2384
2507
  };
2385
- PushRequest.decode = (buf) => {
2386
- return decodeMessage(buf, PushRequest.codec());
2508
+ PushRequest.decode = (buf, opts) => {
2509
+ return decodeMessage(buf, PushRequest.codec(), opts);
2387
2510
  };
2388
2511
  })(PushRequest || (PushRequest = {}));
2389
2512
  var PushResponse;
@@ -2406,7 +2529,7 @@ var PushResponse;
2406
2529
  if (opts.lengthDelimited !== false) {
2407
2530
  w.ldelim();
2408
2531
  }
2409
- }, (reader, length) => {
2532
+ }, (reader, length, opts = {}) => {
2410
2533
  const obj = {
2411
2534
  isSuccess: false
2412
2535
  };
@@ -2414,15 +2537,18 @@ var PushResponse;
2414
2537
  while (reader.pos < end) {
2415
2538
  const tag = reader.uint32();
2416
2539
  switch (tag >>> 3) {
2417
- case 1:
2540
+ case 1: {
2418
2541
  obj.isSuccess = reader.bool();
2419
2542
  break;
2420
- case 2:
2543
+ }
2544
+ case 2: {
2421
2545
  obj.info = reader.string();
2422
2546
  break;
2423
- default:
2547
+ }
2548
+ default: {
2424
2549
  reader.skipType(tag & 7);
2425
2550
  break;
2551
+ }
2426
2552
  }
2427
2553
  }
2428
2554
  return obj;
@@ -2433,8 +2559,8 @@ var PushResponse;
2433
2559
  PushResponse.encode = (obj) => {
2434
2560
  return encodeMessage(obj, PushResponse.codec());
2435
2561
  };
2436
- PushResponse.decode = (buf) => {
2437
- return decodeMessage(buf, PushResponse.codec());
2562
+ PushResponse.decode = (buf, opts) => {
2563
+ return decodeMessage(buf, PushResponse.codec(), opts);
2438
2564
  };
2439
2565
  })(PushResponse || (PushResponse = {}));
2440
2566
  var PushRpc;
@@ -2461,7 +2587,7 @@ var PushRpc;
2461
2587
  if (opts.lengthDelimited !== false) {
2462
2588
  w.ldelim();
2463
2589
  }
2464
- }, (reader, length) => {
2590
+ }, (reader, length, opts = {}) => {
2465
2591
  const obj = {
2466
2592
  requestId: ''
2467
2593
  };
@@ -2469,18 +2595,26 @@ var PushRpc;
2469
2595
  while (reader.pos < end) {
2470
2596
  const tag = reader.uint32();
2471
2597
  switch (tag >>> 3) {
2472
- case 1:
2598
+ case 1: {
2473
2599
  obj.requestId = reader.string();
2474
2600
  break;
2475
- case 2:
2476
- obj.request = PushRequest.codec().decode(reader, reader.uint32());
2601
+ }
2602
+ case 2: {
2603
+ obj.request = PushRequest.codec().decode(reader, reader.uint32(), {
2604
+ limits: opts.limits?.request
2605
+ });
2477
2606
  break;
2478
- case 3:
2479
- obj.response = PushResponse.codec().decode(reader, reader.uint32());
2607
+ }
2608
+ case 3: {
2609
+ obj.response = PushResponse.codec().decode(reader, reader.uint32(), {
2610
+ limits: opts.limits?.response
2611
+ });
2480
2612
  break;
2481
- default:
2613
+ }
2614
+ default: {
2482
2615
  reader.skipType(tag & 7);
2483
2616
  break;
2617
+ }
2484
2618
  }
2485
2619
  }
2486
2620
  return obj;
@@ -2491,8 +2625,8 @@ var PushRpc;
2491
2625
  PushRpc.encode = (obj) => {
2492
2626
  return encodeMessage(obj, PushRpc.codec());
2493
2627
  };
2494
- PushRpc.decode = (buf) => {
2495
- return decodeMessage(buf, PushRpc.codec());
2628
+ PushRpc.decode = (buf, opts) => {
2629
+ return decodeMessage(buf, PushRpc.codec(), opts);
2496
2630
  };
2497
2631
  })(PushRpc || (PushRpc = {}));
2498
2632
  var RateLimitProof$1;
@@ -2535,44 +2669,52 @@ var RateLimitProof$1;
2535
2669
  if (opts.lengthDelimited !== false) {
2536
2670
  w.ldelim();
2537
2671
  }
2538
- }, (reader, length) => {
2672
+ }, (reader, length, opts = {}) => {
2539
2673
  const obj = {
2540
- proof: new Uint8Array(0),
2541
- merkleRoot: new Uint8Array(0),
2542
- epoch: new Uint8Array(0),
2543
- shareX: new Uint8Array(0),
2544
- shareY: new Uint8Array(0),
2545
- nullifier: new Uint8Array(0),
2546
- rlnIdentifier: new Uint8Array(0)
2674
+ proof: alloc$1(0),
2675
+ merkleRoot: alloc$1(0),
2676
+ epoch: alloc$1(0),
2677
+ shareX: alloc$1(0),
2678
+ shareY: alloc$1(0),
2679
+ nullifier: alloc$1(0),
2680
+ rlnIdentifier: alloc$1(0)
2547
2681
  };
2548
2682
  const end = length == null ? reader.len : reader.pos + length;
2549
2683
  while (reader.pos < end) {
2550
2684
  const tag = reader.uint32();
2551
2685
  switch (tag >>> 3) {
2552
- case 1:
2686
+ case 1: {
2553
2687
  obj.proof = reader.bytes();
2554
2688
  break;
2555
- case 2:
2689
+ }
2690
+ case 2: {
2556
2691
  obj.merkleRoot = reader.bytes();
2557
2692
  break;
2558
- case 3:
2693
+ }
2694
+ case 3: {
2559
2695
  obj.epoch = reader.bytes();
2560
2696
  break;
2561
- case 4:
2697
+ }
2698
+ case 4: {
2562
2699
  obj.shareX = reader.bytes();
2563
2700
  break;
2564
- case 5:
2701
+ }
2702
+ case 5: {
2565
2703
  obj.shareY = reader.bytes();
2566
2704
  break;
2567
- case 6:
2705
+ }
2706
+ case 6: {
2568
2707
  obj.nullifier = reader.bytes();
2569
2708
  break;
2570
- case 7:
2709
+ }
2710
+ case 7: {
2571
2711
  obj.rlnIdentifier = reader.bytes();
2572
2712
  break;
2573
- default:
2713
+ }
2714
+ default: {
2574
2715
  reader.skipType(tag & 7);
2575
2716
  break;
2717
+ }
2576
2718
  }
2577
2719
  }
2578
2720
  return obj;
@@ -2583,8 +2725,8 @@ var RateLimitProof$1;
2583
2725
  RateLimitProof.encode = (obj) => {
2584
2726
  return encodeMessage(obj, RateLimitProof.codec());
2585
2727
  };
2586
- RateLimitProof.decode = (buf) => {
2587
- return decodeMessage(buf, RateLimitProof.codec());
2728
+ RateLimitProof.decode = (buf, opts) => {
2729
+ return decodeMessage(buf, RateLimitProof.codec(), opts);
2588
2730
  };
2589
2731
  })(RateLimitProof$1 || (RateLimitProof$1 = {}));
2590
2732
  var WakuMessage$1;
@@ -2627,39 +2769,49 @@ var WakuMessage$1;
2627
2769
  if (opts.lengthDelimited !== false) {
2628
2770
  w.ldelim();
2629
2771
  }
2630
- }, (reader, length) => {
2772
+ }, (reader, length, opts = {}) => {
2631
2773
  const obj = {
2632
- payload: new Uint8Array(0),
2774
+ payload: alloc$1(0),
2633
2775
  contentTopic: ''
2634
2776
  };
2635
2777
  const end = length == null ? reader.len : reader.pos + length;
2636
2778
  while (reader.pos < end) {
2637
2779
  const tag = reader.uint32();
2638
2780
  switch (tag >>> 3) {
2639
- case 1:
2781
+ case 1: {
2640
2782
  obj.payload = reader.bytes();
2641
2783
  break;
2642
- case 2:
2784
+ }
2785
+ case 2: {
2643
2786
  obj.contentTopic = reader.string();
2644
2787
  break;
2645
- case 3:
2788
+ }
2789
+ case 3: {
2646
2790
  obj.version = reader.uint32();
2647
2791
  break;
2648
- case 10:
2792
+ }
2793
+ case 10: {
2649
2794
  obj.timestamp = reader.sint64();
2650
2795
  break;
2651
- case 11:
2796
+ }
2797
+ case 11: {
2652
2798
  obj.meta = reader.bytes();
2653
2799
  break;
2654
- case 21:
2655
- obj.rateLimitProof = RateLimitProof$1.codec().decode(reader, reader.uint32());
2800
+ }
2801
+ case 21: {
2802
+ obj.rateLimitProof = RateLimitProof$1.codec().decode(reader, reader.uint32(), {
2803
+ limits: opts.limits?.rateLimitProof
2804
+ });
2656
2805
  break;
2657
- case 31:
2806
+ }
2807
+ case 31: {
2658
2808
  obj.ephemeral = reader.bool();
2659
2809
  break;
2660
- default:
2810
+ }
2811
+ default: {
2661
2812
  reader.skipType(tag & 7);
2662
2813
  break;
2814
+ }
2663
2815
  }
2664
2816
  }
2665
2817
  return obj;
@@ -2670,8 +2822,8 @@ var WakuMessage$1;
2670
2822
  WakuMessage.encode = (obj) => {
2671
2823
  return encodeMessage(obj, WakuMessage.codec());
2672
2824
  };
2673
- WakuMessage.decode = (buf) => {
2674
- return decodeMessage(buf, WakuMessage.codec());
2825
+ WakuMessage.decode = (buf, opts) => {
2826
+ return decodeMessage(buf, WakuMessage.codec(), opts);
2675
2827
  };
2676
2828
  })(WakuMessage$1 || (WakuMessage$1 = {}));
2677
2829
 
@@ -2708,9 +2860,9 @@ var Index;
2708
2860
  if (opts.lengthDelimited !== false) {
2709
2861
  w.ldelim();
2710
2862
  }
2711
- }, (reader, length) => {
2863
+ }, (reader, length, opts = {}) => {
2712
2864
  const obj = {
2713
- digest: new Uint8Array(0),
2865
+ digest: alloc$1(0),
2714
2866
  receiverTime: 0n,
2715
2867
  senderTime: 0n,
2716
2868
  pubsubTopic: ''
@@ -2719,21 +2871,26 @@ var Index;
2719
2871
  while (reader.pos < end) {
2720
2872
  const tag = reader.uint32();
2721
2873
  switch (tag >>> 3) {
2722
- case 1:
2874
+ case 1: {
2723
2875
  obj.digest = reader.bytes();
2724
2876
  break;
2725
- case 2:
2877
+ }
2878
+ case 2: {
2726
2879
  obj.receiverTime = reader.sint64();
2727
2880
  break;
2728
- case 3:
2881
+ }
2882
+ case 3: {
2729
2883
  obj.senderTime = reader.sint64();
2730
2884
  break;
2731
- case 4:
2885
+ }
2886
+ case 4: {
2732
2887
  obj.pubsubTopic = reader.string();
2733
2888
  break;
2734
- default:
2889
+ }
2890
+ default: {
2735
2891
  reader.skipType(tag & 7);
2736
2892
  break;
2893
+ }
2737
2894
  }
2738
2895
  }
2739
2896
  return obj;
@@ -2744,8 +2901,8 @@ var Index;
2744
2901
  Index.encode = (obj) => {
2745
2902
  return encodeMessage(obj, Index.codec());
2746
2903
  };
2747
- Index.decode = (buf) => {
2748
- return decodeMessage(buf, Index.codec());
2904
+ Index.decode = (buf, opts) => {
2905
+ return decodeMessage(buf, Index.codec(), opts);
2749
2906
  };
2750
2907
  })(Index || (Index = {}));
2751
2908
  var PagingInfo;
@@ -2786,24 +2943,30 @@ var PagingInfo;
2786
2943
  if (opts.lengthDelimited !== false) {
2787
2944
  w.ldelim();
2788
2945
  }
2789
- }, (reader, length) => {
2946
+ }, (reader, length, opts = {}) => {
2790
2947
  const obj = {};
2791
2948
  const end = length == null ? reader.len : reader.pos + length;
2792
2949
  while (reader.pos < end) {
2793
2950
  const tag = reader.uint32();
2794
2951
  switch (tag >>> 3) {
2795
- case 1:
2952
+ case 1: {
2796
2953
  obj.pageSize = reader.uint64();
2797
2954
  break;
2798
- case 2:
2799
- obj.cursor = Index.codec().decode(reader, reader.uint32());
2955
+ }
2956
+ case 2: {
2957
+ obj.cursor = Index.codec().decode(reader, reader.uint32(), {
2958
+ limits: opts.limits?.cursor
2959
+ });
2800
2960
  break;
2801
- case 3:
2961
+ }
2962
+ case 3: {
2802
2963
  obj.direction = PagingInfo.Direction.codec().decode(reader);
2803
2964
  break;
2804
- default:
2965
+ }
2966
+ default: {
2805
2967
  reader.skipType(tag & 7);
2806
2968
  break;
2969
+ }
2807
2970
  }
2808
2971
  }
2809
2972
  return obj;
@@ -2814,8 +2977,8 @@ var PagingInfo;
2814
2977
  PagingInfo.encode = (obj) => {
2815
2978
  return encodeMessage(obj, PagingInfo.codec());
2816
2979
  };
2817
- PagingInfo.decode = (buf) => {
2818
- return decodeMessage(buf, PagingInfo.codec());
2980
+ PagingInfo.decode = (buf, opts) => {
2981
+ return decodeMessage(buf, PagingInfo.codec(), opts);
2819
2982
  };
2820
2983
  })(PagingInfo || (PagingInfo = {}));
2821
2984
  var ContentFilter;
@@ -2834,7 +2997,7 @@ var ContentFilter;
2834
2997
  if (opts.lengthDelimited !== false) {
2835
2998
  w.ldelim();
2836
2999
  }
2837
- }, (reader, length) => {
3000
+ }, (reader, length, opts = {}) => {
2838
3001
  const obj = {
2839
3002
  contentTopic: ''
2840
3003
  };
@@ -2842,12 +3005,14 @@ var ContentFilter;
2842
3005
  while (reader.pos < end) {
2843
3006
  const tag = reader.uint32();
2844
3007
  switch (tag >>> 3) {
2845
- case 1:
3008
+ case 1: {
2846
3009
  obj.contentTopic = reader.string();
2847
3010
  break;
2848
- default:
3011
+ }
3012
+ default: {
2849
3013
  reader.skipType(tag & 7);
2850
3014
  break;
3015
+ }
2851
3016
  }
2852
3017
  }
2853
3018
  return obj;
@@ -2858,8 +3023,8 @@ var ContentFilter;
2858
3023
  ContentFilter.encode = (obj) => {
2859
3024
  return encodeMessage(obj, ContentFilter.codec());
2860
3025
  };
2861
- ContentFilter.decode = (buf) => {
2862
- return decodeMessage(buf, ContentFilter.codec());
3026
+ ContentFilter.decode = (buf, opts) => {
3027
+ return decodeMessage(buf, ContentFilter.codec(), opts);
2863
3028
  };
2864
3029
  })(ContentFilter || (ContentFilter = {}));
2865
3030
  var HistoryQuery;
@@ -2896,7 +3061,7 @@ var HistoryQuery;
2896
3061
  if (opts.lengthDelimited !== false) {
2897
3062
  w.ldelim();
2898
3063
  }
2899
- }, (reader, length) => {
3064
+ }, (reader, length, opts = {}) => {
2900
3065
  const obj = {
2901
3066
  contentFilters: []
2902
3067
  };
@@ -2904,24 +3069,37 @@ var HistoryQuery;
2904
3069
  while (reader.pos < end) {
2905
3070
  const tag = reader.uint32();
2906
3071
  switch (tag >>> 3) {
2907
- case 2:
3072
+ case 2: {
2908
3073
  obj.pubsubTopic = reader.string();
2909
3074
  break;
2910
- case 3:
2911
- obj.contentFilters.push(ContentFilter.codec().decode(reader, reader.uint32()));
3075
+ }
3076
+ case 3: {
3077
+ if (opts.limits?.contentFilters != null && obj.contentFilters.length === opts.limits.contentFilters) {
3078
+ throw new CodeError('decode error - map field "contentFilters" had too many elements', 'ERR_MAX_LENGTH');
3079
+ }
3080
+ obj.contentFilters.push(ContentFilter.codec().decode(reader, reader.uint32(), {
3081
+ limits: opts.limits?.contentFilters$
3082
+ }));
2912
3083
  break;
2913
- case 4:
2914
- obj.pagingInfo = PagingInfo.codec().decode(reader, reader.uint32());
3084
+ }
3085
+ case 4: {
3086
+ obj.pagingInfo = PagingInfo.codec().decode(reader, reader.uint32(), {
3087
+ limits: opts.limits?.pagingInfo
3088
+ });
2915
3089
  break;
2916
- case 5:
3090
+ }
3091
+ case 5: {
2917
3092
  obj.startTime = reader.sint64();
2918
3093
  break;
2919
- case 6:
3094
+ }
3095
+ case 6: {
2920
3096
  obj.endTime = reader.sint64();
2921
3097
  break;
2922
- default:
3098
+ }
3099
+ default: {
2923
3100
  reader.skipType(tag & 7);
2924
3101
  break;
3102
+ }
2925
3103
  }
2926
3104
  }
2927
3105
  return obj;
@@ -2932,8 +3110,8 @@ var HistoryQuery;
2932
3110
  HistoryQuery.encode = (obj) => {
2933
3111
  return encodeMessage(obj, HistoryQuery.codec());
2934
3112
  };
2935
- HistoryQuery.decode = (buf) => {
2936
- return decodeMessage(buf, HistoryQuery.codec());
3113
+ HistoryQuery.decode = (buf, opts) => {
3114
+ return decodeMessage(buf, HistoryQuery.codec(), opts);
2937
3115
  };
2938
3116
  })(HistoryQuery || (HistoryQuery = {}));
2939
3117
  var HistoryResponse;
@@ -2977,7 +3155,7 @@ var HistoryResponse;
2977
3155
  if (opts.lengthDelimited !== false) {
2978
3156
  w.ldelim();
2979
3157
  }
2980
- }, (reader, length) => {
3158
+ }, (reader, length, opts = {}) => {
2981
3159
  const obj = {
2982
3160
  messages: [],
2983
3161
  error: HistoryError.NONE
@@ -2986,18 +3164,29 @@ var HistoryResponse;
2986
3164
  while (reader.pos < end) {
2987
3165
  const tag = reader.uint32();
2988
3166
  switch (tag >>> 3) {
2989
- case 2:
2990
- obj.messages.push(WakuMessage.codec().decode(reader, reader.uint32()));
3167
+ case 2: {
3168
+ if (opts.limits?.messages != null && obj.messages.length === opts.limits.messages) {
3169
+ throw new CodeError('decode error - map field "messages" had too many elements', 'ERR_MAX_LENGTH');
3170
+ }
3171
+ obj.messages.push(WakuMessage.codec().decode(reader, reader.uint32(), {
3172
+ limits: opts.limits?.messages$
3173
+ }));
2991
3174
  break;
2992
- case 3:
2993
- obj.pagingInfo = PagingInfo.codec().decode(reader, reader.uint32());
3175
+ }
3176
+ case 3: {
3177
+ obj.pagingInfo = PagingInfo.codec().decode(reader, reader.uint32(), {
3178
+ limits: opts.limits?.pagingInfo
3179
+ });
2994
3180
  break;
2995
- case 4:
3181
+ }
3182
+ case 4: {
2996
3183
  obj.error = HistoryResponse.HistoryError.codec().decode(reader);
2997
3184
  break;
2998
- default:
3185
+ }
3186
+ default: {
2999
3187
  reader.skipType(tag & 7);
3000
3188
  break;
3189
+ }
3001
3190
  }
3002
3191
  }
3003
3192
  return obj;
@@ -3008,8 +3197,8 @@ var HistoryResponse;
3008
3197
  HistoryResponse.encode = (obj) => {
3009
3198
  return encodeMessage(obj, HistoryResponse.codec());
3010
3199
  };
3011
- HistoryResponse.decode = (buf) => {
3012
- return decodeMessage(buf, HistoryResponse.codec());
3200
+ HistoryResponse.decode = (buf, opts) => {
3201
+ return decodeMessage(buf, HistoryResponse.codec(), opts);
3013
3202
  };
3014
3203
  })(HistoryResponse || (HistoryResponse = {}));
3015
3204
  var HistoryRpc;
@@ -3036,7 +3225,7 @@ var HistoryRpc;
3036
3225
  if (opts.lengthDelimited !== false) {
3037
3226
  w.ldelim();
3038
3227
  }
3039
- }, (reader, length) => {
3228
+ }, (reader, length, opts = {}) => {
3040
3229
  const obj = {
3041
3230
  requestId: ''
3042
3231
  };
@@ -3044,18 +3233,26 @@ var HistoryRpc;
3044
3233
  while (reader.pos < end) {
3045
3234
  const tag = reader.uint32();
3046
3235
  switch (tag >>> 3) {
3047
- case 1:
3236
+ case 1: {
3048
3237
  obj.requestId = reader.string();
3049
3238
  break;
3050
- case 2:
3051
- obj.query = HistoryQuery.codec().decode(reader, reader.uint32());
3239
+ }
3240
+ case 2: {
3241
+ obj.query = HistoryQuery.codec().decode(reader, reader.uint32(), {
3242
+ limits: opts.limits?.query
3243
+ });
3052
3244
  break;
3053
- case 3:
3054
- obj.response = HistoryResponse.codec().decode(reader, reader.uint32());
3245
+ }
3246
+ case 3: {
3247
+ obj.response = HistoryResponse.codec().decode(reader, reader.uint32(), {
3248
+ limits: opts.limits?.response
3249
+ });
3055
3250
  break;
3056
- default:
3251
+ }
3252
+ default: {
3057
3253
  reader.skipType(tag & 7);
3058
3254
  break;
3255
+ }
3059
3256
  }
3060
3257
  }
3061
3258
  return obj;
@@ -3066,8 +3263,8 @@ var HistoryRpc;
3066
3263
  HistoryRpc.encode = (obj) => {
3067
3264
  return encodeMessage(obj, HistoryRpc.codec());
3068
3265
  };
3069
- HistoryRpc.decode = (buf) => {
3070
- return decodeMessage(buf, HistoryRpc.codec());
3266
+ HistoryRpc.decode = (buf, opts) => {
3267
+ return decodeMessage(buf, HistoryRpc.codec(), opts);
3071
3268
  };
3072
3269
  })(HistoryRpc || (HistoryRpc = {}));
3073
3270
  var RateLimitProof;
@@ -3110,44 +3307,52 @@ var RateLimitProof;
3110
3307
  if (opts.lengthDelimited !== false) {
3111
3308
  w.ldelim();
3112
3309
  }
3113
- }, (reader, length) => {
3310
+ }, (reader, length, opts = {}) => {
3114
3311
  const obj = {
3115
- proof: new Uint8Array(0),
3116
- merkleRoot: new Uint8Array(0),
3117
- epoch: new Uint8Array(0),
3118
- shareX: new Uint8Array(0),
3119
- shareY: new Uint8Array(0),
3120
- nullifier: new Uint8Array(0),
3121
- rlnIdentifier: new Uint8Array(0)
3312
+ proof: alloc$1(0),
3313
+ merkleRoot: alloc$1(0),
3314
+ epoch: alloc$1(0),
3315
+ shareX: alloc$1(0),
3316
+ shareY: alloc$1(0),
3317
+ nullifier: alloc$1(0),
3318
+ rlnIdentifier: alloc$1(0)
3122
3319
  };
3123
3320
  const end = length == null ? reader.len : reader.pos + length;
3124
3321
  while (reader.pos < end) {
3125
3322
  const tag = reader.uint32();
3126
3323
  switch (tag >>> 3) {
3127
- case 1:
3324
+ case 1: {
3128
3325
  obj.proof = reader.bytes();
3129
3326
  break;
3130
- case 2:
3327
+ }
3328
+ case 2: {
3131
3329
  obj.merkleRoot = reader.bytes();
3132
3330
  break;
3133
- case 3:
3331
+ }
3332
+ case 3: {
3134
3333
  obj.epoch = reader.bytes();
3135
3334
  break;
3136
- case 4:
3335
+ }
3336
+ case 4: {
3137
3337
  obj.shareX = reader.bytes();
3138
3338
  break;
3139
- case 5:
3339
+ }
3340
+ case 5: {
3140
3341
  obj.shareY = reader.bytes();
3141
3342
  break;
3142
- case 6:
3343
+ }
3344
+ case 6: {
3143
3345
  obj.nullifier = reader.bytes();
3144
3346
  break;
3145
- case 7:
3347
+ }
3348
+ case 7: {
3146
3349
  obj.rlnIdentifier = reader.bytes();
3147
3350
  break;
3148
- default:
3351
+ }
3352
+ default: {
3149
3353
  reader.skipType(tag & 7);
3150
3354
  break;
3355
+ }
3151
3356
  }
3152
3357
  }
3153
3358
  return obj;
@@ -3158,8 +3363,8 @@ var RateLimitProof;
3158
3363
  RateLimitProof.encode = (obj) => {
3159
3364
  return encodeMessage(obj, RateLimitProof.codec());
3160
3365
  };
3161
- RateLimitProof.decode = (buf) => {
3162
- return decodeMessage(buf, RateLimitProof.codec());
3366
+ RateLimitProof.decode = (buf, opts) => {
3367
+ return decodeMessage(buf, RateLimitProof.codec(), opts);
3163
3368
  };
3164
3369
  })(RateLimitProof || (RateLimitProof = {}));
3165
3370
  var WakuMessage;
@@ -3202,39 +3407,49 @@ var WakuMessage;
3202
3407
  if (opts.lengthDelimited !== false) {
3203
3408
  w.ldelim();
3204
3409
  }
3205
- }, (reader, length) => {
3410
+ }, (reader, length, opts = {}) => {
3206
3411
  const obj = {
3207
- payload: new Uint8Array(0),
3412
+ payload: alloc$1(0),
3208
3413
  contentTopic: ''
3209
3414
  };
3210
3415
  const end = length == null ? reader.len : reader.pos + length;
3211
3416
  while (reader.pos < end) {
3212
3417
  const tag = reader.uint32();
3213
3418
  switch (tag >>> 3) {
3214
- case 1:
3419
+ case 1: {
3215
3420
  obj.payload = reader.bytes();
3216
3421
  break;
3217
- case 2:
3422
+ }
3423
+ case 2: {
3218
3424
  obj.contentTopic = reader.string();
3219
3425
  break;
3220
- case 3:
3426
+ }
3427
+ case 3: {
3221
3428
  obj.version = reader.uint32();
3222
3429
  break;
3223
- case 10:
3430
+ }
3431
+ case 10: {
3224
3432
  obj.timestamp = reader.sint64();
3225
3433
  break;
3226
- case 11:
3434
+ }
3435
+ case 11: {
3227
3436
  obj.meta = reader.bytes();
3228
3437
  break;
3229
- case 21:
3230
- obj.rateLimitProof = RateLimitProof.codec().decode(reader, reader.uint32());
3438
+ }
3439
+ case 21: {
3440
+ obj.rateLimitProof = RateLimitProof.codec().decode(reader, reader.uint32(), {
3441
+ limits: opts.limits?.rateLimitProof
3442
+ });
3231
3443
  break;
3232
- case 31:
3444
+ }
3445
+ case 31: {
3233
3446
  obj.ephemeral = reader.bool();
3234
3447
  break;
3235
- default:
3448
+ }
3449
+ default: {
3236
3450
  reader.skipType(tag & 7);
3237
3451
  break;
3452
+ }
3238
3453
  }
3239
3454
  }
3240
3455
  return obj;
@@ -3245,8 +3460,8 @@ var WakuMessage;
3245
3460
  WakuMessage.encode = (obj) => {
3246
3461
  return encodeMessage(obj, WakuMessage.codec());
3247
3462
  };
3248
- WakuMessage.decode = (buf) => {
3249
- return decodeMessage(buf, WakuMessage.codec());
3463
+ WakuMessage.decode = (buf, opts) => {
3464
+ return decodeMessage(buf, WakuMessage.codec(), opts);
3250
3465
  };
3251
3466
  })(WakuMessage || (WakuMessage = {}));
3252
3467
 
@@ -3271,18 +3486,20 @@ var PeerInfo;
3271
3486
  if (opts.lengthDelimited !== false) {
3272
3487
  w.ldelim();
3273
3488
  }
3274
- }, (reader, length) => {
3489
+ }, (reader, length, opts = {}) => {
3275
3490
  const obj = {};
3276
3491
  const end = length == null ? reader.len : reader.pos + length;
3277
3492
  while (reader.pos < end) {
3278
3493
  const tag = reader.uint32();
3279
3494
  switch (tag >>> 3) {
3280
- case 1:
3495
+ case 1: {
3281
3496
  obj.enr = reader.bytes();
3282
3497
  break;
3283
- default:
3498
+ }
3499
+ default: {
3284
3500
  reader.skipType(tag & 7);
3285
3501
  break;
3502
+ }
3286
3503
  }
3287
3504
  }
3288
3505
  return obj;
@@ -3293,8 +3510,8 @@ var PeerInfo;
3293
3510
  PeerInfo.encode = (obj) => {
3294
3511
  return encodeMessage(obj, PeerInfo.codec());
3295
3512
  };
3296
- PeerInfo.decode = (buf) => {
3297
- return decodeMessage(buf, PeerInfo.codec());
3513
+ PeerInfo.decode = (buf, opts) => {
3514
+ return decodeMessage(buf, PeerInfo.codec(), opts);
3298
3515
  };
3299
3516
  })(PeerInfo || (PeerInfo = {}));
3300
3517
  var PeerExchangeQuery;
@@ -3313,18 +3530,20 @@ var PeerExchangeQuery;
3313
3530
  if (opts.lengthDelimited !== false) {
3314
3531
  w.ldelim();
3315
3532
  }
3316
- }, (reader, length) => {
3533
+ }, (reader, length, opts = {}) => {
3317
3534
  const obj = {};
3318
3535
  const end = length == null ? reader.len : reader.pos + length;
3319
3536
  while (reader.pos < end) {
3320
3537
  const tag = reader.uint32();
3321
3538
  switch (tag >>> 3) {
3322
- case 1:
3539
+ case 1: {
3323
3540
  obj.numPeers = reader.uint64();
3324
3541
  break;
3325
- default:
3542
+ }
3543
+ default: {
3326
3544
  reader.skipType(tag & 7);
3327
3545
  break;
3546
+ }
3328
3547
  }
3329
3548
  }
3330
3549
  return obj;
@@ -3335,8 +3554,8 @@ var PeerExchangeQuery;
3335
3554
  PeerExchangeQuery.encode = (obj) => {
3336
3555
  return encodeMessage(obj, PeerExchangeQuery.codec());
3337
3556
  };
3338
- PeerExchangeQuery.decode = (buf) => {
3339
- return decodeMessage(buf, PeerExchangeQuery.codec());
3557
+ PeerExchangeQuery.decode = (buf, opts) => {
3558
+ return decodeMessage(buf, PeerExchangeQuery.codec(), opts);
3340
3559
  };
3341
3560
  })(PeerExchangeQuery || (PeerExchangeQuery = {}));
3342
3561
  var PeerExchangeResponse;
@@ -3357,7 +3576,7 @@ var PeerExchangeResponse;
3357
3576
  if (opts.lengthDelimited !== false) {
3358
3577
  w.ldelim();
3359
3578
  }
3360
- }, (reader, length) => {
3579
+ }, (reader, length, opts = {}) => {
3361
3580
  const obj = {
3362
3581
  peerInfos: []
3363
3582
  };
@@ -3365,12 +3584,19 @@ var PeerExchangeResponse;
3365
3584
  while (reader.pos < end) {
3366
3585
  const tag = reader.uint32();
3367
3586
  switch (tag >>> 3) {
3368
- case 1:
3369
- obj.peerInfos.push(PeerInfo.codec().decode(reader, reader.uint32()));
3587
+ case 1: {
3588
+ if (opts.limits?.peerInfos != null && obj.peerInfos.length === opts.limits.peerInfos) {
3589
+ throw new CodeError('decode error - map field "peerInfos" had too many elements', 'ERR_MAX_LENGTH');
3590
+ }
3591
+ obj.peerInfos.push(PeerInfo.codec().decode(reader, reader.uint32(), {
3592
+ limits: opts.limits?.peerInfos$
3593
+ }));
3370
3594
  break;
3371
- default:
3595
+ }
3596
+ default: {
3372
3597
  reader.skipType(tag & 7);
3373
3598
  break;
3599
+ }
3374
3600
  }
3375
3601
  }
3376
3602
  return obj;
@@ -3381,8 +3607,8 @@ var PeerExchangeResponse;
3381
3607
  PeerExchangeResponse.encode = (obj) => {
3382
3608
  return encodeMessage(obj, PeerExchangeResponse.codec());
3383
3609
  };
3384
- PeerExchangeResponse.decode = (buf) => {
3385
- return decodeMessage(buf, PeerExchangeResponse.codec());
3610
+ PeerExchangeResponse.decode = (buf, opts) => {
3611
+ return decodeMessage(buf, PeerExchangeResponse.codec(), opts);
3386
3612
  };
3387
3613
  })(PeerExchangeResponse || (PeerExchangeResponse = {}));
3388
3614
  var PeerExchangeRPC;
@@ -3405,21 +3631,28 @@ var PeerExchangeRPC;
3405
3631
  if (opts.lengthDelimited !== false) {
3406
3632
  w.ldelim();
3407
3633
  }
3408
- }, (reader, length) => {
3634
+ }, (reader, length, opts = {}) => {
3409
3635
  const obj = {};
3410
3636
  const end = length == null ? reader.len : reader.pos + length;
3411
3637
  while (reader.pos < end) {
3412
3638
  const tag = reader.uint32();
3413
3639
  switch (tag >>> 3) {
3414
- case 1:
3415
- obj.query = PeerExchangeQuery.codec().decode(reader, reader.uint32());
3640
+ case 1: {
3641
+ obj.query = PeerExchangeQuery.codec().decode(reader, reader.uint32(), {
3642
+ limits: opts.limits?.query
3643
+ });
3416
3644
  break;
3417
- case 2:
3418
- obj.response = PeerExchangeResponse.codec().decode(reader, reader.uint32());
3645
+ }
3646
+ case 2: {
3647
+ obj.response = PeerExchangeResponse.codec().decode(reader, reader.uint32(), {
3648
+ limits: opts.limits?.response
3649
+ });
3419
3650
  break;
3420
- default:
3651
+ }
3652
+ default: {
3421
3653
  reader.skipType(tag & 7);
3422
3654
  break;
3655
+ }
3423
3656
  }
3424
3657
  }
3425
3658
  return obj;
@@ -3430,8 +3663,8 @@ var PeerExchangeRPC;
3430
3663
  PeerExchangeRPC.encode = (obj) => {
3431
3664
  return encodeMessage(obj, PeerExchangeRPC.codec());
3432
3665
  };
3433
- PeerExchangeRPC.decode = (buf) => {
3434
- return decodeMessage(buf, PeerExchangeRPC.codec());
3666
+ PeerExchangeRPC.decode = (buf, opts) => {
3667
+ return decodeMessage(buf, PeerExchangeRPC.codec(), opts);
3435
3668
  };
3436
3669
  })(PeerExchangeRPC || (PeerExchangeRPC = {}));
3437
3670
 
@@ -3462,7 +3695,7 @@ var WakuMetadataRequest;
3462
3695
  if (opts.lengthDelimited !== false) {
3463
3696
  w.ldelim();
3464
3697
  }
3465
- }, (reader, length) => {
3698
+ }, (reader, length, opts = {}) => {
3466
3699
  const obj = {
3467
3700
  shards: []
3468
3701
  };
@@ -3470,15 +3703,21 @@ var WakuMetadataRequest;
3470
3703
  while (reader.pos < end) {
3471
3704
  const tag = reader.uint32();
3472
3705
  switch (tag >>> 3) {
3473
- case 1:
3706
+ case 1: {
3474
3707
  obj.clusterId = reader.uint32();
3475
3708
  break;
3476
- case 2:
3709
+ }
3710
+ case 2: {
3711
+ if (opts.limits?.shards != null && obj.shards.length === opts.limits.shards) {
3712
+ throw new CodeError('decode error - map field "shards" had too many elements', 'ERR_MAX_LENGTH');
3713
+ }
3477
3714
  obj.shards.push(reader.uint32());
3478
3715
  break;
3479
- default:
3716
+ }
3717
+ default: {
3480
3718
  reader.skipType(tag & 7);
3481
3719
  break;
3720
+ }
3482
3721
  }
3483
3722
  }
3484
3723
  return obj;
@@ -3489,8 +3728,8 @@ var WakuMetadataRequest;
3489
3728
  WakuMetadataRequest.encode = (obj) => {
3490
3729
  return encodeMessage(obj, WakuMetadataRequest.codec());
3491
3730
  };
3492
- WakuMetadataRequest.decode = (buf) => {
3493
- return decodeMessage(buf, WakuMetadataRequest.codec());
3731
+ WakuMetadataRequest.decode = (buf, opts) => {
3732
+ return decodeMessage(buf, WakuMetadataRequest.codec(), opts);
3494
3733
  };
3495
3734
  })(WakuMetadataRequest || (WakuMetadataRequest = {}));
3496
3735
  var WakuMetadataResponse;
@@ -3515,7 +3754,7 @@ var WakuMetadataResponse;
3515
3754
  if (opts.lengthDelimited !== false) {
3516
3755
  w.ldelim();
3517
3756
  }
3518
- }, (reader, length) => {
3757
+ }, (reader, length, opts = {}) => {
3519
3758
  const obj = {
3520
3759
  shards: []
3521
3760
  };
@@ -3523,15 +3762,21 @@ var WakuMetadataResponse;
3523
3762
  while (reader.pos < end) {
3524
3763
  const tag = reader.uint32();
3525
3764
  switch (tag >>> 3) {
3526
- case 1:
3765
+ case 1: {
3527
3766
  obj.clusterId = reader.uint32();
3528
3767
  break;
3529
- case 2:
3768
+ }
3769
+ case 2: {
3770
+ if (opts.limits?.shards != null && obj.shards.length === opts.limits.shards) {
3771
+ throw new CodeError('decode error - map field "shards" had too many elements', 'ERR_MAX_LENGTH');
3772
+ }
3530
3773
  obj.shards.push(reader.uint32());
3531
3774
  break;
3532
- default:
3775
+ }
3776
+ default: {
3533
3777
  reader.skipType(tag & 7);
3534
3778
  break;
3779
+ }
3535
3780
  }
3536
3781
  }
3537
3782
  return obj;
@@ -3542,21 +3787,21 @@ var WakuMetadataResponse;
3542
3787
  WakuMetadataResponse.encode = (obj) => {
3543
3788
  return encodeMessage(obj, WakuMetadataResponse.codec());
3544
3789
  };
3545
- WakuMetadataResponse.decode = (buf) => {
3546
- return decodeMessage(buf, WakuMetadataResponse.codec());
3790
+ WakuMetadataResponse.decode = (buf, opts) => {
3791
+ return decodeMessage(buf, WakuMetadataResponse.codec(), opts);
3547
3792
  };
3548
3793
  })(WakuMetadataResponse || (WakuMetadataResponse = {}));
3549
3794
 
3550
3795
  // copied from utils
3551
- function isBytes$1(a) {
3796
+ function isBytes(a) {
3552
3797
  return (a instanceof Uint8Array ||
3553
3798
  (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));
3554
3799
  }
3555
3800
  function bytes(b, ...lengths) {
3556
- if (!isBytes$1(b))
3557
- throw new Error('Expected Uint8Array');
3801
+ if (!isBytes(b))
3802
+ throw new Error('Uint8Array expected');
3558
3803
  if (lengths.length > 0 && !lengths.includes(b.length))
3559
- throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);
3804
+ throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);
3560
3805
  }
3561
3806
  function exists(instance, checkFinished = true) {
3562
3807
  if (instance.destroyed)
@@ -3579,21 +3824,11 @@ function output(out, instance) {
3579
3824
  // from `crypto` to `cryptoNode`, which imports native module.
3580
3825
  // Makes the utils un-importable in browsers without a bundler.
3581
3826
  // Once node.js 18 is deprecated (2025-04-30), we can just drop the import.
3582
- function isBytes(a) {
3583
- return (a instanceof Uint8Array ||
3584
- (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));
3585
- }
3586
3827
  // Cast array to view
3587
3828
  const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
3588
3829
  // The rotate right (circular right shift) operation for uint32
3589
3830
  const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);
3590
- // big-endian hardware is rare. Just in case someone still decides to run hashes:
3591
- // early-throw an error because we don't support BE yet.
3592
- // Other libraries would silently corrupt the data instead of throwing an error,
3593
- // when they don't support it.
3594
- const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
3595
- if (!isLE)
3596
- throw new Error('Non little-endian hardware is not supported');
3831
+ new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
3597
3832
  /**
3598
3833
  * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])
3599
3834
  */
@@ -3610,8 +3845,7 @@ function utf8ToBytes(str) {
3610
3845
  function toBytes(data) {
3611
3846
  if (typeof data === 'string')
3612
3847
  data = utf8ToBytes(data);
3613
- if (!isBytes(data))
3614
- throw new Error(`expected Uint8Array, got ${typeof data}`);
3848
+ bytes(data);
3615
3849
  return data;
3616
3850
  }
3617
3851
  // For runtime check if class implements interface
@@ -3643,8 +3877,15 @@ function setBigUint64(view, byteOffset, value, isLE) {
3643
3877
  view.setUint32(byteOffset + h, wh, isLE);
3644
3878
  view.setUint32(byteOffset + l, wl, isLE);
3645
3879
  }
3646
- // Base SHA2 class (RFC 6234)
3647
- class SHA2 extends Hash {
3880
+ // Choice: a ? b : c
3881
+ const Chi = (a, b, c) => (a & b) ^ (~a & c);
3882
+ // Majority function, true if any two inpust is true
3883
+ const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
3884
+ /**
3885
+ * Merkle-Damgard hash construction base class.
3886
+ * Could be used to create MD5, RIPEMD, SHA1, SHA2.
3887
+ */
3888
+ class HashMD extends Hash {
3648
3889
  constructor(blockLen, outputLen, padOffset, isLE) {
3649
3890
  super();
3650
3891
  this.blockLen = blockLen;
@@ -3696,7 +3937,8 @@ class SHA2 extends Hash {
3696
3937
  // append the bit '1' to the message
3697
3938
  buffer[pos++] = 0b10000000;
3698
3939
  this.buffer.subarray(pos).fill(0);
3699
- // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again
3940
+ // we have less than padOffset left in buffer, so we cannot put length in
3941
+ // current block, need process it and pad again
3700
3942
  if (this.padOffset > blockLen - pos) {
3701
3943
  this.process(view, 0);
3702
3944
  pos = 0;
@@ -3744,10 +3986,6 @@ class SHA2 extends Hash {
3744
3986
 
3745
3987
  // SHA2-256 need to try 2^128 hashes to execute birthday attack.
3746
3988
  // BTC network is doing 2^67 hashes/sec as per early 2023.
3747
- // Choice: a ? b : c
3748
- const Chi = (a, b, c) => (a & b) ^ (~a & c);
3749
- // Majority function, true if any two inpust is true
3750
- const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
3751
3989
  // Round constants:
3752
3990
  // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
3753
3991
  // prettier-ignore
@@ -3761,27 +3999,28 @@ const SHA256_K = /* @__PURE__ */ new Uint32Array([
3761
3999
  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
3762
4000
  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
3763
4001
  ]);
3764
- // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
4002
+ // Initial state:
4003
+ // first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19
3765
4004
  // prettier-ignore
3766
- const IV = /* @__PURE__ */ new Uint32Array([
4005
+ const SHA256_IV = /* @__PURE__ */ new Uint32Array([
3767
4006
  0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
3768
4007
  ]);
3769
4008
  // Temporary buffer, not used to store anything between runs
3770
4009
  // Named this way because it matches specification.
3771
4010
  const SHA256_W = /* @__PURE__ */ new Uint32Array(64);
3772
- class SHA256 extends SHA2 {
4011
+ class SHA256 extends HashMD {
3773
4012
  constructor() {
3774
4013
  super(64, 32, 8, false);
3775
4014
  // We cannot use array here since array allows indexing by variable
3776
4015
  // which means optimizer/compiler cannot use registers.
3777
- this.A = IV[0] | 0;
3778
- this.B = IV[1] | 0;
3779
- this.C = IV[2] | 0;
3780
- this.D = IV[3] | 0;
3781
- this.E = IV[4] | 0;
3782
- this.F = IV[5] | 0;
3783
- this.G = IV[6] | 0;
3784
- this.H = IV[7] | 0;
4016
+ this.A = SHA256_IV[0] | 0;
4017
+ this.B = SHA256_IV[1] | 0;
4018
+ this.C = SHA256_IV[2] | 0;
4019
+ this.D = SHA256_IV[3] | 0;
4020
+ this.E = SHA256_IV[4] | 0;
4021
+ this.F = SHA256_IV[5] | 0;
4022
+ this.G = SHA256_IV[6] | 0;
4023
+ this.H = SHA256_IV[7] | 0;
3785
4024
  }
3786
4025
  get() {
3787
4026
  const { A, B, C, D, E, F, G, H } = this;
@@ -4776,8 +5015,8 @@ class Logger {
4776
5015
  }
4777
5016
  }
4778
5017
 
4779
- const log$1 = new Logger("message:version-0");
4780
- const OneMillion = BigInt(1000000);
5018
+ const log = new Logger("message:version-0");
5019
+ const OneMillion = BigInt(1_000_000);
4781
5020
  const Version = 0;
4782
5021
  let DecodedMessage$1 = class DecodedMessage {
4783
5022
  pubsubTopic;
@@ -4851,7 +5090,7 @@ let Decoder$1 = class Decoder {
4851
5090
  // https://rfc.vac.dev/spec/14/
4852
5091
  // > If omitted, the value SHOULD be interpreted as version 0.
4853
5092
  if (proto.version ?? 0 !== Version) {
4854
- log$1.error("Failed to decode due to incorrect version, expected:", Version, ", actual:", proto.version);
5093
+ log.error("Failed to decode due to incorrect version, expected:", Version, ", actual:", proto.version);
4855
5094
  return Promise.resolve(undefined);
4856
5095
  }
4857
5096
  return new DecodedMessage$1(pubsubTopic, proto);
@@ -5074,124 +5313,4 @@ function postCipher(message) {
5074
5313
  return { payload, sig };
5075
5314
  }
5076
5315
 
5077
- const log = new Logger("message-encryption:symmetric");
5078
- class Encoder {
5079
- pubsubTopic;
5080
- contentTopic;
5081
- symKey;
5082
- sigPrivKey;
5083
- ephemeral;
5084
- metaSetter;
5085
- constructor(pubsubTopic, contentTopic, symKey, sigPrivKey, ephemeral = false, metaSetter) {
5086
- this.pubsubTopic = pubsubTopic;
5087
- this.contentTopic = contentTopic;
5088
- this.symKey = symKey;
5089
- this.sigPrivKey = sigPrivKey;
5090
- this.ephemeral = ephemeral;
5091
- this.metaSetter = metaSetter;
5092
- if (!contentTopic || contentTopic === "") {
5093
- throw new Error("Content topic must be specified");
5094
- }
5095
- }
5096
- async toWire(message) {
5097
- const protoMessage = await this.toProtoObj(message);
5098
- if (!protoMessage)
5099
- return;
5100
- return WakuMessage$3.encode(protoMessage);
5101
- }
5102
- async toProtoObj(message) {
5103
- const timestamp = message.timestamp ?? new Date();
5104
- const preparedPayload = await preCipher(message.payload, this.sigPrivKey);
5105
- const payload = await encryptSymmetric(preparedPayload, this.symKey);
5106
- const protoMessage = {
5107
- payload,
5108
- version: Version$1,
5109
- contentTopic: this.contentTopic,
5110
- timestamp: BigInt(timestamp.valueOf()) * OneMillion$1,
5111
- meta: undefined,
5112
- rateLimitProof: message.rateLimitProof,
5113
- ephemeral: this.ephemeral
5114
- };
5115
- if (this.metaSetter) {
5116
- const meta = this.metaSetter(protoMessage);
5117
- return { ...protoMessage, meta };
5118
- }
5119
- return protoMessage;
5120
- }
5121
- }
5122
- /**
5123
- * Creates an encoder that encrypts messages using symmetric encryption for the
5124
- * given key, as defined in [26/WAKU2-PAYLOAD](https://rfc.vac.dev/spec/26/).
5125
- *
5126
- * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
5127
- * format to be sent over the Waku network. The resulting encoder can then be
5128
- * pass to { @link @waku/interfaces!ISender.send } to automatically encrypt
5129
- * and encode outgoing messages.
5130
- *
5131
- * The payload can optionally be signed with the given private key as defined
5132
- * in [26/WAKU2-PAYLOAD](https://rfc.vac.dev/spec/26/).
5133
- */
5134
- function createEncoder({ pubsubTopic = DefaultPubsubTopic, pubsubTopicShardInfo, contentTopic, symKey, sigPrivKey, ephemeral = false, metaSetter }) {
5135
- return new Encoder(determinePubsubTopic(contentTopic, pubsubTopic ?? pubsubTopicShardInfo), contentTopic, symKey, sigPrivKey, ephemeral, metaSetter);
5136
- }
5137
- class Decoder extends Decoder$1 {
5138
- symKey;
5139
- constructor(pubsubTopic, contentTopic, symKey) {
5140
- super(pubsubTopic, contentTopic);
5141
- this.symKey = symKey;
5142
- }
5143
- async fromProtoObj(pubsubTopic, protoMessage) {
5144
- const cipherPayload = protoMessage.payload;
5145
- if (protoMessage.version !== Version$1) {
5146
- log.error("Failed to decrypt due to incorrect version, expected:", Version$1, ", actual:", protoMessage.version);
5147
- return;
5148
- }
5149
- let payload;
5150
- try {
5151
- payload = await decryptSymmetric(cipherPayload, this.symKey);
5152
- }
5153
- catch (e) {
5154
- log.error(`Failed to decrypt message using asymmetric decryption for contentTopic: ${this.contentTopic}`, e);
5155
- return;
5156
- }
5157
- if (!payload) {
5158
- log.error(`Failed to decrypt payload for contentTopic ${this.contentTopic}`);
5159
- return;
5160
- }
5161
- const res = postCipher(payload);
5162
- if (!res) {
5163
- log.error(`Failed to decode payload for contentTopic ${this.contentTopic}`);
5164
- return;
5165
- }
5166
- log.info("Message decrypted", protoMessage);
5167
- return new DecodedMessage(pubsubTopic, protoMessage, res.payload, res.sig?.signature, res.sig?.publicKey);
5168
- }
5169
- }
5170
- /**
5171
- * Creates a decoder that decrypts messages using symmetric encryption, using
5172
- * the given key as defined in [26/WAKU2-PAYLOAD](https://rfc.vac.dev/spec/26/).
5173
- *
5174
- * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/)
5175
- * format when received from the Waku network. The resulting decoder can then be
5176
- * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decrypt and
5177
- * decode incoming messages.
5178
- *
5179
- * @param contentTopic The resulting decoder will only decode messages with this content topic.
5180
- * @param symKey The symmetric key used to decrypt the message.
5181
- */
5182
- function createDecoder(contentTopic, symKey, pubsubTopicShardInfo = DefaultPubsubTopic) {
5183
- return new Decoder(determinePubsubTopic(contentTopic, pubsubTopicShardInfo), contentTopic, symKey);
5184
- }
5185
-
5186
- var symmetric = /*#__PURE__*/Object.freeze({
5187
- __proto__: null,
5188
- createDecoder: createDecoder,
5189
- createEncoder: createEncoder,
5190
- decryptSymmetric: decryptSymmetric,
5191
- encryptSymmetric: encryptSymmetric,
5192
- generateSymmetricKey: generateSymmetricKey,
5193
- postCipher: postCipher,
5194
- preCipher: preCipher
5195
- });
5196
-
5197
- export { DefaultPubsubTopic as D, Logger as L, WakuMessage$3 as W, Decoder$1 as a, decryptAsymmetric as b, postCipher as c, determinePubsubTopic as d, encryptAsymmetric as e, DecodedMessage as f, decryptSymmetric as g, encryptSymmetric as h, createEncoder as i, createDecoder as j, preCipher as p, symmetric as s };
5316
+ export { DefaultPubsubTopic as D, Logger as L, WakuMessage$3 as W, Decoder$1 as a, decryptAsymmetric as b, postCipher as c, determinePubsubTopic as d, encryptAsymmetric as e, DecodedMessage as f, encryptSymmetric as g, decryptSymmetric as h, preCipher as p };