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,418 @@
1
+ import {
2
+ Ok,
3
+ Error,
4
+ toList,
5
+ Empty as $Empty,
6
+ prepend as listPrepend,
7
+ CustomType as $CustomType,
8
+ } from "../gleam.mjs";
9
+
10
+ export class Some extends $CustomType {
11
+ constructor($0) {
12
+ super();
13
+ this[0] = $0;
14
+ }
15
+ }
16
+ export const Option$Some = ($0) => new Some($0);
17
+ export const Option$isSome = (value) => value instanceof Some;
18
+ export const Option$Some$0 = (value) => value[0];
19
+
20
+ export class None extends $CustomType {}
21
+ export const Option$None = () => new None();
22
+ export const Option$isNone = (value) => value instanceof None;
23
+
24
+ function reverse_and_prepend(loop$prefix, loop$suffix) {
25
+ while (true) {
26
+ let prefix = loop$prefix;
27
+ let suffix = loop$suffix;
28
+ if (prefix instanceof $Empty) {
29
+ return suffix;
30
+ } else {
31
+ let first = prefix.head;
32
+ let rest = prefix.tail;
33
+ loop$prefix = rest;
34
+ loop$suffix = listPrepend(first, suffix);
35
+ }
36
+ }
37
+ }
38
+
39
+ function reverse(list) {
40
+ return reverse_and_prepend(list, toList([]));
41
+ }
42
+
43
+ function all_loop(loop$list, loop$acc) {
44
+ while (true) {
45
+ let list = loop$list;
46
+ let acc = loop$acc;
47
+ if (list instanceof $Empty) {
48
+ return new Some(reverse(acc));
49
+ } else {
50
+ let $ = list.head;
51
+ if ($ instanceof Some) {
52
+ let rest = list.tail;
53
+ let first = $[0];
54
+ loop$list = rest;
55
+ loop$acc = listPrepend(first, acc);
56
+ } else {
57
+ return new None();
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Combines a list of `Option`s into a single `Option`.
65
+ * If all elements in the list are `Some` then returns a `Some` holding the list of values.
66
+ * If any element is `None` then returns `None`.
67
+ *
68
+ * ## Examples
69
+ *
70
+ * ```gleam
71
+ * all([Some(1), Some(2)])
72
+ * // -> Some([1, 2])
73
+ * ```
74
+ *
75
+ * ```gleam
76
+ * all([Some(1), None])
77
+ * // -> None
78
+ * ```
79
+ */
80
+ export function all(list) {
81
+ return all_loop(list, toList([]));
82
+ }
83
+
84
+ /**
85
+ * Checks whether the `Option` is a `Some` value.
86
+ *
87
+ * ## Examples
88
+ *
89
+ * ```gleam
90
+ * is_some(Some(1))
91
+ * // -> True
92
+ * ```
93
+ *
94
+ * ```gleam
95
+ * is_some(None)
96
+ * // -> False
97
+ * ```
98
+ */
99
+ export function is_some(option) {
100
+ return !(option instanceof None);
101
+ }
102
+
103
+ /**
104
+ * Checks whether the `Option` is a `None` value.
105
+ *
106
+ * ## Examples
107
+ *
108
+ * ```gleam
109
+ * is_none(Some(1))
110
+ * // -> False
111
+ * ```
112
+ *
113
+ * ```gleam
114
+ * is_none(None)
115
+ * // -> True
116
+ * ```
117
+ */
118
+ export function is_none(option) {
119
+ return option instanceof None;
120
+ }
121
+
122
+ /**
123
+ * Converts an `Option` type to a `Result` type.
124
+ *
125
+ * ## Examples
126
+ *
127
+ * ```gleam
128
+ * to_result(Some(1), "some_error")
129
+ * // -> Ok(1)
130
+ * ```
131
+ *
132
+ * ```gleam
133
+ * to_result(None, "some_error")
134
+ * // -> Error("some_error")
135
+ * ```
136
+ */
137
+ export function to_result(option, e) {
138
+ if (option instanceof Some) {
139
+ let a = option[0];
140
+ return new Ok(a);
141
+ } else {
142
+ return new Error(e);
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Converts a `Result` type to an `Option` type.
148
+ *
149
+ * ## Examples
150
+ *
151
+ * ```gleam
152
+ * from_result(Ok(1))
153
+ * // -> Some(1)
154
+ * ```
155
+ *
156
+ * ```gleam
157
+ * from_result(Error("some_error"))
158
+ * // -> None
159
+ * ```
160
+ */
161
+ export function from_result(result) {
162
+ if (result instanceof Ok) {
163
+ let a = result[0];
164
+ return new Some(a);
165
+ } else {
166
+ return new None();
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Extracts the value from an `Option`, returning a default value if there is none.
172
+ *
173
+ * ## Examples
174
+ *
175
+ * ```gleam
176
+ * unwrap(Some(1), 0)
177
+ * // -> 1
178
+ * ```
179
+ *
180
+ * ```gleam
181
+ * unwrap(None, 0)
182
+ * // -> 0
183
+ * ```
184
+ */
185
+ export function unwrap(option, default$) {
186
+ if (option instanceof Some) {
187
+ let x = option[0];
188
+ return x;
189
+ } else {
190
+ return default$;
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Extracts the value from an `Option`, evaluating the default function if the option is `None`.
196
+ *
197
+ * ## Examples
198
+ *
199
+ * ```gleam
200
+ * lazy_unwrap(Some(1), fn() { 0 })
201
+ * // -> 1
202
+ * ```
203
+ *
204
+ * ```gleam
205
+ * lazy_unwrap(None, fn() { 0 })
206
+ * // -> 0
207
+ * ```
208
+ */
209
+ export function lazy_unwrap(option, default$) {
210
+ if (option instanceof Some) {
211
+ let x = option[0];
212
+ return x;
213
+ } else {
214
+ return default$();
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Updates a value held within the `Some` of an `Option` by calling a given function
220
+ * on it.
221
+ *
222
+ * If the `Option` is a `None` rather than `Some`, the function is not called and the
223
+ * `Option` stays the same.
224
+ *
225
+ * ## Examples
226
+ *
227
+ * ```gleam
228
+ * map(over: Some(1), with: fn(x) { x + 1 })
229
+ * // -> Some(2)
230
+ * ```
231
+ *
232
+ * ```gleam
233
+ * map(over: None, with: fn(x) { x + 1 })
234
+ * // -> None
235
+ * ```
236
+ */
237
+ export function map(option, fun) {
238
+ if (option instanceof Some) {
239
+ let x = option[0];
240
+ return new Some(fun(x));
241
+ } else {
242
+ return option;
243
+ }
244
+ }
245
+
246
+ /**
247
+ * Merges a nested `Option` into a single layer.
248
+ *
249
+ * ## Examples
250
+ *
251
+ * ```gleam
252
+ * flatten(Some(Some(1)))
253
+ * // -> Some(1)
254
+ * ```
255
+ *
256
+ * ```gleam
257
+ * flatten(Some(None))
258
+ * // -> None
259
+ * ```
260
+ *
261
+ * ```gleam
262
+ * flatten(None)
263
+ * // -> None
264
+ * ```
265
+ */
266
+ export function flatten(option) {
267
+ if (option instanceof Some) {
268
+ let x = option[0];
269
+ return x;
270
+ } else {
271
+ return option;
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Updates a value held within the `Some` of an `Option` by calling a given function
277
+ * on it, where the given function also returns an `Option`. The two options are
278
+ * then merged together into one `Option`.
279
+ *
280
+ * If the `Option` is a `None` rather than `Some` the function is not called and the
281
+ * option stays the same.
282
+ *
283
+ * This function is the equivalent of calling `map` followed by `flatten`, and
284
+ * it is useful for chaining together multiple functions that return `Option`.
285
+ *
286
+ * ## Examples
287
+ *
288
+ * ```gleam
289
+ * then(Some(1), fn(x) { Some(x + 1) })
290
+ * // -> Some(2)
291
+ * ```
292
+ *
293
+ * ```gleam
294
+ * then(Some(1), fn(x) { Some(#("a", x)) })
295
+ * // -> Some(#("a", 1))
296
+ * ```
297
+ *
298
+ * ```gleam
299
+ * then(Some(1), fn(_) { None })
300
+ * // -> None
301
+ * ```
302
+ *
303
+ * ```gleam
304
+ * then(None, fn(x) { Some(x + 1) })
305
+ * // -> None
306
+ * ```
307
+ */
308
+ export function then$(option, fun) {
309
+ if (option instanceof Some) {
310
+ let x = option[0];
311
+ return fun(x);
312
+ } else {
313
+ return option;
314
+ }
315
+ }
316
+
317
+ /**
318
+ * Returns the first value if it is `Some`, otherwise returns the second value.
319
+ *
320
+ * ## Examples
321
+ *
322
+ * ```gleam
323
+ * or(Some(1), Some(2))
324
+ * // -> Some(1)
325
+ * ```
326
+ *
327
+ * ```gleam
328
+ * or(Some(1), None)
329
+ * // -> Some(1)
330
+ * ```
331
+ *
332
+ * ```gleam
333
+ * or(None, Some(2))
334
+ * // -> Some(2)
335
+ * ```
336
+ *
337
+ * ```gleam
338
+ * or(None, None)
339
+ * // -> None
340
+ * ```
341
+ */
342
+ export function or(first, second) {
343
+ if (first instanceof Some) {
344
+ return first;
345
+ } else {
346
+ return second;
347
+ }
348
+ }
349
+
350
+ /**
351
+ * Returns the first value if it is `Some`, otherwise evaluates the given function for a fallback value.
352
+ *
353
+ * ## Examples
354
+ *
355
+ * ```gleam
356
+ * lazy_or(Some(1), fn() { Some(2) })
357
+ * // -> Some(1)
358
+ * ```
359
+ *
360
+ * ```gleam
361
+ * lazy_or(Some(1), fn() { None })
362
+ * // -> Some(1)
363
+ * ```
364
+ *
365
+ * ```gleam
366
+ * lazy_or(None, fn() { Some(2) })
367
+ * // -> Some(2)
368
+ * ```
369
+ *
370
+ * ```gleam
371
+ * lazy_or(None, fn() { None })
372
+ * // -> None
373
+ * ```
374
+ */
375
+ export function lazy_or(first, second) {
376
+ if (first instanceof Some) {
377
+ return first;
378
+ } else {
379
+ return second();
380
+ }
381
+ }
382
+
383
+ function values_loop(loop$list, loop$acc) {
384
+ while (true) {
385
+ let list = loop$list;
386
+ let acc = loop$acc;
387
+ if (list instanceof $Empty) {
388
+ return reverse(acc);
389
+ } else {
390
+ let $ = list.head;
391
+ if ($ instanceof Some) {
392
+ let rest = list.tail;
393
+ let first = $[0];
394
+ loop$list = rest;
395
+ loop$acc = listPrepend(first, acc);
396
+ } else {
397
+ let rest = list.tail;
398
+ loop$list = rest;
399
+ loop$acc = acc;
400
+ }
401
+ }
402
+ }
403
+ }
404
+
405
+ /**
406
+ * Given a list of `Option`s,
407
+ * returns only the values inside `Some`.
408
+ *
409
+ * ## Examples
410
+ *
411
+ * ```gleam
412
+ * values([Some(1), None, Some(3)])
413
+ * // -> [1, 3]
414
+ * ```
415
+ */
416
+ export function values(options) {
417
+ return values_loop(options, toList([]));
418
+ }
@@ -0,0 +1,178 @@
1
+ import { CustomType as $CustomType, isEqual } from "../gleam.mjs";
2
+
3
+ export class Lt extends $CustomType {}
4
+ export const Order$Lt = () => new Lt();
5
+ export const Order$isLt = (value) => value instanceof Lt;
6
+
7
+ export class Eq extends $CustomType {}
8
+ export const Order$Eq = () => new Eq();
9
+ export const Order$isEq = (value) => value instanceof Eq;
10
+
11
+ export class Gt extends $CustomType {}
12
+ export const Order$Gt = () => new Gt();
13
+ export const Order$isGt = (value) => value instanceof Gt;
14
+
15
+ /**
16
+ * Inverts an order, so less-than becomes greater-than and greater-than
17
+ * becomes less-than.
18
+ *
19
+ * ## Examples
20
+ *
21
+ * ```gleam
22
+ * negate(Lt)
23
+ * // -> Gt
24
+ * ```
25
+ *
26
+ * ```gleam
27
+ * negate(Eq)
28
+ * // -> Eq
29
+ * ```
30
+ *
31
+ * ```gleam
32
+ * negate(Gt)
33
+ * // -> Lt
34
+ * ```
35
+ */
36
+ export function negate(order) {
37
+ if (order instanceof Lt) {
38
+ return new Gt();
39
+ } else if (order instanceof Eq) {
40
+ return order;
41
+ } else {
42
+ return new Lt();
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Produces a numeric representation of the order.
48
+ *
49
+ * ## Examples
50
+ *
51
+ * ```gleam
52
+ * to_int(Lt)
53
+ * // -> -1
54
+ * ```
55
+ *
56
+ * ```gleam
57
+ * to_int(Eq)
58
+ * // -> 0
59
+ * ```
60
+ *
61
+ * ```gleam
62
+ * to_int(Gt)
63
+ * // -> 1
64
+ * ```
65
+ */
66
+ export function to_int(order) {
67
+ if (order instanceof Lt) {
68
+ return -1;
69
+ } else if (order instanceof Eq) {
70
+ return 0;
71
+ } else {
72
+ return 1;
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Compares two `Order` values to one another, producing a new `Order`.
78
+ *
79
+ * ## Examples
80
+ *
81
+ * ```gleam
82
+ * compare(Eq, with: Lt)
83
+ * // -> Gt
84
+ * ```
85
+ */
86
+ export function compare(a, b) {
87
+ let x = a;
88
+ let y = b;
89
+ if (isEqual(x, y)) {
90
+ return new Eq();
91
+ } else if (a instanceof Lt) {
92
+ return new Lt();
93
+ } else if (a instanceof Eq && b instanceof Gt) {
94
+ return new Lt();
95
+ } else {
96
+ return new Gt();
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Inverts an ordering function, so less-than becomes greater-than and greater-than
102
+ * becomes less-than.
103
+ *
104
+ * ## Examples
105
+ *
106
+ * ```gleam
107
+ * import gleam/int
108
+ * import gleam/list
109
+ *
110
+ * list.sort([1, 5, 4], by: reverse(int.compare))
111
+ * // -> [5, 4, 1]
112
+ * ```
113
+ */
114
+ export function reverse(orderer) {
115
+ return (a, b) => { return orderer(b, a); };
116
+ }
117
+
118
+ /**
119
+ * Return a fallback `Order` in case the first argument is `Eq`.
120
+ *
121
+ * ## Examples
122
+ *
123
+ * ```gleam
124
+ * import gleam/int
125
+ *
126
+ * break_tie(in: int.compare(1, 1), with: Lt)
127
+ * // -> Lt
128
+ * ```
129
+ *
130
+ * ```gleam
131
+ * import gleam/int
132
+ *
133
+ * break_tie(in: int.compare(1, 0), with: Eq)
134
+ * // -> Gt
135
+ * ```
136
+ */
137
+ export function break_tie(order, other) {
138
+ if (order instanceof Lt) {
139
+ return order;
140
+ } else if (order instanceof Eq) {
141
+ return other;
142
+ } else {
143
+ return order;
144
+ }
145
+ }
146
+
147
+ /**
148
+ * Invokes a fallback function returning an `Order` in case the first argument
149
+ * is `Eq`.
150
+ *
151
+ * This can be useful when the fallback comparison might be expensive and it
152
+ * needs to be delayed until strictly necessary.
153
+ *
154
+ * ## Examples
155
+ *
156
+ * ```gleam
157
+ * import gleam/int
158
+ *
159
+ * lazy_break_tie(in: int.compare(1, 1), with: fn() { Lt })
160
+ * // -> Lt
161
+ * ```
162
+ *
163
+ * ```gleam
164
+ * import gleam/int
165
+ *
166
+ * lazy_break_tie(in: int.compare(1, 0), with: fn() { Eq })
167
+ * // -> Gt
168
+ * ```
169
+ */
170
+ export function lazy_break_tie(order, comparison) {
171
+ if (order instanceof Lt) {
172
+ return order;
173
+ } else if (order instanceof Eq) {
174
+ return comparison();
175
+ } else {
176
+ return order;
177
+ }
178
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Returns the first element in a pair.
3
+ *
4
+ * ## Examples
5
+ *
6
+ * ```gleam
7
+ * first(#(1, 2))
8
+ * // -> 1
9
+ * ```
10
+ */
11
+ export function first(pair) {
12
+ let a;
13
+ a = pair[0];
14
+ return a;
15
+ }
16
+
17
+ /**
18
+ * Returns the second element in a pair.
19
+ *
20
+ * ## Examples
21
+ *
22
+ * ```gleam
23
+ * second(#(1, 2))
24
+ * // -> 2
25
+ * ```
26
+ */
27
+ export function second(pair) {
28
+ let a;
29
+ a = pair[1];
30
+ return a;
31
+ }
32
+
33
+ /**
34
+ * Returns a new pair with the elements swapped.
35
+ *
36
+ * ## Examples
37
+ *
38
+ * ```gleam
39
+ * swap(#(1, 2))
40
+ * // -> #(2, 1)
41
+ * ```
42
+ */
43
+ export function swap(pair) {
44
+ let a;
45
+ let b;
46
+ a = pair[0];
47
+ b = pair[1];
48
+ return [b, a];
49
+ }
50
+
51
+ /**
52
+ * Returns a new pair with the first element having had `with` applied to
53
+ * it.
54
+ *
55
+ * ## Examples
56
+ *
57
+ * ```gleam
58
+ * #(1, 2) |> map_first(fn(n) { n * 2 })
59
+ * // -> #(2, 2)
60
+ * ```
61
+ */
62
+ export function map_first(pair, fun) {
63
+ let a;
64
+ let b;
65
+ a = pair[0];
66
+ b = pair[1];
67
+ return [fun(a), b];
68
+ }
69
+
70
+ /**
71
+ * Returns a new pair with the second element having had `with` applied to
72
+ * it.
73
+ *
74
+ * ## Examples
75
+ *
76
+ * ```gleam
77
+ * #(1, 2) |> map_second(fn(n) { n * 2 })
78
+ * // -> #(1, 4)
79
+ * ```
80
+ */
81
+ export function map_second(pair, fun) {
82
+ let a;
83
+ let b;
84
+ a = pair[0];
85
+ b = pair[1];
86
+ return [a, fun(b)];
87
+ }
88
+
89
+ /**
90
+ * Returns a new pair with the given elements. This can also be done using the dedicated
91
+ * syntax instead: `new(1, 2) == #(1, 2)`.
92
+ *
93
+ * ## Examples
94
+ *
95
+ * ```gleam
96
+ * new(1, 2)
97
+ * // -> #(1, 2)
98
+ * ```
99
+ */
100
+ export function new$(first, second) {
101
+ return [first, second];
102
+ }