@devaloop/devalang 0.0.1-alpha.16-hotfix.1 → 0.0.1-alpha.17

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 (235) hide show
  1. package/.cargo/config.toml +2 -0
  2. package/.devalang +6 -10
  3. package/.github/workflows/ci.yml +19 -8
  4. package/Cargo.toml +18 -2
  5. package/README.md +80 -33
  6. package/docs/CHANGELOG.md +56 -0
  7. package/docs/ROADMAP.md +6 -3
  8. package/examples/index.deva +52 -35
  9. package/out-tsc/bin/index.d.ts +2 -0
  10. package/out-tsc/core/functions/index.d.ts +37 -0
  11. package/out-tsc/core/functions/index.js +76 -0
  12. package/out-tsc/core/index.d.ts +6 -0
  13. package/out-tsc/core/index.js +22 -0
  14. package/out-tsc/core/types/index.d.ts +4 -0
  15. package/out-tsc/core/types/index.js +20 -0
  16. package/out-tsc/core/types/plugin.d.ts +18 -0
  17. package/out-tsc/core/types/plugin.js +2 -0
  18. package/out-tsc/core/types/result.d.ts +27 -0
  19. package/out-tsc/core/types/result.js +2 -0
  20. package/out-tsc/core/types/statement.d.ts +106 -0
  21. package/out-tsc/core/types/statement.js +2 -0
  22. package/out-tsc/core/types/value.d.ts +43 -0
  23. package/out-tsc/core/types/value.js +2 -0
  24. package/out-tsc/index.d.ts +7 -0
  25. package/out-tsc/index.js +41 -2
  26. package/out-tsc/pkg/devalang_core.d.ts +7 -0
  27. package/out-tsc/pkg/devalang_core_bg.wasm.d.ts +33 -0
  28. package/out-tsc/scripts/copy-wasm-dts.d.ts +1 -0
  29. package/out-tsc/scripts/copy-wasm-dts.js +73 -0
  30. package/out-tsc/scripts/postinstall.d.ts +1 -0
  31. package/out-tsc/scripts/postinstall.js +33 -23
  32. package/out-tsc/scripts/version/bump.d.ts +1 -0
  33. package/out-tsc/scripts/version/fetch.d.ts +1 -0
  34. package/out-tsc/scripts/version/index.d.ts +1 -0
  35. package/out-tsc/scripts/version/sync.d.ts +1 -0
  36. package/package.json +16 -4
  37. package/project-version.json +3 -3
  38. package/rust/cli/bank/api.rs +122 -0
  39. package/rust/cli/bank/commands.rs +275 -0
  40. package/rust/cli/bank/mod.rs +29 -0
  41. package/rust/cli/build/commands.rs +97 -0
  42. package/rust/cli/build/mod.rs +2 -0
  43. package/rust/cli/build/process.rs +146 -0
  44. package/rust/cli/{check.rs → check/mod.rs} +18 -31
  45. package/rust/cli/discover/commands.rs +253 -0
  46. package/rust/cli/discover/config.rs +111 -0
  47. package/rust/cli/discover/fs.rs +19 -0
  48. package/rust/cli/discover/install.rs +103 -0
  49. package/rust/cli/discover/metadata.rs +48 -0
  50. package/rust/cli/discover/mod.rs +5 -0
  51. package/rust/cli/{init.rs → init/commands.rs} +88 -87
  52. package/rust/cli/init/mod.rs +1 -0
  53. package/rust/{installer → cli/install}/addon.rs +5 -9
  54. package/rust/cli/install/bank.rs +53 -0
  55. package/rust/cli/{install.rs → install/commands.rs} +9 -9
  56. package/rust/{installer → cli/install}/mod.rs +2 -3
  57. package/rust/cli/install/plugin.rs +61 -0
  58. package/rust/cli/{login.rs → login/commands.rs} +8 -11
  59. package/rust/cli/login/mod.rs +1 -0
  60. package/rust/cli/mod.rs +2 -3
  61. package/rust/cli/{driver.rs → parser.rs} +19 -2
  62. package/rust/cli/play/commands.rs +324 -0
  63. package/rust/cli/play/io.rs +17 -0
  64. package/rust/cli/play/mod.rs +5 -0
  65. package/rust/cli/play/process.rs +150 -0
  66. package/rust/cli/play/realtime.rs +91 -0
  67. package/rust/cli/play/utils.rs +23 -0
  68. package/rust/cli/telemetry/commands.rs +22 -0
  69. package/rust/cli/telemetry/event_creator.rs +80 -0
  70. package/rust/cli/telemetry/mod.rs +3 -0
  71. package/rust/cli/telemetry/send.rs +51 -0
  72. package/rust/cli/{template.rs → template/commands.rs} +1 -1
  73. package/rust/cli/template/mod.rs +1 -0
  74. package/rust/cli/{update.rs → update/commands.rs} +6 -6
  75. package/rust/cli/update/mod.rs +1 -0
  76. package/rust/config/driver.rs +57 -72
  77. package/rust/config/mod.rs +1 -2
  78. package/rust/config/ops.rs +26 -0
  79. package/rust/config/settings.rs +60 -50
  80. package/rust/core/audio/engine/helpers.rs +146 -0
  81. package/rust/core/audio/engine/mod.rs +7 -0
  82. package/rust/core/audio/engine/sample.rs +298 -0
  83. package/rust/core/audio/engine/synth.rs +310 -0
  84. package/rust/core/audio/evaluator.rs +15 -12
  85. package/rust/core/audio/interpreter/arrow_call.rs +99 -24
  86. package/rust/core/audio/interpreter/call.rs +81 -60
  87. package/rust/core/audio/interpreter/condition.rs +3 -2
  88. package/rust/core/audio/interpreter/driver.rs +206 -151
  89. package/rust/core/audio/interpreter/let_.rs +1 -1
  90. package/rust/core/audio/interpreter/load.rs +2 -1
  91. package/rust/core/audio/interpreter/loop_.rs +7 -6
  92. package/rust/core/audio/interpreter/sleep.rs +2 -1
  93. package/rust/core/audio/interpreter/spawn.rs +45 -57
  94. package/rust/core/audio/interpreter/tempo.rs +31 -10
  95. package/rust/core/audio/interpreter/trigger.rs +2 -2
  96. package/rust/core/audio/loader/trigger.rs +4 -7
  97. package/rust/core/audio/player.rs +6 -0
  98. package/rust/core/audio/renderer.rs +5 -7
  99. package/rust/core/audio/special/env.rs +3 -1
  100. package/rust/core/audio/special/math.rs +4 -4
  101. package/rust/core/audio/special/modulator.rs +2 -2
  102. package/rust/core/builder/mod.rs +9 -3
  103. package/rust/core/debugger/lexer.rs +1 -1
  104. package/rust/core/debugger/mod.rs +6 -0
  105. package/rust/core/debugger/module.rs +4 -4
  106. package/rust/core/debugger/preprocessor.rs +1 -1
  107. package/rust/core/debugger/store.rs +2 -2
  108. package/rust/core/error/mod.rs +189 -0
  109. package/rust/core/lexer/handler/arrow.rs +1 -1
  110. package/rust/core/lexer/handler/at.rs +1 -1
  111. package/rust/core/lexer/handler/brace.rs +2 -2
  112. package/rust/core/lexer/handler/colon.rs +1 -1
  113. package/rust/core/lexer/handler/comment.rs +1 -1
  114. package/rust/core/lexer/handler/dot.rs +1 -1
  115. package/rust/core/lexer/handler/driver.rs +1 -1
  116. package/rust/core/lexer/handler/identifier.rs +1 -1
  117. package/rust/core/lexer/handler/mod.rs +1 -2
  118. package/rust/core/lexer/handler/number.rs +1 -1
  119. package/rust/core/lexer/handler/operator.rs +1 -1
  120. package/rust/core/lexer/handler/parenthesis.rs +2 -2
  121. package/rust/core/lexer/handler/slash.rs +1 -1
  122. package/rust/core/lexer/handler/string.rs +1 -1
  123. package/rust/core/lexer/mod.rs +22 -12
  124. package/rust/core/lexer/token.rs +90 -97
  125. package/rust/core/mod.rs +0 -1
  126. package/rust/core/parser/driver.rs +66 -13
  127. package/rust/core/parser/handler/arrow_call.rs +28 -8
  128. package/rust/core/parser/handler/at.rs +55 -21
  129. package/rust/core/parser/handler/bank.rs +14 -4
  130. package/rust/core/parser/handler/condition.rs +6 -3
  131. package/rust/core/parser/handler/dot.rs +2 -1
  132. package/rust/core/parser/handler/identifier/automate.rs +13 -16
  133. package/rust/core/parser/handler/identifier/call.rs +4 -4
  134. package/rust/core/parser/handler/identifier/emit.rs +9 -5
  135. package/rust/core/parser/handler/identifier/function.rs +20 -7
  136. package/rust/core/parser/handler/identifier/group.rs +11 -7
  137. package/rust/core/parser/handler/identifier/let_.rs +24 -9
  138. package/rust/core/parser/handler/identifier/mod.rs +6 -5
  139. package/rust/core/parser/handler/identifier/on.rs +16 -7
  140. package/rust/core/parser/handler/identifier/print.rs +6 -9
  141. package/rust/core/parser/handler/identifier/sleep.rs +12 -5
  142. package/rust/core/parser/handler/identifier/spawn.rs +4 -4
  143. package/rust/core/parser/handler/identifier/synth.rs +79 -9
  144. package/rust/core/parser/handler/loop_.rs +39 -14
  145. package/rust/core/parser/handler/tempo.rs +9 -5
  146. package/rust/core/parser/mod.rs +0 -1
  147. package/rust/core/parser/statement.rs +6 -137
  148. package/rust/core/plugin/loader.rs +41 -27
  149. package/rust/core/plugin/runner.rs +68 -17
  150. package/rust/core/preprocessor/loader.rs +155 -33
  151. package/rust/core/preprocessor/processor.rs +2 -2
  152. package/rust/core/preprocessor/resolver/bank.rs +6 -8
  153. package/rust/core/preprocessor/resolver/call.rs +20 -24
  154. package/rust/core/preprocessor/resolver/condition.rs +6 -8
  155. package/rust/core/preprocessor/resolver/driver.rs +14 -16
  156. package/rust/core/preprocessor/resolver/function.rs +6 -6
  157. package/rust/core/preprocessor/resolver/group.rs +6 -8
  158. package/rust/core/preprocessor/resolver/loop_.rs +8 -10
  159. package/rust/core/preprocessor/resolver/spawn.rs +19 -23
  160. package/rust/core/preprocessor/resolver/synth.rs +6 -8
  161. package/rust/core/preprocessor/resolver/tempo.rs +6 -8
  162. package/rust/core/preprocessor/resolver/trigger.rs +22 -19
  163. package/rust/core/preprocessor/resolver/value.rs +99 -4
  164. package/rust/core/store/export.rs +28 -28
  165. package/rust/core/store/function.rs +6 -0
  166. package/rust/core/store/global.rs +7 -1
  167. package/rust/core/store/import.rs +28 -28
  168. package/rust/core/store/variable.rs +1 -1
  169. package/rust/core/utils/mod.rs +0 -1
  170. package/rust/lib.rs +102 -9
  171. package/rust/main.rs +156 -45
  172. package/rust/types/Cargo.toml +8 -0
  173. package/rust/types/src/addons.rs +55 -0
  174. package/rust/types/src/ast.rs +198 -0
  175. package/rust/types/src/config.rs +74 -0
  176. package/rust/types/src/lib.rs +12 -0
  177. package/rust/types/src/telemetry.rs +85 -0
  178. package/rust/utils/Cargo.toml +23 -0
  179. package/rust/utils/{error.rs → src/error.rs} +186 -200
  180. package/rust/utils/src/file.rs +94 -0
  181. package/rust/utils/src/first_usage.rs +97 -0
  182. package/rust/utils/{mod.rs → src/lib.rs} +1 -1
  183. package/rust/utils/{logger.rs → src/logger.rs} +17 -12
  184. package/rust/utils/src/path.rs +88 -0
  185. package/rust/utils/src/signature.rs +41 -0
  186. package/rust/utils/{spinner.rs → src/spinner.rs} +3 -5
  187. package/rust/utils/src/version.rs +27 -0
  188. package/rust/utils/{watcher.rs → src/watcher.rs} +13 -1
  189. package/rust/web/api.rs +5 -0
  190. package/rust/web/cdn.rs +34 -0
  191. package/templates/minimal/README.md +98 -54
  192. package/templates/welcome/README.md +98 -54
  193. package/templates/welcome/src/index.deva +56 -8
  194. package/templates/welcome/src/variables.deva +2 -4
  195. package/tests/rust/TODO.md +0 -0
  196. package/tests/typescript/index.spec.ts +136 -0
  197. package/tests/typescript/playhead.spec.ts +36 -0
  198. package/tests/typescript/render_e2e.spec.ts +77 -0
  199. package/tsconfig.json +1 -1
  200. package/typescript/core/functions/index.ts +83 -0
  201. package/typescript/core/index.ts +6 -0
  202. package/typescript/core/types/index.ts +4 -0
  203. package/typescript/core/types/plugin.ts +19 -0
  204. package/typescript/core/types/result.ts +29 -0
  205. package/typescript/core/types/statement.ts +47 -0
  206. package/typescript/core/types/value.ts +29 -0
  207. package/typescript/index.ts +7 -2
  208. package/typescript/pkg/devalang_core.d.ts +4 -0
  209. package/typescript/scripts/copy-wasm-dts.ts +41 -0
  210. package/typescript/scripts/postinstall.ts +45 -32
  211. package/rust/cli/bank.rs +0 -462
  212. package/rust/cli/build.rs +0 -252
  213. package/rust/cli/generator.rs +0 -1
  214. package/rust/cli/play.rs +0 -1123
  215. package/rust/cli/telemetry.rs +0 -19
  216. package/rust/common/api.rs +0 -5
  217. package/rust/common/cdn.rs +0 -5
  218. package/rust/config/loader.rs +0 -165
  219. package/rust/config/stats.rs +0 -257
  220. package/rust/core/audio/engine.rs +0 -696
  221. package/rust/core/shared/bank.rs +0 -21
  222. package/rust/core/shared/duration.rs +0 -9
  223. package/rust/core/shared/mod.rs +0 -3
  224. package/rust/core/shared/value.rs +0 -35
  225. package/rust/core/utils/validation.rs +0 -35
  226. package/rust/installer/bank.rs +0 -62
  227. package/rust/installer/plugin.rs +0 -54
  228. package/rust/installer/utils.rs +0 -56
  229. package/rust/utils/file.rs +0 -38
  230. package/rust/utils/first_usage.rs +0 -76
  231. package/rust/utils/signature.rs +0 -19
  232. package/rust/utils/telemetry.rs +0 -292
  233. package/rust/utils/version.rs +0 -15
  234. /package/rust/{common → web}/mod.rs +0 -0
  235. /package/rust/{common → web}/sso.rs +0 -0
@@ -1,292 +0,0 @@
1
- use crate::{
2
- common::api::get_api_url,
3
- config::{driver::ProjectConfig, settings::get_user_config, stats::ProjectStats},
4
- };
5
- use serde::{Deserialize, Serialize};
6
- use std::time::Duration;
7
-
8
- #[derive(Serialize, Deserialize, Default, Clone)]
9
- pub enum TelemetryErrorLevel {
10
- #[default]
11
- None,
12
- Warning,
13
- Critical,
14
- }
15
-
16
- #[derive(Serialize, Deserialize, Default, Clone)]
17
- pub struct TelemetryProjectInfo {
18
- config: Option<TelemetryProjectInfoConfig>,
19
- stats: Option<TelemetryProjectInfoStats>,
20
- }
21
-
22
- #[derive(Serialize, Deserialize, Default, Clone, Debug)]
23
- pub struct TelemetryProjectInfoStats {
24
- counts: TelemetryProjectInfoStatsCounts,
25
- features: TelemetryProjectInfoStatsFeatures,
26
- audio: TelemetryProjectInfoStatsAudio,
27
- }
28
-
29
- #[derive(Serialize, Deserialize, Default, Clone, Debug)]
30
- pub struct TelemetryProjectInfoStatsCounts {
31
- pub nb_files: usize,
32
- pub nb_modules: usize,
33
- pub nb_lines: usize,
34
- pub nb_banks: usize,
35
- pub nb_plugins: usize,
36
- }
37
-
38
- #[derive(Serialize, Deserialize, Default, Clone, Debug)]
39
- pub struct TelemetryProjectInfoStatsFeatures {
40
- pub uses_imports: bool,
41
- pub uses_functions: bool,
42
- pub uses_groups: bool,
43
- pub uses_automations: bool,
44
- pub uses_loops: bool,
45
- }
46
-
47
- #[derive(Serialize, Deserialize, Default, Clone, Debug)]
48
- pub struct TelemetryProjectInfoStatsAudio {
49
- pub avg_bpm: Option<u32>,
50
- pub has_synths: bool,
51
- pub has_samples: bool,
52
- }
53
-
54
- #[derive(Serialize, Deserialize, Default, Clone, Debug)]
55
- pub struct TelemetryProjectInfoConfig {
56
- pub entry_defined: bool,
57
- pub output_defined: bool,
58
- pub watch_defined: bool,
59
- pub repeat_defined: bool,
60
- pub debug_defined: bool,
61
- pub compress_defined: bool,
62
- }
63
-
64
- #[derive(Serialize, Deserialize, Default, Clone)]
65
- pub struct TelemetryEvent {
66
- pub uuid: String,
67
- pub cli_version: String,
68
- pub os: String,
69
- pub command: Vec<String>,
70
- pub project_info: Option<TelemetryProjectInfo>,
71
- pub error_level: TelemetryErrorLevel,
72
- pub error_message: Option<String>,
73
- pub exit_code: Option<i32>,
74
- pub timestamp: String,
75
- pub duration: u64,
76
- pub success: bool,
77
- }
78
-
79
- impl TelemetryEvent {
80
- pub fn set_timestamp(&mut self, timestamp: String) {
81
- self.timestamp = timestamp;
82
- }
83
-
84
- pub fn set_duration(&mut self, duration: u64) {
85
- self.duration = duration;
86
- }
87
-
88
- pub fn set_success(&mut self, success: bool) {
89
- self.success = success;
90
- }
91
-
92
- pub fn set_error(
93
- &mut self,
94
- level: TelemetryErrorLevel,
95
- message: Option<String>,
96
- exit_code: Option<i32>,
97
- ) {
98
- self.error_level = level;
99
- self.error_message = message;
100
- self.exit_code = exit_code;
101
- }
102
- }
103
-
104
- pub struct TelemetryEventCreator {
105
- pub events: Vec<TelemetryEvent>,
106
- }
107
-
108
- impl TelemetryEventCreator {
109
- pub fn new() -> Self {
110
- TelemetryEventCreator { events: Vec::new() }
111
- }
112
-
113
- pub fn create_event(&mut self, event: TelemetryEvent) {
114
- self.events.push(event.clone());
115
- }
116
-
117
- pub fn get_base_event(&self) -> TelemetryEvent {
118
- let mut stats_enabled = false;
119
-
120
- let user_config = get_user_config().unwrap_or_default();
121
-
122
- if user_config.telemetry.stats == true {
123
- stats_enabled = true;
124
- }
125
-
126
- let mut event: TelemetryEvent = TelemetryEvent {
127
- uuid: user_config.telemetry.uuid.clone(),
128
- cli_version: env!("CARGO_PKG_VERSION").to_string(),
129
- os: std::env::consts::OS.to_string(),
130
- command: std::env::args().collect::<Vec<_>>(),
131
- project_info: None,
132
- error_level: TelemetryErrorLevel::None,
133
- error_message: None,
134
- exit_code: None,
135
- timestamp: chrono::Utc::now().to_string(),
136
- duration: 0,
137
- success: true,
138
- };
139
-
140
- let project_settings = ProjectConfig::get();
141
- let project_stats = ProjectStats::get();
142
-
143
- if project_settings.is_ok() && project_stats.is_ok() {
144
- let project_settings = project_settings.unwrap();
145
- let project_stats = project_stats.unwrap();
146
-
147
- let mut stats = None;
148
-
149
- if stats_enabled {
150
- stats = Some(TelemetryProjectInfoStats {
151
- counts: TelemetryProjectInfoStatsCounts {
152
- nb_files: project_stats.counts.nb_files,
153
- nb_modules: project_stats.counts.nb_modules,
154
- nb_lines: project_stats.counts.nb_lines,
155
- nb_banks: project_stats.counts.nb_banks,
156
- nb_plugins: project_stats.counts.nb_plugins,
157
- },
158
- features: TelemetryProjectInfoStatsFeatures {
159
- uses_imports: project_stats.features.uses_imports,
160
- uses_functions: project_stats.features.uses_functions,
161
- uses_groups: project_stats.features.uses_groups,
162
- uses_automations: project_stats.features.uses_automations,
163
- uses_loops: project_stats.features.uses_loops,
164
- },
165
- audio: TelemetryProjectInfoStatsAudio {
166
- avg_bpm: project_stats.audio.avg_bpm,
167
- has_synths: project_stats.audio.has_synths,
168
- has_samples: project_stats.audio.has_samples,
169
- },
170
- });
171
- }
172
-
173
- event.project_info = Some(TelemetryProjectInfo {
174
- config: Some(TelemetryProjectInfoConfig {
175
- entry_defined: project_settings.defaults.entry.is_some(),
176
- output_defined: project_settings.defaults.output.is_some(),
177
- watch_defined: project_settings.defaults.watch.is_some(),
178
- repeat_defined: project_settings.defaults.repeat.is_some(),
179
- debug_defined: project_settings.defaults.debug.is_some(),
180
- compress_defined: project_settings.defaults.compress.is_some(),
181
- }),
182
- stats: stats,
183
- });
184
- } else {
185
- event.project_info = None;
186
- }
187
-
188
- event
189
- }
190
- }
191
-
192
- pub fn refresh_event_project_info(event: &mut TelemetryEvent) {
193
- let user_config = get_user_config().unwrap_or_default();
194
- let stats_enabled = user_config.telemetry.stats;
195
-
196
- let project_settings = ProjectConfig::get();
197
- let project_stats = ProjectStats::get();
198
-
199
- if project_settings.is_ok() && project_stats.is_ok() {
200
- let project_settings = project_settings.unwrap();
201
- let project_stats = project_stats.unwrap();
202
-
203
- let mut stats = None;
204
- if stats_enabled {
205
- stats = Some(TelemetryProjectInfoStats {
206
- counts: TelemetryProjectInfoStatsCounts {
207
- nb_files: project_stats.counts.nb_files,
208
- nb_modules: project_stats.counts.nb_modules,
209
- nb_lines: project_stats.counts.nb_lines,
210
- nb_banks: project_stats.counts.nb_banks,
211
- nb_plugins: project_stats.counts.nb_plugins,
212
- },
213
- features: TelemetryProjectInfoStatsFeatures {
214
- uses_imports: project_stats.features.uses_imports,
215
- uses_functions: project_stats.features.uses_functions,
216
- uses_groups: project_stats.features.uses_groups,
217
- uses_automations: project_stats.features.uses_automations,
218
- uses_loops: project_stats.features.uses_loops,
219
- },
220
- audio: TelemetryProjectInfoStatsAudio {
221
- avg_bpm: project_stats.audio.avg_bpm,
222
- has_synths: project_stats.audio.has_synths,
223
- has_samples: project_stats.audio.has_samples,
224
- },
225
- });
226
- }
227
-
228
- event.project_info = Some(TelemetryProjectInfo {
229
- config: Some(TelemetryProjectInfoConfig {
230
- entry_defined: project_settings.defaults.entry.is_some(),
231
- output_defined: project_settings.defaults.output.is_some(),
232
- watch_defined: project_settings.defaults.watch.is_some(),
233
- repeat_defined: project_settings.defaults.repeat.is_some(),
234
- debug_defined: project_settings.defaults.debug.is_some(),
235
- compress_defined: project_settings.defaults.compress.is_some(),
236
- }),
237
- stats,
238
- });
239
- } else {
240
- event.project_info = None;
241
- }
242
- }
243
-
244
- #[derive(Debug)]
245
- pub enum TelemetrySendError {
246
- Http(String),
247
- }
248
-
249
- pub async fn send_telemetry_event(event: &TelemetryEvent) -> Result<(), TelemetrySendError> {
250
- if let Some(cfg) = get_user_config() {
251
- if cfg.telemetry.enabled == false {
252
- return Ok(());
253
- }
254
- }
255
-
256
- let telemetry_url = format!("{}/v1/telemetry/send", get_api_url());
257
- let client = reqwest::Client::builder()
258
- .timeout(Duration::from_secs(5))
259
- .build()
260
- .map_err(|e| TelemetrySendError::Http(format!("client build error: {}", e)))?;
261
-
262
- let mut last_err: Option<String> = None;
263
- for (i, delay_ms) in [0u64, 250, 500, 1000].iter().enumerate() {
264
- if *delay_ms > 0 {
265
- tokio::time::sleep(Duration::from_millis(*delay_ms)).await;
266
- }
267
-
268
- let res = client
269
- .post(telemetry_url.clone())
270
- .json(event)
271
- .send()
272
- .await
273
- .and_then(|r| r.error_for_status());
274
-
275
- match res {
276
- Ok(_) => {
277
- return Ok(());
278
- }
279
- Err(err) => {
280
- last_err = Some(err.to_string());
281
-
282
- if i == 3 {
283
- break;
284
- }
285
- }
286
- }
287
- }
288
-
289
- Err(TelemetrySendError::Http(
290
- last_err.unwrap_or_else(|| "unknown error".to_string()),
291
- ))
292
- }
@@ -1,15 +0,0 @@
1
- use crate::utils::signature::get_signature;
2
-
3
- pub fn get_version() -> &'static str {
4
- let version: &str = env!("CARGO_PKG_VERSION");
5
- version
6
- }
7
-
8
- pub fn get_version_with_signature() -> &'static str {
9
- let version = get_version();
10
- let signature = get_signature(version);
11
-
12
- println!("{}", signature);
13
-
14
- "(c) 2025 Devaloop. All rights reserved."
15
- }
File without changes
File without changes