gemshell 0.0.0-stage → 1.2.1

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.md ADDED
@@ -0,0 +1,44 @@
1
+ # GemShell License
2
+
3
+ Copyright (c) 2026 Edgar Metzler. All rights reserved.
4
+
5
+ GemShell is proprietary software. It is not open source. By installing or
6
+ using it you agree to these terms.
7
+
8
+ ## 1. Using GemShell
9
+
10
+ You may download, install and use GemShell free of charge, including to make
11
+ and sell commercial games, with the features of GemShell Lite.
12
+
13
+ ## 2. GemShell Pro
14
+
15
+ The features of GemShell Pro are unlocked by a purchase at
16
+ https://l0om.itch.io/gemshell. A purchase is a licence for the person who
17
+ bought it, to use on their own computers. It may not be shared, lent, resold
18
+ or transferred.
19
+
20
+ ## 3. Your games
21
+
22
+ The games you build with GemShell are yours, and you may distribute and sell
23
+ them. The parts of GemShell that a build puts into a game may be distributed
24
+ only as part of that game.
25
+
26
+ ## 4. What you may not do
27
+
28
+ Except where the law allows it regardless of these terms, you may not:
29
+
30
+ - decompile, disassemble or otherwise reverse engineer GemShell;
31
+ - remove, disable or get around its licence checks;
32
+ - copy GemShell's code into other software;
33
+ - distribute GemShell itself, other than through the channels it is
34
+ published on.
35
+
36
+ ## 5. No warranty
37
+
38
+ GemShell is provided as it is, without warranty of any kind. To the extent
39
+ the law allows, the author is not liable for any damage arising from its use.
40
+
41
+ ## 6. End
42
+
43
+ These terms end automatically if you break them. You then have to stop using
44
+ GemShell and remove it.
package/README.md CHANGED
@@ -1,3 +1,18 @@
1
- # Temporary Holding Version
1
+ # GemShell
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Package HTML5 games as desktop apps for Windows, macOS and Linux, and ship them to Steam, itch.io and GitHub, from a terminal or a CI pipeline.
4
+
5
+ ```bash
6
+ npm install -g gemshell
7
+ gemshell new mygame
8
+ cd mygame
9
+ gemshell build
10
+ ```
11
+
12
+ Or without installing anything: `npx gemshell build`.
13
+
14
+ A game you already have is set up with `gemshell init`. `gemshell help` lists every command, and `gemshell help <command>` explains one.
15
+
16
+ Everything else is in the docs: **https://gemshell.dev/guide/command-line**
17
+
18
+ Deploying, mobile builds and plugins are GemShell Pro: **https://l0om.itch.io/gemshell**
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ // The gemshell command, from npm.
3
+ //
4
+ // GemShell is one native program per system. npm installs only the package
5
+ // that fits this machine, through optionalDependencies that each name an os
6
+ // and a cpu, and this starts the program out of it with everything passed
7
+ // through: the arguments, the terminal, the exit code.
8
+ 'use strict';
9
+
10
+ const { spawn } = require('child_process');
11
+
12
+ const pkg = `@gemshell/${process.platform}-${process.arch}`;
13
+ const exe = process.platform === 'win32' ? 'gemshell.exe' : 'gemshell';
14
+
15
+ let bin;
16
+ try {
17
+ bin = require.resolve(`${pkg}/bin/${exe}`);
18
+ } catch {
19
+ const known = ['darwin-arm64', 'darwin-x64', 'win32-x64', 'linux-x64', 'linux-arm64'];
20
+ if (known.includes(`${process.platform}-${process.arch}`)) {
21
+ console.error(`gemshell: ${pkg} is missing, which happens when optional packages are ` +
22
+ `left out. Install again without --no-optional or --omit=optional.`);
23
+ } else {
24
+ console.error(`gemshell: there is no GemShell for ${process.platform} ${process.arch}. ` +
25
+ `It runs on macOS, Windows x64 and Linux x64 and arm64.`);
26
+ }
27
+ process.exit(1);
28
+ }
29
+
30
+ const child = spawn(bin, process.argv.slice(2), { stdio: 'inherit' });
31
+ // Ctrl-C reaches GemShell itself, which stops a build or a deploy cleanly;
32
+ // this waits for it rather than leaving it running behind the prompt.
33
+ for (const sig of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
34
+ process.on(sig, () => {});
35
+ }
36
+ child.on('error', (err) => {
37
+ console.error(`gemshell: ${err.message}`);
38
+ process.exit(1);
39
+ });
40
+ child.on('exit', (code, signal) => {
41
+ if (signal) {
42
+ process.removeAllListeners(signal);
43
+ process.kill(process.pid, signal);
44
+ return;
45
+ }
46
+ process.exit(code ?? 1);
47
+ });
package/package.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "gemshell",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.2.1",
4
+ "description": "Package HTML5 games as desktop apps for Windows, macOS and Linux, and ship them to Steam, itch.io and GitHub.",
5
+ "homepage": "https://gemshell.dev/guide/command-line",
6
+ "license": "SEE LICENSE IN LICENSE.md",
7
+ "keywords": [
8
+ "html5",
9
+ "game",
10
+ "electron",
11
+ "steam",
12
+ "itch.io",
13
+ "desktop",
14
+ "packager",
15
+ "cli"
16
+ ],
17
+ "bin": {
18
+ "gemshell": "bin/gemshell.js"
19
+ },
20
+ "engines": {
21
+ "node": ">=16"
22
+ },
23
+ "optionalDependencies": {
24
+ "@gemshell/darwin-arm64": "1.2.1",
25
+ "@gemshell/darwin-x64": "1.2.1",
26
+ "@gemshell/win32-x64": "1.2.1",
27
+ "@gemshell/linux-x64": "1.2.1",
28
+ "@gemshell/linux-arm64": "1.2.1"
29
+ }
30
+ }