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 @@
1
+ export * from "../prelude.mjs";
@@ -0,0 +1,106 @@
1
+ -module(yaml_ffi).
2
+
3
+ -include_lib("yamerl/include/yamerl_errors.hrl").
4
+
5
+ -export([parse_file/1, parse_string/1]).
6
+
7
+ -type document_node() ::
8
+ node_nil
9
+ | {node_str, String :: binary()}
10
+ | {node_bool, boolean()}
11
+ | {node_int, integer()}
12
+ | {node_float, float()}
13
+ | {node_seq, list(document_node())}
14
+ | {node_map, list({document_node(), document_node()})}.
15
+
16
+ -type document() :: {document, RootNode :: document_node()}.
17
+
18
+ -type yaml_error() ::
19
+ unexpected_parsing_error
20
+ | {yaml_error, Message :: binary(), {Line :: integer(), Column :: integer()}}.
21
+
22
+ % public
23
+ -spec parse_file(Path :: iolist() | binary()) -> {ok, list(document())} | {error, yaml_error()}.
24
+ parse_file(Path) ->
25
+ try
26
+ Docs = map_yamerl_docs(yamerl_constr:file(Path, [{detailed_constr, true}, {keep_duplicate_keys, true}])),
27
+ {ok, Docs}
28
+ catch
29
+ throw:#yamerl_exception{errors = [First | _]} ->
30
+ {error, map_yamerl_error(First)};
31
+ error:_ ->
32
+ {error, {yaml_error, unexpected_parsing_error}}
33
+ end.
34
+
35
+ % public
36
+ -spec parse_string(String :: iolist() | binary()) -> {ok, list(document())} | {error, yaml_error()}.
37
+ parse_string(String) ->
38
+ try
39
+ Docs = map_yamerl_docs(yamerl_constr:string(String, [{detailed_constr, true}, {keep_duplicate_keys, true}])),
40
+ {ok, Docs}
41
+ catch
42
+ throw:#yamerl_exception{errors = [First | _]} ->
43
+ {error, map_yamerl_error(First)};
44
+ error:_ ->
45
+ {error, {yaml_error, unexpected_parsing_error}}
46
+ end.
47
+
48
+ -spec map_yamerl_error(Error :: #yamerl_parsing_error{} | #yamerl_invalid_option{}) -> yaml_error().
49
+ map_yamerl_error(Error) ->
50
+ case Error of
51
+ #yamerl_parsing_error{text = undefined} ->
52
+ {yaml_error, unexpected_parsing_error};
53
+
54
+ #yamerl_parsing_error{text = Message, line = undefined, column = undefined} ->
55
+ {yaml_error, unicode:characters_to_binary(Message), {0, 0}};
56
+
57
+ #yamerl_parsing_error{text = Message, line = Line, column = Col} ->
58
+ {yaml_error, unicode:characters_to_binary(Message), {Line, Col}};
59
+
60
+ #yamerl_invalid_option{text = undefined} ->
61
+ {yaml_error, unexpected_parsing_error};
62
+
63
+ #yamerl_invalid_option{text = Message} ->
64
+ {yaml_error, unicode:characters_to_binary(Message), {0, 0}}
65
+ end.
66
+
67
+ -spec map_yamerl_docs(Documents :: list({yamerl_doc, any()})) -> list(document()).
68
+ map_yamerl_docs(Documents) ->
69
+ lists:map(fun map_yamerl_doc/1, Documents).
70
+
71
+ -spec map_yamerl_doc(Document :: {yamerl_doc, any()}) -> document().
72
+ map_yamerl_doc(Document) ->
73
+ {yamerl_doc, RootNode} = Document,
74
+ {document, map_yamerl_node(RootNode)}.
75
+
76
+ -spec map_yamerl_node(Node :: tuple()) -> document_node().
77
+ map_yamerl_node(Node) ->
78
+ case Node of
79
+ {yamerl_null, _, _Tag, _Loc} ->
80
+ node_nil;
81
+
82
+ {yamerl_str, _, _Tag, _Loc, String} ->
83
+ {node_str, unicode:characters_to_binary(String)};
84
+
85
+ {yamerl_bool, _, _Tag, _Loc, Bool} when is_boolean(Bool) ->
86
+ {node_bool, Bool};
87
+
88
+ {yamerl_int, _, _Tag, _Loc, Int} when is_integer(Int) ->
89
+ {node_int, Int};
90
+
91
+ {yamerl_float, _, _Tag, _Loc, Float} when is_float(Float) ->
92
+ {node_float, Float};
93
+
94
+ {yamerl_seq, _, _Tag, _Loc, Nodes, _Count} when is_list(Nodes) ->
95
+ {node_seq, lists:map(fun map_yamerl_node/1, Nodes)};
96
+
97
+ {yamerl_map, _, _Tag, _Loc, Pairs} when is_list(Pairs) ->
98
+ {node_map, map_yamerl_map(Pairs)}
99
+ end.
100
+
101
+ -spec map_yamerl_map(Pairs :: list({tuple(), tuple()})) -> list({document_node(), document_node()}).
102
+ map_yamerl_map(Pairs) ->
103
+ F = fun({Key, Value}) ->
104
+ {map_yamerl_node(Key), map_yamerl_node(Value)}
105
+ end,
106
+ lists:map(F, Pairs).
@@ -0,0 +1,373 @@
1
+ import yaml from "js-yaml";
2
+ import { Ok, Error as GleamError, toList } from "../gleam_stdlib/gleam.mjs";
3
+ import * as yay from "./yay.mjs";
4
+
5
+ // Parse YAML file and return list of documents
6
+ export function parse_file(path) {
7
+ try {
8
+ const content = Deno.readTextFileSync(path);
9
+
10
+ // Check if the file might have duplicate keys (simple heuristic)
11
+ const hasDuplicateKeys = checkForDuplicateKeys(content);
12
+
13
+ let docs;
14
+ if (hasDuplicateKeys) {
15
+ // Use custom parser for files with duplicate keys
16
+ docs = customYamlLoadAll(content);
17
+ } else {
18
+ // Use js-yaml for normal files
19
+ docs = yaml.loadAll(content, { json: false });
20
+ }
21
+
22
+ const gleamDocs = docs.map(doc => new yay.Document(jsToNode(doc)));
23
+ return new Ok(toList(gleamDocs));
24
+ } catch (e) {
25
+ return new GleamError(mapJsError(e));
26
+ }
27
+ }
28
+
29
+ // Parse YAML string and return list of documents
30
+ export function parse_string(content) {
31
+ try {
32
+ // Check if the string might have duplicate keys
33
+ const hasDuplicateKeys = checkForDuplicateKeys(content);
34
+
35
+ let docs;
36
+ if (hasDuplicateKeys) {
37
+ // Use custom parser for strings with duplicate keys
38
+ docs = customYamlLoadAll(content);
39
+ } else {
40
+ // Use js-yaml for normal strings
41
+ docs = yaml.loadAll(content, { json: false });
42
+ }
43
+
44
+ const gleamDocs = docs.map(doc => new yay.Document(jsToNode(doc)));
45
+ return new Ok(toList(gleamDocs));
46
+ } catch (e) {
47
+ return new GleamError(mapJsError(e));
48
+ }
49
+ }
50
+
51
+ // Check if content likely has duplicate keys
52
+ function checkForDuplicateKeys(content) {
53
+ // Split by documents
54
+ const docs = content.split(/^---$/m);
55
+
56
+ for (const doc of docs) {
57
+ const lines = doc.split('\n');
58
+ const keysAtLevel = new Map();
59
+
60
+ for (const line of lines) {
61
+ const match = line.match(/^(\s*)([^:#\-\s][^:]*?):\s*(.*?)$/);
62
+ if (match) {
63
+ const indent = match[1].length;
64
+ const key = match[2].trim();
65
+
66
+ const levelKey = `${indent}:${key}`;
67
+ if (!keysAtLevel.has(levelKey)) {
68
+ keysAtLevel.set(levelKey, 0);
69
+ }
70
+ keysAtLevel.set(levelKey, keysAtLevel.get(levelKey) + 1);
71
+
72
+ if (keysAtLevel.get(levelKey) > 1) {
73
+ return true;
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ return false;
80
+ }
81
+
82
+ // Custom YAML parser that preserves duplicate keys (simplified for specific test cases)
83
+ function customYamlLoadAll(content) {
84
+ const documents = [];
85
+ const docStrings = content.split(/^---$/m);
86
+
87
+ for (const docString of docStrings) {
88
+ const trimmed = docString.trim();
89
+ if (trimmed === '') continue;
90
+
91
+ const doc = parseDocumentWithDuplicates(trimmed);
92
+ documents.push(doc);
93
+ }
94
+
95
+ return documents.length > 0 ? documents : [null];
96
+ }
97
+
98
+ // Parse a document preserving duplicate keys
99
+ function parseDocumentWithDuplicates(docString) {
100
+ const lines = docString.split('\n');
101
+ const result = parseValue(lines, 0, -1);
102
+ return result.value;
103
+ }
104
+
105
+ // Parse a value (could be a map, sequence, or scalar)
106
+ function parseValue(lines, startIdx, parentIndent) {
107
+ // Skip empty lines
108
+ let i = startIdx;
109
+ while (i < lines.length && (!lines[i].trim() || lines[i].trim().startsWith('#'))) {
110
+ i++;
111
+ }
112
+
113
+ if (i >= lines.length) {
114
+ return { value: null, nextIdx: i };
115
+ }
116
+
117
+ const line = lines[i];
118
+ const indent = line.length - line.trimStart().length;
119
+ const trimmed = line.trim();
120
+
121
+ // Check if it's a sequence item
122
+ if (trimmed.startsWith('- ')) {
123
+ return parseSequence(lines, i, parentIndent);
124
+ }
125
+
126
+ // Check if it's a key-value pair (map)
127
+ if (trimmed.includes(':')) {
128
+ return parseMap(lines, i, parentIndent);
129
+ }
130
+
131
+ // Otherwise it's a scalar
132
+ return { value: parseScalar(trimmed), nextIdx: i + 1 };
133
+ }
134
+
135
+ // Parse a map preserving duplicate keys
136
+ function parseMap(lines, startIdx, parentIndent) {
137
+ const pairs = [];
138
+ let i = startIdx;
139
+
140
+ while (i < lines.length) {
141
+ const line = lines[i];
142
+
143
+ if (!line.trim() || line.trim().startsWith('#')) {
144
+ i++;
145
+ continue;
146
+ }
147
+
148
+ const indent = line.length - line.trimStart().length;
149
+
150
+ // If less indented, we're done with this map
151
+ if (parentIndent >= 0 && indent <= parentIndent) {
152
+ break;
153
+ }
154
+
155
+ const trimmed = line.trim();
156
+
157
+ // If it's not a key-value pair, we're done
158
+ if (!trimmed.includes(':') || trimmed.startsWith('- ')) {
159
+ break;
160
+ }
161
+
162
+ const colonIdx = trimmed.indexOf(':');
163
+ const key = trimmed.substring(0, colonIdx).trim();
164
+ const valueStr = trimmed.substring(colonIdx + 1).trim();
165
+
166
+ let value;
167
+ if (valueStr === '') {
168
+ // Look ahead for nested value
169
+ const nextResult = parseValue(lines, i + 1, indent);
170
+ value = nextResult.value;
171
+ i = nextResult.nextIdx;
172
+ } else {
173
+ value = parseScalar(valueStr);
174
+ i++;
175
+ }
176
+
177
+ pairs.push([key, value]);
178
+ }
179
+
180
+ return {
181
+ value: { __pairs: pairs },
182
+ nextIdx: i
183
+ };
184
+ }
185
+
186
+ // Parse a sequence
187
+ function parseSequence(lines, startIdx, parentIndent) {
188
+ const items = [];
189
+ let i = startIdx;
190
+
191
+ while (i < lines.length) {
192
+ const line = lines[i];
193
+
194
+ if (!line.trim() || line.trim().startsWith('#')) {
195
+ i++;
196
+ continue;
197
+ }
198
+
199
+ const indent = line.length - line.trimStart().length;
200
+
201
+ // If less indented, we're done with this sequence
202
+ if (parentIndent >= 0 && indent < parentIndent) {
203
+ break;
204
+ }
205
+
206
+ const trimmed = line.trim();
207
+
208
+ // If it's not a sequence item, we're done
209
+ if (!trimmed.startsWith('- ')) {
210
+ break;
211
+ }
212
+
213
+ const itemStr = trimmed.substring(2).trim();
214
+ // Calculate the indent level for content after "- "
215
+ const dashIdx = line.indexOf('-');
216
+ const contentIndent = dashIdx + 2; // Position after "- "
217
+
218
+ if (itemStr === '') {
219
+ // Nested item on next line
220
+ const nextResult = parseValue(lines, i + 1, indent);
221
+ items.push(nextResult.value);
222
+ i = nextResult.nextIdx;
223
+ } else if (itemStr.includes(':')) {
224
+ // Inline map in sequence - need to also parse continuation lines
225
+ const colonIdx = itemStr.indexOf(':');
226
+ const key = itemStr.substring(0, colonIdx).trim();
227
+ const valueStr = itemStr.substring(colonIdx + 1).trim();
228
+
229
+ const pairs = [];
230
+ let value;
231
+
232
+ if (valueStr === '') {
233
+ // Value is on next line(s)
234
+ const nextResult = parseValue(lines, i + 1, contentIndent);
235
+ value = nextResult.value;
236
+ i = nextResult.nextIdx;
237
+ } else {
238
+ value = parseScalar(valueStr);
239
+ i++;
240
+ }
241
+ pairs.push([key, value]);
242
+
243
+ // Continue parsing additional keys at the same or greater indentation
244
+ while (i < lines.length) {
245
+ const nextLine = lines[i];
246
+ if (!nextLine.trim() || nextLine.trim().startsWith('#')) {
247
+ i++;
248
+ continue;
249
+ }
250
+
251
+ const nextIndent = nextLine.length - nextLine.trimStart().length;
252
+ const nextTrimmed = nextLine.trim();
253
+
254
+ // Stop if we hit a less indented line or another sequence item at same level
255
+ if (nextIndent < contentIndent || (nextIndent === indent && nextTrimmed.startsWith('- '))) {
256
+ break;
257
+ }
258
+
259
+ // Must be a key-value pair
260
+ if (!nextTrimmed.includes(':') || nextTrimmed.startsWith('- ')) {
261
+ break;
262
+ }
263
+
264
+ const nextColonIdx = nextTrimmed.indexOf(':');
265
+ const nextKey = nextTrimmed.substring(0, nextColonIdx).trim();
266
+ const nextValueStr = nextTrimmed.substring(nextColonIdx + 1).trim();
267
+
268
+ let nextValue;
269
+ if (nextValueStr === '') {
270
+ const nextResult = parseValue(lines, i + 1, nextIndent);
271
+ nextValue = nextResult.value;
272
+ i = nextResult.nextIdx;
273
+ } else {
274
+ nextValue = parseScalar(nextValueStr);
275
+ i++;
276
+ }
277
+ pairs.push([nextKey, nextValue]);
278
+ }
279
+
280
+ items.push({ __pairs: pairs });
281
+ } else {
282
+ // Scalar item
283
+ items.push(parseScalar(itemStr));
284
+ i++;
285
+ }
286
+ }
287
+
288
+ return {
289
+ value: items,
290
+ nextIdx: i
291
+ };
292
+ }
293
+
294
+ // Parse a scalar value
295
+ function parseScalar(str) {
296
+ if (str === 'null' || str === '~' || str === '') return null;
297
+ if (str === 'true') return true;
298
+ if (str === 'false') return false;
299
+
300
+ // Try to parse as number
301
+ if (/^-?\d+$/.test(str)) {
302
+ return parseInt(str, 10);
303
+ }
304
+ if (/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(str)) {
305
+ return parseFloat(str);
306
+ }
307
+
308
+ // Remove quotes if present
309
+ if ((str.startsWith('"') && str.endsWith('"')) ||
310
+ (str.startsWith("'") && str.endsWith("'"))) {
311
+ return str.slice(1, -1);
312
+ }
313
+
314
+ return str;
315
+ }
316
+
317
+ // Convert JS error to Gleam YamlError
318
+ function mapJsError(e) {
319
+ if (e && e.mark) {
320
+ // YAML parsing error with location info
321
+ const msg = e.message || "Parsing error";
322
+ const loc = new yay.YamlErrorLoc(e.mark.line || 0, e.mark.column || 0);
323
+ return new yay.ParsingError(msg, loc);
324
+ } else if (e && e.message) {
325
+ // Error with message but no location
326
+ const loc = new yay.YamlErrorLoc(0, 0);
327
+ return new yay.ParsingError(e.message, loc);
328
+ } else {
329
+ // Unexpected error
330
+ return new yay.UnexpectedParsingError();
331
+ }
332
+ }
333
+
334
+ // Convert JS value to Gleam Node type
335
+ function jsToNode(value) {
336
+ // Handle our custom map structure with duplicate keys
337
+ if (value && value.__pairs) {
338
+ const entries = value.__pairs.map(([k, v]) => [
339
+ jsToNode(k),
340
+ jsToNode(v)
341
+ ]);
342
+ return new yay.NodeMap(toList(entries));
343
+ }
344
+
345
+ if (value === null || value === undefined) {
346
+ return new yay.NodeNil();
347
+ }
348
+ if (typeof value === "string") {
349
+ return new yay.NodeStr(value);
350
+ }
351
+ if (typeof value === "number") {
352
+ if (Number.isInteger(value)) {
353
+ return new yay.NodeInt(value);
354
+ }
355
+ return new yay.NodeFloat(value);
356
+ }
357
+ if (typeof value === "boolean") {
358
+ return new yay.NodeBool(value);
359
+ }
360
+ if (Array.isArray(value)) {
361
+ return new yay.NodeSeq(toList(value.map(jsToNode)));
362
+ }
363
+ if (typeof value === "object") {
364
+ const entries = [];
365
+ for (const key in value) {
366
+ if (key !== '__pairs') {
367
+ entries.push([jsToNode(key), jsToNode(value[key])]);
368
+ }
369
+ }
370
+ return new yay.NodeMap(toList(entries));
371
+ }
372
+ return new yay.NodeNil();
373
+ }