@mirascript/mirascript 0.1.64 → 0.1.65

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 (81) hide show
  1. package/README.md +7 -8
  2. package/dist/{chunk-ITTCGBBX.js → chunk-MRA5WJ72.js} +385 -402
  3. package/dist/chunk-MRA5WJ72.js.map +6 -0
  4. package/dist/{chunk-QN3IOQRQ.js → chunk-X4FUFXO6.js} +3 -1
  5. package/dist/chunk-X4FUFXO6.js.map +6 -0
  6. package/dist/compiler/worker.js +1 -1
  7. package/dist/helpers/utils.d.ts +2 -0
  8. package/dist/helpers/utils.d.ts.map +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/subtle.js +2 -2
  11. package/dist/vm/lib/global/bit.d.ts.map +1 -1
  12. package/dist/vm/lib/global/debug.d.ts.map +1 -1
  13. package/dist/vm/lib/global/json.d.ts.map +1 -1
  14. package/dist/vm/lib/global/math/arr.d.ts.map +1 -1
  15. package/dist/vm/lib/global/math/const.d.ts.map +1 -1
  16. package/dist/vm/lib/global/math/gamma.d.ts.map +1 -1
  17. package/dist/vm/lib/global/math/index.d.ts.map +1 -1
  18. package/dist/vm/lib/global/math/round.d.ts.map +1 -1
  19. package/dist/vm/lib/global/math/unary.d.ts.map +1 -1
  20. package/dist/vm/lib/global/sequence/all-any.d.ts.map +1 -1
  21. package/dist/vm/lib/global/sequence/entries.d.ts.map +1 -1
  22. package/dist/vm/lib/global/sequence/find.d.ts.map +1 -1
  23. package/dist/vm/lib/global/sequence/flatten.d.ts.map +1 -1
  24. package/dist/vm/lib/global/sequence/len.d.ts.map +1 -1
  25. package/dist/vm/lib/global/sequence/map-filter.d.ts.map +1 -1
  26. package/dist/vm/lib/global/sequence/new.d.ts.map +1 -1
  27. package/dist/vm/lib/global/sequence/repeat.d.ts.map +1 -1
  28. package/dist/vm/lib/global/sequence/reverse.d.ts.map +1 -1
  29. package/dist/vm/lib/global/sequence/sort.d.ts.map +1 -1
  30. package/dist/vm/lib/global/sequence/unique.d.ts.map +1 -1
  31. package/dist/vm/lib/global/sequence/with.d.ts.map +1 -1
  32. package/dist/vm/lib/global/sequence/zip.d.ts.map +1 -1
  33. package/dist/vm/lib/global/string/case.d.ts.map +1 -1
  34. package/dist/vm/lib/global/string/index.d.ts.map +1 -1
  35. package/dist/vm/lib/global/string/search.d.ts.map +1 -1
  36. package/dist/vm/lib/global/string/trim.d.ts.map +1 -1
  37. package/dist/vm/lib/global/time.d.ts.map +1 -1
  38. package/dist/vm/lib/global/to-primitive.d.ts.map +1 -1
  39. package/dist/vm/lib/helpers.d.ts +1 -1
  40. package/dist/vm/lib/helpers.d.ts.map +1 -1
  41. package/dist/vm/lib/mod/matrix.d.ts.map +1 -1
  42. package/dist/vm/types/context.d.ts.map +1 -1
  43. package/dist/vm/types/function.d.ts +8 -7
  44. package/dist/vm/types/function.d.ts.map +1 -1
  45. package/package.json +5 -5
  46. package/src/helpers/utils.ts +7 -0
  47. package/src/vm/lib/global/bit.ts +23 -21
  48. package/src/vm/lib/global/debug.ts +6 -6
  49. package/src/vm/lib/global/json.ts +7 -6
  50. package/src/vm/lib/global/math/arr.ts +10 -15
  51. package/src/vm/lib/global/math/const.ts +0 -10
  52. package/src/vm/lib/global/math/gamma.ts +4 -6
  53. package/src/vm/lib/global/math/index.ts +11 -8
  54. package/src/vm/lib/global/math/round.ts +20 -12
  55. package/src/vm/lib/global/math/unary.ts +44 -66
  56. package/src/vm/lib/global/sequence/all-any.ts +14 -10
  57. package/src/vm/lib/global/sequence/entries.ts +8 -9
  58. package/src/vm/lib/global/sequence/find.ts +6 -7
  59. package/src/vm/lib/global/sequence/flatten.ts +5 -3
  60. package/src/vm/lib/global/sequence/len.ts +2 -3
  61. package/src/vm/lib/global/sequence/map-filter.ts +18 -21
  62. package/src/vm/lib/global/sequence/new.ts +13 -6
  63. package/src/vm/lib/global/sequence/repeat.ts +3 -7
  64. package/src/vm/lib/global/sequence/reverse.ts +2 -3
  65. package/src/vm/lib/global/sequence/sort.ts +16 -16
  66. package/src/vm/lib/global/sequence/unique.ts +16 -16
  67. package/src/vm/lib/global/sequence/with.ts +6 -7
  68. package/src/vm/lib/global/sequence/zip.ts +2 -3
  69. package/src/vm/lib/global/string/case.ts +4 -6
  70. package/src/vm/lib/global/string/index.ts +18 -12
  71. package/src/vm/lib/global/string/search.ts +15 -9
  72. package/src/vm/lib/global/string/trim.ts +6 -9
  73. package/src/vm/lib/global/time.ts +10 -13
  74. package/src/vm/lib/global/to-primitive.ts +15 -15
  75. package/src/vm/lib/helpers.ts +1 -6
  76. package/src/vm/lib/mod/matrix.ts +48 -39
  77. package/src/vm/operations/compound.ts +2 -2
  78. package/src/vm/types/context.ts +17 -20
  79. package/src/vm/types/function.ts +9 -10
  80. package/dist/chunk-ITTCGBBX.js.map +0 -6
  81. package/dist/chunk-QN3IOQRQ.js.map +0 -6
@@ -46,10 +46,11 @@ import {
46
46
  kVmScript,
47
47
  kVmWrapper,
48
48
  keys,
49
+ keysLength,
49
50
  parseDiagnostics,
50
51
  toString,
51
52
  values
52
- } from "./chunk-QN3IOQRQ.js";
53
+ } from "./chunk-X4FUFXO6.js";
53
54
 
54
55
  // src/compiler/load-module.ts
55
56
  import { loadModule } from "@mirascript/bindings";
@@ -494,9 +495,7 @@ function VmFunction(fn, option = {}) {
494
495
  isLib: opt.isLib ?? false,
495
496
  summary: opt.summary || void 0,
496
497
  params: opt.params,
497
- paramsType: opt.paramsType,
498
- returns: opt.returns || void 0,
499
- returnsType: opt.returnsType || void 0,
498
+ returns: opt.returns ?? void 0,
500
499
  examples: opt.examples?.length ? opt.examples : void 0,
501
500
  deprecated: opt.deprecated ?? void 0
502
501
  };
@@ -563,21 +562,19 @@ var ValueVmContext = class {
563
562
  }
564
563
  /** @inheritdoc */
565
564
  get(key) {
566
- if (hasOwn(this.env, key)) return this.env[key] ?? null;
567
- {
568
- const val = VM_SHARED_CONTEXT[key];
569
- if (val !== void 0) return val;
570
- return globalVarNotFound(key);
565
+ if (hasOwn(this.env, key)) {
566
+ return this.env[key] ?? null;
571
567
  }
568
+ return DefaultVmContext.get(key);
572
569
  }
573
570
  /** @inheritdoc */
574
571
  has(key) {
575
- return hasOwn(this.env, key) || key in VM_SHARED_CONTEXT;
572
+ return hasOwn(this.env, key) || DefaultVmContext.has(key);
576
573
  }
577
574
  /** @inheritdoc */
578
575
  describe(key) {
579
576
  if (hasOwn(this.env, key)) return this.describer?.(key);
580
- return VM_SHARED_CONTEXT_DESCRIPTIONS[key];
577
+ return DefaultVmContext.describe(key);
581
578
  }
582
579
  };
583
580
  defineProperty(ValueVmContext.prototype, kVmContext, { value: true });
@@ -595,32 +592,34 @@ var Value2VmContext = class {
595
592
  }
596
593
  /** @inheritdoc */
597
594
  get(key) {
598
- if (this.env != null && hasOwn(this.env, key)) return this.env[key] ?? null;
595
+ if (this.env != null && hasOwn(this.env, key)) {
596
+ return this.env[key] ?? null;
597
+ }
599
598
  if (hasOwn(this.extern, key)) {
600
- const val2 = this.extern[key];
601
- if (val2 == null) return null;
602
- if (typeof val2 != "object" && typeof val2 != "function") {
603
- return wrapToVmValue(val2, null, null);
599
+ const val = this.extern[key];
600
+ if (val == null) return null;
601
+ if (typeof val != "object" && typeof val != "function") {
602
+ return wrapToVmValue(val, null, null);
604
603
  }
605
- let cached = this.externCache.get(val2);
604
+ let cached = this.externCache.get(val);
606
605
  if (cached == null) {
607
- cached = wrapToVmValue(val2, null, null);
608
- this.externCache.set(val2, cached);
606
+ cached = wrapToVmValue(val, null, null);
607
+ this.externCache.set(val, cached);
609
608
  }
610
609
  return cached;
611
610
  }
612
- const val = VM_SHARED_CONTEXT[key];
613
- if (val !== void 0) return val;
614
- return globalVarNotFound(key);
611
+ return DefaultVmContext.get(key);
615
612
  }
616
613
  /** @inheritdoc */
617
614
  has(key) {
618
- return this.env != null && hasOwn(this.env, key) || hasOwn(this.extern, key) || key in VM_SHARED_CONTEXT;
615
+ return this.env != null && hasOwn(this.env, key) || hasOwn(this.extern, key) || DefaultVmContext.has(key);
619
616
  }
620
617
  /** @inheritdoc */
621
618
  describe(key) {
622
- if (this.env != null && hasOwn(this.env, key) || hasOwn(this.extern, key)) return this.describer?.(key);
623
- return VM_SHARED_CONTEXT_DESCRIPTIONS[key];
619
+ if (this.env != null && hasOwn(this.env, key) || hasOwn(this.extern, key)) {
620
+ return this.describer?.(key);
621
+ }
622
+ return DefaultVmContext.describe(key);
624
623
  }
625
624
  };
626
625
  defineProperty(Value2VmContext.prototype, kVmContext, { value: true });
@@ -640,18 +639,16 @@ var FactoryVmContext = class {
640
639
  get(key) {
641
640
  const value = this.getter(key);
642
641
  if (value !== void 0) return value;
643
- const val = VM_SHARED_CONTEXT[key];
644
- if (val !== void 0) return val;
645
- return globalVarNotFound(key);
642
+ return DefaultVmContext.get(key);
646
643
  }
647
644
  /** @inheritdoc */
648
645
  has(key) {
649
- return this.getter(key) !== void 0 || key in VM_SHARED_CONTEXT;
646
+ return this.getter(key) !== void 0 || DefaultVmContext.has(key);
650
647
  }
651
648
  /** @inheritdoc */
652
649
  describe(key) {
653
650
  if (this.getter(key) !== void 0) return this.describer?.(key);
654
- return VM_SHARED_CONTEXT_DESCRIPTIONS[key];
651
+ return DefaultVmContext.describe(key);
655
652
  }
656
653
  };
657
654
  defineProperty(FactoryVmContext.prototype, kVmContext, { value: true });
@@ -1135,7 +1132,7 @@ var $In = (value, iterable) => {
1135
1132
  var $Length = (value) => {
1136
1133
  $AssertInit(value);
1137
1134
  if (isVmArray(value)) return value.length;
1138
- if (isVmRecord(value)) return keys(value).length;
1135
+ if (isVmRecord(value)) return keysLength(value);
1139
1136
  if (isVmWrapper(value)) return value.keys().length;
1140
1137
  throw new VmError(`Value has no length: ${display(value)}`, 0);
1141
1138
  };
@@ -1608,9 +1605,7 @@ function VmLib(value, option, properties) {
1608
1605
  Object.defineProperties(ret, {
1609
1606
  summary: { enumerable: true, value: option.summary },
1610
1607
  params: { enumerable: true, value: option.params },
1611
- paramsType: { enumerable: true, value: option.paramsType },
1612
1608
  returns: { enumerable: true, value: option.returns },
1613
- returnsType: { enumerable: true, value: option.returnsType },
1614
1609
  examples: { enumerable: true, value: option.examples },
1615
1610
  deprecated: { enumerable: true, value: option.deprecated ?? void 0 }
1616
1611
  });
@@ -1627,23 +1622,20 @@ function build(f) {
1627
1622
  }
1628
1623
  var max = VmLib(build(Math.max), {
1629
1624
  summary: "返回一组数中的最大值",
1630
- params: { "..values": "要比较的数值" },
1631
- paramsType: { "..values": "number[]" },
1632
- returnsType: "number",
1625
+ params: { "..values": { type: "number", description: "要比较的数值" } },
1626
+ returns: { type: "number" },
1633
1627
  examples: ["max(3, 7, 2) // 7"]
1634
1628
  });
1635
1629
  var min2 = VmLib(build(Math.min), {
1636
1630
  summary: "返回一组数中的最小值",
1637
- params: { "..values": "要比较的数值" },
1638
- paramsType: { "..values": "number[]" },
1639
- returnsType: "number",
1631
+ params: { "..values": { type: "number", description: "要比较的数值" } },
1632
+ returns: { type: "number" },
1640
1633
  examples: ["min(3, 7, 2) // 2"]
1641
1634
  });
1642
1635
  var hypot = VmLib(build(Math.hypot), {
1643
1636
  summary: "返回所有参数平方和的平方根",
1644
- params: { "..values": "要计算的数值" },
1645
- paramsType: { "..values": "number[]" },
1646
- returnsType: "number",
1637
+ params: { "..values": { type: "number", description: "要计算的数值" } },
1638
+ returns: { type: "number" },
1647
1639
  examples: ["hypot(3, 4) // 5"]
1648
1640
  });
1649
1641
  var sum = VmLib(
@@ -1653,9 +1645,8 @@ var sum = VmLib(
1653
1645
  },
1654
1646
  {
1655
1647
  summary: "返回一组数的总和",
1656
- params: { "..values": "要计算的数值" },
1657
- paramsType: { "..values": "number[]" },
1658
- returnsType: "number",
1648
+ params: { "..values": { type: "number", description: "要计算的数值" } },
1649
+ returns: { type: "number" },
1659
1650
  examples: ["sum(1, 2, 3, 4) // 10"]
1660
1651
  }
1661
1652
  );
@@ -1666,9 +1657,8 @@ var product = VmLib(
1666
1657
  },
1667
1658
  {
1668
1659
  summary: "返回一组数的乘积",
1669
- params: { "..values": "要计算的数值" },
1670
- paramsType: { "..values": "number[]" },
1671
- returnsType: "number",
1660
+ params: { "..values": { type: "number", description: "要计算的数值" } },
1661
+ returns: { type: "number" },
1672
1662
  examples: ["product(2, 3, 4) // 24"]
1673
1663
  }
1674
1664
  );
@@ -1676,16 +1666,13 @@ var product = VmLib(
1676
1666
  // src/vm/lib/global/math/const.ts
1677
1667
  import { DiagnosticCode as DiagnosticCode2 } from "@mirascript/constants";
1678
1668
  var PI = VmLib(Math.PI, {
1679
- summary: "圆周率",
1680
- returnsType: "number"
1669
+ summary: "圆周率"
1681
1670
  });
1682
1671
  var E = VmLib(Math.E, {
1683
- summary: "自然对数的底数",
1684
- returnsType: "number"
1672
+ summary: "自然对数的底数"
1685
1673
  });
1686
1674
  var pi = VmLib(Math.PI, {
1687
1675
  summary: "圆周率",
1688
- returnsType: "number",
1689
1676
  deprecated: {
1690
1677
  use: "PI",
1691
1678
  message: DiagnosticCode2.PreferUppercaseConstant
@@ -1693,35 +1680,28 @@ var pi = VmLib(Math.PI, {
1693
1680
  });
1694
1681
  var e = VmLib(Math.E, {
1695
1682
  summary: "自然对数的底数",
1696
- returnsType: "number",
1697
1683
  deprecated: {
1698
1684
  use: "E",
1699
1685
  message: DiagnosticCode2.PreferUppercaseConstant
1700
1686
  }
1701
1687
  });
1702
1688
  var SQRT1_2 = VmLib(Math.SQRT1_2, {
1703
- summary: "½ 的平方根",
1704
- returnsType: "number"
1689
+ summary: "½ 的平方根"
1705
1690
  });
1706
1691
  var SQRT2 = VmLib(Math.SQRT2, {
1707
- summary: "2 的平方根",
1708
- returnsType: "number"
1692
+ summary: "2 的平方根"
1709
1693
  });
1710
1694
  var LN2 = VmLib(Math.LN2, {
1711
- summary: "2 的自然对数",
1712
- returnsType: "number"
1695
+ summary: "2 的自然对数"
1713
1696
  });
1714
1697
  var LN10 = VmLib(Math.LN10, {
1715
- summary: "10 的自然对数",
1716
- returnsType: "number"
1698
+ summary: "10 的自然对数"
1717
1699
  });
1718
1700
  var LOG2E = VmLib(Math.LOG2E, {
1719
- summary: "e 以 2 为底的对数",
1720
- returnsType: "number"
1701
+ summary: "e 以 2 为底的对数"
1721
1702
  });
1722
1703
  var LOG10E = VmLib(Math.LOG10E, {
1723
- summary: "e 以 10 为底的对数",
1724
- returnsType: "number"
1704
+ summary: "e 以 10 为底的对数"
1725
1705
  });
1726
1706
 
1727
1707
  // src/vm/lib/global/math/unary.ts
@@ -1732,135 +1712,113 @@ function build2(f) {
1732
1712
  }
1733
1713
  var sign = VmLib(build2(Math.sign), {
1734
1714
  summary: "返回数值的符号(正数为 1,负数为 -1,零为 0)",
1735
- params: { x: "要判断符号的数" },
1736
- paramsType: { x: "number" },
1737
- returnsType: "number"
1715
+ params: { x: { type: "number", description: "要判断符号的数" } },
1716
+ returns: { type: "number" }
1738
1717
  });
1739
1718
  var abs2 = VmLib(build2(Math.abs), {
1740
1719
  summary: "返回数值的绝对值",
1741
- params: { x: "要取绝对值的数" },
1742
- paramsType: { x: "number" },
1743
- returnsType: "number"
1720
+ params: { x: { type: "number", description: "要取绝对值的数" } },
1721
+ returns: { type: "number" }
1744
1722
  });
1745
1723
  var acos = VmLib(build2(Math.acos), {
1746
1724
  summary: "返回数值的反余弦值(弧度)",
1747
- params: { x: "要计算反余弦的数" },
1748
- paramsType: { x: "number" },
1749
- returnsType: "number"
1725
+ params: { x: { type: "number", description: "要计算反余弦的数" } },
1726
+ returns: { type: "number" }
1750
1727
  });
1751
1728
  var acosh = VmLib(build2(Math.acosh), {
1752
1729
  summary: "返回数值的反双曲余弦值",
1753
- params: { x: "要计算反双曲余弦的数" },
1754
- paramsType: { x: "number" },
1755
- returnsType: "number"
1730
+ params: { x: { type: "number", description: "要计算反双曲余弦的数" } },
1731
+ returns: { type: "number" }
1756
1732
  });
1757
1733
  var asin = VmLib(build2(Math.asin), {
1758
1734
  summary: "返回数值的反正弦值(弧度)",
1759
- params: { x: "要计算反正弦的数" },
1760
- paramsType: { x: "number" },
1761
- returnsType: "number"
1735
+ params: { x: { type: "number", description: "要计算反正弦的数" } },
1736
+ returns: { type: "number" }
1762
1737
  });
1763
1738
  var asinh = VmLib(build2(Math.asinh), {
1764
1739
  summary: "返回数值的反双曲正弦值",
1765
- params: { x: "要计算反双曲正弦的数" },
1766
- paramsType: { x: "number" },
1767
- returnsType: "number"
1740
+ params: { x: { type: "number", description: "要计算反双曲正弦的数" } },
1741
+ returns: { type: "number" }
1768
1742
  });
1769
1743
  var atan = VmLib(build2(Math.atan), {
1770
1744
  summary: "返回数值的反正切值(弧度)",
1771
- params: { x: "要计算反正切的数" },
1772
- paramsType: { x: "number" },
1773
- returnsType: "number"
1745
+ params: { x: { type: "number", description: "要计算反正切的数" } },
1746
+ returns: { type: "number" }
1774
1747
  });
1775
1748
  var atanh = VmLib(build2(Math.atanh), {
1776
1749
  summary: "返回数值的反双曲正切值",
1777
- params: { x: "要计算反双曲正切的数" },
1778
- paramsType: { x: "number" },
1779
- returnsType: "number"
1750
+ params: { x: { type: "number", description: "要计算反双曲正切的数" } },
1751
+ returns: { type: "number" }
1780
1752
  });
1781
1753
  var cos = VmLib(build2(Math.cos), {
1782
1754
  summary: "返回数值的余弦值",
1783
- params: { x: "要计算余弦的数(弧度)" },
1784
- paramsType: { x: "number" },
1785
- returnsType: "number"
1755
+ params: { x: { type: "number", description: "要计算余弦的数(弧度)" } },
1756
+ returns: { type: "number" }
1786
1757
  });
1787
1758
  var cosh = VmLib(build2(Math.cosh), {
1788
1759
  summary: "返回数值的双曲余弦值",
1789
- params: { x: "要计算双曲余弦的数" },
1790
- paramsType: { x: "number" },
1791
- returnsType: "number"
1760
+ params: { x: { type: "number", description: "要计算双曲余弦的数" } },
1761
+ returns: { type: "number" }
1792
1762
  });
1793
1763
  var sin = VmLib(build2(Math.sin), {
1794
1764
  summary: "返回数值的正弦值",
1795
- params: { x: "要计算正弦的数(弧度)" },
1796
- paramsType: { x: "number" },
1797
- returnsType: "number"
1765
+ params: { x: { type: "number", description: "要计算正弦的数(弧度)" } },
1766
+ returns: { type: "number" }
1798
1767
  });
1799
1768
  var sinh = VmLib(build2(Math.sinh), {
1800
1769
  summary: "返回数值的双曲正弦值",
1801
- params: { x: "要计算双曲正弦的数" },
1802
- paramsType: { x: "number" },
1803
- returnsType: "number"
1770
+ params: { x: { type: "number", description: "要计算双曲正弦的数" } },
1771
+ returns: { type: "number" }
1804
1772
  });
1805
1773
  var tan = VmLib(build2(Math.tan), {
1806
1774
  summary: "返回数值的正切值",
1807
- params: { x: "要计算正切的数(弧度)" },
1808
- paramsType: { x: "number" },
1809
- returnsType: "number"
1775
+ params: { x: { type: "number", description: "要计算正切的数(弧度)" } },
1776
+ returns: { type: "number" }
1810
1777
  });
1811
1778
  var tanh = VmLib(build2(Math.tanh), {
1812
1779
  summary: "返回数值的双曲正切值",
1813
- params: { x: "要计算双曲正切的数" },
1814
- paramsType: { x: "number" },
1815
- returnsType: "number"
1780
+ params: { x: { type: "number", description: "要计算双曲正切的数" } },
1781
+ returns: { type: "number" }
1816
1782
  });
1817
1783
  var exp = VmLib(build2(Math.exp), {
1818
1784
  summary: "返回 e 的指定次幂",
1819
- params: { x: "指数" },
1820
- paramsType: { x: "number" },
1821
- returnsType: "number"
1785
+ params: { x: { type: "number", description: "指数" } },
1786
+ returns: { type: "number" }
1822
1787
  });
1823
1788
  var expm1 = VmLib(build2(Math.expm1), {
1824
1789
  summary: "返回 e 的 x 次幂减 1",
1825
- params: { x: "指数" },
1826
- paramsType: { x: "number" },
1827
- returnsType: "number"
1790
+ params: { x: { type: "number", description: "指数" } },
1791
+ returns: { type: "number" }
1828
1792
  });
1829
1793
  var log = VmLib(build2(Math.log), {
1830
1794
  summary: "返回数值的自然对数(以 e 为底)",
1831
- params: { x: "要取对数的数" },
1832
- paramsType: { x: "number" },
1833
- returnsType: "number"
1795
+ params: { x: { type: "number", description: "要取对数的数" } },
1796
+ returns: { type: "number" }
1834
1797
  });
1835
1798
  var log10 = VmLib(build2(Math.log10), {
1836
1799
  summary: "返回数值的以 10 为底的对数",
1837
- params: { x: "要取对数的数" },
1838
- paramsType: { x: "number" },
1839
- returnsType: "number"
1800
+ params: { x: { type: "number", description: "要取对数的数" } },
1801
+ returns: { type: "number" }
1840
1802
  });
1841
1803
  var log1p = VmLib(build2(Math.log1p), {
1842
1804
  summary: "返回 1 加上数值的自然对数",
1843
- params: { x: "要取对数的数" },
1844
- paramsType: { x: "number" },
1845
- returnsType: "number"
1805
+ params: { x: { type: "number", description: "要取对数的数" } },
1806
+ returns: { type: "number" }
1846
1807
  });
1847
1808
  var log2 = VmLib(build2(Math.log2), {
1848
1809
  summary: "返回数值的以 2 为底的对数",
1849
- params: { x: "要取对数的数" },
1850
- paramsType: { x: "number" },
1851
- returnsType: "number"
1810
+ params: { x: { type: "number", description: "要取对数的数" } },
1811
+ returns: { type: "number" }
1852
1812
  });
1853
1813
  var sqrt = VmLib(build2(Math.sqrt), {
1854
1814
  summary: "返回数值的平方根",
1855
- params: { x: "要开平方的数" },
1856
- paramsType: { x: "number" },
1857
- returnsType: "number"
1815
+ params: { x: { type: "number", description: "要开平方的数" } },
1816
+ returns: { type: "number" }
1858
1817
  });
1859
1818
  var cbrt = VmLib(build2(Math.cbrt), {
1860
1819
  summary: "返回数值的立方根",
1861
- params: { x: "要计算立方根的数" },
1862
- paramsType: { x: "number" },
1863
- returnsType: "number"
1820
+ params: { x: { type: "number", description: "要计算立方根的数" } },
1821
+ returns: { type: "number" }
1864
1822
  });
1865
1823
 
1866
1824
  // src/vm/lib/global/math/round.ts
@@ -1875,21 +1833,27 @@ function build3(f) {
1875
1833
  }
1876
1834
  var trunc2 = VmLib(build3(Math.trunc), {
1877
1835
  summary: "向零方向舍入数值",
1878
- params: { x: "要舍入的数", n: "小数位数,默认为 0" },
1879
- paramsType: { x: "number", n: "number | nil" },
1880
- returnsType: "number"
1836
+ params: {
1837
+ x: { type: "number", description: "要舍入的数" },
1838
+ n: { type: "number | nil", description: "小数位数,默认为 0" }
1839
+ },
1840
+ returns: { type: "number" }
1881
1841
  });
1882
1842
  var floor = VmLib(build3(Math.floor), {
1883
1843
  summary: "向下舍入数值",
1884
- params: { x: "要舍入的数", n: "小数位数,默认为 0" },
1885
- paramsType: { x: "number", n: "number | nil" },
1886
- returnsType: "number"
1844
+ params: {
1845
+ x: { type: "number", description: "要舍入的数" },
1846
+ n: { type: "number | nil", description: "小数位数,默认为 0" }
1847
+ },
1848
+ returns: { type: "number" }
1887
1849
  });
1888
1850
  var ceil2 = VmLib(build3(Math.ceil), {
1889
1851
  summary: "向上舍入数值",
1890
- params: { x: "要舍入的数", n: "小数位数,默认为 0" },
1891
- paramsType: { x: "number", n: "number | nil" },
1892
- returnsType: "number"
1852
+ params: {
1853
+ x: { type: "number", description: "要舍入的数" },
1854
+ n: { type: "number | nil", description: "小数位数,默认为 0" }
1855
+ },
1856
+ returns: { type: "number" }
1893
1857
  });
1894
1858
  var _round = Math.round;
1895
1859
  var _abs = Math.abs;
@@ -1903,9 +1867,11 @@ var round = VmLib(
1903
1867
  }),
1904
1868
  {
1905
1869
  summary: "四舍五入数值",
1906
- params: { x: "要舍入的数", n: "小数位数,默认为 0" },
1907
- paramsType: { x: "number", n: "number" },
1908
- returnsType: "number"
1870
+ params: {
1871
+ x: { type: "number", description: "要舍入的数" },
1872
+ n: { type: "number | nil", description: "小数位数,默认为 0" }
1873
+ },
1874
+ returns: { type: "number" }
1909
1875
  }
1910
1876
  );
1911
1877
 
@@ -2043,9 +2009,8 @@ var gamma = VmLib(
2043
2009
  },
2044
2010
  {
2045
2011
  summary: "返回 Gamma 函数的值",
2046
- params: { x: "要计算 Gamma 函数的数值" },
2047
- paramsType: { x: "number" },
2048
- returnsType: "number",
2012
+ params: { x: { type: "number", description: "要计算 Gamma 函数的数值" } },
2013
+ returns: { type: "number" },
2049
2014
  examples: ["gamma(5) // 24"]
2050
2015
  }
2051
2016
  );
@@ -2069,9 +2034,8 @@ var factorial = VmLib(
2069
2034
  },
2070
2035
  {
2071
2036
  summary: "返回一个数的阶乘",
2072
- params: { x: "要计算阶乘的数值" },
2073
- paramsType: { x: "number" },
2074
- returnsType: "number",
2037
+ params: { x: { type: "number", description: "要计算阶乘的数值" } },
2038
+ returns: { type: "number" },
2075
2039
  examples: ["factorial(5) // 120"]
2076
2040
  }
2077
2041
  );
@@ -2080,21 +2044,24 @@ var factorial = VmLib(
2080
2044
  var { atan2: _atan2, pow: _pow, random: _random } = Math;
2081
2045
  var atan2 = VmLib((x, y) => _atan2(expectNumber(0, x), expectNumber(1, y)), {
2082
2046
  summary: "返回从原点到点 (x, y) 的角度(弧度)",
2083
- params: { x: "x 坐标", y: "y 坐标" },
2084
- paramsType: { x: "number", y: "number" },
2085
- returnsType: "number"
2047
+ params: {
2048
+ x: { type: "number", description: "x 坐标" },
2049
+ y: { type: "number", description: "y 坐标" }
2050
+ },
2051
+ returns: { type: "number" }
2086
2052
  });
2087
2053
  var pow3 = VmLib((x, y) => _pow(expectNumber(0, x), expectNumber(1, y)), {
2088
2054
  summary: "返回 x 的 y 次幂",
2089
- params: { x: "底数", y: "指数" },
2090
- paramsType: { x: "number", y: "number" },
2091
- returnsType: "number"
2055
+ params: {
2056
+ x: { type: "number", description: "底数" },
2057
+ y: { type: "number", description: "指数" }
2058
+ },
2059
+ returns: { type: "number" }
2092
2060
  });
2093
2061
  var random = VmLib(() => _random(), {
2094
2062
  summary: "返回 [0, 1) 之间的伪随机数",
2095
2063
  params: {},
2096
- paramsType: {},
2097
- returnsType: "number"
2064
+ returns: { type: "number" }
2098
2065
  });
2099
2066
 
2100
2067
  // src/vm/lib/global/bit.ts
@@ -2104,9 +2071,11 @@ var b_and = VmLib(
2104
2071
  },
2105
2072
  {
2106
2073
  summary: "返回两个数的按位与",
2107
- params: { x: "第一个操作数", y: "第二个操作数" },
2108
- paramsType: { x: "number", y: "number" },
2109
- returnsType: "number",
2074
+ params: {
2075
+ x: { type: "number", description: "第一个操作数" },
2076
+ y: { type: "number", description: "第二个操作数" }
2077
+ },
2078
+ returns: { type: "number" },
2110
2079
  examples: ["b_and(6, 3) // 2"]
2111
2080
  }
2112
2081
  );
@@ -2116,9 +2085,11 @@ var b_or = VmLib(
2116
2085
  },
2117
2086
  {
2118
2087
  summary: "返回两个数的按位或",
2119
- params: { x: "第一个操作数", y: "第二个操作数" },
2120
- paramsType: { x: "number", y: "number" },
2121
- returnsType: "number",
2088
+ params: {
2089
+ x: { type: "number", description: "第一个操作数" },
2090
+ y: { type: "number", description: "第二个操作数" }
2091
+ },
2092
+ returns: { type: "number" },
2122
2093
  examples: ["b_or(5, 2) // 7"]
2123
2094
  }
2124
2095
  );
@@ -2128,9 +2099,8 @@ var b_not = VmLib(
2128
2099
  },
2129
2100
  {
2130
2101
  summary: "返回一个数的按位取反",
2131
- params: { x: "操作数" },
2132
- paramsType: { x: "number" },
2133
- returnsType: "number",
2102
+ params: { x: { type: "number", description: "操作数" } },
2103
+ returns: { type: "number" },
2134
2104
  examples: ["b_not(0) // -1"]
2135
2105
  }
2136
2106
  );
@@ -2140,9 +2110,11 @@ var b_xor = VmLib(
2140
2110
  },
2141
2111
  {
2142
2112
  summary: "返回两个数的按位异或",
2143
- params: { x: "第一个操作数", y: "第二个操作数" },
2144
- paramsType: { x: "number", y: "number" },
2145
- returnsType: "number",
2113
+ params: {
2114
+ x: { type: "number", description: "第一个操作数" },
2115
+ y: { type: "number", description: "第二个操作数" }
2116
+ },
2117
+ returns: { type: "number" },
2146
2118
  examples: ["b_xor(5, 3) // 6"]
2147
2119
  }
2148
2120
  );
@@ -2152,9 +2124,8 @@ var shl = VmLib(
2152
2124
  },
2153
2125
  {
2154
2126
  summary: "返回第一个操作数左移指定的位数",
2155
- params: { x: "第一个操作数", y: "位数" },
2156
- paramsType: { x: "number", y: "number" },
2157
- returnsType: "number",
2127
+ params: { x: { type: "number", description: "第一个操作数" }, y: { type: "number", description: "位数" } },
2128
+ returns: { type: "number" },
2158
2129
  examples: ["shl(3, 2) // 12"]
2159
2130
  }
2160
2131
  );
@@ -2164,9 +2135,8 @@ var sar = VmLib(
2164
2135
  },
2165
2136
  {
2166
2137
  summary: "返回第一个操作数右移指定的位数",
2167
- params: { x: "第一个操作数", y: "位数" },
2168
- paramsType: { x: "number", y: "number" },
2169
- returnsType: "number",
2138
+ params: { x: { type: "number", description: "第一个操作数" }, y: { type: "number", description: "位数" } },
2139
+ returns: { type: "number" },
2170
2140
  examples: ["sar(-8, 1) // -4"]
2171
2141
  }
2172
2142
  );
@@ -2176,9 +2146,8 @@ var shr = VmLib(
2176
2146
  },
2177
2147
  {
2178
2148
  summary: "返回第一个操作数无符号右移指定的位数",
2179
- params: { x: "第一个操作数", y: "位数" },
2180
- paramsType: { x: "number", y: "number" },
2181
- returnsType: "number",
2149
+ params: { x: { type: "number", description: "第一个操作数" }, y: { type: "number", description: "位数" } },
2150
+ returns: { type: "number" },
2182
2151
  examples: ["shr(8, 1) // 4"]
2183
2152
  }
2184
2153
  );
@@ -2295,14 +2264,13 @@ var _with = VmLib(
2295
2264
  {
2296
2265
  summary: "在数组或记录中设置多个键值对",
2297
2266
  params: {
2298
- data: "要设置的数组或记录",
2299
- "..entries": "要设置的键值对,成对出现;键可以是一个值或一个数组(表示嵌套路径)"
2300
- },
2301
- paramsType: {
2302
- data: "array | record",
2303
- "..entries": `[..[number | string | (number | string)[], any][]]`
2267
+ data: { type: "array | record", description: "要设置的数组或记录" },
2268
+ "..entries": {
2269
+ type: "[..[number | string | (number | string)[], any][]]",
2270
+ description: "要设置的键值对,成对出现;键可以是一个值或一个数组(表示嵌套路径)"
2271
+ }
2304
2272
  },
2305
- returnsType: "type(data)",
2273
+ returns: { type: "type(data)" },
2306
2274
  examples: [
2307
2275
  `with([10, 20], 2, 99, 3 ,100) // [10, 20, 99, 100]`,
2308
2276
  `(a: 1)::with(["b", 1], 2) // (a: 1, b: [nil, 2])`
@@ -2329,9 +2297,10 @@ var keys3 = VmLib(
2329
2297
  },
2330
2298
  {
2331
2299
  summary: "返回数组、记录、外部对象或模块的键列表",
2332
- params: { data: "要获取键的数组、记录、外部对象或模块" },
2333
- paramsType: { data: "array | record | extern | module" },
2334
- returnsType: "number[] | string[]",
2300
+ params: {
2301
+ data: { type: "array | record | extern | module", description: "要获取键的数组、记录、外部对象或模块" }
2302
+ },
2303
+ returns: { type: "number[] | string[]" },
2335
2304
  examples: ["keys([10, 20]) // [0, 1]", 'keys((10, 20)) // ["0", "1"]']
2336
2305
  }
2337
2306
  );
@@ -2345,9 +2314,8 @@ var values3 = VmLib(
2345
2314
  },
2346
2315
  {
2347
2316
  summary: "返回数组或记录的值列表",
2348
- params: { data: "要获取值的数组或记录" },
2349
- paramsType: { data: "array | record" },
2350
- returnsType: "array",
2317
+ params: { data: { type: "array | record", description: "要获取值的数组或记录" } },
2318
+ returns: { type: "array" },
2351
2319
  examples: ["values((a: 1, b: 2)) // [1, 2]"]
2352
2320
  }
2353
2321
  );
@@ -2366,9 +2334,8 @@ var entries2 = VmLib(
2366
2334
  },
2367
2335
  {
2368
2336
  summary: "返回数组或记录的键值对列表",
2369
- params: { data: "要获取键值对的数组或记录" },
2370
- paramsType: { data: "array | record" },
2371
- returnsType: "(number, any)[] | (string, any)[]",
2337
+ params: { data: { type: "array | record", description: "要获取键值对的数组或记录" } },
2338
+ returns: { type: "(number, any)[] | (string, any)[]" },
2372
2339
  examples: ["entries([1]) // [(0, 1)]", 'entries((a: 1)) // [("a", 1)]']
2373
2340
  }
2374
2341
  );
@@ -2387,9 +2354,8 @@ var len = VmLib(
2387
2354
  },
2388
2355
  {
2389
2356
  summary: "返回数组的长度",
2390
- params: { arr: "要求长度的数组" },
2391
- paramsType: { arr: "array | extern" },
2392
- returnsType: "number",
2357
+ params: { arr: { type: "array | extern", description: "要求长度的数组" } },
2358
+ returns: { type: "number" },
2393
2359
  examples: ["len([1, 2, 3]) // 3"]
2394
2360
  }
2395
2361
  );
@@ -2409,14 +2375,13 @@ var map2 = VmLib(
2409
2375
  {
2410
2376
  summary: "对数组或记录中的每个元素应用函数,并返回结果",
2411
2377
  params: {
2412
- data: "要映射的数组或记录",
2413
- f: "应用于每个元素的函数"
2414
- },
2415
- paramsType: {
2416
- data: "array | record",
2417
- f: "fn(value: any, key: number | string, input: type(data)) -> any"
2378
+ data: { type: "array | record", description: "要映射的数组或记录" },
2379
+ f: {
2380
+ type: "fn(value: any, key: number | string, input: type(data)) -> any",
2381
+ description: "应用于每个元素的函数"
2382
+ }
2418
2383
  },
2419
- returnsType: "type(data)",
2384
+ returns: { type: "type(data)" },
2420
2385
  examples: ["map([1, 2, 3], fn { it * it }) // [1, 4, 9]"]
2421
2386
  }
2422
2387
  );
@@ -2428,14 +2393,13 @@ var filter = VmLib(
2428
2393
  {
2429
2394
  summary: "过滤数组或记录中的元素,返回满足条件的元素",
2430
2395
  params: {
2431
- data: "要过滤的数组或记录",
2432
- predicate: "用于测试每个元素的函数"
2433
- },
2434
- paramsType: {
2435
- data: "array | record",
2436
- predicate: "fn(value: any, key: number | string, input: type(data)) -> boolean"
2396
+ data: { type: "array | record", description: "要过滤的数组或记录" },
2397
+ predicate: {
2398
+ type: "fn(value: any, key: number | string, input: type(data)) -> boolean",
2399
+ description: "用于测试每个元素的函数"
2400
+ }
2437
2401
  },
2438
- returnsType: "type(data)",
2402
+ returns: { type: "type(data)" },
2439
2403
  examples: ["filter([1, 2, 3, 4], fn { it % 2 == 0 }) // [2, 4]"]
2440
2404
  }
2441
2405
  );
@@ -2447,14 +2411,13 @@ var filter_map = VmLib(
2447
2411
  {
2448
2412
  summary: "对数组或记录中的每个元素应用函数,并返回非 `nil` 的结果",
2449
2413
  params: {
2450
- data: "要映射的数组或记录",
2451
- f: "应用于每个元素的函数"
2452
- },
2453
- paramsType: {
2454
- data: "array | record",
2455
- f: "fn(value: any, key: number | string, input: type(data)) -> any | nil"
2414
+ data: { type: "array | record", description: "要映射的数组或记录" },
2415
+ f: {
2416
+ type: "fn(value: any, key: number | string, input: type(data)) -> any | nil",
2417
+ description: "应用于每个元素的函数"
2418
+ }
2456
2419
  },
2457
- returnsType: "type(data)",
2420
+ returns: { type: "type(data)" },
2458
2421
  examples: ["filter_map([1, 2, 3], fn {\n if it % 2 == 0 { it * it } else { nil } \n}) // [4]"]
2459
2422
  }
2460
2423
  );
@@ -2492,14 +2455,13 @@ var find = VmLib(
2492
2455
  {
2493
2456
  summary: "查找数组或记录中的键值对,返回第一个满足条件的键值对",
2494
2457
  params: {
2495
- data: "要查找的数组或记录",
2496
- predicate: "用于测试每个键值对的函数,或要查找的值"
2497
- },
2498
- paramsType: {
2499
- data: "array | record",
2500
- predicate: "(fn(value: any, key: number | string, input: type(data)) -> boolean) | any"
2458
+ data: { type: "array | record", description: "要查找的数组或记录" },
2459
+ predicate: {
2460
+ type: "(fn(value: any, key: number | string, input: type(data)) -> boolean) | any",
2461
+ description: "用于测试每个键值对的函数,或要查找的值"
2462
+ }
2501
2463
  },
2502
- returnsType: "(number | string, any) | nil",
2464
+ returns: { type: "(number | string, any) | nil" },
2503
2465
  examples: ["find([3, 5, 8], fn (v) { v % 2 == 0 }) // (2, 8)", `find((x: 1, y: 2, z: 3), 2) // ('y', 2)`]
2504
2466
  }
2505
2467
  );
@@ -2512,9 +2474,11 @@ var flatten = VmLib(
2512
2474
  },
2513
2475
  {
2514
2476
  summary: "将数组扁平化",
2515
- params: { data: "要扁平化的数组", depth: "扁平化的深度,默认为 1" },
2516
- paramsType: { data: "array", depth: "number" },
2517
- returnsType: "array",
2477
+ params: {
2478
+ data: { type: "array", description: "要扁平化的数组" },
2479
+ depth: { type: "number | nil", description: "扁平化的深度,默认为 1" }
2480
+ },
2481
+ returns: { type: "array" },
2518
2482
  examples: ["flatten([[1, 2], [3, [4]]], 2) // [1, 2, 3, 4]"]
2519
2483
  }
2520
2484
  );
@@ -2529,9 +2493,8 @@ var reverse = VmLib(
2529
2493
  },
2530
2494
  {
2531
2495
  summary: "返回数组的反转副本",
2532
- params: { arr: "要反转的数组" },
2533
- paramsType: { arr: "array" },
2534
- returnsType: "array",
2496
+ params: { arr: { type: "array", description: "要反转的数组" } },
2497
+ returns: { type: "array" },
2535
2498
  examples: ["reverse([1, 2, 3]) // [3, 2, 1]"]
2536
2499
  }
2537
2500
  );
@@ -2562,9 +2525,8 @@ var zip = VmLib(
2562
2525
  },
2563
2526
  {
2564
2527
  summary: "将数组的数组/记录转换为数组/记录的数组",
2565
- params: { data: "要转换的数组/记录" },
2566
- paramsType: { data: "array | record" },
2567
- returnsType: "(array | record)[]",
2528
+ params: { data: { type: "array | record", description: "要转换的数组/记录" } },
2529
+ returns: { type: "(array | record)[]" },
2568
2530
  examples: [
2569
2531
  'zip((x: [1, 2], y: ["a", "b"])) // [(x: 1, y: "a"), (x: 2, y: "b")]',
2570
2532
  `zip([[1, 2], ["a", "b"]]) // [[1, "a"], [2, "b"]]`
@@ -2597,12 +2559,14 @@ var all = VmLib(
2597
2559
  },
2598
2560
  {
2599
2561
  summary: "检查数组或记录中的所有键值对是否都满足条件",
2600
- params: { data: "要检查的数组或记录", predicate: "用于测试每个键值对的函数,返回 true 或 false" },
2601
- paramsType: {
2602
- data: "array | record",
2603
- predicate: "fn(value: any, key: number | string, input: type(data)) -> boolean"
2562
+ params: {
2563
+ data: { type: "array | record", description: "要检查的数组或记录" },
2564
+ predicate: {
2565
+ type: "fn(value: any, key: number | string, input: type(data)) -> boolean",
2566
+ description: "用于测试每个键值对的函数"
2567
+ }
2604
2568
  },
2605
- returnsType: "boolean",
2569
+ returns: { type: "boolean" },
2606
2570
  examples: ["all([1, 2, 3], fn { it > 0 }) // true"]
2607
2571
  }
2608
2572
  );
@@ -2630,12 +2594,14 @@ var any = VmLib(
2630
2594
  },
2631
2595
  {
2632
2596
  summary: "检查数组或记录中的是否存在满足条件的键值对",
2633
- params: { data: "要检查的数组或记录", predicate: "用于测试每个键值对的函数,返回 true 或 false" },
2634
- paramsType: {
2635
- data: "array | record",
2636
- predicate: "fn(value: any, key: number | string, input: type(data)) -> boolean"
2597
+ params: {
2598
+ data: { type: "array | record", description: "要检查的数组或记录" },
2599
+ predicate: {
2600
+ type: "fn(value: any, key: number | string, input: type(data)) -> boolean",
2601
+ description: "用于测试每个键值对的函数"
2602
+ }
2637
2603
  },
2638
- returnsType: "boolean",
2604
+ returns: { type: "boolean" },
2639
2605
  examples: ["any([0, 1, 2], fn { it > 1 }) // true"]
2640
2606
  }
2641
2607
  );
@@ -2678,14 +2644,13 @@ var sort = VmLib(
2678
2644
  {
2679
2645
  summary: "对数组中的元素进行排序,并返回排序后的结果",
2680
2646
  params: {
2681
- data: "要排序的数组",
2682
- comparator: "用于比较两个元素的函数,返回一个数字,表示它们的相对顺序,默认按升序排列"
2683
- },
2684
- paramsType: {
2685
- data: "array",
2686
- comparator: "fn(a: any, b: any) -> number"
2647
+ data: { type: "array", description: "要排序的数组" },
2648
+ comparator: {
2649
+ type: "fn(a: any, b: any) -> number",
2650
+ description: "用于比较两个元素的函数,返回一个数字,表示它们的相对顺序,默认按升序排列"
2651
+ }
2687
2652
  },
2688
- returnsType: "array",
2653
+ returns: { type: "array" },
2689
2654
  examples: ['sort(["c", "a", "b"]) // ["a", "b", "c"]']
2690
2655
  }
2691
2656
  );
@@ -2709,16 +2674,17 @@ var sort_by = VmLib(
2709
2674
  {
2710
2675
  summary: "根据键函数对数组中的元素进行排序,并返回排序后的结果",
2711
2676
  params: {
2712
- data: "要排序的数组",
2713
- key: "用于提取排序键的函数,接受一个元素并返回其排序键",
2714
- comparator: "用于比较两个排序键的函数,返回一个数字,表示它们的相对顺序,默认按升序排列"
2715
- },
2716
- paramsType: {
2717
- data: "array",
2718
- key: "fn(value: any, index: number, arr: type(data)) -> any",
2719
- comparator: "fn(a: any, b: any) -> number"
2677
+ data: { type: "array", description: "要排序的数组" },
2678
+ key: {
2679
+ type: "fn(value: any, index: number, arr: type(data)) -> any",
2680
+ description: "用于提取排序键的函数,接受一个元素并返回其排序键"
2681
+ },
2682
+ comparator: {
2683
+ type: "fn(a: any, b: any) -> number",
2684
+ description: "用于比较两个排序键的函数,返回一个数字,表示它们的相对顺序,默认按升序排列"
2685
+ }
2720
2686
  },
2721
- returnsType: "array",
2687
+ returns: { type: "array" },
2722
2688
  examples: ['sort_by([(0, "x"), (2, "y"), (1, "z")], fn (item) { item[0] }) // [(0, "x"), (1, "z"), (2, "y")]']
2723
2689
  }
2724
2690
  );
@@ -2755,14 +2721,13 @@ var unique = VmLib(
2755
2721
  {
2756
2722
  summary: "对数组中的元素进行去重,并返回去重后的结果",
2757
2723
  params: {
2758
- data: "要去重的数组",
2759
- equal: "用于判等两个元素的函数,返回一个布尔值,默认使用严格相等比较"
2760
- },
2761
- paramsType: {
2762
- data: "array",
2763
- equal: "fn(a: any, b: any) -> boolean"
2724
+ data: { type: "array", description: "要去重的数组" },
2725
+ equal: {
2726
+ type: "fn(a: any, b: any) -> boolean",
2727
+ description: "用于判等两个元素的函数,返回一个布尔值,默认使用严格相等比较"
2728
+ }
2764
2729
  },
2765
- returnsType: "array",
2730
+ returns: { type: "array" },
2766
2731
  examples: ["unique([1, 2, 2, 3]) // [1, 2, 3]"]
2767
2732
  }
2768
2733
  );
@@ -2795,16 +2760,17 @@ var unique_by = VmLib(
2795
2760
  {
2796
2761
  summary: "根据键函数对数组中的元素进行去重,并返回去重后的结果",
2797
2762
  params: {
2798
- data: "要去重的数组",
2799
- key: "用于提取去重键的函数,接受一个元素并返回其去重键",
2800
- equal: "用于判同两个元素的函数,返回一个布尔值,默认使用严格相等比较"
2801
- },
2802
- paramsType: {
2803
- data: "array",
2804
- key: "fn(value: any, index: number, arr: type(data)) -> any",
2805
- equal: "fn(a: any, b: any) -> boolean"
2763
+ data: { type: "array", description: "要去重的数组" },
2764
+ key: {
2765
+ type: "fn(value: any, index: number, arr: type(data)) -> any",
2766
+ description: "用于提取去重键的函数,接受一个元素并返回其去重键"
2767
+ },
2768
+ equal: {
2769
+ type: "fn(a: any, b: any) -> boolean",
2770
+ description: "用于判同两个元素的函数,返回一个布尔值,默认使用严格相等比较"
2771
+ }
2806
2772
  },
2807
- returnsType: "array",
2773
+ returns: { type: "array" },
2808
2774
  examples: ['unique_by(["apple", "banana", "apricot"], fn { chars(it)[0] }) // ["apple", "banana"]']
2809
2775
  }
2810
2776
  );
@@ -2822,14 +2788,10 @@ var repeat = VmLib(
2822
2788
  {
2823
2789
  summary: "创建一个包含重复元素的数组",
2824
2790
  params: {
2825
- data: "要重复的元素",
2826
- times: "重复的次数,必须是非负整数"
2827
- },
2828
- paramsType: {
2829
- data: "any",
2830
- times: "number"
2791
+ data: { type: "any", description: "要重复的元素" },
2792
+ times: { type: "number", description: "重复的次数,必须是非负整数" }
2831
2793
  },
2832
- returnsType: "type(data)[]",
2794
+ returns: { type: "type(data)[]" },
2833
2795
  examples: ["repeat(0, 5) // [0, 0, 0, 0, 0]", 'repeat("a", 3) // ["a", "a", "a"]']
2834
2796
  }
2835
2797
  );
@@ -2851,9 +2813,14 @@ var new_record = VmLib(
2851
2813
  },
2852
2814
  {
2853
2815
  summary: "根据生成器函数创建一个记录",
2854
- params: { size: "记录的大小", generator: "生成器函数,返回键值对或 nil(表示跳过该条目)" },
2855
- paramsType: { size: "number", generator: "fn(index: number) -> (string, any) | nil" },
2856
- returnsType: "record",
2816
+ params: {
2817
+ size: { type: "number", description: "记录的大小" },
2818
+ generator: {
2819
+ type: "fn(index: number) -> (string, any) | nil",
2820
+ description: "生成器函数,返回键值对或 nil(表示跳过该条目)"
2821
+ }
2822
+ },
2823
+ returns: { type: "record" },
2857
2824
  examples: ["new_record(3, fn { (it, it * 2) }) // (0, 2, 4)"]
2858
2825
  }
2859
2826
  );
@@ -2869,9 +2836,11 @@ var new_array = VmLib(
2869
2836
  },
2870
2837
  {
2871
2838
  summary: "根据生成器函数创建一个数组",
2872
- params: { length: "数组的长度", generator: "生成器函数,返回数组元素的值" },
2873
- paramsType: { length: "number", generator: "fn(index: number) -> any" },
2874
- returnsType: "array",
2839
+ params: {
2840
+ length: { type: "number", description: "数组的长度" },
2841
+ generator: { type: "fn(index: number) -> any", description: "生成器函数,返回数组元素的值" }
2842
+ },
2843
+ returns: { type: "array" },
2875
2844
  examples: ["new_array(5, fn { it * it }) // [0, 1, 4, 9, 16]"]
2876
2845
  }
2877
2846
  );
@@ -3013,9 +2982,10 @@ var debug_print = VmLib(
3013
2982
  },
3014
2983
  {
3015
2984
  summary: "打印调试信息到控制台",
3016
- params: { "..args": "要打印的调试信息,可以是任意类型" },
3017
- paramsType: { "..args": "any[]" },
3018
- returnsType: "nil",
2985
+ params: {
2986
+ "..args": { type: "any[]", description: "要打印的值,可以是任意类型" }
2987
+ },
2988
+ returns: { type: "nil" },
3019
2989
  examples: ['debug_print("value:", 42);']
3020
2990
  },
3021
2991
  // eslint-disable-next-line no-console
@@ -3030,9 +3000,8 @@ var panic = VmLib(
3030
3000
  },
3031
3001
  {
3032
3002
  summary: "产生错误,并打印错误信息到控制台",
3033
- params: { message: "要打印的错误信息" },
3034
- paramsType: { message: "string" },
3035
- returnsType: "never",
3003
+ params: { message: { type: "string", description: "要打印的错误信息" } },
3004
+ returns: { type: "never" },
3036
3005
  examples: ['panic("boom");']
3037
3006
  },
3038
3007
  // eslint-disable-next-line no-console
@@ -3070,9 +3039,8 @@ var to_json = VmLib(
3070
3039
  },
3071
3040
  {
3072
3041
  summary: "将数据转换为 JSON 字符串",
3073
- params: { data: "要转换为 JSON 的数据" },
3074
- paramsType: { data: "any" },
3075
- returnsType: "string",
3042
+ params: { data: { type: "any", description: "要转换为 JSON 的数据" } },
3043
+ returns: { type: "string" },
3076
3044
  examples: ['to_json([1, 2, 3]) // "[1,2,3]"']
3077
3045
  }
3078
3046
  );
@@ -3088,9 +3056,11 @@ var from_json = VmLib(
3088
3056
  },
3089
3057
  {
3090
3058
  summary: "将 JSON 字符串转换为数据",
3091
- params: { json: "要转换的 JSON 字符串", fallback: "如果转换失败,返回的默认值" },
3092
- paramsType: { json: "string", fallback: "any" },
3093
- returnsType: "any",
3059
+ params: {
3060
+ json: { type: "string", description: "要转换的 JSON 字符串" },
3061
+ fallback: { type: "any", description: "如果转换失败,返回的默认值" }
3062
+ },
3063
+ returns: { type: "any" },
3094
3064
  examples: [`from_json('{"a":1}') // (a: 1)`]
3095
3065
  }
3096
3066
  );
@@ -3104,11 +3074,10 @@ var to_string = VmLib(
3104
3074
  {
3105
3075
  summary: "将数据转换为字符串",
3106
3076
  params: {
3107
- data: "要转换的数据",
3108
- fallback: "转换失败时的返回值"
3077
+ data: { type: "any", description: "要转换的数据" },
3078
+ fallback: { type: "any", description: "转换失败时的返回值" }
3109
3079
  },
3110
- paramsType: { data: "any", fallback: "any" },
3111
- returnsType: "string | type(fallback)",
3080
+ returns: { type: "string | type(fallback)" },
3112
3081
  examples: ['to_string([1, 2]) // "1, 2"']
3113
3082
  }
3114
3083
  );
@@ -3120,11 +3089,10 @@ var to_number = VmLib(
3120
3089
  {
3121
3090
  summary: "将数据转换为数字",
3122
3091
  params: {
3123
- data: "要转换的数据",
3124
- fallback: "转换失败时的返回值"
3092
+ data: { type: "string | number | boolean", description: "要转换的数据" },
3093
+ fallback: { type: "any", description: "转换失败时的返回值" }
3125
3094
  },
3126
- paramsType: { data: "string | number | boolean", fallback: "any" },
3127
- returnsType: "number | type(fallback)",
3095
+ returns: { type: "number | type(fallback)" },
3128
3096
  examples: ['to_number("1.5") // 1.5']
3129
3097
  }
3130
3098
  );
@@ -3135,9 +3103,11 @@ var format = VmLib(
3135
3103
  },
3136
3104
  {
3137
3105
  summary: "将数据格式化为指定格式的字符串",
3138
- params: { data: "要格式化的数据", format: "格式字符串" },
3139
- paramsType: { data: "any", format: "string" },
3140
- returnsType: "string",
3106
+ params: {
3107
+ data: { type: "any", description: "要格式化的数据" },
3108
+ format: { type: "string", description: "格式字符串" }
3109
+ },
3110
+ returns: { type: "string" },
3141
3111
  examples: ['format(12, ".3") // "12.000"']
3142
3112
  }
3143
3113
  );
@@ -3149,9 +3119,8 @@ var trim_start = VmLib(
3149
3119
  },
3150
3120
  {
3151
3121
  summary: "去除字符串开头的空白字符",
3152
- params: { str: "要处理的字符串" },
3153
- paramsType: { str: "string" },
3154
- returnsType: "string",
3122
+ params: { str: { type: "string", description: "要处理的字符串" } },
3123
+ returns: { type: "string" },
3155
3124
  examples: ['trim_start(" mira") // "mira"']
3156
3125
  }
3157
3126
  );
@@ -3161,9 +3130,8 @@ var trim_end = VmLib(
3161
3130
  },
3162
3131
  {
3163
3132
  summary: "去除字符串结尾的空白字符",
3164
- params: { str: "要处理的字符串" },
3165
- paramsType: { str: "string" },
3166
- returnsType: "string",
3133
+ params: { str: { type: "string", description: "要处理的字符串" } },
3134
+ returns: { type: "string" },
3167
3135
  examples: ['trim_end("mira ") // "mira"']
3168
3136
  }
3169
3137
  );
@@ -3173,9 +3141,8 @@ var trim = VmLib(
3173
3141
  },
3174
3142
  {
3175
3143
  summary: "去除字符串两端的空白字符",
3176
- params: { str: "要处理的字符串" },
3177
- paramsType: { str: "string" },
3178
- returnsType: "string",
3144
+ params: { str: { type: "string", description: "要处理的字符串" } },
3145
+ returns: { type: "string" },
3179
3146
  examples: ['trim(" mira ") // "mira"']
3180
3147
  }
3181
3148
  );
@@ -3187,9 +3154,8 @@ var to_uppercase = VmLib(
3187
3154
  },
3188
3155
  {
3189
3156
  summary: "将字符串转换为大写",
3190
- params: { str: "要转换的字符串" },
3191
- paramsType: { str: "string" },
3192
- returnsType: "string",
3157
+ params: { str: { type: "string", description: "要转换的字符串" } },
3158
+ returns: { type: "string" },
3193
3159
  examples: ['to_uppercase("mira") // "MIRA"']
3194
3160
  }
3195
3161
  );
@@ -3199,9 +3165,8 @@ var to_lowercase = VmLib(
3199
3165
  },
3200
3166
  {
3201
3167
  summary: "将字符串转换为小写",
3202
- params: { str: "要转换的字符串" },
3203
- paramsType: { str: "string" },
3204
- returnsType: "string",
3168
+ params: { str: { type: "string", description: "要转换的字符串" } },
3169
+ returns: { type: "string" },
3205
3170
  examples: ['to_lowercase("MIRA") // "mira"']
3206
3171
  }
3207
3172
  );
@@ -3213,9 +3178,11 @@ var starts_with = VmLib(
3213
3178
  },
3214
3179
  {
3215
3180
  summary: "检查字符串是否以指定子串开头",
3216
- params: { str: "要检查的字符串", search: "要匹配的子串" },
3217
- paramsType: { str: "string", search: "string" },
3218
- returnsType: "boolean",
3181
+ params: {
3182
+ str: { type: "string", description: "要检查的字符串" },
3183
+ search: { type: "string", description: "要匹配的子串" }
3184
+ },
3185
+ returns: { type: "boolean" },
3219
3186
  examples: ['starts_with("mira", "mi") // true']
3220
3187
  }
3221
3188
  );
@@ -3225,9 +3192,11 @@ var ends_with = VmLib(
3225
3192
  },
3226
3193
  {
3227
3194
  summary: "检查字符串是否以指定子串结尾",
3228
- params: { str: "要检查的字符串", search: "要匹配的子串" },
3229
- paramsType: { str: "string", search: "string" },
3230
- returnsType: "boolean",
3195
+ params: {
3196
+ str: { type: "string", description: "要检查的字符串" },
3197
+ search: { type: "string", description: "要匹配的子串" }
3198
+ },
3199
+ returns: { type: "boolean" },
3231
3200
  examples: ['ends_with("mira", "ra") // true']
3232
3201
  }
3233
3202
  );
@@ -3237,9 +3206,11 @@ var contains = VmLib(
3237
3206
  },
3238
3207
  {
3239
3208
  summary: "检查字符串是否包含指定子串",
3240
- params: { str: "要检查的字符串", search: "要匹配的子串" },
3241
- paramsType: { str: "string", search: "string" },
3242
- returnsType: "boolean",
3209
+ params: {
3210
+ str: { type: "string", description: "要检查的字符串" },
3211
+ search: { type: "string", description: "要匹配的子串" }
3212
+ },
3213
+ returns: { type: "boolean" },
3243
3214
  examples: ['contains("hello", "ll") // true']
3244
3215
  }
3245
3216
  );
@@ -3251,9 +3222,8 @@ var chars = VmLib(
3251
3222
  },
3252
3223
  {
3253
3224
  summary: "将字符串转换为字符数组",
3254
- params: { str: "要转换的字符串" },
3255
- paramsType: { str: "string" },
3256
- returnsType: "string[]",
3225
+ params: { str: { type: "string", description: "要转换的字符串" } },
3226
+ returns: { type: "string[]" },
3257
3227
  examples: ['chars("Mira") // ["M", "i", "r", "a"]']
3258
3228
  }
3259
3229
  );
@@ -3266,9 +3236,12 @@ var replace = VmLib(
3266
3236
  },
3267
3237
  {
3268
3238
  summary: "替换字符串中的指定子串",
3269
- params: { str: "要处理的字符串", search: "要替换的子串", replacement: "替换后的字符串" },
3270
- paramsType: { str: "string", search: "string", replacement: "string" },
3271
- returnsType: "string",
3239
+ params: {
3240
+ str: { type: "string", description: "要处理的字符串" },
3241
+ search: { type: "string", description: "要替换的子串" },
3242
+ replacement: { type: "string", description: "替换后的字符串" }
3243
+ },
3244
+ returns: { type: "string" },
3272
3245
  examples: ['replace("foo bar foo", "foo", "baz") // "baz bar baz"']
3273
3246
  }
3274
3247
  );
@@ -3281,9 +3254,11 @@ var split = VmLib(
3281
3254
  },
3282
3255
  {
3283
3256
  summary: "将字符串拆分为子串数组",
3284
- params: { str: "要拆分的字符串", separator: "分隔符" },
3285
- paramsType: { str: "string", separator: "string" },
3286
- returnsType: "string[]",
3257
+ params: {
3258
+ str: { type: "string", description: "要拆分的字符串" },
3259
+ separator: { type: "string", description: "分隔符" }
3260
+ },
3261
+ returns: { type: "string[]" },
3287
3262
  examples: ['split("a,b,c", ",") // ["a", "b", "c"]']
3288
3263
  }
3289
3264
  );
@@ -3295,9 +3270,11 @@ var join = VmLib(
3295
3270
  },
3296
3271
  {
3297
3272
  summary: "将字符串数组连接为单个字符串",
3298
- params: { arr: "要连接的字符串数组", separator: "分隔符" },
3299
- paramsType: { arr: "string[]", separator: "string" },
3300
- returnsType: "string",
3273
+ params: {
3274
+ arr: { type: "string[]", description: "要连接的字符串数组" },
3275
+ separator: { type: "string", description: "分隔符" }
3276
+ },
3277
+ returns: { type: "string" },
3301
3278
  examples: ['join(["a", "b", "c"], "-") // "a-b-c"']
3302
3279
  }
3303
3280
  );
@@ -3338,11 +3315,10 @@ var to_timestamp = VmLib(
3338
3315
  {
3339
3316
  summary: "将数据转换为 Unix 毫秒时间戳",
3340
3317
  params: {
3341
- datetime: "要转换的数据,默认为当前时间",
3342
- fallback: "转换失败时的返回值"
3318
+ datetime: { type: "number | string | nil", description: "要转换的数据,默认为当前时间" },
3319
+ fallback: { type: "any", description: "转换失败时的返回值" }
3343
3320
  },
3344
- paramsType: { datetime: "number | string | nil", fallback: "any" },
3345
- returnsType: "number | type(fallback)",
3321
+ returns: { type: "number | type(fallback)" },
3346
3322
  examples: ['to_timestamp("1970-01-01T00:00:00Z") // 0']
3347
3323
  }
3348
3324
  );
@@ -3367,12 +3343,11 @@ var to_datetime = VmLib(
3367
3343
  {
3368
3344
  summary: "将数据转换为 DateTime 记录",
3369
3345
  params: {
3370
- datetime: "要转换的数据,默认为当前时间",
3371
- offset: "时区偏移量(单位:小时),默认为 0",
3372
- fallback: "转换失败时的返回值"
3346
+ datetime: { type: "number | string | nil", description: "要转换的数据,默认为当前时间" },
3347
+ offset: { type: "number | nil", description: "时区偏移量(单位:小时),默认为 0" },
3348
+ fallback: { type: "any", description: "转换失败时的返回值" }
3373
3349
  },
3374
- paramsType: { datetime: "number | string | nil", offset: "number | nil", fallback: "any" },
3375
- returnsType: "DateTime | type(fallback)",
3350
+ returns: { type: "DateTime | type(fallback)" },
3376
3351
  examples: [
3377
3352
  `
3378
3353
  to_datetime(0)
@@ -3395,11 +3370,10 @@ var to_iso8601 = VmLib(
3395
3370
  {
3396
3371
  summary: "将数据转换为 ISO 8601 格式的字符串",
3397
3372
  params: {
3398
- datetime: "要转换的数据,默认为当前时间",
3399
- fallback: "转换失败时的返回值"
3373
+ datetime: { type: "number | string | nil", description: "要转换的数据,默认为当前时间" },
3374
+ fallback: { type: "any", description: "转换失败时的返回值" }
3400
3375
  },
3401
- paramsType: { datetime: "number | string | nil", fallback: "any" },
3402
- returnsType: "string | type(fallback)",
3376
+ returns: { type: "string | type(fallback)" },
3403
3377
  examples: ['to_iso8601(0) // "1970-01-01T00:00:00.000Z"']
3404
3378
  }
3405
3379
  );
@@ -3451,9 +3425,8 @@ var size = VmLib(
3451
3425
  },
3452
3426
  {
3453
3427
  summary: "获取矩阵尺寸",
3454
- params: { matrix: "要获取尺寸的矩阵" },
3455
- paramsType: { matrix: "any[][]" },
3456
- returnsType: "[number, number]",
3428
+ params: { matrix: { type: "any[][]", description: "要获取尺寸的矩阵" } },
3429
+ returns: { type: "[number, number]" },
3457
3430
  examples: ["matrix.size([[1, 2], [3, 4]]) // [2, 2]"]
3458
3431
  }
3459
3432
  );
@@ -3477,9 +3450,8 @@ var transpose = VmLib(
3477
3450
  },
3478
3451
  {
3479
3452
  summary: "转置矩阵",
3480
- params: { matrix: "要转置的矩阵" },
3481
- paramsType: { matrix: "any[][]" },
3482
- returnsType: "any[][]",
3453
+ params: { matrix: { type: "any[][]", description: "要转置的矩阵" } },
3454
+ returns: { type: "any[][]" },
3483
3455
  examples: ["matrix.transpose([[1, 2], [3, 4]]) // [[1, 3], [2, 4]]"]
3484
3456
  }
3485
3457
  );
@@ -3592,9 +3564,12 @@ var entrywise = VmLib(
3592
3564
  },
3593
3565
  {
3594
3566
  summary: "逐项操作",
3595
- params: { a: "第一个操作数", b: "第二个操作数", f: "操作函数" },
3596
- paramsType: { a: "any | any[] | any[][]", b: "any | any[] | any[][]", f: "fn(a: any, b: any) -> any" },
3597
- returnsType: "any | any[] | any[][]",
3567
+ params: {
3568
+ a: { type: "any | any[] | any[][]", description: "第一个操作数" },
3569
+ b: { type: "any | any[] | any[][]", description: "第二个操作数" },
3570
+ f: { type: "fn(a: any, b: any) -> any", description: "操作函数" }
3571
+ },
3572
+ returns: { type: "any | any[] | any[][]" },
3598
3573
  examples: [`matrix.entrywise([1, 2], [3, 4], fn (x, y) { x + y }) // [4, 6]`]
3599
3574
  }
3600
3575
  );
@@ -3606,9 +3581,11 @@ var add2 = VmLib(
3606
3581
  },
3607
3582
  {
3608
3583
  summary: "逐项相加",
3609
- params: { a: "第一个操作数", b: "第二个操作数" },
3610
- paramsType: { a: "number | number[] | number[][]", b: "number | number[] | number[][]" },
3611
- returnsType: "number | number[] | number[][]",
3584
+ params: {
3585
+ a: { type: "number | number[] | number[][]", description: "第一个操作数" },
3586
+ b: { type: "number | number[] | number[][]", description: "第二个操作数" }
3587
+ },
3588
+ returns: { type: "number | number[] | number[][]" },
3612
3589
  examples: ["matrix.add([1, 2], [3, 4]) // [4, 6]"]
3613
3590
  }
3614
3591
  );
@@ -3620,9 +3597,11 @@ var subtract = VmLib(
3620
3597
  },
3621
3598
  {
3622
3599
  summary: "逐项相减",
3623
- params: { a: "第一个操作数", b: "第二个操作数" },
3624
- paramsType: { a: "number | number[] | number[][]", b: "number | number[] | number[][]" },
3625
- returnsType: "number | number[] | number[][]",
3600
+ params: {
3601
+ a: { type: "number | number[] | number[][]", description: "第一个操作数" },
3602
+ b: { type: "number | number[] | number[][]", description: "第二个操作数" }
3603
+ },
3604
+ returns: { type: "number | number[] | number[][]" },
3626
3605
  examples: ["matrix.subtract([3, 4], [1, 2]) // [2, 2]"]
3627
3606
  }
3628
3607
  );
@@ -3634,9 +3613,11 @@ var entrywise_multiply = VmLib(
3634
3613
  },
3635
3614
  {
3636
3615
  summary: "逐项相乘",
3637
- params: { a: "第一个操作数", b: "第二个操作数" },
3638
- paramsType: { a: "number | number[] | number[][]", b: "number | number[] | number[][]" },
3639
- returnsType: "number | number[] | number[][]",
3616
+ params: {
3617
+ a: { type: "number | number[] | number[][]", description: "第一个操作数" },
3618
+ b: { type: "number | number[] | number[][]", description: "第二个操作数" }
3619
+ },
3620
+ returns: { type: "number | number[] | number[][]" },
3640
3621
  examples: ["matrix.entrywise_multiply([1, 2], [3, 4]) // [3, 8]"]
3641
3622
  }
3642
3623
  );
@@ -3648,9 +3629,11 @@ var entrywise_divide = VmLib(
3648
3629
  },
3649
3630
  {
3650
3631
  summary: "逐项相除",
3651
- params: { a: "第一个操作数", b: "第二个操作数" },
3652
- paramsType: { a: "number | number[] | number[][]", b: "number | number[] | number[][]" },
3653
- returnsType: "number | number[] | number[][]",
3632
+ params: {
3633
+ a: { type: "number | number[] | number[][]", description: "第一个操作数" },
3634
+ b: { type: "number | number[] | number[][]", description: "第二个操作数" }
3635
+ },
3636
+ returns: { type: "number | number[] | number[][]" },
3654
3637
  examples: ["matrix.entrywise_divide([4, 6], [2, 3]) // [2, 2]"]
3655
3638
  }
3656
3639
  );
@@ -3714,9 +3697,11 @@ var multiply = VmLib(
3714
3697
  },
3715
3698
  {
3716
3699
  summary: "矩阵相乘",
3717
- params: { a: "第一个操作数", b: "第二个操作数" },
3718
- paramsType: { a: "number | number[] | number[][]", b: "number | number[] | number[][]" },
3719
- returnsType: "number | number[] | number[][]",
3700
+ params: {
3701
+ a: { type: "number | number[] | number[][]", description: "第一个操作数" },
3702
+ b: { type: "number | number[] | number[][]", description: "第二个操作数" }
3703
+ },
3704
+ returns: { type: "number | number[] | number[][]" },
3720
3705
  examples: ["matrix.multiply([[1, 2], [3, 4]], [5, 6]) // [17, 39]"]
3721
3706
  }
3722
3707
  );
@@ -3805,9 +3790,8 @@ var invert = VmLib(
3805
3790
  },
3806
3791
  {
3807
3792
  summary: "矩阵求逆",
3808
- params: { a: "待求逆的矩阵" },
3809
- paramsType: { a: "number | number[][]" },
3810
- returnsType: "number | number[][]",
3793
+ params: { a: { type: "number | number[][]", description: "待求逆的矩阵" } },
3794
+ returns: { type: "number | number[][]" },
3811
3795
  examples: ["matrix.invert([[1, 2], [3, 4]]) // [[-2, 1], [1.5, -0.5]]"]
3812
3796
  }
3813
3797
  );
@@ -3826,16 +3810,14 @@ function filled(size2, value) {
3826
3810
  }
3827
3811
  var zeros = VmLib((...size2) => filled(size2, 0), {
3828
3812
  summary: "创建一个全零的矩阵",
3829
- params: { "..size": "矩阵的维度" },
3830
- paramsType: { "..size": "number[]" },
3831
- returnsType: "number[][]",
3813
+ params: { "..size": { type: "number[]", description: "矩阵的维度" } },
3814
+ returns: { type: "number[][]" },
3832
3815
  examples: ["matrix.zeros(2, 3) // [[0, 0, 0], [0, 0, 0]]"]
3833
3816
  });
3834
3817
  var ones = VmLib((...size2) => filled(size2, 1), {
3835
3818
  summary: "创建一个全一的矩阵",
3836
- params: { "..size": "矩阵的维度" },
3837
- paramsType: { "..size": "number[]" },
3838
- returnsType: "number[][]",
3819
+ params: { "..size": { type: "number[]", description: "矩阵的维度" } },
3820
+ returns: { type: "number[][]" },
3839
3821
  examples: ["matrix.ones(2, 2) // [[1, 1], [1, 1]]"]
3840
3822
  });
3841
3823
  var identity = VmLib(
@@ -3858,9 +3840,8 @@ var identity = VmLib(
3858
3840
  },
3859
3841
  {
3860
3842
  summary: "创建一个单位矩阵",
3861
- params: { "..size": "矩阵的维度" },
3862
- paramsType: { "..size": "[number] | [number, number]" },
3863
- returnsType: "number[][]",
3843
+ params: { "..size": { type: "[number] | [number, number]", description: "矩阵的维度" } },
3844
+ returns: { type: "number[][]" },
3864
3845
  examples: ["matrix.identity(3) // [[1, 0, 0], [0, 1, 0], [0, 0, 1]]"]
3865
3846
  }
3866
3847
  );
@@ -3898,9 +3879,11 @@ var diagonal = VmLib(
3898
3879
  },
3899
3880
  {
3900
3881
  summary: "创建一个对角矩阵或获取矩阵的对角线",
3901
- params: { x: "对角线元素或要获取对角线的矩阵", k: "对角线偏移量,默认为 0" },
3902
- paramsType: { x: "number[] | number[][]", k: "number" },
3903
- returnsType: "number[][] | number[]",
3882
+ params: {
3883
+ x: { type: "number[] | number[][]", description: "对角线元素或要获取对角线的矩阵" },
3884
+ k: { type: "number", description: "对角线偏移量,默认为 0" }
3885
+ },
3886
+ returns: { type: "number[][] | number[]" },
3904
3887
  examples: [
3905
3888
  "matrix.diagonal([1, 2, 3]) // [[1, 0, 0], [0, 2, 0], [0, 0, 3]]",
3906
3889
  "matrix.diagonal([[1, 2], [3, 4]]) // [1, 4]"
@@ -3979,4 +3962,4 @@ export {
3979
3962
  emitScript,
3980
3963
  lib
3981
3964
  };
3982
- //# sourceMappingURL=chunk-ITTCGBBX.js.map
3965
+ //# sourceMappingURL=chunk-MRA5WJ72.js.map