create-mendix-widget-gleam 2.0.13 → 2.0.15

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 (205) hide show
  1. package/README.md +3 -2
  2. package/package.json +5 -1
  3. package/src/index.mjs +22 -7
  4. package/src/templates/readme_md.mjs +6 -6
  5. package/template/docs/glendix_guide.md +204 -1
  6. package/template/gleam.toml +1 -1
  7. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache +0 -0
  8. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_inline +0 -0
  9. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_meta +0 -0
  10. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache +0 -0
  11. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_inline +0 -0
  12. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_meta +0 -0
  13. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache +0 -0
  14. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_inline +0 -0
  15. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_meta +0 -0
  16. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache +0 -0
  17. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_inline +0 -0
  18. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_meta +0 -0
  19. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache +0 -0
  20. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_inline +0 -0
  21. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_meta +0 -0
  22. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache +0 -0
  23. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_inline +0 -0
  24. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_meta +0 -0
  25. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache +0 -0
  26. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_inline +0 -0
  27. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_meta +0 -0
  28. package/tui/build/dev/javascript/etch/etch/command.mjs +479 -0
  29. package/tui/build/dev/javascript/etch/etch/cursor.mjs +164 -0
  30. package/tui/build/dev/javascript/etch/etch/event.mjs +2399 -0
  31. package/tui/build/dev/javascript/etch/etch/internal/consts.mjs +3 -0
  32. package/tui/build/dev/javascript/etch/etch/stdout.mjs +375 -0
  33. package/tui/build/dev/javascript/etch/etch/style.mjs +741 -0
  34. package/tui/build/dev/javascript/etch/etch/terminal.mjs +137 -0
  35. package/tui/build/dev/javascript/etch/gleam.mjs +1 -0
  36. package/tui/build/dev/javascript/etch/input/event_ffi.erl +73 -0
  37. package/tui/build/dev/javascript/etch/input/input_ffi.mjs +192 -0
  38. package/tui/build/dev/javascript/etch/input/signal_handler.erl +33 -0
  39. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.erl +22 -0
  40. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.mjs +37 -0
  41. package/tui/build/dev/javascript/etch/terminal/tty_state.erl +29 -0
  42. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache +0 -0
  43. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_inline +0 -0
  44. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_meta +0 -0
  45. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache +0 -0
  46. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_inline +0 -0
  47. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta +0 -0
  48. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache +0 -0
  49. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_inline +0 -0
  50. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta +0 -0
  51. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache +0 -0
  52. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_inline +0 -0
  53. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta +0 -0
  54. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache +0 -0
  55. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_inline +0 -0
  56. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_meta +0 -0
  57. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache +0 -0
  58. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_inline +0 -0
  59. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta +0 -0
  60. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache +0 -0
  61. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_inline +0 -0
  62. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_meta +0 -0
  63. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/application.mjs +38 -0
  64. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/atom.mjs +2 -0
  65. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/charlist.mjs +1 -0
  66. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/node.mjs +12 -0
  67. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/port.mjs +1 -0
  68. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/process.mjs +161 -0
  69. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/reference.mjs +1 -0
  70. package/tui/build/dev/javascript/gleam_erlang/gleam.mjs +1 -0
  71. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@application.erl +43 -0
  72. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@atom.erl +94 -0
  73. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@charlist.erl +42 -0
  74. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@node.erl +80 -0
  75. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@port.erl +8 -0
  76. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@process.erl +868 -0
  77. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@reference.erl +21 -0
  78. package/tui/build/dev/javascript/gleam_erlang/gleam_erlang_ffi.erl +164 -0
  79. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache +0 -0
  80. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_inline +0 -0
  81. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_meta +0 -0
  82. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache +0 -0
  83. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_inline +0 -0
  84. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_meta +0 -0
  85. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache +0 -0
  86. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_inline +0 -0
  87. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_meta +0 -0
  88. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/array.mjs +24 -0
  89. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/promise.mjs +105 -0
  90. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/symbol.mjs +7 -0
  91. package/tui/build/dev/javascript/gleam_javascript/gleam.mjs +1 -0
  92. package/tui/build/dev/javascript/gleam_javascript/gleam_javascript_ffi.mjs +133 -0
  93. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
  94. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
  95. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
  96. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
  97. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
  98. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
  99. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
  100. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
  101. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
  102. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
  103. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
  104. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
  105. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
  106. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
  107. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
  108. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
  109. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
  110. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
  111. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
  112. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
  113. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
  114. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
  115. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
  116. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
  117. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
  118. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
  119. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
  120. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
  121. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
  122. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
  123. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
  124. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
  125. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
  126. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
  127. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
  128. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
  129. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
  130. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
  131. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
  132. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
  133. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
  134. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
  135. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
  136. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
  137. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
  138. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
  139. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
  140. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
  141. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
  142. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
  143. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
  144. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
  145. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
  146. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
  147. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
  148. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
  149. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
  150. package/tui/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
  151. package/tui/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +286 -0
  152. package/tui/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +295 -0
  153. package/tui/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
  154. package/tui/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +455 -0
  155. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +993 -0
  156. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
  157. package/tui/build/dev/javascript/gleam_stdlib/gleam/float.mjs +528 -0
  158. package/tui/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
  159. package/tui/build/dev/javascript/gleam_stdlib/gleam/int.mjs +764 -0
  160. package/tui/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
  161. package/tui/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3063 -0
  162. package/tui/build/dev/javascript/gleam_stdlib/gleam/option.mjs +386 -0
  163. package/tui/build/dev/javascript/gleam_stdlib/gleam/order.mjs +166 -0
  164. package/tui/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +96 -0
  165. package/tui/build/dev/javascript/gleam_stdlib/gleam/result.mjs +448 -0
  166. package/tui/build/dev/javascript/gleam_stdlib/gleam/set.mjs +413 -0
  167. package/tui/build/dev/javascript/gleam_stdlib/gleam/string.mjs +695 -0
  168. package/tui/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +128 -0
  169. package/tui/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1151 -0
  170. package/tui/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
  171. package/tui/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
  172. package/tui/build/dev/javascript/gleam_stdlib/gleam@bool.erl +334 -0
  173. package/tui/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
  174. package/tui/build/dev/javascript/gleam_stdlib/gleam@dict.erl +513 -0
  175. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +105 -0
  176. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1114 -0
  177. package/tui/build/dev/javascript/gleam_stdlib/gleam@float.erl +711 -0
  178. package/tui/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
  179. package/tui/build/dev/javascript/gleam_stdlib/gleam@int.erl +972 -0
  180. package/tui/build/dev/javascript/gleam_stdlib/gleam@io.erl +76 -0
  181. package/tui/build/dev/javascript/gleam_stdlib/gleam@list.erl +2735 -0
  182. package/tui/build/dev/javascript/gleam_stdlib/gleam@option.erl +381 -0
  183. package/tui/build/dev/javascript/gleam_stdlib/gleam@order.erl +188 -0
  184. package/tui/build/dev/javascript/gleam_stdlib/gleam@pair.erl +104 -0
  185. package/tui/build/dev/javascript/gleam_stdlib/gleam@result.erl +500 -0
  186. package/tui/build/dev/javascript/gleam_stdlib/gleam@set.erl +430 -0
  187. package/tui/build/dev/javascript/gleam_stdlib/gleam@string.erl +964 -0
  188. package/tui/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +202 -0
  189. package/tui/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1042 -0
  190. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +534 -0
  191. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1133 -0
  192. package/tui/build/dev/javascript/gleam_version +1 -0
  193. package/tui/build/dev/javascript/prelude.mjs +1575 -0
  194. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache +0 -0
  195. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_inline +0 -0
  196. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_meta +0 -0
  197. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_warnings +0 -0
  198. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache +0 -0
  199. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_inline +0 -0
  200. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_meta +0 -0
  201. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_warnings +0 -0
  202. package/tui/build/dev/javascript/tui/gleam.mjs +1 -0
  203. package/tui/build/dev/javascript/tui/tui/prompt.mjs +521 -0
  204. package/tui/build/dev/javascript/tui/tui.mjs +334 -0
  205. package/tui/build/dev/javascript/tui/tui_ffi.mjs +32 -0
@@ -0,0 +1,764 @@
1
+ import { Ok, Error, Empty as $Empty, remainderInt, divideInt } from "../gleam.mjs";
2
+ import * as $float from "../gleam/float.mjs";
3
+ import * as $order from "../gleam/order.mjs";
4
+ import {
5
+ parse_int as parse,
6
+ int_from_base_string as do_base_parse,
7
+ to_string,
8
+ int_to_base_string as do_to_base_string,
9
+ identity as to_float,
10
+ bitwise_and,
11
+ bitwise_not,
12
+ bitwise_or,
13
+ bitwise_exclusive_or,
14
+ bitwise_shift_left,
15
+ bitwise_shift_right,
16
+ } from "../gleam_stdlib.mjs";
17
+
18
+ export {
19
+ bitwise_and,
20
+ bitwise_exclusive_or,
21
+ bitwise_not,
22
+ bitwise_or,
23
+ bitwise_shift_left,
24
+ bitwise_shift_right,
25
+ parse,
26
+ to_float,
27
+ to_string,
28
+ };
29
+
30
+ /**
31
+ * Returns the absolute value of the input.
32
+ *
33
+ * ## Examples
34
+ *
35
+ * ```gleam
36
+ * assert absolute_value(-12) == 12
37
+ * ```
38
+ *
39
+ * ```gleam
40
+ * assert absolute_value(10) == 10
41
+ * ```
42
+ */
43
+ export function absolute_value(x) {
44
+ let $ = x >= 0;
45
+ if ($) {
46
+ return x;
47
+ } else {
48
+ return x * -1;
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Parses a given string as an int in a given base if possible.
54
+ * Supports only bases 2 to 36, for values outside of which this function returns an `Error(Nil)`.
55
+ *
56
+ * ## Examples
57
+ *
58
+ * ```gleam
59
+ * assert base_parse("10", 2) == Ok(2)
60
+ * ```
61
+ *
62
+ * ```gleam
63
+ * assert base_parse("30", 16) == Ok(48)
64
+ * ```
65
+ *
66
+ * ```gleam
67
+ * assert base_parse("1C", 36) == Ok(48)
68
+ * ```
69
+ *
70
+ * ```gleam
71
+ * assert base_parse("48", 1) == Error(Nil)
72
+ * ```
73
+ *
74
+ * ```gleam
75
+ * assert base_parse("48", 37) == Error(Nil)
76
+ * ```
77
+ */
78
+ export function base_parse(string, base) {
79
+ let $ = (base >= 2) && (base <= 36);
80
+ if ($) {
81
+ return do_base_parse(string, base);
82
+ } else {
83
+ return new Error(undefined);
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Prints a given int to a string using the base number provided.
89
+ * Supports only bases 2 to 36, for values outside of which this function returns an `Error(Nil)`.
90
+ * For common bases (2, 8, 16, 36), use the `to_baseN` functions.
91
+ *
92
+ * ## Examples
93
+ *
94
+ * ```gleam
95
+ * assert to_base_string(2, 2) == Ok("10")
96
+ * ```
97
+ *
98
+ * ```gleam
99
+ * assert to_base_string(48, 16) == Ok("30")
100
+ * ```
101
+ *
102
+ * ```gleam
103
+ * assert to_base_string(48, 36) == Ok("1C")
104
+ * ```
105
+ *
106
+ * ```gleam
107
+ * assert to_base_string(48, 1) == Error(Nil)
108
+ * ```
109
+ *
110
+ * ```gleam
111
+ * assert to_base_string(48, 37) == Error(Nil)
112
+ * ```
113
+ */
114
+ export function to_base_string(x, base) {
115
+ let $ = (base >= 2) && (base <= 36);
116
+ if ($) {
117
+ return new Ok(do_to_base_string(x, base));
118
+ } else {
119
+ return new Error(undefined);
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Prints a given int to a string using base-2.
125
+ *
126
+ * ## Examples
127
+ *
128
+ * ```gleam
129
+ * assert to_base2(2) == "10"
130
+ * ```
131
+ */
132
+ export function to_base2(x) {
133
+ return do_to_base_string(x, 2);
134
+ }
135
+
136
+ /**
137
+ * Prints a given int to a string using base-8.
138
+ *
139
+ * ## Examples
140
+ *
141
+ * ```gleam
142
+ * assert to_base8(15) == "17"
143
+ * ```
144
+ */
145
+ export function to_base8(x) {
146
+ return do_to_base_string(x, 8);
147
+ }
148
+
149
+ /**
150
+ * Prints a given int to a string using base-16.
151
+ *
152
+ * ## Examples
153
+ *
154
+ * ```gleam
155
+ * assert to_base16(48) == "30"
156
+ * ```
157
+ */
158
+ export function to_base16(x) {
159
+ return do_to_base_string(x, 16);
160
+ }
161
+
162
+ /**
163
+ * Prints a given int to a string using base-36.
164
+ *
165
+ * ## Examples
166
+ *
167
+ * ```gleam
168
+ * assert to_base36(48) == "1C"
169
+ * ```
170
+ */
171
+ export function to_base36(x) {
172
+ return do_to_base_string(x, 36);
173
+ }
174
+
175
+ /**
176
+ * Returns the result of the base being raised to the power of the
177
+ * exponent, as a `Float`.
178
+ *
179
+ * ## Examples
180
+ *
181
+ * ```gleam
182
+ * assert power(2, -1.0) == Ok(0.5)
183
+ * ```
184
+ *
185
+ * ```gleam
186
+ * assert power(2, 2.0) == Ok(4.0)
187
+ * ```
188
+ *
189
+ * ```gleam
190
+ * assert power(8, 1.5) == Ok(22.627416997969522)
191
+ * ```
192
+ *
193
+ * ```gleam
194
+ * assert 4 |> power(of: 2.0) == Ok(16.0)
195
+ * ```
196
+ *
197
+ * ```gleam
198
+ * assert power(-1, 0.5) == Error(Nil)
199
+ * ```
200
+ */
201
+ export function power(base, exponent) {
202
+ let _pipe = base;
203
+ let _pipe$1 = to_float(_pipe);
204
+ return $float.power(_pipe$1, exponent);
205
+ }
206
+
207
+ /**
208
+ * Returns the square root of the input as a `Float`.
209
+ *
210
+ * ## Examples
211
+ *
212
+ * ```gleam
213
+ * assert square_root(4) == Ok(2.0)
214
+ * ```
215
+ *
216
+ * ```gleam
217
+ * assert square_root(-16) == Error(Nil)
218
+ * ```
219
+ */
220
+ export function square_root(x) {
221
+ let _pipe = x;
222
+ let _pipe$1 = to_float(_pipe);
223
+ return $float.square_root(_pipe$1);
224
+ }
225
+
226
+ /**
227
+ * Compares two ints, returning an order.
228
+ *
229
+ * ## Examples
230
+ *
231
+ * ```gleam
232
+ * assert compare(2, 3) == Lt
233
+ * ```
234
+ *
235
+ * ```gleam
236
+ * assert compare(4, 3) == Gt
237
+ * ```
238
+ *
239
+ * ```gleam
240
+ * assert compare(3, 3) == Eq
241
+ * ```
242
+ */
243
+ export function compare(a, b) {
244
+ let $ = a === b;
245
+ if ($) {
246
+ return new $order.Eq();
247
+ } else {
248
+ let $1 = a < b;
249
+ if ($1) {
250
+ return new $order.Lt();
251
+ } else {
252
+ return new $order.Gt();
253
+ }
254
+ }
255
+ }
256
+
257
+ /**
258
+ * Compares two ints, returning the smaller of the two.
259
+ *
260
+ * ## Examples
261
+ *
262
+ * ```gleam
263
+ * assert min(2, 3) == 2
264
+ * ```
265
+ */
266
+ export function min(a, b) {
267
+ let $ = a < b;
268
+ if ($) {
269
+ return a;
270
+ } else {
271
+ return b;
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Compares two ints, returning the larger of the two.
277
+ *
278
+ * ## Examples
279
+ *
280
+ * ```gleam
281
+ * assert max(2, 3) == 3
282
+ * ```
283
+ */
284
+ export function max(a, b) {
285
+ let $ = a > b;
286
+ if ($) {
287
+ return a;
288
+ } else {
289
+ return b;
290
+ }
291
+ }
292
+
293
+ /**
294
+ * Restricts an int between two bounds.
295
+ *
296
+ * Note: If the `min` argument is larger than the `max` argument then they
297
+ * will be swapped, so the minimum bound is always lower than the maximum
298
+ * bound.
299
+ *
300
+ * ## Examples
301
+ *
302
+ * ```gleam
303
+ * assert clamp(40, min: 50, max: 60) == 50
304
+ * ```
305
+ *
306
+ * ```gleam
307
+ * assert clamp(40, min: 50, max: 30) == 40
308
+ * ```
309
+ */
310
+ export function clamp(x, min_bound, max_bound) {
311
+ let $ = min_bound >= max_bound;
312
+ if ($) {
313
+ let _pipe = x;
314
+ let _pipe$1 = min(_pipe, min_bound);
315
+ return max(_pipe$1, max_bound);
316
+ } else {
317
+ let _pipe = x;
318
+ let _pipe$1 = min(_pipe, max_bound);
319
+ return max(_pipe$1, min_bound);
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Returns whether the value provided is even.
325
+ *
326
+ * ## Examples
327
+ *
328
+ * ```gleam
329
+ * assert is_even(2)
330
+ * ```
331
+ *
332
+ * ```gleam
333
+ * assert !is_even(3)
334
+ * ```
335
+ */
336
+ export function is_even(x) {
337
+ return (x % 2) === 0;
338
+ }
339
+
340
+ /**
341
+ * Returns whether the value provided is odd.
342
+ *
343
+ * ## Examples
344
+ *
345
+ * ```gleam
346
+ * assert is_odd(3)
347
+ * ```
348
+ *
349
+ * ```gleam
350
+ * assert !is_odd(2)
351
+ * ```
352
+ */
353
+ export function is_odd(x) {
354
+ return (x % 2) !== 0;
355
+ }
356
+
357
+ /**
358
+ * Returns the negative of the value provided.
359
+ *
360
+ * ## Examples
361
+ *
362
+ * ```gleam
363
+ * assert negate(1) == -1
364
+ * ```
365
+ */
366
+ export function negate(x) {
367
+ return -1 * x;
368
+ }
369
+
370
+ function sum_loop(loop$numbers, loop$initial) {
371
+ while (true) {
372
+ let numbers = loop$numbers;
373
+ let initial = loop$initial;
374
+ if (numbers instanceof $Empty) {
375
+ return initial;
376
+ } else {
377
+ let first = numbers.head;
378
+ let rest = numbers.tail;
379
+ loop$numbers = rest;
380
+ loop$initial = first + initial;
381
+ }
382
+ }
383
+ }
384
+
385
+ /**
386
+ * Sums a list of ints.
387
+ *
388
+ * ## Example
389
+ *
390
+ * ```gleam
391
+ * assert sum([1, 2, 3]) == 6
392
+ * ```
393
+ */
394
+ export function sum(numbers) {
395
+ return sum_loop(numbers, 0);
396
+ }
397
+
398
+ function product_loop(loop$numbers, loop$initial) {
399
+ while (true) {
400
+ let numbers = loop$numbers;
401
+ let initial = loop$initial;
402
+ if (numbers instanceof $Empty) {
403
+ return initial;
404
+ } else {
405
+ let first = numbers.head;
406
+ let rest = numbers.tail;
407
+ loop$numbers = rest;
408
+ loop$initial = first * initial;
409
+ }
410
+ }
411
+ }
412
+
413
+ /**
414
+ * Multiplies a list of ints and returns the product.
415
+ *
416
+ * ## Example
417
+ *
418
+ * ```gleam
419
+ * assert product([2, 3, 4]) == 24
420
+ * ```
421
+ */
422
+ export function product(numbers) {
423
+ return product_loop(numbers, 1);
424
+ }
425
+
426
+ /**
427
+ * Generates a random int between zero and the given maximum.
428
+ *
429
+ * The lower number is inclusive, the upper number is exclusive.
430
+ *
431
+ * ## Examples
432
+ *
433
+ * ```gleam
434
+ * random(10)
435
+ * // -> 4
436
+ * ```
437
+ *
438
+ * ```gleam
439
+ * random(1)
440
+ * // -> 0
441
+ * ```
442
+ *
443
+ * ```gleam
444
+ * random(-1)
445
+ * // -> -1
446
+ * ```
447
+ */
448
+ export function random(max) {
449
+ let _pipe = ($float.random() * to_float(max));
450
+ let _pipe$1 = $float.floor(_pipe);
451
+ return $float.round(_pipe$1);
452
+ }
453
+
454
+ /**
455
+ * Performs a truncated integer division.
456
+ *
457
+ * Returns division of the inputs as a `Result`: If the given divisor equals
458
+ * `0`, this function returns an `Error`.
459
+ *
460
+ * ## Examples
461
+ *
462
+ * ```gleam
463
+ * assert divide(0, 1) == Ok(0)
464
+ * ```
465
+ *
466
+ * ```gleam
467
+ * assert divide(1, 0) == Error(Nil)
468
+ * ```
469
+ *
470
+ * ```gleam
471
+ * assert divide(5, 2) == Ok(2)
472
+ * ```
473
+ *
474
+ * ```gleam
475
+ * assert divide(-99, 2) == Ok(-49)
476
+ * ```
477
+ */
478
+ export function divide(dividend, divisor) {
479
+ if (divisor === 0) {
480
+ return new Error(undefined);
481
+ } else {
482
+ let divisor$1 = divisor;
483
+ return new Ok(divideInt(dividend, divisor$1));
484
+ }
485
+ }
486
+
487
+ /**
488
+ * Computes the remainder of an integer division of inputs as a `Result`.
489
+ *
490
+ * Returns division of the inputs as a `Result`: If the given divisor equals
491
+ * `0`, this function returns an `Error`.
492
+ *
493
+ * Most of the time you will want to use the `%` operator instead of this
494
+ * function.
495
+ *
496
+ * ## Examples
497
+ *
498
+ * ```gleam
499
+ * assert remainder(3, 2) == Ok(1)
500
+ * ```
501
+ *
502
+ * ```gleam
503
+ * assert remainder(1, 0) == Error(Nil)
504
+ * ```
505
+ *
506
+ * ```gleam
507
+ * assert remainder(10, -1) == Ok(0)
508
+ * ```
509
+ *
510
+ * ```gleam
511
+ * assert remainder(13, by: 3) == Ok(1)
512
+ * ```
513
+ *
514
+ * ```gleam
515
+ * assert remainder(-13, by: 3) == Ok(-1)
516
+ * ```
517
+ *
518
+ * ```gleam
519
+ * assert remainder(13, by: -3) == Ok(1)
520
+ * ```
521
+ *
522
+ * ```gleam
523
+ * assert remainder(-13, by: -3) == Ok(-1)
524
+ * ```
525
+ */
526
+ export function remainder(dividend, divisor) {
527
+ if (divisor === 0) {
528
+ return new Error(undefined);
529
+ } else {
530
+ let divisor$1 = divisor;
531
+ return new Ok(remainderInt(dividend, divisor$1));
532
+ }
533
+ }
534
+
535
+ /**
536
+ * Computes the modulo of an integer division of inputs as a `Result`.
537
+ *
538
+ * Returns division of the inputs as a `Result`: If the given divisor equals
539
+ * `0`, this function returns an `Error`.
540
+ *
541
+ * Note that this is different from `int.remainder` and `%` in that the
542
+ * computed value will always have the same sign as the `divisor`.
543
+ *
544
+ * ## Examples
545
+ *
546
+ * ```gleam
547
+ * assert modulo(3, 2) == Ok(1)
548
+ * ```
549
+ *
550
+ * ```gleam
551
+ * assert modulo(1, 0) == Error(Nil)
552
+ * ```
553
+ *
554
+ * ```gleam
555
+ * assert modulo(10, -1) == Ok(0)
556
+ * ```
557
+ *
558
+ * ```gleam
559
+ * assert modulo(13, by: 3) == Ok(1)
560
+ * ```
561
+ *
562
+ * ```gleam
563
+ * assert modulo(-13, by: 3) == Ok(2)
564
+ * ```
565
+ *
566
+ * ```gleam
567
+ * assert modulo(13, by: -3) == Ok(-2)
568
+ * ```
569
+ */
570
+ export function modulo(dividend, divisor) {
571
+ if (divisor === 0) {
572
+ return new Error(undefined);
573
+ } else {
574
+ let remainder$1 = remainderInt(dividend, divisor);
575
+ let $ = remainder$1 * divisor < 0;
576
+ if ($) {
577
+ return new Ok(remainder$1 + divisor);
578
+ } else {
579
+ return new Ok(remainder$1);
580
+ }
581
+ }
582
+ }
583
+
584
+ /**
585
+ * Performs a *floored* integer division, which means that the result will
586
+ * always be rounded towards negative infinity.
587
+ *
588
+ * If you want to perform truncated integer division (rounding towards zero),
589
+ * use `int.divide()` or the `/` operator instead.
590
+ *
591
+ * Returns division of the inputs as a `Result`: If the given divisor equals
592
+ * `0`, this function returns an `Error`.
593
+ *
594
+ * ## Examples
595
+ *
596
+ * ```gleam
597
+ * assert floor_divide(1, 0) == Error(Nil)
598
+ * ```
599
+ *
600
+ * ```gleam
601
+ * assert floor_divide(5, 2) == Ok(2)
602
+ * ```
603
+ *
604
+ * ```gleam
605
+ * assert floor_divide(6, -4) == Ok(-2)
606
+ * ```
607
+ *
608
+ * ```gleam
609
+ * assert floor_divide(-99, 2) == Ok(-50)
610
+ * ```
611
+ */
612
+ export function floor_divide(dividend, divisor) {
613
+ if (divisor === 0) {
614
+ return new Error(undefined);
615
+ } else {
616
+ let divisor$1 = divisor;
617
+ let $ = (dividend * divisor$1 < 0) && ((remainderInt(dividend, divisor$1)) !== 0);
618
+ if ($) {
619
+ return new Ok((divideInt(dividend, divisor$1)) - 1);
620
+ } else {
621
+ return new Ok(divideInt(dividend, divisor$1));
622
+ }
623
+ }
624
+ }
625
+
626
+ /**
627
+ * Adds two integers together.
628
+ *
629
+ * It's the function equivalent of the `+` operator.
630
+ * This function is useful in higher order functions or pipes.
631
+ *
632
+ * ## Examples
633
+ *
634
+ * ```gleam
635
+ * assert add(1, 2) == 3
636
+ * ```
637
+ *
638
+ * ```gleam
639
+ * import gleam/list
640
+ * assert list.fold([1, 2, 3], 0, add) == 6
641
+ * ```
642
+ *
643
+ * ```gleam
644
+ * assert 3 |> add(2) == 5
645
+ * ```
646
+ */
647
+ export function add(a, b) {
648
+ return a + b;
649
+ }
650
+
651
+ /**
652
+ * Multiplies two integers together.
653
+ *
654
+ * It's the function equivalent of the `*` operator.
655
+ * This function is useful in higher order functions or pipes.
656
+ *
657
+ * ## Examples
658
+ *
659
+ * ```gleam
660
+ * assert multiply(2, 4) == 8
661
+ * ```
662
+ *
663
+ * ```gleam
664
+ * import gleam/list
665
+ *
666
+ * assert list.fold([2, 3, 4], 1, multiply) == 24
667
+ * ```
668
+ *
669
+ * ```gleam
670
+ * assert 3 |> multiply(2) == 6
671
+ * ```
672
+ */
673
+ export function multiply(a, b) {
674
+ return a * b;
675
+ }
676
+
677
+ /**
678
+ * Subtracts one int from another.
679
+ *
680
+ * It's the function equivalent of the `-` operator.
681
+ * This function is useful in higher order functions or pipes.
682
+ *
683
+ * ## Examples
684
+ *
685
+ * ```gleam
686
+ * assert subtract(3, 1) == 2
687
+ * ```
688
+ *
689
+ * ```gleam
690
+ * import gleam/list
691
+ *
692
+ * assert list.fold([1, 2, 3], 10, subtract) == 4
693
+ * ```
694
+ *
695
+ * ```gleam
696
+ * assert 3 |> subtract(2) == 1
697
+ * ```
698
+ *
699
+ * ```gleam
700
+ * assert 3 |> subtract(2, _) == -1
701
+ * ```
702
+ */
703
+ export function subtract(a, b) {
704
+ return a - b;
705
+ }
706
+
707
+ function range_loop(
708
+ loop$current,
709
+ loop$stop,
710
+ loop$increment,
711
+ loop$acc,
712
+ loop$reducer
713
+ ) {
714
+ while (true) {
715
+ let current = loop$current;
716
+ let stop = loop$stop;
717
+ let increment = loop$increment;
718
+ let acc = loop$acc;
719
+ let reducer = loop$reducer;
720
+ let $ = current === stop;
721
+ if ($) {
722
+ return acc;
723
+ } else {
724
+ let acc$1 = reducer(acc, current);
725
+ let current$1 = current + increment;
726
+ loop$current = current$1;
727
+ loop$stop = stop;
728
+ loop$increment = increment;
729
+ loop$acc = acc$1;
730
+ loop$reducer = reducer;
731
+ }
732
+ }
733
+ }
734
+
735
+ /**
736
+ * Run a function for each int between ints `from` and `to`.
737
+ *
738
+ * `from` is inclusive, and `to` is exclusive.
739
+ *
740
+ * ## Examples
741
+ *
742
+ * ```gleam
743
+ * assert
744
+ * range(from: 0, to: 3, with: "", run: fn(acc, i) {
745
+ * acc <> to_string(i)
746
+ * })
747
+ * == "012"
748
+ * ```
749
+ *
750
+ * ```gleam
751
+ * assert range(from: 1, to: -2, with: [], run: list.prepend) == [-1, 0, 1]
752
+ * ```
753
+ */
754
+ export function range(start, stop, acc, reducer) {
755
+ let _block;
756
+ let $ = start < stop;
757
+ if ($) {
758
+ _block = 1;
759
+ } else {
760
+ _block = -1;
761
+ }
762
+ let increment = _block;
763
+ return range_loop(start, stop, increment, acc, reducer);
764
+ }