@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
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markApiStateDirty = exports.writeApiState = exports.readApiState = exports.apiStateDirectory = exports.composeProjectName = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const fs_1 = require("fs");
6
+ const os_1 = require("os");
7
+ const path_1 = require("path");
8
+ const COMPOSE_FILE_NAMES = ['compose.yaml', 'compose.yml', 'docker-compose.yaml', 'docker-compose.yml'];
9
+ const normalizeProjectName = (name) => name.toLowerCase().replace(/[^a-z0-9_-]/g, '');
10
+ const readText = (path) => ((0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf8') : undefined);
11
+ const literal = (value) => (value === undefined || value.includes('$') ? undefined : value);
12
+ /**
13
+ * The compose project name the container engine gives this compose directory, resolved the way compose
14
+ * does: `COMPOSE_PROJECT_NAME` from the environment or the directory's `.env`, then the top-level
15
+ * `name:` of the compose file, then the directory name.
16
+ */
17
+ const composeProjectName = (options) => {
18
+ var _a, _b, _c, _d;
19
+ const { composePath, env = process.env } = options;
20
+ const fromDotEnv = (_b = (_a = readText((0, path_1.join)(composePath, '.env'))) === null || _a === void 0 ? void 0 : _a.match(/^\s*COMPOSE_PROJECT_NAME\s*=\s*["']?([^"'\s#]+)/m)) === null || _b === void 0 ? void 0 : _b[1];
21
+ const composeFile = COMPOSE_FILE_NAMES.map((name) => (0, path_1.join)(composePath, name)).find((path) => (0, fs_1.existsSync)(path));
22
+ const fromComposeFile = composeFile ? (_d = (_c = readText(composeFile)) === null || _c === void 0 ? void 0 : _c.match(/^name:\s*["']?([^"'\s#]+)/m)) === null || _d === void 0 ? void 0 : _d[1] : undefined;
23
+ const name = [env['COMPOSE_PROJECT_NAME'], literal(fromDotEnv), literal(fromComposeFile)]
24
+ .map((candidate) => (candidate ? normalizeProjectName(candidate) : ''))
25
+ .find((candidate) => candidate !== '');
26
+ return name !== null && name !== void 0 ? name : normalizeProjectName((0, path_1.basename)(composePath));
27
+ };
28
+ exports.composeProjectName = composeProjectName;
29
+ /** Machine-wide directory of one compose project's `state.json` and `lock.json`. */
30
+ const apiStateDirectory = (options) => {
31
+ const { project, env = process.env } = options;
32
+ const stateHome = env['XDG_STATE_HOME'] || (0, path_1.join)((0, os_1.homedir)(), '.local/state');
33
+ return (0, path_1.join)(stateHome, 'ethlete', 'api', project);
34
+ };
35
+ exports.apiStateDirectory = apiStateDirectory;
36
+ const statePath = (directory) => (0, path_1.join)(directory, 'state.json');
37
+ /** The stored state, or `undefined` when there is none or it cannot be read. */
38
+ const readApiState = (directory) => {
39
+ try {
40
+ const value = JSON.parse((0, fs_1.readFileSync)(statePath(directory), 'utf8'));
41
+ return {
42
+ profile: typeof value.profile === 'string' ? value.profile : null,
43
+ fingerprint: typeof value.fingerprint === 'string' ? value.fingerprint : null,
44
+ dirty: value.dirty === true,
45
+ updatedAt: typeof value.updatedAt === 'string' ? value.updatedAt : '',
46
+ };
47
+ }
48
+ catch (_a) {
49
+ return undefined;
50
+ }
51
+ };
52
+ exports.readApiState = readApiState;
53
+ /** Replaces `state.json` in one rename, so a reader never sees half a file. */
54
+ const writeApiState = (options) => {
55
+ const { directory, state, now = new Date() } = options;
56
+ const written = Object.assign(Object.assign({}, state), { updatedAt: now.toISOString() });
57
+ const temporary = (0, path_1.join)(directory, `state.json.${(0, crypto_1.randomUUID)()}.tmp`);
58
+ (0, fs_1.mkdirSync)(directory, { recursive: true });
59
+ try {
60
+ (0, fs_1.writeFileSync)(temporary, `${JSON.stringify(written, null, 2)}\n`, 'utf8');
61
+ (0, fs_1.renameSync)(temporary, statePath(directory));
62
+ }
63
+ finally {
64
+ (0, fs_1.rmSync)(temporary, { force: true });
65
+ }
66
+ return written;
67
+ };
68
+ exports.writeApiState = writeApiState;
69
+ /** Keeps the stored profile and fingerprint, so `status` can still say what the data was before. */
70
+ const markApiStateDirty = (directory, now = new Date()) => {
71
+ var _a, _b;
72
+ const previous = (0, exports.readApiState)(directory);
73
+ return (0, exports.writeApiState)({
74
+ directory,
75
+ state: { profile: (_a = previous === null || previous === void 0 ? void 0 : previous.profile) !== null && _a !== void 0 ? _a : null, fingerprint: (_b = previous === null || previous === void 0 ? void 0 : previous.fingerprint) !== null && _b !== void 0 ? _b : null, dirty: true },
76
+ now,
77
+ });
78
+ };
79
+ exports.markApiStateDirty = markApiStateDirty;
80
+ //# sourceMappingURL=api-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-state.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/api-state.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,2BAA4F;AAC5F,2BAA6B;AAC7B,+BAAsC;AAUtC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AAExG,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAE9F,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE/F,MAAM,OAAO,GAAG,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEhH;;;;GAIG;AACI,MAAM,kBAAkB,GAAG,CAAC,OAAyD,EAAE,EAAE;;IAC9F,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,UAAU,GAAG,MAAA,MAAA,QAAQ,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,0CAAE,KAAK,CAC3D,kDAAkD,CACnD,0CAAG,CAAC,CAAC,CAAC;IACP,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,MAAA,MAAA,QAAQ,CAAC,WAAW,CAAC,0CAAE,KAAK,CAAC,4BAA4B,CAAC,0CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClH,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;SACtF,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACtE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAEzC,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,oBAAoB,CAAC,IAAA,eAAQ,EAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B;AAEF,oFAAoF;AAC7E,MAAM,iBAAiB,GAAG,CAAC,OAAqD,EAAE,EAAE;IACzF,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,cAAc,CAAC,CAAC;IAE3E,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEF,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEvE,gFAAgF;AACzE,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAwB,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAsB,CAAC;QAE1F,OAAO;YACL,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACjE,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YAC7E,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;YAC3B,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;SACtE,CAAC;IACJ,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,YAAY,gBAavB;AAEF,+EAA+E;AACxE,MAAM,aAAa,GAAG,CAAC,OAA8E,EAAE,EAAE;IAC9G,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,OAAO,mCAAkB,KAAK,KAAE,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,GAAE,CAAC;IACrE,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,cAAc,IAAA,mBAAU,GAAE,MAAM,CAAC,CAAC;IAEpE,IAAA,cAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,IAAA,kBAAa,EAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAA,eAAU,EAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,IAAA,WAAM,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAfW,QAAA,aAAa,iBAexB;AAEF,oGAAoG;AAC7F,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE;;IACvE,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;IAEzC,OAAO,IAAA,qBAAa,EAAC;QACnB,SAAS;QACT,KAAK,EAAE,EAAE,OAAO,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,mCAAI,IAAI,EAAE,WAAW,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,mCAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QACtG,GAAG;KACJ,CAAC,CAAC;AACL,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
@@ -1,7 +1,15 @@
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.clearApiCheckouts = exports.planApiClear = void 0;
4
- const tslib_1 = require("tslib");
5
13
  const fs_1 = require("fs");
6
14
  const utils_1 = require("../utils");
7
15
  const git_1 = require("./git");
@@ -82,7 +90,7 @@ exports.planApiClear = planApiClear;
82
90
  * Removes the managed checkout of each named API, after one question that defaults to no. It offers to
83
91
  * take down the containers that still exist, and refuses an API with work only this checkout holds.
84
92
  */
85
- const clearApiCheckouts = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
93
+ const clearApiCheckouts = (options) => __awaiter(void 0, void 0, void 0, function* () {
86
94
  const { names, invocation, takeDown } = options;
87
95
  const targets = (0, exports.planApiClear)(options);
88
96
  const blocked = targets.filter(({ blockers }) => blockers.length > 0);
@@ -1 +1 @@
1
- {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/clear.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/clear.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,45 @@ export type ApiDefinition = {
24
24
  env?: () => Record<string, string | undefined>;
25
25
  /** Named commands run in `execService`, for example `{ install: ['composer', 'install'] }`. */
26
26
  exec?: Record<string, string[]>;
27
+ /** Ordered preconditions checked by `doctor`. A later check may rely on an earlier one. */
28
+ checks?: ApiCheck[];
29
+ /** Named states `ready` and `snapshot` work with. */
30
+ profiles?: Record<string, ApiProfile>;
31
+ /** Migrations folder relative to the API checkout root. Its contents are part of the state fingerprint. */
32
+ migrationsDir?: string;
33
+ };
34
+ /** One precondition of the API's local setup, run in order by `doctor`. */
35
+ export type ApiCheck = {
36
+ /** Unique label printed in the `doctor` report. */
37
+ name: string;
38
+ /** One shell line that exits 0 when the check passes. */
39
+ check: string;
40
+ /** One shell line that repairs a failed check, run by `doctor --fix`. */
41
+ fix?: string;
42
+ /** Service the lines run in. Defaults to `execService`. */
43
+ service?: string;
44
+ /** Run on the host in `composeDir` with the API's `env` instead of in a container. */
45
+ host?: boolean;
46
+ };
47
+ /** A named state the API can be brought into. */
48
+ export type ApiProfile = {
49
+ /** Seed names from `seeds.json` run in order, where `fixtures` stands for the fixtures list. */
50
+ seeds: string[];
51
+ /** Url that must answer with `expect` (default 200) before the profile counts as ready. */
52
+ health?: {
53
+ url: string;
54
+ expect?: number;
55
+ };
56
+ /** How to dump and restore the databases: `save` writes to stdout, `restore` reads stdin, both see `$DATABASES`. */
57
+ snapshot?: {
58
+ service: string;
59
+ databases: string[];
60
+ save: string;
61
+ restore: string;
62
+ };
27
63
  };
28
64
  export type ApiDefinitions = Record<string, ApiDefinition>;
29
- export declare const BUILT_IN_API_COMMANDS: readonly ["up", "down", "logs", "shell", "clone", "clear", "checkout", "pull", "setup"];
65
+ export declare const BUILT_IN_API_COMMANDS: readonly ["up", "down", "logs", "shell", "clone", "clear", "checkout", "pull", "setup", "exec", "doctor", "run", "ready", "snapshot", "status"];
30
66
  /** These act on the checkout itself, so they run before `setupCommand` and need no container engine. */
31
67
  export declare const GIT_API_COMMANDS: string[];
32
68
  /** Whether an exec entry downloads dependencies, which is the only failure the private-dependency hint explains. */
@@ -12,6 +12,12 @@ exports.BUILT_IN_API_COMMANDS = [
12
12
  'checkout',
13
13
  'pull',
14
14
  'setup',
15
+ 'exec',
16
+ 'doctor',
17
+ 'run',
18
+ 'ready',
19
+ 'snapshot',
20
+ 'status',
15
21
  ];
16
22
  /** These act on the checkout itself, so they run before `setupCommand` and need no container engine. */
17
23
  exports.GIT_API_COMMANDS = ['clone', 'checkout', 'pull'];
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/definition.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAgC/B,QAAA,qBAAqB,GAAG;IACnC,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;CACC,CAAC;AAEX,wGAAwG;AAC3F,QAAA,gBAAgB,GAAa,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAExE,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAElG,oHAAoH;AAC7G,MAAM,oBAAoB,GAAG,CAAC,WAA8B,EAAE,EAAE,WACrE,OAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAA,WAAW,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC;AAD1C,QAAA,oBAAoB,wBACsB;AAEvD,gGAAgG;AACzF,MAAM,4BAA4B,GAAG,CAAC,GAAkB,EAAE,EAAE,WACjE,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,IAAA,4BAAoB,EAAC,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAG,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAA,EAAA,CAAC;AAD9E,QAAA,4BAA4B,gCACkD;AAE3F,+GAA+G;AACxG,MAAM,eAAe,GAAG,CAAC,GAAkB,EAAE,EAAE;;IAAC,OAAA;QACrD,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,6BAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC;YACrF,GAAG,yBAAiB;YACpB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC;SAC/B,CAAC;KACH,CAAA;CAAA,CAAC;AANW,QAAA,eAAe,mBAM1B"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/definition.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AA8D/B,QAAA,qBAAqB,GAAG;IACnC,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,UAAU;IACV,QAAQ;CACA,CAAC;AAEX,wGAAwG;AAC3F,QAAA,gBAAgB,GAAa,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAExE,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAElG,oHAAoH;AAC7G,MAAM,oBAAoB,GAAG,CAAC,WAA8B,EAAE,EAAE,WACrE,OAAA,qBAAqB,CAAC,QAAQ,CAAC,MAAA,WAAW,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC;AAD1C,QAAA,oBAAoB,wBACsB;AAEvD,gGAAgG;AACzF,MAAM,4BAA4B,GAAG,CAAC,GAAkB,EAAE,EAAE,WACjE,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,IAAA,4BAAoB,EAAC,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAG,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAA,EAAA,CAAC;AAD9E,QAAA,4BAA4B,gCACkD;AAE3F,+GAA+G;AACxG,MAAM,eAAe,GAAG,CAAC,GAAkB,EAAE,EAAE;;IAAC,OAAA;QACrD,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,6BAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC;YACrF,GAAG,yBAAiB;YACpB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC;SAC/B,CAAC;KACH,CAAA;CAAA,CAAC;AANW,QAAA,eAAe,mBAM1B"}
@@ -0,0 +1,16 @@
1
+ import { ApiDefinition } from './definition';
2
+ import { ComposeTool } from './compose';
3
+ export type RunDoctorOptions = {
4
+ name: string;
5
+ api: ApiDefinition;
6
+ tool: ComposeTool;
7
+ /** The compose directory of the API checkout. */
8
+ cwd: string;
9
+ env: NodeJS.ProcessEnv;
10
+ invocation: string;
11
+ fix: boolean;
12
+ };
13
+ /** Runs the API's checks in order, repairing failures when `fix` is set. Stops at the first failure it cannot repair. */
14
+ export declare const runDoctor: ({ name, api, tool, cwd, env, invocation, fix }: RunDoctorOptions) => {
15
+ ok: boolean;
16
+ };
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runDoctor = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const STDERR_TAIL_LINES = 5;
6
+ const NOT_RUNNING = /is not running|not running|no such container|no container|can only create exec sessions/i;
7
+ /** Runs the API's checks in order, repairing failures when `fix` is set. Stops at the first failure it cannot repair. */
8
+ const runDoctor = ({ name, api, tool, cwd, env, invocation, fix }) => {
9
+ var _a, _b;
10
+ const checks = (_a = api.checks) !== null && _a !== void 0 ? _a : [];
11
+ if (checks.length === 0) {
12
+ console.log(`The ${name} API declares no checks.`);
13
+ return { ok: true };
14
+ }
15
+ const [binary, ...composePrefix] = tool.compose;
16
+ const run = ({ check, line, stream }) => {
17
+ var _a, _b;
18
+ const [command, args] = check.host
19
+ ? ['sh', ['-c', line]]
20
+ : [binary, [...composePrefix, 'exec', '-T', (_a = check.service) !== null && _a !== void 0 ? _a : api.execService, 'sh', '-c', line]];
21
+ const result = (0, child_process_1.spawnSync)(command, args, Object.assign({ cwd,
22
+ env }, (stream ? { stdio: 'inherit' } : { encoding: 'utf8', maxBuffer: Infinity })));
23
+ const stderr = stream ? '' : `${(_b = result.stderr) !== null && _b !== void 0 ? _b : ''}`.trim();
24
+ return { ok: !result.error && result.status === 0, stderr: result.error ? result.error.message : stderr };
25
+ };
26
+ const printFailure = (stderr) => {
27
+ const tail = stderr
28
+ .split('\n')
29
+ .filter((line) => line !== '')
30
+ .slice(-STDERR_TAIL_LINES);
31
+ for (const line of tail)
32
+ console.log(` ${line}`);
33
+ };
34
+ let failed = false;
35
+ for (const check of checks) {
36
+ const first = run({ check, line: check.check, stream: false });
37
+ if (first.ok) {
38
+ console.log(`ok ${check.name}`);
39
+ continue;
40
+ }
41
+ if (!check.host && NOT_RUNNING.test(first.stderr)) {
42
+ console.log(`FAIL ${check.name}`);
43
+ console.error(`\nThe ${(_b = check.service) !== null && _b !== void 0 ? _b : api.execService} service is not running. Start it with: ${invocation} up ${name}`);
44
+ return { ok: false };
45
+ }
46
+ if (!fix || check.fix === undefined) {
47
+ console.log(`FAIL ${check.name}`);
48
+ printFailure(first.stderr);
49
+ if (fix)
50
+ return { ok: false };
51
+ failed = true;
52
+ continue;
53
+ }
54
+ console.log(`Fixing ${check.name}: ${check.fix}`);
55
+ const fixed = run({ check, line: check.fix, stream: true });
56
+ if (!fixed.ok) {
57
+ console.log(`fix failed ${check.name}`);
58
+ return { ok: false };
59
+ }
60
+ const again = run({ check, line: check.check, stream: false });
61
+ if (!again.ok) {
62
+ console.log(`FAIL ${check.name} (still failing after the fix)`);
63
+ printFailure(again.stderr);
64
+ return { ok: false };
65
+ }
66
+ console.log(`fixed ${check.name}`);
67
+ }
68
+ return { ok: !failed };
69
+ };
70
+ exports.runDoctor = runDoctor;
71
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const NO_GIT = "no-git";
2
+ /** The major version of this CLI, so a change to what `ready` does invalidates every snapshot. */
3
+ export declare const cliMajorVersion: () => string;
4
+ /**
5
+ * A 12 character hash of everything a profile's data is built from: the API checkout's commit, its
6
+ * migrations, the repo's seed files, the profile's seed list, `ethlete.apis.js` and the CLI major version.
7
+ */
8
+ export declare const fingerprintApi: (options: {
9
+ /** The repo root that holds `ethlete.apis.js` and `.ethlete/seeds`. */
10
+ root: string;
11
+ name: string;
12
+ /** The API checkout root, not its compose directory. */
13
+ repoPath: string;
14
+ migrationsDir?: string;
15
+ seeds: readonly string[];
16
+ cliMajor?: string;
17
+ head?: (repoPath: string) => string | undefined;
18
+ }) => string;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fingerprintApi = exports.cliMajorVersion = exports.NO_GIT = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const load_definitions_1 = require("./load-definitions");
8
+ const git_1 = require("./git");
9
+ const seeds_1 = require("./seeds");
10
+ exports.NO_GIT = 'no-git';
11
+ const FINGERPRINT_LENGTH = 12;
12
+ /** The major version of this CLI, so a change to what `ready` does invalidates every snapshot. */
13
+ const cliMajorVersion = () => {
14
+ var _a, _b;
15
+ const manifest = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', '..', '..', 'package.json'), 'utf8'));
16
+ return (_b = (_a = manifest.version) === null || _a === void 0 ? void 0 : _a.split('.')[0]) !== null && _b !== void 0 ? _b : '0';
17
+ };
18
+ exports.cliMajorVersion = cliMajorVersion;
19
+ const filesUnder = (directory) => {
20
+ if (!(0, fs_1.existsSync)(directory))
21
+ return [];
22
+ const walk = (relative) => (0, fs_1.readdirSync)((0, path_1.join)(directory, relative))
23
+ .sort()
24
+ .flatMap((entry) => {
25
+ const name = relative === '' ? entry : `${relative}/${entry}`;
26
+ const stats = (0, fs_1.statSync)((0, path_1.join)(directory, name));
27
+ return stats.isDirectory() ? walk(name) : stats.isFile() ? [name] : [];
28
+ });
29
+ return walk('');
30
+ };
31
+ /**
32
+ * A 12 character hash of everything a profile's data is built from: the API checkout's commit, its
33
+ * migrations, the repo's seed files, the profile's seed list, `ethlete.apis.js` and the CLI major version.
34
+ */
35
+ const fingerprintApi = (options) => {
36
+ var _a;
37
+ const { root, name, repoPath, migrationsDir, seeds, cliMajor = (0, exports.cliMajorVersion)(), head = git_1.headCommit } = options;
38
+ const hash = (0, crypto_1.createHash)('sha256');
39
+ const add = (label, value) => {
40
+ hash.update(`${label}\0${value.length}\0`);
41
+ hash.update(value);
42
+ hash.update('\0');
43
+ };
44
+ const addFiles = (label, directory) => {
45
+ for (const file of filesUnder(directory)) {
46
+ add(`${label}:name`, file);
47
+ add(`${label}:content`, (0, fs_1.readFileSync)((0, path_1.join)(directory, file)));
48
+ }
49
+ };
50
+ add('head', (_a = head(repoPath)) !== null && _a !== void 0 ? _a : exports.NO_GIT);
51
+ if (migrationsDir !== undefined)
52
+ addFiles('migrations', (0, path_1.join)(repoPath, migrationsDir));
53
+ addFiles('seeds', (0, seeds_1.seedDirectory)(root, name));
54
+ add('profile-seeds', JSON.stringify(seeds));
55
+ for (const fileName of load_definitions_1.API_DEFINITIONS_FILE_NAMES) {
56
+ if ((0, fs_1.existsSync)((0, path_1.join)(root, fileName)))
57
+ add(`definitions:${fileName}`, (0, fs_1.readFileSync)((0, path_1.join)(root, fileName)));
58
+ }
59
+ add('cli', cliMajor);
60
+ return hash.digest('hex').slice(0, FINGERPRINT_LENGTH);
61
+ };
62
+ exports.fingerprintApi = fingerprintApi;
63
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/fingerprint.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export type GitResult = {
4
4
  stderr: string;
5
5
  };
6
6
  export declare const currentBranch: (cwd: string) => string | undefined;
7
+ /** The commit `HEAD` names, or `undefined` outside a git checkout. */
8
+ export declare const headCommit: (cwd: string) => string | undefined;
7
9
  /** Modified tracked files and untracked files, as git's own porcelain lines, or `undefined` when git fails. */
8
10
  export declare const uncommittedChanges: (cwd: string) => string[] | undefined;
9
11
  /** Whether git ignores a repo-relative path, or `undefined` outside a git checkout. */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pullApiBranch = exports.checkoutApiBranch = exports.stashEntries = exports.unpushedCommits = exports.hasUncommittedChanges = exports.ignoredByGit = exports.uncommittedChanges = exports.currentBranch = void 0;
3
+ exports.pullApiBranch = exports.checkoutApiBranch = exports.stashEntries = exports.unpushedCommits = exports.hasUncommittedChanges = exports.ignoredByGit = exports.uncommittedChanges = exports.headCommit = exports.currentBranch = void 0;
4
4
  const child_process_1 = require("child_process");
5
5
  const git = (cwd, args) => {
6
6
  var _a, _b, _c;
@@ -17,6 +17,12 @@ const currentBranch = (cwd) => {
17
17
  return result.status === 0 ? result.stdout : undefined;
18
18
  };
19
19
  exports.currentBranch = currentBranch;
20
+ /** The commit `HEAD` names, or `undefined` outside a git checkout. */
21
+ const headCommit = (cwd) => {
22
+ const result = git(cwd, ['rev-parse', 'HEAD']);
23
+ return result.status === 0 && result.stdout !== '' ? result.stdout : undefined;
24
+ };
25
+ exports.headCommit = headCommit;
20
26
  /** Modified tracked files and untracked files, as git's own porcelain lines, or `undefined` when git fails. */
21
27
  const uncommittedChanges = (cwd) => {
22
28
  const { status, stdout } = git(cwd, ['status', '--porcelain']);
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/git.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAI1C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAc,EAAa,EAAE;;IACrD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC;QAC1B,MAAM,EAAE,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACpC,MAAM,EAAE,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,WAAC,OAAA,MAAA,IAAA,yBAAS,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAA,EAAA,CAAC;AAE3G,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEF,sEAAsE;AAC/D,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/C,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC,CAAC;AAJW,QAAA,UAAU,cAIrB;AAEF,+GAA+G;AACxG,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;IAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE/D,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEF,uFAAuF;AAChF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,MAAA,IAAA,0BAAkB,EAAC,GAAG,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC;AAApF,QAAA,qBAAqB,yBAA+D;AAEjG;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE;IAC7C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAEtG,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEF,mEAAmE;AAC5D,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvD,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEF,sGAAsG;AAC/F,MAAM,iBAAiB,GAAG,CAAC,OAA6C,EAAE,EAAE;IACjF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAErC,IAAI,IAAA,qBAAa,EAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC;QAErC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,yBAAyB,CAAC,CAAC;QAEnD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B;AAEF;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,OAAsE,EAAE,EAAE;IACtG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,yBAAyB,CAAC,CAAC;QAEpD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,cAAc,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,iCAAiC,cAAc,aAAa,MAAM,KAAK,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,IAAA,6BAAqB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,kFAAkF,CAAC,CAAC;QAE7G,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAElC,IAAI,CAAC,KAAK;QAAE,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,mDAAmD,MAAM,GAAG,CAAC,CAAC;IAE1E,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AA7BW,QAAA,aAAa,iBA6BxB"}
@@ -13,6 +13,12 @@ const BUILT_IN_DESCRIPTIONS = {
13
13
  checkout: 'Switch the checkout to the branch apiRepoBranches names',
14
14
  pull: 'Fetch and fast-forward the checked-out branch',
15
15
  setup: "Run the API's own setupCommand in its compose directory",
16
+ exec: 'Run a command in a service without a TTY: exec <api> <service> -- <cmd...>',
17
+ doctor: 'Run the checks the API declares: doctor <api> [--fix]',
18
+ run: 'Run a host command under the API lock: run <api> --lock [--wait <s>] -- <cmd...>',
19
+ ready: 'Bring the data of a profile up to date and wait for health: ready <api> --profile <p>',
20
+ snapshot: 'Save or restore the databases of a profile: snapshot save|restore <api> <name> [--profile <p>]',
21
+ status: 'Print profile, fingerprints, dirty flag, snapshot and lock holder: status <api> [--profile <p>]',
16
22
  };
17
23
  const SEED_DESCRIPTIONS = {
18
24
  seed: 'List the seeds in .ethlete/seeds/<name>/seeds.json, or run the ones you name',
@@ -31,6 +37,10 @@ const apiHelp = (apis, invocation) => {
31
37
  ];
32
38
  return [
33
39
  `Usage: ${invocation} <command> <api>[,<api>] [<service> | <seed>[,<seed>]] [--host]`,
40
+ ` ${invocation} exec <api> <service> -- <command> [<args>...]`,
41
+ ` ${invocation} run <api> --lock [--wait <seconds>] -- <command> [<args>...]`,
42
+ ` ${invocation} ready <api> --profile <profile> [--wait <seconds>]`,
43
+ ` ${invocation} snapshot save|restore <api> <name> [--profile <profile>] [--wait <seconds>]`,
34
44
  '',
35
45
  'Commands',
36
46
  ...definition_1.BUILT_IN_API_COMMANDS.map((command) => ` ${pad(command, commandWidth)} ${BUILT_IN_DESCRIPTIONS[command]}`),
@@ -38,6 +48,7 @@ const apiHelp = (apis, invocation) => {
38
48
  ...execNames.map((command) => ` ${pad(command, commandWidth)} Declared by the API itself`),
39
49
  ` ${pad('help', commandWidth)} What one API accepts, and where its checkout is`,
40
50
  '',
51
+ 'Everything after -- goes to the command unchanged, and nothing else is written to stdout.',
41
52
  `An exec entry named seed or fixtures in ethlete.apis.js runs instead of the built-in command.`,
42
53
  '',
43
54
  'APIs',
@@ -47,6 +58,8 @@ const apiHelp = (apis, invocation) => {
47
58
  ` ${pad('--host', commandWidth)} Also print the address another device on this network can use`,
48
59
  ` ${pad('--force', commandWidth)} With up: start even when a port is taken. With pull or clear: lose local work`,
49
60
  ` ${pad('--all', commandWidth)} With clear: every API at once`,
61
+ ` ${pad('--profile', commandWidth)} With ready, snapshot and status: the profile to use`,
62
+ ` ${pad('--wait', commandWidth)} With run, ready or snapshot restore: give up after this many seconds, with exit code 75`,
50
63
  ` ${pad('--clone', commandWidth)} Clone a missing checkout without asking first`,
51
64
  ` ${pad('--setup', commandWidth)} Run the setup command for a missing env file without asking first`,
52
65
  ` ${pad('--help', commandWidth)} Show this text`,
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/help.ts"],"names":[],"mappings":";;;AAAA,6CAAqG;AACrG,mCAA4C;AAE5C,MAAM,qBAAqB,GAA2D;IACpF,EAAE,EAAE,iCAAiC;IACrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,+DAA+D;IACrE,KAAK,EAAE,6DAA6D;IACpE,KAAK,EAAE,qDAAqD;IAC5D,KAAK,EAAE,gDAAgD;IACvD,QAAQ,EAAE,yDAAyD;IACnE,IAAI,EAAE,+CAA+C;IACrD,KAAK,EAAE,yDAAyD;IAChE,IAAI,EAAE,4EAA4E;IAClF,MAAM,EAAE,uDAAuD;IAC/D,GAAG,EAAE,kFAAkF;IACvF,KAAK,EAAE,uFAAuF;IAC9F,QAAQ,EAAE,gGAAgG;IAC1G,MAAM,EAAE,iGAAiG;CAC1G,CAAC;AAEF,MAAM,iBAAiB,GAAuD;IAC5E,IAAI,EAAE,8EAA8E;IACpF,QAAQ,EAAE,4DAA4D;CACvE,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAe,EAAiD,EAAE,CACvF,yBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;AAE/D,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEhE,gGAAgG;AACzF,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAE,UAAkB,EAAE,EAAE;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,CAAC,EACD,GAAG,kCAAqB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EACzD,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,EAAA,CAAC,CAC9F,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAA,4BAAe,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE3G,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;KACnH,CAAC;IAEF,OAAO;QACL,UAAU,UAAU,iEAAiE;QACrF,UAAU,UAAU,gDAAgD;QACpE,UAAU,UAAU,+DAA+D;QACnF,UAAU,UAAU,qDAAqD;QACzE,UAAU,UAAU,8EAA8E;QAClG,EAAE;QACF,UAAU;QACV,GAAG,kCAAqB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/G,GAAG,yBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,8BAA8B,CAAC;QAC5F,KAAK,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,mDAAmD;QACjF,EAAE;QACF,2FAA2F;QAC3F,+FAA+F;QAC/F,EAAE;QACF,MAAM;QACN,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC;QAClF,EAAE;QACF,SAAS;QACT,KAAK,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,iEAAiE;QACjG,KAAK,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,iFAAiF;QAClH,KAAK,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,iCAAiC;QAChE,KAAK,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,uDAAuD;QAC1F,KAAK,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,2FAA2F;QAC3H,KAAK,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,iDAAiD;QAClF,KAAK,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,qEAAqE;QACtG,KAAK,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,kBAAkB;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AA5CW,QAAA,OAAO,WA4ClB;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAkB,EAAE,OAAe,EAAE,EAAE;;IACjE,IAAI,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,QAAQ,GAAG,CAAC,YAAY,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC;IAErG,MAAM,WAAW,GAAG,MAAA,GAAG,CAAC,IAAI,0CAAG,OAAO,CAAC,CAAC;IAExC,IAAI,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEpG,MAAM,OAAO,GAAG,kCAAqB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;IAEjF,OAAO,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,wGAAwG;AACjG,MAAM,aAAa,GAAG,CAAC,OAM7B,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAA,4BAAe,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,UAAU,UAAU,cAAc,IAAI,WAAW;QACjD,EAAE;QACF,UAAU;QACV,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QAC7F,EAAE;QACF,UAAU;QACV,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,GAAG,CAAC,IAAI,EAAE;QACtD,KAAK,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACzD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAxBW,QAAA,aAAa,iBAwBxB"}
@@ -1,4 +1,5 @@
1
1
  export * from './api-command';
2
+ export * from './api-state';
2
3
  export * from './compose';
3
4
  export * from './auth-hint';
4
5
  export * from './clear';
@@ -7,9 +8,11 @@ export * from './definition';
7
8
  export * from './git';
8
9
  export * from './help';
9
10
  export * from './load-definitions';
11
+ export * from './lock';
10
12
  export * from './ports';
11
13
  export * from './resolve-checkout';
12
14
  export * from './run';
15
+ export * from './run-locked';
13
16
  export * from './seeds';
14
17
  export * from './setup';
15
18
  export * from './state';
@@ -1,20 +1,36 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./api-command"), exports);
5
- tslib_1.__exportStar(require("./compose"), exports);
6
- tslib_1.__exportStar(require("./auth-hint"), exports);
7
- tslib_1.__exportStar(require("./clear"), exports);
8
- tslib_1.__exportStar(require("./clone"), exports);
9
- tslib_1.__exportStar(require("./definition"), exports);
10
- tslib_1.__exportStar(require("./git"), exports);
11
- tslib_1.__exportStar(require("./help"), exports);
12
- tslib_1.__exportStar(require("./load-definitions"), exports);
13
- tslib_1.__exportStar(require("./ports"), exports);
14
- tslib_1.__exportStar(require("./resolve-checkout"), exports);
15
- tslib_1.__exportStar(require("./run"), exports);
16
- tslib_1.__exportStar(require("./seeds"), exports);
17
- tslib_1.__exportStar(require("./setup"), exports);
18
- tslib_1.__exportStar(require("./state"), exports);
19
- tslib_1.__exportStar(require("./suggest"), exports);
17
+ __exportStar(require("./api-command"), exports);
18
+ __exportStar(require("./api-state"), exports);
19
+ __exportStar(require("./compose"), exports);
20
+ __exportStar(require("./auth-hint"), exports);
21
+ __exportStar(require("./clear"), exports);
22
+ __exportStar(require("./clone"), exports);
23
+ __exportStar(require("./definition"), exports);
24
+ __exportStar(require("./git"), exports);
25
+ __exportStar(require("./help"), exports);
26
+ __exportStar(require("./load-definitions"), exports);
27
+ __exportStar(require("./lock"), exports);
28
+ __exportStar(require("./ports"), exports);
29
+ __exportStar(require("./resolve-checkout"), exports);
30
+ __exportStar(require("./run"), exports);
31
+ __exportStar(require("./run-locked"), exports);
32
+ __exportStar(require("./seeds"), exports);
33
+ __exportStar(require("./setup"), exports);
34
+ __exportStar(require("./state"), exports);
35
+ __exportStar(require("./suggest"), exports);
20
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,oDAA0B;AAC1B,sDAA4B;AAC5B,kDAAwB;AACxB,kDAAwB;AACxB,uDAA6B;AAC7B,gDAAsB;AACtB,iDAAuB;AACvB,6DAAmC;AACnC,kDAAwB;AACxB,6DAAmC;AACnC,gDAAsB;AACtB,kDAAwB;AACxB,kDAAwB;AACxB,kDAAwB;AACxB,oDAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB;AACxB,+CAA6B;AAC7B,wCAAsB;AACtB,yCAAuB;AACvB,qDAAmC;AACnC,yCAAuB;AACvB,0CAAwB;AACxB,qDAAmC;AACnC,wCAAsB;AACtB,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B"}
@@ -5,6 +5,7 @@ const fs_1 = require("fs");
5
5
  const module_1 = require("module");
6
6
  const path_1 = require("path");
7
7
  const definition_1 = require("./definition");
8
+ const validate_definition_1 = require("./validate-definition");
8
9
  exports.API_DEFINITIONS_FILE_NAMES = ['ethlete.apis.js', 'ethlete.apis.cjs'];
9
10
  /**
10
11
  * Loads the repo's API definitions from `ethlete.apis.js`. The file is a module rather than JSON
@@ -25,6 +26,8 @@ const loadApiDefinitions = (root) => {
25
26
  `which ${shadowing.length === 1 ? 'is a built-in command' : 'are built-in commands'}. Rename the entry.`);
26
27
  }
27
28
  }
29
+ for (const [name, api] of Object.entries(apis))
30
+ (0, validate_definition_1.validateApiDefinition)({ fileName, name, api });
28
31
  return { found: true, apis, fileName };
29
32
  };
30
33
  exports.loadApiDefinitions = loadApiDefinitions;