rightsize 0.7.5 → 0.7.7

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 (35) hide show
  1. package/dist/backend-docker/backend.d.ts +25 -4
  2. package/dist/backend-docker/backend.d.ts.map +1 -1
  3. package/dist/backend-docker/backend.js +41 -15
  4. package/dist/backend-docker/backend.js.map +1 -1
  5. package/dist/backend-docker/client.d.ts +21 -13
  6. package/dist/backend-docker/client.d.ts.map +1 -1
  7. package/dist/backend-docker/client.js +50 -16
  8. package/dist/backend-docker/client.js.map +1 -1
  9. package/dist/backend-docker/index.d.ts +1 -1
  10. package/dist/backend-docker/index.d.ts.map +1 -1
  11. package/dist/backend-docker/index.js +1 -1
  12. package/dist/backend-docker/index.js.map +1 -1
  13. package/dist/backend-docker/provider.d.ts +98 -9
  14. package/dist/backend-docker/provider.d.ts.map +1 -1
  15. package/dist/backend-docker/provider.js +150 -17
  16. package/dist/backend-docker/provider.js.map +1 -1
  17. package/dist/backend-msb/backend.d.ts +33 -3
  18. package/dist/backend-msb/backend.d.ts.map +1 -1
  19. package/dist/backend-msb/backend.js +56 -4
  20. package/dist/backend-msb/backend.js.map +1 -1
  21. package/dist/backend-msb/commands.d.ts +8 -0
  22. package/dist/backend-msb/commands.d.ts.map +1 -1
  23. package/dist/backend-msb/commands.js +10 -0
  24. package/dist/backend-msb/commands.js.map +1 -1
  25. package/dist/backend-msb/fast-exit.d.ts +29 -0
  26. package/dist/backend-msb/fast-exit.d.ts.map +1 -0
  27. package/dist/backend-msb/fast-exit.js +31 -0
  28. package/dist/backend-msb/fast-exit.js.map +1 -0
  29. package/dist/backend-msb/ls-json.d.ts +10 -4
  30. package/dist/backend-msb/ls-json.d.ts.map +1 -1
  31. package/dist/backend-msb/ls-json.js +31 -11
  32. package/dist/backend-msb/ls-json.js.map +1 -1
  33. package/dist/backend-msb/provisioner.d.ts +1 -1
  34. package/dist/backend-msb/provisioner.js +1 -1
  35. package/package.json +1 -1
@@ -12,12 +12,18 @@
12
12
  /**
13
13
  * Names of sandboxes whose `status` is exactly `"Running"` (capitalized —
14
14
  * msb never lowercases it). An entry missing `name` or `status` is skipped
15
- * outright, never counted as a name-less running sandbox. Tries `JSON.parse`
16
- * first for the common case and falls back to the tolerant brace scanner
17
- * only if that throws, so well-formed output pays no scanning cost while
18
- * malformed output still degrades gracefully instead of losing everything.
15
+ * outright, never counted as a name-less running sandbox.
19
16
  */
20
17
  export declare function runningNames(json: string): Set<string>;
18
+ /**
19
+ * The raw `status` field of the single entry named `name`, or `undefined` if
20
+ * `name` does not appear at all. Unlike `runningNames`, this reports every
21
+ * status verbatim (not just `"Running"`) — the fast-exit post-mortem
22
+ * classification in `MsbCliBackend.bootOnce` needs to confirm a sandbox
23
+ * settled on exactly `"Stopped"`, which is a different question from "is it
24
+ * currently running".
25
+ */
26
+ export declare function statusOf(json: string, name: string): string | undefined;
21
27
  /** Test-only: forces the tolerant scanner path regardless of whether JSON.parse would succeed. */
22
28
  export declare function _scanRunningNamesForTests(json: string): Set<string>;
23
29
  //# sourceMappingURL=ls-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ls-json.d.ts","sourceRoot":"","sources":["../../src/backend-msb/ls-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2EH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAetD;AAED,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQnE"}
1
+ {"version":3,"file":"ls-json.d.ts","sourceRoot":"","sources":["../../src/backend-msb/ls-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0FH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQtD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOvE;AAED,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQnE"}
@@ -76,30 +76,50 @@ function scanEntries(json) {
76
76
  }));
77
77
  }
78
78
  /**
79
- * Names of sandboxes whose `status` is exactly `"Running"` (capitalized
80
- * msb never lowercases it). An entry missing `name` or `status` is skipped
81
- * outright, never counted as a name-less running sandbox. Tries `JSON.parse`
82
- * first for the common case and falls back to the tolerant brace scanner
83
- * only if that throws, so well-formed output pays no scanning cost while
84
- * malformed output still degrades gracefully instead of losing everything.
79
+ * Shared by `runningNames` and `statusOf`: tries `JSON.parse` first for the
80
+ * common case and falls back to the tolerant brace scanner only if that
81
+ * throws, so well-formed output pays no scanning cost while malformed output
82
+ * still degrades gracefully instead of losing everything.
85
83
  */
86
- export function runningNames(json) {
87
- let entries;
84
+ function parseEntries(json) {
88
85
  try {
89
86
  const parsed = JSON.parse(json);
90
- entries = Array.isArray(parsed) ? parsed : [];
87
+ return Array.isArray(parsed) ? parsed : [];
91
88
  }
92
89
  catch {
93
- entries = scanEntries(json);
90
+ return scanEntries(json);
94
91
  }
92
+ }
93
+ /**
94
+ * Names of sandboxes whose `status` is exactly `"Running"` (capitalized —
95
+ * msb never lowercases it). An entry missing `name` or `status` is skipped
96
+ * outright, never counted as a name-less running sandbox.
97
+ */
98
+ export function runningNames(json) {
95
99
  const names = new Set();
96
- for (const entry of entries) {
100
+ for (const entry of parseEntries(json)) {
97
101
  if (entry.status === "Running" && typeof entry.name === "string") {
98
102
  names.add(entry.name);
99
103
  }
100
104
  }
101
105
  return names;
102
106
  }
107
+ /**
108
+ * The raw `status` field of the single entry named `name`, or `undefined` if
109
+ * `name` does not appear at all. Unlike `runningNames`, this reports every
110
+ * status verbatim (not just `"Running"`) — the fast-exit post-mortem
111
+ * classification in `MsbCliBackend.bootOnce` needs to confirm a sandbox
112
+ * settled on exactly `"Stopped"`, which is a different question from "is it
113
+ * currently running".
114
+ */
115
+ export function statusOf(json, name) {
116
+ for (const entry of parseEntries(json)) {
117
+ if (entry.name === name) {
118
+ return entry.status;
119
+ }
120
+ }
121
+ return undefined;
122
+ }
103
123
  /** Test-only: forces the tolerant scanner path regardless of whether JSON.parse would succeed. */
104
124
  export function _scanRunningNamesForTests(json) {
105
125
  const names = new Set();
@@ -1 +1 @@
1
- {"version":3,"file":"ls-json.js","sourceRoot":"","sources":["../../src/backend-msb/ls-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ls-json.js","sourceRoot":"","sources":["../../src/backend-msb/ls-json.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { Platform } from "./platform.js";
4
4
  * while msb 0.6.10-0.6.13 were broken on Windows (fixed upstream in 0.6.14).
5
5
  * MSB_PATH users on Windows must avoid 0.6.10-0.6.13.
6
6
  */
7
- export declare const MSB_VERSION = "0.6.15";
7
+ export declare const MSB_VERSION = "0.6.16";
8
8
  /** Test seam: the full resolution logic parameterized over the release base URL, cache dir, and environment. */
9
9
  export declare function ensureInstalledAt(baseUrl: string, cacheDir: string, env: Record<string, string | undefined>): Promise<string>;
10
10
  /** Resolves (downloading and verifying if needed) a runnable `msb` binary path, using the real GitHub release base, `RIGHTSIZE_CACHE_DIR`, and `process.env`. */
@@ -12,7 +12,7 @@ import { PlatformInfo } from "./platform.js";
12
12
  * while msb 0.6.10-0.6.13 were broken on Windows (fixed upstream in 0.6.14).
13
13
  * MSB_PATH users on Windows must avoid 0.6.10-0.6.13.
14
14
  */
15
- export const MSB_VERSION = "0.6.15";
15
+ export const MSB_VERSION = "0.6.16";
16
16
  function releaseBaseUrl(version) {
17
17
  return `https://github.com/superradcompany/microsandbox/releases/download/v${version}`;
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rightsize",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
4
4
  "description": "Testcontainers-style integration testing on microsandbox microVMs, with a Docker fallback and an await-using lifecycle. No Docker required.",
5
5
  "keywords": [
6
6
  "testcontainers",