intl-messageformat 1.1.0 → 2.1.0

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.
Files changed (229) hide show
  1. package/README.md +2 -2
  2. package/dist/intl-messageformat-with-locales.js +134 -298
  3. package/dist/intl-messageformat-with-locales.js.map +1 -1
  4. package/dist/intl-messageformat-with-locales.min.js +4 -3
  5. package/dist/intl-messageformat-with-locales.min.js.map +1 -1
  6. package/dist/intl-messageformat.js +76 -44
  7. package/dist/intl-messageformat.js.map +1 -1
  8. package/dist/intl-messageformat.min.js +1 -1
  9. package/dist/intl-messageformat.min.js.map +1 -1
  10. package/dist/locale-data/af.js +0 -1
  11. package/dist/locale-data/agq.js +0 -1
  12. package/dist/locale-data/ak.js +0 -1
  13. package/dist/locale-data/am.js +0 -1
  14. package/dist/locale-data/ar.js +0 -1
  15. package/dist/locale-data/as.js +1 -2
  16. package/dist/locale-data/asa.js +0 -1
  17. package/dist/locale-data/ast.js +0 -1
  18. package/dist/locale-data/az.js +1 -2
  19. package/dist/locale-data/bas.js +0 -1
  20. package/dist/locale-data/be.js +1 -2
  21. package/dist/locale-data/bem.js +0 -1
  22. package/dist/locale-data/bez.js +0 -1
  23. package/dist/locale-data/bg.js +0 -1
  24. package/dist/locale-data/bm.js +0 -2
  25. package/dist/locale-data/bn.js +0 -1
  26. package/dist/locale-data/bo.js +0 -1
  27. package/dist/locale-data/br.js +0 -1
  28. package/dist/locale-data/brx.js +0 -1
  29. package/dist/locale-data/bs.js +0 -2
  30. package/dist/locale-data/ca.js +1 -1
  31. package/dist/locale-data/ce.js +1 -0
  32. package/dist/locale-data/cgg.js +0 -1
  33. package/dist/locale-data/chr.js +0 -1
  34. package/dist/locale-data/ckb.js +1 -0
  35. package/dist/locale-data/cs.js +0 -1
  36. package/dist/locale-data/cu.js +1 -0
  37. package/dist/locale-data/cy.js +0 -1
  38. package/dist/locale-data/da.js +0 -1
  39. package/dist/locale-data/dav.js +0 -1
  40. package/dist/locale-data/de.js +0 -1
  41. package/dist/locale-data/dje.js +0 -1
  42. package/dist/locale-data/dsb.js +0 -1
  43. package/dist/locale-data/dua.js +0 -1
  44. package/dist/locale-data/dyo.js +0 -1
  45. package/dist/locale-data/dz.js +0 -1
  46. package/dist/locale-data/ebu.js +0 -1
  47. package/dist/locale-data/ee.js +0 -1
  48. package/dist/locale-data/el.js +0 -1
  49. package/dist/locale-data/en.js +34 -23
  50. package/dist/locale-data/eo.js +0 -1
  51. package/dist/locale-data/es.js +0 -1
  52. package/dist/locale-data/et.js +0 -1
  53. package/dist/locale-data/eu.js +0 -1
  54. package/dist/locale-data/ewo.js +0 -1
  55. package/dist/locale-data/fa.js +0 -1
  56. package/dist/locale-data/ff.js +0 -1
  57. package/dist/locale-data/fi.js +0 -1
  58. package/dist/locale-data/fil.js +0 -1
  59. package/dist/locale-data/fo.js +1 -1
  60. package/dist/locale-data/fr.js +0 -1
  61. package/dist/locale-data/fur.js +0 -1
  62. package/dist/locale-data/fy.js +0 -1
  63. package/dist/locale-data/ga.js +1 -2
  64. package/dist/locale-data/gd.js +0 -1
  65. package/dist/locale-data/gl.js +0 -1
  66. package/dist/locale-data/gsw.js +0 -1
  67. package/dist/locale-data/gu.js +0 -1
  68. package/dist/locale-data/guz.js +0 -1
  69. package/dist/locale-data/gv.js +0 -1
  70. package/dist/locale-data/ha.js +2 -4
  71. package/dist/locale-data/haw.js +0 -1
  72. package/dist/locale-data/he.js +0 -1
  73. package/dist/locale-data/hi.js +0 -1
  74. package/dist/locale-data/hr.js +0 -1
  75. package/dist/locale-data/hsb.js +0 -1
  76. package/dist/locale-data/hu.js +0 -1
  77. package/dist/locale-data/hy.js +0 -1
  78. package/dist/locale-data/id.js +0 -1
  79. package/dist/locale-data/ig.js +0 -1
  80. package/dist/locale-data/ii.js +0 -1
  81. package/dist/locale-data/is.js +0 -1
  82. package/dist/locale-data/it.js +0 -1
  83. package/dist/locale-data/iu.js +1 -0
  84. package/dist/locale-data/ja.js +0 -1
  85. package/dist/locale-data/jgo.js +0 -1
  86. package/dist/locale-data/jmc.js +0 -1
  87. package/dist/locale-data/ka.js +0 -1
  88. package/dist/locale-data/kab.js +0 -1
  89. package/dist/locale-data/kam.js +0 -1
  90. package/dist/locale-data/kde.js +0 -1
  91. package/dist/locale-data/kea.js +0 -1
  92. package/dist/locale-data/khq.js +0 -1
  93. package/dist/locale-data/ki.js +0 -1
  94. package/dist/locale-data/kk.js +0 -2
  95. package/dist/locale-data/kkj.js +0 -1
  96. package/dist/locale-data/kl.js +0 -1
  97. package/dist/locale-data/kln.js +0 -1
  98. package/dist/locale-data/km.js +0 -1
  99. package/dist/locale-data/kn.js +0 -1
  100. package/dist/locale-data/ko.js +0 -1
  101. package/dist/locale-data/kok.js +0 -1
  102. package/dist/locale-data/ks.js +0 -2
  103. package/dist/locale-data/ksb.js +0 -1
  104. package/dist/locale-data/ksf.js +0 -1
  105. package/dist/locale-data/ksh.js +0 -1
  106. package/dist/locale-data/kw.js +0 -1
  107. package/dist/locale-data/ky.js +0 -2
  108. package/dist/locale-data/lag.js +0 -1
  109. package/dist/locale-data/lb.js +0 -1
  110. package/dist/locale-data/lg.js +0 -1
  111. package/dist/locale-data/lkt.js +0 -1
  112. package/dist/locale-data/ln.js +0 -1
  113. package/dist/locale-data/lo.js +0 -1
  114. package/dist/locale-data/lrc.js +2 -0
  115. package/dist/locale-data/lt.js +0 -1
  116. package/dist/locale-data/lu.js +0 -1
  117. package/dist/locale-data/luo.js +0 -1
  118. package/dist/locale-data/luy.js +0 -1
  119. package/dist/locale-data/lv.js +0 -1
  120. package/dist/locale-data/mas.js +0 -1
  121. package/dist/locale-data/mer.js +0 -1
  122. package/dist/locale-data/mfe.js +0 -1
  123. package/dist/locale-data/mg.js +0 -1
  124. package/dist/locale-data/mgh.js +0 -1
  125. package/dist/locale-data/mgo.js +0 -1
  126. package/dist/locale-data/mk.js +0 -1
  127. package/dist/locale-data/ml.js +0 -1
  128. package/dist/locale-data/mn.js +0 -2
  129. package/dist/locale-data/mr.js +0 -1
  130. package/dist/locale-data/ms.js +2 -4
  131. package/dist/locale-data/mt.js +0 -1
  132. package/dist/locale-data/mua.js +0 -1
  133. package/dist/locale-data/my.js +0 -1
  134. package/dist/locale-data/mzn.js +1 -0
  135. package/dist/locale-data/naq.js +0 -1
  136. package/dist/locale-data/nb.js +0 -1
  137. package/dist/locale-data/nd.js +0 -1
  138. package/dist/locale-data/ne.js +0 -1
  139. package/dist/locale-data/nl.js +0 -1
  140. package/dist/locale-data/nmg.js +0 -1
  141. package/dist/locale-data/nn.js +0 -1
  142. package/dist/locale-data/nnh.js +0 -1
  143. package/dist/locale-data/nr.js +0 -1
  144. package/dist/locale-data/nso.js +0 -1
  145. package/dist/locale-data/nus.js +0 -1
  146. package/dist/locale-data/nyn.js +0 -1
  147. package/dist/locale-data/om.js +0 -1
  148. package/dist/locale-data/or.js +0 -1
  149. package/dist/locale-data/os.js +0 -1
  150. package/dist/locale-data/pa.js +0 -2
  151. package/dist/locale-data/pl.js +0 -1
  152. package/dist/locale-data/ps.js +0 -1
  153. package/dist/locale-data/pt.js +0 -1
  154. package/dist/locale-data/qu.js +0 -1
  155. package/dist/locale-data/rm.js +0 -1
  156. package/dist/locale-data/rn.js +0 -1
  157. package/dist/locale-data/ro.js +0 -1
  158. package/dist/locale-data/rof.js +0 -1
  159. package/dist/locale-data/ru.js +0 -1
  160. package/dist/locale-data/rw.js +0 -1
  161. package/dist/locale-data/rwk.js +0 -1
  162. package/dist/locale-data/sah.js +0 -1
  163. package/dist/locale-data/saq.js +0 -1
  164. package/dist/locale-data/sbp.js +0 -1
  165. package/dist/locale-data/sdh.js +1 -0
  166. package/dist/locale-data/se.js +0 -1
  167. package/dist/locale-data/seh.js +0 -1
  168. package/dist/locale-data/ses.js +0 -1
  169. package/dist/locale-data/sg.js +0 -1
  170. package/dist/locale-data/shi.js +0 -2
  171. package/dist/locale-data/si.js +0 -1
  172. package/dist/locale-data/sk.js +0 -1
  173. package/dist/locale-data/sl.js +0 -1
  174. package/dist/locale-data/smn.js +0 -1
  175. package/dist/locale-data/sn.js +0 -1
  176. package/dist/locale-data/so.js +0 -1
  177. package/dist/locale-data/sq.js +0 -1
  178. package/dist/locale-data/sr.js +0 -2
  179. package/dist/locale-data/ss.js +0 -2
  180. package/dist/locale-data/ssy.js +0 -1
  181. package/dist/locale-data/sv.js +0 -1
  182. package/dist/locale-data/sw.js +1 -1
  183. package/dist/locale-data/ta.js +0 -1
  184. package/dist/locale-data/te.js +0 -1
  185. package/dist/locale-data/teo.js +0 -1
  186. package/dist/locale-data/th.js +0 -1
  187. package/dist/locale-data/ti.js +0 -1
  188. package/dist/locale-data/tn.js +0 -2
  189. package/dist/locale-data/to.js +0 -1
  190. package/dist/locale-data/tr.js +0 -1
  191. package/dist/locale-data/ts.js +0 -1
  192. package/dist/locale-data/twq.js +0 -1
  193. package/dist/locale-data/tzm.js +0 -2
  194. package/dist/locale-data/ug.js +0 -2
  195. package/dist/locale-data/uk.js +0 -1
  196. package/dist/locale-data/ur.js +0 -1
  197. package/dist/locale-data/uz.js +0 -3
  198. package/dist/locale-data/vai.js +0 -2
  199. package/dist/locale-data/ve.js +0 -1
  200. package/dist/locale-data/vi.js +0 -1
  201. package/dist/locale-data/vo.js +0 -1
  202. package/dist/locale-data/vun.js +0 -1
  203. package/dist/locale-data/wae.js +0 -1
  204. package/dist/locale-data/xog.js +0 -1
  205. package/dist/locale-data/yav.js +0 -1
  206. package/dist/locale-data/yi.js +0 -1
  207. package/dist/locale-data/yo.js +0 -1
  208. package/dist/locale-data/zgh.js +0 -1
  209. package/dist/locale-data/zh.js +0 -2
  210. package/dist/locale-data/zu.js +0 -1
  211. package/index.d.ts +7 -0
  212. package/lib/compiler.js +1 -1
  213. package/lib/compiler.js.map +1 -0
  214. package/lib/core.js +15 -2
  215. package/lib/core.js.map +1 -0
  216. package/lib/en.js.map +1 -0
  217. package/lib/es5.js +1 -0
  218. package/lib/es5.js.map +1 -0
  219. package/lib/locales.js +53 -251
  220. package/lib/main.js.map +1 -0
  221. package/lib/utils.js.map +1 -0
  222. package/package.json +4 -4
  223. package/src/compiler.js +1 -1
  224. package/src/core.js +15 -2
  225. package/src/es5.js +2 -2
  226. package/yarn.lock +3665 -0
  227. package/dist/locale-data/aa.js +0 -4
  228. package/dist/locale-data/ia.js +0 -2
  229. package/dist/locale-data/swc.js +0 -2
@@ -55,6 +55,7 @@
55
55
 
56
56
  return obj;
57
57
  };
58
+
58
59
  var $$compiler$$default = $$compiler$$Compiler;
59
60
 
60
61
  function $$compiler$$Compiler(locales, formats, pluralFn) {
@@ -205,7 +206,7 @@
205
206
  }
206
207
 
207
208
  $$compiler$$StringFormat.prototype.format = function (value) {
208
- if (!value) {
209
+ if (!value && typeof value !== 'number') {
209
210
  return '';
210
211
  }
211
212
 
@@ -410,21 +411,24 @@
410
411
  },
411
412
  peg$c51 = /^[^{}\\\0-\x1F \t\n\r]/,
412
413
  peg$c52 = { type: "class", value: "[^{}\\\\\\0-\\x1F \\t\\n\\r]", description: "[^{}\\\\\\0-\\x1F \\t\\n\\r]" },
413
- peg$c53 = "\\#",
414
- peg$c54 = { type: "literal", value: "\\#", description: "\"\\\\#\"" },
415
- peg$c55 = function() { return '\\#'; },
416
- peg$c56 = "\\{",
417
- peg$c57 = { type: "literal", value: "\\{", description: "\"\\\\{\"" },
418
- peg$c58 = function() { return '\u007B'; },
419
- peg$c59 = "\\}",
420
- peg$c60 = { type: "literal", value: "\\}", description: "\"\\\\}\"" },
421
- peg$c61 = function() { return '\u007D'; },
422
- peg$c62 = "\\u",
423
- peg$c63 = { type: "literal", value: "\\u", description: "\"\\\\u\"" },
424
- peg$c64 = function(digits) {
414
+ peg$c53 = "\\\\",
415
+ peg$c54 = { type: "literal", value: "\\\\", description: "\"\\\\\\\\\"" },
416
+ peg$c55 = function() { return '\\'; },
417
+ peg$c56 = "\\#",
418
+ peg$c57 = { type: "literal", value: "\\#", description: "\"\\\\#\"" },
419
+ peg$c58 = function() { return '\\#'; },
420
+ peg$c59 = "\\{",
421
+ peg$c60 = { type: "literal", value: "\\{", description: "\"\\\\{\"" },
422
+ peg$c61 = function() { return '\u007B'; },
423
+ peg$c62 = "\\}",
424
+ peg$c63 = { type: "literal", value: "\\}", description: "\"\\\\}\"" },
425
+ peg$c64 = function() { return '\u007D'; },
426
+ peg$c65 = "\\u",
427
+ peg$c66 = { type: "literal", value: "\\u", description: "\"\\\\u\"" },
428
+ peg$c67 = function(digits) {
425
429
  return String.fromCharCode(parseInt(digits, 16));
426
430
  },
427
- peg$c65 = function(chars) { return chars.join(''); },
431
+ peg$c68 = function(chars) { return chars.join(''); },
428
432
 
429
433
  peg$currPos = 0,
430
434
  peg$reportedPos = 0,
@@ -1498,18 +1502,36 @@
1498
1502
  if (peg$silentFails === 0) { peg$fail(peg$c63); }
1499
1503
  }
1500
1504
  if (s1 !== peg$FAILED) {
1501
- s2 = peg$currPos;
1502
- s3 = peg$currPos;
1503
- s4 = peg$parsehexDigit();
1504
- if (s4 !== peg$FAILED) {
1505
- s5 = peg$parsehexDigit();
1506
- if (s5 !== peg$FAILED) {
1507
- s6 = peg$parsehexDigit();
1508
- if (s6 !== peg$FAILED) {
1509
- s7 = peg$parsehexDigit();
1510
- if (s7 !== peg$FAILED) {
1511
- s4 = [s4, s5, s6, s7];
1512
- s3 = s4;
1505
+ peg$reportedPos = s0;
1506
+ s1 = peg$c64();
1507
+ }
1508
+ s0 = s1;
1509
+ if (s0 === peg$FAILED) {
1510
+ s0 = peg$currPos;
1511
+ if (input.substr(peg$currPos, 2) === peg$c65) {
1512
+ s1 = peg$c65;
1513
+ peg$currPos += 2;
1514
+ } else {
1515
+ s1 = peg$FAILED;
1516
+ if (peg$silentFails === 0) { peg$fail(peg$c66); }
1517
+ }
1518
+ if (s1 !== peg$FAILED) {
1519
+ s2 = peg$currPos;
1520
+ s3 = peg$currPos;
1521
+ s4 = peg$parsehexDigit();
1522
+ if (s4 !== peg$FAILED) {
1523
+ s5 = peg$parsehexDigit();
1524
+ if (s5 !== peg$FAILED) {
1525
+ s6 = peg$parsehexDigit();
1526
+ if (s6 !== peg$FAILED) {
1527
+ s7 = peg$parsehexDigit();
1528
+ if (s7 !== peg$FAILED) {
1529
+ s4 = [s4, s5, s6, s7];
1530
+ s3 = s4;
1531
+ } else {
1532
+ peg$currPos = s3;
1533
+ s3 = peg$c2;
1534
+ }
1513
1535
  } else {
1514
1536
  peg$currPos = s3;
1515
1537
  s3 = peg$c2;
@@ -1522,25 +1544,22 @@
1522
1544
  peg$currPos = s3;
1523
1545
  s3 = peg$c2;
1524
1546
  }
1525
- } else {
1526
- peg$currPos = s3;
1527
- s3 = peg$c2;
1528
- }
1529
- if (s3 !== peg$FAILED) {
1530
- s3 = input.substring(s2, peg$currPos);
1531
- }
1532
- s2 = s3;
1533
- if (s2 !== peg$FAILED) {
1534
- peg$reportedPos = s0;
1535
- s1 = peg$c64(s2);
1536
- s0 = s1;
1547
+ if (s3 !== peg$FAILED) {
1548
+ s3 = input.substring(s2, peg$currPos);
1549
+ }
1550
+ s2 = s3;
1551
+ if (s2 !== peg$FAILED) {
1552
+ peg$reportedPos = s0;
1553
+ s1 = peg$c67(s2);
1554
+ s0 = s1;
1555
+ } else {
1556
+ peg$currPos = s0;
1557
+ s0 = peg$c2;
1558
+ }
1537
1559
  } else {
1538
1560
  peg$currPos = s0;
1539
1561
  s0 = peg$c2;
1540
1562
  }
1541
- } else {
1542
- peg$currPos = s0;
1543
- s0 = peg$c2;
1544
1563
  }
1545
1564
  }
1546
1565
  }
@@ -1566,7 +1585,7 @@
1566
1585
  }
1567
1586
  if (s1 !== peg$FAILED) {
1568
1587
  peg$reportedPos = s0;
1569
- s1 = peg$c65(s1);
1588
+ s1 = peg$c68(s1);
1570
1589
  }
1571
1590
  s0 = s1;
1572
1591
 
@@ -1622,7 +1641,18 @@
1622
1641
  // the other `Intl` APIs.
1623
1642
  var messageFormat = this;
1624
1643
  this.format = function (values) {
1644
+ try {
1625
1645
  return messageFormat._format(pattern, values);
1646
+ } catch (e) {
1647
+ if (e.variableId) {
1648
+ throw new Error(
1649
+ 'The intl string context variable \'' + e.variableId + '\'' +
1650
+ ' was not provided to the string \'' + message + '\''
1651
+ );
1652
+ } else {
1653
+ throw e;
1654
+ }
1655
+ }
1626
1656
  };
1627
1657
  }
1628
1658
 
@@ -1757,7 +1787,7 @@
1757
1787
 
1758
1788
  $$core$$MessageFormat.prototype._format = function (pattern, values) {
1759
1789
  var result = '',
1760
- i, len, part, id, value;
1790
+ i, len, part, id, value, err;
1761
1791
 
1762
1792
  for (i = 0, len = pattern.length; i < len; i += 1) {
1763
1793
  part = pattern[i];
@@ -1772,7 +1802,9 @@
1772
1802
 
1773
1803
  // Enforce that all required values are provided by the caller.
1774
1804
  if (!(values && $$utils$$hop.call(values, id))) {
1775
- throw new Error('A value must be provided for: ' + id);
1805
+ err = new Error('A value must be provided for: ' + id);
1806
+ err.variableId = id;
1807
+ throw err;
1776
1808
  }
1777
1809
 
1778
1810
  value = values[id];