valence-cli 1.3.0 → 1.3.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/README.md +56 -53
- package/README.original.md +56 -53
- package/dist/README.md +56 -53
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +39 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/features/audio.d.ts +2 -0
- package/dist/commands/features/audio.d.ts.map +1 -0
- package/dist/commands/features/audio.js +17 -0
- package/dist/commands/features/audio.js.map +1 -0
- package/dist/commands/features/input.d.ts +2 -0
- package/dist/commands/features/input.d.ts.map +1 -0
- package/dist/commands/features/input.js +13 -0
- package/dist/commands/features/input.js.map +1 -0
- package/dist/commands/features/native.d.ts.map +1 -1
- package/dist/commands/features/native.js +0 -8
- package/dist/commands/features/native.js.map +1 -1
- package/dist/commands/features/settings.d.ts +2 -0
- package/dist/commands/features/settings.d.ts.map +1 -0
- package/dist/commands/features/settings.js +13 -0
- package/dist/commands/features/settings.js.map +1 -0
- package/dist/commands/features/state.d.ts +2 -0
- package/dist/commands/features/state.d.ts.map +1 -0
- package/dist/commands/features/state.js +12 -0
- package/dist/commands/features/state.js.map +1 -0
- package/dist/commands/features/storage.d.ts +2 -0
- package/dist/commands/features/storage.d.ts.map +1 -0
- package/dist/commands/features/storage.js +33 -0
- package/dist/commands/features/storage.js.map +1 -0
- package/dist/commands/features/tailwind.d.ts.map +1 -1
- package/dist/commands/features/tailwind.js +8 -8
- package/dist/commands/features/tailwind.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +19 -0
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/new-helpers.d.ts +2 -1
- package/dist/commands/new-helpers.d.ts.map +1 -1
- package/dist/commands/new-helpers.js +28 -76
- package/dist/commands/new-helpers.js.map +1 -1
- package/dist/commands/new.d.ts +1 -0
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +58 -38
- package/dist/commands/new.js.map +1 -1
- package/dist/constants/versions.d.ts +3 -0
- package/dist/constants/versions.d.ts.map +1 -1
- package/dist/constants/versions.js +3 -0
- package/dist/constants/versions.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/angular.d.ts +2 -2
- package/dist/templates/angular.d.ts.map +1 -1
- package/dist/templates/angular.js +4 -5
- package/dist/templates/angular.js.map +1 -1
- package/dist/templates/audio.d.ts +2 -0
- package/dist/templates/audio.d.ts.map +1 -0
- package/dist/templates/audio.js +95 -0
- package/dist/templates/audio.js.map +1 -0
- package/dist/templates/index.d.ts +5 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +5 -0
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/input.d.ts +2 -0
- package/dist/templates/input.d.ts.map +1 -0
- package/dist/templates/input.js +159 -0
- package/dist/templates/input.js.map +1 -0
- package/dist/templates/phaser-scene.d.ts +2 -0
- package/dist/templates/phaser-scene.d.ts.map +1 -0
- package/dist/templates/phaser-scene.js +27 -0
- package/dist/templates/phaser-scene.js.map +1 -0
- package/dist/templates/phaser.d.ts +2 -0
- package/dist/templates/phaser.d.ts.map +1 -0
- package/dist/templates/phaser.js +147 -0
- package/dist/templates/phaser.js.map +1 -0
- package/dist/templates/settings.d.ts +2 -0
- package/dist/templates/settings.d.ts.map +1 -0
- package/dist/templates/settings.js +66 -0
- package/dist/templates/settings.js.map +1 -0
- package/dist/templates/state.d.ts +2 -0
- package/dist/templates/state.d.ts.map +1 -0
- package/dist/templates/state.js +35 -0
- package/dist/templates/state.js.map +1 -0
- package/dist/templates/storage.d.ts +4 -0
- package/dist/templates/storage.d.ts.map +1 -0
- package/dist/templates/storage.js +121 -0
- package/dist/templates/storage.js.map +1 -0
- package/dist/templates.d.ts +2 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +2 -0
- package/dist/templates.js.map +1 -1
- package/dist/utils/ast/modify-app-component.d.ts +2 -0
- package/dist/utils/ast/modify-app-component.d.ts.map +1 -0
- package/dist/utils/ast/modify-app-component.js +136 -0
- package/dist/utils/ast/modify-app-component.js.map +1 -0
- package/dist/utils/configurators/angular.d.ts +2 -0
- package/dist/utils/configurators/angular.d.ts.map +1 -0
- package/dist/utils/configurators/angular.js +28 -0
- package/dist/utils/configurators/angular.js.map +1 -0
- package/dist/utils/configurators/electron.d.ts +2 -0
- package/dist/utils/configurators/electron.d.ts.map +1 -0
- package/dist/utils/configurators/electron.js +12 -0
- package/dist/utils/configurators/electron.js.map +1 -0
- package/dist/utils/configurators/meta.d.ts +5 -0
- package/dist/utils/configurators/meta.d.ts.map +1 -0
- package/dist/utils/configurators/meta.js +14 -0
- package/dist/utils/configurators/meta.js.map +1 -0
- package/dist/utils/configurators/package.d.ts +5 -0
- package/dist/utils/configurators/package.d.ts.map +1 -0
- package/dist/utils/configurators/package.js +23 -0
- package/dist/utils/configurators/package.js.map +1 -0
- package/dist/utils/files.d.ts +17 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +41 -0
- package/dist/utils/files.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,12 +35,16 @@ valence start
|
|
|
35
35
|
## 🛠 Commands
|
|
36
36
|
|
|
37
37
|
### `valence new <name>`
|
|
38
|
-
Scaffolds a new project
|
|
38
|
+
Scaffolds a new high-performance project. You will be prompted to select your engine:
|
|
39
|
+
|
|
40
|
+
* **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
|
|
41
|
+
* **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
|
|
42
|
+
|
|
43
|
+
**Both environments include:**
|
|
39
44
|
- **Angular**: Latest CLI, SCSS, Routing.
|
|
40
45
|
- **Electron**: TypeScript Main/Preload processes, securely configured.
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
- **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
|
|
46
|
+
- **Forge**: Configured for building `.exe` / `.zip` / installers.
|
|
47
|
+
- **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
|
|
44
48
|
|
|
45
49
|
### `valence start`
|
|
46
50
|
Runs the application in **Development Mode**:
|
|
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
|
|
|
55
59
|
- Optimizes assets.
|
|
56
60
|
- Enforces relative paths (`baseHref="./"`) for Electron compatibility.
|
|
57
61
|
|
|
62
|
+
### `valence test`
|
|
63
|
+
Runs the project's automated test suite (if configured).
|
|
64
|
+
|
|
58
65
|
### `valence package`
|
|
59
66
|
Packages the application for distribution:
|
|
60
67
|
- Runs `valence build`.
|
|
@@ -63,71 +70,67 @@ Packages the application for distribution:
|
|
|
63
70
|
|
|
64
71
|
### `valence publish`
|
|
65
72
|
Automates the release pipeline:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
- Bumps project version (patch).
|
|
74
|
+
- Updates `README.md` version badges.
|
|
75
|
+
- Builds & Packages.
|
|
76
|
+
- Generates `RELEASES_README.md` entry.
|
|
77
|
+
- Publishes via Electron Forge.
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
*Alias: `valence g scene <name>`*
|
|
74
|
-
Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
|
|
75
|
-
- Pre-wired `Engine` and `Scene` creation.
|
|
76
|
-
- Includes Camera, Light, and Resize event handling.
|
|
77
|
-
- Ready for 3D logic immediately.
|
|
79
|
+
---
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
## 🎮 Gameplay Services
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
Valence can automatically inject core game systems into your project.
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
### `valence add <feature>`
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
87
|
+
#### Core Systems
|
|
88
|
+
* **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
|
|
89
|
+
* **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
|
|
90
|
+
* **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
|
|
91
|
+
* **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
|
|
92
|
+
* **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
#### 3D Features (Babylon.js)
|
|
95
|
+
* **`physics`**: Installs Havok engine (WASM) & initializes physics.
|
|
96
|
+
* **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
|
|
97
|
+
* **`gui`**: Installs `lil-gui` debug panel.
|
|
98
|
+
* **`materials`**: Installs `@babylonjs/materials`.
|
|
99
|
+
* **`skybox`**: Creates environmental skybox.
|
|
100
|
+
* **`xr`**: Initializes WebXR (VR/AR) experience.
|
|
90
101
|
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
#### Universal Features
|
|
103
|
+
* **`tailwind`**: Configures TailwindCSS with Angular.
|
|
104
|
+
* **`multiplayer`**: Scaffolds Colyseus server & client.
|
|
105
|
+
* **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
|
|
106
|
+
* **`native`**: Scaffolds Rust (Neon) native module.
|
|
93
107
|
|
|
94
|
-
|
|
95
|
-
- `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
|
|
96
|
-
- `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
|
|
97
|
-
- `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
|
|
98
|
-
- `skybox`: Automatically creates a large skybox mesh to provide environmental context.
|
|
99
|
-
- `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
|
|
100
|
-
- `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
|
|
101
|
-
- `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
|
|
102
|
-
- `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
|
|
103
|
-
- `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
|
|
108
|
+
---
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
## 🎲 Generators
|
|
106
111
|
|
|
107
|
-
|
|
112
|
+
### `valence generate scene <name>`
|
|
113
|
+
*Alias: `valence g scene <name>`*
|
|
114
|
+
Scaffolds a new Scene component:
|
|
115
|
+
* **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
|
|
116
|
+
* **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
|
|
108
117
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
118
|
+
### `valence generate bridge <name>`
|
|
119
|
+
*Alias: `valence g bridge <name>`*
|
|
120
|
+
Generates a type-safe IPC communication channel:
|
|
121
|
+
* **Main Process**: Registers `ipcMain.handle`.
|
|
122
|
+
* **Preload**: Exposes `contextBridge` API.
|
|
123
|
+
* **Service**: Creates Angular service wrapper.
|
|
114
124
|
|
|
115
125
|
### `valence codegen assets`
|
|
126
|
+
Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
|
|
116
127
|
|
|
117
|
-
|
|
128
|
+
---
|
|
118
129
|
|
|
119
|
-
|
|
130
|
+
## 🩺 Diagnostics
|
|
120
131
|
|
|
121
132
|
### `valence doctor`
|
|
122
|
-
|
|
123
|
-
Diagnoses your development environment:
|
|
124
|
-
- Checks Node.js & NPM versions.
|
|
125
|
-
- Verifies Git installation.
|
|
126
|
-
- Checks for global Angular CLI (optional).
|
|
133
|
+
Diagnoses your development environment (Node, NPM, Git).
|
|
127
134
|
|
|
128
135
|
### `valence verify`
|
|
129
|
-
|
|
130
|
-
Performs a deep health check of your project structure and configuration:
|
|
131
|
-
- **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
|
|
132
|
-
- **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
|
|
133
|
-
- **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
|
|
136
|
+
Performs deep health check of project structure and configuration.
|
package/README.original.md
CHANGED
|
@@ -35,12 +35,16 @@ valence start
|
|
|
35
35
|
## 🛠 Commands
|
|
36
36
|
|
|
37
37
|
### `valence new <name>`
|
|
38
|
-
Scaffolds a new project
|
|
38
|
+
Scaffolds a new high-performance project. You will be prompted to select your engine:
|
|
39
|
+
|
|
40
|
+
* **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
|
|
41
|
+
* **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
|
|
42
|
+
|
|
43
|
+
**Both environments include:**
|
|
39
44
|
- **Angular**: Latest CLI, SCSS, Routing.
|
|
40
45
|
- **Electron**: TypeScript Main/Preload processes, securely configured.
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
- **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
|
|
46
|
+
- **Forge**: Configured for building `.exe` / `.zip` / installers.
|
|
47
|
+
- **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
|
|
44
48
|
|
|
45
49
|
### `valence start`
|
|
46
50
|
Runs the application in **Development Mode**:
|
|
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
|
|
|
55
59
|
- Optimizes assets.
|
|
56
60
|
- Enforces relative paths (`baseHref="./"`) for Electron compatibility.
|
|
57
61
|
|
|
62
|
+
### `valence test`
|
|
63
|
+
Runs the project's automated test suite (if configured).
|
|
64
|
+
|
|
58
65
|
### `valence package`
|
|
59
66
|
Packages the application for distribution:
|
|
60
67
|
- Runs `valence build`.
|
|
@@ -63,71 +70,67 @@ Packages the application for distribution:
|
|
|
63
70
|
|
|
64
71
|
### `valence publish`
|
|
65
72
|
Automates the release pipeline:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
- Bumps project version (patch).
|
|
74
|
+
- Updates `README.md` version badges.
|
|
75
|
+
- Builds & Packages.
|
|
76
|
+
- Generates `RELEASES_README.md` entry.
|
|
77
|
+
- Publishes via Electron Forge.
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
*Alias: `valence g scene <name>`*
|
|
74
|
-
Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
|
|
75
|
-
- Pre-wired `Engine` and `Scene` creation.
|
|
76
|
-
- Includes Camera, Light, and Resize event handling.
|
|
77
|
-
- Ready for 3D logic immediately.
|
|
79
|
+
---
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
## 🎮 Gameplay Services
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
Valence can automatically inject core game systems into your project.
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
### `valence add <feature>`
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
87
|
+
#### Core Systems
|
|
88
|
+
* **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
|
|
89
|
+
* **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
|
|
90
|
+
* **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
|
|
91
|
+
* **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
|
|
92
|
+
* **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
#### 3D Features (Babylon.js)
|
|
95
|
+
* **`physics`**: Installs Havok engine (WASM) & initializes physics.
|
|
96
|
+
* **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
|
|
97
|
+
* **`gui`**: Installs `lil-gui` debug panel.
|
|
98
|
+
* **`materials`**: Installs `@babylonjs/materials`.
|
|
99
|
+
* **`skybox`**: Creates environmental skybox.
|
|
100
|
+
* **`xr`**: Initializes WebXR (VR/AR) experience.
|
|
90
101
|
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
#### Universal Features
|
|
103
|
+
* **`tailwind`**: Configures TailwindCSS with Angular.
|
|
104
|
+
* **`multiplayer`**: Scaffolds Colyseus server & client.
|
|
105
|
+
* **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
|
|
106
|
+
* **`native`**: Scaffolds Rust (Neon) native module.
|
|
93
107
|
|
|
94
|
-
|
|
95
|
-
- `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
|
|
96
|
-
- `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
|
|
97
|
-
- `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
|
|
98
|
-
- `skybox`: Automatically creates a large skybox mesh to provide environmental context.
|
|
99
|
-
- `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
|
|
100
|
-
- `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
|
|
101
|
-
- `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
|
|
102
|
-
- `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
|
|
103
|
-
- `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
|
|
108
|
+
---
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
## 🎲 Generators
|
|
106
111
|
|
|
107
|
-
|
|
112
|
+
### `valence generate scene <name>`
|
|
113
|
+
*Alias: `valence g scene <name>`*
|
|
114
|
+
Scaffolds a new Scene component:
|
|
115
|
+
* **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
|
|
116
|
+
* **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
|
|
108
117
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
118
|
+
### `valence generate bridge <name>`
|
|
119
|
+
*Alias: `valence g bridge <name>`*
|
|
120
|
+
Generates a type-safe IPC communication channel:
|
|
121
|
+
* **Main Process**: Registers `ipcMain.handle`.
|
|
122
|
+
* **Preload**: Exposes `contextBridge` API.
|
|
123
|
+
* **Service**: Creates Angular service wrapper.
|
|
114
124
|
|
|
115
125
|
### `valence codegen assets`
|
|
126
|
+
Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
|
|
116
127
|
|
|
117
|
-
|
|
128
|
+
---
|
|
118
129
|
|
|
119
|
-
|
|
130
|
+
## 🩺 Diagnostics
|
|
120
131
|
|
|
121
132
|
### `valence doctor`
|
|
122
|
-
|
|
123
|
-
Diagnoses your development environment:
|
|
124
|
-
- Checks Node.js & NPM versions.
|
|
125
|
-
- Verifies Git installation.
|
|
126
|
-
- Checks for global Angular CLI (optional).
|
|
133
|
+
Diagnoses your development environment (Node, NPM, Git).
|
|
127
134
|
|
|
128
135
|
### `valence verify`
|
|
129
|
-
|
|
130
|
-
Performs a deep health check of your project structure and configuration:
|
|
131
|
-
- **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
|
|
132
|
-
- **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
|
|
133
|
-
- **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
|
|
136
|
+
Performs deep health check of project structure and configuration.
|
package/dist/README.md
CHANGED
|
@@ -35,12 +35,16 @@ valence start
|
|
|
35
35
|
## 🛠 Commands
|
|
36
36
|
|
|
37
37
|
### `valence new <name>`
|
|
38
|
-
Scaffolds a new project
|
|
38
|
+
Scaffolds a new high-performance project. You will be prompted to select your engine:
|
|
39
|
+
|
|
40
|
+
* **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
|
|
41
|
+
* **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
|
|
42
|
+
|
|
43
|
+
**Both environments include:**
|
|
39
44
|
- **Angular**: Latest CLI, SCSS, Routing.
|
|
40
45
|
- **Electron**: TypeScript Main/Preload processes, securely configured.
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
- **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
|
|
46
|
+
- **Forge**: Configured for building `.exe` / `.zip` / installers.
|
|
47
|
+
- **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
|
|
44
48
|
|
|
45
49
|
### `valence start`
|
|
46
50
|
Runs the application in **Development Mode**:
|
|
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
|
|
|
55
59
|
- Optimizes assets.
|
|
56
60
|
- Enforces relative paths (`baseHref="./"`) for Electron compatibility.
|
|
57
61
|
|
|
62
|
+
### `valence test`
|
|
63
|
+
Runs the project's automated test suite (if configured).
|
|
64
|
+
|
|
58
65
|
### `valence package`
|
|
59
66
|
Packages the application for distribution:
|
|
60
67
|
- Runs `valence build`.
|
|
@@ -63,71 +70,67 @@ Packages the application for distribution:
|
|
|
63
70
|
|
|
64
71
|
### `valence publish`
|
|
65
72
|
Automates the release pipeline:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
- Bumps project version (patch).
|
|
74
|
+
- Updates `README.md` version badges.
|
|
75
|
+
- Builds & Packages.
|
|
76
|
+
- Generates `RELEASES_README.md` entry.
|
|
77
|
+
- Publishes via Electron Forge.
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
*Alias: `valence g scene <name>`*
|
|
74
|
-
Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
|
|
75
|
-
- Pre-wired `Engine` and `Scene` creation.
|
|
76
|
-
- Includes Camera, Light, and Resize event handling.
|
|
77
|
-
- Ready for 3D logic immediately.
|
|
79
|
+
---
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
## 🎮 Gameplay Services
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
Valence can automatically inject core game systems into your project.
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
### `valence add <feature>`
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
87
|
+
#### Core Systems
|
|
88
|
+
* **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
|
|
89
|
+
* **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
|
|
90
|
+
* **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
|
|
91
|
+
* **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
|
|
92
|
+
* **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
#### 3D Features (Babylon.js)
|
|
95
|
+
* **`physics`**: Installs Havok engine (WASM) & initializes physics.
|
|
96
|
+
* **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
|
|
97
|
+
* **`gui`**: Installs `lil-gui` debug panel.
|
|
98
|
+
* **`materials`**: Installs `@babylonjs/materials`.
|
|
99
|
+
* **`skybox`**: Creates environmental skybox.
|
|
100
|
+
* **`xr`**: Initializes WebXR (VR/AR) experience.
|
|
90
101
|
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
#### Universal Features
|
|
103
|
+
* **`tailwind`**: Configures TailwindCSS with Angular.
|
|
104
|
+
* **`multiplayer`**: Scaffolds Colyseus server & client.
|
|
105
|
+
* **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
|
|
106
|
+
* **`native`**: Scaffolds Rust (Neon) native module.
|
|
93
107
|
|
|
94
|
-
|
|
95
|
-
- `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
|
|
96
|
-
- `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
|
|
97
|
-
- `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
|
|
98
|
-
- `skybox`: Automatically creates a large skybox mesh to provide environmental context.
|
|
99
|
-
- `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
|
|
100
|
-
- `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
|
|
101
|
-
- `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
|
|
102
|
-
- `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
|
|
103
|
-
- `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
|
|
108
|
+
---
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
## 🎲 Generators
|
|
106
111
|
|
|
107
|
-
|
|
112
|
+
### `valence generate scene <name>`
|
|
113
|
+
*Alias: `valence g scene <name>`*
|
|
114
|
+
Scaffolds a new Scene component:
|
|
115
|
+
* **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
|
|
116
|
+
* **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
|
|
108
117
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
118
|
+
### `valence generate bridge <name>`
|
|
119
|
+
*Alias: `valence g bridge <name>`*
|
|
120
|
+
Generates a type-safe IPC communication channel:
|
|
121
|
+
* **Main Process**: Registers `ipcMain.handle`.
|
|
122
|
+
* **Preload**: Exposes `contextBridge` API.
|
|
123
|
+
* **Service**: Creates Angular service wrapper.
|
|
114
124
|
|
|
115
125
|
### `valence codegen assets`
|
|
126
|
+
Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
|
|
116
127
|
|
|
117
|
-
|
|
128
|
+
---
|
|
118
129
|
|
|
119
|
-
|
|
130
|
+
## 🩺 Diagnostics
|
|
120
131
|
|
|
121
132
|
### `valence doctor`
|
|
122
|
-
|
|
123
|
-
Diagnoses your development environment:
|
|
124
|
-
- Checks Node.js & NPM versions.
|
|
125
|
-
- Verifies Git installation.
|
|
126
|
-
- Checks for global Angular CLI (optional).
|
|
133
|
+
Diagnoses your development environment (Node, NPM, Git).
|
|
127
134
|
|
|
128
135
|
### `valence verify`
|
|
129
|
-
|
|
130
|
-
Performs a deep health check of your project structure and configuration:
|
|
131
|
-
- **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
|
|
132
|
-
- **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
|
|
133
|
-
- **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
|
|
136
|
+
Performs deep health check of project structure and configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,kBAmD/C,CAAA"}
|
package/dist/commands/add.js
CHANGED
|
@@ -7,6 +7,11 @@ import { addNative } from './features/native.js';
|
|
|
7
7
|
import { addPipeline } from './features/pipeline.js';
|
|
8
8
|
import { addTailwind } from './features/tailwind.js';
|
|
9
9
|
import { addInspector, addGui, addMaterials, addSkybox, addXr } from './features/assets.js';
|
|
10
|
+
import { addInput } from './features/input.js';
|
|
11
|
+
import { addAudio } from './features/audio.js';
|
|
12
|
+
import { addStorage } from './features/storage.js';
|
|
13
|
+
import { addSettings } from './features/settings.js';
|
|
14
|
+
import { addState } from './features/state.js';
|
|
10
15
|
export const addFeature = async (feature) => {
|
|
11
16
|
const cwd = process.cwd();
|
|
12
17
|
const packageJsonPath = path.join(cwd, 'package.json');
|
|
@@ -17,6 +22,24 @@ export const addFeature = async (feature) => {
|
|
|
17
22
|
if (packageJson.valence?.type !== 'valence-project') {
|
|
18
23
|
console.warn(chalk.yellow('This does not strictly resemble a Valence project. Proceeding anyway...'));
|
|
19
24
|
}
|
|
25
|
+
// Check Engine Compatibility
|
|
26
|
+
const valenceConfigPath = path.join(cwd, '.valence', 'valence.json');
|
|
27
|
+
let engineType = '3d'; // Default to 3d for legacy projects
|
|
28
|
+
if (await fs.pathExists(valenceConfigPath)) {
|
|
29
|
+
const config = await fs.readJson(valenceConfigPath);
|
|
30
|
+
if (config.engine)
|
|
31
|
+
engineType = config.engine;
|
|
32
|
+
}
|
|
33
|
+
const featureCompatibility = {
|
|
34
|
+
'physics': ['3d'],
|
|
35
|
+
'inspector': ['3d'],
|
|
36
|
+
'materials': ['3d'],
|
|
37
|
+
'skybox': ['3d'],
|
|
38
|
+
'xr': ['3d'],
|
|
39
|
+
};
|
|
40
|
+
if (featureCompatibility[feature] && !featureCompatibility[feature].includes(engineType)) {
|
|
41
|
+
throw new Error(chalk.red(`Feature "${feature}" is not compatible with ${engineType.toUpperCase()} engine.`));
|
|
42
|
+
}
|
|
20
43
|
switch (feature) {
|
|
21
44
|
case 'physics':
|
|
22
45
|
await addPhysics(cwd);
|
|
@@ -48,8 +71,23 @@ export const addFeature = async (feature) => {
|
|
|
48
71
|
case 'native':
|
|
49
72
|
await addNative(cwd);
|
|
50
73
|
break;
|
|
74
|
+
case 'input':
|
|
75
|
+
await addInput(cwd);
|
|
76
|
+
break;
|
|
77
|
+
case 'audio':
|
|
78
|
+
await addAudio(cwd);
|
|
79
|
+
break;
|
|
80
|
+
case 'storage':
|
|
81
|
+
await addStorage(cwd);
|
|
82
|
+
break;
|
|
83
|
+
case 'settings':
|
|
84
|
+
await addSettings(cwd);
|
|
85
|
+
break;
|
|
86
|
+
case 'state':
|
|
87
|
+
await addState(cwd);
|
|
88
|
+
break;
|
|
51
89
|
default:
|
|
52
|
-
throw new Error(`Unknown feature: ${feature}. Available: physics, inspector, gui, materials, skybox, xr, tailwind, multiplayer, pipeline, native`);
|
|
90
|
+
throw new Error(`Unknown feature: ${feature}. Available: physics, inspector, gui, materials, skybox, xr, tailwind, multiplayer, pipeline, native, input, audio, storage, settings, state`);
|
|
53
91
|
}
|
|
54
92
|
};
|
|
55
93
|
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/commands/features/audio.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,GAAU,aAAa,MAAM,kBAcjD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
import { audioServiceTemplate } from '../../templates.js';
|
|
6
|
+
export const addAudio = async (projectPath) => {
|
|
7
|
+
console.log(chalk.blue('Installing Audio System...'));
|
|
8
|
+
// 1. Install Howler
|
|
9
|
+
await execa('npm', ['install', 'howler', '@types/howler'], { cwd: projectPath, stdio: 'inherit' });
|
|
10
|
+
// 2. Create Service
|
|
11
|
+
const audioDir = path.join(projectPath, 'src/app/core/audio');
|
|
12
|
+
await fs.ensureDir(audioDir);
|
|
13
|
+
await fs.writeFile(path.join(audioDir, 'audio.service.ts'), audioServiceTemplate.trim());
|
|
14
|
+
console.log(chalk.green('✓ Audio Service created at src/app/core/audio/audio.service.ts'));
|
|
15
|
+
console.log(chalk.gray(' (Dependencies: howler installed)'));
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/commands/features/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEnG,oBAAoB;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/commands/features/input.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,GAAU,aAAa,MAAM,kBAUjD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { inputServiceTemplate } from '../../templates.js';
|
|
5
|
+
export const addInput = async (projectPath) => {
|
|
6
|
+
console.log(chalk.blue('Installing Input System...'));
|
|
7
|
+
const inputDir = path.join(projectPath, 'src/app/core/input');
|
|
8
|
+
await fs.ensureDir(inputDir);
|
|
9
|
+
await fs.writeFile(path.join(inputDir, 'input.service.ts'), inputServiceTemplate.trim());
|
|
10
|
+
console.log(chalk.green('✓ Input Service created at src/app/core/input/input.service.ts'));
|
|
11
|
+
console.log(chalk.gray(' (Auto-binds WASD, Arrows, Space, and Gamepad 1)'));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/commands/features/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,iBA0E1C"}
|
|
@@ -26,14 +26,6 @@ export async function addNative(cwd) {
|
|
|
26
26
|
await fs.writeFile(path.join(nativeDir, 'src', 'lib.rs'), nativeLibRs.trim());
|
|
27
27
|
return 'Native files created';
|
|
28
28
|
});
|
|
29
|
-
// 2. Install Deps - Skipped (No npm deps needed for direct cargo build)
|
|
30
|
-
/*
|
|
31
|
-
await runStage('Installing Native Deps', async (spinner) => {
|
|
32
|
-
const nativeDir = path.join(cwd, 'native');
|
|
33
|
-
await execWithScrollingLogger(spinner, 'npm', ['install'], { cwd: nativeDir, title: 'Installing neon...', rows: 5 });
|
|
34
|
-
return 'Neon installed';
|
|
35
|
-
});
|
|
36
|
-
*/
|
|
37
29
|
await runStage('Linking Native Module', async (spinner) => {
|
|
38
30
|
const rootPkgPath = path.join(cwd, 'package.json');
|
|
39
31
|
const rootPkg = await fs.readJSON(rootPkgPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACH,iBAAiB,EACjB,eAAe,EACf,WAAW,EACd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAEnE,cAAc;IACd,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IAC3G,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,cAAc;QACd,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9E,OAAO,sBAAsB,CAAC;IAClC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/commands/features/settings.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAU,aAAa,MAAM,kBAUpD,CAAC"}
|