@awsless/cli 0.0.46-local.12 → 0.0.46-local.14

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 (2) hide show
  1. package/dist/bin.js +91 -51
  2. package/package.json +17 -17
package/dist/bin.js CHANGED
@@ -152617,7 +152617,7 @@ class TypeFile {
152617
152617
  this.module = module;
152618
152618
  }
152619
152619
  addImport(varName, path2) {
152620
- this.imports.set(varName, path2);
152620
+ this.imports.set(varName, path2.replace(/\.(ts|tsx|mts)$/, ""));
152621
152621
  return this;
152622
152622
  }
152623
152623
  addCode(code) {
@@ -154940,19 +154940,19 @@ var configFeature = defineFeature({
154940
154940
  const gen = new TypeFile("awsless");
154941
154941
  const resources = new TypeObject(0, false);
154942
154942
  for (const name of ctx.appConfig.configs ?? []) {
154943
- resources.addType(name, "string");
154943
+ resources.addConst(name, "string");
154944
154944
  }
154945
154945
  for (const stack of ctx.stackConfigs) {
154946
154946
  for (const site of Object.values(stack.sites ?? {})) {
154947
154947
  for (const name of site.build?.configs ?? []) {
154948
- resources.addType(name, "string");
154948
+ resources.addConst(name, "string");
154949
154949
  }
154950
154950
  }
154951
154951
  }
154952
154952
  gen.addInterface("ConfigResources", resources.toString());
154953
- const testConfigs = new TypeObject(2);
154953
+ const testConfigs = new TypeObject(2, false);
154954
154954
  for (const name of ctx.appConfig.configs ?? []) {
154955
- testConfigs.addType(name, "(value: string) => void");
154955
+ testConfigs.addConst(name, "string");
154956
154956
  }
154957
154957
  const testMock = new TypeObject(1);
154958
154958
  testMock.addType("config", testConfigs);
@@ -155921,7 +155921,7 @@ type Response<F extends Func> = PartialDeep<Awaited<InvokeResponse<F>>, { recurs
155921
155921
  type MockHandle<F extends Func> = (payload: Parameters<F>[0]) => Promise<Response<F>> | Response<F> | void | Promise<void> | Promise<Promise<void>>
155922
155922
  type MockHandleOrResponse<F extends Func> = MockHandle<F> | Response<F>
155923
155923
  type MockBuilder<F extends Func> = (handleOrResponse?: MockHandleOrResponse<F>) => void
155924
- type MockObject<F extends Func> = Mock<Parameters<F>, ReturnType<F>>
155924
+ type MockObject<F extends Func> = Mock<(...args: Parameters<F>) => ReturnType<F>>
155925
155925
 
155926
155926
  // Calling overrides the implementation & the same value works as the
155927
155927
  // vitest mock inside expect().
@@ -157425,7 +157425,7 @@ type Send<Name extends string, F extends Func> = {
157425
157425
 
157426
157426
  type MockHandle<F extends Func> = (payload: Parameters<F>[0]) => void
157427
157427
  type MockBuilder<F extends Func> = (handle?: MockHandle<F>) => void
157428
- type MockObject<F extends Func> = Mock<Parameters<F>, ReturnType<F>>
157428
+ type MockObject<F extends Func> = Mock<(...args: Parameters<F>) => ReturnType<F>>
157429
157429
 
157430
157430
  // Calling overrides the implementation & the same value works as the
157431
157431
  // vitest mock inside expect().
@@ -159523,7 +159523,7 @@ type InvokeWithoutPayload<Name extends string, F extends Func> = {
159523
159523
 
159524
159524
  type MockHandle<F extends Func> = (payload: Parameters<F>[0]) => void | Promise<void> | Promise<Promise<void>>
159525
159525
  type MockBuilder<F extends Func> = (handle?: MockHandle<F>) => void
159526
- type MockObject<F extends Func> = Mock<Parameters<F>, ReturnType<F>>
159526
+ type MockObject<F extends Func> = Mock<(...args: Parameters<F>) => ReturnType<F>>
159527
159527
 
159528
159528
  // Calling overrides the implementation & the same value works as the
159529
159529
  // vitest mock inside expect().
@@ -160816,7 +160816,7 @@ type InvokeWithoutPayload<Name extends string, F extends Func> = {
160816
160816
 
160817
160817
  type MockHandle<F extends Func> = (payload: Parameters<F>[0]) => void | Promise<void>
160818
160818
  type MockBuilder<F extends Func> = (handle?: MockHandle<F>) => void
160819
- type MockObject<F extends Func> = Mock<Parameters<F>, ReturnType<F>>
160819
+ type MockObject<F extends Func> = Mock<(...args: Parameters<F>) => ReturnType<F>>
160820
160820
 
160821
160821
  // Calling overrides the implementation & the same value works as the
160822
160822
  // vitest mock inside expect().
@@ -165837,7 +165837,7 @@ var watchConfig = async (options, resolve5, reject) => {
165837
165837
 
165838
165838
  // src/dev/index.ts
165839
165839
  import { loadWorkspace as loadWorkspace3 } from "@awsless/ts-file-cache";
165840
- import { mkdir as mkdir10, rm as rm12, writeFile as writeFile13 } from "fs/promises";
165840
+ import { mkdir as mkdir11, rm as rm12, writeFile as writeFile14 } from "fs/promises";
165841
165841
  import { join as join53 } from "path";
165842
165842
 
165843
165843
  // src/dev/context.ts
@@ -166146,7 +166146,10 @@ var createDevContext = (props) => {
166146
166146
 
166147
166147
  // src/dev/seed.ts
166148
166148
  import { spawn as spawn5 } from "child_process";
166149
+ import { mkdir as mkdir9, writeFile as writeFile11 } from "fs/promises";
166149
166150
  import { isAbsolute as isAbsolute4, join as join49 } from "path";
166151
+ import { pathToFileURL } from "url";
166152
+ var MARKER = "__awsless_seed__:";
166150
166153
  var createSeedRunner = (props) => {
166151
166154
  const seeds = props.stackConfigs.filter((stack) => stack.seed).map((stack) => ({
166152
166155
  name: stack.name,
@@ -166156,33 +166159,68 @@ var createSeedRunner = (props) => {
166156
166159
  const run = () => {
166157
166160
  running ??= (async () => {
166158
166161
  try {
166159
- for (const entry of seeds) {
166160
- debug(`Seeding the ${entry.name} stack`);
166161
- await new Promise((resolve5, reject) => {
166162
- const child = spawn5("bun", [entry.file], {
166163
- cwd: directories.root,
166164
- stdio: ["ignore", "pipe", "pipe"],
166165
- env: { ...process.env, ...props.env }
166166
- });
166167
- const output = [];
166168
- const capture = (chunk3) => output.push(chunk3.toString());
166169
- child.stdout?.on("data", capture);
166170
- child.stderr?.on("data", capture);
166171
- child.on("error", reject);
166172
- child.on("exit", (code) => {
166173
- const logs = output.join("").trim();
166174
- if (logs) {
166175
- debug(logs);
166176
- }
166177
- if (code === 0) {
166178
- resolve5();
166162
+ const runner = seeds.map((entry) => {
166163
+ return `console.log(${JSON.stringify(MARKER + entry.name)})
166164
+ await import(${JSON.stringify(pathToFileURL(entry.file).href)})
166165
+ `;
166166
+ }).join("");
166167
+ const runnerDir = join49(directories.output, "local");
166168
+ const runnerFile = join49(runnerDir, "seed-runner.mjs");
166169
+ await mkdir9(runnerDir, { recursive: true });
166170
+ await writeFile11(runnerFile, runner);
166171
+ const timings = [];
166172
+ await new Promise((resolve5, reject) => {
166173
+ const child = spawn5("bun", [runnerFile], {
166174
+ cwd: directories.root,
166175
+ stdio: ["ignore", "pipe", "pipe"],
166176
+ env: { ...process.env, ...props.env }
166177
+ });
166178
+ let current;
166179
+ let started = Date.now();
166180
+ const output = [];
166181
+ let buffered = "";
166182
+ const capture = (chunk3) => {
166183
+ buffered += chunk3.toString();
166184
+ let index;
166185
+ while ((index = buffered.indexOf(`
166186
+ `)) >= 0) {
166187
+ const line = buffered.slice(0, index);
166188
+ buffered = buffered.slice(index + 1);
166189
+ if (line.startsWith(MARKER)) {
166190
+ if (current) {
166191
+ timings.push([current, Date.now() - started]);
166192
+ }
166193
+ current = line.slice(MARKER.length);
166194
+ started = Date.now();
166195
+ debug(`Seeding the ${current} stack`);
166179
166196
  } else {
166180
- reject(new Error(`The seed of the "${entry.name}" stack exited with code ${code}:
166181
- ${logs}`));
166197
+ output.push(line);
166182
166198
  }
166183
- });
166199
+ }
166200
+ };
166201
+ child.stdout?.on("data", capture);
166202
+ child.stderr?.on("data", capture);
166203
+ child.on("error", reject);
166204
+ child.on("exit", (code) => {
166205
+ capture(Buffer.from(`
166206
+ `));
166207
+ const logs = output.join(`
166208
+ `).trim();
166209
+ if (logs) {
166210
+ debug(logs);
166211
+ }
166212
+ if (code === 0) {
166213
+ if (current) {
166214
+ timings.push([current, Date.now() - started]);
166215
+ }
166216
+ resolve5();
166217
+ } else {
166218
+ reject(new Error(`The seed of the "${current ?? seeds[0]?.name}" stack exited with code ${code}:
166219
+ ${logs}`));
166220
+ }
166184
166221
  });
166185
- }
166222
+ });
166223
+ return timings;
166186
166224
  } finally {
166187
166225
  running = undefined;
166188
166226
  }
@@ -166197,13 +166235,13 @@ var import_ioredis5 = __toESM(require_built3(), 1);
166197
166235
  import { DynamoDBClient as DynamoDBClient4 } from "@aws-sdk/client-dynamodb";
166198
166236
  import { DynamoDBDocumentClient, ScanCommand as ScanCommand2 } from "@aws-sdk/lib-dynamodb";
166199
166237
  import { randomUUID as randomUUID5 } from "crypto";
166200
- import { readdir as readdir9, readFile as readFile21, stat as stat9, writeFile as writeFile12 } from "fs/promises";
166238
+ import { readdir as readdir9, readFile as readFile21, stat as stat9, writeFile as writeFile13 } from "fs/promises";
166201
166239
  import { createServer as createServer8 } from "http";
166202
166240
  import { join as join51, relative as relative10, sep as sep5 } from "path";
166203
166241
 
166204
166242
  // src/dev/worker.ts
166205
166243
  import { spawn as spawn6 } from "child_process";
166206
- import { writeFile as writeFile11 } from "fs/promises";
166244
+ import { writeFile as writeFile12 } from "fs/promises";
166207
166245
  import { join as join50 } from "path";
166208
166246
  class WorkerError extends Error {
166209
166247
  name;
@@ -166298,7 +166336,7 @@ var createBundleWorker = (props) => {
166298
166336
  };
166299
166337
  const start = async () => {
166300
166338
  const entry = join50(props.buildDir, "worker.mjs");
166301
- await writeFile11(entry, WORKER_ENTRY);
166339
+ await writeFile12(entry, WORKER_ENTRY);
166302
166340
  port = await findFreePort();
166303
166341
  child = spawn6("node", ["--enable-source-maps", entry], {
166304
166342
  cwd: props.buildDir,
@@ -167595,7 +167633,7 @@ var createDashboardServer = (props) => {
167595
167633
  if (url.pathname === "/api/config") {
167596
167634
  if (req.method === "PUT") {
167597
167635
  const values2 = JSON.parse((await readBody3(req)).toString() || "{}");
167598
- await writeFile12(props.configFile, JSON.stringify(values2, null, "\t") + `
167636
+ await writeFile13(props.configFile, JSON.stringify(values2, null, "\t") + `
167599
167637
  `);
167600
167638
  return { status: 200, body: JSON.stringify({ ok: true }) };
167601
167639
  }
@@ -167831,7 +167869,7 @@ var createLambdaServer = (props) => {
167831
167869
  };
167832
167870
 
167833
167871
  // src/dev/sdk.ts
167834
- import { readdir as readdir10, readFile as readFile22, mkdir as mkdir9, rm as rm11, symlink } from "fs/promises";
167872
+ import { readdir as readdir10, readFile as readFile22, mkdir as mkdir10, rm as rm11, symlink } from "fs/promises";
167835
167873
  import { createRequire } from "module";
167836
167874
  import { dirname as dirname22, join as join52 } from "path";
167837
167875
  var linkSdkPackages = async (buildDir, onWarn) => {
@@ -167861,7 +167899,7 @@ var linkSdkPackages = async (buildDir, onWarn) => {
167861
167899
  continue;
167862
167900
  }
167863
167901
  const target2 = join52(buildDir, "node_modules", name);
167864
- await mkdir9(dirname22(target2), { recursive: true });
167902
+ await mkdir10(dirname22(target2), { recursive: true });
167865
167903
  await rm11(target2, { recursive: true, force: true });
167866
167904
  await symlink(source, target2, "dir");
167867
167905
  }
@@ -167883,7 +167921,7 @@ var startDev = async (props) => {
167883
167921
  accountId: LOCAL_ACCOUNT_ID,
167884
167922
  dev: true
167885
167923
  });
167886
- await mkdir10(join53(directories.output, "local"), { recursive: true });
167924
+ await mkdir11(join53(directories.output, "local"), { recursive: true });
167887
167925
  const routerPorts = {};
167888
167926
  Object.keys(appConfig.router ?? {}).forEach((id, index) => {
167889
167927
  routerPorts[id] = props.port + 1 + index;
@@ -167938,7 +167976,7 @@ var startDev = async (props) => {
167938
167976
  for (const [id, port] of Object.entries(routerPorts)) {
167939
167977
  env5[`ROUTER_${constantCase(id)}_ENDPOINT`] = `localhost:${port}`;
167940
167978
  }
167941
- await writeFile13(join53(directories.output, "local", "env.json"), JSON.stringify(env5, null, "\t") + `
167979
+ await writeFile14(join53(directories.output, "local", "env.json"), JSON.stringify(env5, null, "\t") + `
167942
167980
  `);
167943
167981
  return { env: env5, lambda: lambda2 };
167944
167982
  });
@@ -167953,7 +167991,7 @@ var startDev = async (props) => {
167953
167991
  }
167954
167992
  debug(`Build ${builder.type}:${builder.name}`, meta?.cached ? "cached" : String(meta?.buildTime));
167955
167993
  }
167956
- await writeFile13(getBuildPath("bundle", bundleName, "files/awsless-env.mjs"), `export default {}
167994
+ await writeFile14(getBuildPath("bundle", bundleName, "files/awsless-env.mjs"), `export default {}
167957
167995
  `);
167958
167996
  await linkSdkPackages(buildDir, log);
167959
167997
  return changed;
@@ -168026,7 +168064,9 @@ var startDev = async (props) => {
168026
168064
  const resetData = createDataReset({ pool: props.pool, appConfig, stackConfigs });
168027
168065
  if (firstBoot && seeder.count > 0 && !dirty) {
168028
168066
  try {
168029
- await phase({ start: "Seeding the local data...", done: "Seeded the local data" }, () => seeder.run());
168067
+ await phase({ start: "Seeding the local data...", done: "Seeded the local data" }, async (detail) => {
168068
+ detail(breakdown(await seeder.run()));
168069
+ });
168030
168070
  } catch (error3) {
168031
168071
  log(`Seeding failed: ${error3 instanceof Error ? error3.message : String(error3)}`);
168032
168072
  }
@@ -168146,7 +168186,7 @@ var createServerPool = () => {
168146
168186
  };
168147
168187
 
168148
168188
  // src/type-gen/generate.ts
168149
- import { mkdir as mkdir11, writeFile as writeFile14 } from "fs/promises";
168189
+ import { mkdir as mkdir12, writeFile as writeFile15 } from "fs/promises";
168150
168190
  import { dirname as dirname23, join as join54, relative as relative11 } from "path";
168151
168191
  var generateTypes = async (props) => {
168152
168192
  const files = [];
@@ -168160,8 +168200,8 @@ var generateTypes = async (props) => {
168160
168200
  if (include) {
168161
168201
  files.push(relative11(directories.root, path6));
168162
168202
  }
168163
- await mkdir11(dirname23(path6), { recursive: true });
168164
- await writeFile14(path6, code);
168203
+ await mkdir12(dirname23(path6), { recursive: true });
168204
+ await writeFile15(path6, code);
168165
168205
  }
168166
168206
  }
168167
168207
  });
@@ -168169,7 +168209,7 @@ var generateTypes = async (props) => {
168169
168209
  if (files.length) {
168170
168210
  const code = files.map((file2) => `/// <reference path='${file2}' />`).join(`
168171
168211
  `);
168172
- await writeFile14(join54(directories.root, `awsless.d.ts`), code);
168212
+ await writeFile15(join54(directories.root, `awsless.d.ts`), code);
168173
168213
  }
168174
168214
  };
168175
168215
 
@@ -183798,7 +183838,7 @@ var state = (program3) => {
183798
183838
  };
183799
183839
 
183800
183840
  // src/cli/command/test.ts
183801
- import { mkdir as mkdir12, writeFile as writeFile15 } from "fs/promises";
183841
+ import { mkdir as mkdir13, writeFile as writeFile16 } from "fs/promises";
183802
183842
  import { join as join56 } from "path";
183803
183843
 
183804
183844
  // src/test/manifest.ts
@@ -183927,8 +183967,8 @@ var test2 = (program3) => {
183927
183967
  await redis.ping();
183928
183968
  manifest.servers.redis = { host: "127.0.0.1", port: await redis.getPort() };
183929
183969
  }
183930
- await mkdir12(join56(directories.output, "test"), { recursive: true });
183931
- await writeFile15(manifestFile, JSON.stringify(manifest));
183970
+ await mkdir13(join56(directories.output, "test"), { recursive: true });
183971
+ await writeFile16(manifestFile, JSON.stringify(manifest));
183932
183972
  process.env.AWSLESS_TEST_MANIFEST = manifestFile;
183933
183973
  let passed = false;
183934
183974
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/cli",
3
- "version": "0.0.46-local.12",
3
+ "version": "0.0.46-local.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -42,15 +42,15 @@
42
42
  "@awsless/ts-file-cache": "^0.0.16"
43
43
  },
44
44
  "peerDependencies": {
45
+ "@awsless/dynamodb": "^0.3.22",
45
46
  "@awsless/big-float": "^0.1.7",
46
- "@awsless/duration": "^0.0.4",
47
47
  "@awsless/json": "^0.0.11",
48
- "@awsless/dynamodb": "^0.3.22",
49
- "@awsless/lambda": "^0.0.47",
50
- "@awsless/validate": "^0.1.7",
51
48
  "@awsless/s3": "^0.0.22",
49
+ "@awsless/duration": "^0.0.4",
50
+ "@awsless/lambda": "^0.0.47",
52
51
  "@awsless/weak-cache": "^0.0.1",
53
- "awsless": "^0.0.15-local.3"
52
+ "@awsless/validate": "^0.1.7",
53
+ "awsless": "^0.0.15-local.6"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@aws-sdk/client-cloudformation": "^3.369.0",
@@ -120,25 +120,25 @@
120
120
  "zip-a-folder": "^3.1.6",
121
121
  "zod": "^3.24.2",
122
122
  "zod-to-json-schema": "^3.24.3",
123
- "@awsless/clui": "^0.0.9",
124
- "@awsless/cloudwatch": "^0.0.1",
125
123
  "@awsless/big-float": "^0.1.7",
126
- "@awsless/duration": "^0.0.4",
127
- "@awsless/iot": "^0.0.5",
128
124
  "@awsless/dynamodb": "^0.3.22",
129
- "@awsless/lambda": "^0.0.47",
125
+ "@awsless/iot": "^0.0.5",
126
+ "@awsless/clui": "^0.0.9",
127
+ "@awsless/duration": "^0.0.4",
130
128
  "@awsless/json": "^0.0.11",
129
+ "@awsless/open-search": "^0.0.24",
131
130
  "@awsless/s3": "^0.0.22",
132
- "@awsless/scheduler": "^0.0.5",
133
131
  "@awsless/redis": "^0.1.13",
132
+ "@awsless/scheduler": "^0.0.5",
133
+ "@awsless/lambda": "^0.0.47",
134
134
  "@awsless/sns": "^0.0.11",
135
- "@awsless/open-search": "^0.0.24",
136
- "@awsless/size": "^0.0.2",
137
135
  "@awsless/sqs": "^0.0.24",
138
- "@awsless/validate": "^0.1.7",
136
+ "@awsless/size": "^0.0.2",
137
+ "@awsless/cloudwatch": "^0.0.1",
139
138
  "@awsless/weak-cache": "^0.0.1",
140
- "awsless": "^0.0.15-local.3",
141
- "@awsless/ssm": "^0.0.8"
139
+ "@awsless/ssm": "^0.0.8",
140
+ "awsless": "^0.0.15-local.6",
141
+ "@awsless/validate": "^0.1.7"
142
142
  },
143
143
  "scripts": {
144
144
  "test": "bun cli/build-handlers.ts && pnpm vitest",