@devaloop/devalang 0.0.1-beta.3 → 0.1.2
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.
- package/LICENSE +20 -20
- package/README.md +251 -221
- package/out-tsc/api.d.ts +180 -0
- package/out-tsc/api.d.ts.map +1 -0
- package/out-tsc/api.js +286 -0
- package/out-tsc/api.js.map +1 -0
- package/out-tsc/bin/index.d.ts +12 -0
- package/out-tsc/bin/index.d.ts.map +1 -0
- package/out-tsc/bin/index.js +20 -54
- package/out-tsc/bin/index.js.map +1 -0
- package/out-tsc/examples/basic-usage.d.ts +8 -0
- package/out-tsc/examples/basic-usage.d.ts.map +1 -0
- package/out-tsc/examples/basic-usage.js +113 -0
- package/out-tsc/examples/basic-usage.js.map +1 -0
- package/out-tsc/index.d.ts +19 -5
- package/out-tsc/index.d.ts.map +1 -0
- package/out-tsc/index.js +24 -6
- package/out-tsc/index.js.map +1 -0
- package/out-tsc/scripts/copy-wasm-dts.d.ts +7 -0
- package/out-tsc/scripts/copy-wasm-dts.d.ts.map +1 -0
- package/out-tsc/scripts/copy-wasm-dts.js +36 -32
- package/out-tsc/scripts/copy-wasm-dts.js.map +1 -0
- package/out-tsc/scripts/postinstall.d.ts +1 -0
- package/out-tsc/scripts/postinstall.d.ts.map +1 -0
- package/out-tsc/scripts/postinstall.js +4 -1
- package/out-tsc/scripts/postinstall.js.map +1 -0
- package/out-tsc/scripts/version/bump.d.ts +5 -1
- package/out-tsc/scripts/version/bump.d.ts.map +1 -0
- package/out-tsc/scripts/version/bump.js +122 -44
- package/out-tsc/scripts/version/bump.js.map +1 -0
- package/out-tsc/scripts/version/fetch.d.ts +12 -1
- package/out-tsc/scripts/version/fetch.d.ts.map +1 -0
- package/out-tsc/scripts/version/fetch.js +68 -24
- package/out-tsc/scripts/version/fetch.js.map +1 -0
- package/out-tsc/scripts/version/index.d.ts +6 -0
- package/out-tsc/scripts/version/index.d.ts.map +1 -0
- package/out-tsc/scripts/version/index.js +44 -22
- package/out-tsc/scripts/version/index.js.map +1 -0
- package/out-tsc/scripts/version/sync.d.ts +5 -1
- package/out-tsc/scripts/version/sync.d.ts.map +1 -0
- package/out-tsc/scripts/version/sync.js +95 -29
- package/out-tsc/scripts/version/sync.js.map +1 -0
- package/out-tsc/types.d.ts +68 -0
- package/out-tsc/types.d.ts.map +1 -0
- package/out-tsc/{core/types/value.js → types.js} +4 -0
- package/out-tsc/types.js.map +1 -0
- package/out-tsc/wasm.d.ts +8 -0
- package/out-tsc/wasm.d.ts.map +1 -0
- package/out-tsc/{core/index.js → wasm.js} +9 -6
- package/out-tsc/wasm.js.map +1 -0
- package/package.json +42 -42
- package/.cargo/config.toml +0 -2
- package/.devalang +0 -9
- package/.github/workflows/ci.yml +0 -103
- package/Cargo.toml +0 -84
- package/docs/CHANGELOG.md +0 -622
- package/docs/CONTRIBUTING.md +0 -101
- package/docs/ROADMAP.md +0 -38
- package/docs/TODO.md +0 -71
- package/examples/automation.deva +0 -42
- package/examples/bank.deva +0 -7
- package/examples/bus.deva +0 -10
- package/examples/chain.deva +0 -19
- package/examples/condition.deva +0 -20
- package/examples/duration.deva +0 -9
- package/examples/effect.deva +0 -2
- package/examples/events.deva +0 -12
- package/examples/filter.deva +0 -11
- package/examples/function.deva +0 -15
- package/examples/group.deva +0 -12
- package/examples/index.deva +0 -63
- package/examples/lfo.deva +0 -9
- package/examples/loop.deva +0 -10
- package/examples/pattern.deva +0 -8
- package/examples/plugin.deva +0 -16
- package/examples/routing.deva +0 -23
- package/examples/samples/hat-808.wav +0 -0
- package/examples/samples/kick-808.wav +0 -0
- package/examples/synth.deva +0 -24
- package/examples/synth_types.deva +0 -17
- package/examples/variables.deva +0 -9
- package/out-tsc/bin/project-version.json +0 -6
- package/out-tsc/core/functions/index.d.ts +0 -42
- package/out-tsc/core/functions/index.js +0 -87
- package/out-tsc/core/index.d.ts +0 -6
- package/out-tsc/core/types/index.d.ts +0 -4
- package/out-tsc/core/types/index.js +0 -20
- package/out-tsc/core/types/plugin.d.ts +0 -18
- package/out-tsc/core/types/plugin.js +0 -2
- package/out-tsc/core/types/result.d.ts +0 -27
- package/out-tsc/core/types/result.js +0 -2
- package/out-tsc/core/types/statement.d.ts +0 -106
- package/out-tsc/core/types/statement.js +0 -2
- package/out-tsc/core/types/value.d.ts +0 -43
- package/out-tsc/pkg/devalang_core.d.ts +0 -15
- package/out-tsc/pkg/devalang_core.js +0 -65
- package/out-tsc/pkg/devalang_core_bg.wasm.d.ts +0 -34
- package/out-tsc/scripts/version/copy-to-binary.d.ts +0 -1
- package/out-tsc/scripts/version/copy-to-binary.js +0 -79
- package/project-version.json +0 -6
- package/rust/bindings/Cargo.toml +0 -9
- package/rust/bindings/src/lib.rs +0 -86
- package/rust/cli/addon/commands.rs +0 -35
- package/rust/cli/addon/download.rs +0 -234
- package/rust/cli/addon/install.rs +0 -33
- package/rust/cli/addon/list.rs +0 -224
- package/rust/cli/addon/metadata.rs +0 -124
- package/rust/cli/addon/mod.rs +0 -8
- package/rust/cli/addon/remove.rs +0 -271
- package/rust/cli/addon/update.rs +0 -305
- package/rust/cli/addon/utils.rs +0 -109
- package/rust/cli/build/commands.rs +0 -153
- package/rust/cli/build/mod.rs +0 -2
- package/rust/cli/build/process.rs +0 -165
- package/rust/cli/check/mod.rs +0 -208
- package/rust/cli/discover/commands.rs +0 -275
- package/rust/cli/discover/config.rs +0 -109
- package/rust/cli/discover/fs.rs +0 -19
- package/rust/cli/discover/install.rs +0 -214
- package/rust/cli/discover/metadata.rs +0 -48
- package/rust/cli/discover/mod.rs +0 -5
- package/rust/cli/init/commands.rs +0 -88
- package/rust/cli/init/mod.rs +0 -1
- package/rust/cli/login/commands.rs +0 -124
- package/rust/cli/login/mod.rs +0 -1
- package/rust/cli/me/commands.rs +0 -52
- package/rust/cli/me/mod.rs +0 -1
- package/rust/cli/mod.rs +0 -12
- package/rust/cli/parser.rs +0 -320
- package/rust/cli/play/commands.rs +0 -375
- package/rust/cli/play/io.rs +0 -17
- package/rust/cli/play/mod.rs +0 -5
- package/rust/cli/play/process.rs +0 -159
- package/rust/cli/play/realtime.rs +0 -91
- package/rust/cli/play/utils.rs +0 -23
- package/rust/cli/telemetry/commands.rs +0 -22
- package/rust/cli/telemetry/event_creator.rs +0 -80
- package/rust/cli/telemetry/mod.rs +0 -3
- package/rust/cli/telemetry/send.rs +0 -51
- package/rust/cli/template/commands.rs +0 -69
- package/rust/cli/template/mod.rs +0 -1
- package/rust/cli/update/commands.rs +0 -6
- package/rust/cli/update/mod.rs +0 -1
- package/rust/config/driver.rs +0 -112
- package/rust/config/mod.rs +0 -3
- package/rust/config/ops.rs +0 -26
- package/rust/config/settings.rs +0 -101
- package/rust/core/audio/engine/driver.rs +0 -237
- package/rust/core/audio/engine/export.rs +0 -169
- package/rust/core/audio/engine/helpers.rs +0 -178
- package/rust/core/audio/engine/mod.rs +0 -56
- package/rust/core/audio/engine/notes/dsp.rs +0 -88
- package/rust/core/audio/engine/notes/mod.rs +0 -53
- package/rust/core/audio/engine/notes/params.rs +0 -294
- package/rust/core/audio/engine/sample/insert.rs +0 -300
- package/rust/core/audio/engine/sample/mod.rs +0 -40
- package/rust/core/audio/engine/sample/padding.rs +0 -170
- package/rust/core/audio/evaluator/condition.rs +0 -61
- package/rust/core/audio/evaluator/mod.rs +0 -9
- package/rust/core/audio/evaluator/numeric.rs +0 -152
- package/rust/core/audio/evaluator/rhs.rs +0 -16
- package/rust/core/audio/evaluator/string_expr.rs +0 -94
- package/rust/core/audio/interpreter/driver.rs +0 -574
- package/rust/core/audio/interpreter/mod.rs +0 -2
- package/rust/core/audio/interpreter/statements/arrow_call/interprete.rs +0 -179
- package/rust/core/audio/interpreter/statements/arrow_call/methods/chord.rs +0 -398
- package/rust/core/audio/interpreter/statements/arrow_call/methods/effects.rs +0 -323
- package/rust/core/audio/interpreter/statements/arrow_call/methods/mod.rs +0 -3
- package/rust/core/audio/interpreter/statements/arrow_call/methods/note.rs +0 -371
- package/rust/core/audio/interpreter/statements/arrow_call/mod.rs +0 -3
- package/rust/core/audio/interpreter/statements/arrow_call/types/arp.rs +0 -192
- package/rust/core/audio/interpreter/statements/arrow_call/types/mod.rs +0 -24
- package/rust/core/audio/interpreter/statements/arrow_call/types/pad.rs +0 -116
- package/rust/core/audio/interpreter/statements/arrow_call/types/pluck.rs +0 -97
- package/rust/core/audio/interpreter/statements/arrow_call/types/sub.rs +0 -100
- package/rust/core/audio/interpreter/statements/automate.rs +0 -16
- package/rust/core/audio/interpreter/statements/call.rs +0 -325
- package/rust/core/audio/interpreter/statements/condition.rs +0 -72
- package/rust/core/audio/interpreter/statements/function.rs +0 -24
- package/rust/core/audio/interpreter/statements/let_.rs +0 -36
- package/rust/core/audio/interpreter/statements/load.rs +0 -17
- package/rust/core/audio/interpreter/statements/loop_.rs +0 -115
- package/rust/core/audio/interpreter/statements/mod.rs +0 -12
- package/rust/core/audio/interpreter/statements/sleep.rs +0 -28
- package/rust/core/audio/interpreter/statements/spawn.rs +0 -302
- package/rust/core/audio/interpreter/statements/tempo.rs +0 -40
- package/rust/core/audio/interpreter/statements/trigger.rs +0 -242
- package/rust/core/audio/loader/mod.rs +0 -1
- package/rust/core/audio/loader/trigger.rs +0 -98
- package/rust/core/audio/mod.rs +0 -6
- package/rust/core/audio/player.rs +0 -70
- package/rust/core/audio/special/easing.rs +0 -189
- package/rust/core/audio/special/env.rs +0 -45
- package/rust/core/audio/special/math.rs +0 -134
- package/rust/core/audio/special/mod.rs +0 -9
- package/rust/core/audio/special/modulator.rs +0 -143
- package/rust/core/builder/mod.rs +0 -129
- package/rust/core/debugger/lexer.rs +0 -27
- package/rust/core/debugger/logs.rs +0 -52
- package/rust/core/debugger/mod.rs +0 -30
- package/rust/core/debugger/preprocessor.rs +0 -27
- package/rust/core/debugger/store.rs +0 -38
- package/rust/core/error/mod.rs +0 -269
- package/rust/core/lexer/driver.rs +0 -59
- package/rust/core/lexer/handler/arrow.rs +0 -82
- package/rust/core/lexer/handler/at.rs +0 -21
- package/rust/core/lexer/handler/brace.rs +0 -41
- package/rust/core/lexer/handler/colon.rs +0 -21
- package/rust/core/lexer/handler/comment.rs +0 -30
- package/rust/core/lexer/handler/dot.rs +0 -21
- package/rust/core/lexer/handler/driver.rs +0 -337
- package/rust/core/lexer/handler/identifier.rs +0 -47
- package/rust/core/lexer/handler/indent.rs +0 -66
- package/rust/core/lexer/handler/mod.rs +0 -15
- package/rust/core/lexer/handler/newline.rs +0 -23
- package/rust/core/lexer/handler/number.rs +0 -31
- package/rust/core/lexer/handler/operator.rs +0 -46
- package/rust/core/lexer/handler/parenthesis.rs +0 -41
- package/rust/core/lexer/handler/slash.rs +0 -21
- package/rust/core/lexer/handler/string.rs +0 -63
- package/rust/core/lexer/mod.rs +0 -3
- package/rust/core/lexer/token.rs +0 -91
- package/rust/core/mod.rs +0 -9
- package/rust/core/parser/driver/block.rs +0 -111
- package/rust/core/parser/driver/cursor.rs +0 -82
- package/rust/core/parser/driver/driver_impl.rs +0 -159
- package/rust/core/parser/driver/mod.rs +0 -6
- package/rust/core/parser/driver/parse_array.rs +0 -120
- package/rust/core/parser/driver/parse_map.rs +0 -247
- package/rust/core/parser/driver/parser.rs +0 -160
- package/rust/core/parser/handler/arrow_call.rs +0 -328
- package/rust/core/parser/handler/at.rs +0 -279
- package/rust/core/parser/handler/bank.rs +0 -104
- package/rust/core/parser/handler/condition.rs +0 -83
- package/rust/core/parser/handler/dot.rs +0 -148
- package/rust/core/parser/handler/identifier/automate.rs +0 -254
- package/rust/core/parser/handler/identifier/call.rs +0 -91
- package/rust/core/parser/handler/identifier/emit.rs +0 -70
- package/rust/core/parser/handler/identifier/function.rs +0 -113
- package/rust/core/parser/handler/identifier/group.rs +0 -89
- package/rust/core/parser/handler/identifier/let_.rs +0 -173
- package/rust/core/parser/handler/identifier/mod.rs +0 -55
- package/rust/core/parser/handler/identifier/on.rs +0 -107
- package/rust/core/parser/handler/identifier/print.rs +0 -49
- package/rust/core/parser/handler/identifier/sleep.rs +0 -96
- package/rust/core/parser/handler/identifier/spawn.rs +0 -91
- package/rust/core/parser/handler/identifier/synth.rs +0 -171
- package/rust/core/parser/handler/loop_.rs +0 -194
- package/rust/core/parser/handler/mod.rs +0 -9
- package/rust/core/parser/handler/pattern.rs +0 -97
- package/rust/core/parser/handler/tempo.rs +0 -105
- package/rust/core/parser/mod.rs +0 -3
- package/rust/core/parser/statement.rs +0 -10
- package/rust/core/plugin/loader.rs +0 -137
- package/rust/core/plugin/mod.rs +0 -2
- package/rust/core/plugin/runner/mod.rs +0 -11
- package/rust/core/plugin/runner/non_wasm.rs +0 -481
- package/rust/core/plugin/runner/wasm32.rs +0 -44
- package/rust/core/preprocessor/loader/inject.rs +0 -313
- package/rust/core/preprocessor/loader/loader_helpers.rs +0 -110
- package/rust/core/preprocessor/loader/mod.rs +0 -235
- package/rust/core/preprocessor/mod.rs +0 -4
- package/rust/core/preprocessor/module.rs +0 -55
- package/rust/core/preprocessor/processor/handlers.rs +0 -107
- package/rust/core/preprocessor/processor/mod.rs +0 -1
- package/rust/core/preprocessor/resolver/bank.rs +0 -49
- package/rust/core/preprocessor/resolver/call.rs +0 -124
- package/rust/core/preprocessor/resolver/condition.rs +0 -95
- package/rust/core/preprocessor/resolver/driver.rs +0 -324
- package/rust/core/preprocessor/resolver/function.rs +0 -69
- package/rust/core/preprocessor/resolver/group.rs +0 -122
- package/rust/core/preprocessor/resolver/let_.rs +0 -32
- package/rust/core/preprocessor/resolver/loop_.rs +0 -318
- package/rust/core/preprocessor/resolver/mod.rs +0 -16
- package/rust/core/preprocessor/resolver/pattern.rs +0 -95
- package/rust/core/preprocessor/resolver/spawn.rs +0 -99
- package/rust/core/preprocessor/resolver/synth.rs +0 -54
- package/rust/core/preprocessor/resolver/tempo.rs +0 -48
- package/rust/core/preprocessor/resolver/trigger.rs +0 -116
- package/rust/core/preprocessor/resolver/value.rs +0 -176
- package/rust/core/store/global.rs +0 -57
- package/rust/core/store/mod.rs +0 -1
- package/rust/lib.rs +0 -323
- package/rust/macros/Cargo.toml +0 -14
- package/rust/macros/src/lib.rs +0 -52
- package/rust/main.rs +0 -557
- package/rust/types/Cargo.toml +0 -11
- package/rust/types/src/addons.rs +0 -57
- package/rust/types/src/ast.rs +0 -202
- package/rust/types/src/config.rs +0 -82
- package/rust/types/src/lib.rs +0 -15
- package/rust/types/src/plugin.rs +0 -20
- package/rust/types/src/store.rs +0 -139
- package/rust/types/src/telemetry.rs +0 -85
- package/rust/utils/Cargo.toml +0 -29
- package/rust/utils/src/error.rs +0 -186
- package/rust/utils/src/file.rs +0 -477
- package/rust/utils/src/first_usage.rs +0 -97
- package/rust/utils/src/lib.rs +0 -9
- package/rust/utils/src/logger.rs +0 -200
- package/rust/utils/src/path.rs +0 -158
- package/rust/utils/src/signature.rs +0 -41
- package/rust/utils/src/spinner.rs +0 -20
- package/rust/utils/src/version.rs +0 -58
- package/rust/utils/src/watcher.rs +0 -46
- package/rust/web/api.rs +0 -5
- package/rust/web/auth.rs +0 -5
- package/rust/web/cdn.rs +0 -34
- package/rust/web/forge.rs +0 -5
- package/rust/web/mod.rs +0 -5
- package/rust/web/sso.rs +0 -5
- package/templates/minimal/.devalang +0 -5
- package/templates/minimal/README.md +0 -218
- package/templates/minimal/src/index.deva +0 -2
- package/templates/welcome/.devalang +0 -5
- package/templates/welcome/README.md +0 -218
- package/templates/welcome/samples/kick-808.wav +0 -0
- package/templates/welcome/src/index.deva +0 -61
- package/templates/welcome/src/variables.deva +0 -3
- package/tests/integration.rs +0 -21
- package/tests/rust/cli_check_build.rs +0 -21
- package/tests/rust/cli_help.rs +0 -12
- package/tests/rust/cli_template_list.rs +0 -10
- package/tests/rust/cli_version.rs +0 -11
- package/tests/typescript/index.spec.ts +0 -136
- package/tests/typescript/playhead.spec.ts +0 -36
- package/tests/typescript/render_e2e.spec.ts +0 -77
- package/tsconfig.json +0 -115
- package/typescript/bin/index.ts +0 -28
- package/typescript/core/functions/index.ts +0 -94
- package/typescript/core/index.ts +0 -6
- package/typescript/core/types/index.ts +0 -4
- package/typescript/core/types/plugin.ts +0 -19
- package/typescript/core/types/result.ts +0 -29
- package/typescript/core/types/statement.ts +0 -47
- package/typescript/core/types/value.ts +0 -29
- package/typescript/index.ts +0 -8
- package/typescript/pkg/devalang_core.d.ts +0 -4
- package/typescript/pkg/devalang_core.ts +0 -65
- package/typescript/scripts/copy-wasm-dts.ts +0 -41
- package/typescript/scripts/postinstall.ts +0 -85
- package/typescript/scripts/version/bump.ts +0 -44
- package/typescript/scripts/version/copy-to-binary.ts +0 -82
- package/typescript/scripts/version/fetch.ts +0 -18
- package/typescript/scripts/version/index.ts +0 -25
- package/typescript/scripts/version/sync.ts +0 -24
package/out-tsc/api.d.ts
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level API wrapper for Devalang WASM functions
|
|
3
|
+
*
|
|
4
|
+
* This module provides TypeScript-friendly wrappers around the raw WASM bindings,
|
|
5
|
+
* with proper error handling and type conversions.
|
|
6
|
+
*/
|
|
7
|
+
import type { RenderOptions, MidiOptions, ParseResult, DebugRenderResult, CodeMetadata, RegisteredBank, DebugState } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Parse Devalang source code
|
|
10
|
+
*
|
|
11
|
+
* @param entryPath - Path to the source file (for error messages)
|
|
12
|
+
* @param source - Devalang source code
|
|
13
|
+
* @returns Parse result with statements or errors
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const result = await parse('test.deva', 'bpm 120\nsleep 1b');
|
|
18
|
+
* if (result.success) {
|
|
19
|
+
* console.log(`Parsed ${result.statements.length} statements`);
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function parse(entryPath: string, source: string): Promise<ParseResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Quick syntax check without full parsing
|
|
26
|
+
*
|
|
27
|
+
* @param source - Devalang source code
|
|
28
|
+
* @returns true if syntax is valid
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* if (await checkSyntax('bpm 120')) {
|
|
33
|
+
* console.log('Valid syntax!');
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function checkSyntax(source: string): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Render audio from Devalang code
|
|
40
|
+
*
|
|
41
|
+
* @param code - Devalang source code
|
|
42
|
+
* @param options - Render options (sample rate, BPM)
|
|
43
|
+
* @returns Float32Array containing rendered audio samples
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const audio = await renderAudio('bpm 120\nlet s = synth sine {}\ns -> note(A4, { duration: 500 })', {
|
|
48
|
+
* sampleRate: 44100,
|
|
49
|
+
* bpm: 120
|
|
50
|
+
* });
|
|
51
|
+
* console.log(`Rendered ${audio.length} samples`);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function renderAudio(code: string, options?: RenderOptions): Promise<Float32Array>;
|
|
55
|
+
/**
|
|
56
|
+
* Render audio with debug information
|
|
57
|
+
*
|
|
58
|
+
* @param code - Devalang source code
|
|
59
|
+
* @param options - Render options
|
|
60
|
+
* @returns Debug render result with audio and metadata
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const result = await debugRender('bpm 120\nlet s = synth sine {}\ns -> note(C4, { duration: 500 })');
|
|
65
|
+
* console.log(`Duration: ${result.duration}s, Events: ${result.eventCount}`);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function debugRender(code: string, options?: RenderOptions): Promise<DebugRenderResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Render WAV file preview as bytes
|
|
71
|
+
*
|
|
72
|
+
* @param code - Devalang source code
|
|
73
|
+
* @param options - Render options
|
|
74
|
+
* @returns Uint8Array containing WAV file bytes
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const wavBytes = await renderWavPreview('bpm 120\nsleep 1b');
|
|
79
|
+
* // Save to file or send to browser for download
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function renderWavPreview(code: string, options?: RenderOptions): Promise<Uint8Array>;
|
|
83
|
+
/**
|
|
84
|
+
* Render MIDI file as bytes
|
|
85
|
+
*
|
|
86
|
+
* @param code - Devalang source code
|
|
87
|
+
* @param options - MIDI options
|
|
88
|
+
* @returns Uint8Array containing MIDI file bytes
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const midiBytes = await renderMidi('bpm 120\nlet s = synth sine {}\ns -> note(C4, { duration: 1000 })');
|
|
93
|
+
* // Save as .mid file
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function renderMidi(code: string, options?: MidiOptions): Promise<Uint8Array>;
|
|
97
|
+
/**
|
|
98
|
+
* Get code metadata without rendering
|
|
99
|
+
*
|
|
100
|
+
* @param code - Devalang source code
|
|
101
|
+
* @param options - Options
|
|
102
|
+
* @returns Metadata about the code
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const meta = await getCodeMetadata('bpm 140\nsleep 1b\nsleep 1b');
|
|
107
|
+
* console.log(`${meta.statementCount} statements at ${meta.bpm} BPM`);
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function getCodeMetadata(code: string, options?: RenderOptions): Promise<CodeMetadata>;
|
|
111
|
+
/**
|
|
112
|
+
* Register an audio sample with PCM data
|
|
113
|
+
*
|
|
114
|
+
* @param uri - Sample URI (e.g., "devalang://bank/kick.wav")
|
|
115
|
+
* @param pcm - PCM audio data as Float32Array
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const pcm = new Float32Array([0.5, -0.5, 0.25, -0.25]);
|
|
120
|
+
* await registerSample('devalang://bank/test.wav', pcm);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function registerSample(uri: string, pcm: Float32Array): Promise<boolean>;
|
|
124
|
+
/**
|
|
125
|
+
* Register an audio bank addon
|
|
126
|
+
*
|
|
127
|
+
* @param path - Addon path (e.g., "devalang://bank/publisher.name?triggers=kick:audio/kick.wav")
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* await registerAddon('devalang://bank/devaloop.808?triggers=kick:audio/kick.wav,snare:audio/snare.wav');
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export declare function registerAddon(path: string): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* List all registered banks
|
|
137
|
+
*
|
|
138
|
+
* @returns Array of registered banks
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* const banks = await listRegisteredBanks();
|
|
143
|
+
* banks.forEach(bank => console.log(`${bank.alias}: ${bank.fullName}`));
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export declare function listRegisteredBanks(): Promise<RegisteredBank[]>;
|
|
147
|
+
/**
|
|
148
|
+
* Get sample load events log
|
|
149
|
+
*
|
|
150
|
+
* @param clear - Whether to clear the log after reading
|
|
151
|
+
* @returns Array of log messages
|
|
152
|
+
*/
|
|
153
|
+
export declare function getSampleLoadEvents(clear?: boolean): Promise<string[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Get playback debug log
|
|
156
|
+
*
|
|
157
|
+
* @param clear - Whether to clear the log after reading
|
|
158
|
+
* @returns Array of debug messages
|
|
159
|
+
*/
|
|
160
|
+
export declare function getPlaybackDebug(clear?: boolean): Promise<string[]>;
|
|
161
|
+
/**
|
|
162
|
+
* Get debug state
|
|
163
|
+
*
|
|
164
|
+
* @returns Current debug state
|
|
165
|
+
*/
|
|
166
|
+
export declare function getDebugState(): Promise<DebugState>;
|
|
167
|
+
/**
|
|
168
|
+
* Enable or disable debug error logging
|
|
169
|
+
*
|
|
170
|
+
* @param enable - Whether to enable debug errors
|
|
171
|
+
*/
|
|
172
|
+
export declare function setDebugErrors(enable: boolean): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Get last errors
|
|
175
|
+
*
|
|
176
|
+
* @param clear - Whether to clear errors after reading
|
|
177
|
+
* @returns Array of error messages
|
|
178
|
+
*/
|
|
179
|
+
export declare function getLastErrors(clear?: boolean): Promise<string[]>;
|
|
180
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/typescript/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,UAAU,EACX,MAAM,YAAY,CAAC;AA2BpB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAGnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAO9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAOnG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAOjG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CASzF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAOlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAGrE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnF;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGhF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAGzD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG7E"}
|
package/out-tsc/api.js
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level API wrapper for Devalang WASM functions
|
|
4
|
+
*
|
|
5
|
+
* This module provides TypeScript-friendly wrappers around the raw WASM bindings,
|
|
6
|
+
* with proper error handling and type conversions.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.parse = parse;
|
|
10
|
+
exports.checkSyntax = checkSyntax;
|
|
11
|
+
exports.renderAudio = renderAudio;
|
|
12
|
+
exports.debugRender = debugRender;
|
|
13
|
+
exports.renderWavPreview = renderWavPreview;
|
|
14
|
+
exports.renderMidi = renderMidi;
|
|
15
|
+
exports.getCodeMetadata = getCodeMetadata;
|
|
16
|
+
exports.registerSample = registerSample;
|
|
17
|
+
exports.registerAddon = registerAddon;
|
|
18
|
+
exports.listRegisteredBanks = listRegisteredBanks;
|
|
19
|
+
exports.getSampleLoadEvents = getSampleLoadEvents;
|
|
20
|
+
exports.getPlaybackDebug = getPlaybackDebug;
|
|
21
|
+
exports.getDebugState = getDebugState;
|
|
22
|
+
exports.setDebugErrors = setDebugErrors;
|
|
23
|
+
exports.getLastErrors = getLastErrors;
|
|
24
|
+
// WASM module will be loaded dynamically
|
|
25
|
+
let wasmModule = null;
|
|
26
|
+
/**
|
|
27
|
+
* Initialize the WASM module
|
|
28
|
+
* This is called automatically on first use
|
|
29
|
+
*/
|
|
30
|
+
async function ensureWasmLoaded() {
|
|
31
|
+
if (wasmModule)
|
|
32
|
+
return;
|
|
33
|
+
try {
|
|
34
|
+
// Try to load from different possible locations
|
|
35
|
+
try {
|
|
36
|
+
wasmModule = await import('../../pkg/web/devalang_wasm.js');
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
wasmModule = await import('../../pkg/node/devalang_wasm.js');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error('Failed to load WASM module. Make sure to run "npm run rust:wasm:all" first.\n' +
|
|
44
|
+
`Error: ${error}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse Devalang source code
|
|
49
|
+
*
|
|
50
|
+
* @param entryPath - Path to the source file (for error messages)
|
|
51
|
+
* @param source - Devalang source code
|
|
52
|
+
* @returns Parse result with statements or errors
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const result = await parse('test.deva', 'bpm 120\nsleep 1b');
|
|
57
|
+
* if (result.success) {
|
|
58
|
+
* console.log(`Parsed ${result.statements.length} statements`);
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async function parse(entryPath, source) {
|
|
63
|
+
await ensureWasmLoaded();
|
|
64
|
+
return wasmModule.parse(entryPath, source);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Quick syntax check without full parsing
|
|
68
|
+
*
|
|
69
|
+
* @param source - Devalang source code
|
|
70
|
+
* @returns true if syntax is valid
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* if (await checkSyntax('bpm 120')) {
|
|
75
|
+
* console.log('Valid syntax!');
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
async function checkSyntax(source) {
|
|
80
|
+
await ensureWasmLoaded();
|
|
81
|
+
return wasmModule.check_syntax(source);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Render audio from Devalang code
|
|
85
|
+
*
|
|
86
|
+
* @param code - Devalang source code
|
|
87
|
+
* @param options - Render options (sample rate, BPM)
|
|
88
|
+
* @returns Float32Array containing rendered audio samples
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const audio = await renderAudio('bpm 120\nlet s = synth sine {}\ns -> note(A4, { duration: 500 })', {
|
|
93
|
+
* sampleRate: 44100,
|
|
94
|
+
* bpm: 120
|
|
95
|
+
* });
|
|
96
|
+
* console.log(`Rendered ${audio.length} samples`);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
async function renderAudio(code, options) {
|
|
100
|
+
await ensureWasmLoaded();
|
|
101
|
+
const opts = {
|
|
102
|
+
sampleRate: options?.sampleRate ?? 44100,
|
|
103
|
+
bpm: options?.bpm ?? 120
|
|
104
|
+
};
|
|
105
|
+
return wasmModule.render_audio(code, opts);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Render audio with debug information
|
|
109
|
+
*
|
|
110
|
+
* @param code - Devalang source code
|
|
111
|
+
* @param options - Render options
|
|
112
|
+
* @returns Debug render result with audio and metadata
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const result = await debugRender('bpm 120\nlet s = synth sine {}\ns -> note(C4, { duration: 500 })');
|
|
117
|
+
* console.log(`Duration: ${result.duration}s, Events: ${result.eventCount}`);
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
async function debugRender(code, options) {
|
|
121
|
+
await ensureWasmLoaded();
|
|
122
|
+
const opts = {
|
|
123
|
+
sampleRate: options?.sampleRate ?? 44100,
|
|
124
|
+
bpm: options?.bpm ?? 120
|
|
125
|
+
};
|
|
126
|
+
return wasmModule.debug_render(code, opts);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Render WAV file preview as bytes
|
|
130
|
+
*
|
|
131
|
+
* @param code - Devalang source code
|
|
132
|
+
* @param options - Render options
|
|
133
|
+
* @returns Uint8Array containing WAV file bytes
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const wavBytes = await renderWavPreview('bpm 120\nsleep 1b');
|
|
138
|
+
* // Save to file or send to browser for download
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
async function renderWavPreview(code, options) {
|
|
142
|
+
await ensureWasmLoaded();
|
|
143
|
+
const opts = {
|
|
144
|
+
sampleRate: options?.sampleRate ?? 44100,
|
|
145
|
+
bpm: options?.bpm ?? 120
|
|
146
|
+
};
|
|
147
|
+
return wasmModule.render_wav_preview(code, opts);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Render MIDI file as bytes
|
|
151
|
+
*
|
|
152
|
+
* @param code - Devalang source code
|
|
153
|
+
* @param options - MIDI options
|
|
154
|
+
* @returns Uint8Array containing MIDI file bytes
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const midiBytes = await renderMidi('bpm 120\nlet s = synth sine {}\ns -> note(C4, { duration: 1000 })');
|
|
159
|
+
* // Save as .mid file
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
async function renderMidi(code, options) {
|
|
163
|
+
await ensureWasmLoaded();
|
|
164
|
+
const opts = {
|
|
165
|
+
sampleRate: options?.sampleRate ?? 44100,
|
|
166
|
+
bpm: options?.bpm ?? 120,
|
|
167
|
+
timeSignatureNum: options?.timeSignatureNum ?? 4,
|
|
168
|
+
timeSignatureDen: options?.timeSignatureDen ?? 4
|
|
169
|
+
};
|
|
170
|
+
return wasmModule.render_midi_array(code, opts);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get code metadata without rendering
|
|
174
|
+
*
|
|
175
|
+
* @param code - Devalang source code
|
|
176
|
+
* @param options - Options
|
|
177
|
+
* @returns Metadata about the code
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* const meta = await getCodeMetadata('bpm 140\nsleep 1b\nsleep 1b');
|
|
182
|
+
* console.log(`${meta.statementCount} statements at ${meta.bpm} BPM`);
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
async function getCodeMetadata(code, options) {
|
|
186
|
+
await ensureWasmLoaded();
|
|
187
|
+
const opts = {
|
|
188
|
+
sampleRate: options?.sampleRate ?? 44100,
|
|
189
|
+
bpm: options?.bpm ?? 120
|
|
190
|
+
};
|
|
191
|
+
return wasmModule.get_code_to_buffer_metadata(code, opts);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Register an audio sample with PCM data
|
|
195
|
+
*
|
|
196
|
+
* @param uri - Sample URI (e.g., "devalang://bank/kick.wav")
|
|
197
|
+
* @param pcm - PCM audio data as Float32Array
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* const pcm = new Float32Array([0.5, -0.5, 0.25, -0.25]);
|
|
202
|
+
* await registerSample('devalang://bank/test.wav', pcm);
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
async function registerSample(uri, pcm) {
|
|
206
|
+
await ensureWasmLoaded();
|
|
207
|
+
return wasmModule.register_sample(uri, pcm);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Register an audio bank addon
|
|
211
|
+
*
|
|
212
|
+
* @param path - Addon path (e.g., "devalang://bank/publisher.name?triggers=kick:audio/kick.wav")
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* await registerAddon('devalang://bank/devaloop.808?triggers=kick:audio/kick.wav,snare:audio/snare.wav');
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
async function registerAddon(path) {
|
|
220
|
+
await ensureWasmLoaded();
|
|
221
|
+
return wasmModule.register_addon(path);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* List all registered banks
|
|
225
|
+
*
|
|
226
|
+
* @returns Array of registered banks
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* const banks = await listRegisteredBanks();
|
|
231
|
+
* banks.forEach(bank => console.log(`${bank.alias}: ${bank.fullName}`));
|
|
232
|
+
* ```
|
|
233
|
+
*/
|
|
234
|
+
async function listRegisteredBanks() {
|
|
235
|
+
await ensureWasmLoaded();
|
|
236
|
+
return wasmModule.list_registered_banks();
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get sample load events log
|
|
240
|
+
*
|
|
241
|
+
* @param clear - Whether to clear the log after reading
|
|
242
|
+
* @returns Array of log messages
|
|
243
|
+
*/
|
|
244
|
+
async function getSampleLoadEvents(clear = false) {
|
|
245
|
+
await ensureWasmLoaded();
|
|
246
|
+
return wasmModule.sample_load_events(clear);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get playback debug log
|
|
250
|
+
*
|
|
251
|
+
* @param clear - Whether to clear the log after reading
|
|
252
|
+
* @returns Array of debug messages
|
|
253
|
+
*/
|
|
254
|
+
async function getPlaybackDebug(clear = false) {
|
|
255
|
+
await ensureWasmLoaded();
|
|
256
|
+
return wasmModule.collect_playback_debug(clear);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Get debug state
|
|
260
|
+
*
|
|
261
|
+
* @returns Current debug state
|
|
262
|
+
*/
|
|
263
|
+
async function getDebugState() {
|
|
264
|
+
await ensureWasmLoaded();
|
|
265
|
+
return wasmModule.playback_debug_state();
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Enable or disable debug error logging
|
|
269
|
+
*
|
|
270
|
+
* @param enable - Whether to enable debug errors
|
|
271
|
+
*/
|
|
272
|
+
async function setDebugErrors(enable) {
|
|
273
|
+
await ensureWasmLoaded();
|
|
274
|
+
wasmModule.set_wasm_debug_errors(enable);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get last errors
|
|
278
|
+
*
|
|
279
|
+
* @param clear - Whether to clear errors after reading
|
|
280
|
+
* @returns Array of error messages
|
|
281
|
+
*/
|
|
282
|
+
async function getLastErrors(clear = false) {
|
|
283
|
+
await ensureWasmLoaded();
|
|
284
|
+
return wasmModule.collect_last_errors(clear);
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/typescript/api.ts"],"names":[],"mappings":"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"}
|
package/out-tsc/bin/index.d.ts
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Devalang CLI entry point
|
|
4
|
+
*
|
|
5
|
+
* This is a placeholder that forwards to the Rust CLI binary.
|
|
6
|
+
* The actual CLI is built with Cargo and should be run with:
|
|
7
|
+
*
|
|
8
|
+
* cargo run --features cli -- [args]
|
|
9
|
+
*
|
|
10
|
+
* For the npm package, users should install the Rust toolchain
|
|
11
|
+
* or we should provide pre-built binaries.
|
|
12
|
+
*/
|
|
2
13
|
export {};
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typescript/bin/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
|
package/out-tsc/bin/index.js
CHANGED
|
@@ -1,57 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
3
|
+
/**
|
|
4
|
+
* Devalang CLI entry point
|
|
5
|
+
*
|
|
6
|
+
* This is a placeholder that forwards to the Rust CLI binary.
|
|
7
|
+
* The actual CLI is built with Cargo and should be run with:
|
|
8
|
+
*
|
|
9
|
+
* cargo run --features cli -- [args]
|
|
10
|
+
*
|
|
11
|
+
* For the npm package, users should install the Rust toolchain
|
|
12
|
+
* or we should provide pre-built binaries.
|
|
13
|
+
*/
|
|
36
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
break;
|
|
47
|
-
case "linux":
|
|
48
|
-
binaryName = "devalang-x86_64-unknown-linux-gnu";
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
console.error(`Unsupported platform: ${process.platform}`);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
const binaryPath = path.join(__dirname, binaryName);
|
|
55
|
-
const args = process.argv.slice(2);
|
|
56
|
-
const child = (0, child_process_1.spawn)(binaryPath, args, { stdio: "inherit" });
|
|
57
|
-
child.on("exit", (code) => process.exit(code !== null && code !== void 0 ? code : 1));
|
|
15
|
+
console.log('Devalang CLI');
|
|
16
|
+
console.log('============\n');
|
|
17
|
+
console.log('The Devalang CLI is built with Rust.');
|
|
18
|
+
console.log('Please run it using Cargo:\n');
|
|
19
|
+
console.log(' cargo run --features cli -- build --path examples/test.deva\n');
|
|
20
|
+
console.log('Or install the standalone binary from:');
|
|
21
|
+
console.log(' https://github.com/devaloop-labs/devalang/releases\n');
|
|
22
|
+
process.exit(0);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typescript/bin/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;GAUG;;AAEH,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACpD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC5C,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AAC/E,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACtD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AAEtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-usage.d.ts","sourceRoot":"","sources":["../../src/typescript/examples/basic-usage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|