@shd101wyy/yo 0.1.25 → 0.1.27

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 (194) hide show
  1. package/.github/skills/yo-async-effects/SKILL.md +4 -4
  2. package/.github/skills/yo-async-effects/async-effects-recipes.md +40 -40
  3. package/.github/skills/yo-core-patterns/SKILL.md +1 -1
  4. package/.github/skills/yo-core-patterns/core-patterns-cheatsheet.md +30 -26
  5. package/.github/skills/yo-project-workflow/SKILL.md +6 -3
  6. package/.github/skills/yo-project-workflow/workflow-cheatsheet.md +34 -11
  7. package/.github/skills/yo-syntax/SKILL.md +7 -6
  8. package/.github/skills/yo-syntax/syntax-cheatsheet.md +78 -60
  9. package/.github/skills/yo-wasm-integration/wasm-integration-cheatsheet.md +3 -3
  10. package/README.md +10 -8
  11. package/out/cjs/index.cjs +583 -567
  12. package/out/cjs/yo-cli.cjs +664 -632
  13. package/out/cjs/yo-lsp.cjs +510 -485
  14. package/out/esm/index.mjs +538 -522
  15. package/out/types/src/codegen/codegen-c.d.ts +2 -2
  16. package/out/types/src/codegen/functions/collection.d.ts +2 -2
  17. package/out/types/src/codegen/functions/context.d.ts +3 -2
  18. package/out/types/src/codegen/types/collection.d.ts +2 -2
  19. package/out/types/src/codegen/utils/index.d.ts +3 -1
  20. package/out/types/src/doc/builder.d.ts +2 -2
  21. package/out/types/src/evaluator/calls/closure-type.d.ts +2 -2
  22. package/out/types/src/evaluator/calls/record-type.d.ts +11 -0
  23. package/out/types/src/evaluator/context.d.ts +8 -9
  24. package/out/types/src/evaluator/index.d.ts +3 -3
  25. package/out/types/src/evaluator/types/record.d.ts +14 -0
  26. package/out/types/src/evaluator/types/validation.d.ts +2 -2
  27. package/out/types/src/evaluator/values/anonymous-module.d.ts +5 -5
  28. package/out/types/src/evaluator/values/impl.d.ts +1 -1
  29. package/out/types/src/expr.d.ts +1 -4
  30. package/out/types/src/formatter.d.ts +11 -0
  31. package/out/types/src/function-value.d.ts +1 -1
  32. package/out/types/src/lsp/document-manager.d.ts +1 -1
  33. package/out/types/src/lsp/formatting.d.ts +2 -0
  34. package/out/types/src/module-manager.d.ts +3 -3
  35. package/out/types/src/tests/formatter.test.d.ts +1 -0
  36. package/out/types/src/types/creators.d.ts +3 -4
  37. package/out/types/src/types/definitions.d.ts +8 -19
  38. package/out/types/src/types/guards.d.ts +3 -3
  39. package/out/types/src/types/tags.d.ts +0 -1
  40. package/out/types/src/types/utils.d.ts +1 -1
  41. package/out/types/src/value-tag.d.ts +0 -1
  42. package/out/types/src/value.d.ts +6 -13
  43. package/out/types/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +1 -1
  45. package/std/alg/hash.yo +13 -21
  46. package/std/allocator.yo +25 -40
  47. package/std/async.yo +3 -7
  48. package/std/build.yo +105 -151
  49. package/std/cli/arg_parser.yo +184 -169
  50. package/std/collections/array_list.yo +350 -314
  51. package/std/collections/btree_map.yo +142 -131
  52. package/std/collections/deque.yo +132 -128
  53. package/std/collections/hash_map.yo +542 -566
  54. package/std/collections/hash_set.yo +623 -687
  55. package/std/collections/linked_list.yo +275 -293
  56. package/std/collections/ordered_map.yo +113 -85
  57. package/std/collections/priority_queue.yo +73 -73
  58. package/std/crypto/md5.yo +191 -95
  59. package/std/crypto/random.yo +56 -64
  60. package/std/crypto/sha256.yo +151 -107
  61. package/std/encoding/base64.yo +87 -81
  62. package/std/encoding/hex.yo +43 -50
  63. package/std/encoding/html.yo +56 -81
  64. package/std/encoding/html_char_utils.yo +7 -13
  65. package/std/encoding/html_entities.yo +2248 -2253
  66. package/std/encoding/json.yo +316 -224
  67. package/std/encoding/punycode.yo +86 -116
  68. package/std/encoding/toml.yo +67 -66
  69. package/std/encoding/utf16.yo +37 -44
  70. package/std/env.yo +62 -91
  71. package/std/error.yo +12 -20
  72. package/std/fmt/display.yo +5 -9
  73. package/std/fmt/index.yo +8 -14
  74. package/std/fmt/to_string.yo +330 -315
  75. package/std/fmt/writer.yo +58 -87
  76. package/std/fs/dir.yo +83 -102
  77. package/std/fs/file.yo +147 -180
  78. package/std/fs/metadata.yo +45 -78
  79. package/std/fs/temp.yo +55 -65
  80. package/std/fs/types.yo +27 -40
  81. package/std/fs/walker.yo +53 -68
  82. package/std/gc.yo +5 -8
  83. package/std/glob.yo +30 -43
  84. package/std/http/client.yo +107 -120
  85. package/std/http/http.yo +106 -96
  86. package/std/http/index.yo +4 -6
  87. package/std/imm/list.yo +88 -93
  88. package/std/imm/map.yo +528 -464
  89. package/std/imm/set.yo +52 -57
  90. package/std/imm/sorted_map.yo +340 -286
  91. package/std/imm/sorted_set.yo +57 -63
  92. package/std/imm/string.yo +404 -345
  93. package/std/imm/vec.yo +173 -181
  94. package/std/io/reader.yo +3 -6
  95. package/std/io/writer.yo +4 -8
  96. package/std/libc/assert.yo +5 -9
  97. package/std/libc/ctype.yo +32 -22
  98. package/std/libc/dirent.yo +26 -25
  99. package/std/libc/errno.yo +164 -90
  100. package/std/libc/fcntl.yo +52 -45
  101. package/std/libc/float.yo +66 -44
  102. package/std/libc/limits.yo +42 -33
  103. package/std/libc/math.yo +53 -82
  104. package/std/libc/signal.yo +72 -47
  105. package/std/libc/stdatomic.yo +217 -188
  106. package/std/libc/stdint.yo +5 -29
  107. package/std/libc/stdio.yo +5 -29
  108. package/std/libc/stdlib.yo +32 -39
  109. package/std/libc/string.yo +5 -23
  110. package/std/libc/sys/stat.yo +58 -56
  111. package/std/libc/time.yo +5 -19
  112. package/std/libc/unistd.yo +5 -20
  113. package/std/libc/wctype.yo +6 -9
  114. package/std/libc/windows.yo +26 -30
  115. package/std/log.yo +41 -55
  116. package/std/net/addr.yo +102 -97
  117. package/std/net/dns.yo +27 -28
  118. package/std/net/errors.yo +50 -49
  119. package/std/net/tcp.yo +113 -124
  120. package/std/net/udp.yo +55 -66
  121. package/std/os/env.yo +35 -33
  122. package/std/os/signal.yo +15 -25
  123. package/std/path.yo +276 -311
  124. package/std/prelude.yo +6316 -4333
  125. package/std/process/command.yo +87 -103
  126. package/std/process/index.yo +12 -31
  127. package/std/regex/compiler.yo +196 -95
  128. package/std/regex/flags.yo +58 -39
  129. package/std/regex/index.yo +157 -173
  130. package/std/regex/match.yo +20 -31
  131. package/std/regex/node.yo +134 -152
  132. package/std/regex/parser.yo +283 -259
  133. package/std/regex/unicode.yo +172 -202
  134. package/std/regex/vm.yo +155 -171
  135. package/std/string/index.yo +5 -7
  136. package/std/string/rune.yo +45 -55
  137. package/std/string/string.yo +937 -964
  138. package/std/string/string_builder.yo +94 -104
  139. package/std/string/unicode.yo +46 -64
  140. package/std/sync/channel.yo +72 -73
  141. package/std/sync/cond.yo +31 -36
  142. package/std/sync/mutex.yo +30 -32
  143. package/std/sync/once.yo +13 -16
  144. package/std/sync/rwlock.yo +26 -31
  145. package/std/sync/waitgroup.yo +20 -25
  146. package/std/sys/advise.yo +16 -24
  147. package/std/sys/bufio/buf_reader.yo +77 -93
  148. package/std/sys/bufio/buf_writer.yo +52 -65
  149. package/std/sys/clock.yo +4 -9
  150. package/std/sys/constants.yo +77 -61
  151. package/std/sys/copy.yo +4 -10
  152. package/std/sys/dir.yo +26 -43
  153. package/std/sys/dns.yo +41 -61
  154. package/std/sys/errors.yo +95 -103
  155. package/std/sys/events.yo +45 -57
  156. package/std/sys/externs.yo +319 -267
  157. package/std/sys/fallocate.yo +7 -11
  158. package/std/sys/fcntl.yo +14 -22
  159. package/std/sys/file.yo +26 -40
  160. package/std/sys/future.yo +5 -8
  161. package/std/sys/iov.yo +12 -25
  162. package/std/sys/lock.yo +12 -13
  163. package/std/sys/mmap.yo +38 -43
  164. package/std/sys/path.yo +3 -8
  165. package/std/sys/perm.yo +7 -21
  166. package/std/sys/pipe.yo +5 -12
  167. package/std/sys/process.yo +23 -29
  168. package/std/sys/seek.yo +10 -12
  169. package/std/sys/signal.yo +7 -13
  170. package/std/sys/signals.yo +52 -35
  171. package/std/sys/socket.yo +63 -58
  172. package/std/sys/socketpair.yo +3 -6
  173. package/std/sys/sockinfo.yo +11 -20
  174. package/std/sys/statfs.yo +11 -34
  175. package/std/sys/statx.yo +25 -52
  176. package/std/sys/sysinfo.yo +15 -20
  177. package/std/sys/tcp.yo +62 -92
  178. package/std/sys/temp.yo +5 -9
  179. package/std/sys/time.yo +5 -15
  180. package/std/sys/timer.yo +6 -11
  181. package/std/sys/tty.yo +10 -18
  182. package/std/sys/udp.yo +22 -39
  183. package/std/sys/umask.yo +3 -6
  184. package/std/sys/unix.yo +33 -52
  185. package/std/testing/bench.yo +49 -52
  186. package/std/thread.yo +10 -15
  187. package/std/time/datetime.yo +105 -89
  188. package/std/time/duration.yo +43 -56
  189. package/std/time/instant.yo +13 -18
  190. package/std/time/sleep.yo +5 -9
  191. package/std/url/index.yo +184 -209
  192. package/std/worker.yo +6 -10
  193. package/out/types/src/evaluator/calls/module-type.d.ts +0 -11
  194. package/out/types/src/evaluator/types/module.d.ts +0 -19
@@ -1,11 +1,9 @@
1
1
  //! String and Unicode types.
2
-
3
- _rune :: import "./rune.yo";
4
- _string :: import "./string.yo";
5
- _string_builder :: import "./string_builder.yo";
6
-
7
- export
2
+ _rune :: import("./rune.yo");
3
+ _string :: import("./string.yo");
4
+ _string_builder :: import("./string_builder.yo");
5
+ export(
8
6
  ...(_rune),
9
7
  ...(_string),
10
8
  ...(_string_builder)
11
- ;
9
+ );
@@ -1,83 +1,73 @@
1
1
  //! Unicode code point type (`rune`) for representing individual characters.
2
-
3
2
  /// Unicode code point (U+0000 to U+10FFFF, excluding surrogates).
4
3
  /// Similar to Go's `rune` or Rust's `char`.
5
4
  rune :: newtype(
6
5
  /// The raw Unicode code point value.
7
6
  char : u32
8
7
  );
9
- impl(rune,
8
+ impl(
9
+ rune,
10
10
  /// Create a rune from a `u32` value, returning `None` if the value is not a valid Unicode code point.
11
- from_u32 : (fn(value: u32) -> Option(Self))(
11
+ from_u32 : (fn(value : u32) -> Option(Self))(
12
12
  cond(
13
- ((value <= u32(0x10FFFF)) && (((value < 0xD800) || (value > 0xDFFF)))) => .Some(Self(value)),
14
- true => .None
13
+ ((value <= u32(0x10FFFF)) && ((value < 0xD800) || (value > 0xDFFF))) =>.Some(Self(value)),
14
+ true =>.None
15
15
  )
16
16
  ),
17
-
18
17
  /// Return the raw `u32` code point value.
19
- to_u32 : (fn(self: Self) -> u32)(
18
+ to_u32 : (fn(self : Self) -> u32)(
20
19
  self.char
21
20
  ),
22
-
23
21
  /// Check if this is an ASCII character (U+0000 to U+007F).
24
- is_ascii : (fn(self: Self) -> bool)(
25
- (self.char <= 0x7F)
22
+ is_ascii : (fn(self : Self) -> bool)(
23
+ self.char <= 0x7F
26
24
  ),
27
-
28
25
  /// Check if this is a whitespace character (space, tab, newline, or carriage return).
29
- is_whitespace : (fn(self: Self) -> bool)(
30
- (((self.char == 0x20) || (self.char == 0x09)) || ((self.char == 0x0A) || (self.char == 0x0D)))
26
+ is_whitespace : (fn(self : Self) -> bool)(
27
+ ((self.char == 0x20) || (self.char == 0x09)) || ((self.char == 0x0A) || (self.char == 0x0D))
31
28
  ),
32
-
33
29
  /// Check if this is an ASCII digit ('0' to '9').
34
- is_digit : (fn(self: Self) -> bool)(
35
- ((self.char >= 0x30) && (self.char <= 0x39))
30
+ is_digit : (fn(self : Self) -> bool)(
31
+ (self.char >= 0x30) && (self.char <= 0x39)
36
32
  ),
37
-
38
33
  /// Check if this is an ASCII letter ('A'-'Z' or 'a'-'z').
39
- is_alphabetic : (fn(self: Self) -> bool)(
40
- (((self.char >= 0x41) && (self.char <= 0x5A)) || ((self.char >= 0x61) && (self.char <= 0x7A)))
34
+ is_alphabetic : (fn(self : Self) -> bool)(
35
+ ((self.char >= 0x41) && (self.char <= 0x5A)) || ((self.char >= 0x61) && (self.char <= 0x7A))
41
36
  ),
42
-
43
37
  /// Check if this is an ASCII uppercase letter ('A'-'Z').
44
- is_uppercase : (fn(self: Self) -> bool)(
45
- ((self.char >= 0x41) && (self.char <= 0x5A))
38
+ is_uppercase : (fn(self : Self) -> bool)(
39
+ (self.char >= 0x41) && (self.char <= 0x5A)
46
40
  ),
47
-
48
41
  /// Check if this is an ASCII lowercase letter ('a'-'z').
49
- is_lowercase : (fn(self: Self) -> bool)(
50
- ((self.char >= 0x61) && (self.char <= 0x7A))
42
+ is_lowercase : (fn(self : Self) -> bool)(
43
+ (self.char >= 0x61) && (self.char <= 0x7A)
51
44
  ),
52
-
53
45
  /// Convert to lowercase. Only affects ASCII uppercase letters.
54
- to_lowercase : (fn(self: Self) -> Self)(
46
+ to_lowercase : (fn(self : Self) -> Self)(
55
47
  cond(
56
- is_uppercase(self) => Self((self.char + 32)),
48
+ is_uppercase(self) => Self(self.char + 32),
57
49
  true => self
58
50
  )
59
51
  ),
60
-
61
52
  /// Convert to uppercase. Only affects ASCII lowercase letters.
62
- to_uppercase : (fn(self: Self) -> Self)(
53
+ to_uppercase : (fn(self : Self) -> Self)(
63
54
  cond(
64
- is_lowercase(self) => Self((self.char - 32)),
55
+ is_lowercase(self) => Self(self.char - 32),
65
56
  true => self
66
57
  )
67
58
  ),
68
-
69
59
  /// Null character (U+0000).
70
- NUL : Self(0x00),
60
+ NUL : Self(0x00),
71
61
  /// Horizontal tab (U+0009).
72
- TAB : Self(0x09),
62
+ TAB : Self(0x09),
73
63
  /// Line feed / newline (U+000A).
74
- NEWLINE : Self(0x0A),
64
+ NEWLINE : Self(0x0A),
75
65
  /// Space (U+0020).
76
- SPACE : Self(0x20),
66
+ SPACE : Self(0x20),
77
67
  /// Digit zero '0' (U+0030).
78
- ZERO : Self(0x30),
68
+ ZERO : Self(0x30),
79
69
  /// Digit nine '9' (U+0039).
80
- NINE : Self(0x39),
70
+ NINE : Self(0x39),
81
71
  /// Uppercase 'A' (U+0041).
82
72
  UPPERCASE_A : Self(0x41),
83
73
  /// Uppercase 'Z' (U+005A).
@@ -87,21 +77,21 @@ impl(rune,
87
77
  /// Lowercase 'z' (U+007A).
88
78
  LOWERCASE_Z : Self(0x7A)
89
79
  );
90
-
91
- impl(rune, Eq(rune)(
92
- (==) : ((a, b) -> (a.char == b.char)),
93
- (!=) : ((a, b) -> (a.char != b.char))
94
- ));
95
-
96
- impl(rune, Ord(rune)(
97
- (<) : ((a, b) -> (a.char < b.char)),
98
- (<=) : ((a, b) -> (a.char <= b.char)),
99
- (>) : ((a, b) -> (a.char > b.char)),
100
- (>=) : ((a, b) -> (a.char >= b.char))
101
- ));
102
-
80
+ impl(
81
+ rune,
82
+ Eq(rune)(
83
+ (==) : ((a, b) -> (a.char == b.char)),
84
+ (!=) : ((a, b) -> (a.char != b.char))
85
+ )
86
+ );
87
+ impl(
88
+ rune,
89
+ Ord(rune)(
90
+ (<) : ((a, b) -> (a.char < b.char)),
91
+ (<=) : ((a, b) -> (a.char <= b.char)),
92
+ (>) : ((a, b) -> (a.char > b.char)),
93
+ (>=) : ((a, b) -> (a.char >= b.char))
94
+ )
95
+ );
103
96
  impl(rune, Send());
104
-
105
- export
106
- rune
107
- ;
97
+ export(rune);