@nocobase/app-installer 0.1.0-beta.3 → 0.1.0-beta.4
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 +81 -99
- package/dist/cli.js +6 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/install.js +29 -93
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/rollback.js +8 -11
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/status.js +4 -27
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.js +53 -213
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/lib/ecosystem.js +1 -5
- package/dist/lib/ecosystem.js.map +1 -1
- package/dist/lib/layout.js +0 -13
- package/dist/lib/layout.js.map +1 -1
- package/dist/lib/prechecks.js +1 -38
- package/dist/lib/prechecks.js.map +1 -1
- package/dist/lib/registry.js +0 -50
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/release.js +6 -161
- package/dist/lib/release.js.map +1 -1
- package/dist/lib/source.js +4 -60
- package/dist/lib/source.js.map +1 -1
- package/dist/lib/state.js +12 -1
- package/dist/lib/state.js.map +1 -1
- package/package.json +3 -3
package/dist/commands/install.js
CHANGED
|
@@ -9,15 +9,15 @@ import { buildAppEnv, endpointsOf, healthUrl, mountPathOf, readAppEnv, } from ".
|
|
|
9
9
|
import { EXIT_INVALID, InstallerError } from "../lib/errors.js";
|
|
10
10
|
import { pm2StartFailed, waitForHealthy } from "../lib/health.js";
|
|
11
11
|
import { readInitialAdmin } from "../lib/initial-admin.js";
|
|
12
|
-
import {
|
|
12
|
+
import { layoutOf, releaseLinkTarget } from "../lib/layout.js";
|
|
13
13
|
import { acquireLock } from "../lib/lock.js";
|
|
14
14
|
import { assertFixedMountPath, parseBasePathFlag } from "../lib/mount-path.js";
|
|
15
|
-
import { checkEnvVariables, checkPlatform, checkPm2, checkPm2NameFree,
|
|
16
|
-
import { defaultRegistry, normalizeRegistry,
|
|
17
|
-
import { DIALECTS, assertStorageOutsideRelease,
|
|
15
|
+
import { checkEnvVariables, checkPlatform, checkPm2, checkPm2NameFree, checkPortFree, checkTargetEmpty, } from "../lib/prechecks.js";
|
|
16
|
+
import { defaultRegistry, normalizeRegistry, } from "../lib/registry.js";
|
|
17
|
+
import { DIALECTS, assertStorageOutsideRelease, checkArchiveDriver, unpackRelease, } from "../lib/release.js";
|
|
18
18
|
import { runCommand } from "../lib/run-command.js";
|
|
19
19
|
import { errorLogCommandLine, errorLogTail, startAdvice, } from "../lib/service.js";
|
|
20
|
-
import {
|
|
20
|
+
import { resolveArchivePath } from "../lib/source.js";
|
|
21
21
|
import { writeState } from "../lib/state.js";
|
|
22
22
|
export const INSTALL_ARGS = {
|
|
23
23
|
directory: Args.string({
|
|
@@ -31,14 +31,11 @@ export const INSTALL_FLAGS = {
|
|
|
31
31
|
archive: Flags.string({
|
|
32
32
|
description: 'Deployment archive to install, as `pnpm build --tar` writes it to storage/exports/dist.tar.gz. Build it for this machine with --target and --node-version.',
|
|
33
33
|
}),
|
|
34
|
-
template: Flags.string({
|
|
35
|
-
description: 'Published template to build on this machine instead: hub, or hub@<version or dist-tag> (latest by default).',
|
|
36
|
-
}),
|
|
37
34
|
origin: Flags.string({
|
|
38
35
|
description: 'Public origin the application is reached at, without its base path, e.g. https://apps.example.com. Defaults to http://HOST:PORT.',
|
|
39
36
|
}),
|
|
40
37
|
'base-path': Flags.string({
|
|
41
|
-
description: "Path the application is mounted at, e.g. /crm, or / for the origin root. Written to app.env as APP_BASE_PATH; without it the server's default applies
|
|
38
|
+
description: "Path the application is mounted at, e.g. /crm, or / for the origin root. Written to app.env as APP_BASE_PATH; without it the server's default applies. An archive from before relocatable builds runs only at the path it was built for.",
|
|
42
39
|
}),
|
|
43
40
|
host: Flags.string({
|
|
44
41
|
default: '127.0.0.1',
|
|
@@ -64,7 +61,7 @@ export const INSTALL_FLAGS = {
|
|
|
64
61
|
description: 'A setting read from an environment variable, as key=VARIABLE, e.g. database.connections.main.password=DB_PASSWORD.',
|
|
65
62
|
}),
|
|
66
63
|
registry: Flags.string({
|
|
67
|
-
description: 'npm registry for the
|
|
64
|
+
description: 'npm registry for the installer commands suggested later.',
|
|
68
65
|
}),
|
|
69
66
|
name: Flags.string({
|
|
70
67
|
description: 'pm2 process name. Defaults to nocobase- followed by the directory name, so each installation on a machine has its own.',
|
|
@@ -79,10 +76,6 @@ export const INSTALL_FLAGS = {
|
|
|
79
76
|
min: 1,
|
|
80
77
|
description: 'Seconds to wait for the application to answer its health check.',
|
|
81
78
|
}),
|
|
82
|
-
'keep-source': Flags.boolean({
|
|
83
|
-
default: false,
|
|
84
|
-
description: 'With --template, keep the build directory with the sources and development dependencies, also when the install fails.',
|
|
85
|
-
}),
|
|
86
79
|
json: Flags.boolean({
|
|
87
80
|
default: false,
|
|
88
81
|
description: 'Print one JSON result on stdout; progress stays on stderr.',
|
|
@@ -103,23 +96,20 @@ function describeInitialAdmin(admin) {
|
|
|
103
96
|
.filter(Boolean)
|
|
104
97
|
.join(' ') || 'the account';
|
|
105
98
|
const password = admin.defaultPassword === true
|
|
106
|
-
? `the
|
|
99
|
+
? `the default password from config.example.yml; change it after signing in`
|
|
107
100
|
: 'the password set there';
|
|
108
101
|
return `${who} under ${admin.key} in config.yml, with ${password}`;
|
|
109
102
|
}
|
|
110
103
|
/**
|
|
111
104
|
* Removes what a failed install wrote. The target was new or empty when the install began, so everything in it now
|
|
112
|
-
* came from this run. `created` is the topmost directory the install created, which may be a parent of the root
|
|
113
|
-
* `keep` names entries to leave, such as the build directory under `--keep-source`.
|
|
105
|
+
* came from this run. `created` is the topmost directory the install created, which may be a parent of the root.
|
|
114
106
|
*/
|
|
115
|
-
async function cleanUp(root, created
|
|
116
|
-
if (created
|
|
107
|
+
async function cleanUp(root, created) {
|
|
108
|
+
if (created) {
|
|
117
109
|
await rm(created, { recursive: true, force: true });
|
|
118
110
|
return;
|
|
119
111
|
}
|
|
120
112
|
for (const entry of await readdir(root).catch(() => [])) {
|
|
121
|
-
if (keep.includes(entry))
|
|
122
|
-
continue;
|
|
123
113
|
await rm(path.join(root, entry), { recursive: true, force: true });
|
|
124
114
|
}
|
|
125
115
|
}
|
|
@@ -137,22 +127,12 @@ export async function install(input, deps) {
|
|
|
137
127
|
path.resolve(cwd, input.directory) !== path.resolve(cwd, flags.dir)) {
|
|
138
128
|
throw new InstallerError('INVALID_USAGE', `The DIRECTORY argument (${input.directory}) and --dir (${flags.dir}) name different directories; give one of them.`, { exitCode: EXIT_INVALID });
|
|
139
129
|
}
|
|
140
|
-
if (
|
|
141
|
-
throw new InstallerError('INVALID_USAGE',
|
|
142
|
-
? 'Name what to install: --archive with a deployment archive built by `pnpm build --tar`, or --template hub to build the published Hub here.'
|
|
143
|
-
: '--archive and --template name two different things to install; give one of them.', { exitCode: EXIT_INVALID });
|
|
130
|
+
if (flags.archive === undefined) {
|
|
131
|
+
throw new InstallerError('INVALID_USAGE', 'Name what to install: --archive with a deployment archive built by `pnpm build --tar`.', { exitCode: EXIT_INVALID });
|
|
144
132
|
}
|
|
145
133
|
const requestedBasePath = parseBasePathFlag(flags['base-path']);
|
|
146
134
|
const root = path.resolve(cwd, directory);
|
|
147
135
|
const layout = layoutOf(root);
|
|
148
|
-
const spec = flags.template === undefined
|
|
149
|
-
? undefined
|
|
150
|
-
: parseTemplateSpec(flags.template);
|
|
151
|
-
const template = spec?.template;
|
|
152
|
-
const archive = flags.archive === undefined
|
|
153
|
-
? undefined
|
|
154
|
-
: resolveArchivePath(cwd, flags.archive);
|
|
155
|
-
const title = template?.title ?? 'application';
|
|
156
136
|
const name = flags.name ?? `nocobase-${path.basename(root)}`;
|
|
157
137
|
const dialect = flags.dialect;
|
|
158
138
|
const registry = normalizeRegistry(flags.registry ?? defaultRegistry());
|
|
@@ -166,18 +146,14 @@ export async function install(input, deps) {
|
|
|
166
146
|
checkPlatform();
|
|
167
147
|
await checkTargetEmpty(root);
|
|
168
148
|
checkEnvVariables(setsFromEnv.map(([, variable]) => variable));
|
|
169
|
-
|
|
170
|
-
await checkPnpm(run);
|
|
149
|
+
const archive = resolveArchivePath(cwd, flags.archive);
|
|
171
150
|
if (flags.start) {
|
|
172
151
|
await checkPm2(pm2);
|
|
173
152
|
await checkPm2NameFree(pm2, name);
|
|
174
153
|
}
|
|
175
154
|
await checkPortFree(flags.host, flags.port, { suggestPort: true });
|
|
176
|
-
const version = spec && template
|
|
177
|
-
? await resolveTemplateVersion(registry, template.package, spec.version, deps.fetchImpl)
|
|
178
|
-
: undefined;
|
|
179
155
|
if (!flags.origin) {
|
|
180
|
-
reporter.warn(`No --origin given; the
|
|
156
|
+
reporter.warn(`No --origin given; the application will build links for ${origin}. Pass --origin with the public address before exposing it.`);
|
|
181
157
|
}
|
|
182
158
|
// `mkdir` returns the first directory it created, so a failure can remove parents the install made as well.
|
|
183
159
|
const created = await mkdir(root, { recursive: true });
|
|
@@ -192,39 +168,15 @@ export async function install(input, deps) {
|
|
|
192
168
|
}
|
|
193
169
|
let switched = false;
|
|
194
170
|
try {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
template,
|
|
202
|
-
version,
|
|
203
|
-
registry,
|
|
204
|
-
drivers,
|
|
205
|
-
keepSource: flags['keep-source'],
|
|
206
|
-
reporter,
|
|
207
|
-
run,
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
reporter.progress(`Unpacking ${archive} into ${root}`);
|
|
212
|
-
prepared = await unpackRelease({ layout, archive: archive });
|
|
213
|
-
checkArchiveDriver(prepared.dir, dialect);
|
|
214
|
-
reporter.progress(`Installing ${prepared.appName} ${prepared.version} (${prepared.id})`);
|
|
215
|
-
}
|
|
216
|
-
// What the application is, by its own manifest: a Hub deployed from an archive is as much a Hub as one built from
|
|
217
|
-
// the template. Builds too old to record it are only ever the Hub template's, which the template names.
|
|
218
|
-
const templateKind = prepared.templateKind ?? (template === HUB_TEMPLATE ? 'hub' : 'app');
|
|
219
|
-
const hub = templateKind === 'hub';
|
|
220
|
-
// A relocatable release is mounted where the installation says. A Hub keeps its own default whether it was built
|
|
221
|
-
// from the template or arrived as an archive: a build records no path and ships no `.env`, so nothing else carries
|
|
222
|
-
// the `/hub` its checkout served at, and the server's `/main` would move it. An earlier release runs only at the
|
|
223
|
-
// path its client was compiled for.
|
|
171
|
+
reporter.progress(`Unpacking ${archive} into ${root}`);
|
|
172
|
+
const prepared = await unpackRelease({ layout, archive });
|
|
173
|
+
checkArchiveDriver(prepared.dir, dialect);
|
|
174
|
+
reporter.progress(`Installing ${prepared.appName} ${prepared.version} (${prepared.id})`);
|
|
175
|
+
// A relocatable release is mounted where the installation says, or at the server's default. An earlier release
|
|
176
|
+
// runs only at the path its client was compiled for.
|
|
224
177
|
let mountPath;
|
|
225
178
|
if (prepared.relocatable) {
|
|
226
|
-
mountPath =
|
|
227
|
-
requestedBasePath ?? (hub ? HUB_TEMPLATE.basePath : template?.basePath);
|
|
179
|
+
mountPath = requestedBasePath;
|
|
228
180
|
}
|
|
229
181
|
else {
|
|
230
182
|
mountPath = prepared.basePath;
|
|
@@ -255,29 +207,17 @@ export async function install(input, deps) {
|
|
|
255
207
|
// Everything else the root needs is written first: the switch is the last write before starting, so a failure
|
|
256
208
|
// anywhere up to it leaves nothing half-installed for status and install to disagree about.
|
|
257
209
|
await mkdir(layout.logsDir, { recursive: true });
|
|
258
|
-
await writeFile(layout.ecosystemFile, buildEcosystemConfig({
|
|
259
|
-
name,
|
|
260
|
-
nodePath: process.execPath,
|
|
261
|
-
keepChildren: hub,
|
|
262
|
-
}));
|
|
210
|
+
await writeFile(layout.ecosystemFile, buildEcosystemConfig({ name, nodePath: process.execPath }));
|
|
263
211
|
await writeFile(layout.launcherFile, buildLauncher());
|
|
264
212
|
const at = new Date().toISOString();
|
|
265
213
|
const state = {
|
|
266
214
|
schemaVersion: 1,
|
|
267
215
|
appName: prepared.appName,
|
|
268
216
|
basePath: mountPathOf(env) || '/',
|
|
269
|
-
|
|
270
|
-
source: template
|
|
271
|
-
? {
|
|
272
|
-
kind: 'template',
|
|
273
|
-
template: template.name,
|
|
274
|
-
package: template.package,
|
|
275
|
-
}
|
|
276
|
-
: { kind: 'archive' },
|
|
217
|
+
source: { kind: 'archive' },
|
|
277
218
|
name,
|
|
278
219
|
registry,
|
|
279
220
|
dialect,
|
|
280
|
-
drivers,
|
|
281
221
|
current: prepared.id,
|
|
282
222
|
releases: [
|
|
283
223
|
{
|
|
@@ -298,7 +238,7 @@ export async function install(input, deps) {
|
|
|
298
238
|
switched = true;
|
|
299
239
|
const url = healthUrl(env);
|
|
300
240
|
if (flags.start) {
|
|
301
|
-
reporter.progress(
|
|
241
|
+
reporter.progress('Starting the application with pm2');
|
|
302
242
|
await pm2.start(layout.ecosystemFile, root);
|
|
303
243
|
const healthy = await waitForHealthy(url, {
|
|
304
244
|
timeoutMs: flags['health-timeout'] * 1000,
|
|
@@ -308,7 +248,7 @@ export async function install(input, deps) {
|
|
|
308
248
|
if (!healthy) {
|
|
309
249
|
// The name was free before this install, so the process under it is the one just started.
|
|
310
250
|
await pm2.remove(name).catch(() => undefined);
|
|
311
|
-
throw new InstallerError('START_FAILED', `The
|
|
251
|
+
throw new InstallerError('START_FAILED', `The application did not become healthy at ${url} (waited up to ${flags['health-timeout']}s). It is installed but not running.`, {
|
|
312
252
|
details: { log: await errorLogTail(layout) },
|
|
313
253
|
suggestions: [
|
|
314
254
|
{
|
|
@@ -351,7 +291,7 @@ export async function install(input, deps) {
|
|
|
351
291
|
nextCommands,
|
|
352
292
|
},
|
|
353
293
|
summary: [
|
|
354
|
-
`${
|
|
294
|
+
`${prepared.appName} ${prepared.version} is installed at ${root}${flags.start ? ' and running' : ''}.`,
|
|
355
295
|
` URL ${endpoints.url}`,
|
|
356
296
|
` Release ${prepared.id}`,
|
|
357
297
|
` Sign in ${describeInitialAdmin(initialAdmin)}`,
|
|
@@ -359,7 +299,7 @@ export async function install(input, deps) {
|
|
|
359
299
|
'Next steps',
|
|
360
300
|
...(flags.start ? [] : [` Start it: ${startCommand}`]),
|
|
361
301
|
' Start pm2 at boot: run `pm2 startup` and execute the command it prints (needs sudo).',
|
|
362
|
-
` Proxy ${origin} to http://${flags.host}:${flags.port} with location
|
|
302
|
+
` Proxy ${origin} to http://${flags.host}:${flags.port} with location /.`,
|
|
363
303
|
],
|
|
364
304
|
};
|
|
365
305
|
}
|
|
@@ -368,11 +308,7 @@ export async function install(input, deps) {
|
|
|
368
308
|
// After it, the release, configuration and data are real and stay.
|
|
369
309
|
if (!switched) {
|
|
370
310
|
await releaseLock();
|
|
371
|
-
|
|
372
|
-
await cleanUp(root, created, keep);
|
|
373
|
-
if (keep.length > 0) {
|
|
374
|
-
reporter.warn(`The build directory was kept for inspection: ${path.join(layout.buildDir)}. Remove it before installing into ${root} again.`);
|
|
375
|
-
}
|
|
311
|
+
await cleanUp(root, created);
|
|
376
312
|
}
|
|
377
313
|
throw error;
|
|
378
314
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAqB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,GAGd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EACT,sEAAsE;KACzE,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;QAChB,WAAW,EACT,+FAA+F;KAClG,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACpB,WAAW,EACT,4JAA4J;KAC/J,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EACT,6GAA6G;KAChH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,kIAAkI;KACrI,CAAC;IACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EACT,kSAAkS;KACrS,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,WAAW;QACpB,WAAW,EACT,uFAAuF;KAC1F,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAClB,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,KAAK;QACV,WAAW,EACT,gGAAgG;KACnG,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;QACtB,WAAW,EACT,iGAAiG;KACpG,CAAC;IACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,wNAAwN;KAC3N,CAAC;IACF,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,oHAAoH;KACvH,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EACT,8FAA8F;KACjG,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EACT,wHAAwH;KAC3H,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,sDAAsD;KACpE,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;QAC9B,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,WAAW,EACT,iEAAiE;KACpE,CAAC;IACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,KAAK;QACd,WAAW,EACT,uHAAuH;KAC1H,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAClB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,4DAA4D;KAC1E,CAAC;CACH,CAAC;AAwCF,SAAS,UAAU,CACjB,MAAqC,EACrC,IAAY;IAEZ,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,KAAK,IAAI,4BAA4B,KAAK,IAAI,EAC9C,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,SAAS,oBAAoB,CAAC,KAAmB;IAC/C,MAAM,GAAG,GACP,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC;SAChD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;IAChC,MAAM,QAAQ,GACZ,KAAK,CAAC,eAAe,KAAK,IAAI;QAC5B,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,wBAAwB,CAAC;IAC/B,OAAO,GAAG,GAAG,UAAU,KAAK,CAAC,GAAG,wBAAwB,QAAQ,EAAE,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,OAA2B,EAC3B,IAAuB;IAEvB,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC,EAAE,CAAC;QACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAmB,EACnB,IAAiB;IAEjB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC;IAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,mEAAmE,EACnE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IACJ,CAAC;IACD,IACE,KAAK,CAAC,SAAS,KAAK,SAAS;QAC7B,KAAK,CAAC,GAAG,KAAK,SAAS;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EACnE,CAAC;QACD,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,2BAA2B,KAAK,CAAC,SAAS,gBAAgB,KAAK,CAAC,GAAG,iDAAiD,EACpH,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,KAAK,CAAC,OAAO,KAAK,SAAS;YACzB,CAAC,CAAC,2IAA2I;YAC7I,CAAC,CAAC,kFAAkF,EACtF,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GACR,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;IAChC,MAAM,OAAO,GACX,KAAK,CAAC,OAAO,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkB,CAAC;IACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAC3E,OAAO,EACP,EAAE,CACH,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;IAEtE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,cAAc,CACtB,eAAe,EACf,+FAA+F,MAAM,IAAI,EACzG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IACJ,CAAC;IAED,gHAAgH;IAChH,aAAa,EAAE,CAAC;IAChB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7B,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,IAAI,QAAQ;QAAE,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GACX,IAAI,IAAI,QAAQ;QACd,CAAC,CAAC,MAAM,sBAAsB,CAC1B,QAAQ,EACR,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,CACf;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CACX,0BAA0B,KAAK,yBAAyB,MAAM,6DAA6D,CAC5H,CAAC;IACJ,CAAC;IAED,4GAA4G;IAC5G,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,IAAI,WAAgC,CAAC;IACrC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO;YAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,QAAyB,CAAC;QAC9B,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,KAAK,IAAI,OAAO,SAAS,IAAI,EAAE,CAAC,CAAC;YACrE,QAAQ,GAAG,MAAM,iBAAiB,CAAC;gBACjC,MAAM;gBACN,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;gBAChC,QAAQ;gBACR,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,QAAQ,CAAC,aAAa,OAAO,SAAS,IAAI,EAAE,CAAC,CAAC;YACvD,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAQ,EAAE,CAAC,CAAC;YAC9D,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1C,QAAQ,CAAC,QAAQ,CACf,cAAc,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,GAAG,CACtE,CAAC;QACJ,CAAC;QAED,kHAAkH;QAClH,wGAAwG;QACxG,MAAM,YAAY,GAChB,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,YAAY,KAAK,KAAK,CAAC;QACnC,iHAAiH;QACjH,mHAAmH;QACnH,iHAAiH;QACjH,oCAAoC;QACpC,IAAI,SAA6B,CAAC;QAClC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,SAAS;gBACP,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,QAAQ,CAAC,QAAS,CAAC;YAC/B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,oBAAoB,CAClB,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,EACzC,SAAS,EACT,iBAAiB,CAClB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,SAAS,CACb,MAAM,CAAC,MAAM,EACb,WAAW,CAAC,MAAM,EAAE;YAClB,MAAM;YACN,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,SAAS;SACpB,CAAC,CACH,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAE9D,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACxC,MAAM,SAAS,CACb,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EACvE,GAAG,CACJ,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,CACb,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,EACnE,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1C,MAAM,SAAS,CACb,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC,EACrD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAE1C,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;QAClD,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACtC,2BAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE1C,8GAA8G;QAC9G,4FAA4F;QAC5F,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,CACb,MAAM,CAAC,aAAa,EACpB,oBAAoB,CAAC;YACnB,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,GAAG;SAClB,CAAC,CACH,CAAC;QACF,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,KAAK,GAAmB;YAC5B,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG;YACjC,YAAY;YACZ,MAAM,EAAE,QAAQ;gBACd,CAAC,CAAC;oBACE,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B;gBACH,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;YACvB,IAAI;YACJ,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,WAAW,EAAE,EAAE;oBACf,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,GAAG,CAAC,QAAQ,CAAC,WAAW;wBACtB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAa,EAAE;wBAChC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAS,EAAE,CAAC;iBACtC;aACF;YACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;SACtD,CAAC;QACF,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,QAAQ,GAAG,IAAI,CAAC;QAEhB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,KAAK,WAAW,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;gBACxC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,0FAA0F;gBAC1F,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,IAAI,cAAc,CACtB,cAAc,EACd,OAAO,KAAK,8BAA8B,GAAG,kBAAkB,KAAK,CAAC,gBAAgB,CAAC,sCAAsC,EAC5H;oBACE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE;oBAC5C,WAAW,EAAE;wBACX;4BACE,OAAO,EAAE,qBAAqB;4BAC9B,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC;yBACjC;wBACD,GAAG,WAAW,CAAC,MAAM,EAAE,4BAA4B,CAAC;qBACrD;iBACF,CACF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CACzC,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAC9C,CAAC;QACF,qGAAqG;QACrG,MAAM,YAAY,GAAG,aAAa,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;QACpF,MAAM,YAAY,GAAG;YACnB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACtC,aAAa;SACd,CAAC;QACF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,GAAG;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG;gBACjC,OAAO;gBACP,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,SAAS;gBACT,SAAS,EAAE,GAAG;gBACd,IAAI;gBACJ,OAAO,EAAE,KAAK,CAAC,KAAK;gBACpB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY;gBACZ,YAAY;aACb;YACD,OAAO,EAAE;gBACP,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,oBAAoB,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG;gBACzH,eAAe,SAAS,CAAC,GAAG,EAAE;gBAC9B,eAAe,QAAQ,CAAC,EAAE,EAAE;gBAC5B,eAAe,oBAAoB,CAAC,YAAY,CAAC,EAAE;gBACnD,wBAAwB,IAAI,EAAE;gBAC9B,YAAY;gBACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;gBACvD,wFAAwF;gBACxF,WAAW,MAAM,cAAc,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,iDAAiD;aACzG;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iGAAiG;QACjG,mEAAmE;QACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CACX,gDAAgD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sCAAsC,IAAI,SAAS,CAC9H,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { installerCommandLine } from "../lib/invocation.js";
|
|
|
12
12
|
import { acquireLock } from "../lib/lock.js";
|
|
13
13
|
import { checkPlatform, checkPm2, currentNodeMajor } from "../lib/prechecks.js";
|
|
14
14
|
import { checkPm2Ownership, errorLogCommandLine, errorLogTail, startApp, stopApp, } from "../lib/service.js";
|
|
15
|
-
import {
|
|
15
|
+
import { nodeRebuildAdvice } from "../lib/source.js";
|
|
16
16
|
import { fixedMountPathOf, readState, resolveReleaseRef, writeState, } from "../lib/state.js";
|
|
17
17
|
export const ROLLBACK_FLAGS = {
|
|
18
18
|
dir: Flags.string({
|
|
@@ -100,7 +100,6 @@ export async function rollback(input, deps) {
|
|
|
100
100
|
// Read under the lock: a run that waited on it must see what the previous one wrote.
|
|
101
101
|
const state = await readState(layout);
|
|
102
102
|
checkPlatform();
|
|
103
|
-
const subject = subjectOf(state);
|
|
104
103
|
const from = state.current;
|
|
105
104
|
const interrupted = state.pending;
|
|
106
105
|
const requested = flags.to ?? defaultRollbackTarget(state);
|
|
@@ -118,7 +117,7 @@ export async function rollback(input, deps) {
|
|
|
118
117
|
return {
|
|
119
118
|
status: 'success-noop',
|
|
120
119
|
result: { directory: root, current: from, rolledBack: false },
|
|
121
|
-
summary: [
|
|
120
|
+
summary: [`The application is already on ${from}.`],
|
|
122
121
|
};
|
|
123
122
|
}
|
|
124
123
|
if (!record || !existsSync(releaseDir(layout, record.id))) {
|
|
@@ -163,10 +162,8 @@ export async function rollback(input, deps) {
|
|
|
163
162
|
reporter.warn(`The databases may have been migrated past ${target}, and app-installer holds no copy of them from before (an external database, or a backup that was cut short). Restore them from your own backup if ${target} misbehaves.`);
|
|
164
163
|
}
|
|
165
164
|
await confirm([
|
|
166
|
-
`Roll
|
|
167
|
-
|
|
168
|
-
? `${capitalize(subject)} and every application it hosts stop while the release switches.`
|
|
169
|
-
: `${capitalize(subject)} stops while the release switches.`,
|
|
165
|
+
`Roll the application at ${root} back from ${from} to ${target}.`,
|
|
166
|
+
'The application stops while the release switches.',
|
|
170
167
|
restoreFrom
|
|
171
168
|
? `The SQLite databases are restored from ${restoreFrom}: whatever was written since that upgrade is lost.`
|
|
172
169
|
: 'The databases are left as they are; rolling back does not undo migrations.',
|
|
@@ -221,8 +218,8 @@ export async function rollback(input, deps) {
|
|
|
221
218
|
await writeState(layout, state);
|
|
222
219
|
const reason = failure instanceof Error ? ` (${failure.message})` : '';
|
|
223
220
|
throw new InstallerError('ROLLBACK_FAILED', switched
|
|
224
|
-
? `${target} did not come back${reason}.
|
|
225
|
-
: `${restoreFrom && !restored ? 'Restoring the databases' : 'Switching to ' + target} failed${reason};
|
|
221
|
+
? `${target} did not come back${reason}. The application is down.`
|
|
222
|
+
: `${restoreFrom && !restored ? 'Restoring the databases' : 'Switching to ' + target} failed${reason}; the application is stopped and still on ${from}.`, {
|
|
226
223
|
exitCode: EXIT_ROLLBACK_FAILED,
|
|
227
224
|
details: {
|
|
228
225
|
log: await errorLogTail(layout),
|
|
@@ -272,8 +269,8 @@ export async function rollback(input, deps) {
|
|
|
272
269
|
},
|
|
273
270
|
summary: [
|
|
274
271
|
interrupted
|
|
275
|
-
? `Recovered from the interrupted ${interrupted.action} (${interrupted.from} to ${interrupted.to});
|
|
276
|
-
: `Rolled
|
|
272
|
+
? `Recovered from the interrupted ${interrupted.action} (${interrupted.from} to ${interrupted.to}); the application runs ${target}.`
|
|
273
|
+
: `Rolled the application back from ${from} to ${target}.`,
|
|
277
274
|
restored
|
|
278
275
|
? ` Databases restored from ${restoreFrom}`
|
|
279
276
|
: ' Databases left as they were',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,OAAO,GAER,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -8,17 +8,12 @@ import { formatCommandLine, quoteForShell } from '@nocobase/cli-envelope';
|
|
|
8
8
|
import { installerCommand } from "../lib/invocation.js";
|
|
9
9
|
import { layoutOf, releaseDir } from "../lib/layout.js";
|
|
10
10
|
import { currentNodeMajor } from "../lib/prechecks.js";
|
|
11
|
-
import {
|
|
12
|
-
import { capitalize, nodeRebuildAdvice, subjectOf, templateOf, } from "../lib/source.js";
|
|
11
|
+
import { nodeRebuildAdvice } from "../lib/source.js";
|
|
13
12
|
import { findRelease, readState } from "../lib/state.js";
|
|
14
13
|
export const STATUS_FLAGS = {
|
|
15
14
|
dir: Flags.string({
|
|
16
15
|
description: 'Installation root managed by app-installer. Defaults to the current directory.',
|
|
17
16
|
}),
|
|
18
|
-
offline: Flags.boolean({
|
|
19
|
-
default: false,
|
|
20
|
-
description: 'Skip asking the registry for a newer version of a template installation.',
|
|
21
|
-
}),
|
|
22
17
|
json: Flags.boolean({
|
|
23
18
|
default: false,
|
|
24
19
|
description: 'Print one JSON result on stdout.',
|
|
@@ -48,8 +43,6 @@ export async function status(input, deps) {
|
|
|
48
43
|
const root = path.resolve(deps.cwd ?? process.cwd(), input.flags.dir ?? '.');
|
|
49
44
|
const layout = layoutOf(root);
|
|
50
45
|
const state = await readState(layout);
|
|
51
|
-
const subject = subjectOf(state);
|
|
52
|
-
const template = templateOf(state);
|
|
53
46
|
const env = await readAppEnv(layout);
|
|
54
47
|
const link = await readCurrent(layout);
|
|
55
48
|
const releases = [];
|
|
@@ -68,7 +61,7 @@ export async function status(input, deps) {
|
|
|
68
61
|
const backups = (await readdir(layout.backupsDir).catch(() => [])).sort();
|
|
69
62
|
const endpoints = endpointsOf(env);
|
|
70
63
|
if (endpoints.port === null) {
|
|
71
|
-
deps.reporter.warn(`APP_SERVER_PORT in app.env is "${env.APP_SERVER_PORT ?? ''}", which is not a port number;
|
|
64
|
+
deps.reporter.warn(`APP_SERVER_PORT in app.env is "${env.APP_SERVER_PORT ?? ''}", which is not a port number; the application cannot listen on it.`);
|
|
72
65
|
}
|
|
73
66
|
const url = healthUrl(env);
|
|
74
67
|
const healthy = await checkHealth(url, deps.fetchImpl);
|
|
@@ -93,15 +86,6 @@ export async function status(input, deps) {
|
|
|
93
86
|
.join(' ');
|
|
94
87
|
deps.reporter.warn(`The current release was built for Node ${currentRelease?.buildTarget.nodeMajor ?? '?'}, but this machine runs Node ${nodeMajor}; it will not load its native modules until a release built for this machine replaces it. ${advice}`);
|
|
95
88
|
}
|
|
96
|
-
let latest = null;
|
|
97
|
-
if (template && !input.flags.offline) {
|
|
98
|
-
try {
|
|
99
|
-
latest = await resolveTemplateVersion(state.registry, template.package, 'latest', deps.fetchImpl);
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
deps.reporter.warn(`Could not ask ${state.registry} for the latest version.`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
89
|
return {
|
|
106
90
|
status: 'success',
|
|
107
91
|
result: {
|
|
@@ -128,22 +112,15 @@ export async function status(input, deps) {
|
|
|
128
112
|
matches: nodeMatches,
|
|
129
113
|
},
|
|
130
114
|
pending: state.pending ?? null,
|
|
131
|
-
latest,
|
|
132
|
-
updateAvailable: latest === null ? null : latest !== currentRelease?.version,
|
|
133
115
|
},
|
|
134
116
|
summary: [
|
|
135
|
-
|
|
117
|
+
`The application ${state.appName} ${currentRelease?.version ?? '?'} at ${root}`,
|
|
136
118
|
` Release ${state.current}${currentRelease ? `, built ${currentRelease.builtAt}` : ''}`,
|
|
137
|
-
|
|
119
|
+
' Source deployment archives',
|
|
138
120
|
` URL ${endpoints.url} (listening on ${endpoints.host}:${endpoints.port ?? `invalid port "${env.APP_SERVER_PORT ?? ''}"`})`,
|
|
139
121
|
` Health ${healthy ? 'ok' : 'not answering'} (${url})`,
|
|
140
122
|
` Process ${processInfo ? `${processInfo.status}, pid ${processInfo.pid}, ${processInfo.restarts} restarts` : 'not registered with pm2'} (${state.name})`,
|
|
141
123
|
` Node machine ${nodeMajor}, release ${currentRelease?.buildTarget.nodeMajor ?? '?'}${nodeMatches ? '' : ' — mismatch'}`,
|
|
142
|
-
...(latest === null
|
|
143
|
-
? []
|
|
144
|
-
: [
|
|
145
|
-
` Latest ${latest}${latest === currentRelease?.version ? ' (installed)' : ' (update available)'}`,
|
|
146
|
-
]),
|
|
147
124
|
' Releases',
|
|
148
125
|
...releases.map((release) => ` ${release.current ? '*' : ' '} ${release.id} ${formatSize(release.sizeBytes)} installed ${release.installedAt}`),
|
|
149
126
|
...(backups.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|