@devaloop/devalang 0.0.1-beta.2 → 0.1.1

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 (329) hide show
  1. package/README.md +177 -146
  2. package/out-tsc/api.d.ts +180 -0
  3. package/out-tsc/api.d.ts.map +1 -0
  4. package/out-tsc/api.js +286 -0
  5. package/out-tsc/api.js.map +1 -0
  6. package/out-tsc/bin/index.d.ts +12 -0
  7. package/out-tsc/bin/index.d.ts.map +1 -0
  8. package/out-tsc/bin/index.js +20 -54
  9. package/out-tsc/bin/index.js.map +1 -0
  10. package/out-tsc/examples/basic-usage.d.ts +8 -0
  11. package/out-tsc/examples/basic-usage.d.ts.map +1 -0
  12. package/out-tsc/examples/basic-usage.js +113 -0
  13. package/out-tsc/examples/basic-usage.js.map +1 -0
  14. package/out-tsc/index.d.ts +19 -5
  15. package/out-tsc/index.d.ts.map +1 -0
  16. package/out-tsc/index.js +24 -6
  17. package/out-tsc/index.js.map +1 -0
  18. package/out-tsc/scripts/copy-wasm-dts.d.ts +7 -0
  19. package/out-tsc/scripts/copy-wasm-dts.d.ts.map +1 -0
  20. package/out-tsc/scripts/copy-wasm-dts.js +36 -32
  21. package/out-tsc/scripts/copy-wasm-dts.js.map +1 -0
  22. package/out-tsc/scripts/postinstall.d.ts +1 -0
  23. package/out-tsc/scripts/postinstall.d.ts.map +1 -0
  24. package/out-tsc/scripts/postinstall.js +4 -1
  25. package/out-tsc/scripts/postinstall.js.map +1 -0
  26. package/out-tsc/scripts/version/bump.d.ts +5 -1
  27. package/out-tsc/scripts/version/bump.d.ts.map +1 -0
  28. package/out-tsc/scripts/version/bump.js +114 -44
  29. package/out-tsc/scripts/version/bump.js.map +1 -0
  30. package/out-tsc/scripts/version/fetch.d.ts +12 -1
  31. package/out-tsc/scripts/version/fetch.d.ts.map +1 -0
  32. package/out-tsc/scripts/version/fetch.js +68 -24
  33. package/out-tsc/scripts/version/fetch.js.map +1 -0
  34. package/out-tsc/scripts/version/index.d.ts +6 -0
  35. package/out-tsc/scripts/version/index.d.ts.map +1 -0
  36. package/out-tsc/scripts/version/index.js +44 -22
  37. package/out-tsc/scripts/version/index.js.map +1 -0
  38. package/out-tsc/scripts/version/sync.d.ts +5 -1
  39. package/out-tsc/scripts/version/sync.d.ts.map +1 -0
  40. package/out-tsc/scripts/version/sync.js +78 -29
  41. package/out-tsc/scripts/version/sync.js.map +1 -0
  42. package/out-tsc/types.d.ts +68 -0
  43. package/out-tsc/types.d.ts.map +1 -0
  44. package/out-tsc/{core/types/value.js → types.js} +4 -0
  45. package/out-tsc/types.js.map +1 -0
  46. package/out-tsc/wasm.d.ts +8 -0
  47. package/out-tsc/wasm.d.ts.map +1 -0
  48. package/out-tsc/{core/index.js → wasm.js} +9 -6
  49. package/out-tsc/wasm.js.map +1 -0
  50. package/package.json +50 -37
  51. package/.cargo/config.toml +0 -2
  52. package/.devalang +0 -9
  53. package/.github/workflows/ci.yml +0 -103
  54. package/Cargo.toml +0 -81
  55. package/docs/CHANGELOG.md +0 -581
  56. package/docs/CONTRIBUTING.md +0 -101
  57. package/docs/ROADMAP.md +0 -38
  58. package/docs/TODO.md +0 -71
  59. package/examples/automation.deva +0 -42
  60. package/examples/bank.deva +0 -7
  61. package/examples/bus.deva +0 -10
  62. package/examples/condition.deva +0 -20
  63. package/examples/duration.deva +0 -9
  64. package/examples/effect.deva +0 -2
  65. package/examples/events.deva +0 -12
  66. package/examples/filter.deva +0 -11
  67. package/examples/function.deva +0 -15
  68. package/examples/group.deva +0 -12
  69. package/examples/index.deva +0 -63
  70. package/examples/lfo.deva +0 -9
  71. package/examples/loop.deva +0 -10
  72. package/examples/pattern.deva +0 -8
  73. package/examples/plugin.deva +0 -16
  74. package/examples/samples/hat-808.wav +0 -0
  75. package/examples/samples/kick-808.wav +0 -0
  76. package/examples/synth.deva +0 -24
  77. package/examples/synth_types.deva +0 -17
  78. package/examples/variables.deva +0 -9
  79. package/out-tsc/core/functions/index.d.ts +0 -42
  80. package/out-tsc/core/functions/index.js +0 -87
  81. package/out-tsc/core/index.d.ts +0 -6
  82. package/out-tsc/core/types/index.d.ts +0 -4
  83. package/out-tsc/core/types/index.js +0 -20
  84. package/out-tsc/core/types/plugin.d.ts +0 -18
  85. package/out-tsc/core/types/plugin.js +0 -2
  86. package/out-tsc/core/types/result.d.ts +0 -27
  87. package/out-tsc/core/types/result.js +0 -2
  88. package/out-tsc/core/types/statement.d.ts +0 -106
  89. package/out-tsc/core/types/statement.js +0 -2
  90. package/out-tsc/core/types/value.d.ts +0 -43
  91. package/out-tsc/pkg/devalang_core.d.ts +0 -15
  92. package/out-tsc/pkg/devalang_core.js +0 -65
  93. package/out-tsc/pkg/devalang_core_bg.wasm.d.ts +0 -34
  94. package/project-version.json +0 -6
  95. package/rust/cli/bank/api.rs +0 -122
  96. package/rust/cli/bank/commands.rs +0 -306
  97. package/rust/cli/bank/mod.rs +0 -29
  98. package/rust/cli/build/commands.rs +0 -153
  99. package/rust/cli/build/mod.rs +0 -2
  100. package/rust/cli/build/process.rs +0 -165
  101. package/rust/cli/check/mod.rs +0 -208
  102. package/rust/cli/discover/commands.rs +0 -253
  103. package/rust/cli/discover/config.rs +0 -111
  104. package/rust/cli/discover/fs.rs +0 -19
  105. package/rust/cli/discover/install.rs +0 -103
  106. package/rust/cli/discover/metadata.rs +0 -48
  107. package/rust/cli/discover/mod.rs +0 -5
  108. package/rust/cli/init/commands.rs +0 -88
  109. package/rust/cli/init/mod.rs +0 -1
  110. package/rust/cli/install/addon.rs +0 -118
  111. package/rust/cli/install/bank.rs +0 -72
  112. package/rust/cli/install/commands.rs +0 -35
  113. package/rust/cli/install/mod.rs +0 -4
  114. package/rust/cli/install/plugin.rs +0 -80
  115. package/rust/cli/login/commands.rs +0 -124
  116. package/rust/cli/login/mod.rs +0 -1
  117. package/rust/cli/mod.rs +0 -12
  118. package/rust/cli/parser.rs +0 -359
  119. package/rust/cli/play/commands.rs +0 -375
  120. package/rust/cli/play/io.rs +0 -17
  121. package/rust/cli/play/mod.rs +0 -5
  122. package/rust/cli/play/process.rs +0 -159
  123. package/rust/cli/play/realtime.rs +0 -91
  124. package/rust/cli/play/utils.rs +0 -23
  125. package/rust/cli/telemetry/commands.rs +0 -22
  126. package/rust/cli/telemetry/event_creator.rs +0 -80
  127. package/rust/cli/telemetry/mod.rs +0 -3
  128. package/rust/cli/telemetry/send.rs +0 -51
  129. package/rust/cli/template/commands.rs +0 -69
  130. package/rust/cli/template/mod.rs +0 -1
  131. package/rust/cli/update/commands.rs +0 -6
  132. package/rust/cli/update/mod.rs +0 -1
  133. package/rust/config/driver.rs +0 -112
  134. package/rust/config/mod.rs +0 -3
  135. package/rust/config/ops.rs +0 -26
  136. package/rust/config/settings.rs +0 -101
  137. package/rust/core/audio/engine/driver.rs +0 -220
  138. package/rust/core/audio/engine/export.rs +0 -169
  139. package/rust/core/audio/engine/helpers.rs +0 -178
  140. package/rust/core/audio/engine/mod.rs +0 -56
  141. package/rust/core/audio/engine/notes/dsp.rs +0 -85
  142. package/rust/core/audio/engine/notes/mod.rs +0 -44
  143. package/rust/core/audio/engine/notes/params.rs +0 -294
  144. package/rust/core/audio/engine/sample/insert.rs +0 -199
  145. package/rust/core/audio/engine/sample/mod.rs +0 -40
  146. package/rust/core/audio/engine/sample/padding.rs +0 -170
  147. package/rust/core/audio/evaluator/condition.rs +0 -61
  148. package/rust/core/audio/evaluator/mod.rs +0 -9
  149. package/rust/core/audio/evaluator/numeric.rs +0 -152
  150. package/rust/core/audio/evaluator/rhs.rs +0 -16
  151. package/rust/core/audio/evaluator/string_expr.rs +0 -94
  152. package/rust/core/audio/interpreter/driver.rs +0 -574
  153. package/rust/core/audio/interpreter/mod.rs +0 -2
  154. package/rust/core/audio/interpreter/statements/arrow_call/interprete.rs +0 -175
  155. package/rust/core/audio/interpreter/statements/arrow_call/methods/chord.rs +0 -384
  156. package/rust/core/audio/interpreter/statements/arrow_call/methods/mod.rs +0 -2
  157. package/rust/core/audio/interpreter/statements/arrow_call/methods/note.rs +0 -316
  158. package/rust/core/audio/interpreter/statements/arrow_call/mod.rs +0 -3
  159. package/rust/core/audio/interpreter/statements/arrow_call/types/arp.rs +0 -192
  160. package/rust/core/audio/interpreter/statements/arrow_call/types/mod.rs +0 -24
  161. package/rust/core/audio/interpreter/statements/arrow_call/types/pad.rs +0 -116
  162. package/rust/core/audio/interpreter/statements/arrow_call/types/pluck.rs +0 -97
  163. package/rust/core/audio/interpreter/statements/arrow_call/types/sub.rs +0 -100
  164. package/rust/core/audio/interpreter/statements/automate.rs +0 -16
  165. package/rust/core/audio/interpreter/statements/call.rs +0 -295
  166. package/rust/core/audio/interpreter/statements/condition.rs +0 -72
  167. package/rust/core/audio/interpreter/statements/function.rs +0 -24
  168. package/rust/core/audio/interpreter/statements/let_.rs +0 -36
  169. package/rust/core/audio/interpreter/statements/load.rs +0 -17
  170. package/rust/core/audio/interpreter/statements/loop_.rs +0 -115
  171. package/rust/core/audio/interpreter/statements/mod.rs +0 -12
  172. package/rust/core/audio/interpreter/statements/sleep.rs +0 -28
  173. package/rust/core/audio/interpreter/statements/spawn.rs +0 -253
  174. package/rust/core/audio/interpreter/statements/tempo.rs +0 -40
  175. package/rust/core/audio/interpreter/statements/trigger.rs +0 -239
  176. package/rust/core/audio/loader/mod.rs +0 -1
  177. package/rust/core/audio/loader/trigger.rs +0 -98
  178. package/rust/core/audio/mod.rs +0 -6
  179. package/rust/core/audio/player.rs +0 -70
  180. package/rust/core/audio/special/easing.rs +0 -189
  181. package/rust/core/audio/special/env.rs +0 -45
  182. package/rust/core/audio/special/math.rs +0 -134
  183. package/rust/core/audio/special/mod.rs +0 -9
  184. package/rust/core/audio/special/modulator.rs +0 -143
  185. package/rust/core/builder/mod.rs +0 -129
  186. package/rust/core/debugger/lexer.rs +0 -27
  187. package/rust/core/debugger/logs.rs +0 -52
  188. package/rust/core/debugger/mod.rs +0 -30
  189. package/rust/core/debugger/preprocessor.rs +0 -27
  190. package/rust/core/debugger/store.rs +0 -38
  191. package/rust/core/error/mod.rs +0 -269
  192. package/rust/core/lexer/driver.rs +0 -59
  193. package/rust/core/lexer/handler/arrow.rs +0 -82
  194. package/rust/core/lexer/handler/at.rs +0 -21
  195. package/rust/core/lexer/handler/brace.rs +0 -41
  196. package/rust/core/lexer/handler/colon.rs +0 -21
  197. package/rust/core/lexer/handler/comment.rs +0 -30
  198. package/rust/core/lexer/handler/dot.rs +0 -21
  199. package/rust/core/lexer/handler/driver.rs +0 -337
  200. package/rust/core/lexer/handler/identifier.rs +0 -47
  201. package/rust/core/lexer/handler/indent.rs +0 -66
  202. package/rust/core/lexer/handler/mod.rs +0 -15
  203. package/rust/core/lexer/handler/newline.rs +0 -23
  204. package/rust/core/lexer/handler/number.rs +0 -31
  205. package/rust/core/lexer/handler/operator.rs +0 -46
  206. package/rust/core/lexer/handler/parenthesis.rs +0 -41
  207. package/rust/core/lexer/handler/slash.rs +0 -21
  208. package/rust/core/lexer/handler/string.rs +0 -63
  209. package/rust/core/lexer/mod.rs +0 -3
  210. package/rust/core/lexer/token.rs +0 -91
  211. package/rust/core/mod.rs +0 -9
  212. package/rust/core/parser/driver/block.rs +0 -111
  213. package/rust/core/parser/driver/cursor.rs +0 -82
  214. package/rust/core/parser/driver/driver_impl.rs +0 -139
  215. package/rust/core/parser/driver/mod.rs +0 -6
  216. package/rust/core/parser/driver/parse_array.rs +0 -120
  217. package/rust/core/parser/driver/parse_map.rs +0 -223
  218. package/rust/core/parser/driver/parser.rs +0 -160
  219. package/rust/core/parser/handler/arrow_call.rs +0 -277
  220. package/rust/core/parser/handler/at.rs +0 -279
  221. package/rust/core/parser/handler/bank.rs +0 -104
  222. package/rust/core/parser/handler/condition.rs +0 -83
  223. package/rust/core/parser/handler/dot.rs +0 -148
  224. package/rust/core/parser/handler/identifier/automate.rs +0 -254
  225. package/rust/core/parser/handler/identifier/call.rs +0 -91
  226. package/rust/core/parser/handler/identifier/emit.rs +0 -70
  227. package/rust/core/parser/handler/identifier/function.rs +0 -113
  228. package/rust/core/parser/handler/identifier/group.rs +0 -89
  229. package/rust/core/parser/handler/identifier/let_.rs +0 -173
  230. package/rust/core/parser/handler/identifier/mod.rs +0 -55
  231. package/rust/core/parser/handler/identifier/on.rs +0 -107
  232. package/rust/core/parser/handler/identifier/print.rs +0 -49
  233. package/rust/core/parser/handler/identifier/sleep.rs +0 -96
  234. package/rust/core/parser/handler/identifier/spawn.rs +0 -91
  235. package/rust/core/parser/handler/identifier/synth.rs +0 -135
  236. package/rust/core/parser/handler/loop_.rs +0 -194
  237. package/rust/core/parser/handler/mod.rs +0 -9
  238. package/rust/core/parser/handler/pattern.rs +0 -74
  239. package/rust/core/parser/handler/tempo.rs +0 -105
  240. package/rust/core/parser/mod.rs +0 -3
  241. package/rust/core/parser/statement.rs +0 -10
  242. package/rust/core/plugin/loader.rs +0 -137
  243. package/rust/core/plugin/mod.rs +0 -2
  244. package/rust/core/plugin/runner/mod.rs +0 -11
  245. package/rust/core/plugin/runner/non_wasm.rs +0 -297
  246. package/rust/core/plugin/runner/wasm32.rs +0 -43
  247. package/rust/core/preprocessor/loader/inject.rs +0 -278
  248. package/rust/core/preprocessor/loader/loader_helpers.rs +0 -110
  249. package/rust/core/preprocessor/loader/mod.rs +0 -235
  250. package/rust/core/preprocessor/mod.rs +0 -4
  251. package/rust/core/preprocessor/module.rs +0 -55
  252. package/rust/core/preprocessor/processor/handlers.rs +0 -107
  253. package/rust/core/preprocessor/processor/mod.rs +0 -1
  254. package/rust/core/preprocessor/resolver/bank.rs +0 -49
  255. package/rust/core/preprocessor/resolver/call.rs +0 -124
  256. package/rust/core/preprocessor/resolver/condition.rs +0 -95
  257. package/rust/core/preprocessor/resolver/driver.rs +0 -324
  258. package/rust/core/preprocessor/resolver/function.rs +0 -69
  259. package/rust/core/preprocessor/resolver/group.rs +0 -122
  260. package/rust/core/preprocessor/resolver/let_.rs +0 -32
  261. package/rust/core/preprocessor/resolver/loop_.rs +0 -318
  262. package/rust/core/preprocessor/resolver/mod.rs +0 -16
  263. package/rust/core/preprocessor/resolver/pattern.rs +0 -83
  264. package/rust/core/preprocessor/resolver/spawn.rs +0 -99
  265. package/rust/core/preprocessor/resolver/synth.rs +0 -54
  266. package/rust/core/preprocessor/resolver/tempo.rs +0 -48
  267. package/rust/core/preprocessor/resolver/trigger.rs +0 -116
  268. package/rust/core/preprocessor/resolver/value.rs +0 -176
  269. package/rust/core/store/global.rs +0 -57
  270. package/rust/core/store/mod.rs +0 -1
  271. package/rust/lib.rs +0 -323
  272. package/rust/main.rs +0 -388
  273. package/rust/types/Cargo.toml +0 -11
  274. package/rust/types/src/addons.rs +0 -55
  275. package/rust/types/src/ast.rs +0 -202
  276. package/rust/types/src/config.rs +0 -84
  277. package/rust/types/src/lib.rs +0 -15
  278. package/rust/types/src/plugin.rs +0 -20
  279. package/rust/types/src/store.rs +0 -139
  280. package/rust/types/src/telemetry.rs +0 -85
  281. package/rust/utils/Cargo.toml +0 -26
  282. package/rust/utils/src/error.rs +0 -186
  283. package/rust/utils/src/file.rs +0 -94
  284. package/rust/utils/src/first_usage.rs +0 -97
  285. package/rust/utils/src/lib.rs +0 -9
  286. package/rust/utils/src/logger.rs +0 -200
  287. package/rust/utils/src/path.rs +0 -129
  288. package/rust/utils/src/signature.rs +0 -41
  289. package/rust/utils/src/spinner.rs +0 -20
  290. package/rust/utils/src/version.rs +0 -27
  291. package/rust/utils/src/watcher.rs +0 -46
  292. package/rust/web/api.rs +0 -5
  293. package/rust/web/cdn.rs +0 -34
  294. package/rust/web/mod.rs +0 -3
  295. package/rust/web/sso.rs +0 -5
  296. package/templates/minimal/.devalang +0 -5
  297. package/templates/minimal/README.md +0 -218
  298. package/templates/minimal/src/index.deva +0 -2
  299. package/templates/welcome/.devalang +0 -5
  300. package/templates/welcome/README.md +0 -218
  301. package/templates/welcome/samples/kick-808.wav +0 -0
  302. package/templates/welcome/src/index.deva +0 -61
  303. package/templates/welcome/src/variables.deva +0 -3
  304. package/tests/integration.rs +0 -21
  305. package/tests/rust/cli_check_build.rs +0 -21
  306. package/tests/rust/cli_help.rs +0 -12
  307. package/tests/rust/cli_template_list.rs +0 -10
  308. package/tests/rust/cli_version.rs +0 -11
  309. package/tests/typescript/index.spec.ts +0 -136
  310. package/tests/typescript/playhead.spec.ts +0 -36
  311. package/tests/typescript/render_e2e.spec.ts +0 -77
  312. package/tsconfig.json +0 -115
  313. package/typescript/bin/index.ts +0 -28
  314. package/typescript/core/functions/index.ts +0 -94
  315. package/typescript/core/index.ts +0 -6
  316. package/typescript/core/types/index.ts +0 -4
  317. package/typescript/core/types/plugin.ts +0 -19
  318. package/typescript/core/types/result.ts +0 -29
  319. package/typescript/core/types/statement.ts +0 -47
  320. package/typescript/core/types/value.ts +0 -29
  321. package/typescript/index.ts +0 -8
  322. package/typescript/pkg/devalang_core.d.ts +0 -4
  323. package/typescript/pkg/devalang_core.ts +0 -65
  324. package/typescript/scripts/copy-wasm-dts.ts +0 -41
  325. package/typescript/scripts/postinstall.ts +0 -85
  326. package/typescript/scripts/version/bump.ts +0 -44
  327. package/typescript/scripts/version/fetch.ts +0 -18
  328. package/typescript/scripts/version/index.ts +0 -25
  329. package/typescript/scripts/version/sync.ts +0 -24
@@ -1,359 +0,0 @@
1
- use clap::{Parser, Subcommand, ValueEnum};
2
-
3
- #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)]
4
- pub enum OutputFormat {
5
- Wav,
6
- Mid,
7
- }
8
-
9
- #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)]
10
- pub enum AudioFormat {
11
- Wav16,
12
- Wav24,
13
- Wav32,
14
- }
15
-
16
- #[derive(Parser)]
17
- #[command(name = "devalang")]
18
- #[command(author = "Devaloop")]
19
- #[command(about = "🦊 Devalang – A programming language for music and sound.")]
20
- pub struct Cli {
21
- #[arg(long, global = true)]
22
- /// Skips loading the configuration file.
23
- pub no_config: bool,
24
-
25
- #[command(subcommand)]
26
- pub command: Commands,
27
- }
28
-
29
- #[derive(Subcommand)]
30
- pub enum TelemetryCommand {
31
- /// Enables telemetry data collection.
32
- Enable {},
33
- /// Disables telemetry data collection.
34
- Disable {},
35
- }
36
-
37
- #[derive(Subcommand)]
38
- pub enum InstallCommand {
39
- /// Installs a template.
40
- Template { name: String },
41
- /// Installs a bank.
42
- Bank { name: String },
43
- /// Installs a plugin.
44
- Plugin { name: String },
45
- /// Installs a preset.
46
- Preset { name: String },
47
- }
48
-
49
- #[derive(Subcommand)]
50
- pub enum TemplateCommand {
51
- /// Lists all available templates for Devalang projects.
52
- List,
53
- /// Displays information about a specific template.
54
- Info { name: String },
55
- }
56
-
57
- #[derive(Subcommand)]
58
- pub enum BankCommand {
59
- /// Lists installed banks.
60
- List,
61
- /// Lists all available banks.
62
- Available,
63
- /// Displays information about a specific bank.
64
- Info { name: String },
65
- /// Removes a bank.
66
- Remove { name: String },
67
- /// Updates a specific or all banks.
68
- Update { name: Option<String> },
69
- }
70
-
71
- #[derive(Subcommand)]
72
- pub enum Commands {
73
- /// Create a new Devalang project.
74
- ///
75
- /// ### Arguments
76
- /// - `name` - The name of the project to create.
77
- /// - `template` - The template to use for the project. Defaults to "default".
78
- ///
79
- /// ### Example
80
- /// ```bash
81
- /// devalang init --name my_project --template default
82
- ///
83
- Init {
84
- #[arg(short, long)]
85
- /// The optional name (directory) of the project to create.
86
- name: Option<String>,
87
-
88
- #[arg(short, long)]
89
- /// The template to use for the project.
90
- ///
91
- /// ### Default value
92
- /// - `default`
93
- ///
94
- template: Option<String>,
95
- },
96
-
97
- /// Manage templates for Devalang projects.
98
- ///
99
- /// ### Subcommands
100
- /// - `list` - Lists all available templates.
101
- /// - `info <name>` - Displays information about a specific template.
102
- ///
103
- /// ### Example
104
- /// ```bash
105
- /// devalang template list
106
- /// devalang template info my_template
107
- /// ```bash
108
- ///
109
- Template {
110
- #[command(subcommand)]
111
- /// The template command to execute.
112
- command: TemplateCommand,
113
- },
114
-
115
- /// Build the program and generate output files.
116
- ///
117
- /// ### Arguments
118
- /// - `entry` - The entry point of the program to build. Defaults to "./src".
119
- /// - `output` - The directory where the output files will be generated. Defaults to "./output".
120
- /// - `watch` - Whether to watch for changes and rebuild. Defaults to "true".
121
- /// - `debug` - Whether to print debug information. Defaults to "false".
122
- /// - `compress` - Whether to compress the output files. Defaults to "false".
123
- ///
124
- /// ### Example
125
- /// ```bash
126
- /// devalang build --entry ./src --output ./output --watch true --debug false --compress false
127
- /// ```
128
- ///
129
- Build {
130
- #[arg(short, long)]
131
- /// The entry point of the program to build.
132
- ///
133
- entry: Option<String>,
134
-
135
- #[arg(short, long)]
136
- /// The directory where the output files will be generated.
137
- ///
138
- output: Option<String>,
139
-
140
- #[arg(long, value_enum, value_delimiter = ',', default_value = "wav,mid")]
141
- /// Which output formats to generate. Comma-separated list is accepted.
142
- ///
143
- /// ### Default value
144
- /// - `wav,mid`
145
- ///
146
- output_format: Vec<OutputFormat>,
147
-
148
- #[arg(long, default_value = "wav16")]
149
- /// Audio format to use for file outputs (affects WAV export).
150
- ///
151
- /// ### Default value
152
- /// - `wav16`
153
- ///
154
- audio_format: AudioFormat,
155
-
156
- #[arg(long, default_value_t = 44100u32)]
157
- /// Sample rate to use for audio export and playback (e.g. 44100, 48000)
158
- sample_rate: u32,
159
-
160
- #[arg(long, default_value_t = false)]
161
- /// Whether to watch for changes and rebuild.
162
- ///
163
- /// ### Default value
164
- /// - `false`
165
- ///
166
- watch: bool,
167
-
168
- #[arg(short, long, default_value_t = false)]
169
- /// Whether to print debug information.
170
- ///
171
- /// ### Default value
172
- /// - `false`
173
- ///
174
- debug: bool,
175
-
176
- #[arg(short, long, default_value_t = false)]
177
- /// Whether to compress the output files.
178
- ///
179
- /// ### Default value
180
- /// - `false`
181
- ///
182
- compress: bool,
183
- },
184
-
185
- /// Analyze the program for errors and warnings.
186
- ///
187
- /// ### Arguments
188
- /// - `entry` - The entry point of the program to analyze. Defaults to "./src".
189
- /// - `output` - The directory where the output files will be generated. Defaults to "./output".
190
- /// - `watch` - Whether to watch for changes and re-analyze. Defaults to "true".
191
- /// - `debug` - Whether to print debug information. Defaults to "false".
192
- ///
193
- /// ### Example
194
- /// ```bash
195
- /// devalang check --entry ./src --output ./output --watch true --debug false
196
- /// ```
197
- ///
198
- Check {
199
- #[arg(short, long)]
200
- /// The entry point of the program to analyze.
201
- entry: Option<String>,
202
-
203
- #[arg(short, long)]
204
- /// The directory where the output files will be generated.
205
- output: Option<String>,
206
-
207
- #[arg(long, default_value_t = false)]
208
- /// Whether to watch for changes and re-analyze.
209
- ///
210
- /// ### Default value
211
- /// - `false`
212
- ///
213
- watch: bool,
214
-
215
- #[arg(short, long, default_value_t = false)]
216
- /// Whether to print debug information.
217
- ///
218
- /// ### Default value
219
- /// - `false`
220
- ///
221
- debug: bool,
222
- },
223
-
224
- /// Play the program and generate output files.
225
- ///
226
- /// ### Arguments
227
- /// - `entry` - The entry point of the program to play. Defaults to "./src".
228
- /// - `output` - The directory where the output files will be generated. Defaults to "./output".
229
- /// - `watch` - Whether to watch for changes and re-play. Defaults to "false".
230
- /// - `repeat` - Whether to replay the program after it finishes. Defaults to "false".
231
- /// - `debug` - Whether to print debug information. Defaults to "false".
232
- ///
233
- /// Note: `--repeat` and `--watch` cannot be used together. Instead use `repeat` to watch for changes and replay the program.
234
- ///
235
- /// ### Example
236
- /// ```bash
237
- /// devalang play --entry ./src --output ./output --repeat true --debug false
238
- /// ```
239
- ///
240
- Play {
241
- #[arg(short, long)]
242
- /// The entry point of the program to play.
243
- entry: Option<String>,
244
-
245
- #[arg(short, long)]
246
- /// The directory where the output files will be generated.
247
- output: Option<String>,
248
-
249
- #[arg(long, default_value_t = 44100u32)]
250
- /// Sample rate to use for playback (e.g. 44100, 48000)
251
- sample_rate: u32,
252
-
253
- #[arg(long, default_value = "wav16")]
254
- /// Audio format to use for file outputs (affects WAV export).
255
- ///
256
- /// ### Default value
257
- /// - `wav16`
258
- ///
259
- audio_format: AudioFormat,
260
-
261
- #[arg(long, default_value_t = false)]
262
- /// Whether to watch for changes and re-play.
263
- ///
264
- /// ### Default value
265
- /// - `false`
266
- ///
267
- watch: bool,
268
-
269
- #[arg(long, default_value_t = false)]
270
- /// Whether to replay the program after it finishes.
271
- ///
272
- /// ### Default value
273
- /// - `false`
274
- ///
275
- repeat: bool,
276
-
277
- #[arg(short, long, default_value_t = false)]
278
- /// Whether to print debug information.
279
- ///
280
- /// ### Default value
281
- /// - `false`
282
- ///
283
- debug: bool,
284
- },
285
-
286
- /// Update the Devalang CLI to the latest version.
287
- ///
288
- /// ### Arguments
289
- /// - `only` - Selects what to update (separated by commas). Defaults to updating all components.
290
- ///
291
- Update {
292
- // #[arg(long, default_value_t = false)]
293
- /// Whether to allow updates when the working directory is dirty.
294
- // allow_dirty: bool,
295
-
296
- #[arg(long, default_value = "")]
297
- /// Selects what to update (separated by commas).
298
- only: Option<String>,
299
- },
300
-
301
- /// Install templates, banks, or plugins.
302
- ///
303
- /// ### Subcommands
304
- /// - `template` - Installs a template.
305
- /// - `bank` - Installs a bank.
306
- /// - `plugin` - Installs a plugin.
307
- /// - `preset` - Installs a preset.
308
- ///
309
- Install {
310
- #[command(subcommand)]
311
- command: InstallCommand,
312
- },
313
-
314
- /// Discover available local addons for Devalang.
315
- ///
316
- Discover {},
317
-
318
- /// Manage banks for Devalang projects.
319
- ///
320
- /// ### Subcommands
321
- /// - `list` - Lists all available banks.
322
- /// - `info <name>` - Displays information about a specific bank.
323
- ///
324
- Bank {
325
- #[command(subcommand)]
326
- command: BankCommand,
327
- },
328
-
329
- /// Telemetry settings for Devalang.
330
- ///
331
- /// ### Subcommands
332
- /// - `enable` - Enables telemetry data collection.
333
- /// - `disable` - Disables telemetry data collection.
334
- ///
335
- Telemetry {
336
- #[command(subcommand)]
337
- command: TelemetryCommand,
338
- },
339
-
340
- /// Generate addon scaffolding for Devalang.
341
- ///
342
- /// ### Subcommands
343
- /// - `bank` - Generates a bank scaffold.
344
- /// - `plugin` - Generates a plugin scaffold.
345
- /// - `preset` - Generates a preset scaffold.
346
- ///
347
- // Scaffold {
348
- // #[command(subcommand)]
349
- // command: ScaffoldCommand,
350
- // },
351
-
352
- /// Log in to your Devaloop account.
353
- ///
354
- Login {},
355
-
356
- /// Log out of your Devaloop account.
357
- ///
358
- Logout {},
359
- }