@awsless/awsless 0.0.602 → 0.0.603

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
@@ -532,8 +532,8 @@ var findRootDir = async (path, configFiles, level = 5) => {
532
532
  };
533
533
  var fileExist = async (file) => {
534
534
  try {
535
- const stat5 = await lstat(file);
536
- if (stat5.isFile()) {
535
+ const stat4 = await lstat(file);
536
+ if (stat4.isFile()) {
537
537
  return true;
538
538
  }
539
539
  } catch (error) {
@@ -2144,8 +2144,8 @@ var stats = {
2144
2144
  };
2145
2145
  var WhereSchema = z40.union([
2146
2146
  z40.string().regex(/(count|avg|sum|min|max) (>|>=|<|<=) (\d)/, "Invalid where query").transform((where) => {
2147
- const [stat5, op, value] = where.split(" ");
2148
- return { stat: stat5, op, value: parseFloat(value) };
2147
+ const [stat4, op, value] = where.split(" ");
2148
+ return { stat: stat4, op, value: parseFloat(value) };
2149
2149
  }),
2150
2150
  z40.object({
2151
2151
  stat: z40.enum(["count", "avg", "sum", "min", "max"]),
@@ -3204,14 +3204,14 @@ var createHashFromFile = (file) => {
3204
3204
  var listAllFiles = async (list3) => {
3205
3205
  const files = [];
3206
3206
  for (const entry of list3) {
3207
- const stat5 = await lstat2(entry);
3208
- if (stat5.isDirectory()) {
3207
+ const stat4 = await lstat2(entry);
3208
+ if (stat4.isDirectory()) {
3209
3209
  const dirents = await readdir(entry, {
3210
3210
  recursive: true,
3211
3211
  withFileTypes: true
3212
3212
  });
3213
3213
  files.push(...dirents.filter((d) => d.isFile()).map((file) => join7(file.path, file.name)));
3214
- } else if (stat5.isFile()) {
3214
+ } else if (stat4.isFile()) {
3215
3215
  files.push(entry);
3216
3216
  }
3217
3217
  }
@@ -7697,15 +7697,14 @@ var playErrorSound = () => {
7697
7697
  // src/cli/ui/app.ts
7698
7698
  import { log as log3 } from "@awsless/clui";
7699
7699
  var logApp = (app, opt) => {
7700
- const data = {
7700
+ log3.list("App Config", {
7701
7701
  App: app.name,
7702
7702
  Region: app.region,
7703
- Profile: app.profile
7704
- };
7705
- if (opt.stage) {
7706
- data.Stage = color.warning(opt.stage);
7707
- }
7708
- log3.list("App Config", data);
7703
+ Profile: app.profile,
7704
+ ...opt.stage ? {
7705
+ Stage: color.warning(opt.stage)
7706
+ } : {}
7707
+ });
7709
7708
  };
7710
7709
 
7711
7710
  // src/cli/ui/error/error.ts
@@ -7751,12 +7750,12 @@ var formatOperation = (operation) => {
7751
7750
  case "import":
7752
7751
  return color.success.bold.inverse(value);
7753
7752
  case "update":
7753
+ case "replace":
7754
7754
  return color.warning.bold.inverse(value);
7755
7755
  case "delete":
7756
7756
  return color.error.bold.inverse(value);
7757
- case "heal":
7758
- return color.warning.bold.inverse(value);
7759
7757
  case "get":
7758
+ case "resolve":
7760
7759
  return color.info.bold.inverse(value);
7761
7760
  }
7762
7761
  return color.primary.bold.inverse(value);
@@ -8653,80 +8652,17 @@ import wildstring4 from "wildstring";
8653
8652
 
8654
8653
  // src/cli/ui/complex/run-tests.ts
8655
8654
  import { log as log16 } from "@awsless/clui";
8656
- import { mkdir as mkdir4, readFile as readFile6, writeFile as writeFile3 } from "fs/promises";
8657
- import { join as join19 } from "path";
8655
+ import { mkdir as mkdir4, readFile as readFile5, writeFile as writeFile3 } from "fs/promises";
8656
+ import { join as join18 } from "path";
8658
8657
  import wildstring3 from "wildstring";
8659
-
8660
- // src/build/__fingerprint.ts
8661
- import { createHash as createHash6 } from "crypto";
8662
- import { readdir as readdir4, readFile as readFile5, stat as stat4 } from "fs/promises";
8663
- import { basename as basename4, dirname as dirname9, extname as extname4, join as join17 } from "path";
8664
- import parseStaticImports from "parse-static-imports";
8665
- var extensions = ["js", "mjs", "jsx", "ts", "mts", "tsx"];
8666
- var generateFileHashes = async (file, hashes) => {
8667
- if (hashes.has(file)) {
8668
- return;
8669
- }
8670
- const code = await readModuleFile(file);
8671
- const deps = await findDependencies(file, code);
8672
- const hash = createHash6("sha1").update(code).digest();
8673
- hashes.set(file, hash);
8674
- for (const dep of deps) {
8675
- if (dep.startsWith("/")) {
8676
- await generateFileHashes(dep, hashes);
8677
- }
8678
- }
8679
- };
8680
- var fingerprintFromDirectory = async (dir) => {
8681
- const hashes = /* @__PURE__ */ new Map();
8682
- const files = await readdir4(dir, { recursive: true });
8683
- for (const file of files) {
8684
- if (extensions.includes(extname4(file).substring(1)) && file.at(0) !== "_") {
8685
- await generateFileHashes(join17(dir, file), hashes);
8686
- }
8687
- }
8688
- const merge = Buffer.concat(Array.from(hashes.values()).sort());
8689
- return createHash6("sha1").update(merge).digest("hex");
8690
- };
8691
- var readModuleFile = (file) => {
8692
- if (file.endsWith(".js")) {
8693
- return readFiles([file, file.substring(0, file.length - 3) + ".ts"]);
8694
- }
8695
- if (!basename4(file).includes(".")) {
8696
- return readFiles([
8697
- file,
8698
- ...extensions.map((exp) => `${file}.${exp}`),
8699
- ...extensions.map((exp) => join17(file, `/index.${exp}`))
8700
- ]);
8701
- }
8702
- return readFile5(file, "utf8");
8703
- };
8704
- var readFiles = async (files) => {
8705
- for (const file of files) {
8706
- try {
8707
- const s = await stat4(file);
8708
- if (s.isFile()) {
8709
- return readFile5(file, "utf8");
8710
- }
8711
- } catch (_) {
8712
- continue;
8713
- }
8714
- }
8715
- throw new Error(`No such file: ${files.join(", ")}`);
8716
- };
8717
- var findDependencies = async (file, code) => {
8718
- const imports = await parseStaticImports(code);
8719
- return imports.map((entry) => entry.moduleName).filter(Boolean).map((value) => value?.startsWith(".") ? join17(dirname9(file), value) : value);
8720
- };
8721
-
8722
- // src/cli/ui/complex/run-tests.ts
8723
8658
  import { parse as parse4, stringify } from "@awsless/json";
8659
+ import { generateFolderHash, loadWorkspace as loadWorkspace2 } from "@awsless/ts-file-cache";
8724
8660
 
8725
8661
  // src/test/start.ts
8726
8662
  import commonjs from "@rollup/plugin-commonjs";
8727
8663
  import json from "@rollup/plugin-json";
8728
8664
  import nodeResolve from "@rollup/plugin-node-resolve";
8729
- import { dirname as dirname10, join as join18 } from "path";
8665
+ import { dirname as dirname9, join as join17 } from "path";
8730
8666
  import { swc } from "rollup-plugin-swc3";
8731
8667
  import { fileURLToPath as fileURLToPath4 } from "url";
8732
8668
  import { configDefaults } from "vitest/config";
@@ -8734,7 +8670,7 @@ import { startVitest } from "vitest/node";
8734
8670
  var NullReporter = class {
8735
8671
  };
8736
8672
  var startTest = async (props) => {
8737
- const __dirname4 = dirname10(fileURLToPath4(import.meta.url));
8673
+ const __dirname4 = dirname9(fileURLToPath4(import.meta.url));
8738
8674
  const startTime = process.hrtime.bigint();
8739
8675
  process.noDeprecation = true;
8740
8676
  const vitest = await startVitest(
@@ -8757,7 +8693,7 @@ var startTest = async (props) => {
8757
8693
  // },
8758
8694
  setupFiles: [
8759
8695
  //
8760
- join18(__dirname4, "test-global-setup.js")
8696
+ join17(__dirname4, "test-global-setup.js")
8761
8697
  ]
8762
8698
  // globalSetup: [
8763
8699
  // //
@@ -8948,14 +8884,14 @@ var logTestErrors = (event) => {
8948
8884
  }
8949
8885
  }
8950
8886
  };
8951
- var runTest = async (stack, dir, filters, opts) => {
8887
+ var runTest = async (stack, dir, filters, workspace, opts) => {
8952
8888
  await mkdir4(directories.test, { recursive: true });
8953
- const file = join19(directories.test, `${stack}.json`);
8954
- const fingerprint = await fingerprintFromDirectory(dir);
8889
+ const file = join18(directories.test, `${stack}.json`);
8890
+ const fingerprint = await generateFolderHash(workspace, dir);
8955
8891
  if (!process.env.NO_CACHE) {
8956
8892
  const exists = await fileExist(file);
8957
8893
  if (exists) {
8958
- const raw = await readFile6(file, { encoding: "utf8" });
8894
+ const raw = await readFile5(file, { encoding: "utf8" });
8959
8895
  const data = parse4(raw);
8960
8896
  if (data.fingerprint === fingerprint) {
8961
8897
  log16.step(
@@ -9008,6 +8944,7 @@ var runTest = async (stack, dir, filters, opts) => {
9008
8944
  return result.errors.length === 0 && result.failed === 0;
9009
8945
  };
9010
8946
  var runTests = async (tests, stackFilters = [], testFilters = [], opts) => {
8947
+ const workspace = await loadWorkspace2(directories.root);
9011
8948
  for (const test2 of tests) {
9012
8949
  if (stackFilters && stackFilters.length > 0) {
9013
8950
  const found = stackFilters.find((f) => wildstring3.match(f, test2.stackName));
@@ -9016,7 +8953,7 @@ var runTests = async (tests, stackFilters = [], testFilters = [], opts) => {
9016
8953
  }
9017
8954
  }
9018
8955
  for (const path of test2.paths) {
9019
- const result = await runTest(test2.name, path, testFilters, opts);
8956
+ const result = await runTest(test2.name, path, testFilters, workspace, opts);
9020
8957
  if (!result) {
9021
8958
  return false;
9022
8959
  }
@@ -9635,7 +9572,7 @@ import { log as log23 } from "@awsless/clui";
9635
9572
 
9636
9573
  // src/type-gen/generate.ts
9637
9574
  import { mkdir as mkdir5, writeFile as writeFile4 } from "fs/promises";
9638
- import { dirname as dirname11, join as join20, relative as relative7 } from "path";
9575
+ import { dirname as dirname10, join as join19, relative as relative7 } from "path";
9639
9576
  var generateTypes = async (props) => {
9640
9577
  const files = [];
9641
9578
  await Promise.all(
@@ -9644,12 +9581,12 @@ var generateTypes = async (props) => {
9644
9581
  ...props,
9645
9582
  async write(file, data, include = false) {
9646
9583
  const code = data?.toString("utf8");
9647
- const path = join20(directories.types, file);
9584
+ const path = join19(directories.types, file);
9648
9585
  if (code) {
9649
9586
  if (include) {
9650
9587
  files.push(relative7(directories.root, path));
9651
9588
  }
9652
- await mkdir5(dirname11(path), { recursive: true });
9589
+ await mkdir5(dirname10(path), { recursive: true });
9653
9590
  await writeFile4(path, code);
9654
9591
  }
9655
9592
  }
@@ -9658,7 +9595,7 @@ var generateTypes = async (props) => {
9658
9595
  );
9659
9596
  if (files.length) {
9660
9597
  const code = files.map((file) => `/// <reference path='${file}' />`).join("\n");
9661
- await writeFile4(join20(directories.root, `awsless.d.ts`), code);
9598
+ await writeFile4(join19(directories.root, `awsless.d.ts`), code);
9662
9599
  }
9663
9600
  };
9664
9601
 
@@ -9682,7 +9619,9 @@ var dev = (program2) => {
9682
9619
  logError(error);
9683
9620
  }
9684
9621
  );
9685
- await new Promise(() => {
9622
+ await new Promise((resolve) => {
9623
+ process.once("exit", resolve);
9624
+ process.once("SIGINT", resolve);
9686
9625
  });
9687
9626
  });
9688
9627
  });
@@ -10043,12 +9982,12 @@ var logs = (program2) => {
10043
9982
  credentials,
10044
9983
  region
10045
9984
  });
10046
- const abort = new AbortController();
9985
+ const controller = new AbortController();
10047
9986
  process.once("exit", () => {
10048
- abort.abort();
9987
+ controller.abort();
10049
9988
  });
10050
9989
  process.once("SIGINT", () => {
10051
- abort.abort();
9990
+ controller.abort();
10052
9991
  });
10053
9992
  const streams = await log27.task({
10054
9993
  initialMessage: "Connecting to the log stream...",
@@ -10060,7 +9999,7 @@ var logs = (program2) => {
10060
9999
  logGroupIdentifiers: arns
10061
10000
  });
10062
10001
  const response = await client.send(command, {
10063
- abortSignal: abort.signal
10002
+ abortSignal: controller.signal
10064
10003
  });
10065
10004
  if (!response.responseStream) {
10066
10005
  throw new Error("Failed to connect to the log stream.");
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/awsless",
3
- "version": "0.0.602",
3
+ "version": "0.0.603",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -36,19 +36,19 @@
36
36
  "@awsless/big-float": "^0.1.5",
37
37
  "@awsless/cloudwatch": "^0.0.1",
38
38
  "@awsless/duration": "^0.0.4",
39
- "@awsless/clui": "^0.0.8",
40
- "@awsless/json": "^0.0.10",
41
39
  "@awsless/dynamodb": "^0.3.8",
42
40
  "@awsless/iot": "^0.0.3",
41
+ "@awsless/json": "^0.0.10",
43
42
  "@awsless/lambda": "^0.0.35",
44
43
  "@awsless/mqtt": "^0.0.2",
45
- "@awsless/s3": "^0.0.21",
46
44
  "@awsless/open-search": "^0.0.21",
47
- "@awsless/redis": "^0.0.14",
48
- "@awsless/sqs": "^0.0.16",
45
+ "@awsless/s3": "^0.0.21",
49
46
  "@awsless/sns": "^0.0.10",
50
47
  "@awsless/validate": "^0.1.3",
48
+ "@awsless/redis": "^0.0.14",
51
49
  "@awsless/ssm": "^0.0.7",
50
+ "@awsless/clui": "^0.0.8",
51
+ "@awsless/sqs": "^0.0.16",
52
52
  "@awsless/weak-cache": "^0.0.1"
53
53
  },
54
54
  "dependencies": {
@@ -140,15 +140,15 @@
140
140
  "zod": "^3.24.2",
141
141
  "zod-to-json-schema": "^3.24.3",
142
142
  "@awsless/big-float": "^0.1.5",
143
- "@awsless/cloudwatch": "^0.0.1",
144
143
  "@awsless/clui": "^0.0.8",
144
+ "@awsless/cloudwatch": "^0.0.1",
145
145
  "@awsless/duration": "^0.0.4",
146
146
  "@awsless/graphql": "^0.0.9",
147
147
  "@awsless/json": "^0.0.10",
148
+ "@awsless/scheduler": "^0.0.4",
148
149
  "@awsless/size": "^0.0.2",
149
150
  "@awsless/validate": "^0.1.3",
150
- "@awsless/ts-file-cache": "^0.0.12",
151
- "@awsless/scheduler": "^0.0.4"
151
+ "@awsless/ts-file-cache": "^0.0.12"
152
152
  },
153
153
  "devDependencies": {
154
154
  "@hono/node-server": "1.19.9",