@awsless/cli 0.0.46-local.48 → 0.0.46-local.49

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/bin.js CHANGED
@@ -150186,6 +150186,38 @@ var bootstrapAwsless = async (props) => {
150186
150186
  // src/config/load/load.ts
150187
150187
  import { basename as basename2, dirname as dirname5, join as join13 } from "path";
150188
150188
 
150189
+ // src/config/schema/local-entry.ts
150190
+ import { stat as stat2 } from "fs/promises";
150191
+
150192
+ // src/config/schema/relative-path.ts
150193
+ import { join as join11 } from "path";
150194
+ var basePath;
150195
+ var setLocalBasePath = (path2) => {
150196
+ basePath = path2;
150197
+ };
150198
+ var resolvePath = (path2) => {
150199
+ if (path2.startsWith(".") && basePath) {
150200
+ return join11(basePath, path2);
150201
+ }
150202
+ return path2;
150203
+ };
150204
+ var RelativePathSchema = exports_external.string().transform((path2) => resolvePath(path2));
150205
+
150206
+ // src/config/schema/local-entry.ts
150207
+ var LocalEntrySchema = exports_external.union([
150208
+ RelativePathSchema.refine(async (path2) => {
150209
+ try {
150210
+ const s2 = await stat2(path2);
150211
+ return s2.isFile() || s2.isDirectory();
150212
+ } catch (error3) {
150213
+ return false;
150214
+ }
150215
+ }, `File or directory doesn't exist`),
150216
+ exports_external.object({
150217
+ nocheck: RelativePathSchema.describe("Specifies a local file or directory without checking if the file or directory exists.")
150218
+ }).transform((v3) => v3.nocheck)
150219
+ ]);
150220
+
150189
150221
  // src/config/schema/config-ref.ts
150190
150222
  var ConfigRefSchema = exports_external.string().regex(/^config:[a-z0-9-]+$/, "Invalid config reference");
150191
150223
  var isConfigRef = (value) => {
@@ -150352,27 +150384,11 @@ var parse3 = (value) => {
150352
150384
  };
150353
150385
 
150354
150386
  // src/config/schema/local-file.ts
150355
- import { stat as stat2 } from "fs/promises";
150356
-
150357
- // src/config/schema/relative-path.ts
150358
- import { join as join11 } from "path";
150359
- var basePath;
150360
- var setLocalBasePath = (path2) => {
150361
- basePath = path2;
150362
- };
150363
- var resolvePath = (path2) => {
150364
- if (path2.startsWith(".") && basePath) {
150365
- return join11(basePath, path2);
150366
- }
150367
- return path2;
150368
- };
150369
- var RelativePathSchema = exports_external.string().transform((path2) => resolvePath(path2));
150370
-
150371
- // src/config/schema/local-file.ts
150387
+ import { stat as stat3 } from "fs/promises";
150372
150388
  var LocalFileSchema = exports_external.union([
150373
150389
  RelativePathSchema.refine(async (path2) => {
150374
150390
  try {
150375
- const s2 = await stat2(path2);
150391
+ const s2 = await stat3(path2);
150376
150392
  return s2.isFile();
150377
150393
  } catch (error3) {
150378
150394
  return false;
@@ -151222,11 +151238,11 @@ var IndexSchema = exports_external.object({
151222
151238
  var SearchsSchema = exports_external.record(IndexNameSchema, IndexSchema).optional().describe("Define the search indexes in your stack, backed by the one shared OpenSearch domain of your app. The physical index name is prefixed with the stack name.");
151223
151239
 
151224
151240
  // src/config/schema/local-directory.ts
151225
- import { stat as stat3 } from "fs/promises";
151241
+ import { stat as stat4 } from "fs/promises";
151226
151242
  var LocalDirectorySchema = exports_external.union([
151227
151243
  RelativePathSchema.refine(async (path2) => {
151228
151244
  try {
151229
- const s2 = await stat3(path2);
151245
+ const s2 = await stat4(path2);
151230
151246
  return s2.isDirectory();
151231
151247
  } catch (error3) {
151232
151248
  return false;
@@ -151304,6 +151320,7 @@ var AppSchema = exports_external.object({
151304
151320
  profile: exports_external.string().describe("The AWS profile to deploy to."),
151305
151321
  protect: exports_external.boolean().default(false).describe("Protect your app & stacks from being deleted."),
151306
151322
  configs: ConfigsSchema,
151323
+ seed: LocalEntrySchema.optional().describe("The file that seeds your local dev environment with data. It runs with the full local environment on the first dev boot & through the dashboard reseed button. One app wide file, so the seeding order is explicit."),
151307
151324
  removal: exports_external.enum(["remove", "retain"]).default("remove").describe([
151308
151325
  "Configure how your resources are handled when they have to be removed.",
151309
151326
  "",
@@ -151330,22 +151347,6 @@ var AppSchema = exports_external.object({
151330
151347
  test: TestDefaultSchema
151331
151348
  }).strict();
151332
151349
 
151333
- // src/config/schema/local-entry.ts
151334
- import { stat as stat4 } from "fs/promises";
151335
- var LocalEntrySchema = exports_external.union([
151336
- RelativePathSchema.refine(async (path2) => {
151337
- try {
151338
- const s2 = await stat4(path2);
151339
- return s2.isFile() || s2.isDirectory();
151340
- } catch (error3) {
151341
- return false;
151342
- }
151343
- }, `File or directory doesn't exist`),
151344
- exports_external.object({
151345
- nocheck: RelativePathSchema.describe("Specifies a local file or directory without checking if the file or directory exists.")
151346
- }).transform((v3) => v3.nocheck)
151347
- ]);
151348
-
151349
151350
  // src/feature/cache/schema.ts
151350
151351
  var StorageSchema = SizeSchema.refine(sizeMin(gibibytes(1)), "Minimum storage size is 1 GB").refine(sizeMax(gibibytes(5000)), "Maximum storage size is 5000 GB");
151351
151352
  var MinimumStorageSchema = StorageSchema.describe("The lower limit for data storage the cache is set to use. You can specify a size value from 1 GB to 5000 GB.");
@@ -151668,7 +151669,6 @@ var StackSchema = exports_external.object({
151668
151669
  pubsub: PubSubSchema,
151669
151670
  searchs: SearchsSchema,
151670
151671
  sites: SitesSchema,
151671
- seed: LocalEntrySchema.optional().describe("The file that seeds your local dev environment with data. It runs with the full local environment on the first dev boot & through the dashboard reseed button."),
151672
151672
  tests: TestsSchema,
151673
151673
  images: ImagesSchema,
151674
151674
  icons: IconsSchema,
@@ -166209,7 +166209,7 @@ var watchConfig = async (options, resolve5, reject) => {
166209
166209
 
166210
166210
  // src/dev/index.ts
166211
166211
  import { loadWorkspace as loadWorkspace3 } from "@awsless/ts-file-cache";
166212
- import { mkdir as mkdir11, rm as rm12, writeFile as writeFile15 } from "fs/promises";
166212
+ import { mkdir as mkdir10, rm as rm12, writeFile as writeFile14 } from "fs/promises";
166213
166213
  import { join as join54 } from "path";
166214
166214
 
166215
166215
  // src/dev/context.ts
@@ -166518,88 +166518,50 @@ var createDevContext = (props) => {
166518
166518
 
166519
166519
  // src/dev/seed.ts
166520
166520
  import { spawn as spawn5 } from "child_process";
166521
- import { mkdir as mkdir9, writeFile as writeFile12 } from "fs/promises";
166522
166521
  import { isAbsolute as isAbsolute4, join as join50 } from "path";
166523
- import { pathToFileURL } from "url";
166524
- var MARKER = "__awsless_seed__:";
166525
166522
  var createSeedRunner = (props) => {
166526
- const seeds = props.stackConfigs.filter((stack) => stack.seed).map((stack) => ({
166527
- name: stack.name,
166528
- file: isAbsolute4(stack.seed) ? stack.seed : join50(directories.root, stack.seed)
166529
- }));
166523
+ const file2 = props.seed && (isAbsolute4(props.seed) ? props.seed : join50(directories.root, props.seed));
166530
166524
  let running;
166531
166525
  const run = () => {
166532
166526
  running ??= (async () => {
166533
166527
  try {
166534
- const runner = seeds.map((entry) => {
166535
- return `console.log(${JSON.stringify(MARKER + entry.name)})
166536
- await import(${JSON.stringify(pathToFileURL(entry.file).href)})
166537
- `;
166538
- }).join("");
166539
- const runnerDir = join50(directories.output, "local");
166540
- const runnerFile = join50(runnerDir, "seed-runner.mjs");
166541
- await mkdir9(runnerDir, { recursive: true });
166542
- await writeFile12(runnerFile, runner);
166543
- const timings = [];
166528
+ if (!file2) {
166529
+ return;
166530
+ }
166531
+ debug(`Seeding from ${props.seed}`);
166544
166532
  await new Promise((resolve5, reject) => {
166545
- const child = spawn5("bun", [runnerFile], {
166533
+ const child = spawn5("bun", [file2], {
166546
166534
  cwd: directories.root,
166547
166535
  stdio: ["ignore", "pipe", "pipe"],
166548
166536
  env: { ...process.env, ...props.env }
166549
166537
  });
166550
- let current;
166551
- let started = Date.now();
166552
166538
  const output = [];
166553
- let buffered = "";
166554
166539
  const capture = (chunk3) => {
166555
- buffered += chunk3.toString();
166556
- let index;
166557
- while ((index = buffered.indexOf(`
166558
- `)) >= 0) {
166559
- const line = buffered.slice(0, index);
166560
- buffered = buffered.slice(index + 1);
166561
- if (line.startsWith(MARKER)) {
166562
- if (current) {
166563
- timings.push([current, Date.now() - started]);
166564
- }
166565
- current = line.slice(MARKER.length);
166566
- started = Date.now();
166567
- debug(`Seeding the ${current} stack`);
166568
- } else {
166569
- output.push(line);
166570
- }
166571
- }
166540
+ output.push(chunk3.toString());
166572
166541
  };
166573
166542
  child.stdout?.on("data", capture);
166574
166543
  child.stderr?.on("data", capture);
166575
166544
  child.on("error", reject);
166576
166545
  child.on("exit", (code) => {
166577
- capture(Buffer.from(`
166578
- `));
166579
- const logs = output.join(`
166580
- `).trim();
166546
+ const logs = output.join("").trim();
166581
166547
  if (logs) {
166582
166548
  debug(logs);
166583
166549
  }
166584
166550
  if (code === 0) {
166585
- if (current) {
166586
- timings.push([current, Date.now() - started]);
166587
- }
166588
166551
  resolve5();
166589
166552
  } else {
166590
- reject(new Error(`The seed of the "${current ?? seeds[0]?.name}" stack exited with code ${code}:
166553
+ reject(new Error(`The seed exited with code ${code}:
166591
166554
  ${logs}`));
166592
166555
  }
166593
166556
  });
166594
166557
  });
166595
- return timings;
166596
166558
  } finally {
166597
166559
  running = undefined;
166598
166560
  }
166599
166561
  })();
166600
166562
  return running;
166601
166563
  };
166602
- return { count: seeds.length, run };
166564
+ return { count: file2 ? 1 : 0, run };
166603
166565
  };
166604
166566
 
166605
166567
  // src/dev/dashboard/index.ts
@@ -166607,13 +166569,13 @@ var import_ioredis5 = __toESM(require_built3(), 1);
166607
166569
  import { DynamoDBClient as DynamoDBClient5 } from "@aws-sdk/client-dynamodb";
166608
166570
  import { DynamoDBDocumentClient, ScanCommand as ScanCommand2 } from "@aws-sdk/lib-dynamodb";
166609
166571
  import { randomUUID as randomUUID6 } from "crypto";
166610
- import { readdir as readdir9, readFile as readFile22, stat as stat8, writeFile as writeFile14 } from "fs/promises";
166572
+ import { readdir as readdir9, readFile as readFile22, stat as stat8, writeFile as writeFile13 } from "fs/promises";
166611
166573
  import { createServer as createServer9 } from "http";
166612
166574
  import { join as join52, relative as relative10, sep as sep5 } from "path";
166613
166575
 
166614
166576
  // src/dev/worker.ts
166615
166577
  import { spawn as spawn6 } from "child_process";
166616
- import { writeFile as writeFile13 } from "fs/promises";
166578
+ import { writeFile as writeFile12 } from "fs/promises";
166617
166579
  import { join as join51 } from "path";
166618
166580
  class WorkerError extends Error {
166619
166581
  name;
@@ -166631,18 +166593,16 @@ import { format } from 'node:util'
166631
166593
  let handler
166632
166594
  let getCurrentRoute = () => undefined
166633
166595
 
166634
- // Console output is tagged with the active bundle route (invisible
166635
- // \\x1f markers), so the dev cli can attribute every log line to the
166636
- // function that wrote it - accurate even under concurrent requests,
166637
- // since the route comes from the bundle's async context.
166596
+ // Every console call writes ONE framed record: an invisible \\x1f
166597
+ // marker with the active bundle route & the json-encoded text, so
166598
+ // multi-line output stays a single log entry downstream. The route
166599
+ // comes from the bundle's async context, accurate even under
166600
+ // concurrent requests.
166638
166601
  const patchConsole = (method, stream) => {
166639
166602
  console[method] = (...args) => {
166640
166603
  const route = getCurrentRoute() ?? ''
166641
- const text = format(...args)
166642
166604
 
166643
- for (const line of text.split('\\n')) {
166644
- stream.write('\\x1f' + route + '\\x1f' + line + '\\n')
166645
- }
166605
+ stream.write('\\x1f' + route + '\\x1f' + JSON.stringify(format(...args)) + '\\n')
166646
166606
  }
166647
166607
  }
166648
166608
 
@@ -166734,7 +166694,7 @@ var createBundleWorker = (props) => {
166734
166694
  };
166735
166695
  const start = async () => {
166736
166696
  const entry = join51(props.buildDir, "worker.mjs");
166737
- await writeFile13(entry, WORKER_ENTRY);
166697
+ await writeFile12(entry, WORKER_ENTRY);
166738
166698
  port = await findFreePort();
166739
166699
  child = spawn6("node", ["--enable-source-maps", entry], {
166740
166700
  cwd: props.buildDir,
@@ -166745,24 +166705,32 @@ var createBundleWorker = (props) => {
166745
166705
  AWSLESS_DEV_WORKER_PORT: String(port)
166746
166706
  }
166747
166707
  });
166708
+ const buffers = { stdout: "", stderr: "" };
166748
166709
  const capture = (stream2) => (chunk3) => {
166749
- for (const raw of chunk3.toString().split(`
166750
- `)) {
166710
+ buffers[stream2] += chunk3.toString();
166711
+ const parts = buffers[stream2].split(`
166712
+ `);
166713
+ buffers[stream2] = parts.pop() ?? "";
166714
+ for (const raw of parts) {
166751
166715
  if (raw === "") {
166752
166716
  continue;
166753
166717
  }
166754
- let line = raw;
166718
+ let text2 = raw;
166755
166719
  let route;
166756
166720
  if (raw.startsWith("\x1F")) {
166757
166721
  const end = raw.indexOf("\x1F", 1);
166758
166722
  if (end > 0) {
166759
166723
  route = raw.slice(1, end) || undefined;
166760
- line = raw.slice(end + 1);
166724
+ try {
166725
+ text2 = JSON.parse(raw.slice(end + 1));
166726
+ } catch (_4) {
166727
+ text2 = raw.slice(end + 1);
166728
+ }
166761
166729
  }
166762
166730
  }
166763
- process[stream2].write((route ? `[${route}] ` : "") + line + `
166731
+ process[stream2].write((route ? `[${route}] ` : "") + text2 + `
166764
166732
  `);
166765
- const clean = stripAnsi2(line);
166733
+ const clean = stripAnsi2(text2);
166766
166734
  if (clean.trim() !== "") {
166767
166735
  props.onOutput?.(clean, stream2, route);
166768
166736
  }
@@ -166875,9 +166843,12 @@ var dashboardHtml = `<!doctype html>
166875
166843
  }
166876
166844
  .logs .line { display: flex; gap: 8px; padding: 1px 0; }
166877
166845
  .logs .time { color: var(--muted); flex-shrink: 0; }
166878
- .logs .route { color: var(--accent); max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
166846
+ .logs .route { color: var(--accent); word-break: break-all; }
166879
166847
  .logs .text { white-space: pre-wrap; word-break: break-word; }
166880
- .logs .line.error .text { color: var(--bad); }
166848
+ .logs .line.error .text, .logs .entry.error .text { color: var(--bad); }
166849
+ .logs .entry { padding: 4px 0; }
166850
+ .logs .entry + .entry, .logs .line + .entry, .logs .entry + .line { border-top: 1px solid var(--border); }
166851
+ .logs .entry .meta { display: flex; gap: 8px; margin-bottom: 2px; }
166881
166852
  .config-form { display: flex; flex-direction: column; gap: 8px; max-width: 520px; }
166882
166853
  .config-form .field { display: grid; grid-template-columns: 180px 1fr; gap: 12px; align-items: center; }
166883
166854
  .config-form .name { color: var(--muted); overflow-wrap: anywhere; }
@@ -167431,11 +167402,27 @@ const attachLogFeed = (main, channel, route, title = 'Logs') => {
167431
167402
  }
167432
167403
 
167433
167404
  feed.querySelector('.empty')?.remove()
167434
- feed.append($('div', { className: 'line' + (data.error ? ' error' : '') }, [
167435
- $('span', { className: 'time' }, new Date(data.date).toLocaleTimeString()),
167436
- !route && data.route ? $('span', { className: 'route' }, data.route) : '',
167437
- $('span', { className: 'text' }, data.line),
167438
- ]))
167405
+
167406
+ const error = data.error ? ' error' : ''
167407
+ const showRoute = !route && data.route
167408
+
167409
+ // Tagged or multi-line records render as a block with the
167410
+ // metadata on its own header line, so long route names never
167411
+ // squeeze the text. Plain lines keep the compact row.
167412
+ if (showRoute || data.line.includes('\\n')) {
167413
+ feed.append($('div', { className: 'entry' + error }, [
167414
+ $('div', { className: 'meta' }, [
167415
+ $('span', { className: 'time' }, new Date(data.date).toLocaleTimeString()),
167416
+ showRoute ? $('span', { className: 'route' }, data.route) : '',
167417
+ ]),
167418
+ $('div', { className: 'text' }, data.line),
167419
+ ]))
167420
+ } else {
167421
+ feed.append($('div', { className: 'line' + error }, [
167422
+ $('span', { className: 'time' }, new Date(data.date).toLocaleTimeString()),
167423
+ $('span', { className: 'text' }, data.line),
167424
+ ]))
167425
+ }
167439
167426
 
167440
167427
  // Only the last 200 lines stay around, pinned to the bottom.
167441
167428
  while (feed.children.length > 200) {
@@ -168343,7 +168330,7 @@ var createDashboardServer = (props) => {
168343
168330
  if (url.pathname === "/api/config") {
168344
168331
  if (req.method === "PUT") {
168345
168332
  const values2 = JSON.parse((await readBody3(req)).toString() || "{}");
168346
- await writeFile14(props.configFile, JSON.stringify(values2, null, "\t") + `
168333
+ await writeFile13(props.configFile, JSON.stringify(values2, null, "\t") + `
168347
168334
  `);
168348
168335
  return { status: 200, body: JSON.stringify({ ok: true }) };
168349
168336
  }
@@ -168579,7 +168566,7 @@ var createLambdaServer = (props) => {
168579
168566
  };
168580
168567
 
168581
168568
  // src/dev/sdk.ts
168582
- import { readdir as readdir10, readFile as readFile23, mkdir as mkdir10, rm as rm11, symlink } from "fs/promises";
168569
+ import { readdir as readdir10, readFile as readFile23, mkdir as mkdir9, rm as rm11, symlink } from "fs/promises";
168583
168570
  import { createRequire } from "module";
168584
168571
  import { dirname as dirname22, join as join53 } from "path";
168585
168572
  var linkSdkPackages = async (buildDir, onWarn) => {
@@ -168622,7 +168609,7 @@ var linkSdkPackages = async (buildDir, onWarn) => {
168622
168609
  }
168623
168610
  }
168624
168611
  const target2 = join53(buildDir, "node_modules", name);
168625
- await mkdir10(dirname22(target2), { recursive: true });
168612
+ await mkdir9(dirname22(target2), { recursive: true });
168626
168613
  await rm11(target2, { recursive: true, force: true });
168627
168614
  await symlink(source, target2, "dir");
168628
168615
  }
@@ -168645,7 +168632,7 @@ var startDev = async (props) => {
168645
168632
  dev: true
168646
168633
  });
168647
168634
  ready2();
168648
- await mkdir11(join54(directories.output, "local"), { recursive: true });
168635
+ await mkdir10(join54(directories.output, "local"), { recursive: true });
168649
168636
  const routerPorts = {};
168650
168637
  Object.keys(appConfig.router ?? {}).forEach((id, index) => {
168651
168638
  routerPorts[id] = props.port + 1 + index;
@@ -168700,7 +168687,7 @@ var startDev = async (props) => {
168700
168687
  for (const [id, port] of Object.entries(routerPorts)) {
168701
168688
  env5[`ROUTER_${constantCase(id)}_ENDPOINT`] = `localhost:${port}`;
168702
168689
  }
168703
- await writeFile15(join54(directories.output, "local", "env.json"), JSON.stringify(env5, null, "\t") + `
168690
+ await writeFile14(join54(directories.output, "local", "env.json"), JSON.stringify(env5, null, "\t") + `
168704
168691
  `);
168705
168692
  return { env: env5, lambda: lambda2 };
168706
168693
  });
@@ -168715,7 +168702,7 @@ var startDev = async (props) => {
168715
168702
  }
168716
168703
  debug(`Build ${builder.type}:${builder.name}`, meta?.cached ? "cached" : String(meta?.buildTime));
168717
168704
  }
168718
- await writeFile15(getBuildPath("bundle", bundleName, "files/awsless-env.mjs"), `export default {}
168705
+ await writeFile14(getBuildPath("bundle", bundleName, "files/awsless-env.mjs"), `export default {}
168719
168706
  `);
168720
168707
  await linkSdkPackages(buildDir, log);
168721
168708
  return changed;
@@ -168798,12 +168785,12 @@ var startDev = async (props) => {
168798
168785
  restartNeeded = true;
168799
168786
  }
168800
168787
  });
168801
- const seeder = createSeedRunner({ stackConfigs, env: env4 });
168788
+ const seeder = createSeedRunner({ seed: appConfig.seed, env: env4 });
168802
168789
  const resetData = createDataReset({ pool: props.pool, appConfig, stackConfigs });
168803
168790
  if (firstBoot && seeder.count > 0 && !dirty) {
168804
168791
  try {
168805
- await phase({ start: "Seeding the local data...", done: "Seeded the local data" }, async (detail) => {
168806
- detail(breakdown(await seeder.run()));
168792
+ await phase({ start: "Seeding the local data...", done: "Seeded the local data" }, async () => {
168793
+ await seeder.run();
168807
168794
  });
168808
168795
  } catch (error3) {
168809
168796
  log(`Seeding failed: ${error3 instanceof Error ? error3.message : String(error3)}`);
@@ -168935,7 +168922,7 @@ var createServerPool = () => {
168935
168922
  };
168936
168923
 
168937
168924
  // src/type-gen/generate.ts
168938
- import { mkdir as mkdir12, writeFile as writeFile16 } from "fs/promises";
168925
+ import { mkdir as mkdir11, writeFile as writeFile15 } from "fs/promises";
168939
168926
  import { dirname as dirname23, join as join55, relative as relative11 } from "path";
168940
168927
  var generateTypes = async (props) => {
168941
168928
  const files = [];
@@ -168949,8 +168936,8 @@ var generateTypes = async (props) => {
168949
168936
  if (include) {
168950
168937
  files.push(relative11(directories.root, path6));
168951
168938
  }
168952
- await mkdir12(dirname23(path6), { recursive: true });
168953
- await writeFile16(path6, code);
168939
+ await mkdir11(dirname23(path6), { recursive: true });
168940
+ await writeFile15(path6, code);
168954
168941
  }
168955
168942
  }
168956
168943
  });
@@ -168958,7 +168945,7 @@ var generateTypes = async (props) => {
168958
168945
  if (files.length) {
168959
168946
  const code = files.map((file2) => `/// <reference path='${file2}' />`).join(`
168960
168947
  `);
168961
- await writeFile16(join55(directories.root, `awsless.d.ts`), code);
168948
+ await writeFile15(join55(directories.root, `awsless.d.ts`), code);
168962
168949
  }
168963
168950
  };
168964
168951
 
@@ -184587,7 +184574,7 @@ var state = (program3) => {
184587
184574
  };
184588
184575
 
184589
184576
  // src/cli/command/test.ts
184590
- import { mkdir as mkdir13, writeFile as writeFile17 } from "fs/promises";
184577
+ import { mkdir as mkdir12, writeFile as writeFile16 } from "fs/promises";
184591
184578
  import { join as join57 } from "path";
184592
184579
 
184593
184580
  // src/test/manifest.ts
@@ -184713,8 +184700,8 @@ var test2 = (program3) => {
184713
184700
  await redis.ping();
184714
184701
  manifest.servers.redis = { host: "127.0.0.1", port: await redis.getPort() };
184715
184702
  }
184716
- await mkdir13(join57(directories.output, "test"), { recursive: true });
184717
- await writeFile17(manifestFile, JSON.stringify(manifest));
184703
+ await mkdir12(join57(directories.output, "test"), { recursive: true });
184704
+ await writeFile16(manifestFile, JSON.stringify(manifest));
184718
184705
  process.env.AWSLESS_TEST_MANIFEST = manifestFile;
184719
184706
  let passed = false;
184720
184707
  try {