create-mendix-widget-gleam 2.0.14 → 2.0.15

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 (203) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -1
  3. package/src/index.mjs +22 -7
  4. package/template/gleam.toml +1 -1
  5. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache +0 -0
  6. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_inline +0 -0
  7. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_meta +0 -0
  8. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache +0 -0
  9. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_inline +0 -0
  10. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_meta +0 -0
  11. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache +0 -0
  12. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_inline +0 -0
  13. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_meta +0 -0
  14. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache +0 -0
  15. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_inline +0 -0
  16. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_meta +0 -0
  17. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache +0 -0
  18. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_inline +0 -0
  19. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_meta +0 -0
  20. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache +0 -0
  21. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_inline +0 -0
  22. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_meta +0 -0
  23. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache +0 -0
  24. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_inline +0 -0
  25. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_meta +0 -0
  26. package/tui/build/dev/javascript/etch/etch/command.mjs +479 -0
  27. package/tui/build/dev/javascript/etch/etch/cursor.mjs +164 -0
  28. package/tui/build/dev/javascript/etch/etch/event.mjs +2399 -0
  29. package/tui/build/dev/javascript/etch/etch/internal/consts.mjs +3 -0
  30. package/tui/build/dev/javascript/etch/etch/stdout.mjs +375 -0
  31. package/tui/build/dev/javascript/etch/etch/style.mjs +741 -0
  32. package/tui/build/dev/javascript/etch/etch/terminal.mjs +137 -0
  33. package/tui/build/dev/javascript/etch/gleam.mjs +1 -0
  34. package/tui/build/dev/javascript/etch/input/event_ffi.erl +73 -0
  35. package/tui/build/dev/javascript/etch/input/input_ffi.mjs +192 -0
  36. package/tui/build/dev/javascript/etch/input/signal_handler.erl +33 -0
  37. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.erl +22 -0
  38. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.mjs +37 -0
  39. package/tui/build/dev/javascript/etch/terminal/tty_state.erl +29 -0
  40. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache +0 -0
  41. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_inline +0 -0
  42. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_meta +0 -0
  43. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache +0 -0
  44. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_inline +0 -0
  45. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta +0 -0
  46. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache +0 -0
  47. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_inline +0 -0
  48. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta +0 -0
  49. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache +0 -0
  50. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_inline +0 -0
  51. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta +0 -0
  52. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache +0 -0
  53. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_inline +0 -0
  54. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_meta +0 -0
  55. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache +0 -0
  56. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_inline +0 -0
  57. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta +0 -0
  58. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache +0 -0
  59. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_inline +0 -0
  60. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_meta +0 -0
  61. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/application.mjs +38 -0
  62. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/atom.mjs +2 -0
  63. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/charlist.mjs +1 -0
  64. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/node.mjs +12 -0
  65. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/port.mjs +1 -0
  66. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/process.mjs +161 -0
  67. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/reference.mjs +1 -0
  68. package/tui/build/dev/javascript/gleam_erlang/gleam.mjs +1 -0
  69. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@application.erl +43 -0
  70. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@atom.erl +94 -0
  71. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@charlist.erl +42 -0
  72. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@node.erl +80 -0
  73. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@port.erl +8 -0
  74. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@process.erl +868 -0
  75. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@reference.erl +21 -0
  76. package/tui/build/dev/javascript/gleam_erlang/gleam_erlang_ffi.erl +164 -0
  77. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache +0 -0
  78. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_inline +0 -0
  79. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_meta +0 -0
  80. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache +0 -0
  81. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_inline +0 -0
  82. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_meta +0 -0
  83. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache +0 -0
  84. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_inline +0 -0
  85. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_meta +0 -0
  86. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/array.mjs +24 -0
  87. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/promise.mjs +105 -0
  88. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/symbol.mjs +7 -0
  89. package/tui/build/dev/javascript/gleam_javascript/gleam.mjs +1 -0
  90. package/tui/build/dev/javascript/gleam_javascript/gleam_javascript_ffi.mjs +133 -0
  91. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
  92. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
  93. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
  94. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
  95. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
  96. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
  97. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
  98. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
  99. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
  100. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
  101. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
  102. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
  103. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
  104. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
  105. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
  106. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
  107. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
  108. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
  109. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
  110. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
  111. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
  112. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
  113. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
  114. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
  115. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
  116. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
  117. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
  118. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
  119. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
  120. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
  121. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
  122. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
  123. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
  124. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
  125. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
  126. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
  127. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
  128. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
  129. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
  130. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
  131. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
  132. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
  133. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
  134. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
  135. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
  136. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
  137. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
  138. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
  139. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
  140. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
  141. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
  142. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
  143. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
  144. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
  145. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
  146. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
  147. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
  148. package/tui/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
  149. package/tui/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +286 -0
  150. package/tui/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +295 -0
  151. package/tui/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
  152. package/tui/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +455 -0
  153. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +993 -0
  154. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
  155. package/tui/build/dev/javascript/gleam_stdlib/gleam/float.mjs +528 -0
  156. package/tui/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
  157. package/tui/build/dev/javascript/gleam_stdlib/gleam/int.mjs +764 -0
  158. package/tui/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
  159. package/tui/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3063 -0
  160. package/tui/build/dev/javascript/gleam_stdlib/gleam/option.mjs +386 -0
  161. package/tui/build/dev/javascript/gleam_stdlib/gleam/order.mjs +166 -0
  162. package/tui/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +96 -0
  163. package/tui/build/dev/javascript/gleam_stdlib/gleam/result.mjs +448 -0
  164. package/tui/build/dev/javascript/gleam_stdlib/gleam/set.mjs +413 -0
  165. package/tui/build/dev/javascript/gleam_stdlib/gleam/string.mjs +695 -0
  166. package/tui/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +128 -0
  167. package/tui/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1151 -0
  168. package/tui/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
  169. package/tui/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
  170. package/tui/build/dev/javascript/gleam_stdlib/gleam@bool.erl +334 -0
  171. package/tui/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
  172. package/tui/build/dev/javascript/gleam_stdlib/gleam@dict.erl +513 -0
  173. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +105 -0
  174. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1114 -0
  175. package/tui/build/dev/javascript/gleam_stdlib/gleam@float.erl +711 -0
  176. package/tui/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
  177. package/tui/build/dev/javascript/gleam_stdlib/gleam@int.erl +972 -0
  178. package/tui/build/dev/javascript/gleam_stdlib/gleam@io.erl +76 -0
  179. package/tui/build/dev/javascript/gleam_stdlib/gleam@list.erl +2735 -0
  180. package/tui/build/dev/javascript/gleam_stdlib/gleam@option.erl +381 -0
  181. package/tui/build/dev/javascript/gleam_stdlib/gleam@order.erl +188 -0
  182. package/tui/build/dev/javascript/gleam_stdlib/gleam@pair.erl +104 -0
  183. package/tui/build/dev/javascript/gleam_stdlib/gleam@result.erl +500 -0
  184. package/tui/build/dev/javascript/gleam_stdlib/gleam@set.erl +430 -0
  185. package/tui/build/dev/javascript/gleam_stdlib/gleam@string.erl +964 -0
  186. package/tui/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +202 -0
  187. package/tui/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1042 -0
  188. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +534 -0
  189. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1133 -0
  190. package/tui/build/dev/javascript/gleam_version +1 -0
  191. package/tui/build/dev/javascript/prelude.mjs +1575 -0
  192. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache +0 -0
  193. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_inline +0 -0
  194. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_meta +0 -0
  195. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_warnings +0 -0
  196. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache +0 -0
  197. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_inline +0 -0
  198. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_meta +0 -0
  199. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_warnings +0 -0
  200. package/tui/build/dev/javascript/tui/gleam.mjs +1 -0
  201. package/tui/build/dev/javascript/tui/tui/prompt.mjs +521 -0
  202. package/tui/build/dev/javascript/tui/tui.mjs +334 -0
  203. package/tui/build/dev/javascript/tui/tui_ffi.mjs +32 -0
@@ -0,0 +1,334 @@
1
+ import * as $command from "../etch/etch/command.mjs";
2
+ import * as $event from "../etch/etch/event.mjs";
3
+ import * as $stdout from "../etch/etch/stdout.mjs";
4
+ import * as $terminal from "../etch/etch/terminal.mjs";
5
+ import * as $array from "../gleam_javascript/gleam/javascript/array.mjs";
6
+ import * as $promise from "../gleam_javascript/gleam/javascript/promise.mjs";
7
+ import * as $io from "../gleam_stdlib/gleam/io.mjs";
8
+ import * as $list from "../gleam_stdlib/gleam/list.mjs";
9
+ import * as $option from "../gleam_stdlib/gleam/option.mjs";
10
+ import { None, Some } from "../gleam_stdlib/gleam/option.mjs";
11
+ import * as $result from "../gleam_stdlib/gleam/result.mjs";
12
+ import * as $string from "../gleam_stdlib/gleam/string.mjs";
13
+ import { Ok, toList, Empty as $Empty, CustomType as $CustomType, makeError } from "./gleam.mjs";
14
+ import * as $prompt from "./tui/prompt.mjs";
15
+ import {
16
+ dir_exists,
17
+ detect_pm,
18
+ process_exit,
19
+ is_valid_name,
20
+ split_words as split_words_ffi,
21
+ } from "./tui_ffi.mjs";
22
+
23
+ const FILEPATH = "src\\tui.gleam";
24
+
25
+ export class Options extends $CustomType {
26
+ constructor(project_name, pm, lang) {
27
+ super();
28
+ this.project_name = project_name;
29
+ this.pm = pm;
30
+ this.lang = lang;
31
+ }
32
+ }
33
+ export const Options$Options = (project_name, pm, lang) =>
34
+ new Options(project_name, pm, lang);
35
+ export const Options$isOptions = (value) => value instanceof Options;
36
+ export const Options$Options$project_name = (value) => value.project_name;
37
+ export const Options$Options$0 = (value) => value.project_name;
38
+ export const Options$Options$pm = (value) => value.pm;
39
+ export const Options$Options$1 = (value) => value.pm;
40
+ export const Options$Options$lang = (value) => value.lang;
41
+ export const Options$Options$2 = (value) => value.lang;
42
+
43
+ function split_words(input) {
44
+ let _pipe = split_words_ffi(input);
45
+ return $array.to_list(_pipe);
46
+ }
47
+
48
+ function list_at(items, index) {
49
+ let _pipe = items;
50
+ let _pipe$1 = $list.drop(_pipe, index);
51
+ return $list.first(_pipe$1);
52
+ }
53
+
54
+ function capitalize(word) {
55
+ let $ = $string.first(word);
56
+ if ($ instanceof Ok) {
57
+ let first = $[0];
58
+ return $string.uppercase(first) + $string.drop_start(word, 1);
59
+ } else {
60
+ return "";
61
+ }
62
+ }
63
+
64
+ function to_pascal(words) {
65
+ let _pipe = words;
66
+ let _pipe$1 = $list.map(_pipe, capitalize);
67
+ return $string.join(_pipe$1, "");
68
+ }
69
+
70
+ function to_snake(words) {
71
+ return $string.join(words, "_");
72
+ }
73
+
74
+ function t(lang, key) {
75
+ if (key === "lang.title") {
76
+ return "Language / 언어 / 言語";
77
+ } else if (key === "name.title") {
78
+ if (lang === "en") {
79
+ return "Project name";
80
+ } else if (lang === "ko") {
81
+ return "프로젝트 이름";
82
+ } else if (lang === "ja") {
83
+ return "プロジェクト名";
84
+ } else {
85
+ return key;
86
+ }
87
+ } else if (key === "name.widget") {
88
+ if (lang === "en") {
89
+ return "Widget";
90
+ } else if (lang === "ko") {
91
+ return "위젯";
92
+ } else if (lang === "ja") {
93
+ return "ウィジェット";
94
+ } else {
95
+ return key;
96
+ }
97
+ } else if (key === "name.module") {
98
+ if (lang === "en") {
99
+ return "Module";
100
+ } else if (lang === "ko") {
101
+ return "모듈";
102
+ } else if (lang === "ja") {
103
+ return "モジュール";
104
+ } else {
105
+ return key;
106
+ }
107
+ } else if (key === "name.empty") {
108
+ if (lang === "en") {
109
+ return "Please enter a project name.";
110
+ } else if (lang === "ko") {
111
+ return "프로젝트 이름을 입력해주세요.";
112
+ } else if (lang === "ja") {
113
+ return "プロジェクト名を入力してください。";
114
+ } else {
115
+ return key;
116
+ }
117
+ } else if (key === "name.invalid") {
118
+ if (lang === "en") {
119
+ return "Must start with a letter (a-z, A-Z, 0-9, -, _ only)";
120
+ } else if (lang === "ko") {
121
+ return "영문자로 시작, 영문자/숫자/-/_ 만 사용 가능";
122
+ } else if (lang === "ja") {
123
+ return "英字で始まり、英字/数字/-/_ のみ使用可能";
124
+ } else {
125
+ return key;
126
+ }
127
+ } else if (key === "name.exists") {
128
+ if (lang === "en") {
129
+ return "Directory already exists!";
130
+ } else if (lang === "ko") {
131
+ return "디렉토리가 이미 존재합니다!";
132
+ } else if (lang === "ja") {
133
+ return "ディレクトリは既に存在します!";
134
+ } else {
135
+ return key;
136
+ }
137
+ } else if (key === "pm.title") {
138
+ if (lang === "en") {
139
+ return "Package Manager";
140
+ } else if (lang === "ko") {
141
+ return "패키지 매니저";
142
+ } else if (lang === "ja") {
143
+ return "パッケージマネージャー";
144
+ } else {
145
+ return key;
146
+ }
147
+ } else if (key === "pm.detected") {
148
+ if (lang === "en") {
149
+ return "detected";
150
+ } else if (lang === "ko") {
151
+ return "감지됨";
152
+ } else if (lang === "ja") {
153
+ return "検出済み";
154
+ } else {
155
+ return key;
156
+ }
157
+ } else if (key === "hint.select") {
158
+ return "↑↓ move ⏎ select Esc cancel";
159
+ } else if (key === "hint.input") {
160
+ return "⏎ confirm Esc cancel";
161
+ } else if (key === "cancelled") {
162
+ if (lang === "en") {
163
+ return "Cancelled.";
164
+ } else if (lang === "ko") {
165
+ return "취소되었습니다.";
166
+ } else if (lang === "ja") {
167
+ return "キャンセルされました。";
168
+ } else {
169
+ return key;
170
+ }
171
+ } else {
172
+ return key;
173
+ }
174
+ }
175
+
176
+ function validate_name(lang, value) {
177
+ let trimmed = $string.trim(value);
178
+ if (trimmed === "") {
179
+ return new Some(t(lang, "name.empty"));
180
+ } else {
181
+ let $ = is_valid_name(trimmed);
182
+ if ($) {
183
+ let $1 = dir_exists(trimmed);
184
+ if ($1) {
185
+ return new Some(t(lang, "name.exists"));
186
+ } else {
187
+ return new None();
188
+ }
189
+ } else {
190
+ return new Some(t(lang, "name.invalid"));
191
+ }
192
+ }
193
+ }
194
+
195
+ function name_preview(lang, value) {
196
+ let words = split_words($string.trim(value));
197
+ if (words instanceof $Empty) {
198
+ return words;
199
+ } else {
200
+ return toList([
201
+ (t(lang, "name.widget") + ": ") + to_pascal(words),
202
+ (t(lang, "name.module") + ": ") + to_snake(words),
203
+ ]);
204
+ }
205
+ }
206
+
207
+ function cleanup() {
208
+ $stdout.execute(
209
+ toList([new $command.ShowCursor(), new $command.LeaveAlternateScreen()]),
210
+ );
211
+ let $ = $terminal.exit_raw();
212
+
213
+ return undefined;
214
+ }
215
+
216
+ function cancel(lang) {
217
+ cleanup();
218
+ $io.println("\n" + t(lang, "cancelled"));
219
+ process_exit(0);
220
+ return $promise.resolve(new Options("", "", ""));
221
+ }
222
+
223
+ export function collect_options(cli_name) {
224
+ let $ = $terminal.enter_raw();
225
+ if (!($ instanceof Ok)) {
226
+ throw makeError(
227
+ "let_assert",
228
+ FILEPATH,
229
+ "tui",
230
+ 163,
231
+ "collect_options",
232
+ "Pattern match failed, no pattern matched the value.",
233
+ {
234
+ value: $,
235
+ start: 5543,
236
+ end: 5582,
237
+ pattern_start: 5554,
238
+ pattern_end: 5559
239
+ }
240
+ )
241
+ }
242
+ $stdout.execute(
243
+ toList([new $command.EnterAlternateScreen(), new $command.HideCursor()]),
244
+ );
245
+ let $1 = $event.init_event_server();
246
+
247
+ let languages = toList(["English", "한국어", "日本語"]);
248
+ let lang_codes = toList(["en", "ko", "ja"]);
249
+ return $promise.await$(
250
+ $prompt.select(
251
+ toList([]),
252
+ t("en", "lang.title"),
253
+ languages,
254
+ 0,
255
+ t("en", "hint.select"),
256
+ ),
257
+ (lang_idx) => {
258
+ let $2 = lang_idx < 0;
259
+ if ($2) {
260
+ return cancel("en");
261
+ } else {
262
+ let lang = $result.unwrap(list_at(lang_codes, lang_idx), "en");
263
+ let lang_label = $result.unwrap(list_at(languages, lang_idx), "English");
264
+ let completed = toList([["Language", lang_label]]);
265
+ $stdout.execute(toList([new $command.ShowCursor()]));
266
+ return $promise.await$(
267
+ $prompt.text_input(
268
+ completed,
269
+ t(lang, "name.title"),
270
+ cli_name,
271
+ (_capture) => { return validate_name(lang, _capture); },
272
+ (_capture) => { return name_preview(lang, _capture); },
273
+ t(lang, "hint.input"),
274
+ ),
275
+ (name_result) => {
276
+ if (name_result instanceof Ok) {
277
+ let name = name_result[0];
278
+ $stdout.execute(toList([new $command.HideCursor()]));
279
+ let completed$1 = toList([
280
+ ["Language", lang_label],
281
+ ["Project", name],
282
+ ]);
283
+ let detected = detect_pm();
284
+ let pms = toList(["npm", "yarn", "pnpm", "bun"]);
285
+ let _block;
286
+ if (detected === "yarn") {
287
+ _block = 1;
288
+ } else if (detected === "pnpm") {
289
+ _block = 2;
290
+ } else if (detected === "bun") {
291
+ _block = 3;
292
+ } else {
293
+ _block = 0;
294
+ }
295
+ let default_idx = _block;
296
+ let pm_labels = $list.map(
297
+ pms,
298
+ (pm) => {
299
+ let $3 = pm === detected;
300
+ if ($3) {
301
+ return (pm + " ← ") + t(lang, "pm.detected");
302
+ } else {
303
+ return pm;
304
+ }
305
+ },
306
+ );
307
+ return $promise.await$(
308
+ $prompt.select(
309
+ completed$1,
310
+ t(lang, "pm.title"),
311
+ pm_labels,
312
+ default_idx,
313
+ t(lang, "hint.select"),
314
+ ),
315
+ (pm_idx) => {
316
+ let $3 = pm_idx < 0;
317
+ if ($3) {
318
+ return cancel(lang);
319
+ } else {
320
+ let pm = $result.unwrap(list_at(pms, pm_idx), "npm");
321
+ cleanup();
322
+ return $promise.resolve(new Options(name, pm, lang));
323
+ }
324
+ },
325
+ );
326
+ } else {
327
+ return cancel(lang);
328
+ }
329
+ },
330
+ );
331
+ }
332
+ },
333
+ );
334
+ }
@@ -0,0 +1,32 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+
4
+ export function dir_exists(name) {
5
+ return existsSync(resolve(process.cwd(), name));
6
+ }
7
+
8
+ export function detect_pm() {
9
+ const ua = process.env.npm_config_user_agent || "";
10
+ if (ua.startsWith("pnpm/")) return "pnpm";
11
+ if (ua.startsWith("yarn/")) return "yarn";
12
+ if (ua.startsWith("bun/")) return "bun";
13
+ return "npm";
14
+ }
15
+
16
+ export function process_exit(code) {
17
+ process.exit(code);
18
+ }
19
+
20
+ export function is_valid_name(name) {
21
+ return /^[a-zA-Z][a-zA-Z0-9\-_]*$/.test(name);
22
+ }
23
+
24
+ export function split_words(input) {
25
+ let result = input.replace(/([a-z])([A-Z])/g, "$1 $2");
26
+ result = result.replace(/([0-9])([a-zA-Z])/g, "$1 $2");
27
+ result = result.replace(/([a-zA-Z])([0-9])/g, "$1 $2");
28
+ return result
29
+ .split(/[-_\s]+/)
30
+ .map((w) => w.trim().toLowerCase())
31
+ .filter((w) => w.length > 0);
32
+ }