skill-universe 1.1.0

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