@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
|
|
536
|
-
if (
|
|
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 [
|
|
2148
|
-
return { stat:
|
|
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
|
|
3208
|
-
if (
|
|
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 (
|
|
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
|
-
|
|
7700
|
+
log3.list("App Config", {
|
|
7701
7701
|
App: app.name,
|
|
7702
7702
|
Region: app.region,
|
|
7703
|
-
Profile: app.profile
|
|
7704
|
-
|
|
7705
|
-
|
|
7706
|
-
|
|
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
|
|
8657
|
-
import { join as
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
8954
|
-
const fingerprint = await
|
|
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
|
|
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
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|
|
9985
|
+
const controller = new AbortController();
|
|
10047
9986
|
process.once("exit", () => {
|
|
10048
|
-
|
|
9987
|
+
controller.abort();
|
|
10049
9988
|
});
|
|
10050
9989
|
process.once("SIGINT", () => {
|
|
10051
|
-
|
|
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:
|
|
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.
|
|
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/
|
|
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",
|