@instawp/cli 0.0.1-beta.1 → 0.0.1-beta.10

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/README.md +58 -10
  3. package/dist/commands/db.d.ts +2 -0
  4. package/dist/commands/db.js +331 -0
  5. package/dist/commands/db.js.map +1 -0
  6. package/dist/commands/exec.js +62 -3
  7. package/dist/commands/exec.js.map +1 -1
  8. package/dist/commands/local.d.ts +2 -0
  9. package/dist/commands/local.js +750 -0
  10. package/dist/commands/local.js.map +1 -0
  11. package/dist/commands/login.js +23 -7
  12. package/dist/commands/login.js.map +1 -1
  13. package/dist/commands/logs.d.ts +2 -0
  14. package/dist/commands/logs.js +239 -0
  15. package/dist/commands/logs.js.map +1 -0
  16. package/dist/commands/open.d.ts +2 -0
  17. package/dist/commands/open.js +114 -0
  18. package/dist/commands/open.js.map +1 -0
  19. package/dist/commands/sites.js +266 -10
  20. package/dist/commands/sites.js.map +1 -1
  21. package/dist/commands/sync.js +6 -3
  22. package/dist/commands/sync.js.map +1 -1
  23. package/dist/commands/teams.js +52 -3
  24. package/dist/commands/teams.js.map +1 -1
  25. package/dist/index.js +54 -8
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/api.js +6 -1
  28. package/dist/lib/api.js.map +1 -1
  29. package/dist/lib/config.d.ts +10 -1
  30. package/dist/lib/config.js +47 -0
  31. package/dist/lib/config.js.map +1 -1
  32. package/dist/lib/local-env.d.ts +35 -0
  33. package/dist/lib/local-env.js +299 -0
  34. package/dist/lib/local-env.js.map +1 -0
  35. package/dist/lib/output.js +14 -1
  36. package/dist/lib/output.js.map +1 -1
  37. package/dist/lib/paths.d.ts +22 -0
  38. package/dist/lib/paths.js +41 -0
  39. package/dist/lib/paths.js.map +1 -0
  40. package/dist/lib/sftp-sync.d.ts +24 -0
  41. package/dist/lib/sftp-sync.js +191 -0
  42. package/dist/lib/sftp-sync.js.map +1 -0
  43. package/dist/lib/site-resolver.js +32 -11
  44. package/dist/lib/site-resolver.js.map +1 -1
  45. package/dist/lib/ssh-connection.d.ts +17 -0
  46. package/dist/lib/ssh-connection.js +103 -5
  47. package/dist/lib/ssh-connection.js.map +1 -1
  48. package/dist/lib/ssh-keys.js +12 -5
  49. package/dist/lib/ssh-keys.js.map +1 -1
  50. package/dist/lib/windows-binaries.d.ts +10 -0
  51. package/dist/lib/windows-binaries.js +34 -0
  52. package/dist/lib/windows-binaries.js.map +1 -0
  53. package/dist/types.d.ts +8 -0
  54. package/package.json +11 -3
  55. package/scripts/mysql2sqlite +289 -0
  56. package/vendor/win32/NOTICE.md +31 -0
  57. package/vendor/win32/busybox.exe +0 -0
package/dist/index.js CHANGED
@@ -10,6 +10,10 @@ import { registerSyncCommand } from './commands/sync.js';
10
10
  import { registerSshCommand } from './commands/ssh.js';
11
11
  import { registerExecCommand, registerWpCommand } from './commands/exec.js';
12
12
  import { registerTeamsCommand } from './commands/teams.js';
13
+ import { registerLocalCommand } from './commands/local.js';
14
+ import { registerDbCommand } from './commands/db.js';
15
+ import { registerOpenCommand } from './commands/open.js';
16
+ import { registerLogsCommand } from './commands/logs.js';
13
17
  const require = createRequire(import.meta.url);
14
18
  const { version } = require('../package.json');
15
19
  // Early --json detection so it works in any argv position
@@ -32,12 +36,35 @@ registerWhoamiCommand(program);
32
36
  registerSitesCommand(program);
33
37
  registerCreateAlias(program);
34
38
  // -- Remote access --
35
- registerExecCommand(program);
36
39
  registerWpCommand(program);
40
+ registerExecCommand(program);
37
41
  registerSshCommand(program);
38
42
  registerSyncCommand(program);
43
+ registerDbCommand(program);
44
+ registerLogsCommand(program);
45
+ registerOpenCommand(program);
39
46
  // -- Teams --
40
47
  registerTeamsCommand(program);
48
+ // -- Local dev --
49
+ registerLocalCommand(program);
50
+ // -- Changelog --
51
+ program
52
+ .command('changelog')
53
+ .description('Show recent changes')
54
+ .action(() => {
55
+ const changelogPath = new URL('../CHANGELOG.md', import.meta.url);
56
+ try {
57
+ const fs = require('fs');
58
+ const content = fs.readFileSync(changelogPath, 'utf-8');
59
+ // Show only the latest version
60
+ const sections = content.split(/\n## /);
61
+ const latest = sections[1] ? `## ${sections[1]}` : content;
62
+ console.log(latest.trim());
63
+ }
64
+ catch {
65
+ console.log(`Changelog: https://github.com/InstaWP/cli/blob/main/CHANGELOG.md`);
66
+ }
67
+ });
41
68
  // Custom help layout
42
69
  program.configureHelp({
43
70
  sortSubcommands: false,
@@ -54,25 +81,44 @@ ${d('Auth')}
54
81
  ${d('Sites')}
55
82
  ${c('create')} Create a new WordPress site
56
83
  ${c('sites list')} List all sites
84
+ ${c('sites creds')} Show WP admin credentials + Magic Login URL
85
+ ${c('sites php')} View or update PHP version/settings
57
86
  ${c('sites delete')} Delete a site
87
+ ${c('open')} ${d('<site>')} Open site (or --admin / --magic) in browser
58
88
 
59
89
  ${d('Remote Access')}
60
- ${c('exec')} ${d('<site>')} ${d('<cmd>')} Run any command on a site (SSH default, --api)
61
- ${c('wp')} ${d('<site>')} ${d('<args>')} WP-CLI shorthand (exec <site> wp <args>)
62
- ${c('ssh')} ${d('<site>')} Interactive SSH session
63
- ${c('sync')} ${d('push|pull')} Sync wp-content via rsync
90
+ ${c('wp')} ${d('<site>')} ${d('<args>')} WP-CLI on a remote site (primary)
91
+ ${c('ssh')} ${d('<site>')} Interactive SSH session
92
+ ${c('sync')} ${d('push|pull')} Sync wp-content via rsync
93
+ ${c('db')} ${d('push|pull')} Push/pull MySQL database (auto-backup)
94
+ ${c('logs')} ${d('<site>')} Tail WP / PHP / nginx logs
95
+ ${c('exec')} ${d('<site>')} ${d('<cmd>')} Run arbitrary shell (escape hatch for non-WP)
96
+
97
+ ${d('Local Development')}
98
+ ${c('local create')} Create and start a local WordPress site
99
+ ${c('local clone')} Clone an InstaWP cloud site to local
100
+ ${c('local start')} Start an existing local site
101
+ ${c('local stop')} Stop a background local site
102
+ ${c('local push')} Push local wp-content to InstaWP cloud
103
+ ${c('local pull')} Pull cloud wp-content to local site
104
+ ${c('local list')} List local sites
105
+ ${c('local delete')} Delete a local site
64
106
 
65
107
  ${d('Teams')}
66
108
  ${c('teams list')} List teams
109
+ ${c('teams switch')} Switch active team
67
110
  ${c('teams members')} List team members
68
111
 
69
112
  ${d('Examples')}
70
113
  $ instawp login
71
114
  $ instawp create --name my-site
115
+ $ instawp local create --name blog
72
116
  $ instawp wp my-site plugin list
73
- $ instawp exec my-site php -v --api
74
- $ instawp ssh my-site
75
- $ instawp sites list --json
117
+ $ instawp wp my-site -- post list --post_type=page
118
+ $ instawp open my-site --admin
119
+ $ instawp db pull my-site
120
+ $ instawp logs my-site --follow
121
+ $ instawp sites creds my-site
76
122
  `;
77
123
  });
78
124
  // Override default help to only show options (commands are in custom section)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lib/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { getToken, getApiUrl, clearConfig } from './config.js';
2
+ import { getToken, getApiUrl, getTeamId, clearConfig } from './config.js';
3
3
  import { error } from './output.js';
4
4
  let client = null;
5
5
  export function getClient() {
@@ -16,6 +16,11 @@ export function getClient() {
16
16
  if (token) {
17
17
  config.headers.Authorization = `Bearer ${token}`;
18
18
  }
19
+ // Inject team_id into all requests if set
20
+ const teamId = getTeamId();
21
+ if (teamId) {
22
+ config.params = { ...config.params, team_id: teamId };
23
+ }
19
24
  return config;
20
25
  });
21
26
  client.interceptors.response.use((response) => response, (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,MAAM,UAAU,SAAS;IACvB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,GAAG,SAAS,EAAE,SAAS,CAAC;IACxC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACpB,OAAO;QACP,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAC9E,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,GAAe,EAAE,EAAE;QAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,WAAW,EAAE,CAAC;YACd,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,MAAM,UAAU,SAAS;IACvB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,GAAG,SAAS,EAAE,SAAS,CAAC;IACxC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACpB,OAAO;QACP,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAC9E,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;QACnD,CAAC;QACD,0CAA0C;QAC1C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,GAAe,EAAE,EAAE;QAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,WAAW,EAAE,CAAC;YACd,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,11 +1,20 @@
1
- import type { UserInfo, SshConnectionCache } from '../types.js';
1
+ import type { UserInfo, SshConnectionCache, LocalInstance } from '../types.js';
2
2
  export declare function getToken(): string | null;
3
3
  export declare function getApiUrl(): string;
4
4
  export declare function setToken(token: string): void;
5
5
  export declare function setUser(user: UserInfo): void;
6
6
  export declare function getUser(): UserInfo | null;
7
7
  export declare function setApiUrl(url: string): void;
8
+ export declare function getTeamId(): number | null;
9
+ export declare function setTeamId(id: number): void;
10
+ export declare function clearTeamId(): void;
8
11
  export declare function clearConfig(): void;
12
+ export declare function getSiteCache(identifier: string): number | null;
13
+ export declare function setSiteCache(identifier: string, siteId: number): void;
14
+ export declare function getLocalInstances(): Record<string, LocalInstance>;
15
+ export declare function getLocalInstance(name: string): LocalInstance | null;
16
+ export declare function setLocalInstance(instance: LocalInstance): void;
17
+ export declare function removeLocalInstance(name: string): void;
9
18
  export declare function getSshCache(siteId: number): SshConnectionCache | null;
10
19
  export declare function setSshCache(siteId: number, entry: SshConnectionCache): void;
11
20
  export declare function clearSshCache(siteId?: number): void;
@@ -1,5 +1,6 @@
1
1
  import Conf from 'conf';
2
2
  const SSH_CACHE_TTL = 60 * 60 * 1000; // 1 hour
3
+ const SITE_CACHE_TTL = 10 * 60 * 1000; // 10 minutes
3
4
  const config = new Conf({
4
5
  projectName: 'instawp',
5
6
  schema: {
@@ -7,6 +8,9 @@ const config = new Conf({
7
8
  token: { type: 'string', default: '' },
8
9
  user: { type: 'object', default: {} },
9
10
  ssh_cache: { type: 'object', default: {} },
11
+ site_cache: { type: 'object', default: {} },
12
+ local_instances: { type: 'object', default: {} },
13
+ team_id: { type: 'number', default: 0 },
10
14
  },
11
15
  });
12
16
  export function getToken() {
@@ -34,9 +38,52 @@ export function getUser() {
34
38
  export function setApiUrl(url) {
35
39
  config.set('api_url', url);
36
40
  }
41
+ export function getTeamId() {
42
+ const id = config.get('team_id');
43
+ return id || null;
44
+ }
45
+ export function setTeamId(id) {
46
+ config.set('team_id', id);
47
+ }
48
+ export function clearTeamId() {
49
+ config.set('team_id', 0);
50
+ }
37
51
  export function clearConfig() {
38
52
  config.clear();
39
53
  }
54
+ export function getSiteCache(identifier) {
55
+ const cache = config.get('site_cache');
56
+ const entry = cache?.[identifier.toLowerCase()];
57
+ if (!entry)
58
+ return null;
59
+ if (Date.now() - entry.cachedAt > SITE_CACHE_TTL) {
60
+ return null;
61
+ }
62
+ return entry.id;
63
+ }
64
+ export function setSiteCache(identifier, siteId) {
65
+ const cache = config.get('site_cache') || {};
66
+ cache[identifier.toLowerCase()] = { id: siteId, cachedAt: Date.now() };
67
+ config.set('site_cache', cache);
68
+ }
69
+ // Local instance management
70
+ export function getLocalInstances() {
71
+ return config.get('local_instances') || {};
72
+ }
73
+ export function getLocalInstance(name) {
74
+ const instances = getLocalInstances();
75
+ return instances[name] || null;
76
+ }
77
+ export function setLocalInstance(instance) {
78
+ const instances = getLocalInstances();
79
+ instances[instance.name] = instance;
80
+ config.set('local_instances', instances);
81
+ }
82
+ export function removeLocalInstance(name) {
83
+ const instances = getLocalInstances();
84
+ delete instances[name];
85
+ config.set('local_instances', instances);
86
+ }
40
87
  export function getSshCache(siteId) {
41
88
  const cache = config.get('ssh_cache');
42
89
  const entry = cache?.[String(siteId)];
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { LocalInstance } from '../types.js';
2
+ export declare function getLocalBaseDir(): string;
3
+ export declare function getInstanceDir(name: string): string;
4
+ /**
5
+ * Check if downloads.w.org is reachable (WordPress Playground downloads from here).
6
+ * Returns null if OK, or an error message string.
7
+ */
8
+ export declare function checkPlaygroundConnectivity(): Promise<string | null>;
9
+ export declare function getNextPort(instances: Record<string, LocalInstance>): Promise<number>;
10
+ export declare function createInstanceDir(name: string): string;
11
+ /**
12
+ * Ensure auto-login mu-plugin exists (for instances created before this was added).
13
+ */
14
+ export declare function ensureAutoLogin(instance: LocalInstance): void;
15
+ export declare function deleteInstanceDir(name: string): void;
16
+ /**
17
+ * Starts the Playground server in the foreground.
18
+ * Watches stdout for the ready URL and calls onReady when detected.
19
+ * Returns a promise that resolves when the server exits.
20
+ */
21
+ export declare function startServer(instance: LocalInstance, opts?: {
22
+ blueprint?: string;
23
+ onReady?: (url: string) => void;
24
+ }): Promise<number>;
25
+ /**
26
+ * Starts the Playground server in the background.
27
+ * Spawns detached with output going to a log file.
28
+ * Polls until the server is ready, then returns.
29
+ */
30
+ export declare function startServerBackground(instance: LocalInstance, blueprint?: string): Promise<{
31
+ pid: number;
32
+ url: string;
33
+ }>;
34
+ export declare function stopServer(instance: LocalInstance): boolean;
35
+ export declare function isServerRunning(instance: LocalInstance): boolean;
@@ -0,0 +1,299 @@
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+ import { closeSync, existsSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import net from 'node:net';
6
+ const LOCAL_BASE_DIR = join(homedir(), '.instawp', 'local');
7
+ const DEFAULT_PORT_START = 9400;
8
+ /**
9
+ * Returns [command, prefixArgs] for running wp-playground-cli.
10
+ * Prefers the global binary (faster) over npx (slower).
11
+ */
12
+ function getPlaygroundCommand() {
13
+ // Check for globally installed binary first (0.7s vs 1.4s npx overhead)
14
+ const cmd = process.platform === 'win32' ? 'where' : 'which';
15
+ const result = spawnSync(cmd, ['wp-playground-cli'], { stdio: 'pipe' });
16
+ if (result.status === 0) {
17
+ return ['wp-playground-cli', []];
18
+ }
19
+ return ['npx', ['--yes', '@wp-playground/cli']];
20
+ }
21
+ export function getLocalBaseDir() {
22
+ return LOCAL_BASE_DIR;
23
+ }
24
+ export function getInstanceDir(name) {
25
+ return join(LOCAL_BASE_DIR, name);
26
+ }
27
+ /**
28
+ * Check if downloads.w.org is reachable (WordPress Playground downloads from here).
29
+ * Returns null if OK, or an error message string.
30
+ */
31
+ export async function checkPlaygroundConnectivity() {
32
+ try {
33
+ const controller = new AbortController();
34
+ const timer = setTimeout(() => controller.abort(), 8000);
35
+ await fetch('https://downloads.w.org', { signal: controller.signal, method: 'HEAD' });
36
+ clearTimeout(timer);
37
+ return null;
38
+ }
39
+ catch {
40
+ // Check if the alternative domain works
41
+ try {
42
+ const controller = new AbortController();
43
+ const timer = setTimeout(() => controller.abort(), 8000);
44
+ await fetch('https://downloads.wordpress.org', { signal: controller.signal, method: 'HEAD' });
45
+ clearTimeout(timer);
46
+ return 'downloads.w.org is unreachable from your network (downloads.wordpress.org works).\n' +
47
+ 'WordPress Playground CLI requires access to downloads.w.org.\n' +
48
+ 'Try: adding "192.0.77.48 downloads.w.org" to /etc/hosts, or use a VPN/different network.';
49
+ }
50
+ catch {
51
+ return 'Cannot reach WordPress download servers (downloads.w.org and downloads.wordpress.org).\n' +
52
+ 'Check your internet connection.';
53
+ }
54
+ }
55
+ }
56
+ async function isPortAvailable(port) {
57
+ return new Promise((resolve) => {
58
+ const server = net.createServer();
59
+ server.once('error', () => resolve(false));
60
+ server.once('listening', () => {
61
+ server.close(() => resolve(true));
62
+ });
63
+ server.listen(port, '127.0.0.1');
64
+ });
65
+ }
66
+ export async function getNextPort(instances) {
67
+ const usedPorts = new Set(Object.values(instances).map(i => i.port));
68
+ let port = DEFAULT_PORT_START;
69
+ while (usedPorts.has(port) || !(await isPortAvailable(port))) {
70
+ port++;
71
+ if (port > 9500)
72
+ throw new Error('No available ports in range 9400-9500');
73
+ }
74
+ return port;
75
+ }
76
+ const AUTO_LOGIN_MU_PLUGIN = `<?php
77
+ /**
78
+ * Auto-login for local development. Injected by InstaWP CLI.
79
+ * Visit /?instawp-login to set the auth cookie and redirect to wp-admin.
80
+ */
81
+ error_reporting(E_ERROR | E_PARSE);
82
+ @ini_set('display_errors', '0');
83
+ add_action('plugins_loaded', function() {
84
+ if (!isset(\$_GET['instawp-login'])) return;
85
+ \$user = get_user_by('login', 'admin');
86
+ if (!\$user) {
87
+ \$admins = get_users(['role' => 'administrator', 'number' => 1]);
88
+ \$user = \$admins[0] ?? null;
89
+ }
90
+ if (\$user) {
91
+ wp_set_current_user(\$user->ID);
92
+ wp_set_auth_cookie(\$user->ID, true);
93
+ wp_safe_redirect(admin_url());
94
+ exit;
95
+ }
96
+ });
97
+ `;
98
+ export function createInstanceDir(name) {
99
+ const dir = getInstanceDir(name);
100
+ if (existsSync(dir)) {
101
+ throw new Error(`Instance "${name}" already exists at ${dir}`);
102
+ }
103
+ const wpContentDir = join(dir, 'wp-content');
104
+ const muPluginsDir = join(wpContentDir, 'mu-plugins');
105
+ mkdirSync(muPluginsDir, { recursive: true });
106
+ writeFileSync(join(muPluginsDir, '0-instawp-auto-login.php'), AUTO_LOGIN_MU_PLUGIN);
107
+ return dir;
108
+ }
109
+ /**
110
+ * Ensure auto-login mu-plugin exists (for instances created before this was added).
111
+ */
112
+ export function ensureAutoLogin(instance) {
113
+ const muPluginsDir = join(instance.path, 'wp-content', 'mu-plugins');
114
+ const pluginPath = join(muPluginsDir, '0-instawp-auto-login.php');
115
+ if (!existsSync(pluginPath)) {
116
+ mkdirSync(muPluginsDir, { recursive: true });
117
+ writeFileSync(pluginPath, AUTO_LOGIN_MU_PLUGIN);
118
+ }
119
+ }
120
+ export function deleteInstanceDir(name) {
121
+ const dir = getInstanceDir(name);
122
+ if (existsSync(dir)) {
123
+ rmSync(dir, { recursive: true, force: true });
124
+ }
125
+ }
126
+ function buildServerArgs(instance, blueprint) {
127
+ const wpContentDir = join(instance.path, 'wp-content');
128
+ const isClone = existsSync(join(instance.path, 'sqlite-import.sql')) ||
129
+ existsSync(join(wpContentDir, 'database', '.ht.sqlite'));
130
+ const args = [
131
+ 'server',
132
+ `--port=${instance.port}`,
133
+ `--php=${instance.php}`,
134
+ `--wp=${instance.wp}`,
135
+ '--login',
136
+ ];
137
+ if (isClone) {
138
+ // For cloned sites: mount subdirs individually AFTER install.
139
+ // This lets Playground set up db.php internally while our data persists.
140
+ const subdirs = ['database', 'plugins', 'themes', 'uploads', 'mu-plugins'];
141
+ for (const subdir of subdirs) {
142
+ const hostDir = join(wpContentDir, subdir);
143
+ if (existsSync(hostDir)) {
144
+ args.push(`--mount=${hostDir}:/wordpress/wp-content/${subdir}`);
145
+ }
146
+ }
147
+ // Mount non-core root files (CLAUDE.md, .htaccess, etc.)
148
+ const skipFiles = new Set(['wp-content', 'database.sql', 'sqlite-import.sql', 'clone-blueprint.json', 'import-blueprint.json', 'import-db.php']);
149
+ for (const file of readdirSync(instance.path)) {
150
+ if (skipFiles.has(file) || file.startsWith('.'))
151
+ continue;
152
+ const filePath = join(instance.path, file);
153
+ const stat = statSync(filePath);
154
+ if (stat.isFile()) {
155
+ args.push(`--mount=${filePath}:/wordpress/${file}`);
156
+ }
157
+ }
158
+ // Use clone blueprint if it exists (has AST driver + login step)
159
+ if (!blueprint) {
160
+ const cloneBlueprintPath = join(instance.path, 'clone-blueprint.json');
161
+ if (existsSync(cloneBlueprintPath)) {
162
+ blueprint = cloneBlueprintPath;
163
+ }
164
+ }
165
+ }
166
+ else {
167
+ // For fresh sites: mount entire wp-content before install for persistence
168
+ args.push(`--mount-before-install=${wpContentDir}:/wordpress/wp-content`);
169
+ }
170
+ if (blueprint) {
171
+ args.push(`--blueprint=${blueprint}`);
172
+ }
173
+ return args;
174
+ }
175
+ /**
176
+ * Starts the Playground server in the foreground.
177
+ * Watches stdout for the ready URL and calls onReady when detected.
178
+ * Returns a promise that resolves when the server exits.
179
+ */
180
+ export function startServer(instance, opts) {
181
+ const args = buildServerArgs(instance, opts?.blueprint);
182
+ const [cmd, prefixArgs] = getPlaygroundCommand();
183
+ return new Promise((resolve, reject) => {
184
+ const child = spawn(cmd, [...prefixArgs, ...args], {
185
+ stdio: ['inherit', 'pipe', 'pipe'],
186
+ cwd: instance.path,
187
+ });
188
+ let readyFired = false;
189
+ // Watch stdout for the server URL to detect readiness
190
+ child.stdout?.on('data', (data) => {
191
+ const text = data.toString();
192
+ process.stdout.write(data);
193
+ if (!readyFired && opts?.onReady) {
194
+ // Playground CLI prints the URL when ready (e.g. "http://127.0.0.1:9400")
195
+ const urlMatch = text.match(/https?:\/\/127\.0\.0\.1:\d+/);
196
+ if (urlMatch) {
197
+ readyFired = true;
198
+ opts.onReady(urlMatch[0]);
199
+ }
200
+ }
201
+ });
202
+ child.stderr?.on('data', (data) => {
203
+ process.stderr.write(data);
204
+ });
205
+ child.on('error', (err) => {
206
+ reject(err);
207
+ });
208
+ child.on('close', (code) => {
209
+ // Restore terminal state — Playground CLI can leave it in raw mode
210
+ if (process.stdin.isTTY) {
211
+ process.stdin.setRawMode?.(false);
212
+ }
213
+ if (process.platform !== 'win32') {
214
+ spawnSync('stty', ['sane'], { stdio: 'inherit' });
215
+ }
216
+ resolve(code ?? 0);
217
+ });
218
+ });
219
+ }
220
+ /**
221
+ * Starts the Playground server in the background.
222
+ * Spawns detached with output going to a log file.
223
+ * Polls until the server is ready, then returns.
224
+ */
225
+ export async function startServerBackground(instance, blueprint) {
226
+ const args = buildServerArgs(instance, blueprint);
227
+ const [cmd, prefixArgs] = getPlaygroundCommand();
228
+ const logFile = join(instance.path, 'server.log');
229
+ const pidFile = join(instance.path, 'server.pid');
230
+ // Spawn fully detached with output to log file
231
+ const logFd = openSync(logFile, 'w');
232
+ const child = spawn(cmd, [...prefixArgs, ...args], {
233
+ stdio: ['ignore', logFd, logFd],
234
+ cwd: instance.path,
235
+ detached: true,
236
+ });
237
+ const pid = child.pid;
238
+ writeFileSync(pidFile, String(pid));
239
+ child.unref();
240
+ closeSync(logFd);
241
+ // Poll the log file for the ready URL
242
+ const url = `http://127.0.0.1:${instance.port}`;
243
+ const maxWait = 120000;
244
+ const start = Date.now();
245
+ while (Date.now() - start < maxWait) {
246
+ await new Promise(r => setTimeout(r, 2000));
247
+ // Check if process is still alive
248
+ try {
249
+ process.kill(pid, 0);
250
+ }
251
+ catch {
252
+ const log = existsSync(logFile) ? readFileSync(logFile, 'utf-8') : '';
253
+ throw new Error(`Server exited unexpectedly. Log:\n${log.slice(-500)}`);
254
+ }
255
+ // Check if server is responding
256
+ try {
257
+ const controller = new AbortController();
258
+ const timer = setTimeout(() => controller.abort(), 2000);
259
+ const res = await fetch(url, { signal: controller.signal, redirect: 'manual' });
260
+ clearTimeout(timer);
261
+ if (res.status === 200 || res.status === 302) {
262
+ return { pid, url };
263
+ }
264
+ }
265
+ catch {
266
+ // Not ready yet
267
+ }
268
+ }
269
+ throw new Error(`Server did not become ready within 120s. Check ${logFile}`);
270
+ }
271
+ export function stopServer(instance) {
272
+ const pidFile = join(instance.path, 'server.pid');
273
+ if (!existsSync(pidFile))
274
+ return false;
275
+ const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
276
+ try {
277
+ process.kill(pid, 'SIGTERM');
278
+ }
279
+ catch {
280
+ // Already dead
281
+ }
282
+ rmSync(pidFile, { force: true });
283
+ return true;
284
+ }
285
+ export function isServerRunning(instance) {
286
+ const pidFile = join(instance.path, 'server.pid');
287
+ if (!existsSync(pidFile))
288
+ return false;
289
+ const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
290
+ try {
291
+ process.kill(pid, 0);
292
+ return true;
293
+ }
294
+ catch {
295
+ rmSync(pidFile, { force: true });
296
+ return false;
297
+ }
298
+ }
299
+ //# sourceMappingURL=local-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-env.js","sourceRoot":"","sources":["../../src/lib/local-env.ts"],"names":[],"mappings":"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"}
@@ -49,8 +49,21 @@ export function table(headers, rows) {
49
49
  }
50
50
  console.log(t.toString());
51
51
  }
52
+ function shouldSuppressSpinner() {
53
+ if (jsonMode)
54
+ return true;
55
+ if (!process.stdout.isTTY)
56
+ return true;
57
+ if (process.env.CI)
58
+ return true;
59
+ if (process.env.INSTAWP_QUIET)
60
+ return true;
61
+ if (process.env.NO_COLOR)
62
+ return true;
63
+ return false;
64
+ }
52
65
  export function spinner(text) {
53
- if (jsonMode) {
66
+ if (shouldSuppressSpinner()) {
54
67
  return { text: '', start() { return this; }, succeed() { }, fail() { }, stop() { } };
55
68
  }
56
69
  return ora(text);
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,IAAU;IAC7C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC/C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,OAAa;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAiB,EAAE,IAA2B;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAChC,CAAC,CAAC;IAEH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}