@devaloop/devalang 0.0.1-alpha.16-hotfix.3 → 0.0.1-alpha.18

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 (239) hide show
  1. package/.cargo/config.toml +2 -0
  2. package/.devalang +10 -10
  3. package/.github/workflows/ci.yml +0 -1
  4. package/Cargo.toml +18 -2
  5. package/README.md +82 -34
  6. package/docs/CHANGELOG.md +91 -0
  7. package/docs/ROADMAP.md +7 -4
  8. package/docs/TODO.md +1 -1
  9. package/examples/index.deva +55 -35
  10. package/examples/pattern.deva +5 -5
  11. package/out-tsc/bin/index.d.ts +2 -0
  12. package/out-tsc/core/functions/index.d.ts +37 -0
  13. package/out-tsc/core/functions/index.js +76 -0
  14. package/out-tsc/core/index.d.ts +6 -0
  15. package/out-tsc/core/index.js +22 -0
  16. package/out-tsc/core/types/index.d.ts +4 -0
  17. package/out-tsc/core/types/index.js +20 -0
  18. package/out-tsc/core/types/plugin.d.ts +18 -0
  19. package/out-tsc/core/types/plugin.js +2 -0
  20. package/out-tsc/core/types/result.d.ts +27 -0
  21. package/out-tsc/core/types/result.js +2 -0
  22. package/out-tsc/core/types/statement.d.ts +106 -0
  23. package/out-tsc/core/types/statement.js +2 -0
  24. package/out-tsc/core/types/value.d.ts +43 -0
  25. package/out-tsc/core/types/value.js +2 -0
  26. package/out-tsc/index.d.ts +7 -0
  27. package/out-tsc/index.js +41 -2
  28. package/out-tsc/pkg/devalang_core.d.ts +7 -0
  29. package/out-tsc/pkg/devalang_core_bg.wasm.d.ts +33 -0
  30. package/out-tsc/scripts/copy-wasm-dts.d.ts +1 -0
  31. package/out-tsc/scripts/copy-wasm-dts.js +73 -0
  32. package/out-tsc/scripts/postinstall.d.ts +1 -0
  33. package/out-tsc/scripts/postinstall.js +33 -23
  34. package/out-tsc/scripts/version/bump.d.ts +1 -0
  35. package/out-tsc/scripts/version/fetch.d.ts +1 -0
  36. package/out-tsc/scripts/version/index.d.ts +1 -0
  37. package/out-tsc/scripts/version/sync.d.ts +1 -0
  38. package/package.json +16 -4
  39. package/project-version.json +3 -3
  40. package/rust/cli/bank/api.rs +122 -0
  41. package/rust/cli/bank/commands.rs +275 -0
  42. package/rust/cli/bank/mod.rs +29 -0
  43. package/rust/cli/build/commands.rs +107 -0
  44. package/rust/cli/build/mod.rs +2 -0
  45. package/rust/cli/build/process.rs +146 -0
  46. package/rust/cli/{check.rs → check/mod.rs} +18 -31
  47. package/rust/cli/discover/commands.rs +253 -0
  48. package/rust/cli/discover/config.rs +111 -0
  49. package/rust/cli/discover/fs.rs +19 -0
  50. package/rust/cli/discover/install.rs +103 -0
  51. package/rust/cli/discover/metadata.rs +48 -0
  52. package/rust/cli/discover/mod.rs +5 -0
  53. package/rust/cli/{init.rs → init/commands.rs} +88 -87
  54. package/rust/cli/init/mod.rs +1 -0
  55. package/rust/cli/install/addon.rs +126 -0
  56. package/rust/cli/install/bank.rs +53 -0
  57. package/rust/cli/{install.rs → install/commands.rs} +9 -9
  58. package/rust/{installer → cli/install}/mod.rs +2 -3
  59. package/rust/cli/install/plugin.rs +61 -0
  60. package/rust/cli/{login.rs → login/commands.rs} +8 -11
  61. package/rust/cli/login/mod.rs +1 -0
  62. package/rust/cli/mod.rs +2 -2
  63. package/rust/cli/{driver.rs → parser.rs} +7 -2
  64. package/rust/cli/play/commands.rs +324 -0
  65. package/rust/cli/play/io.rs +17 -0
  66. package/rust/cli/play/mod.rs +5 -0
  67. package/rust/cli/play/process.rs +150 -0
  68. package/rust/cli/play/realtime.rs +91 -0
  69. package/rust/cli/play/utils.rs +23 -0
  70. package/rust/cli/{telemetry.rs → telemetry/commands.rs} +4 -4
  71. package/rust/cli/telemetry/event_creator.rs +80 -0
  72. package/rust/cli/telemetry/mod.rs +3 -0
  73. package/rust/cli/telemetry/send.rs +51 -0
  74. package/rust/cli/{template.rs → template/commands.rs} +1 -1
  75. package/rust/cli/template/mod.rs +1 -0
  76. package/rust/cli/{update.rs → update/commands.rs} +6 -6
  77. package/rust/cli/update/mod.rs +1 -0
  78. package/rust/config/driver.rs +57 -72
  79. package/rust/config/mod.rs +1 -2
  80. package/rust/config/ops.rs +26 -0
  81. package/rust/config/settings.rs +40 -42
  82. package/rust/core/audio/engine/helpers.rs +158 -0
  83. package/rust/core/audio/engine/mod.rs +7 -0
  84. package/rust/core/audio/engine/sample.rs +359 -0
  85. package/rust/core/audio/engine/synth.rs +325 -0
  86. package/rust/core/audio/evaluator.rs +68 -27
  87. package/rust/core/audio/interpreter/arrow_call.rs +113 -33
  88. package/rust/core/audio/interpreter/call.rs +232 -56
  89. package/rust/core/audio/interpreter/condition.rs +3 -2
  90. package/rust/core/audio/interpreter/driver.rs +206 -151
  91. package/rust/core/audio/interpreter/let_.rs +1 -1
  92. package/rust/core/audio/interpreter/load.rs +2 -1
  93. package/rust/core/audio/interpreter/loop_.rs +7 -6
  94. package/rust/core/audio/interpreter/sleep.rs +2 -1
  95. package/rust/core/audio/interpreter/spawn.rs +186 -54
  96. package/rust/core/audio/interpreter/tempo.rs +31 -10
  97. package/rust/core/audio/interpreter/trigger.rs +2 -2
  98. package/rust/core/audio/loader/trigger.rs +4 -7
  99. package/rust/core/audio/player.rs +6 -0
  100. package/rust/core/audio/renderer.rs +5 -7
  101. package/rust/core/audio/special/env.rs +3 -1
  102. package/rust/core/audio/special/math.rs +26 -6
  103. package/rust/core/audio/special/modulator.rs +2 -2
  104. package/rust/core/builder/mod.rs +9 -3
  105. package/rust/core/debugger/lexer.rs +1 -1
  106. package/rust/core/debugger/mod.rs +6 -0
  107. package/rust/core/debugger/module.rs +4 -4
  108. package/rust/core/debugger/preprocessor.rs +1 -1
  109. package/rust/core/debugger/store.rs +2 -2
  110. package/rust/core/error/mod.rs +189 -0
  111. package/rust/core/lexer/driver.rs +61 -0
  112. package/rust/core/lexer/handler/arrow.rs +1 -1
  113. package/rust/core/lexer/handler/at.rs +1 -1
  114. package/rust/core/lexer/handler/brace.rs +2 -2
  115. package/rust/core/lexer/handler/colon.rs +1 -1
  116. package/rust/core/lexer/handler/comment.rs +1 -1
  117. package/rust/core/lexer/handler/dot.rs +1 -1
  118. package/rust/core/lexer/handler/driver.rs +1 -1
  119. package/rust/core/lexer/handler/identifier.rs +4 -3
  120. package/rust/core/lexer/handler/mod.rs +1 -2
  121. package/rust/core/lexer/handler/number.rs +1 -1
  122. package/rust/core/lexer/handler/operator.rs +1 -1
  123. package/rust/core/lexer/handler/parenthesis.rs +2 -2
  124. package/rust/core/lexer/handler/slash.rs +1 -1
  125. package/rust/core/lexer/handler/string.rs +1 -1
  126. package/rust/core/lexer/mod.rs +1 -52
  127. package/rust/core/lexer/token.rs +91 -97
  128. package/rust/core/mod.rs +0 -1
  129. package/rust/core/parser/driver.rs +78 -22
  130. package/rust/core/parser/handler/arrow_call.rs +28 -8
  131. package/rust/core/parser/handler/at.rs +55 -21
  132. package/rust/core/parser/handler/bank.rs +14 -4
  133. package/rust/core/parser/handler/condition.rs +6 -3
  134. package/rust/core/parser/handler/dot.rs +5 -3
  135. package/rust/core/parser/handler/identifier/automate.rs +13 -16
  136. package/rust/core/parser/handler/identifier/call.rs +4 -4
  137. package/rust/core/parser/handler/identifier/emit.rs +9 -5
  138. package/rust/core/parser/handler/identifier/function.rs +20 -7
  139. package/rust/core/parser/handler/identifier/group.rs +11 -7
  140. package/rust/core/parser/handler/identifier/let_.rs +24 -9
  141. package/rust/core/parser/handler/identifier/mod.rs +6 -5
  142. package/rust/core/parser/handler/identifier/on.rs +16 -7
  143. package/rust/core/parser/handler/identifier/print.rs +6 -9
  144. package/rust/core/parser/handler/identifier/sleep.rs +12 -5
  145. package/rust/core/parser/handler/identifier/spawn.rs +4 -4
  146. package/rust/core/parser/handler/identifier/synth.rs +79 -9
  147. package/rust/core/parser/handler/loop_.rs +38 -13
  148. package/rust/core/parser/handler/mod.rs +1 -0
  149. package/rust/core/parser/handler/pattern.rs +74 -0
  150. package/rust/core/parser/handler/tempo.rs +9 -5
  151. package/rust/core/parser/mod.rs +0 -1
  152. package/rust/core/parser/statement.rs +6 -137
  153. package/rust/core/plugin/loader.rs +41 -27
  154. package/rust/core/plugin/runner.rs +68 -17
  155. package/rust/core/preprocessor/loader.rs +181 -99
  156. package/rust/core/preprocessor/processor.rs +9 -9
  157. package/rust/core/preprocessor/resolver/bank.rs +6 -8
  158. package/rust/core/preprocessor/resolver/call.rs +47 -23
  159. package/rust/core/preprocessor/resolver/condition.rs +6 -8
  160. package/rust/core/preprocessor/resolver/driver.rs +28 -28
  161. package/rust/core/preprocessor/resolver/function.rs +6 -6
  162. package/rust/core/preprocessor/resolver/group.rs +6 -8
  163. package/rust/core/preprocessor/resolver/loop_.rs +8 -10
  164. package/rust/core/preprocessor/resolver/mod.rs +1 -0
  165. package/rust/core/preprocessor/resolver/pattern.rs +75 -0
  166. package/rust/core/preprocessor/resolver/spawn.rs +45 -22
  167. package/rust/core/preprocessor/resolver/synth.rs +6 -8
  168. package/rust/core/preprocessor/resolver/tempo.rs +6 -8
  169. package/rust/core/preprocessor/resolver/trigger.rs +22 -19
  170. package/rust/core/preprocessor/resolver/value.rs +99 -4
  171. package/rust/core/store/export.rs +28 -28
  172. package/rust/core/store/function.rs +6 -0
  173. package/rust/core/store/global.rs +7 -1
  174. package/rust/core/store/import.rs +28 -28
  175. package/rust/core/store/variable.rs +16 -2
  176. package/rust/core/utils/mod.rs +0 -1
  177. package/rust/lib.rs +102 -9
  178. package/rust/main.rs +159 -45
  179. package/rust/types/Cargo.toml +11 -0
  180. package/rust/types/src/addons.rs +55 -0
  181. package/rust/types/src/ast.rs +202 -0
  182. package/rust/types/src/config.rs +74 -0
  183. package/rust/types/src/lib.rs +12 -0
  184. package/rust/types/src/telemetry.rs +85 -0
  185. package/rust/utils/Cargo.toml +26 -0
  186. package/rust/utils/{error.rs → src/error.rs} +186 -200
  187. package/rust/utils/src/file.rs +94 -0
  188. package/rust/utils/src/first_usage.rs +97 -0
  189. package/rust/utils/{mod.rs → src/lib.rs} +1 -1
  190. package/rust/utils/{logger.rs → src/logger.rs} +17 -12
  191. package/rust/utils/src/path.rs +88 -0
  192. package/rust/utils/src/signature.rs +41 -0
  193. package/rust/utils/{spinner.rs → src/spinner.rs} +3 -5
  194. package/rust/utils/src/version.rs +27 -0
  195. package/rust/utils/{watcher.rs → src/watcher.rs} +13 -1
  196. package/rust/web/cdn.rs +34 -0
  197. package/templates/minimal/README.md +98 -54
  198. package/templates/welcome/README.md +98 -54
  199. package/templates/welcome/src/index.deva +56 -8
  200. package/templates/welcome/src/variables.deva +2 -4
  201. package/tests/rust/TODO.md +0 -0
  202. package/tests/typescript/index.spec.ts +136 -0
  203. package/tests/typescript/playhead.spec.ts +36 -0
  204. package/tests/typescript/render_e2e.spec.ts +77 -0
  205. package/tsconfig.json +1 -1
  206. package/typescript/core/functions/index.ts +83 -0
  207. package/typescript/core/index.ts +6 -0
  208. package/typescript/core/types/index.ts +4 -0
  209. package/typescript/core/types/plugin.ts +19 -0
  210. package/typescript/core/types/result.ts +29 -0
  211. package/typescript/core/types/statement.ts +47 -0
  212. package/typescript/core/types/value.ts +29 -0
  213. package/typescript/index.ts +7 -2
  214. package/typescript/pkg/devalang_core.d.ts +4 -0
  215. package/typescript/scripts/copy-wasm-dts.ts +41 -0
  216. package/rust/cli/bank.rs +0 -462
  217. package/rust/cli/build.rs +0 -252
  218. package/rust/cli/play.rs +0 -1123
  219. package/rust/common/cdn.rs +0 -5
  220. package/rust/config/loader.rs +0 -165
  221. package/rust/config/stats.rs +0 -257
  222. package/rust/core/audio/engine.rs +0 -696
  223. package/rust/core/shared/bank.rs +0 -21
  224. package/rust/core/shared/duration.rs +0 -9
  225. package/rust/core/shared/mod.rs +0 -3
  226. package/rust/core/shared/value.rs +0 -35
  227. package/rust/core/utils/validation.rs +0 -35
  228. package/rust/installer/addon.rs +0 -84
  229. package/rust/installer/bank.rs +0 -62
  230. package/rust/installer/plugin.rs +0 -54
  231. package/rust/installer/utils.rs +0 -56
  232. package/rust/utils/file.rs +0 -38
  233. package/rust/utils/first_usage.rs +0 -83
  234. package/rust/utils/signature.rs +0 -19
  235. package/rust/utils/telemetry.rs +0 -292
  236. package/rust/utils/version.rs +0 -15
  237. /package/rust/{common → web}/api.rs +0 -0
  238. /package/rust/{common → web}/mod.rs +0 -0
  239. /package/rust/{common → web}/sso.rs +0 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * Core functionality for the Devalang language.
19
+ * This module exports all the core types and functions used in the language.
20
+ */
21
+ __exportStar(require("./types/index"), exports);
22
+ __exportStar(require("./functions/index"), exports);
@@ -0,0 +1,4 @@
1
+ export * from "./result";
2
+ export * from "./statement";
3
+ export * from "./value";
4
+ export * from "./plugin";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./result"), exports);
18
+ __exportStar(require("./statement"), exports);
19
+ __exportStar(require("./value"), exports);
20
+ __exportStar(require("./plugin"), exports);
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Represents a plugin export.
3
+ */
4
+ export interface PluginExport {
5
+ name: string;
6
+ kind: string;
7
+ default?: any;
8
+ }
9
+ /**
10
+ * Represents a plugin.
11
+ */
12
+ export interface PluginInfo {
13
+ author: string;
14
+ name: string;
15
+ version?: string;
16
+ description?: string;
17
+ exports: PluginExport[];
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Represents an error that occurred during parsing.
3
+ */
4
+ export interface ErrorResult {
5
+ message: string;
6
+ line: number;
7
+ column: number;
8
+ }
9
+ /**
10
+ * Represents the result of parsing user code.
11
+ */
12
+ export interface ParseResult {
13
+ ok: boolean;
14
+ ast: string;
15
+ errors: ErrorResult[];
16
+ }
17
+ /**
18
+ * Represents the result of debugging user code.
19
+ */
20
+ export interface DebugResult {
21
+ samples_len: number;
22
+ any_nonzero: boolean;
23
+ ast: string;
24
+ note_count: number;
25
+ global_vars: string[];
26
+ statements_count: number;
27
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,106 @@
1
+ import { Value, Duration } from "./value";
2
+ /**
3
+ * Represents a statement kind in the code.
4
+ */
5
+ export type StatementKind = {
6
+ kind: "Tempo";
7
+ } | {
8
+ kind: "Bank";
9
+ alias?: string;
10
+ } | {
11
+ kind: "Print";
12
+ } | {
13
+ kind: "Load";
14
+ source: string;
15
+ alias: string;
16
+ } | {
17
+ kind: "Use";
18
+ name: string;
19
+ alias?: string;
20
+ } | {
21
+ kind: "Let";
22
+ name: string;
23
+ } | {
24
+ kind: "Automate";
25
+ target: string;
26
+ } | {
27
+ kind: "ArrowCall";
28
+ target: string;
29
+ method: string;
30
+ args: Value[];
31
+ } | {
32
+ kind: "Function";
33
+ name: string;
34
+ parameters: string[];
35
+ body: Statement[];
36
+ } | {
37
+ kind: "Synth";
38
+ } | {
39
+ kind: "Trigger";
40
+ entity: string;
41
+ duration: Duration;
42
+ effects?: Value;
43
+ } | {
44
+ kind: "Sleep";
45
+ } | {
46
+ kind: "Call";
47
+ name: string;
48
+ args: Value[];
49
+ } | {
50
+ kind: "Spawn";
51
+ name: string;
52
+ args: Value[];
53
+ } | {
54
+ kind: "Loop";
55
+ } | {
56
+ kind: "Group";
57
+ } | {
58
+ kind: "Include";
59
+ path: string;
60
+ } | {
61
+ kind: "Export";
62
+ names: string[];
63
+ source: string;
64
+ } | {
65
+ kind: "Import";
66
+ names: string[];
67
+ source: string;
68
+ } | {
69
+ kind: "If";
70
+ } | {
71
+ kind: "Else";
72
+ } | {
73
+ kind: "ElseIf";
74
+ } | {
75
+ kind: "Comment";
76
+ } | {
77
+ kind: "Indent";
78
+ } | {
79
+ kind: "Dedent";
80
+ } | {
81
+ kind: "NewLine";
82
+ } | {
83
+ kind: "On";
84
+ event: string;
85
+ args?: Value[];
86
+ body: Statement[];
87
+ } | {
88
+ kind: "Emit";
89
+ event: string;
90
+ payload?: Value;
91
+ } | {
92
+ kind: "Unknown";
93
+ } | {
94
+ kind: "Error";
95
+ message: string;
96
+ };
97
+ /**
98
+ * Represents a statement in the code.
99
+ */
100
+ export interface Statement {
101
+ kind: StatementKind;
102
+ value: Value;
103
+ indent: number;
104
+ line: number;
105
+ column: number;
106
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,43 @@
1
+ import { Statement } from "./statement";
2
+ /**
3
+ * Represents a duration in the code.
4
+ */
5
+ export type Duration = {
6
+ Number: number;
7
+ } | {
8
+ Identifier: string;
9
+ } | {
10
+ Beat: string;
11
+ } | {
12
+ Auto: null;
13
+ };
14
+ /**
15
+ * Represents a value in the code.
16
+ */
17
+ export type Value = {
18
+ Boolean: boolean;
19
+ } | {
20
+ Number: number;
21
+ } | {
22
+ Duration: Duration;
23
+ } | {
24
+ Identifier: string;
25
+ } | {
26
+ String: string;
27
+ } | {
28
+ Array: Value[];
29
+ } | {
30
+ Map: Record<string, Value>;
31
+ } | {
32
+ Block: Statement[];
33
+ } | {
34
+ Sample: string;
35
+ } | {
36
+ Beat: string;
37
+ } | {
38
+ Statement: Statement;
39
+ } | {
40
+ StatementKind: any;
41
+ } | {
42
+ Unknown: null;
43
+ } | null;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Public TypeScript definitions for Devalang.
3
+ * ————————————————————————————————————————
4
+ * Used to provide TypeScript types for the Devalang WASM package.
5
+ */
6
+ export * as pkg from "./pkg/devalang_core";
7
+ export * as core from "./core/index";
package/out-tsc/index.js CHANGED
@@ -1,4 +1,43 @@
1
1
  "use strict";
2
2
  /**
3
- * TypeScript wrapper for Devalang.
4
- */
3
+ * Public TypeScript definitions for Devalang.
4
+ * ————————————————————————————————————————
5
+ * Used to provide TypeScript types for the Devalang WASM package.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.core = exports.pkg = void 0;
42
+ exports.pkg = __importStar(require("./pkg/devalang_core"));
43
+ exports.core = __importStar(require("./core/index"));
@@ -0,0 +1,7 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export function register_playhead_callback(cb: Function): void;
4
+ export function parse(entry_path: string, source: string): any;
5
+ export function debug_render(user_code: string): any;
6
+ export function render_audio(user_code: string): Float32Array;
7
+ export function unregister_playhead_callback(): void;
@@ -0,0 +1,33 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const debug_render: (a: number, b: number) => [number, number, number];
5
+ export const parse: (a: number, b: number, c: number, d: number) => [number, number, number];
6
+ export const register_playhead_callback: (a: any) => void;
7
+ export const render_audio: (a: number, b: number) => [number, number, number];
8
+ export const unregister_playhead_callback: () => void;
9
+ export const rust_lzma_wasm_shim_calloc: (a: number, b: number) => number;
10
+ export const rust_lzma_wasm_shim_free: (a: number) => void;
11
+ export const rust_lzma_wasm_shim_malloc: (a: number) => number;
12
+ export const rust_lzma_wasm_shim_memchr: (a: number, b: number, c: number) => number;
13
+ export const rust_lzma_wasm_shim_memcmp: (a: number, b: number, c: number) => number;
14
+ export const rust_lzma_wasm_shim_memcpy: (a: number, b: number, c: number) => number;
15
+ export const rust_lzma_wasm_shim_memmove: (a: number, b: number, c: number) => number;
16
+ export const rust_lzma_wasm_shim_memset: (a: number, b: number, c: number) => number;
17
+ export const rust_lzma_wasm_shim_strlen: (a: number) => number;
18
+ export const rust_zstd_wasm_shim_calloc: (a: number, b: number) => number;
19
+ export const rust_zstd_wasm_shim_free: (a: number) => void;
20
+ export const rust_zstd_wasm_shim_malloc: (a: number) => number;
21
+ export const rust_zstd_wasm_shim_memcmp: (a: number, b: number, c: number) => number;
22
+ export const rust_zstd_wasm_shim_memcpy: (a: number, b: number, c: number) => number;
23
+ export const rust_zstd_wasm_shim_memmove: (a: number, b: number, c: number) => number;
24
+ export const rust_zstd_wasm_shim_memset: (a: number, b: number, c: number) => number;
25
+ export const rust_zstd_wasm_shim_qsort: (a: number, b: number, c: number, d: number) => void;
26
+ export const __wbindgen_malloc: (a: number, b: number) => number;
27
+ export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
28
+ export const __wbindgen_exn_store: (a: number) => void;
29
+ export const __externref_table_alloc: () => number;
30
+ export const __wbindgen_export_4: WebAssembly.Table;
31
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
32
+ export const __externref_table_dealloc: (a: number) => void;
33
+ export const __wbindgen_start: () => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ // Copies .d.ts files from pkg/ (wasm-pack output) into out-tsc/pkg/
39
+ const ROOT = path.resolve(__dirname, '..', '..');
40
+ const PKG_DIR = path.join(ROOT, 'pkg');
41
+ const OUT_DIR = path.join(ROOT, 'out-tsc', 'pkg');
42
+ function ensureDir(p) {
43
+ if (!fs.existsSync(p))
44
+ fs.mkdirSync(p, { recursive: true });
45
+ }
46
+ function copyDir(src, dest) {
47
+ ensureDir(dest);
48
+ const items = fs.readdirSync(src, { withFileTypes: true });
49
+ for (const item of items) {
50
+ const srcPath = path.join(src, item.name);
51
+ const destPath = path.join(dest, item.name);
52
+ if (item.isDirectory()) {
53
+ copyDir(srcPath, destPath);
54
+ }
55
+ else if (item.isFile() && item.name.endsWith('.d.ts')) {
56
+ fs.copyFileSync(srcPath, destPath);
57
+ console.log('copied', srcPath, '->', destPath);
58
+ }
59
+ }
60
+ }
61
+ function main() {
62
+ if (!fs.existsSync(PKG_DIR)) {
63
+ console.error('pkg directory not found at', PKG_DIR);
64
+ return 1;
65
+ }
66
+ ensureDir(OUT_DIR);
67
+ copyDir(PKG_DIR, OUT_DIR);
68
+ console.log('done');
69
+ return 0;
70
+ }
71
+ const exitCode = main();
72
+ if (exitCode !== 0)
73
+ process.exit(exitCode);
@@ -0,0 +1 @@
1
+ export {};
@@ -12,7 +12,7 @@ const projectVersionPath = path_2.default.join(__dirname, "../../project-version
12
12
  const version = fs_2.default.readFileSync(projectVersionPath, "utf-8").trim();
13
13
  const versionString = JSON.parse(version).version;
14
14
  const platform = process.platform;
15
- let binaryName;
15
+ let binaryName = "";
16
16
  switch (platform) {
17
17
  case "win32":
18
18
  binaryName = "devalang-x86_64-pc-windows-msvc.exe";
@@ -23,27 +23,37 @@ switch (platform) {
23
23
  case "linux":
24
24
  binaryName = "devalang-x86_64-unknown-linux-gnu";
25
25
  break;
26
- default:
27
- console.error(`❌ Unsupported platform: ${platform}`);
28
- process.exit(1);
29
26
  }
30
- const destDir = (0, path_1.join)(__dirname, "..", "..", "out-tsc", "bin");
31
- const dest = (0, path_1.join)(destDir, binaryName);
32
- const url = `https://github.com/devaloop-labs/devalang/releases/download/v${versionString}/${binaryName}`;
33
- (0, fs_1.mkdirSync)(destDir, { recursive: true });
34
- console.log(`⬇️ Downloading ${binaryName} from ${url}`);
35
- follow_redirects_1.https.get(url, (res) => {
36
- if (res.statusCode !== 200) {
37
- console.error(`❌ Failed (HTTP ${res.statusCode})`);
38
- process.exit(1);
39
- }
40
- const file = (0, fs_1.createWriteStream)(dest, { mode: 0o755 });
41
- res.pipe(file);
42
- file.on("finish", () => {
43
- file.close();
44
- console.log(`✅ Downloaded ${binaryName} to ${dest}`);
27
+ if (binaryName !== "") {
28
+ const destDir = (0, path_1.join)(__dirname, "..", "..", "out-tsc", "bin");
29
+ const dest = (0, path_1.join)(destDir, binaryName);
30
+ const url = `https://github.com/devaloop-labs/devalang/releases/download/v${versionString}/${binaryName}`;
31
+ (0, fs_1.mkdirSync)(destDir, { recursive: true });
32
+ console.log(`⬇️ Downloading ${binaryName} from ${url}`);
33
+ follow_redirects_1.https
34
+ .get(url, (res) => {
35
+ if (res.statusCode === 404) {
36
+ console.warn(`⚠️ Asset not found (HTTP 404). Skipping binary download.`);
37
+ res.resume();
38
+ return;
39
+ }
40
+ if (res.statusCode !== 200) {
41
+ console.error(`❌ Failed (HTTP ${res.statusCode}). Skipping binary download.`);
42
+ res.resume();
43
+ return;
44
+ }
45
+ const file = (0, fs_1.createWriteStream)(dest, { mode: 0o755 });
46
+ res.pipe(file);
47
+ file.on("finish", () => {
48
+ file.close();
49
+ console.log(`✅ Downloaded ${binaryName} to ${dest}`);
50
+ });
51
+ })
52
+ .on("error", (err) => {
53
+ // Network or other errors should not fail CI; log and continue
54
+ console.error(`❌ Error: ${err.message}. Skipping binary download.`);
45
55
  });
46
- }).on("error", (err) => {
47
- console.error(`❌ Error: ${err.message}`);
48
- process.exit(1);
49
- });
56
+ }
57
+ else {
58
+ console.error(`❌ Unsupported platform: ${platform}`);
59
+ }
@@ -0,0 +1 @@
1
+ export declare const bumpVersion: (bumpType: string, projectVersionPath: string) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const fetchVersion: (projectVersionPath: string) => Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare const syncVersion: (projectVersionPath: string) => Promise<void>;
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@devaloop/devalang",
3
3
  "private": false,
4
- "version": "0.0.1-alpha.16-hotfix.3",
4
+ "version": "0.0.1-alpha.18",
5
5
  "description": "Write music like code. Devalang is a domain-specific language (DSL) for sound designers and music hackers. Compose, automate, and control sound — in plain text.",
6
6
  "main": "out-tsc/index.js",
7
7
  "bin": {
8
8
  "devalang": "./out-tsc/bin/index.js"
9
9
  },
10
+ "types": "./out-tsc/index.d.ts",
10
11
  "scripts": {
11
12
  "rust:fmt": "cargo fmt",
12
13
  "rust:dev:build": "cargo run build --entry examples --output output --debug",
@@ -15,9 +16,15 @@
15
16
  "rust:wasm:web": "wasm-pack build --target=web --no-default-features",
16
17
  "rust:wasm:node": "wasm-pack build --target=nodejs --no-default-features",
17
18
  "rust:prepack": "cargo build --release",
18
- "scripts:build": "tsc",
19
19
  "scripts:postbuild": "tsc && node out-tsc/scripts/postbuild.js",
20
20
  "scripts:version:bump": "tsc && node out-tsc/scripts/version/index.js",
21
+ "scripts:build": "tsc",
22
+ "types:build": "tsc --emitDeclarationOnly",
23
+ "types:wasm": "tsc && node out-tsc/scripts/copy-wasm-dts.js",
24
+ "types:all": "npm run rust:wasm:node && npm run types:wasm && npm run types:build",
25
+ "test:rust": "cargo test",
26
+ "test:ts": "mocha -r ts-node/register tests/typescript/**/*.spec.ts --exit",
27
+ "test": "npm run test:ts",
21
28
  "postinstall": "node out-tsc/scripts/postinstall.js"
22
29
  },
23
30
  "homepage": "https://devalang.com",
@@ -48,6 +55,11 @@
48
55
  "follow-redirects": "^1.15.11"
49
56
  },
50
57
  "devDependencies": {
51
- "typescript": "^5.9.2"
58
+ "typescript": "^5.9.2",
59
+ "mocha": "^10.2.0",
60
+ "chai": "^4.3.8",
61
+ "ts-node": "^10.9.1",
62
+ "@types/mocha": "^10.0.1",
63
+ "@types/chai": "^4.3.4"
52
64
  }
53
- }
65
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.0.1-alpha.16",
2
+ "version": "0.0.1-alpha.18",
3
3
  "channel": "alpha",
4
- "lastCommit": "a9b05a9dc7988e50e4992d16ce279444e9aa8aca",
5
- "build": 15
4
+ "lastCommit": "c57dff0f8018777c6ef04433701ed150e1255c51",
5
+ "build": 17
6
6
  }