@isentinel/jest-roblox 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as ResolvedProjectConfig, n as ExecuteResult, v as CliOptions } from "./executor-D6BzDfQ_.mjs";
1
+ import { _ as ResolvedProjectConfig, n as ExecuteResult, v as CliOptions } from "./executor-CNz6_04-.mjs";
2
2
 
3
3
  //#region src/cli.d.ts
4
4
  declare function parseArgs(args: Array<string>): CliOptions;
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as hashBuffer, C as resolveNestedProjects, D as createStudioBackend, F as VALID_BACKENDS, P as ROOT_ONLY_KEYS, R as isValidBackend, S as collectPaths, _ as formatResult, a as formatAnnotations, b as formatBanner, c as execute, d as findFormatterOptions, g as formatMultiProjectResult, i as runTypecheck, k as createOpenCloudBackend, l as formatExecuteOutput, m as formatCompactMultiProject, n as parseGameOutput, o as formatJobSummary, p as writeJsonFile, r as writeGameOutput, s as resolveGitHubActionsOptions, t as formatGameOutputNotice, u as loadCoverageManifest, w as loadConfig$1, x as rojoProjectSchema, y as formatTypecheckSummary, z as LuauScriptError } from "./game-output-BU-9pJ93.mjs";
1
+ import { A as hashBuffer, C as resolveNestedProjects, D as createStudioBackend, F as VALID_BACKENDS, P as ROOT_ONLY_KEYS, R as isValidBackend, S as collectPaths, _ as formatResult, a as formatAnnotations, b as formatBanner, c as execute, d as findFormatterOptions, g as formatMultiProjectResult, i as runTypecheck, k as createOpenCloudBackend, l as formatExecuteOutput, m as formatAgentMultiProject, n as parseGameOutput, o as formatJobSummary, p as writeJsonFile, r as writeGameOutput, s as resolveGitHubActionsOptions, t as formatGameOutputNotice, u as loadCoverageManifest, w as loadConfig$1, x as rojoProjectSchema, y as formatTypecheckSummary, z as LuauScriptError } from "./game-output-BL7u7qMT.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { type } from "arktype";
4
4
  import assert from "node:assert";
@@ -23,7 +23,7 @@ import istanbulCoverage from "istanbul-lib-coverage";
23
23
  import istanbulReport from "istanbul-lib-report";
24
24
  import istanbulReports from "istanbul-reports";
25
25
  //#region package.json
26
- var version = "0.1.3";
26
+ var version = "0.1.4";
27
27
  //#endregion
28
28
  //#region src/backends/auto.ts
29
29
  var StudioWithFallback = class {
@@ -929,6 +929,46 @@ function buildResult(pending, pendingFunctions, pendingBranches) {
929
929
  return { files };
930
930
  }
931
931
  //#endregion
932
+ //#region src/coverage/merge-raw-coverage.ts
933
+ /**
934
+ * Additively merge two raw coverage datasets. Overlapping files have their
935
+ * hit counts summed (matching istanbul-lib-coverage's semantics).
936
+ */
937
+ function mergeRawCoverage(target, source) {
938
+ if (target === void 0) return source;
939
+ if (source === void 0) return target;
940
+ const result = { ...target };
941
+ for (const [filePath, fileCoverage] of Object.entries(source)) {
942
+ const existing = result[filePath];
943
+ result[filePath] = existing === void 0 ? { ...fileCoverage } : mergeFileCoverage(existing, fileCoverage);
944
+ }
945
+ return result;
946
+ }
947
+ function sumScalars(a, b) {
948
+ const result = { ...a };
949
+ for (const [key, value] of Object.entries(b)) result[key] = (result[key] ?? 0) + value;
950
+ return result;
951
+ }
952
+ function sumBranches(a, b) {
953
+ const result = { ...a };
954
+ for (const [key, bArms] of Object.entries(b)) {
955
+ const aArms = result[key];
956
+ if (aArms === void 0) {
957
+ result[key] = [...bArms];
958
+ continue;
959
+ }
960
+ const length = Math.max(aArms.length, bArms.length);
961
+ result[key] = Array.from({ length }, (_, index) => (aArms[index] ?? 0) + (bArms[index] ?? 0));
962
+ }
963
+ return result;
964
+ }
965
+ function mergeFileCoverage(a, b) {
966
+ const merged = { s: sumScalars(a.s, b.s) };
967
+ if (a.f !== void 0 || b.f !== void 0) merged.f = sumScalars(a.f ?? {}, b.f ?? {});
968
+ if (a.b !== void 0 || b.b !== void 0) merged.b = sumBranches(a.b ?? {}, b.b ?? {});
969
+ return merged;
970
+ }
971
+ //#endregion
932
972
  //#region src/luau/visitor.ts
933
973
  function visitExpression(expression, visitor) {
934
974
  if (visitor.visitExpr?.(expression) === false) return;
@@ -1936,7 +1976,7 @@ function printCoverageHeader() {
1936
1976
  process.stdout.write(`\n${header}\n`);
1937
1977
  }
1938
1978
  function generateReports(options) {
1939
- const coverageMap = buildCoverageMap(options.mapped);
1979
+ const coverageMap = buildCoverageMap(filterMappedFiles(options.mapped, options.collectCoverageFrom));
1940
1980
  const context = istanbulReport.createContext({
1941
1981
  coverageMap,
1942
1982
  dir: options.coverageDirectory
@@ -1946,8 +1986,8 @@ function generateReports(options) {
1946
1986
  istanbulReports.create(reporterName).execute(context);
1947
1987
  }
1948
1988
  }
1949
- function checkThresholds(mapped, thresholds) {
1950
- const summary = buildCoverageMap(mapped).getCoverageSummary();
1989
+ function checkThresholds(mapped, thresholds, collectCoverageFrom) {
1990
+ const summary = buildCoverageMap(filterMappedFiles(mapped, collectCoverageFrom)).getCoverageSummary();
1951
1991
  const failures = [];
1952
1992
  const checks = [
1953
1993
  {
@@ -2014,6 +2054,26 @@ function buildCoverageMap(mapped) {
2014
2054
  }
2015
2055
  return coverageMap;
2016
2056
  }
2057
+ function createGlobMatcher(patterns) {
2058
+ const withPath = patterns.filter((pattern) => pattern.includes("/"));
2059
+ const withoutPath = patterns.filter((pattern) => !pattern.includes("/"));
2060
+ const matchers = [];
2061
+ if (withPath.length > 0) matchers.push(picomatch(withPath));
2062
+ if (withoutPath.length > 0) matchers.push(picomatch(withoutPath, { matchBase: true }));
2063
+ return (filePath) => matchers.some((matcher) => matcher(filePath));
2064
+ }
2065
+ function filterMappedFiles(mapped, collectCoverageFrom) {
2066
+ if (collectCoverageFrom === void 0 || collectCoverageFrom.length === 0) return mapped;
2067
+ const includePatterns = collectCoverageFrom.filter((pattern) => !pattern.startsWith("!"));
2068
+ const excludePatterns = collectCoverageFrom.filter((pattern) => pattern.startsWith("!")).map((pattern) => pattern.slice(1));
2069
+ const isIncluded = includePatterns.length > 0 ? createGlobMatcher(includePatterns) : () => true;
2070
+ const isExcluded = excludePatterns.length > 0 ? createGlobMatcher(excludePatterns) : () => false;
2071
+ const cwd = process.cwd();
2072
+ return { files: Object.fromEntries(Object.entries(mapped.files).filter(([filePath]) => {
2073
+ const relativePath = path$1.isAbsolute(filePath) ? path$1.relative(cwd, filePath).replaceAll("\\", "/") : filePath;
2074
+ return isIncluded(relativePath) && !isExcluded(relativePath);
2075
+ })) };
2076
+ }
2017
2077
  function isValidReporter(name) {
2018
2078
  return VALID_REPORTERS.has(name);
2019
2079
  }
@@ -2065,6 +2125,7 @@ Options:
2065
2125
  --no-color Disable colored output
2066
2126
  -u, --updateSnapshot Update snapshot files
2067
2127
  --coverage Enable coverage collection
2128
+ --collectCoverageFrom <glob> Globs for files to include in coverage (repeatable)
2068
2129
  --coverageDirectory <path> Directory for coverage output (default: coverage)
2069
2130
  --coverageReporters <r...> Coverage reporters (default: text, lcov)
2070
2131
  --formatters <name...> Output formatters (default, agent, json, github-actions)
@@ -2100,6 +2161,10 @@ function parseArgs(args) {
2100
2161
  options: {
2101
2162
  "backend": { type: "string" },
2102
2163
  "cache": { type: "boolean" },
2164
+ "collectCoverageFrom": {
2165
+ multiple: true,
2166
+ type: "string"
2167
+ },
2103
2168
  "color": { type: "boolean" },
2104
2169
  "config": { type: "string" },
2105
2170
  "coverage": { type: "boolean" },
@@ -2168,6 +2233,7 @@ function parseArgs(args) {
2168
2233
  backend: validateBackend(values.backend),
2169
2234
  cache: values["no-cache"] === true ? false : values.cache,
2170
2235
  collectCoverage: values.coverage,
2236
+ collectCoverageFrom: values.collectCoverageFrom,
2171
2237
  color: values["no-color"] === true ? false : values.color,
2172
2238
  config: values.config,
2173
2239
  coverageDirectory: values.coverageDirectory,
@@ -2239,10 +2305,7 @@ function mergeProjectResults(results) {
2239
2305
  totalMs += result.timing.totalMs;
2240
2306
  uploadMs += result.timing.uploadMs ?? 0;
2241
2307
  coverageMs += result.timing.coverageMs ?? 0;
2242
- if (result.coverageData !== void 0) mergedCoverage = {
2243
- ...mergedCoverage,
2244
- ...result.coverageData
2245
- };
2308
+ if (result.coverageData !== void 0) mergedCoverage = mergeRawCoverage(mergedCoverage, result.coverageData);
2246
2309
  }
2247
2310
  return {
2248
2311
  coverageData: mergedCoverage,
@@ -2338,12 +2401,13 @@ function processCoverage(config, coverageData) {
2338
2401
  const coverageDirectory = path$1.resolve(config.rootDir, config.coverageDirectory);
2339
2402
  if (!config.silent) printCoverageHeader();
2340
2403
  generateReports({
2404
+ collectCoverageFrom: config.collectCoverageFrom,
2341
2405
  coverageDirectory,
2342
2406
  mapped,
2343
2407
  reporters: config.coverageReporters
2344
2408
  });
2345
2409
  if (config.coverageThreshold !== void 0) {
2346
- const result = checkThresholds(mapped, config.coverageThreshold);
2410
+ const result = checkThresholds(mapped, config.coverageThreshold, config.collectCoverageFrom);
2347
2411
  if (!result.passed) {
2348
2412
  for (const failure of result.failures) process.stderr.write(`Coverage threshold not met for ${failure.metric}: ${String(failure.actual.toFixed(2))}% < ${String(failure.threshold)}%\n`);
2349
2413
  return false;
@@ -2373,7 +2437,7 @@ function runGitHubActionsFormatter(config, result, sourceMapper) {
2373
2437
  function hasFormatter(config, name) {
2374
2438
  return config.formatters?.some((entry) => Array.isArray(entry) ? entry[0] === name : entry === name) === true;
2375
2439
  }
2376
- function getCompactMaxFailures(config) {
2440
+ function getAgentMaxFailures(config) {
2377
2441
  assert(config.formatters !== void 0, "formatters is set by resolveFormatters");
2378
2442
  const options = findFormatterOptions(config.formatters, "agent");
2379
2443
  if (options !== void 0 && typeof options["maxFailures"] === "number") return options["maxFailures"];
@@ -2460,9 +2524,9 @@ function printMultiProjectOutput(options) {
2460
2524
  const { config, merged, preCoverageMs, projectResults, typecheckResult } = options;
2461
2525
  const timing = addCoverageTiming(merged.timing, preCoverageMs);
2462
2526
  if (usesAgentFormatter(config)) {
2463
- printOutput(formatCompactMultiProject(toProjectEntries(projectResults), {
2527
+ printOutput(formatAgentMultiProject(toProjectEntries(projectResults), {
2464
2528
  gameOutput: config.gameOutput,
2465
- maxFailures: getCompactMaxFailures(config),
2529
+ maxFailures: getAgentMaxFailures(config),
2466
2530
  outputFile: config.outputFile,
2467
2531
  rootDir: config.rootDir,
2468
2532
  sourceMapper: merged.sourceMapper,
@@ -2741,16 +2805,9 @@ function validateBackend(value) {
2741
2805
  function getLuauErrorHint(message) {
2742
2806
  for (const [pattern, hint] of LUAU_ERROR_HINTS) if (pattern.test(message)) return hint;
2743
2807
  }
2744
- function normalizeFormatterName(name) {
2745
- return name === "compact" ? "agent" : name;
2746
- }
2747
- function normalizeFormatterEntry(entry) {
2748
- if (Array.isArray(entry)) return [normalizeFormatterName(entry[0]), entry[1]];
2749
- return normalizeFormatterName(entry);
2750
- }
2751
2808
  function resolveFormatters(cli, config) {
2752
2809
  const explicit = cli.formatters ?? config.formatters;
2753
- if (explicit !== void 0) return explicit.map(normalizeFormatterEntry);
2810
+ if (explicit !== void 0) return explicit;
2754
2811
  const defaults = isAgent ? ["agent"] : ["default"];
2755
2812
  if (process.env["GITHUB_ACTIONS"] === "true") defaults.push("github-actions");
2756
2813
  return defaults;
@@ -2761,6 +2818,7 @@ function mergeCliWithConfig(cli, config) {
2761
2818
  backend: cli.backend ?? config.backend,
2762
2819
  cache: cli.cache ?? config.cache,
2763
2820
  collectCoverage: cli.collectCoverage ?? config.collectCoverage,
2821
+ collectCoverageFrom: cli.collectCoverageFrom ?? config.collectCoverageFrom,
2764
2822
  color: cli.color ?? config.color,
2765
2823
  coverageDirectory: cli.coverageDirectory ?? config.coverageDirectory,
2766
2824
  coverageReporters: cli.coverageReporters ?? config.coverageReporters,
@@ -877,6 +877,7 @@ interface CliOptions {
877
877
  backend?: Backend$1;
878
878
  cache?: boolean;
879
879
  collectCoverage?: boolean;
880
+ collectCoverageFrom?: Array<string>;
880
881
  color?: boolean;
881
882
  config?: string;
882
883
  coverageDirectory?: string;
@@ -2039,8 +2039,8 @@ function formatSnapshotLine(snapshot, styles) {
2039
2039
  return `${styles.dim(" Snapshots")} ${styles.summary.failed(`${snapshot.unmatched} failed`)}`;
2040
2040
  }
2041
2041
  //#endregion
2042
- //#region src/formatters/compact.ts
2043
- function formatCompact(result, options) {
2042
+ //#region src/formatters/agent.ts
2043
+ function formatAgent(result, options) {
2044
2044
  const lines = [];
2045
2045
  const execErrors = result.testResults.filter(hasExecError);
2046
2046
  if (result.numFailedTests > 0 || execErrors.length > 0) {
@@ -2052,15 +2052,15 @@ function formatCompact(result, options) {
2052
2052
  lines.push(...failureLines);
2053
2053
  }
2054
2054
  for (const file of execErrors) lines.push(...formatExecError(file, options));
2055
- const hints = formatCompactLogHints(options);
2055
+ const hints = formatAgentLogHints(options);
2056
2056
  if (hints !== "") lines.push(hints);
2057
2057
  }
2058
2058
  lines.push(...formatSummarySection(result, options));
2059
2059
  return lines.join("\n");
2060
2060
  }
2061
- function formatCompactMultiProject(projects, options) {
2061
+ function formatAgentMultiProject(projects, options) {
2062
2062
  const lines = [];
2063
- for (const { displayName, result } of projects) lines.push(...formatCompactProjectHeader(displayName, result, options));
2063
+ for (const { displayName, result } of projects) lines.push(...formatAgentProjectHeader(displayName, result, options));
2064
2064
  const stats = collectMultiProjectStats(projects);
2065
2065
  if (stats.totalFailed + stats.allExecErrors.length > 0) lines.push(...formatMultiProjectFailures(projects, stats, options));
2066
2066
  lines.push(...formatMultiProjectSummary(stats, options));
@@ -2139,7 +2139,7 @@ function formatSize(bytes) {
2139
2139
  if (bytes < 1024) return `${bytes}b`;
2140
2140
  return `${Math.round(bytes / 1024)}kb`;
2141
2141
  }
2142
- function formatCompactLogHints(options) {
2142
+ function formatAgentLogHints(options) {
2143
2143
  const lines = [];
2144
2144
  if (options.outputFile !== void 0) {
2145
2145
  const size = options.outputFileSize !== void 0 ? ` (${formatSize(options.outputFileSize)})` : "";
@@ -2249,7 +2249,7 @@ function getFailureSnippets(mappedLocations, location, snippetLevel, rootDirecto
2249
2249
  if (location !== void 0) return getFallbackSnippet(location);
2250
2250
  return [];
2251
2251
  }
2252
- function formatCompactFailure(test, filePath, options, snippetLevel) {
2252
+ function formatAgentFailure(test, filePath, options, snippetLevel) {
2253
2253
  const lines = [];
2254
2254
  for (const originalMessage of test.failureMessages) {
2255
2255
  let mappedLocations = [];
@@ -2278,11 +2278,11 @@ function formatFailures(result, totalFailures, options) {
2278
2278
  lines.push(`... ${result.numFailedTests - index} more failures omitted`, "");
2279
2279
  break;
2280
2280
  }
2281
- lines.push(formatCompactFailure(test, filePath, options, snippetLevel));
2281
+ lines.push(formatAgentFailure(test, filePath, options, snippetLevel));
2282
2282
  }
2283
2283
  return lines;
2284
2284
  }
2285
- function formatCompactProjectHeader(displayName, result, options) {
2285
+ function formatAgentProjectHeader(displayName, result, options) {
2286
2286
  const execErrors = result.testResults.filter(hasExecError);
2287
2287
  const hasFailures = result.numFailedTests > 0 || execErrors.length > 0;
2288
2288
  const failedFiles = result.testResults.filter((file) => file.numFailingTests > 0 || hasExecError(file)).length;
@@ -2330,7 +2330,7 @@ function formatMultiProjectFailures(projects, stats, options) {
2330
2330
  ];
2331
2331
  for (const { result } of projects) if (result.numFailedTests > 0) lines.push(...formatFailures(result, totalFailures, options));
2332
2332
  for (const file of stats.allExecErrors) lines.push(...formatExecError(file, options));
2333
- const hints = formatCompactLogHints(options);
2333
+ const hints = formatAgentLogHints(options);
2334
2334
  if (hints !== "") lines.push(hints);
2335
2335
  return lines;
2336
2336
  }
@@ -2442,7 +2442,7 @@ function formatExecuteOutput(options) {
2442
2442
  const resolvedOutputFile = config.outputFile !== void 0 ? path$1.resolve(config.outputFile) : void 0;
2443
2443
  const resolvedGameOutput = config.gameOutput !== void 0 ? path$1.resolve(config.gameOutput) : void 0;
2444
2444
  const agentOptions = findFormatterOptions(config.formatters ?? [], "agent");
2445
- if (agentOptions !== void 0 && !config.verbose) return formatCompact(result, {
2445
+ if (agentOptions !== void 0 && !config.verbose) return formatAgent(result, {
2446
2446
  gameOutput: resolvedGameOutput,
2447
2447
  maxFailures: agentOptions.maxFailures ?? 10,
2448
2448
  outputFile: resolvedOutputFile,
@@ -3083,4 +3083,4 @@ function writeGameOutput(filePath, entries) {
3083
3083
  fs$1.writeFileSync(absolutePath, JSON.stringify(entries, null, 2));
3084
3084
  }
3085
3085
  //#endregion
3086
- export { hashBuffer as A, extractJsonFromOutput as B, resolveNestedProjects as C, createStudioBackend as D, StudioBackend as E, VALID_BACKENDS as F, defineConfig as I, defineProject as L, generateTestScript as M, DEFAULT_CONFIG as N, OpenCloudBackend as O, ROOT_ONLY_KEYS as P, isValidBackend as R, collectPaths as S, resolveConfig as T, parseJestOutput as V, formatResult as _, formatAnnotations as a, formatBanner as b, execute as c, findFormatterOptions as d, formatJson as f, formatMultiProjectResult as g, formatFailure as h, runTypecheck as i, buildJestArgv as j, createOpenCloudBackend as k, formatExecuteOutput as l, formatCompactMultiProject as m, parseGameOutput as n, formatJobSummary as o, writeJsonFile as p, writeGameOutput as r, resolveGitHubActionsOptions as s, formatGameOutputNotice as t, loadCoverageManifest as u, formatTestSummary as v, loadConfig$1 as w, rojoProjectSchema as x, formatTypecheckSummary as y, LuauScriptError as z };
3086
+ export { hashBuffer as A, extractJsonFromOutput as B, resolveNestedProjects as C, createStudioBackend as D, StudioBackend as E, VALID_BACKENDS as F, defineConfig as I, defineProject as L, generateTestScript as M, DEFAULT_CONFIG as N, OpenCloudBackend as O, ROOT_ONLY_KEYS as P, isValidBackend as R, collectPaths as S, resolveConfig as T, parseJestOutput as V, formatResult as _, formatAnnotations as a, formatBanner as b, execute as c, findFormatterOptions as d, formatJson as f, formatMultiProjectResult as g, formatFailure as h, runTypecheck as i, buildJestArgv as j, createOpenCloudBackend as k, formatExecuteOutput as l, formatAgentMultiProject as m, parseGameOutput as n, formatJobSummary as o, writeJsonFile as p, writeGameOutput as r, resolveGitHubActionsOptions as s, formatGameOutputNotice as t, loadCoverageManifest as u, formatTestSummary as v, loadConfig$1 as w, rojoProjectSchema as x, formatTypecheckSummary as y, LuauScriptError as z };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as defineConfig, C as FormatterEntry, D as ROOT_ONLY_KEYS, E as ProjectTestConfig, M as Argv, O as ResolvedConfig, S as DisplayName, T as ProjectEntry, _ as ResolvedProjectConfig, a as formatExecuteOutput, b as ConfigInput, c as Backend, d as extractJsonFromOutput, f as parseJestOutput, g as TestStatus, h as TestFileResult, i as execute, j as defineProject, k as SnapshotFormatOptions, l as BackendOptions, m as TestCaseResult, n as ExecuteResult, o as TimingResult, p as JestResult, r as FormatOutputOptions, s as SourceMapper, t as ExecuteOptions, u as BackendResult, v as CliOptions, w as InlineProjectConfig, x as DEFAULT_CONFIG, y as Config } from "./executor-D6BzDfQ_.mjs";
1
+ import { A as defineConfig, C as FormatterEntry, D as ROOT_ONLY_KEYS, E as ProjectTestConfig, M as Argv, O as ResolvedConfig, S as DisplayName, T as ProjectEntry, _ as ResolvedProjectConfig, a as formatExecuteOutput, b as ConfigInput, c as Backend, d as extractJsonFromOutput, f as parseJestOutput, g as TestStatus, h as TestFileResult, i as execute, j as defineProject, k as SnapshotFormatOptions, l as BackendOptions, m as TestCaseResult, n as ExecuteResult, o as TimingResult, p as JestResult, r as FormatOutputOptions, s as SourceMapper, t as ExecuteOptions, u as BackendResult, v as CliOptions, w as InlineProjectConfig, x as DEFAULT_CONFIG, y as Config } from "./executor-CNz6_04-.mjs";
2
2
  import { WebSocket, WebSocketServer } from "ws";
3
3
  import buffer from "node:buffer";
4
4
 
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { B as extractJsonFromOutput, D as createStudioBackend, E as StudioBackend, I as defineConfig, L as defineProject, M as generateTestScript, N as DEFAULT_CONFIG, O as OpenCloudBackend, P as ROOT_ONLY_KEYS, T as resolveConfig, V as parseJestOutput, _ as formatResult, a as formatAnnotations, c as execute, f as formatJson, h as formatFailure, i as runTypecheck, j as buildJestArgv, k as createOpenCloudBackend, l as formatExecuteOutput, n as parseGameOutput, o as formatJobSummary, p as writeJsonFile, r as writeGameOutput, t as formatGameOutputNotice, v as formatTestSummary, w as loadConfig } from "./game-output-BU-9pJ93.mjs";
1
+ import { B as extractJsonFromOutput, D as createStudioBackend, E as StudioBackend, I as defineConfig, L as defineProject, M as generateTestScript, N as DEFAULT_CONFIG, O as OpenCloudBackend, P as ROOT_ONLY_KEYS, T as resolveConfig, V as parseJestOutput, _ as formatResult, a as formatAnnotations, c as execute, f as formatJson, h as formatFailure, i as runTypecheck, j as buildJestArgv, k as createOpenCloudBackend, l as formatExecuteOutput, n as parseGameOutput, o as formatJobSummary, p as writeJsonFile, r as writeGameOutput, t as formatGameOutputNotice, v as formatTestSummary, w as loadConfig } from "./game-output-BL7u7qMT.mjs";
2
2
  export { DEFAULT_CONFIG, OpenCloudBackend, ROOT_ONLY_KEYS, StudioBackend, buildJestArgv, createOpenCloudBackend, createStudioBackend, defineConfig, defineProject, execute, extractJsonFromOutput, formatAnnotations, formatExecuteOutput, formatFailure, formatGameOutputNotice, formatJobSummary, formatJson, formatResult, formatTestSummary, generateTestScript, loadConfig, parseGameOutput, parseJestOutput, resolveConfig, runTypecheck, writeGameOutput, writeJsonFile };
Binary file