mirinjs 0.1.0-alpha.0 → 0.1.0-alpha.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mirinjs",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "Build desktop apps with Bun, TypeScript, and Chromium (CEF). The Bun-native Electron alternative.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/config.ts CHANGED
@@ -101,6 +101,14 @@ export interface MirinConfig {
101
101
  * notary credentials are set) notarized + stapled like the `.app`.
102
102
  */
103
103
  dmg?: boolean | DmgConfig;
104
+ /**
105
+ * Windows installer (NSIS) produced by `mirin release` alongside the updater
106
+ * artifacts. `true`/omitted builds a default assisted installer (Program Files
107
+ * or per-user, Start Menu + Desktop shortcuts, an uninstaller + Add/Remove
108
+ * Programs entry); an object customizes it; `false` ships only the portable
109
+ * `.zip`. Requires `makensis` (NSIS) on the build machine.
110
+ */
111
+ nsis?: boolean | NsisConfig;
104
112
  /**
105
113
  * External binaries bundled into the `.app` and spawned at runtime with
106
114
  * `app.sidecar(name)`. Maps a logical name to a path (relative to the project
@@ -176,6 +184,44 @@ export interface DmgConfig {
176
184
  applicationsPosition?: { x: number; y: number };
177
185
  }
178
186
 
187
+ export interface NsisConfig {
188
+ /**
189
+ * Install for all users under Program Files (requires elevation), vs the
190
+ * default per-user install under `%LOCALAPPDATA%\Programs` (no admin prompt,
191
+ * and the in-app updater can swap the folder without elevation).
192
+ */
193
+ perMachine?: boolean;
194
+ /**
195
+ * One-click install (no wizard — just a progress bar, then run), vs the default
196
+ * assisted wizard (welcome → optional license → directory → install → finish).
197
+ */
198
+ oneClick?: boolean;
199
+ /** Default install directory (absolute, or with NSIS vars like `$PROGRAMFILES64`). */
200
+ installDir?: string;
201
+ /** Let the user change the install directory in the assisted wizard. Default true. */
202
+ allowChangeInstallDir?: boolean;
203
+ /** Create a Desktop shortcut. Default true. */
204
+ desktopShortcut?: boolean;
205
+ /** Create a Start Menu shortcut. Default true. */
206
+ startMenuShortcut?: boolean;
207
+ /** License file shown on a wizard page (path relative to the project root; .txt/.rtf). */
208
+ license?: string;
209
+ /** Publisher / company name, shown in the Add/Remove Programs entry. */
210
+ publisher?: string;
211
+ /** Offer to launch the app on the finish page. Default true. */
212
+ runAfterFinish?: boolean;
213
+ /**
214
+ * Installer + uninstaller `.ico` (path relative to the project root). Defaults to
215
+ * the app `icon` (rendered to `.ico` like the window icon).
216
+ */
217
+ installerIcon?: string;
218
+ /**
219
+ * Raw NSIS script injected near the top of the generated script (advanced) — for
220
+ * custom pages, macros, or `Section` hooks beyond the options above.
221
+ */
222
+ include?: string;
223
+ }
224
+
179
225
  export interface ReleaseConfig {
180
226
  /** Flat directory URL hosting `{channel}-{platform}-{arch}-*` update files. */
181
227
  baseUrl: string;
package/src/index.ts CHANGED
@@ -51,6 +51,7 @@ export type {
51
51
  WindowMaterialOptions,
52
52
  ReleaseConfig,
53
53
  DmgConfig,
54
+ NsisConfig,
54
55
  SidecarSpec,
55
56
  SidecarEntitlement,
56
57
  } from "./config.ts";