openpalm 0.9.7 → 0.9.8

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.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bun
2
+ import { runMain } from 'citty';
3
+ import { mainCommand } from '../src/main.ts';
4
+
5
+ runMain(mainCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openpalm",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "type": "module",
5
5
  "license": "MPL-2.0",
6
6
  "description": "OpenPalm CLI — install and manage a self-hosted OpenPalm stack",
@@ -10,7 +10,7 @@
10
10
  "directory": "packages/cli"
11
11
  },
12
12
  "bin": {
13
- "openpalm": "./src/main.ts"
13
+ "openpalm": "./bin/openpalm.js"
14
14
  },
15
15
  "scripts": {
16
16
  "start": "bun run src/main.ts",
package/src/main.test.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { afterEach, describe, expect, it, mock } from 'bun:test';
2
- import { existsSync, mkdirSync, writeFileSync, chmodSync, mkdtempSync, rmSync } from 'node:fs';
2
+ import { existsSync, mkdirSync, writeFileSync, chmodSync, mkdtempSync, readFileSync, rmSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { detectHostInfo, main, reconcileStackEnvImageTag, resolveRequestedImageTag, upsertEnvValue } from './main.ts';
@@ -237,6 +237,22 @@ describe('cli main', () => {
237
237
  });
238
238
  });
239
239
 
240
+ describe('npm bin launcher', () => {
241
+ it('points the published bin to a Bun launcher script instead of a TypeScript source file', () => {
242
+ const cliPkg = JSON.parse(
243
+ readFileSync(new URL('../package.json', import.meta.url), 'utf8'),
244
+ ) as {
245
+ bin?: Record<string, string>;
246
+ };
247
+
248
+ expect(cliPkg.bin?.openpalm).toBe('./bin/openpalm.js');
249
+
250
+ const launcher = readFileSync(new URL('../bin/openpalm.js', import.meta.url), 'utf8');
251
+
252
+ expect(launcher.startsWith('#!/usr/bin/env bun\n')).toBe(true);
253
+ });
254
+ });
255
+
240
256
  describe('validate command', () => {
241
257
  it('is a recognized command (does not throw Unknown command)', async () => {
242
258
  const tempStateHome = mkdtempSync(join(tmpdir(), 'openpalm-test-'));
package/src/main.ts CHANGED
@@ -8,7 +8,7 @@ export type { HostInfo } from './lib/host-info.ts';
8
8
  export { upsertEnvValue, resolveRequestedImageTag, reconcileStackEnvImageTag } from './lib/env.ts';
9
9
  export { bootstrapInstall } from './commands/install.ts';
10
10
 
11
- const mainCommand = defineCommand({
11
+ export const mainCommand = defineCommand({
12
12
  meta: {
13
13
  name: 'openpalm',
14
14
  version: cliPkg.version,