arcadible 0.1.45 → 0.1.46
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/arc-build.js +9 -17
- package/bin/arc-deploy.js +20 -36
- package/bin/arc-init.js +6 -16
- package/bin/arc-inspect.js +3 -7
- package/bin/arc-login.js +5 -5
- package/bin/arc-logout.js +4 -8
- package/bin/arc-open.js +7 -20
- package/bin/arc-pack.js +4 -14
- package/bin/arc-play.js +6 -20
- package/bin/arc-validate.js +8 -17
- package/bin/arc-whoami.js +5 -9
- package/bin/arc.js +7 -2
- package/package.json +1 -1
- package/src/account.js +5 -5
- package/src/action/build/tool.js +8 -15
- package/src/action/deploy/tool-git.js +1 -6
- package/src/action/deploy/wait.js +5 -11
- package/src/action/init/manifest.js +9 -37
- package/src/action/login/flow.js +3 -10
- package/src/action/open/tool.js +2 -1
- package/src/action/pack/limits.js +4 -6
- package/src/action/pack/tool.js +6 -5
- package/src/action/play/tool.js +3 -3
- package/src/action/predeploy/ac.js +28 -43
- package/src/action/predeploy/git.js +4 -4
- package/src/action/predeploy/pm.js +1 -1
- package/src/action/predeploy/published.js +4 -4
- package/src/action/predeploy/tool-git.js +10 -10
- package/src/action/validate/unknown.js +11 -10
- package/src/config/file.js +23 -0
- package/src/config/limit.js +21 -0
- package/src/parser/env.js +0 -2
- package/src/parser/manifest.js +15 -13
- package/src/parser/media.js +9 -11
- package/src/parser/project.js +31 -9
- package/src/phrase.js +168 -39
- package/src/schema/game.js +65 -42
- package/src/schema/workflow.js +7 -8
- package/src/util/argv.js +27 -1
- package/src/util/command.js +18 -0
- package/src/util/delay.js +5 -21
- package/src/util/doc.js +4 -13
- package/src/util/links.js +17 -2
- package/src/util/media.js +2 -2
- package/src/util/objs.js +8 -1
- package/src/util/output.js +24 -2
- package/src/util/rc.js +2 -2
- package/src/util/request.js +1 -1
- package/src/util/s3.js +1 -1
- package/src/util/schema.js +9 -3
- package/src/util/uris.js +1 -1
- package/src/util/zip.js +2 -2
- package/src/config/doc.js +0 -7
package/src/parser/manifest.js
CHANGED
|
@@ -11,22 +11,23 @@ const fs = require("fs-extra");
|
|
|
11
11
|
// [import]
|
|
12
12
|
|
|
13
13
|
const cfgcode = require("../config/code");
|
|
14
|
-
const
|
|
14
|
+
const cfgfile = require("../config/file");
|
|
15
15
|
const error = require("../util/error");
|
|
16
|
+
const objs = require("../util/objs");
|
|
16
17
|
const phrase = require("../phrase");
|
|
17
18
|
const TOML = require("../util/toml");
|
|
18
19
|
|
|
19
20
|
// [use]
|
|
20
21
|
|
|
21
22
|
const ArcError = error.ArcError;
|
|
23
|
+
const isTable = objs.isTable;
|
|
22
24
|
const join = path.join;
|
|
23
25
|
const pathExists = fs.pathExists;
|
|
24
26
|
const readFile = fs.readFile;
|
|
25
27
|
|
|
26
28
|
// [declare]
|
|
27
29
|
|
|
28
|
-
const
|
|
29
|
-
const MANIFEST = `${HANDLE}.toml`;
|
|
30
|
+
const MANIFEST = cfgfile.MANIFEST;
|
|
30
31
|
|
|
31
32
|
// [function]
|
|
32
33
|
|
|
@@ -45,12 +46,7 @@ const parseToml = function (buf) {
|
|
|
45
46
|
// [function]
|
|
46
47
|
|
|
47
48
|
const isEmptyTable = function (value) {
|
|
48
|
-
return (
|
|
49
|
-
value !== null &&
|
|
50
|
-
typeof value === "object" &&
|
|
51
|
-
!Array.isArray(value) &&
|
|
52
|
-
!Object.keys(value).length
|
|
53
|
-
);
|
|
49
|
+
return isTable(value) && !Object.keys(value).length;
|
|
54
50
|
};
|
|
55
51
|
|
|
56
52
|
// [function]
|
|
@@ -65,14 +61,20 @@ const extract = function (conf) {
|
|
|
65
61
|
|
|
66
62
|
// [function]
|
|
67
63
|
|
|
68
|
-
|
|
64
|
+
// arcadible.toml as written, or {} without it.
|
|
65
|
+
const read = function (root) {
|
|
69
66
|
const file = join(root, MANIFEST);
|
|
70
67
|
return pathExists(file)
|
|
71
68
|
.then((exists) => (exists ? readFile(file, "utf8") : null))
|
|
72
|
-
.then((buf) => (buf === null ? {} : parseToml(buf)))
|
|
73
|
-
|
|
69
|
+
.then((buf) => (buf === null ? {} : parseToml(buf)));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// [function]
|
|
73
|
+
|
|
74
|
+
const main = function (root) {
|
|
75
|
+
return read(root).then(extract);
|
|
74
76
|
};
|
|
75
77
|
|
|
76
78
|
// [export]
|
|
77
79
|
|
|
78
|
-
module.exports = main;
|
|
80
|
+
module.exports = Object.assign(main, { read });
|
package/src/parser/media.js
CHANGED
|
@@ -11,8 +11,8 @@ const fs = require("fs-extra");
|
|
|
11
11
|
// [import]
|
|
12
12
|
|
|
13
13
|
const cfgart = require("../config/art");
|
|
14
|
+
const cfgfile = require("../config/file");
|
|
14
15
|
const cfgimage = require("../config/image");
|
|
15
|
-
const cfgproduct = require("../config/product");
|
|
16
16
|
const cfgvideo = require("../config/video");
|
|
17
17
|
const objs = require("../util/objs");
|
|
18
18
|
|
|
@@ -22,17 +22,15 @@ const deepCompact = objs.deepCompact;
|
|
|
22
22
|
const extname = path.extname;
|
|
23
23
|
const join = path.join;
|
|
24
24
|
const parse = path.parse;
|
|
25
|
+
// the manifest's paths use `/` on every platform, as Arcadible's do.
|
|
26
|
+
const posixJoin = path.posix.join;
|
|
25
27
|
const pathExists = fs.pathExists;
|
|
26
28
|
const readdir = fs.promises.readdir;
|
|
27
29
|
|
|
28
30
|
// [declare]
|
|
29
31
|
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
// [declare]
|
|
33
|
-
|
|
34
|
-
const HANDLE = cfgproduct.handle;
|
|
35
|
-
const MEDIA = `.${HANDLE}`;
|
|
32
|
+
const GALLERY = cfgfile.GALLERY;
|
|
33
|
+
const MEDIA = cfgfile.MEDIA;
|
|
36
34
|
|
|
37
35
|
// [function]
|
|
38
36
|
|
|
@@ -50,9 +48,9 @@ const art = function (root) {
|
|
|
50
48
|
list(join(root, MEDIA)).then((names) => ({
|
|
51
49
|
...game,
|
|
52
50
|
...Object.fromEntries(
|
|
53
|
-
|
|
51
|
+
cfgart.map((f) => [
|
|
54
52
|
parse(f).name,
|
|
55
|
-
names.includes(f) ?
|
|
53
|
+
names.includes(f) ? posixJoin(MEDIA, f) : null,
|
|
56
54
|
]),
|
|
57
55
|
),
|
|
58
56
|
}));
|
|
@@ -64,7 +62,7 @@ const handleGallery = function (entries) {
|
|
|
64
62
|
const exts = [...Object.keys(cfgimage), ...Object.keys(cfgvideo)];
|
|
65
63
|
return entries
|
|
66
64
|
.filter((f) => exts.includes(extname(f)))
|
|
67
|
-
.map((f) =>
|
|
65
|
+
.map((f) => posixJoin(GALLERY, f))
|
|
68
66
|
.sort();
|
|
69
67
|
};
|
|
70
68
|
|
|
@@ -72,7 +70,7 @@ const handleGallery = function (entries) {
|
|
|
72
70
|
|
|
73
71
|
const gallery = function (root) {
|
|
74
72
|
return (game) =>
|
|
75
|
-
list(join(root,
|
|
73
|
+
list(join(root, GALLERY))
|
|
76
74
|
.then(handleGallery)
|
|
77
75
|
.then((data) => ({ ...game, gallery: data }));
|
|
78
76
|
};
|
package/src/parser/project.js
CHANGED
|
@@ -11,15 +11,17 @@ const fs = require("fs-extra");
|
|
|
11
11
|
// [import]
|
|
12
12
|
|
|
13
13
|
const cfgcode = require("../config/code");
|
|
14
|
-
const
|
|
14
|
+
const cfgfile = require("../config/file");
|
|
15
15
|
const cfgworkflow = require("../config/workflow");
|
|
16
16
|
const env = require("./env");
|
|
17
17
|
const error = require("../util/error");
|
|
18
|
+
const gameSchema = require("../schema/game");
|
|
18
19
|
const manifest = require("./manifest");
|
|
19
20
|
const media = require("./media");
|
|
20
21
|
const phrase = require("../phrase");
|
|
21
22
|
const promise = require("../util/promise");
|
|
22
23
|
const readme = require("./readme");
|
|
24
|
+
const workflowSchema = require("../schema/workflow");
|
|
23
25
|
|
|
24
26
|
// [use]
|
|
25
27
|
|
|
@@ -33,7 +35,7 @@ const sep = path.sep;
|
|
|
33
35
|
|
|
34
36
|
// [declare]
|
|
35
37
|
|
|
36
|
-
const MANIFEST =
|
|
38
|
+
const MANIFEST = cfgfile.MANIFEST;
|
|
37
39
|
|
|
38
40
|
// [function]
|
|
39
41
|
|
|
@@ -48,6 +50,18 @@ const configGame = function (readmeGame, mediaGame, envGame, manifestGame) {
|
|
|
48
50
|
|
|
49
51
|
// [function]
|
|
50
52
|
|
|
53
|
+
// the fields of `values` that `schema` knows. Arcadible ignores the rest, so
|
|
54
|
+
// they're left out of what's packed and inspected; arc validate warns about
|
|
55
|
+
// each (action/validate/unknown.js).
|
|
56
|
+
const known = function (values, schema, root) {
|
|
57
|
+
const fields = Object.keys(schema({}, { root }).shape);
|
|
58
|
+
return Object.fromEntries(
|
|
59
|
+
Object.entries(values).filter(([field]) => fields.includes(field)),
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// [function]
|
|
64
|
+
|
|
51
65
|
const configWorkflow = function (envWorkflow, manifestWorkflow) {
|
|
52
66
|
return {
|
|
53
67
|
...cfgworkflow,
|
|
@@ -95,7 +109,7 @@ const ensureManifest = function (root) {
|
|
|
95
109
|
if (found !== false) {
|
|
96
110
|
throw new ArcError(
|
|
97
111
|
cfgcode.MANIFEST_MISSING,
|
|
98
|
-
phrase.
|
|
112
|
+
phrase.manifestMissing(MANIFEST, shown(root), found && shown(found)),
|
|
99
113
|
);
|
|
100
114
|
}
|
|
101
115
|
});
|
|
@@ -113,13 +127,21 @@ const parseSources = function (root, manifestData) {
|
|
|
113
127
|
() => env(root),
|
|
114
128
|
];
|
|
115
129
|
return promise.serial(parsers).then(([readmeData, mediaData, envData]) => ({
|
|
116
|
-
game:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
130
|
+
game: known(
|
|
131
|
+
configGame(
|
|
132
|
+
readmeData.game,
|
|
133
|
+
mediaData.game,
|
|
134
|
+
envData.game,
|
|
135
|
+
manifestData.game,
|
|
136
|
+
),
|
|
137
|
+
gameSchema,
|
|
138
|
+
root,
|
|
139
|
+
),
|
|
140
|
+
workflow: known(
|
|
141
|
+
configWorkflow(envData.workflow, manifestData.workflow),
|
|
142
|
+
workflowSchema,
|
|
143
|
+
root,
|
|
121
144
|
),
|
|
122
|
-
workflow: configWorkflow(envData.workflow, manifestData.workflow),
|
|
123
145
|
}));
|
|
124
146
|
};
|
|
125
147
|
|
package/src/phrase.js
CHANGED
|
@@ -32,6 +32,13 @@ const waited = function (seconds) {
|
|
|
32
32
|
|
|
33
33
|
// [function]
|
|
34
34
|
|
|
35
|
+
// a command's heading when it fails: `Deploy aborted.`
|
|
36
|
+
const aborted = function (command) {
|
|
37
|
+
return `${command[0].toUpperCase()}${command.slice(1)} aborted.`;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// [function]
|
|
41
|
+
|
|
35
42
|
// a build that exited with `code`, or was stopped by `signal`, with what it
|
|
36
43
|
// wrote to stderr.
|
|
37
44
|
const buildFailed = function ({ code, signal, stderr }) {
|
|
@@ -71,12 +78,30 @@ const buildSubmitted = function (version, channel, built) {
|
|
|
71
78
|
|
|
72
79
|
// [function]
|
|
73
80
|
|
|
81
|
+
const buildSucceeded = function () {
|
|
82
|
+
return "Built.";
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
// [function]
|
|
86
|
+
|
|
87
|
+
const cmdBuild = function () {
|
|
88
|
+
return `\`${TOOL} build\``;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// [function]
|
|
92
|
+
|
|
74
93
|
const cmdDeploy = function () {
|
|
75
94
|
return `\`${TOOL} deploy\``;
|
|
76
95
|
};
|
|
77
96
|
|
|
78
97
|
// [function]
|
|
79
98
|
|
|
99
|
+
const cmdDeployGit = function () {
|
|
100
|
+
return `\`${TOOL} deploy git\``;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// [function]
|
|
104
|
+
|
|
80
105
|
const cmdInit = function () {
|
|
81
106
|
return `\`${TOOL} init\``;
|
|
82
107
|
};
|
|
@@ -104,12 +129,18 @@ const cmdValidate = function () {
|
|
|
104
129
|
const deployDirMissing = function (dir) {
|
|
105
130
|
return blocks(
|
|
106
131
|
`Unable to find deploy_dir: ${dir}`,
|
|
107
|
-
|
|
132
|
+
`Run ${cmdBuild()}, or set deploy_dir to the folder your build writes.`,
|
|
108
133
|
);
|
|
109
134
|
};
|
|
110
135
|
|
|
111
136
|
// [function]
|
|
112
137
|
|
|
138
|
+
const didYouMean = function (near) {
|
|
139
|
+
return `Did you mean: ${near}?`;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// [function]
|
|
143
|
+
|
|
113
144
|
const docAttrInvalid = function (tag, attr, value) {
|
|
114
145
|
return `Value '${value}' is not valid for the '${attr}' attribute on the '${tag}' tag.`;
|
|
115
146
|
};
|
|
@@ -140,20 +171,22 @@ const docMediaMissing = function (src) {
|
|
|
140
171
|
|
|
141
172
|
// [function]
|
|
142
173
|
|
|
143
|
-
|
|
144
|
-
|
|
174
|
+
// a description media src that isn't written as the gallery's path to it,
|
|
175
|
+
// such as `./.arcadible/gallery/x.png`: Arcadible matches it as written.
|
|
176
|
+
const docMediaPath = function (src, gallery) {
|
|
177
|
+
return `Must be written as ${gallery}/<file>: ${src}`;
|
|
145
178
|
};
|
|
146
179
|
|
|
147
180
|
// [function]
|
|
148
181
|
|
|
149
|
-
const
|
|
150
|
-
return `
|
|
182
|
+
const docMediaType = function (src) {
|
|
183
|
+
return `Must be a PNG or MP4 file: ${src}`;
|
|
151
184
|
};
|
|
152
185
|
|
|
153
186
|
// [function]
|
|
154
187
|
|
|
155
|
-
const
|
|
156
|
-
return
|
|
188
|
+
const docTagUnallowed = function (tag) {
|
|
189
|
+
return `Tag '${tag}' is not permitted.`;
|
|
157
190
|
};
|
|
158
191
|
|
|
159
192
|
// [function]
|
|
@@ -183,8 +216,76 @@ const gameNotDeployed = function (game) {
|
|
|
183
216
|
|
|
184
217
|
// [function]
|
|
185
218
|
|
|
219
|
+
const initialized = function () {
|
|
220
|
+
return "Initialized.";
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
// [function]
|
|
224
|
+
|
|
225
|
+
// the heading of arc validate's list of issues, warnings, or references:
|
|
226
|
+
// `2 issues:`
|
|
227
|
+
const listed = function (count, noun) {
|
|
228
|
+
return `${count} ${noun}${count === 1 ? "" : "s"}:`;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
// [function]
|
|
232
|
+
|
|
233
|
+
const loggedIn = function () {
|
|
234
|
+
return "Logged in.";
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// [function]
|
|
238
|
+
|
|
239
|
+
const loggedOut = function () {
|
|
240
|
+
return "Logged out.";
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
// [function]
|
|
244
|
+
|
|
245
|
+
const loggingIn = function () {
|
|
246
|
+
return "Logging in...";
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
// [function]
|
|
250
|
+
|
|
251
|
+
const noAccount = function () {
|
|
252
|
+
return "Not logged in.";
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
// [function]
|
|
256
|
+
|
|
257
|
+
const noIssuesFound = function () {
|
|
258
|
+
return "No issues found.";
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
// [function]
|
|
262
|
+
|
|
263
|
+
const nothingToDo = function () {
|
|
264
|
+
return "Nothing to do.";
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
// [function]
|
|
268
|
+
|
|
269
|
+
const packed = function () {
|
|
270
|
+
return "Packed.";
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// [function]
|
|
274
|
+
|
|
275
|
+
const pressEnterToOpen = function () {
|
|
276
|
+
return "Press Enter to open the URL.";
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
// [function]
|
|
280
|
+
|
|
281
|
+
const releaseFailedHeading = function () {
|
|
282
|
+
return "Release failed.";
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// [function]
|
|
286
|
+
|
|
186
287
|
// origin isn't the game's connected repository: none is, or another is.
|
|
187
|
-
const
|
|
288
|
+
const repoNotConnected = function (game, repo, url) {
|
|
188
289
|
return blocks(`${repo} isn't ${game}'s repository on ${TITLE}.`, [
|
|
189
290
|
`The game's owner connects it in ${TITLE} Studio, on the game's Repository tab, and connects it again if it was renamed on GitHub:`,
|
|
190
291
|
url,
|
|
@@ -208,7 +309,7 @@ const gameUnavailable = function (id) {
|
|
|
208
309
|
|
|
209
310
|
// [function]
|
|
210
311
|
|
|
211
|
-
const
|
|
312
|
+
const gitUncommitted = function () {
|
|
212
313
|
return blocks(
|
|
213
314
|
"Uncommitted changes found.",
|
|
214
315
|
"Commit, stash, or discard them first.",
|
|
@@ -235,12 +336,12 @@ const gitRemoteUnreachable = function () {
|
|
|
235
336
|
|
|
236
337
|
// [function]
|
|
237
338
|
|
|
238
|
-
const
|
|
339
|
+
const manifestMissing = function (file, dir, found) {
|
|
239
340
|
return blocks(
|
|
240
341
|
dir === "." ? `No ${file} in this directory.` : `No ${file} in ${dir}.`,
|
|
241
342
|
found
|
|
242
|
-
? `The project is in \`${found}\`: run
|
|
243
|
-
:
|
|
343
|
+
? `The project is in \`${found}\`: run ${TOOL} there, or pass \`-C ${found}\`.`
|
|
344
|
+
: `Run ${TOOL} in the project's directory, or pass \`-C\`, or start a project with ${cmdInit()}.`,
|
|
244
345
|
);
|
|
245
346
|
};
|
|
246
347
|
|
|
@@ -248,8 +349,8 @@ const noManifest = function (file, dir, found) {
|
|
|
248
349
|
|
|
249
350
|
const projectNotRepoRoot = function (prefix) {
|
|
250
351
|
return blocks(
|
|
251
|
-
|
|
252
|
-
|
|
352
|
+
`${cmdDeployGit()} releases the project at the repository's root, and this one is in ${prefix}.`,
|
|
353
|
+
`Deploy it with ${cmdDeploy()}, or give it a repository of its own.`,
|
|
253
354
|
);
|
|
254
355
|
};
|
|
255
356
|
|
|
@@ -282,7 +383,7 @@ const gitTagPushFailed = function (version) {
|
|
|
282
383
|
|
|
283
384
|
// [function]
|
|
284
385
|
|
|
285
|
-
const
|
|
386
|
+
const gitTagExists = function (version) {
|
|
286
387
|
return blocks(
|
|
287
388
|
`Git tag for v${version} already exists, here or on origin.`,
|
|
288
389
|
"Bump the version.",
|
|
@@ -390,7 +491,7 @@ const loginFailed = function () {
|
|
|
390
491
|
|
|
391
492
|
// [function]
|
|
392
493
|
|
|
393
|
-
const
|
|
494
|
+
const gameIdMissing = function () {
|
|
394
495
|
return blocks(
|
|
395
496
|
"No game handle or ID.",
|
|
396
497
|
`Pass one, or run it in a project after ${cmdInit()} has added an ID.`,
|
|
@@ -399,7 +500,7 @@ const noGameId = function () {
|
|
|
399
500
|
|
|
400
501
|
// [function]
|
|
401
502
|
|
|
402
|
-
const
|
|
503
|
+
const lockfileMissing = function () {
|
|
403
504
|
return blocks("No lockfile found.", [
|
|
404
505
|
"Install your dependencies to create one.",
|
|
405
506
|
"Then commit it.",
|
|
@@ -414,7 +515,7 @@ const noProductionRelease = function () {
|
|
|
414
515
|
|
|
415
516
|
// [function]
|
|
416
517
|
|
|
417
|
-
const
|
|
518
|
+
const templateMissing = function () {
|
|
418
519
|
return blocks("No template chosen.", [
|
|
419
520
|
"Pass `--template <user/repo>`.",
|
|
420
521
|
"Or pass `--yes` for the blank starter.",
|
|
@@ -424,7 +525,7 @@ const noTemplate = function () {
|
|
|
424
525
|
// [function]
|
|
425
526
|
|
|
426
527
|
const notLoggedIn = function () {
|
|
427
|
-
return blocks(
|
|
528
|
+
return blocks(noAccount(), `Run ${cmdLogin()} to log in.`);
|
|
428
529
|
};
|
|
429
530
|
|
|
430
531
|
// [function]
|
|
@@ -453,7 +554,7 @@ const openToContinue = function () {
|
|
|
453
554
|
|
|
454
555
|
// [function]
|
|
455
556
|
|
|
456
|
-
const
|
|
557
|
+
const packageIndexMissing = function (file) {
|
|
457
558
|
return `Package is missing '${file}'.`;
|
|
458
559
|
};
|
|
459
560
|
|
|
@@ -622,12 +723,6 @@ const templateUnavailable = function (template) {
|
|
|
622
723
|
|
|
623
724
|
// [function]
|
|
624
725
|
|
|
625
|
-
const timedOut = function () {
|
|
626
|
-
return "Timed out.";
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
// [function]
|
|
630
|
-
|
|
631
726
|
const unableToFind = function (file) {
|
|
632
727
|
return `Unable to find: ${file}`;
|
|
633
728
|
};
|
|
@@ -641,7 +736,7 @@ const unableToOpen = function () {
|
|
|
641
736
|
// [function]
|
|
642
737
|
|
|
643
738
|
const unableToParse = function (file, message) {
|
|
644
|
-
return blocks(`Unable to parse ${file}.`, message);
|
|
739
|
+
return blocks(`Unable to parse ${file}.`, message.trim());
|
|
645
740
|
};
|
|
646
741
|
|
|
647
742
|
// [function]
|
|
@@ -655,6 +750,18 @@ const unableToReach = function () {
|
|
|
655
750
|
|
|
656
751
|
// [function]
|
|
657
752
|
|
|
753
|
+
const unknownField = function () {
|
|
754
|
+
return "Unknown field.";
|
|
755
|
+
};
|
|
756
|
+
|
|
757
|
+
// [function]
|
|
758
|
+
|
|
759
|
+
const unknownTable = function () {
|
|
760
|
+
return "Unknown table.";
|
|
761
|
+
};
|
|
762
|
+
|
|
763
|
+
// [function]
|
|
764
|
+
|
|
658
765
|
const uploadFailed = function (status) {
|
|
659
766
|
return `Upload failed with status ${status}.`;
|
|
660
767
|
};
|
|
@@ -670,6 +777,12 @@ const uploadRateLimited = function (version) {
|
|
|
670
777
|
|
|
671
778
|
// [function]
|
|
672
779
|
|
|
780
|
+
const waitTimedOut = function () {
|
|
781
|
+
return "Wait timed out.";
|
|
782
|
+
};
|
|
783
|
+
|
|
784
|
+
// [function]
|
|
785
|
+
|
|
673
786
|
const workflowMissing = function (file) {
|
|
674
787
|
return blocks(
|
|
675
788
|
`No release workflow found: ${file}`,
|
|
@@ -687,7 +800,7 @@ const versionPrerelease = function (version) {
|
|
|
687
800
|
|
|
688
801
|
// a version that's already published, with what is, so the developer knows
|
|
689
802
|
// what to bump to.
|
|
690
|
-
const
|
|
803
|
+
const versionExists = function (version, { next, production, staging }) {
|
|
691
804
|
const latest = [
|
|
692
805
|
production ? `Production: ${production}` : null,
|
|
693
806
|
staging ? `Staging: ${staging}` : null,
|
|
@@ -780,35 +893,38 @@ const videoWidthMin = function (width) {
|
|
|
780
893
|
// [export]
|
|
781
894
|
|
|
782
895
|
module.exports = {
|
|
896
|
+
aborted,
|
|
783
897
|
buildFailed,
|
|
784
898
|
buildOutputMissing,
|
|
785
899
|
buildPublishing,
|
|
786
900
|
buildPublishingGit,
|
|
787
901
|
buildSubmitted,
|
|
902
|
+
buildSucceeded,
|
|
788
903
|
cmdInit,
|
|
789
904
|
cmdInspect,
|
|
790
905
|
deployDirMissing,
|
|
906
|
+
didYouMean,
|
|
791
907
|
docAttrInvalid,
|
|
792
908
|
docAttrUnallowed,
|
|
793
909
|
docCommentUnallowed,
|
|
794
910
|
docMediaElement,
|
|
795
911
|
docMediaMissing,
|
|
912
|
+
docMediaPath,
|
|
796
913
|
docMediaType,
|
|
797
914
|
docTagUnallowed,
|
|
798
|
-
docUnsupported,
|
|
799
915
|
errorCode,
|
|
800
916
|
gameHandleTaken,
|
|
917
|
+
gameIdMissing,
|
|
801
918
|
gameNotDeployed,
|
|
802
919
|
gameNotFound,
|
|
803
|
-
gameRepoMissing,
|
|
804
920
|
gameUnavailable,
|
|
805
|
-
gitChangesPresent,
|
|
806
921
|
gitRemoteMissing,
|
|
807
922
|
gitRemoteUnreachable,
|
|
808
923
|
gitRepoMissing,
|
|
809
924
|
gitTagCreateFailed,
|
|
925
|
+
gitTagExists,
|
|
810
926
|
gitTagPushFailed,
|
|
811
|
-
|
|
927
|
+
gitUncommitted,
|
|
812
928
|
httpError,
|
|
813
929
|
imageAspect,
|
|
814
930
|
imageFound,
|
|
@@ -819,30 +935,40 @@ module.exports = {
|
|
|
819
935
|
imageUnsupported,
|
|
820
936
|
imageWidthMax,
|
|
821
937
|
imageWidthMin,
|
|
938
|
+
initialized,
|
|
822
939
|
issuesAfterBuild,
|
|
823
940
|
issuesFound,
|
|
941
|
+
listed,
|
|
942
|
+
lockfileMissing,
|
|
943
|
+
loggedIn,
|
|
944
|
+
loggedOut,
|
|
945
|
+
loggingIn,
|
|
824
946
|
loginCodeExpired,
|
|
825
947
|
loginFailed,
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
948
|
+
manifestMissing,
|
|
949
|
+
noAccount,
|
|
950
|
+
noIssuesFound,
|
|
829
951
|
noProductionRelease,
|
|
830
|
-
noTemplate,
|
|
831
952
|
noVideoMetadata,
|
|
832
953
|
noVideoTrack,
|
|
833
954
|
notLoggedIn,
|
|
955
|
+
nothingToDo,
|
|
834
956
|
openToContinue,
|
|
835
957
|
opened,
|
|
836
|
-
packageFileMissing,
|
|
837
958
|
packageFileTooLarge,
|
|
959
|
+
packageIndexMissing,
|
|
838
960
|
packageTooLarge,
|
|
839
961
|
packageTooManyFiles,
|
|
840
962
|
packageUncompressedTooLarge,
|
|
963
|
+
packed,
|
|
964
|
+
pressEnterToOpen,
|
|
841
965
|
projectNotRepoRoot,
|
|
842
966
|
releaseFailed,
|
|
967
|
+
releaseFailedHeading,
|
|
843
968
|
releasePublished,
|
|
844
969
|
releaseTimedOut,
|
|
845
970
|
releaseWaiting,
|
|
971
|
+
repoNotConnected,
|
|
846
972
|
sessionExpired,
|
|
847
973
|
sizeB,
|
|
848
974
|
sizeGb,
|
|
@@ -854,17 +980,19 @@ module.exports = {
|
|
|
854
980
|
starterPixiJs,
|
|
855
981
|
starterThreeJs,
|
|
856
982
|
tagPushed,
|
|
983
|
+
templateMissing,
|
|
857
984
|
templateUnavailable,
|
|
858
|
-
timedOut,
|
|
859
985
|
timeoutInvalid,
|
|
860
986
|
unableToFind,
|
|
861
987
|
unableToOpen,
|
|
862
988
|
unableToParse,
|
|
863
989
|
unableToReach,
|
|
990
|
+
unknownField,
|
|
991
|
+
unknownTable,
|
|
864
992
|
uploadFailed,
|
|
865
993
|
uploadRateLimited,
|
|
994
|
+
versionExists,
|
|
866
995
|
versionPrerelease,
|
|
867
|
-
versionPublished,
|
|
868
996
|
versionRelease,
|
|
869
997
|
versionUnchecked,
|
|
870
998
|
videoAspect,
|
|
@@ -878,5 +1006,6 @@ module.exports = {
|
|
|
878
1006
|
videoUnsupported,
|
|
879
1007
|
videoWidthMax,
|
|
880
1008
|
videoWidthMin,
|
|
1009
|
+
waitTimedOut,
|
|
881
1010
|
workflowMissing,
|
|
882
1011
|
};
|