@joltdesign/scripts 0.1.0 → 0.2.0
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/bin/Command/AWS.js +39 -50
- package/bin/Command/AWS.js.map +1 -1
- package/bin/Command/Build.js +12 -23
- package/bin/Command/Build.js.map +1 -1
- package/bin/Command/Cache.js +30 -0
- package/bin/Command/Cache.js.map +1 -0
- package/bin/Command/Config.js +48 -63
- package/bin/Command/Config.js.map +1 -1
- package/bin/Command/DB.js +153 -0
- package/bin/Command/DB.js.map +1 -0
- package/bin/Command/Docker.js +95 -114
- package/bin/Command/Docker.js.map +1 -1
- package/bin/Command/JoltCommand.js +23 -34
- package/bin/Command/JoltCommand.js.map +1 -1
- package/bin/Command/WP.js +41 -63
- package/bin/Command/WP.js.map +1 -1
- package/bin/Config.js +201 -100
- package/bin/Config.js.map +1 -1
- package/bin/cli.js +5 -0
- package/bin/cli.js.map +1 -1
- package/bin/utils.js +21 -28
- package/bin/utils.js.map +1 -1
- package/package.json +2 -2
package/bin/Command/Docker.js
CHANGED
@@ -1,13 +1,4 @@
|
|
1
|
-
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
-
});
|
9
|
-
};
|
10
|
-
import chalk from 'chalk';
|
1
|
+
import ansis from 'ansis';
|
11
2
|
import { Option } from 'clipanion';
|
12
3
|
import { ExecaError, execa } from 'execa';
|
13
4
|
import shelljs from 'shelljs';
|
@@ -23,48 +14,44 @@ export class DockerCommand extends JoltCommand {
|
|
23
14
|
}
|
24
15
|
}
|
25
16
|
export class DockerBuildCommand extends DockerCommand {
|
26
|
-
command() {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
return result.exitCode;
|
46
|
-
});
|
17
|
+
async command() {
|
18
|
+
const { config, context, context: { stdout, stderr }, dev, prod, } = this;
|
19
|
+
const imageName = await config.getDockerImageName(dev);
|
20
|
+
const imageType = dev ? 'dev' : prod ? 'prod' : 'unknown';
|
21
|
+
const dockerCommand = config.command('docker');
|
22
|
+
if (!imageName) {
|
23
|
+
stderr.write(ansis.red('Image name must be configured!\n'));
|
24
|
+
return 1;
|
25
|
+
}
|
26
|
+
if (!which(dockerCommand)) {
|
27
|
+
stderr.write(ansis.red(`Could not find command ${dockerCommand}!\n`));
|
28
|
+
return 2;
|
29
|
+
}
|
30
|
+
stdout.write(ansis.blue(`🐳 Building image ${imageName} for ${imageType} using ${dockerCommand}...\n`));
|
31
|
+
const args = await this.buildArgs();
|
32
|
+
const command = [dockerCommand, ...args].join(' ');
|
33
|
+
stdout.write(`Running command: ${command}\n`);
|
34
|
+
const result = await execC(dockerCommand, args, { context });
|
35
|
+
return result.exitCode;
|
47
36
|
}
|
48
|
-
buildArgs() {
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
.map(String);
|
67
|
-
});
|
37
|
+
async buildArgs() {
|
38
|
+
const { config, dev } = this;
|
39
|
+
const imageName = await config.getDockerImageName(dev);
|
40
|
+
const platform = config.get('buildPlatform');
|
41
|
+
const context = config.get('buildContext');
|
42
|
+
const dockerFile = config.get('dockerFile');
|
43
|
+
const buildArgs = dev ? '--build-arg=DEVBUILD=1' : '';
|
44
|
+
return [
|
45
|
+
'buildx',
|
46
|
+
'build',
|
47
|
+
platform && `--platform=${platform}`,
|
48
|
+
dockerFile && `-f ${dockerFile}`,
|
49
|
+
`-t ${imageName}`,
|
50
|
+
buildArgs,
|
51
|
+
context !== null && context !== void 0 ? context : '.',
|
52
|
+
]
|
53
|
+
.filter((x) => !!x)
|
54
|
+
.map(String);
|
68
55
|
}
|
69
56
|
}
|
70
57
|
DockerBuildCommand.paths = [['docker', 'build']];
|
@@ -73,78 +60,72 @@ export class DockerLoginCommand extends DockerCommand {
|
|
73
60
|
super(...arguments);
|
74
61
|
this.requiredCommands = ['aws', 'docker'];
|
75
62
|
}
|
76
|
-
command() {
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
return e.exitCode;
|
92
|
-
}
|
93
|
-
throw e;
|
63
|
+
async command() {
|
64
|
+
var _a, _b, _c;
|
65
|
+
const { config, context: { stdout, stderr }, } = this;
|
66
|
+
// TODO get URL from ecr_repo_url, get region from repo URL
|
67
|
+
const ecrBaseUrl = (_a = config.get('ecrBaseUrl')) !== null && _a !== void 0 ? _a : (await config.tfVar('ecr_base_url'));
|
68
|
+
const region = (_c = (_b = config.get('awsRegion')) !== null && _b !== void 0 ? _b : (await config.tfVar('region'))) !== null && _c !== void 0 ? _c : config.awsRegion();
|
69
|
+
stdout.write(ansis.blue(`🐳 Logging in to ECR repository ${ecrBaseUrl} on ${region}...\n`));
|
70
|
+
try {
|
71
|
+
const result = await execa(config.command('aws'), ['ecr', 'get-login-password', '--region', region]).pipe(config.command('docker'), ['login', '--username', 'AWS', '--password-stdin', ecrBaseUrl], { stdout, stderr });
|
72
|
+
return result.exitCode;
|
73
|
+
}
|
74
|
+
catch (e) {
|
75
|
+
if (e instanceof ExecaError) {
|
76
|
+
stderr.write(ansis.red(`Failed to log in! Reason: ${e.message}\n`));
|
77
|
+
return e.exitCode;
|
94
78
|
}
|
95
|
-
|
79
|
+
throw e;
|
80
|
+
}
|
96
81
|
}
|
97
82
|
}
|
98
83
|
DockerLoginCommand.paths = [['docker', 'login']];
|
99
84
|
export class DockerTagCommand extends DockerCommand {
|
100
|
-
command() {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
return result.exitCode;
|
122
|
-
});
|
85
|
+
async command() {
|
86
|
+
const { config, dev, context, context: { stdout, stderr }, } = this;
|
87
|
+
const dockerCommand = config.command('docker');
|
88
|
+
const imageName = await config.getDockerImageName(dev);
|
89
|
+
const remoteRepo = await config.getRemoteRepo(dev);
|
90
|
+
const localTag = 'latest';
|
91
|
+
const remoteTag = 'latest';
|
92
|
+
const args = ['tag', `${imageName}:${localTag}`, `${remoteRepo}:${remoteTag}`];
|
93
|
+
if (!imageName) {
|
94
|
+
stderr.write(ansis.red('Image name must be configured!\n'));
|
95
|
+
return 1;
|
96
|
+
}
|
97
|
+
if (!which(dockerCommand)) {
|
98
|
+
stderr.write(ansis.red(`Could not find command ${dockerCommand}!\n`));
|
99
|
+
return 2;
|
100
|
+
}
|
101
|
+
stdout.write(ansis.blue(`🐳 Tagging image ${imageName}:${localTag} as ${remoteRepo}:${remoteTag}...\n`));
|
102
|
+
// const command = [dockerCommand, ...args].join(' ')
|
103
|
+
// stdout.write(`Running command: ${command}\n`)
|
104
|
+
const result = await execC(dockerCommand, args, { context });
|
105
|
+
return result.exitCode;
|
123
106
|
}
|
124
107
|
}
|
125
108
|
DockerTagCommand.paths = [['docker', 'tag']];
|
126
109
|
export class DockerPushCommand extends DockerCommand {
|
127
|
-
command() {
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
return result.exitCode;
|
147
|
-
});
|
110
|
+
async command() {
|
111
|
+
const { config, dev, context, context: { stdout, stderr }, } = this;
|
112
|
+
const dockerCommand = config.command('docker');
|
113
|
+
const remoteRepo = await config.getRemoteRepo(dev);
|
114
|
+
const remoteTag = 'latest';
|
115
|
+
const args = ['push', `${remoteRepo}:${remoteTag}`];
|
116
|
+
if (!remoteRepo) {
|
117
|
+
stderr.write(ansis.red('Remote repo must be configured!\n'));
|
118
|
+
return 1;
|
119
|
+
}
|
120
|
+
if (!which(dockerCommand)) {
|
121
|
+
stderr.write(ansis.red(`Could not find command ${dockerCommand}!\n`));
|
122
|
+
return 2;
|
123
|
+
}
|
124
|
+
stdout.write(ansis.blue(`🐳 Pushing image ${remoteRepo}:${remoteTag}...\n`));
|
125
|
+
// const command = [dockerCommand, ...args].join(' ')
|
126
|
+
// stdout.write(`Running command: ${command}\n`)
|
127
|
+
const result = await execC(dockerCommand, args, { context });
|
128
|
+
return result.exitCode;
|
148
129
|
}
|
149
130
|
}
|
150
131
|
DockerPushCommand.paths = [['docker', 'push']];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Docker.js","sourceRoot":"","sources":["../../src/Command/Docker.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"Docker.js","sourceRoot":"","sources":["../../src/Command/Docker.ts"],"names":[],"mappings":"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"}
|
@@ -1,13 +1,4 @@
|
|
1
|
-
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
-
});
|
9
|
-
};
|
10
|
-
import chalk from 'chalk';
|
1
|
+
import ansis from 'ansis';
|
11
2
|
import { Command } from 'clipanion';
|
12
3
|
import shelljs from 'shelljs';
|
13
4
|
import getConfig from '../Config.js';
|
@@ -15,38 +6,36 @@ const { which } = shelljs;
|
|
15
6
|
export default class JoltCommand extends Command {
|
16
7
|
constructor() {
|
17
8
|
super(...arguments);
|
18
|
-
this.logo =
|
9
|
+
this.logo = ansis.magentaBright('⚡');
|
19
10
|
this.requiredCommands = [];
|
20
11
|
}
|
21
12
|
getHeader(suffix = '') {
|
22
|
-
const header =
|
13
|
+
const header = ansis.whiteBright(`${this.logo} ${this.cli.binaryLabel}`);
|
23
14
|
return [header, suffix, '\n\n'].filter((x) => !!x).join(' ');
|
24
15
|
}
|
25
|
-
execute() {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
missingCommands.push(realCommand);
|
36
|
-
}
|
16
|
+
async execute() {
|
17
|
+
const { stderr } = this.context;
|
18
|
+
const config = await getConfig();
|
19
|
+
this.config = config;
|
20
|
+
if (this.requiredCommands && !process.env.JOLT_IGNORE_REQUIRED_COMMANDS) {
|
21
|
+
const missingCommands = [];
|
22
|
+
for (const baseCommand of this.requiredCommands) {
|
23
|
+
const realCommand = config.command(baseCommand);
|
24
|
+
if (!which(realCommand)) {
|
25
|
+
missingCommands.push(realCommand);
|
37
26
|
}
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
}
|
44
|
-
stderr.write('\n\nSee `jolt config` for more information.\n');
|
45
|
-
return 4;
|
27
|
+
}
|
28
|
+
if (missingCommands.length > 0) {
|
29
|
+
stderr.write(this.getHeader());
|
30
|
+
stderr.write(ansis.red('Missing the following commands:\n'));
|
31
|
+
for (const missingCommand of missingCommands) {
|
32
|
+
stderr.write(ansis.red(`- ${missingCommand}\n`));
|
46
33
|
}
|
34
|
+
stderr.write('\n\nSee `jolt config` for more information.\n');
|
35
|
+
return 4;
|
47
36
|
}
|
48
|
-
|
49
|
-
|
37
|
+
}
|
38
|
+
return await this.command();
|
50
39
|
}
|
51
40
|
}
|
52
41
|
//# sourceMappingURL=JoltCommand.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"JoltCommand.js","sourceRoot":"","sources":["../../src/Command/JoltCommand.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"JoltCommand.js","sourceRoot":"","sources":["../../src/Command/JoltCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;AAEzB,MAAM,CAAC,OAAO,OAAgB,WAAY,SAAQ,OAAO;IAAzD;;QACE,SAAI,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAE/B,qBAAgB,GAAa,EAAE,CAAA;IAwCjC,CAAC;IApCC,SAAS,CAAC,MAAM,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;QACxE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC;YACxE,MAAM,eAAe,GAAG,EAAE,CAAA;YAE1B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBAE/C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBAC9B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAA;gBAE5D,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;oBAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,cAAc,IAAI,CAAC,CAAC,CAAA;gBAClD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;gBAC7D,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;CACF"}
|
package/bin/Command/WP.js
CHANGED
@@ -1,14 +1,5 @@
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
-
});
|
9
|
-
};
|
10
1
|
import { userInfo } from 'node:os';
|
11
|
-
import
|
2
|
+
import ansis from 'ansis';
|
12
3
|
import { Option } from 'clipanion';
|
13
4
|
import { execC } from '../utils.js';
|
14
5
|
import JoltCommand from './JoltCommand.js';
|
@@ -17,62 +8,49 @@ export class WPCommand extends JoltCommand {
|
|
17
8
|
super(...arguments);
|
18
9
|
this.wpArgs = Option.Proxy();
|
19
10
|
}
|
20
|
-
command() {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
'--rm',
|
36
|
-
userArg || '',
|
37
|
-
containerName,
|
38
|
-
'wp',
|
39
|
-
...this.wpArgs,
|
40
|
-
];
|
41
|
-
const result = yield execC(config.command('docker compose'), args, { context, reject: false });
|
42
|
-
return result.exitCode;
|
43
|
-
});
|
11
|
+
async command() {
|
12
|
+
const { config, context, context: { stderr }, } = this;
|
13
|
+
const containerName = await this.getContainerName();
|
14
|
+
if (!containerName) {
|
15
|
+
stderr.write(ansis.red(`Couldn't find a WP CLI container. Set it with the 'wpCliContainer' config key.\n`));
|
16
|
+
return 1;
|
17
|
+
}
|
18
|
+
const { uid, gid } = userInfo();
|
19
|
+
// On Windows, uid is -1 so we shouldn't try to set the user
|
20
|
+
const userArg = uid !== undefined && uid !== -1 && `--user='${uid}:${gid}'`;
|
21
|
+
const profile = await this.getContainerProfile(containerName);
|
22
|
+
const [composeCommand, args] = config.getComposeCommand();
|
23
|
+
args.push(profile ? `--profile=${profile}` : '', 'run', '--rm', userArg || '', containerName, 'wp', ...this.wpArgs);
|
24
|
+
const result = await execC(composeCommand, args, { context, reject: false });
|
25
|
+
return result.exitCode;
|
44
26
|
}
|
45
|
-
getContainerName() {
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
return key;
|
59
|
-
}
|
27
|
+
async getContainerName() {
|
28
|
+
var _a;
|
29
|
+
const { config } = this;
|
30
|
+
if (config.has('wpCliContainer')) {
|
31
|
+
return config.get('wpCliContainer');
|
32
|
+
}
|
33
|
+
const composeConfig = await config.getComposeConfig();
|
34
|
+
if (!composeConfig) {
|
35
|
+
return undefined;
|
36
|
+
}
|
37
|
+
for (const [key, service] of Object.entries(composeConfig.services)) {
|
38
|
+
if ((_a = service.image) === null || _a === void 0 ? void 0 : _a.match(/\bwp[_-]cli\b/i)) {
|
39
|
+
return key;
|
60
40
|
}
|
61
|
-
}
|
41
|
+
}
|
62
42
|
}
|
63
|
-
getContainerProfile(container) {
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
return service.profiles ? service.profiles[0] : undefined;
|
75
|
-
});
|
43
|
+
async getContainerProfile(container) {
|
44
|
+
const { config } = this;
|
45
|
+
if (config.has('wpCliContainerProfile')) {
|
46
|
+
return config.get('wpCliContainerProfile');
|
47
|
+
}
|
48
|
+
const composeConfig = await config.getComposeConfig();
|
49
|
+
if (!composeConfig) {
|
50
|
+
return undefined;
|
51
|
+
}
|
52
|
+
const service = composeConfig.services[container];
|
53
|
+
return service.profiles ? service.profiles[0] : undefined;
|
76
54
|
}
|
77
55
|
}
|
78
56
|
WPCommand.paths = [['wp'], ['wp-cli']];
|
package/bin/Command/WP.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WP.js","sourceRoot":"","sources":["../../src/Command/WP.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"WP.js","sourceRoot":"","sources":["../../src/Command/WP.ts"],"names":[],"mappings":"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"}
|