nanoshell 1.7.8 → 1.7.9
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 +5 -4
- package/SKILL.md +4 -4
- package/cli/index.js +28 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# NanoShell ⚡ (`nanoshell@1.7.
|
|
1
|
+
# NanoShell ⚡ (`nanoshell@1.7.9`)
|
|
2
2
|
|
|
3
3
|
> **Created & Engineered by Suman Biswas** 👑
|
|
4
4
|
> *Hyper-lightweight 17MB RAM, 120 FPS Native WebKit Desktop Application Framework & Runtime Engine*
|
|
@@ -38,10 +38,11 @@ npm run package
|
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
-
## 🆕 What's New in v1.7.
|
|
41
|
+
## 🆕 What's New in v1.7.9
|
|
42
42
|
|
|
43
|
-
### 🌟
|
|
44
|
-
- **
|
|
43
|
+
### 🌟 Seamless `npm create nanoshell` & Interactive Prompt
|
|
44
|
+
- **Word-for-Word Scaffolding**: Published `create-nanoshell` package so `npm create nanoshell` works natively without 404 errors or stale `npx` cache issues.
|
|
45
|
+
- **Interactive Scaffolding**: Running `npm create nanoshell` without arguments now interactively prompts for the project name.
|
|
45
46
|
|
|
46
47
|
### 🪟 Pure Native Win32 Windowing & Full API Control
|
|
47
48
|
- **Zero Windowing Wrappers**: Fully excised AppCore window wrappers to give direct, un-sandboxed `HWND` control to native Zig code.
|
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: nanoshell-desktop-framework
|
|
|
3
3
|
description: Build ultra-fast, 120 FPS, 17MB RAM native desktop applications using HTML, CSS, JS, and Zig with the NanoShell runtime engine (nanoshell) created by Suman Biswas. Includes Per-Monitor DPI V2 crisp scaling and Win32 direct windowing.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# NanoShell Native Desktop Framework Skill Guide (`nanoshell@1.7.
|
|
6
|
+
# NanoShell Native Desktop Framework Skill Guide (`nanoshell@1.7.9`)
|
|
7
7
|
|
|
8
8
|
**Created & Engineered by Suman Biswas**
|
|
9
9
|
|
|
@@ -16,19 +16,19 @@ NanoShell is a hyper-lightweight, browser-free native desktop application framew
|
|
|
16
16
|
AI agents or developers can scaffold a new application using modern `npm create` standards (always fetches `@latest` without stale caching):
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
npm create nanoshell <app-name> # Scaffold new app template
|
|
19
|
+
npm create nanoshell <app-name> # Scaffold new app template (or run without args for interactive prompt)
|
|
20
20
|
npm start # Launch dev engine with hot-reloading
|
|
21
21
|
npm run build # Build production release binary only
|
|
22
22
|
npm run package # Build binary and generate Windows Inno Setup installer (.exe)
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
`
|
|
25
|
+
`npm run package` generates a single-file Windows Setup `.exe` with a installer dialog allowing end-users to choose:
|
|
26
26
|
- **Per-User Install** (No admin rights required, installs to `%LocalAppData%`)
|
|
27
27
|
- **System-Wide Install** (Requires admin rights, installs to `Program Files`)
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-
## ⚡ v1.7.
|
|
31
|
+
## ⚡ v1.7.9 Engine Architecture & High-DPI Rules for AI Agents
|
|
32
32
|
|
|
33
33
|
1. **Pure Win32 Subsystem**: Runs on `.Windows` subsystem with zero background CMD console windows.
|
|
34
34
|
2. **Per-Monitor DPI V2 Aware**: Integrates `DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2`. Window client sizes are automatically scaled physically (`physical_size = logical_size * dpi_scale`).
|
package/cli/index.js
CHANGED
|
@@ -36,7 +36,34 @@ if (!fs.existsSync(exePath)) {
|
|
|
36
36
|
exePath = path.join(pkgDir, 'bin', 'nanoshell.exe');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
const
|
|
39
|
+
const readline = require('readline');
|
|
40
|
+
|
|
41
|
+
let args = process.argv.slice(2);
|
|
42
|
+
|
|
43
|
+
// If no arguments provided (e.g. npm create nanoshell), prompt interactively for app name
|
|
44
|
+
if (args.length === 0) {
|
|
45
|
+
const rl = readline.createInterface({
|
|
46
|
+
input: process.stdin,
|
|
47
|
+
output: process.stdout
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
console.log(`\x1b[36m\x1b[1m
|
|
51
|
+
⚡ NanoShell Native Desktop Framework Scaffolder (v${pkg.version})
|
|
52
|
+
Created & Engineered by Suman Biswas
|
|
53
|
+
\x1b[0m`);
|
|
54
|
+
|
|
55
|
+
const defaultAppName = 'my-nanoshell-app';
|
|
56
|
+
rl.question(`? Project name: \x1b[36m(${defaultAppName})\x1b[0m `, (answer) => {
|
|
57
|
+
rl.close();
|
|
58
|
+
const appName = answer.trim() || defaultAppName;
|
|
59
|
+
console.log(`\n🚀 Scaffolding new NanoShell project in .\\${appName}...\n`);
|
|
60
|
+
|
|
61
|
+
// Re-invoke self with the project name argument
|
|
62
|
+
const execRes = spawnSync(process.execPath, [__filename, appName], { stdio: 'inherit' });
|
|
63
|
+
process.exit(execRes.status || 0);
|
|
64
|
+
});
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
40
67
|
|
|
41
68
|
// Handle "package" command directly in JS CLI runner
|
|
42
69
|
if (args.length > 0 && (args[0] === 'package' || args[0] === 'installer')) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nanoshell",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.9",
|
|
4
4
|
"description": "Hyper-lightweight native desktop application framework. 17MB RAM, 120 FPS, pure Win32 DPI-aware windowing with WebKit rendering. No Electron. Created by Suman Biswas.",
|
|
5
5
|
"main": "cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"build": "zig build -Doptimize=ReleaseFast",
|
|
26
26
|
"package": "node cli/index.js package",
|
|
27
27
|
"start": "zig-out/bin/example_app.exe",
|
|
28
|
-
"init": "zig-out/bin/nanoshell.exe init"
|
|
28
|
+
"init": "zig-out/bin/nanoshell.exe init",
|
|
29
|
+
"pub": "npm publish --access public && cd create-nanoshell && npm publish --access public && cd .."
|
|
29
30
|
},
|
|
30
31
|
"keywords": [
|
|
31
32
|
"nanoshell",
|