@rool-dev/cli 0.3.1-dev.fa375c5 → 0.3.2-dev.1f10ef1

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 CHANGED
@@ -23,13 +23,15 @@ rool <command> [options]
23
23
  | `space list` | List all spaces |
24
24
  | `space create <name>` | Create a new space |
25
25
  | `space delete <name>` | Delete a space |
26
- | `app publish <app-id> <path>` | Publish a directory as an app |
26
+ | `app create [name]` | Create a new Rool app |
27
+ | `app dev` | Start the dev server |
28
+ | `app build` | Build the app |
29
+ | `app publish` | Build and publish the app |
27
30
  | `app list` | List published apps |
28
31
  | `app unpublish <app-id>` | Unpublish an app |
29
32
  | `app slug [new-slug]` | Show or set your user slug |
30
33
  | `user` | Show current user info |
31
34
  | `logout` | Log out |
32
- | `create [name]` | Create a new Rool app |
33
35
 
34
36
  ### Global Options
35
37
 
@@ -46,8 +48,6 @@ rool <command> [options]
46
48
  | `-c, --channel <id>` | channel ID | `rool-dev` | `chat` |
47
49
  | `-m, --message <text>` | optional comment/description | | `media upload` |
48
50
  | `-y, --yes` | skip confirmation prompt | | `space delete` |
49
- | `-n, --name <name>` | app display name (defaults to app-id) | | `app publish` |
50
- | `--no-spa` | disable SPA routing (404s will not serve index.html) | | `app publish` |
51
51
 
52
52
  ### Examples
53
53
 
@@ -82,24 +82,6 @@ rool space delete "Old Project"
82
82
  # Delete without confirmation
83
83
  rool space delete "Old Project" -y
84
84
 
85
- # Publish a directory as an app
86
- rool app publish my-app ./dist
87
-
88
- # Publish with a custom name
89
- rool app publish my-app ./dist -n "My App"
90
-
91
- # List published apps
92
- rool app list
93
-
94
- # Unpublish an app
95
- rool app unpublish my-app
96
-
97
- # Show your user slug
98
- rool app slug
99
-
100
- # Set your user slug
101
- rool app slug my-slug
102
-
103
85
  # Show user info
104
86
  rool user
105
87
 
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsJlD"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4GlD"}
package/dist/app.js CHANGED
@@ -1,84 +1,61 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import archiver from 'archiver';
1
+ import { spawnSync } from 'node:child_process';
2
+ import { createRequire } from 'node:module';
3
+ import { resolve, dirname } from 'node:path';
4
4
  import { getClient } from './client.js';
5
5
  import { formatBytes } from './format.js';
6
- async function zipDirectory(dirPath) {
7
- return new Promise((resolve, reject) => {
8
- const archive = archiver('zip', { zlib: { level: 9 } });
9
- const chunks = [];
10
- archive.on('data', (chunk) => chunks.push(chunk));
11
- archive.on('end', () => resolve(Buffer.concat(chunks)));
12
- archive.on('error', reject);
13
- archive.directory(dirPath, false);
14
- archive.finalize();
6
+ /**
7
+ * Spawn a rool-app CLI command, forwarding the --env flag.
8
+ */
9
+ function spawnRoolApp(command, args, env) {
10
+ const require = createRequire(import.meta.url);
11
+ const appPkg = require.resolve('@rool-dev/app/package.json');
12
+ const bin = resolve(dirname(appPkg), 'dist/cli/index.js');
13
+ const fullArgs = [command, ...args];
14
+ if (env !== 'prod') {
15
+ fullArgs.push('--env', env);
16
+ }
17
+ const result = spawnSync(process.execPath, [bin, ...fullArgs], {
18
+ stdio: 'inherit',
19
+ cwd: process.cwd(),
15
20
  });
21
+ process.exit(result.status ?? 1);
16
22
  }
17
23
  export function registerApp(program) {
18
24
  const app = program
19
25
  .command('app')
20
- .description('Publish and manage apps');
26
+ .description('Create, develop, build, publish, and manage apps');
27
+ app
28
+ .command('create')
29
+ .description('Create a new Rool app')
30
+ .argument('[name]', 'app name (creates subdirectory)')
31
+ .action((name, _opts, command) => {
32
+ const { env } = command.optsWithGlobals();
33
+ spawnRoolApp('init', name ? [name] : [], env);
34
+ });
35
+ app
36
+ .command('dev')
37
+ .description('Start the dev server')
38
+ .action((_opts, command) => {
39
+ const { env } = command.optsWithGlobals();
40
+ spawnRoolApp('dev', [], env);
41
+ });
42
+ app
43
+ .command('build')
44
+ .description('Build the app')
45
+ .action((_opts, command) => {
46
+ const { env } = command.optsWithGlobals();
47
+ spawnRoolApp('build', [], env);
48
+ });
21
49
  app
22
50
  .command('publish')
23
- .description('Publish a directory as an app')
24
- .argument('<app-id>', 'unique app identifier')
25
- .argument('<path>', 'directory to publish')
26
- .option('-n, --name <name>', 'app display name (defaults to app-id)')
27
- .option('--no-spa', 'disable SPA routing (404s will not serve index.html)')
28
- .addHelpText('after', `
29
- Examples:
30
- # Publish a directory as an app
31
- $ rool app publish my-app ./dist
32
-
33
- # Publish with a custom name
34
- $ rool app publish my-app ./dist -n "My App"`)
35
- .action(async (rawAppId, dirPath, opts, command) => {
36
- const appId = rawAppId.toLowerCase();
51
+ .description('Build and publish the app')
52
+ .action((_opts, command) => {
37
53
  const { env } = command.optsWithGlobals();
38
- // Validate directory exists
39
- const resolvedPath = path.resolve(dirPath);
40
- if (!fs.existsSync(resolvedPath)) {
41
- console.error(`Directory not found: ${resolvedPath}`);
42
- process.exit(1);
43
- }
44
- const stat = fs.statSync(resolvedPath);
45
- if (!stat.isDirectory()) {
46
- console.error(`Not a directory: ${resolvedPath}`);
47
- process.exit(1);
48
- }
49
- // Check for index.html (standalone) or rool-app.json (app bundle)
50
- const hasIndex = fs.existsSync(path.join(resolvedPath, 'index.html'));
51
- const hasAppManifest = fs.existsSync(path.join(resolvedPath, 'rool-app.json'));
52
- if (!hasIndex && !hasAppManifest) {
53
- console.error(`No index.html or rool-app.json found in ${resolvedPath}`);
54
- console.error('The directory must contain an index.html or rool-app.json at the root.');
55
- process.exit(1);
56
- }
57
- console.log(`Packaging ${resolvedPath}...`);
58
- const zipBuffer = await zipDirectory(resolvedPath);
59
- console.log(`Bundle size: ${formatBytes(zipBuffer.length)}`);
60
- const client = await getClient(env);
61
- try {
62
- console.log(`Publishing ${appId}...`);
63
- const blob = new Blob([new Uint8Array(zipBuffer)], { type: 'application/zip' });
64
- const result = await client.publishApp(appId, { name: opts.name ?? appId, bundle: blob, spa: opts.spa });
65
- console.log('');
66
- console.log(`Published: ${result.name}`);
67
- console.log(`URL: ${result.url}`);
68
- console.log(`Size: ${formatBytes(result.sizeBytes)}`);
69
- console.log(`SPA routing: ${result.spa ? 'enabled' : 'disabled'}`);
70
- }
71
- finally {
72
- client.destroy();
73
- }
54
+ spawnRoolApp('publish', [], env);
74
55
  });
75
56
  app
76
57
  .command('list')
77
58
  .description('List published apps')
78
- .addHelpText('after', `
79
- Examples:
80
- # List published apps
81
- $ rool app list`)
82
59
  .action(async (_opts, command) => {
83
60
  const { env } = command.optsWithGlobals();
84
61
  const client = await getClient(env);
@@ -92,10 +69,9 @@ Examples:
92
69
  console.log('');
93
70
  for (const a of apps) {
94
71
  console.log(` ${a.appId}`);
95
- console.log(` Name: ${a.name}`);
72
+ console.log(` Name: ${a.manifest.name}`);
96
73
  console.log(` URL: ${a.url}`);
97
74
  console.log(` Size: ${formatBytes(a.sizeBytes)}`);
98
- console.log(` SPA: ${a.spa ? 'yes' : 'no'}`);
99
75
  console.log(` Updated: ${new Date(a.updatedAt).toLocaleString()}`);
100
76
  console.log('');
101
77
  }
@@ -109,10 +85,6 @@ Examples:
109
85
  .command('unpublish')
110
86
  .description('Unpublish an app')
111
87
  .argument('<app-id>', 'app to unpublish')
112
- .addHelpText('after', `
113
- Examples:
114
- # Unpublish an app
115
- $ rool app unpublish my-app`)
116
88
  .action(async (rawAppId, _opts, command) => {
117
89
  const appId = rawAppId.toLowerCase();
118
90
  const { env } = command.optsWithGlobals();
@@ -134,13 +106,6 @@ Examples:
134
106
  .command('slug')
135
107
  .description('Show or set your user slug')
136
108
  .argument('[new-slug]', 'new slug to set')
137
- .addHelpText('after', `
138
- Examples:
139
- # Show your user slug
140
- $ rool app slug
141
-
142
- # Set your user slug
143
- $ rool app slug my-slug`)
144
109
  .action(async (newSlug, _opts, command) => {
145
110
  const { env } = command.optsWithGlobals();
146
111
  const client = await getClient(env);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,aAAa,IAAI,OAAO,CAkBvC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,aAAa,IAAI,OAAO,CAiBvC"}
package/dist/program.js CHANGED
@@ -6,7 +6,6 @@ import { registerSpace } from './space.js';
6
6
  import { registerApp } from './app.js';
7
7
  import { registerUser } from './user.js';
8
8
  import { registerLogout } from './logout.js';
9
- import { registerCreate } from './create.js';
10
9
  function validateEnv(value) {
11
10
  if (value !== 'local' && value !== 'dev' && value !== 'prod') {
12
11
  throw new Error(`Invalid environment: ${value}. Must be local, dev, or prod.`);
@@ -26,7 +25,6 @@ export function createProgram() {
26
25
  registerApp(program);
27
26
  registerUser(program);
28
27
  registerLogout(program);
29
- registerCreate(program);
30
28
  return program;
31
29
  }
32
30
  //# sourceMappingURL=program.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,gCAAgC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAExG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,gCAAgC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAExG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rool-dev/cli",
3
- "version": "0.3.1-dev.fa375c5",
3
+ "version": "0.3.2-dev.1f10ef1",
4
4
  "description": "Command-line interface for working with Rool Spaces",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,17 +33,15 @@
33
33
  },
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
- "archiver": "^7.0.1",
37
36
  "commander": "^14.0.3",
38
37
  "marked": "^15.0.12",
39
38
  "marked-terminal": "^7.3.0",
40
- "@rool-dev/app": "0.3.1-dev.fa375c5",
41
- "@rool-dev/sdk": "0.3.1-dev.fa375c5"
39
+ "@rool-dev/sdk": "0.3.2-dev.1f10ef1",
40
+ "@rool-dev/app": "0.3.2-dev.1f10ef1"
42
41
  },
43
42
  "devDependencies": {
44
- "@types/archiver": "^7.0.0",
45
43
  "@types/marked-terminal": "^6.1.1",
46
- "@types/node": "^25.0.2",
44
+ "@types/node": "^25.5.0",
47
45
  "tsx": "^4.21.0",
48
46
  "typescript": "^5.9.3"
49
47
  },
package/dist/create.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerCreate(program: Command): void;
3
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBrD"}
package/dist/create.js DELETED
@@ -1,21 +0,0 @@
1
- import { spawnSync } from 'child_process';
2
- import { createRequire } from 'module';
3
- import { resolve, dirname } from 'path';
4
- export function registerCreate(program) {
5
- program
6
- .command('create [name]')
7
- .description('Create a new Rool app')
8
- .action((name) => {
9
- // Resolve the rool-app binary from @rool-dev/app
10
- const require = createRequire(import.meta.url);
11
- const appPkg = require.resolve('@rool-dev/app/package.json');
12
- const bin = resolve(dirname(appPkg), 'dist/cli/index.js');
13
- const args = ['init', ...(name ? [name] : [])];
14
- const result = spawnSync(process.execPath, [bin, ...args], {
15
- stdio: 'inherit',
16
- cwd: process.cwd(),
17
- });
18
- process.exit(result.status ?? 1);
19
- });
20
- }
21
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE;QACxB,iDAAiD;QACjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;YACzD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC"}