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,529 @@
1
+ -module(gleam_stdlib).
2
+
3
+ -export([
4
+ map_get/2, iodata_append/2, identity/1, parse_int/1, parse_float/1,
5
+ less_than/2, string_pop_grapheme/1, string_pop_codeunit/1,
6
+ string_starts_with/2, wrap_list/1, string_ends_with/2, string_pad/4,
7
+ uri_parse/1, bit_array_slice/3, percent_encode/1, percent_decode/1,
8
+ base64_decode/1, parse_query/1, bit_array_concat/1,
9
+ base64_encode/2, tuple_get/2, classify_dynamic/1, print/1,
10
+ println/1, print_error/1, println_error/1, inspect/1, float_to_string/1,
11
+ int_from_base_string/2, utf_codepoint_list_to_string/1, contains_string/2,
12
+ crop_string/2, base16_encode/1, base16_decode/1, string_replace/3, slice/3,
13
+ bit_array_to_int_and_size/1, bit_array_pad_to_bytes/1, index/2, list/5,
14
+ dict/1, int/1, float/1, bit_array/1, is_null/1
15
+ ]).
16
+
17
+ %% Taken from OTP's uri_string module
18
+ -define(DEC2HEX(X),
19
+ if ((X) >= 0) andalso ((X) =< 9) -> (X) + $0;
20
+ ((X) >= 10) andalso ((X) =< 15) -> (X) + $A - 10
21
+ end).
22
+
23
+ %% Taken from OTP's uri_string module
24
+ -define(HEX2DEC(X),
25
+ if ((X) >= $0) andalso ((X) =< $9) -> (X) - $0;
26
+ ((X) >= $A) andalso ((X) =< $F) -> (X) - $A + 10;
27
+ ((X) >= $a) andalso ((X) =< $f) -> (X) - $a + 10
28
+ end).
29
+
30
+ -define(is_lowercase_char(X),
31
+ (X > 96 andalso X < 123)).
32
+ -define(is_underscore_char(X),
33
+ (X == 95)).
34
+ -define(is_digit_char(X),
35
+ (X > 47 andalso X < 58)).
36
+ -define(is_ascii_character(X),
37
+ (erlang:is_integer(X) andalso X >= 32 andalso X =< 126)).
38
+
39
+ uppercase(X) -> X - 32.
40
+
41
+ map_get(Map, Key) ->
42
+ case maps:find(Key, Map) of
43
+ error -> {error, nil};
44
+ OkFound -> OkFound
45
+ end.
46
+
47
+ iodata_append(Iodata, String) -> [Iodata, String].
48
+
49
+ identity(X) -> X.
50
+
51
+ classify_dynamic(nil) -> <<"Nil">>;
52
+ classify_dynamic(null) -> <<"Nil">>;
53
+ classify_dynamic(undefined) -> <<"Nil">>;
54
+ classify_dynamic(X) when is_boolean(X) -> <<"Bool">>;
55
+ classify_dynamic(X) when is_atom(X) -> <<"Atom">>;
56
+ classify_dynamic(X) when is_binary(X) -> <<"String">>;
57
+ classify_dynamic(X) when is_bitstring(X) -> <<"BitArray">>;
58
+ classify_dynamic(X) when is_integer(X) -> <<"Int">>;
59
+ classify_dynamic(X) when is_float(X) -> <<"Float">>;
60
+ classify_dynamic(X) when is_list(X) -> <<"List">>;
61
+ classify_dynamic(X) when is_map(X) -> <<"Dict">>;
62
+ classify_dynamic(X) when is_tuple(X) -> <<"Array">>;
63
+ classify_dynamic(X) when is_reference(X) -> <<"Reference">>;
64
+ classify_dynamic(X) when is_pid(X) -> <<"Pid">>;
65
+ classify_dynamic(X) when is_port(X) -> <<"Port">>;
66
+ classify_dynamic(X) when is_function(X) -> <<"Function">>;
67
+ classify_dynamic(_) -> <<"Unknown">>.
68
+
69
+ tuple_get(_tup, Index) when Index < 0 -> {error, nil};
70
+ tuple_get(Data, Index) when Index >= tuple_size(Data) -> {error, nil};
71
+ tuple_get(Data, Index) -> {ok, element(Index + 1, Data)}.
72
+
73
+ int_from_base_string(String, Base) ->
74
+ case catch binary_to_integer(String, Base) of
75
+ Int when is_integer(Int) -> {ok, Int};
76
+ _ -> {error, nil}
77
+ end.
78
+
79
+ parse_int(String) ->
80
+ case catch binary_to_integer(String) of
81
+ Int when is_integer(Int) -> {ok, Int};
82
+ _ -> {error, nil}
83
+ end.
84
+
85
+ parse_float(String) ->
86
+ case catch binary_to_float(String) of
87
+ Float when is_float(Float) -> {ok, Float};
88
+ _ -> {error, nil}
89
+ end.
90
+
91
+ less_than(Lhs, Rhs) ->
92
+ Lhs < Rhs.
93
+
94
+ string_starts_with(_, <<>>) -> true;
95
+ string_starts_with(String, Prefix) when byte_size(Prefix) > byte_size(String) -> false;
96
+ string_starts_with(String, Prefix) ->
97
+ PrefixSize = byte_size(Prefix),
98
+ Prefix == binary_part(String, 0, PrefixSize).
99
+
100
+ string_ends_with(_, <<>>) -> true;
101
+ string_ends_with(String, Suffix) when byte_size(Suffix) > byte_size(String) -> false;
102
+ string_ends_with(String, Suffix) ->
103
+ SuffixSize = byte_size(Suffix),
104
+ Suffix == binary_part(String, byte_size(String) - SuffixSize, SuffixSize).
105
+
106
+ string_pad(String, Length, Dir, PadString) ->
107
+ Chars = string:pad(String, Length, Dir, binary_to_list(PadString)),
108
+ case unicode:characters_to_binary(Chars) of
109
+ Bin when is_binary(Bin) -> Bin;
110
+ Error -> erlang:error({gleam_error, {string_invalid_utf8, Error}})
111
+ end.
112
+
113
+ string_pop_grapheme(String) ->
114
+ case string:next_grapheme(String) of
115
+ [ Next | Rest ] when is_binary(Rest) ->
116
+ {ok, {unicode:characters_to_binary([Next]), Rest}};
117
+
118
+ [ Next | Rest ] ->
119
+ {ok, {unicode:characters_to_binary([Next]), unicode:characters_to_binary(Rest)}};
120
+
121
+ _ -> {error, nil}
122
+ end.
123
+
124
+ string_pop_codeunit(<<Cp/integer, Rest/binary>>) -> {Cp, Rest};
125
+ string_pop_codeunit(Binary) -> {0, Binary}.
126
+
127
+ bit_array_pad_to_bytes(Bin) ->
128
+ case erlang:bit_size(Bin) rem 8 of
129
+ 0 -> Bin;
130
+ TrailingBits ->
131
+ PaddingBits = 8 - TrailingBits,
132
+ <<Bin/bits, 0:PaddingBits>>
133
+ end.
134
+
135
+ bit_array_concat(BitArrays) ->
136
+ list_to_bitstring(BitArrays).
137
+
138
+ -if(?OTP_RELEASE >= 26).
139
+ base64_encode(Bin, Padding) ->
140
+ PaddedBin = bit_array_pad_to_bytes(Bin),
141
+ base64:encode(PaddedBin, #{padding => Padding}).
142
+ -else.
143
+ base64_encode(_Bin, _Padding) ->
144
+ erlang:error(<<"Erlang OTP/26 or higher is required to use base64:encode">>).
145
+ -endif.
146
+
147
+ bit_array_slice(Bin, Pos, Len) ->
148
+ try {ok, binary:part(Bin, Pos, Len)}
149
+ catch error:badarg -> {error, nil}
150
+ end.
151
+
152
+ base64_decode(S) ->
153
+ try {ok, base64:decode(S)}
154
+ catch error:_ -> {error, nil}
155
+ end.
156
+
157
+ wrap_list(X) when is_list(X) -> X;
158
+ wrap_list(X) -> [X].
159
+
160
+ parse_query(Query) ->
161
+ case uri_string:dissect_query(Query) of
162
+ {error, _, _} -> {error, nil};
163
+ Pairs ->
164
+ Pairs1 = lists:map(fun
165
+ ({K, true}) -> {K, <<"">>};
166
+ (Pair) -> Pair
167
+ end, Pairs),
168
+ {ok, Pairs1}
169
+ end.
170
+
171
+ percent_encode(B) -> percent_encode(B, <<>>).
172
+ percent_encode(<<>>, Acc) ->
173
+ Acc;
174
+ percent_encode(<<H,T/binary>>, Acc) ->
175
+ case percent_ok(H) of
176
+ true ->
177
+ percent_encode(T, <<Acc/binary,H>>);
178
+ false ->
179
+ <<A:4,B:4>> = <<H>>,
180
+ percent_encode(T, <<Acc/binary,$%,(?DEC2HEX(A)),(?DEC2HEX(B))>>)
181
+ end.
182
+
183
+ percent_decode(Cs) -> percent_decode(Cs, <<>>).
184
+ percent_decode(<<$%, C0, C1, Cs/binary>>, Acc) ->
185
+ case is_hex_digit(C0) andalso is_hex_digit(C1) of
186
+ true ->
187
+ B = ?HEX2DEC(C0)*16+?HEX2DEC(C1),
188
+ percent_decode(Cs, <<Acc/binary, B>>);
189
+ false ->
190
+ {error, nil}
191
+ end;
192
+ percent_decode(<<C,Cs/binary>>, Acc) ->
193
+ percent_decode(Cs, <<Acc/binary, C>>);
194
+ percent_decode(<<>>, Acc) ->
195
+ check_utf8(Acc).
196
+
197
+ percent_ok($!) -> true;
198
+ percent_ok($$) -> true;
199
+ percent_ok($') -> true;
200
+ percent_ok($() -> true;
201
+ percent_ok($)) -> true;
202
+ percent_ok($*) -> true;
203
+ percent_ok($+) -> true;
204
+ percent_ok($-) -> true;
205
+ percent_ok($.) -> true;
206
+ percent_ok($_) -> true;
207
+ percent_ok($~) -> true;
208
+ percent_ok(C) when $0 =< C, C =< $9 -> true;
209
+ percent_ok(C) when $A =< C, C =< $Z -> true;
210
+ percent_ok(C) when $a =< C, C =< $z -> true;
211
+ percent_ok(_) -> false.
212
+
213
+ is_hex_digit(C) ->
214
+ ($0 =< C andalso C =< $9) orelse ($a =< C andalso C =< $f) orelse ($A =< C andalso C =< $F).
215
+
216
+ check_utf8(Cs) ->
217
+ case unicode:characters_to_list(Cs) of
218
+ {incomplete, _, _} -> {error, nil};
219
+ {error, _, _} -> {error, nil};
220
+ _ -> {ok, Cs}
221
+ end.
222
+
223
+ uri_parse(String) ->
224
+ case uri_string:parse(String) of
225
+ {error, _, _} -> {error, nil};
226
+ Uri ->
227
+ Port =
228
+ try maps:get(port, Uri) of
229
+ undefined -> none;
230
+ Value -> {some, Value}
231
+ catch _:_ -> none
232
+ end,
233
+ {ok, {uri,
234
+ maps_get_optional(Uri, scheme),
235
+ maps_get_optional(Uri, userinfo),
236
+ maps_get_optional(Uri, host),
237
+ Port,
238
+ maps_get_or(Uri, path, <<>>),
239
+ maps_get_optional(Uri, query),
240
+ maps_get_optional(Uri, fragment)
241
+ }}
242
+ end.
243
+
244
+ maps_get_optional(Map, Key) ->
245
+ try {some, maps:get(Key, Map)}
246
+ catch _:_ -> none
247
+ end.
248
+
249
+ maps_get_or(Map, Key, Default) ->
250
+ try maps:get(Key, Map)
251
+ catch _:_ -> Default
252
+ end.
253
+
254
+ print(String) ->
255
+ io:put_chars(String),
256
+ nil.
257
+
258
+ println(String) ->
259
+ io:put_chars([String, $\n]),
260
+ nil.
261
+
262
+ print_error(String) ->
263
+ io:put_chars(standard_error, String),
264
+ nil.
265
+
266
+ println_error(String) ->
267
+ io:put_chars(standard_error, [String, $\n]),
268
+ nil.
269
+
270
+ inspect(true) ->
271
+ "True";
272
+ inspect(false) ->
273
+ "False";
274
+ inspect(nil) ->
275
+ "Nil";
276
+ inspect(Data) when is_map(Data) ->
277
+ Fields = [
278
+ [<<"#(">>, inspect(Key), <<", ">>, inspect(Value), <<")">>]
279
+ || {Key, Value} <- maps:to_list(Data)
280
+ ],
281
+ ["dict.from_list([", lists:join(", ", Fields), "])"];
282
+ inspect(Atom) when is_atom(Atom) ->
283
+ erlang:element(2, inspect_atom(Atom));
284
+ inspect(Any) when is_integer(Any) ->
285
+ erlang:integer_to_list(Any);
286
+ inspect(Any) when is_float(Any) ->
287
+ io_lib_format:fwrite_g(Any);
288
+ inspect(Binary) when is_binary(Binary) ->
289
+ case inspect_maybe_utf8_string(Binary, <<>>) of
290
+ {ok, InspectedUtf8String} -> InspectedUtf8String;
291
+ {error, not_a_utf8_string} ->
292
+ Segments = [erlang:integer_to_list(X) || <<X>> <= Binary],
293
+ ["<<", lists:join(", ", Segments), ">>"]
294
+ end;
295
+ inspect(Bits) when is_bitstring(Bits) ->
296
+ inspect_bit_array(Bits);
297
+ inspect(List) when is_list(List) ->
298
+ case inspect_list(List, true) of
299
+ {charlist, _} -> ["charlist.from_string(\"", list_to_binary(List), "\")"];
300
+ {proper, Elements} -> ["[", Elements, "]"];
301
+ {improper, Elements} -> ["//erl([", Elements, "])"]
302
+ end;
303
+ inspect(Any) when is_tuple(Any) % Record constructors
304
+ andalso is_atom(element(1, Any))
305
+ andalso element(1, Any) =/= false
306
+ andalso element(1, Any) =/= true
307
+ andalso element(1, Any) =/= nil
308
+ ->
309
+ [Atom | ArgsList] = erlang:tuple_to_list(Any),
310
+ InspectedArgs = lists:map(fun inspect/1, ArgsList),
311
+ case inspect_atom(Atom) of
312
+ {gleam_atom, GleamAtom} ->
313
+ Args = lists:join(<<", ">>, InspectedArgs),
314
+ [GleamAtom, "(", Args, ")"];
315
+ {erlang_atom, ErlangAtom} ->
316
+ Args = lists:join(<<", ">>, [ErlangAtom | InspectedArgs]),
317
+ ["#(", Args, ")"]
318
+ end;
319
+ inspect(Tuple) when is_tuple(Tuple) ->
320
+ Elements = lists:map(fun inspect/1, erlang:tuple_to_list(Tuple)),
321
+ ["#(", lists:join(", ", Elements), ")"];
322
+ inspect(Any) when is_function(Any) ->
323
+ {arity, Arity} = erlang:fun_info(Any, arity),
324
+ ArgsAsciiCodes = lists:seq($a, $a + Arity - 1),
325
+ Args = lists:join(<<", ">>,
326
+ lists:map(fun(Arg) -> <<Arg>> end, ArgsAsciiCodes)
327
+ ),
328
+ ["//fn(", Args, ") { ... }"];
329
+ inspect(Any) ->
330
+ ["//erl(", io_lib:format("~p", [Any]), ")"].
331
+
332
+ inspect_atom(Atom) ->
333
+ Binary = erlang:atom_to_binary(Atom),
334
+ case inspect_maybe_gleam_atom(Binary, none, <<>>) of
335
+ {ok, Inspected} -> {gleam_atom, Inspected};
336
+ {error, _} -> {erlang_atom, ["atom.create(\"", Binary, "\")"]}
337
+ end.
338
+
339
+ inspect_maybe_gleam_atom(<<>>, none, _) ->
340
+ {error, nil};
341
+ inspect_maybe_gleam_atom(<<First, _Rest/binary>>, none, _) when ?is_digit_char(First) ->
342
+ {error, nil};
343
+ inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, none, _) ->
344
+ {error, nil};
345
+ inspect_maybe_gleam_atom(<<"_">>, _PrevChar, _Acc) ->
346
+ {error, nil};
347
+ inspect_maybe_gleam_atom(<<"_", _Rest/binary>>, $_, _Acc) ->
348
+ {error, nil};
349
+ inspect_maybe_gleam_atom(<<First, _Rest/binary>>, _PrevChar, _Acc)
350
+ when not (?is_lowercase_char(First) orelse ?is_underscore_char(First) orelse ?is_digit_char(First)) ->
351
+ {error, nil};
352
+ inspect_maybe_gleam_atom(<<First, Rest/binary>>, none, Acc) ->
353
+ inspect_maybe_gleam_atom(Rest, First, <<Acc/binary, (uppercase(First))>>);
354
+ inspect_maybe_gleam_atom(<<"_", Rest/binary>>, _PrevChar, Acc) ->
355
+ inspect_maybe_gleam_atom(Rest, $_, Acc);
356
+ inspect_maybe_gleam_atom(<<First, Rest/binary>>, $_, Acc) ->
357
+ inspect_maybe_gleam_atom(Rest, First, <<Acc/binary, (uppercase(First))>>);
358
+ inspect_maybe_gleam_atom(<<First, Rest/binary>>, _PrevChar, Acc) ->
359
+ inspect_maybe_gleam_atom(Rest, First, <<Acc/binary, First>>);
360
+ inspect_maybe_gleam_atom(<<>>, _PrevChar, Acc) ->
361
+ {ok, Acc};
362
+ inspect_maybe_gleam_atom(A, B, C) ->
363
+ erlang:display({A, B, C}),
364
+ throw({gleam_error, A, B, C}).
365
+
366
+ inspect_list([], _) ->
367
+ {proper, []};
368
+ inspect_list([First], true) when ?is_ascii_character(First) ->
369
+ {charlist, nil};
370
+ inspect_list([First], _) ->
371
+ {proper, [inspect(First)]};
372
+ inspect_list([First | Rest], ValidCharlist) when is_list(Rest) ->
373
+ StillValidCharlist = ValidCharlist andalso ?is_ascii_character(First),
374
+ {Kind, Inspected} = inspect_list(Rest, StillValidCharlist),
375
+ {Kind, [inspect(First), <<", ">> | Inspected]};
376
+ inspect_list([First | ImproperTail], _) ->
377
+ {improper, [inspect(First), <<" | ">>, inspect(ImproperTail)]}.
378
+
379
+ inspect_bit_array(Bits) ->
380
+ Text = inspect_bit_array(Bits, <<"<<">>),
381
+ <<Text/binary, ">>">>.
382
+
383
+ inspect_bit_array(<<>>, Acc) ->
384
+ Acc;
385
+ inspect_bit_array(<<X, Rest/bitstring>>, Acc) ->
386
+ inspect_bit_array(Rest, append_segment(Acc, erlang:integer_to_binary(X)));
387
+ inspect_bit_array(Rest, Acc) ->
388
+ Size = bit_size(Rest),
389
+ <<X:Size>> = Rest,
390
+ X1 = erlang:integer_to_binary(X),
391
+ Size1 = erlang:integer_to_binary(Size),
392
+ Segment = <<X1/binary, ":size(", Size1/binary, ")">>,
393
+ inspect_bit_array(<<>>, append_segment(Acc, Segment)).
394
+
395
+ bit_array_to_int_and_size(A) ->
396
+ Size = bit_size(A),
397
+ <<A1:Size>> = A,
398
+ {A1, Size}.
399
+
400
+ append_segment(<<"<<">>, Segment) ->
401
+ <<"<<", Segment/binary>>;
402
+ append_segment(Acc, Segment) ->
403
+ <<Acc/binary, ", ", Segment/binary>>.
404
+
405
+
406
+ inspect_maybe_utf8_string(Binary, Acc) ->
407
+ case Binary of
408
+ <<>> -> {ok, <<$", Acc/binary, $">>};
409
+ <<First/utf8, Rest/binary>> ->
410
+ Escaped = case First of
411
+ $" -> <<$\\, $">>;
412
+ $\\ -> <<$\\, $\\>>;
413
+ $\r -> <<$\\, $r>>;
414
+ $\n -> <<$\\, $n>>;
415
+ $\t -> <<$\\, $t>>;
416
+ $\f -> <<$\\, $f>>;
417
+ X when X > 126, X < 160 -> convert_to_u(X);
418
+ X when X < 32 -> convert_to_u(X);
419
+ Other -> <<Other/utf8>>
420
+ end,
421
+ inspect_maybe_utf8_string(Rest, <<Acc/binary, Escaped/binary>>);
422
+ _ -> {error, not_a_utf8_string}
423
+ end.
424
+
425
+ convert_to_u(Code) ->
426
+ list_to_binary(io_lib:format("\\u{~4.16.0B}", [Code])).
427
+
428
+ float_to_string(Float) when is_float(Float) ->
429
+ erlang:iolist_to_binary(io_lib_format:fwrite_g(Float)).
430
+
431
+ utf_codepoint_list_to_string(List) ->
432
+ case unicode:characters_to_binary(List) of
433
+ {error, _} -> erlang:error({gleam_error, {string_invalid_utf8, List}});
434
+ Binary -> Binary
435
+ end.
436
+
437
+ crop_string(String, Prefix) ->
438
+ case string:find(String, Prefix) of
439
+ nomatch -> String;
440
+ New -> New
441
+ end.
442
+
443
+ contains_string(String, Substring) ->
444
+ is_bitstring(string:find(String, Substring)).
445
+
446
+ base16_encode(Bin) ->
447
+ PaddedBin = bit_array_pad_to_bytes(Bin),
448
+ binary:encode_hex(PaddedBin).
449
+
450
+ base16_decode(String) ->
451
+ try
452
+ {ok, binary:decode_hex(String)}
453
+ catch
454
+ _:_ -> {error, nil}
455
+ end.
456
+
457
+ string_replace(String, Pattern, Replacement) ->
458
+ string:replace(String, Pattern, Replacement, all).
459
+
460
+ slice(String, Index, Length) ->
461
+ case string:slice(String, Index, Length) of
462
+ X when is_binary(X) -> X;
463
+ X when is_list(X) -> unicode:characters_to_binary(X)
464
+ end.
465
+
466
+ index([X | _], 0) ->
467
+ {ok, {some, X}};
468
+ index([_, X | _], 1) ->
469
+ {ok, {some, X}};
470
+ index([_, _, X | _], 2) ->
471
+ {ok, {some, X}};
472
+ index([_, _, _, X | _], 3) ->
473
+ {ok, {some, X}};
474
+ index([_, _, _, _, X | _], 4) ->
475
+ {ok, {some, X}};
476
+ index([_, _, _, _, _, X | _], 5) ->
477
+ {ok, {some, X}};
478
+ index([_, _, _, _, _, _, X | _], 6) ->
479
+ {ok, {some, X}};
480
+ index([_, _, _, _, _, _, _, X | _], 7) ->
481
+ {ok, {some, X}};
482
+ index(Tuple, Index) when is_tuple(Tuple) andalso is_integer(Index) ->
483
+ {ok, try
484
+ {some, element(Index + 1, Tuple)}
485
+ catch _:_ ->
486
+ none
487
+ end};
488
+ index(Map, Key) when is_map(Map) ->
489
+ {ok, try
490
+ {some, maps:get(Key, Map)}
491
+ catch _:_ ->
492
+ none
493
+ end};
494
+ index(_, Index) when is_integer(Index) ->
495
+ {error, <<"Indexable">>};
496
+ index(_, _) ->
497
+ {error, <<"Dict">>}.
498
+
499
+ list(T, A, B, C, D) when is_tuple(T) ->
500
+ list(tuple_to_list(T), A, B, C, D);
501
+ list([], _, _, _, Acc) ->
502
+ {lists:reverse(Acc), []};
503
+ list([X | Xs], Decode, PushPath, Index, Acc) ->
504
+ {Out, Errors} = Decode(X),
505
+ case Errors of
506
+ [] -> list(Xs, Decode, PushPath, Index + 1, [Out | Acc]);
507
+ _ -> PushPath({[], Errors}, integer_to_binary(Index))
508
+ end;
509
+ list(Unexpected, _, _, _, []) ->
510
+ Found = gleam@dynamic:classify(Unexpected),
511
+ Error = {decode_error, <<"List"/utf8>>, Found, []},
512
+ {[], [Error]};
513
+ list(_, _, _, _, Acc) ->
514
+ {lists:reverse(Acc), []}.
515
+
516
+ dict(#{} = Data) -> {ok, Data};
517
+ dict(_) -> {error, nil}.
518
+
519
+ int(I) when is_integer(I) -> {ok, I};
520
+ int(_) -> {error, 0}.
521
+
522
+ float(F) when is_float(F) -> {ok, F};
523
+ float(_) -> {error, 0.0}.
524
+
525
+ bit_array(B) when is_bitstring(B) -> {ok, B};
526
+ bit_array(_) -> {error, <<>>}.
527
+
528
+ is_null(X) ->
529
+ X =:= undefined orelse X =:= null orelse X =:= nil.