@ethlete/cli 3.0.0-next.17 → 3.0.0-next.19

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 (145) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/design/css-inline.d.ts +4 -0
  3. package/design/define-call.ts +228 -3
  4. package/design/web/env.d.ts +2 -1
  5. package/design/web/frame.ts +51 -6
  6. package/package.json +27 -3
  7. package/src/index.js +26 -4
  8. package/src/index.js.map +1 -1
  9. package/src/lib/api/api-context.d.ts +15 -0
  10. package/src/lib/api/api-context.js +23 -0
  11. package/src/lib/api/api-context.js.map +1 -0
  12. package/src/lib/api/api-state.d.ts +31 -0
  13. package/src/lib/api/api-state.js +80 -0
  14. package/src/lib/api/api-state.js.map +1 -0
  15. package/src/lib/api/clear.js +10 -2
  16. package/src/lib/api/clear.js.map +1 -1
  17. package/src/lib/api/definition.d.ts +37 -1
  18. package/src/lib/api/definition.js +6 -0
  19. package/src/lib/api/definition.js.map +1 -1
  20. package/src/lib/api/doctor.d.ts +16 -0
  21. package/src/lib/api/doctor.js +71 -0
  22. package/src/lib/api/doctor.js.map +1 -0
  23. package/src/lib/api/fingerprint.d.ts +18 -0
  24. package/src/lib/api/fingerprint.js +63 -0
  25. package/src/lib/api/fingerprint.js.map +1 -0
  26. package/src/lib/api/git.d.ts +2 -0
  27. package/src/lib/api/git.js +7 -1
  28. package/src/lib/api/git.js.map +1 -1
  29. package/src/lib/api/help.js +13 -0
  30. package/src/lib/api/help.js.map +1 -1
  31. package/src/lib/api/index.d.ts +3 -0
  32. package/src/lib/api/index.js +33 -17
  33. package/src/lib/api/index.js.map +1 -1
  34. package/src/lib/api/load-definitions.js +3 -0
  35. package/src/lib/api/load-definitions.js.map +1 -1
  36. package/src/lib/api/lock.d.ts +46 -0
  37. package/src/lib/api/lock.js +152 -0
  38. package/src/lib/api/lock.js.map +1 -0
  39. package/src/lib/api/parse-argv.d.ts +12 -0
  40. package/src/lib/api/parse-argv.js +31 -0
  41. package/src/lib/api/parse-argv.js.map +1 -0
  42. package/src/lib/api/ports.js +12 -4
  43. package/src/lib/api/ports.js.map +1 -1
  44. package/src/lib/api/run-locked.d.ts +14 -0
  45. package/src/lib/api/run-locked.js +70 -0
  46. package/src/lib/api/run-locked.js.map +1 -0
  47. package/src/lib/api/run-ready.d.ts +60 -0
  48. package/src/lib/api/run-ready.js +220 -0
  49. package/src/lib/api/run-ready.js.map +1 -0
  50. package/src/lib/api/run-snapshot.d.ts +33 -0
  51. package/src/lib/api/run-snapshot.js +132 -0
  52. package/src/lib/api/run-snapshot.js.map +1 -0
  53. package/src/lib/api/run-status.d.ts +9 -0
  54. package/src/lib/api/run-status.js +55 -0
  55. package/src/lib/api/run-status.js.map +1 -0
  56. package/src/lib/api/run.d.ts +1 -1
  57. package/src/lib/api/run.js +134 -12
  58. package/src/lib/api/run.js.map +1 -1
  59. package/src/lib/api/snapshot.d.ts +63 -0
  60. package/src/lib/api/snapshot.js +140 -0
  61. package/src/lib/api/snapshot.js.map +1 -0
  62. package/src/lib/api/validate-definition.d.ts +7 -0
  63. package/src/lib/api/validate-definition.js +79 -0
  64. package/src/lib/api/validate-definition.js.map +1 -0
  65. package/src/lib/auth/auth-command.js +10 -2
  66. package/src/lib/auth/auth-command.js.map +1 -1
  67. package/src/lib/auth/gitlab-token.js +12 -4
  68. package/src/lib/auth/gitlab-token.js.map +1 -1
  69. package/src/lib/auth/index.js +18 -5
  70. package/src/lib/auth/index.js.map +1 -1
  71. package/src/lib/config/index.js +16 -3
  72. package/src/lib/config/index.js.map +1 -1
  73. package/src/lib/design/browser.d.ts +9 -0
  74. package/src/lib/design/browser.js +37 -0
  75. package/src/lib/design/browser.js.map +1 -0
  76. package/src/lib/design/calls-tsconfig.js +6 -2
  77. package/src/lib/design/calls-tsconfig.js.map +1 -1
  78. package/src/lib/design/check.d.ts +2 -1
  79. package/src/lib/design/check.js +151 -69
  80. package/src/lib/design/check.js.map +1 -1
  81. package/src/lib/design/design-command.d.ts +1 -1
  82. package/src/lib/design/design-command.js +58 -3
  83. package/src/lib/design/design-command.js.map +1 -1
  84. package/src/lib/design/index.js +19 -6
  85. package/src/lib/design/index.js.map +1 -1
  86. package/src/lib/design/legacy.d.ts +9 -0
  87. package/src/lib/design/legacy.js +52 -0
  88. package/src/lib/design/legacy.js.map +1 -0
  89. package/src/lib/design/missing-package.d.ts +2 -0
  90. package/src/lib/design/missing-package.js +15 -0
  91. package/src/lib/design/missing-package.js.map +1 -0
  92. package/src/lib/design/new-call.d.ts +11 -0
  93. package/src/lib/design/new-call.js +124 -0
  94. package/src/lib/design/new-call.js.map +1 -0
  95. package/src/lib/design/paths.d.ts +23 -2
  96. package/src/lib/design/paths.js +1 -1
  97. package/src/lib/design/paths.js.map +1 -1
  98. package/src/lib/design/render-fields.d.ts +29 -0
  99. package/src/lib/design/render-fields.js +31 -0
  100. package/src/lib/design/render-fields.js.map +1 -0
  101. package/src/lib/design/render-packages.d.ts +69 -0
  102. package/src/lib/design/render-packages.js +168 -0
  103. package/src/lib/design/render-packages.js.map +1 -0
  104. package/src/lib/design/render-worker.d.ts +1 -0
  105. package/src/lib/design/render-worker.js +149 -0
  106. package/src/lib/design/render-worker.js.map +1 -0
  107. package/src/lib/design/render.d.ts +23 -0
  108. package/src/lib/design/render.js +119 -0
  109. package/src/lib/design/render.js.map +1 -0
  110. package/src/lib/design/serve.d.ts +1 -1
  111. package/src/lib/design/serve.js +49 -12
  112. package/src/lib/design/serve.js.map +1 -1
  113. package/src/lib/design/ssr-shims.d.ts +10 -0
  114. package/src/lib/design/ssr-shims.js +128 -0
  115. package/src/lib/design/ssr-shims.js.map +1 -0
  116. package/src/lib/design/stamp.d.ts +16 -0
  117. package/src/lib/design/stamp.js +77 -0
  118. package/src/lib/design/stamp.js.map +1 -0
  119. package/src/lib/design/status.d.ts +33 -0
  120. package/src/lib/design/status.js +58 -0
  121. package/src/lib/design/status.js.map +1 -0
  122. package/src/lib/design/system-use.d.ts +23 -0
  123. package/src/lib/design/system-use.js +61 -0
  124. package/src/lib/design/system-use.js.map +1 -0
  125. package/src/lib/doctor/index.js +15 -2
  126. package/src/lib/doctor/index.js.map +1 -1
  127. package/src/lib/index.js +22 -9
  128. package/src/lib/index.js.map +1 -1
  129. package/src/lib/release.js +10 -2
  130. package/src/lib/release.js.map +1 -1
  131. package/src/lib/update/agent-setup.js +11 -3
  132. package/src/lib/update/agent-setup.js.map +1 -1
  133. package/src/lib/update/ai.js +13 -5
  134. package/src/lib/update/ai.js.map +1 -1
  135. package/src/lib/update/index.js +32 -19
  136. package/src/lib/update/index.js.map +1 -1
  137. package/src/lib/update/registry.js +10 -2
  138. package/src/lib/update/registry.js.map +1 -1
  139. package/src/lib/update/update-command.js +16 -8
  140. package/src/lib/update/update-command.js.map +1 -1
  141. package/src/lib/utils.js +11 -3
  142. package/src/lib/utils.js.map +1 -1
  143. package/design/web/host.css +0 -494
  144. package/design/web/host.ts +0 -445
  145. package/design/web/index.html +0 -11
@@ -1,14 +1,24 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.runApiCommand = void 0;
4
- const tslib_1 = require("tslib");
5
13
  const child_process_1 = require("child_process");
6
14
  const compose_1 = require("./compose");
7
15
  const definition_1 = require("./definition");
8
16
  const git_1 = require("./git");
9
17
  const help_1 = require("./help");
10
18
  const resolve_checkout_1 = require("./resolve-checkout");
19
+ const doctor_1 = require("./doctor");
11
20
  const setup_1 = require("./setup");
21
+ const parse_argv_1 = require("./parse-argv");
12
22
  const suggest_1 = require("./suggest");
13
23
  const clone_1 = require("./clone");
14
24
  const git_2 = require("./git");
@@ -20,12 +30,25 @@ const local_config_1 = require("../config/local-config");
20
30
  const clear_1 = require("./clear");
21
31
  const ports_1 = require("./ports");
22
32
  const state_1 = require("./state");
33
+ const api_state_1 = require("./api-state");
34
+ const run_locked_1 = require("./run-locked");
35
+ const run_snapshot_1 = require("./run-snapshot");
36
+ const run_status_1 = require("./run-status");
37
+ const run_ready_1 = require("./run-ready");
38
+ const api_context_1 = require("./api-context");
23
39
  const confirmFix = (options) => (0, utils_1.confirm)(Object.assign(Object.assign({}, options), { defaultsToYes: true }));
24
- const definedEntries = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
25
40
  const namedApis = (argument) => argument
26
41
  .split(',')
27
42
  .map((name) => name.trim())
28
43
  .filter((name) => name !== '');
44
+ const parseWait = (wait) => {
45
+ if (wait === undefined)
46
+ return { ok: true, seconds: undefined };
47
+ const seconds = Number(wait);
48
+ return wait.trim() !== '' && Number.isFinite(seconds) && seconds >= 0
49
+ ? { ok: true, seconds }
50
+ : { ok: false };
51
+ };
29
52
  const composeProjectHasContainers = (composePath) => {
30
53
  var _a;
31
54
  const tool = (0, compose_1.resolveComposeTool)();
@@ -43,9 +66,9 @@ const takeComposeProjectDown = (composePath) => {
43
66
  });
44
67
  return !result.error && result.status === 0;
45
68
  };
46
- const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
69
+ const runOneApiCommand = (options) => __awaiter(void 0, void 0, void 0, function* () {
47
70
  var _a, _b, _c, _d, _e, _f, _g, _h;
48
- const { argv, root, invocation, command, name, api, service, seedSteps: steps } = options;
71
+ const { argv, root, invocation, command, name, api, service, seedSteps: steps, commandArgs = [] } = options;
49
72
  const exposeOnLan = argv.includes('--host');
50
73
  const isGitCommand = definition_1.GIT_API_COMMANDS.includes(command);
51
74
  const checkout = (0, resolve_checkout_1.resolveApiCheckout)({
@@ -131,7 +154,7 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
131
154
  }
132
155
  const { engine, compose } = tool;
133
156
  const [binary, ...composePrefix] = compose;
134
- const env = Object.assign(Object.assign(Object.assign({}, (0, compose_1.engineEnv)(engine)), process.env), definedEntries((_b = (_a = api.env) === null || _a === void 0 ? void 0 : _a.call(api)) !== null && _b !== void 0 ? _b : {}));
157
+ const env = Object.assign(Object.assign(Object.assign({}, (0, compose_1.engineEnv)(engine)), process.env), (0, api_context_1.definedEntries)((_b = (_a = api.env) === null || _a === void 0 ? void 0 : _a.call(api)) !== null && _b !== void 0 ? _b : {}));
135
158
  let exitCode = 0;
136
159
  const runCompose = (...composeArgs) => {
137
160
  var _a;
@@ -145,14 +168,14 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
145
168
  };
146
169
  const call = { tool, cwd, env };
147
170
  /** Ports another program already holds. Empty while this project has containers, because `up` then reconciles its own. */
148
- const takenPorts = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
171
+ const takenPorts = () => __awaiter(void 0, void 0, void 0, function* () {
149
172
  const running = (0, compose_1.composeContainerIds)(call);
150
173
  if (running === undefined || running.length > 0)
151
174
  return [];
152
175
  const config = (0, compose_1.composeOutput)(Object.assign(Object.assign({}, call), { args: ['config'] }));
153
176
  return config === undefined ? [] : (0, ports_1.portsInUse)((0, ports_1.publishedPorts)({ config, services: api.services }));
154
177
  });
155
- const freePorts = (taken) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
178
+ const freePorts = (taken) => __awaiter(void 0, void 0, void 0, function* () {
156
179
  var _a;
157
180
  const containers = (0, compose_1.containerStates)(engine);
158
181
  const holders = taken.map((port) => {
@@ -239,6 +262,9 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
239
262
  `A host firewall can still block port ${api.port}.`);
240
263
  }
241
264
  }
265
+ else if (command === 'doctor') {
266
+ exitCode = (0, doctor_1.runDoctor)({ name, api, tool, cwd, env, invocation, fix: argv.includes('--fix') }).ok ? 0 : 1;
267
+ }
242
268
  else if (command === 'down') {
243
269
  runCompose('down');
244
270
  }
@@ -254,6 +280,16 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
254
280
  else
255
281
  runCompose('exec', target, 'bash');
256
282
  }
283
+ else if (command === 'exec') {
284
+ if (service === undefined || !api.services.includes(service)) {
285
+ console.error(service === undefined
286
+ ? `Name the service to run in: ${invocation} exec ${name} <service> -- <command>`
287
+ : `The ${name} API does not start "${service}".${(0, suggest_1.didYouMean)(service, api.services)}`);
288
+ console.error(`Services: ${api.services.join(', ')}`);
289
+ return 1;
290
+ }
291
+ runCompose('exec', '-T', service, ...commandArgs);
292
+ }
257
293
  else if (steps !== undefined) {
258
294
  const directory = (0, seeds_1.containerSeedDirectory)(name);
259
295
  const copied = (0, child_process_1.spawnSync)(binary, [...composePrefix, ...(0, seeds_1.seedCopyArgs)(api.execService, directory)], {
@@ -279,7 +315,7 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
279
315
  }
280
316
  else {
281
317
  const execCommand = (_h = (_g = api.exec) === null || _g === void 0 ? void 0 : _g[command]) !== null && _h !== void 0 ? _h : [];
282
- runCompose('exec', api.execService, ...execCommand);
318
+ runCompose('exec', ...(process.stdin.isTTY === true ? [] : ['-T']), api.execService, ...execCommand);
283
319
  if (exitCode !== 0) {
284
320
  const install = (0, definition_1.dependencyInstallCommandName)(api);
285
321
  if ((0, definition_1.installsDependencies)(execCommand)) {
@@ -293,9 +329,14 @@ const runOneApiCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
293
329
  }
294
330
  return exitCode;
295
331
  });
296
- const runApiCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ apis, argv, root = process.cwd(), invocation = 'et api', }) {
297
- var _b;
298
- const [command, nameArgument, service] = argv.filter((arg) => !arg.startsWith('-'));
332
+ const runApiCommand = (_a) => __awaiter(void 0, [_a], void 0, function* ({ apis, argv: rawArgv, root = process.cwd(), invocation = 'et api', }) {
333
+ var _b, _c, _d;
334
+ const parsed = (0, parse_argv_1.parseApiArgv)(rawArgv);
335
+ const argv = parsed.head;
336
+ const positionals = parsed.positionals[0] === 'snapshot' && ['save', 'restore'].includes((_b = parsed.positionals[1]) !== null && _b !== void 0 ? _b : '')
337
+ ? ['snapshot', parsed.positionals[2], parsed.positionals[1], parsed.positionals[3]]
338
+ : parsed.positionals;
339
+ const [command, nameArgument, service] = positionals;
299
340
  const wantsHelp = argv.includes('--help') || argv.includes('-h') || command === 'help';
300
341
  if (wantsHelp && nameArgument === undefined) {
301
342
  console.log((0, help_1.apiHelp)(apis, invocation));
@@ -317,6 +358,31 @@ const runApiCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
317
358
  console.error((0, help_1.apiHelp)(apis, invocation));
318
359
  return 1;
319
360
  }
361
+ if (command === 'exec' && !wantsHelp) {
362
+ if (names.length > 1) {
363
+ console.error(`exec runs in one API at a time, but ${names.length} were named.`);
364
+ return 1;
365
+ }
366
+ if (parsed.rest === undefined || parsed.rest.length === 0) {
367
+ console.error(`exec needs a command after "--": ${invocation} exec ${names[0]} <service> -- <command> [<args>...]`);
368
+ return 1;
369
+ }
370
+ }
371
+ const runUsage = `${invocation} run <api> --lock [--wait <seconds>] -- <command> [<args>...]`;
372
+ if (command === 'run' && !wantsHelp) {
373
+ if (names.length > 1) {
374
+ console.error(`run locks one API at a time, but ${names.length} were named.`);
375
+ return 1;
376
+ }
377
+ if (!argv.includes('--lock') || parsed.rest === undefined || parsed.rest.length === 0) {
378
+ console.error(`run needs --lock and a command after "--": ${runUsage}`);
379
+ return 1;
380
+ }
381
+ if (!parseWait(parsed.wait).ok) {
382
+ console.error(`--wait takes a number of seconds: ${runUsage}`);
383
+ return 1;
384
+ }
385
+ }
320
386
  const known = Object.keys(apis);
321
387
  const unknown = names.find((candidate) => !Object.prototype.hasOwnProperty.call(apis, candidate));
322
388
  if (unknown !== undefined) {
@@ -353,6 +419,56 @@ const runApiCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
353
419
  }
354
420
  if (command === 'clear')
355
421
  return clear(names);
422
+ if (command === 'run') {
423
+ const [target] = targets;
424
+ if (target === undefined)
425
+ return 1;
426
+ const state = (0, api_context_1.stateDirectoryOf)(Object.assign({ root }, target));
427
+ if (!state.ok) {
428
+ console.error((0, resolve_checkout_1.checkoutProblem)({ failure: state, name: target.name, invocation }));
429
+ return 1;
430
+ }
431
+ return (0, run_locked_1.runLocked)({
432
+ directory: state.directory,
433
+ command: (_c = parsed.rest) !== null && _c !== void 0 ? _c : [],
434
+ cwd: root,
435
+ wait: parseWait(parsed.wait).seconds,
436
+ });
437
+ }
438
+ if (command === 'ready') {
439
+ const [target] = targets;
440
+ if (target === undefined)
441
+ return 1;
442
+ if (targets.length > 1) {
443
+ console.error(`ready works on one API at a time, but ${targets.length} were named.`);
444
+ return 1;
445
+ }
446
+ if (!parseWait(parsed.wait).ok) {
447
+ console.error(`--wait takes a number of seconds.`);
448
+ return 1;
449
+ }
450
+ const single = { argv, root, invocation, name: target.name, api: target.api, service: undefined };
451
+ return (0, run_ready_1.runReadyCommand)(Object.assign(Object.assign({ root }, target), { invocation, profile: parsed.profile, wait: parseWait(parsed.wait).seconds, up: () => runOneApiCommand(Object.assign(Object.assign({}, single), { command: 'up' })), runSeeds: (unit) => unit.kind === 'exec'
452
+ ? runOneApiCommand(Object.assign(Object.assign({}, single), { command: unit.name }))
453
+ : runOneApiCommand(Object.assign(Object.assign({}, single), { command: 'seed', seedSteps: unit.steps })) }));
454
+ }
455
+ if (command === 'snapshot' || command === 'status') {
456
+ const [target] = targets;
457
+ if (target === undefined)
458
+ return 1;
459
+ if (targets.length > 1) {
460
+ console.error(`${command} works on one API at a time, but ${targets.length} were named.`);
461
+ return 1;
462
+ }
463
+ if (command === 'status') {
464
+ return (0, run_status_1.runStatusCommand)(Object.assign(Object.assign({ root }, target), { invocation, profile: parsed.profile }));
465
+ }
466
+ if (!parseWait(parsed.wait).ok) {
467
+ console.error(`--wait takes a number of seconds.`);
468
+ return 1;
469
+ }
470
+ return (0, run_snapshot_1.runSnapshotCommand)(Object.assign(Object.assign({ root }, target), { invocation, action: service, snapshotName: positionals[3], profile: parsed.profile, wait: parseWait(parsed.wait).seconds }));
471
+ }
356
472
  const stepsByApi = new Map();
357
473
  const isSeedCommand = seeds_1.SEED_API_COMMANDS.some((candidate) => candidate === command);
358
474
  for (const { name } of isSeedCommand ? targets.filter(({ api }) => { var _a; return !((_a = api.exec) === null || _a === void 0 ? void 0 : _a[command]); }) : []) {
@@ -385,7 +501,7 @@ const runApiCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
385
501
  let exitCode = 0;
386
502
  for (const { name, api } of targets) {
387
503
  const seedStepsOfApi = stepsByApi.get(name);
388
- if (isSeedCommand && !((_b = api.exec) === null || _b === void 0 ? void 0 : _b[command]) && seedStepsOfApi === undefined)
504
+ if (isSeedCommand && !((_d = api.exec) === null || _d === void 0 ? void 0 : _d[command]) && seedStepsOfApi === undefined)
389
505
  continue;
390
506
  const code = yield runOneApiCommand({
391
507
  argv,
@@ -396,7 +512,13 @@ const runApiCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
396
512
  api,
397
513
  service,
398
514
  seedSteps: seedStepsOfApi,
515
+ commandArgs: parsed.rest,
399
516
  });
517
+ if (isSeedCommand) {
518
+ const state = (0, api_context_1.stateDirectoryOf)({ root, name, api });
519
+ if (state.ok)
520
+ (0, api_state_1.markApiStateDirty)(state.directory);
521
+ }
400
522
  if (code !== 0)
401
523
  exitCode = code;
402
524
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { ApiProfile } from './definition';
2
+ export type ApiSnapshotConfig = NonNullable<ApiProfile['snapshot']>;
3
+ /** How to reach the container engine: the compose binary with its fixed arguments, in the API's compose directory. */
4
+ export type ComposeInvocation = {
5
+ binary: string;
6
+ prefix: string[];
7
+ cwd: string;
8
+ env: NodeJS.ProcessEnv;
9
+ };
10
+ export declare const SNAPSHOT_NAME: RegExp;
11
+ export declare const snapshotsDirectory: (root: string, api: string) => string;
12
+ export declare const snapshotFileName: (options: {
13
+ name: string;
14
+ fingerprint: string;
15
+ }) => string;
16
+ export declare const snapshotFilePath: (options: {
17
+ root: string;
18
+ api: string;
19
+ name: string;
20
+ fingerprint: string;
21
+ }) => string;
22
+ /** The snapshot files of one API, or only the ones made for `fingerprint`. */
23
+ export declare const listSnapshots: (options: {
24
+ root: string;
25
+ api: string;
26
+ fingerprint?: string;
27
+ }) => string[];
28
+ /** Pipes `producer`'s stdout through gzip into `file`, which appears only when the producer exits 0. */
29
+ export declare const pipeToGzipFile: (options: {
30
+ command: string;
31
+ args: string[];
32
+ cwd?: string;
33
+ env?: NodeJS.ProcessEnv;
34
+ file: string;
35
+ }) => Promise<number>;
36
+ /** Pipes the gunzipped `file` into the stdin of `consumer` and returns its exit code. */
37
+ export declare const pipeFromGzipFile: (options: {
38
+ command: string;
39
+ args: string[];
40
+ cwd?: string;
41
+ env?: NodeJS.ProcessEnv;
42
+ file: string;
43
+ }) => Promise<number>;
44
+ /** Dumps the profile's databases into `file`. Safe to call while holding the API lock. */
45
+ export declare const saveSnapshot: (options: {
46
+ file: string;
47
+ snapshot: ApiSnapshotConfig;
48
+ compose: ComposeInvocation;
49
+ }) => Promise<number>;
50
+ /**
51
+ * Loads `file` into the profile's databases. With `state`, a success records the API as clean for that
52
+ * profile and fingerprint and a failure marks it dirty. Safe to call while holding the API lock.
53
+ */
54
+ export declare const restoreSnapshot: (options: {
55
+ file: string;
56
+ snapshot: ApiSnapshotConfig;
57
+ compose: ComposeInvocation;
58
+ state?: {
59
+ directory: string;
60
+ profile: string;
61
+ fingerprint: string;
62
+ };
63
+ }) => Promise<number>;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.restoreSnapshot = exports.saveSnapshot = exports.pipeFromGzipFile = exports.pipeToGzipFile = exports.listSnapshots = exports.snapshotFilePath = exports.snapshotFileName = exports.snapshotsDirectory = exports.SNAPSHOT_NAME = void 0;
13
+ const child_process_1 = require("child_process");
14
+ const crypto_1 = require("crypto");
15
+ const fs_1 = require("fs");
16
+ const path_1 = require("path");
17
+ const promises_1 = require("stream/promises");
18
+ const zlib_1 = require("zlib");
19
+ const api_state_1 = require("./api-state");
20
+ const clone_1 = require("./clone");
21
+ const seeds_1 = require("./seeds");
22
+ const SNAPSHOT_SUFFIX = '.sql.gz';
23
+ exports.SNAPSHOT_NAME = /^[\w.-]+$/;
24
+ const snapshotsDirectory = (root, api) => (0, path_1.join)(root, clone_1.DEFAULT_CHECKOUT_DIR, 'snapshots', api);
25
+ exports.snapshotsDirectory = snapshotsDirectory;
26
+ const snapshotFileName = (options) => `${options.name}-${options.fingerprint}${SNAPSHOT_SUFFIX}`;
27
+ exports.snapshotFileName = snapshotFileName;
28
+ const snapshotFilePath = (options) => (0, path_1.join)((0, exports.snapshotsDirectory)(options.root, options.api), (0, exports.snapshotFileName)(options));
29
+ exports.snapshotFilePath = snapshotFilePath;
30
+ /** The snapshot files of one API, or only the ones made for `fingerprint`. */
31
+ const listSnapshots = (options) => {
32
+ const directory = (0, exports.snapshotsDirectory)(options.root, options.api);
33
+ if (!(0, fs_1.existsSync)(directory))
34
+ return [];
35
+ return (0, fs_1.readdirSync)(directory)
36
+ .filter((file) => file.endsWith(SNAPSHOT_SUFFIX))
37
+ .filter((file) => options.fingerprint === undefined || file.endsWith(`-${options.fingerprint}${SNAPSHOT_SUFFIX}`))
38
+ .sort();
39
+ };
40
+ exports.listSnapshots = listSnapshots;
41
+ const snapshotScript = (snapshot, line) => `export DATABASES=${(0, seeds_1.shellQuote)(snapshot.databases.join(' '))}\n${line}`;
42
+ const composeExecArgs = (options) => [
43
+ ...options.compose.prefix,
44
+ 'exec',
45
+ '-T',
46
+ options.snapshot.service,
47
+ 'sh',
48
+ '-c',
49
+ snapshotScript(options.snapshot, options.line),
50
+ ];
51
+ const exitCodeOf = (child) => new Promise((resolve) => {
52
+ child.once('error', (error) => {
53
+ console.error(`Could not run ${(0, path_1.basename)(child.spawnfile)}: ${error.message}`);
54
+ resolve(127);
55
+ });
56
+ child.once('close', (code, signal) => resolve(code !== null && code !== void 0 ? code : (signal ? 128 : 1)));
57
+ });
58
+ /** Pipes `producer`'s stdout through gzip into `file`, which appears only when the producer exits 0. */
59
+ const pipeToGzipFile = (options) => __awaiter(void 0, void 0, void 0, function* () {
60
+ const { command, args, cwd, env, file } = options;
61
+ const temporary = `${file}.${(0, crypto_1.randomUUID)()}.tmp`;
62
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(file), { recursive: true });
63
+ const child = (0, child_process_1.spawn)(command, args, { cwd, env, stdio: ['ignore', 'pipe', 'inherit'] });
64
+ const code = exitCodeOf(child);
65
+ const written = child.stdout
66
+ ? (0, promises_1.pipeline)(child.stdout, (0, zlib_1.createGzip)(), (0, fs_1.createWriteStream)(temporary)).then(() => true, () => false)
67
+ : Promise.resolve(false);
68
+ const [exitCode, complete] = yield Promise.all([code, written]);
69
+ if (exitCode === 0 && complete) {
70
+ (0, fs_1.renameSync)(temporary, file);
71
+ return 0;
72
+ }
73
+ (0, fs_1.rmSync)(temporary, { force: true });
74
+ return exitCode === 0 ? 1 : exitCode;
75
+ });
76
+ exports.pipeToGzipFile = pipeToGzipFile;
77
+ /** Pipes the gunzipped `file` into the stdin of `consumer` and returns its exit code. */
78
+ const pipeFromGzipFile = (options) => __awaiter(void 0, void 0, void 0, function* () {
79
+ const { command, args, cwd, env, file } = options;
80
+ const child = (0, child_process_1.spawn)(command, args, { cwd, env, stdio: ['pipe', 'inherit', 'inherit'] });
81
+ const code = exitCodeOf(child);
82
+ const read = child.stdin
83
+ ? (0, promises_1.pipeline)((0, fs_1.createReadStream)(file), (0, zlib_1.createGunzip)(), child.stdin).then(() => true, () => false)
84
+ : Promise.resolve(false);
85
+ const [exitCode, complete] = yield Promise.all([code, read]);
86
+ return exitCode === 0 && !complete ? 1 : exitCode;
87
+ });
88
+ exports.pipeFromGzipFile = pipeFromGzipFile;
89
+ /** Dumps the profile's databases into `file`. Safe to call while holding the API lock. */
90
+ const saveSnapshot = (options) => __awaiter(void 0, void 0, void 0, function* () {
91
+ const { file, snapshot, compose } = options;
92
+ const code = yield (0, exports.pipeToGzipFile)({
93
+ command: compose.binary,
94
+ args: composeExecArgs({ compose, snapshot, line: snapshot.save }),
95
+ cwd: compose.cwd,
96
+ env: compose.env,
97
+ file,
98
+ });
99
+ if (code !== 0)
100
+ console.error(`Saving the snapshot failed with exit code ${code}. Nothing was written to ${file}.`);
101
+ return code;
102
+ });
103
+ exports.saveSnapshot = saveSnapshot;
104
+ /**
105
+ * Loads `file` into the profile's databases. With `state`, a success records the API as clean for that
106
+ * profile and fingerprint and a failure marks it dirty. Safe to call while holding the API lock.
107
+ */
108
+ const restoreSnapshot = (options) => __awaiter(void 0, void 0, void 0, function* () {
109
+ const { file, snapshot, compose, state } = options;
110
+ if (!(0, fs_1.existsSync)(file)) {
111
+ const directory = (0, path_1.dirname)(file);
112
+ const names = (0, fs_1.existsSync)(directory) ? (0, fs_1.readdirSync)(directory).filter((name) => name.endsWith(SNAPSHOT_SUFFIX)) : [];
113
+ console.error(names.length === 0
114
+ ? `No snapshot at ${file}, and none exist for this API.`
115
+ : `No snapshot at ${file}. These exist:\n\n${names.map((name) => ` ${name}`).join('\n')}`);
116
+ return 1;
117
+ }
118
+ const code = yield (0, exports.pipeFromGzipFile)({
119
+ command: compose.binary,
120
+ args: composeExecArgs({ compose, snapshot, line: snapshot.restore }),
121
+ cwd: compose.cwd,
122
+ env: compose.env,
123
+ file,
124
+ });
125
+ if (code !== 0) {
126
+ console.error(`Restoring the snapshot failed with exit code ${code}.`);
127
+ if (state)
128
+ (0, api_state_1.markApiStateDirty)(state.directory);
129
+ return code;
130
+ }
131
+ if (state) {
132
+ (0, api_state_1.writeApiState)({
133
+ directory: state.directory,
134
+ state: { profile: state.profile, fingerprint: state.fingerprint, dirty: false },
135
+ });
136
+ }
137
+ return 0;
138
+ });
139
+ exports.restoreSnapshot = restoreSnapshot;
140
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ApiDefinition } from './definition';
2
+ /** Throws an error naming the file, the API and the path of the first field of `ready` and `doctor` that has the wrong shape. */
3
+ export declare const validateApiDefinition: ({ fileName, name, api, }: {
4
+ fileName: string;
5
+ name: string;
6
+ api: ApiDefinition;
7
+ }) => undefined;