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,225 @@
1
+ import {
2
+ toList,
3
+ Empty as $Empty,
4
+ prepend as listPrepend,
5
+ CustomType as $CustomType,
6
+ } from "../gleam.mjs";
7
+ import * as $bit_array from "../gleam/bit_array.mjs";
8
+ import * as $list from "../gleam/list.mjs";
9
+ import * as $string_tree from "../gleam/string_tree.mjs";
10
+
11
+ class Bytes extends $CustomType {
12
+ constructor($0) {
13
+ super();
14
+ this[0] = $0;
15
+ }
16
+ }
17
+
18
+ class Text extends $CustomType {
19
+ constructor($0) {
20
+ super();
21
+ this[0] = $0;
22
+ }
23
+ }
24
+
25
+ class Many extends $CustomType {
26
+ constructor($0) {
27
+ super();
28
+ this[0] = $0;
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Appends a bytes tree onto the end of another.
34
+ *
35
+ * Runs in constant time.
36
+ */
37
+ export function append_tree(first, second) {
38
+ if (second instanceof Bytes) {
39
+ return new Many(toList([first, second]));
40
+ } else if (second instanceof Text) {
41
+ return new Many(toList([first, second]));
42
+ } else {
43
+ let trees = second[0];
44
+ return new Many(listPrepend(first, trees));
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Prepends a bytes tree onto the start of another.
50
+ *
51
+ * Runs in constant time.
52
+ */
53
+ export function prepend_tree(second, first) {
54
+ return append_tree(first, second);
55
+ }
56
+
57
+ /**
58
+ * Joins a list of bytes trees into a single one.
59
+ *
60
+ * Runs in constant time.
61
+ */
62
+ export function concat(trees) {
63
+ return new Many(trees);
64
+ }
65
+
66
+ /**
67
+ * Create an empty `BytesTree`. Useful as the start of a pipe chaining many
68
+ * trees together.
69
+ */
70
+ export function new$() {
71
+ return concat(toList([]));
72
+ }
73
+
74
+ /**
75
+ * Creates a new bytes tree from a string.
76
+ *
77
+ * Runs in constant time when running on Erlang.
78
+ * Runs in linear time otherwise.
79
+ */
80
+ export function from_string(string) {
81
+ return new Text($string_tree.from_string(string));
82
+ }
83
+
84
+ /**
85
+ * Prepends a string onto the start of a bytes tree.
86
+ *
87
+ * Runs in constant time when running on Erlang.
88
+ * Runs in linear time with the length of the string otherwise.
89
+ */
90
+ export function prepend_string(second, first) {
91
+ return append_tree(from_string(first), second);
92
+ }
93
+
94
+ /**
95
+ * Appends a string onto the end of a bytes tree.
96
+ *
97
+ * Runs in constant time when running on Erlang.
98
+ * Runs in linear time with the length of the string otherwise.
99
+ */
100
+ export function append_string(first, second) {
101
+ return append_tree(first, from_string(second));
102
+ }
103
+
104
+ /**
105
+ * Creates a new bytes tree from a string tree.
106
+ *
107
+ * Runs in constant time when running on Erlang.
108
+ * Runs in linear time otherwise.
109
+ */
110
+ export function from_string_tree(tree) {
111
+ return new Text(tree);
112
+ }
113
+
114
+ function wrap_list(bits) {
115
+ return new Bytes(bits);
116
+ }
117
+
118
+ /**
119
+ * Creates a new bytes tree from a bit array.
120
+ *
121
+ * Runs in constant time.
122
+ */
123
+ export function from_bit_array(bits) {
124
+ let _pipe = bits;
125
+ let _pipe$1 = $bit_array.pad_to_bytes(_pipe);
126
+ return wrap_list(_pipe$1);
127
+ }
128
+
129
+ /**
130
+ * Prepends a bit array to the start of a bytes tree.
131
+ *
132
+ * Runs in constant time.
133
+ */
134
+ export function prepend(second, first) {
135
+ return append_tree(from_bit_array(first), second);
136
+ }
137
+
138
+ /**
139
+ * Appends a bit array to the end of a bytes tree.
140
+ *
141
+ * Runs in constant time.
142
+ */
143
+ export function append(first, second) {
144
+ return append_tree(first, from_bit_array(second));
145
+ }
146
+
147
+ /**
148
+ * Joins a list of bit arrays into a single bytes tree.
149
+ *
150
+ * Runs in constant time.
151
+ */
152
+ export function concat_bit_arrays(bits) {
153
+ let _pipe = bits;
154
+ let _pipe$1 = $list.map(_pipe, from_bit_array);
155
+ return concat(_pipe$1);
156
+ }
157
+
158
+ function to_list(loop$stack, loop$acc) {
159
+ while (true) {
160
+ let stack = loop$stack;
161
+ let acc = loop$acc;
162
+ if (stack instanceof $Empty) {
163
+ return acc;
164
+ } else {
165
+ let $ = stack.head;
166
+ if ($ instanceof $Empty) {
167
+ let remaining_stack = stack.tail;
168
+ loop$stack = remaining_stack;
169
+ loop$acc = acc;
170
+ } else {
171
+ let $1 = $.head;
172
+ if ($1 instanceof Bytes) {
173
+ let remaining_stack = stack.tail;
174
+ let rest = $.tail;
175
+ let bits = $1[0];
176
+ loop$stack = listPrepend(rest, remaining_stack);
177
+ loop$acc = listPrepend(bits, acc);
178
+ } else if ($1 instanceof Text) {
179
+ let remaining_stack = stack.tail;
180
+ let rest = $.tail;
181
+ let tree = $1[0];
182
+ let bits = $bit_array.from_string($string_tree.to_string(tree));
183
+ loop$stack = listPrepend(rest, remaining_stack);
184
+ loop$acc = listPrepend(bits, acc);
185
+ } else {
186
+ let remaining_stack = stack.tail;
187
+ let rest = $.tail;
188
+ let trees = $1[0];
189
+ loop$stack = listPrepend(trees, listPrepend(rest, remaining_stack));
190
+ loop$acc = acc;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Turns a bytes tree into a bit array.
199
+ *
200
+ * Runs in linear time.
201
+ *
202
+ * When running on Erlang this function is implemented natively by the
203
+ * virtual machine and is highly optimised.
204
+ */
205
+ export function to_bit_array(tree) {
206
+ let _pipe = toList([toList([tree])]);
207
+ let _pipe$1 = to_list(_pipe, toList([]));
208
+ let _pipe$2 = $list.reverse(_pipe$1);
209
+ return $bit_array.concat(_pipe$2);
210
+ }
211
+
212
+ /**
213
+ * Returns the size of the bytes tree's content in bytes.
214
+ *
215
+ * Runs in linear time.
216
+ */
217
+ export function byte_size(tree) {
218
+ let _pipe = toList([toList([tree])]);
219
+ let _pipe$1 = to_list(_pipe, toList([]));
220
+ return $list.fold(
221
+ _pipe$1,
222
+ 0,
223
+ (acc, bits) => { return $bit_array.byte_size(bits) + acc; },
224
+ );
225
+ }
@@ -0,0 +1,456 @@
1
+ import {
2
+ toTransient as to_transient,
3
+ fromTransient as from_transient,
4
+ size,
5
+ has as has_key,
6
+ make as new$,
7
+ get,
8
+ insert,
9
+ destructiveTransientInsert as transient_insert,
10
+ map as map_values,
11
+ destructiveTransientDelete as transient_delete,
12
+ fold,
13
+ destructiveTransientUpdateWith as transient_update_with,
14
+ } from "../dict.mjs";
15
+ import { Ok, toList, Empty as $Empty, prepend as listPrepend } from "../gleam.mjs";
16
+ import * as $option from "../gleam/option.mjs";
17
+
18
+ export { fold, get, has_key, insert, map_values, new$, size };
19
+
20
+ /**
21
+ * Determines whether or not the dict is empty.
22
+ *
23
+ * ## Examples
24
+ *
25
+ * ```gleam
26
+ * new() |> is_empty
27
+ * // -> True
28
+ * ```
29
+ *
30
+ * ```gleam
31
+ * new() |> insert("b", 1) |> is_empty
32
+ * // -> False
33
+ * ```
34
+ */
35
+ export function is_empty(dict) {
36
+ return size(dict) === 0;
37
+ }
38
+
39
+ function from_list_loop(loop$transient, loop$list) {
40
+ while (true) {
41
+ let transient = loop$transient;
42
+ let list = loop$list;
43
+ if (list instanceof $Empty) {
44
+ return from_transient(transient);
45
+ } else {
46
+ let rest = list.tail;
47
+ let key = list.head[0];
48
+ let value = list.head[1];
49
+ loop$transient = transient_insert(key, value, transient);
50
+ loop$list = rest;
51
+ }
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Converts a list of 2-element tuples `#(key, value)` to a dict.
57
+ *
58
+ * If two tuples have the same key the last one in the list will be the one
59
+ * that is present in the dict.
60
+ */
61
+ export function from_list(list) {
62
+ return from_list_loop(to_transient(new$()), list);
63
+ }
64
+
65
+ function do_take_loop(loop$dict, loop$desired_keys, loop$acc) {
66
+ while (true) {
67
+ let dict = loop$dict;
68
+ let desired_keys = loop$desired_keys;
69
+ let acc = loop$acc;
70
+ if (desired_keys instanceof $Empty) {
71
+ return from_transient(acc);
72
+ } else {
73
+ let key = desired_keys.head;
74
+ let rest = desired_keys.tail;
75
+ let $ = get(dict, key);
76
+ if ($ instanceof Ok) {
77
+ let value = $[0];
78
+ loop$dict = dict;
79
+ loop$desired_keys = rest;
80
+ loop$acc = transient_insert(key, value, acc);
81
+ } else {
82
+ loop$dict = dict;
83
+ loop$desired_keys = rest;
84
+ loop$acc = acc;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ function do_take(desired_keys, dict) {
91
+ return do_take_loop(dict, desired_keys, to_transient(new$()));
92
+ }
93
+
94
+ /**
95
+ * Creates a new dict from a given dict, only including any entries for which the
96
+ * keys are in a given list.
97
+ *
98
+ * ## Examples
99
+ *
100
+ * ```gleam
101
+ * from_list([#("a", 0), #("b", 1)])
102
+ * |> take(["b"])
103
+ * // -> from_list([#("b", 1)])
104
+ * ```
105
+ *
106
+ * ```gleam
107
+ * from_list([#("a", 0), #("b", 1)])
108
+ * |> take(["a", "b", "c"])
109
+ * // -> from_list([#("a", 0), #("b", 1)])
110
+ * ```
111
+ */
112
+ export function take(dict, desired_keys) {
113
+ return do_take(desired_keys, dict);
114
+ }
115
+
116
+ /**
117
+ * Creates a new dict from a given dict with all the same entries except for the
118
+ * one with a given key, if it exists.
119
+ *
120
+ * ## Examples
121
+ *
122
+ * ```gleam
123
+ * from_list([#("a", 0), #("b", 1)]) |> delete("a")
124
+ * // -> from_list([#("b", 1)])
125
+ * ```
126
+ *
127
+ * ```gleam
128
+ * from_list([#("a", 0), #("b", 1)]) |> delete("c")
129
+ * // -> from_list([#("a", 0), #("b", 1)])
130
+ * ```
131
+ */
132
+ export function delete$(dict, key) {
133
+ let _pipe = to_transient(dict);
134
+ let _pipe$1 = ((_capture) => { return transient_delete(key, _capture); })(
135
+ _pipe,
136
+ );
137
+ return from_transient(_pipe$1);
138
+ }
139
+
140
+ function drop_loop(loop$transient, loop$disallowed_keys) {
141
+ while (true) {
142
+ let transient = loop$transient;
143
+ let disallowed_keys = loop$disallowed_keys;
144
+ if (disallowed_keys instanceof $Empty) {
145
+ return from_transient(transient);
146
+ } else {
147
+ let key = disallowed_keys.head;
148
+ let rest = disallowed_keys.tail;
149
+ loop$transient = transient_delete(key, transient);
150
+ loop$disallowed_keys = rest;
151
+ }
152
+ }
153
+ }
154
+
155
+ function do_drop(disallowed_keys, dict) {
156
+ return drop_loop(to_transient(dict), disallowed_keys);
157
+ }
158
+
159
+ /**
160
+ * Creates a new dict from a given dict with all the same entries except any with
161
+ * keys found in a given list.
162
+ *
163
+ * ## Examples
164
+ *
165
+ * ```gleam
166
+ * from_list([#("a", 0), #("b", 1)]) |> drop(["a"])
167
+ * // -> from_list([#("b", 1)])
168
+ * ```
169
+ *
170
+ * ```gleam
171
+ * from_list([#("a", 0), #("b", 1)]) |> drop(["c"])
172
+ * // -> from_list([#("a", 0), #("b", 1)])
173
+ * ```
174
+ *
175
+ * ```gleam
176
+ * from_list([#("a", 0), #("b", 1)]) |> drop(["a", "b", "c"])
177
+ * // -> from_list([])
178
+ * ```
179
+ */
180
+ export function drop(dict, disallowed_keys) {
181
+ return do_drop(disallowed_keys, dict);
182
+ }
183
+
184
+ /**
185
+ * Creates a new dict with one entry inserted or updated using a given function.
186
+ *
187
+ * If there was not an entry in the dict for the given key then the function
188
+ * gets `None` as its argument, otherwise it gets `Some(value)`.
189
+ *
190
+ * ## Examples
191
+ *
192
+ * ```gleam
193
+ * let dict = from_list([#("a", 0)])
194
+ * let increment = fn(x) {
195
+ * case x {
196
+ * Some(i) -> i + 1
197
+ * None -> 0
198
+ * }
199
+ * }
200
+ *
201
+ * upsert(dict, "a", increment)
202
+ * // -> from_list([#("a", 1)])
203
+ *
204
+ * upsert(dict, "b", increment)
205
+ * // -> from_list([#("a", 0), #("b", 0)])
206
+ * ```
207
+ */
208
+ export function upsert(dict, key, fun) {
209
+ let $ = get(dict, key);
210
+ if ($ instanceof Ok) {
211
+ let value = $[0];
212
+ return insert(dict, key, fun(new $option.Some(value)));
213
+ } else {
214
+ return insert(dict, key, fun(new $option.None()));
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Converts the dict to a list of 2-element tuples `#(key, value)`, one for
220
+ * each key-value pair in the dict.
221
+ *
222
+ * The tuples in the list have no specific order.
223
+ *
224
+ * ## Examples
225
+ *
226
+ * Calling `to_list` on an empty `dict` returns an empty list.
227
+ *
228
+ * ```gleam
229
+ * new() |> to_list
230
+ * // -> []
231
+ * ```
232
+ *
233
+ * The ordering of elements in the resulting list is an implementation detail
234
+ * that should not be relied upon.
235
+ *
236
+ * ```gleam
237
+ * new() |> insert("b", 1) |> insert("a", 0) |> insert("c", 2) |> to_list
238
+ * // -> [#("a", 0), #("b", 1), #("c", 2)]
239
+ * ```
240
+ */
241
+ export function to_list(dict) {
242
+ return fold(
243
+ dict,
244
+ toList([]),
245
+ (acc, key, value) => { return listPrepend([key, value], acc); },
246
+ );
247
+ }
248
+
249
+ /**
250
+ * Gets a list of all keys in a given dict.
251
+ *
252
+ * Dicts are not ordered so the keys are not returned in any specific order. Do
253
+ * not write code that relies on the order keys are returned by this function
254
+ * as it may change in later versions of Gleam or Erlang.
255
+ *
256
+ * ## Examples
257
+ *
258
+ * ```gleam
259
+ * from_list([#("a", 0), #("b", 1)]) |> keys
260
+ * // -> ["a", "b"]
261
+ * ```
262
+ */
263
+ export function keys(dict) {
264
+ return fold(
265
+ dict,
266
+ toList([]),
267
+ (acc, key, _) => { return listPrepend(key, acc); },
268
+ );
269
+ }
270
+
271
+ /**
272
+ * Gets a list of all values in a given dict.
273
+ *
274
+ * Dicts are not ordered so the values are not returned in any specific order. Do
275
+ * not write code that relies on the order values are returned by this function
276
+ * as it may change in later versions of Gleam or Erlang.
277
+ *
278
+ * ## Examples
279
+ *
280
+ * ```gleam
281
+ * from_list([#("a", 0), #("b", 1)]) |> values
282
+ * // -> [0, 1]
283
+ * ```
284
+ */
285
+ export function values(dict) {
286
+ return fold(
287
+ dict,
288
+ toList([]),
289
+ (acc, _, value) => { return listPrepend(value, acc); },
290
+ );
291
+ }
292
+
293
+ function do_filter(f, dict) {
294
+ let _pipe = to_transient(new$());
295
+ let _pipe$1 = fold(
296
+ dict,
297
+ _pipe,
298
+ (transient, key, value) => {
299
+ let $ = f(key, value);
300
+ if ($) {
301
+ return transient_insert(key, value, transient);
302
+ } else {
303
+ return transient;
304
+ }
305
+ },
306
+ );
307
+ return from_transient(_pipe$1);
308
+ }
309
+
310
+ /**
311
+ * Creates a new dict from a given dict, minus any entries that a given function
312
+ * returns `False` for.
313
+ *
314
+ * ## Examples
315
+ *
316
+ * ```gleam
317
+ * from_list([#("a", 0), #("b", 1)])
318
+ * |> filter(fn(key, value) { value != 0 })
319
+ * // -> from_list([#("b", 1)])
320
+ * ```
321
+ *
322
+ * ```gleam
323
+ * from_list([#("a", 0), #("b", 1)])
324
+ * |> filter(fn(key, value) { True })
325
+ * // -> from_list([#("a", 0), #("b", 1)])
326
+ * ```
327
+ */
328
+ export function filter(dict, predicate) {
329
+ return do_filter(predicate, dict);
330
+ }
331
+
332
+ /**
333
+ * Calls a function for each key and value in a dict, discarding the return
334
+ * value.
335
+ *
336
+ * Useful for producing a side effect for every item of a dict.
337
+ *
338
+ * ```gleam
339
+ * import gleam/io
340
+ *
341
+ * let dict = from_list([#("a", "apple"), #("b", "banana"), #("c", "cherry")])
342
+ *
343
+ * each(dict, fn(k, v) {
344
+ * io.println(key <> " => " <> value)
345
+ * })
346
+ * // -> Nil
347
+ * // a => apple
348
+ * // b => banana
349
+ * // c => cherry
350
+ * ```
351
+ *
352
+ * The order of elements in the iteration is an implementation detail that
353
+ * should not be relied upon.
354
+ */
355
+ export function each(dict, fun) {
356
+ return fold(
357
+ dict,
358
+ undefined,
359
+ (nil, k, v) => {
360
+ fun(k, v);
361
+ return nil;
362
+ },
363
+ );
364
+ }
365
+
366
+ function do_combine(combine, left, right) {
367
+ let _block;
368
+ let $1 = size(left) >= size(right);
369
+ if ($1) {
370
+ _block = [left, right, combine];
371
+ } else {
372
+ _block = [right, left, (k, l, r) => { return combine(k, r, l); }];
373
+ }
374
+ let $ = _block;
375
+ let big;
376
+ let small;
377
+ let combine$1;
378
+ big = $[0];
379
+ small = $[1];
380
+ combine$1 = $[2];
381
+ let _pipe = to_transient(big);
382
+ let _pipe$1 = fold(
383
+ small,
384
+ _pipe,
385
+ (transient, key, value) => {
386
+ let update = (existing) => { return combine$1(key, existing, value); };
387
+ return transient_update_with(key, update, value, transient);
388
+ },
389
+ );
390
+ return from_transient(_pipe$1);
391
+ }
392
+
393
+ /**
394
+ * Creates a new dict from a pair of given dicts by combining their entries.
395
+ *
396
+ * If there are entries with the same keys in both dicts the given function is
397
+ * used to determine the new value to use in the resulting dict.
398
+ *
399
+ * ## Examples
400
+ *
401
+ * ```gleam
402
+ * let a = from_list([#("a", 0), #("b", 1)])
403
+ * let b = from_list([#("a", 2), #("c", 3)])
404
+ * combine(a, b, fn(one, other) { one + other })
405
+ * // -> from_list([#("a", 2), #("b", 1), #("c", 3)])
406
+ * ```
407
+ */
408
+ export function combine(dict, other, fun) {
409
+ return do_combine((_, l, r) => { return fun(l, r); }, dict, other);
410
+ }
411
+
412
+ /**
413
+ * Creates a new dict from a pair of given dicts by combining their entries.
414
+ *
415
+ * If there are entries with the same keys in both dicts the entry from the
416
+ * second dict takes precedence.
417
+ *
418
+ * ## Examples
419
+ *
420
+ * ```gleam
421
+ * let a = from_list([#("a", 0), #("b", 1)])
422
+ * let b = from_list([#("b", 2), #("c", 3)])
423
+ * merge(a, b)
424
+ * // -> from_list([#("a", 0), #("b", 2), #("c", 3)])
425
+ * ```
426
+ */
427
+ export function merge(dict, new_entries) {
428
+ return combine(dict, new_entries, (_, new_entry) => { return new_entry; });
429
+ }
430
+
431
+ function group_loop(loop$transient, loop$to_key, loop$list) {
432
+ while (true) {
433
+ let transient = loop$transient;
434
+ let to_key = loop$to_key;
435
+ let list = loop$list;
436
+ if (list instanceof $Empty) {
437
+ return from_transient(transient);
438
+ } else {
439
+ let value = list.head;
440
+ let rest = list.tail;
441
+ let key = to_key(value);
442
+ let update = (existing) => { return listPrepend(value, existing); };
443
+ let _pipe = transient;
444
+ let _pipe$1 = ((_capture) => {
445
+ return transient_update_with(key, update, toList([value]), _capture);
446
+ })(_pipe);
447
+ loop$transient = _pipe$1;
448
+ loop$to_key = to_key;
449
+ loop$list = rest;
450
+ }
451
+ }
452
+ }
453
+
454
+ export function group(key, list) {
455
+ return group_loop(to_transient(new$()), key, list);
456
+ }