@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.
@@ -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 topicId = record.Sns.TopicArn.split(":").at(-1).split("--").at(-1);
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
- d0394e205fdedf5d8ab1359a0a44f90b7462a3ca
1
+ 360568614ec11c8dd2efe5e05ccc2dde09fb5b28
Binary file
@@ -1 +1 @@
1
- e0969c65ac76ce3dc636979c07087813b7e73820
1
+ a1e928861bac15a86cbeee8065692cce9136c213
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/cli",
3
- "version": "0.0.46-next.30",
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/json": "^0.0.11",
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/open-search": "^0.0.24",
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",