@awsless/cli 0.0.46-next.30 → 0.0.46-next.32
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/app.json +1 -1
- package/dist/app.stage.json +1 -1
- package/dist/bin.js +6115 -5627
- package/dist/handlers/bundle.js +75 -2
- package/dist/handlers/on-error-log.js +7 -1
- package/dist/prebuild/on-failure/HASH +1 -1
- package/dist/prebuild/on-failure/bundle.zip +0 -0
- package/dist/prebuild/sandbox-proxy/HASH +1 -1
- package/dist/prebuild/sandbox-proxy/bundle.zip +0 -0
- package/package.json +12 -11
package/dist/handlers/bundle.js
CHANGED
|
@@ -3,12 +3,81 @@ import { patch, unpatch } from "@awsless/json";
|
|
|
3
3
|
import { ExpectedError, invoke, isErrorResponse } from "@awsless/lambda";
|
|
4
4
|
import { formatRoutePayload, getCurrentRoute, withBundleRouteContext } from "awsless";
|
|
5
5
|
|
|
6
|
+
// ../../node_modules/.pnpm/change-case@5.4.4/node_modules/change-case/dist/index.js
|
|
7
|
+
var SPLIT_LOWER_UPPER_RE = /([\p{Ll}\d])(\p{Lu})/gu;
|
|
8
|
+
var SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
|
|
9
|
+
var SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
|
|
10
|
+
var DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
|
|
11
|
+
var SPLIT_REPLACE_VALUE = "$1\x00$2";
|
|
12
|
+
var DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
|
|
13
|
+
function split(value) {
|
|
14
|
+
let result = value.trim();
|
|
15
|
+
result = result.replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE).replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
|
|
16
|
+
result = result.replace(DEFAULT_STRIP_REGEXP, "\x00");
|
|
17
|
+
let start = 0;
|
|
18
|
+
let end = result.length;
|
|
19
|
+
while (result.charAt(start) === "\x00")
|
|
20
|
+
start++;
|
|
21
|
+
if (start === end)
|
|
22
|
+
return [];
|
|
23
|
+
while (result.charAt(end - 1) === "\x00")
|
|
24
|
+
end--;
|
|
25
|
+
return result.slice(start, end).split(/\0/g);
|
|
26
|
+
}
|
|
27
|
+
function splitSeparateNumbers(value) {
|
|
28
|
+
const words = split(value);
|
|
29
|
+
for (let i = 0;i < words.length; i++) {
|
|
30
|
+
const word = words[i];
|
|
31
|
+
const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
|
|
32
|
+
if (match) {
|
|
33
|
+
const offset = match.index + (match[1] ?? match[2]).length;
|
|
34
|
+
words.splice(i, 1, word.slice(0, offset), word.slice(offset));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return words;
|
|
38
|
+
}
|
|
39
|
+
function noCase(input, options) {
|
|
40
|
+
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
41
|
+
return prefix + words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") + suffix;
|
|
42
|
+
}
|
|
43
|
+
function kebabCase(input, options) {
|
|
44
|
+
return noCase(input, { delimiter: "-", ...options });
|
|
45
|
+
}
|
|
46
|
+
function lowerFactory(locale) {
|
|
47
|
+
return locale === false ? (input) => input.toLowerCase() : (input) => input.toLocaleLowerCase(locale);
|
|
48
|
+
}
|
|
49
|
+
function splitPrefixSuffix(input, options = {}) {
|
|
50
|
+
const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
|
|
51
|
+
const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
52
|
+
const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
53
|
+
let prefixIndex = 0;
|
|
54
|
+
let suffixIndex = input.length;
|
|
55
|
+
while (prefixIndex < input.length) {
|
|
56
|
+
const char = input.charAt(prefixIndex);
|
|
57
|
+
if (!prefixCharacters.includes(char))
|
|
58
|
+
break;
|
|
59
|
+
prefixIndex++;
|
|
60
|
+
}
|
|
61
|
+
while (suffixIndex > prefixIndex) {
|
|
62
|
+
const index = suffixIndex - 1;
|
|
63
|
+
const char = input.charAt(index);
|
|
64
|
+
if (!suffixCharacters.includes(char))
|
|
65
|
+
break;
|
|
66
|
+
suffixIndex = index;
|
|
67
|
+
}
|
|
68
|
+
return [
|
|
69
|
+
input.slice(0, prefixIndex),
|
|
70
|
+
splitFn(input.slice(prefixIndex, suffixIndex)),
|
|
71
|
+
input.slice(suffixIndex)
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
|
|
6
75
|
// src/feature/bundle/server/resource/util.ts
|
|
7
76
|
var routeType = (route) => {
|
|
8
77
|
return route.split(":")[1];
|
|
9
78
|
};
|
|
10
79
|
var routeFromResourceName = (name) => {
|
|
11
|
-
return name.slice(process.env.APP.length + 2).split("--").join(":");
|
|
80
|
+
return name.slice(kebabCase(process.env.APP).length + 2).split("--").join(":");
|
|
12
81
|
};
|
|
13
82
|
var asyncRoute = (key, payload) => {
|
|
14
83
|
process.env.THROW_EXPECTED_ERRORS = "1";
|
|
@@ -302,7 +371,11 @@ var topicHandler = (event, routes) => {
|
|
|
302
371
|
if (record?.EventSource !== "aws:sns" || typeof record?.Sns?.TopicArn !== "string") {
|
|
303
372
|
return;
|
|
304
373
|
}
|
|
305
|
-
const
|
|
374
|
+
const topicName = record.Sns.TopicArn.split(":").at(-1);
|
|
375
|
+
const [, resourceType, topicId] = topicName.split("--");
|
|
376
|
+
if (resourceType !== "topic") {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
306
379
|
const subscribers = routes.filter((route2) => {
|
|
307
380
|
const [, type, id] = route2.split(":");
|
|
308
381
|
return type === "topic" && id === topicId;
|
|
@@ -109,7 +109,6 @@ var handle_default = async (event, context) => {
|
|
|
109
109
|
}
|
|
110
110
|
const invoke = internalInvoke(consumerRoute, {
|
|
111
111
|
...error,
|
|
112
|
-
origin,
|
|
113
112
|
date: logEvent.timestamp
|
|
114
113
|
});
|
|
115
114
|
invoke.catch(() => {});
|
|
@@ -134,10 +133,15 @@ var parseError = (message, origin) => {
|
|
|
134
133
|
if (runtimeError.success) {
|
|
135
134
|
const { requestId, level } = runtimeError.output;
|
|
136
135
|
const { errorType, errorMessage, stackTrace, ...extra } = runtimeError.output.message;
|
|
136
|
+
if (typeof extra.route === "string") {
|
|
137
|
+
origin = extra.route;
|
|
138
|
+
delete extra.route;
|
|
139
|
+
}
|
|
137
140
|
const hash = createHash("sha256").update([origin, errorType, errorMessage, stackTrace].join("-")).digest("hex");
|
|
138
141
|
return {
|
|
139
142
|
hash,
|
|
140
143
|
requestId,
|
|
144
|
+
origin,
|
|
141
145
|
level,
|
|
142
146
|
type: errorType,
|
|
143
147
|
message: errorMessage,
|
|
@@ -152,6 +156,7 @@ var parseError = (message, origin) => {
|
|
|
152
156
|
return {
|
|
153
157
|
hash,
|
|
154
158
|
requestId,
|
|
159
|
+
origin,
|
|
155
160
|
level: "fatal",
|
|
156
161
|
type: errorType ?? status,
|
|
157
162
|
message: `Fatal system error: ${errorType ?? status}`,
|
|
@@ -165,6 +170,7 @@ var parseError = (message, origin) => {
|
|
|
165
170
|
return {
|
|
166
171
|
hash,
|
|
167
172
|
requestId,
|
|
173
|
+
origin,
|
|
168
174
|
level,
|
|
169
175
|
type: "Error",
|
|
170
176
|
message: message2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
360568614ec11c8dd2efe5e05ccc2dde09fb5b28
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
a1e928861bac15a86cbeee8065692cce9136c213
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/cli",
|
|
3
|
-
"version": "0.0.46-next.
|
|
3
|
+
"version": "0.0.46-next.32",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"@awsless/ts-file-cache": "^0.0.16"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
+
"@awsless/big-float": "^0.1.7",
|
|
29
|
+
"@awsless/duration": "^0.0.4",
|
|
28
30
|
"@awsless/dynamodb": "^0.3.22",
|
|
31
|
+
"@awsless/json": "^0.0.11",
|
|
29
32
|
"@awsless/lambda": "^0.0.47",
|
|
30
33
|
"@awsless/s3": "^0.0.22",
|
|
31
34
|
"@awsless/validate": "^0.1.7",
|
|
32
35
|
"@awsless/weak-cache": "^0.0.1",
|
|
33
|
-
"@awsless/json": "^0.0.11",
|
|
34
|
-
"@awsless/big-float": "^0.1.7",
|
|
35
|
-
"@awsless/duration": "^0.0.4",
|
|
36
36
|
"awsless": "^0.0.15-next.8"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"@aws-sdk/client-lambda": "3.991.0",
|
|
46
46
|
"@aws-sdk/client-route-53": "^3.782.0",
|
|
47
47
|
"@aws-sdk/client-s3": "^3.369.0",
|
|
48
|
+
"@aws-sdk/client-sns": "^3.1023.0",
|
|
48
49
|
"@aws-sdk/client-ssm": "3.329.0",
|
|
49
50
|
"@aws-sdk/client-sts": "^3.369.0",
|
|
50
51
|
"@aws-sdk/credential-providers": "^3.654.0",
|
|
@@ -103,23 +104,23 @@
|
|
|
103
104
|
"zod-to-json-schema": "^3.24.3",
|
|
104
105
|
"@awsless/big-float": "^0.1.7",
|
|
105
106
|
"@awsless/clui": "^0.0.9",
|
|
106
|
-
"@awsless/cloudwatch": "^0.0.1",
|
|
107
107
|
"@awsless/duration": "^0.0.4",
|
|
108
|
-
"@awsless/
|
|
108
|
+
"@awsless/cloudwatch": "^0.0.1",
|
|
109
109
|
"@awsless/dynamodb": "^0.3.22",
|
|
110
|
+
"@awsless/iot": "^0.0.5",
|
|
111
|
+
"@awsless/json": "^0.0.11",
|
|
110
112
|
"@awsless/s3": "^0.0.22",
|
|
111
113
|
"@awsless/redis": "^0.1.13",
|
|
112
114
|
"@awsless/size": "^0.0.2",
|
|
113
|
-
"@awsless/sns": "^0.0.11",
|
|
114
115
|
"@awsless/scheduler": "^0.0.5",
|
|
116
|
+
"@awsless/open-search": "^0.0.24",
|
|
115
117
|
"@awsless/sqs": "^0.0.24",
|
|
118
|
+
"@awsless/sns": "^0.0.11",
|
|
116
119
|
"@awsless/validate": "^0.1.7",
|
|
117
|
-
"@awsless/ssm": "^0.0.8",
|
|
118
120
|
"@awsless/weak-cache": "^0.0.1",
|
|
119
|
-
"@awsless/
|
|
121
|
+
"@awsless/ssm": "^0.0.8",
|
|
120
122
|
"@awsless/lambda": "^0.0.47",
|
|
121
|
-
"awsless": "^0.0.15-next.8"
|
|
122
|
-
"@awsless/iot": "^0.0.5"
|
|
123
|
+
"awsless": "^0.0.15-next.8"
|
|
123
124
|
},
|
|
124
125
|
"scripts": {
|
|
125
126
|
"test": "bun cli/build-handlers.ts && pnpm vitest",
|