@awsless/cli 0.0.46-next.31 → 0.0.46-next.33

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;
@@ -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.31",
3
+ "version": "0.0.46-next.33",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -26,13 +26,13 @@
26
26
  },
27
27
  "peerDependencies": {
28
28
  "@awsless/big-float": "^0.1.7",
29
- "@awsless/duration": "^0.0.4",
30
29
  "@awsless/dynamodb": "^0.3.22",
31
- "@awsless/json": "^0.0.11",
30
+ "@awsless/duration": "^0.0.4",
31
+ "@awsless/lambda": "^0.0.47",
32
32
  "@awsless/s3": "^0.0.22",
33
+ "@awsless/json": "^0.0.11",
33
34
  "@awsless/validate": "^0.1.7",
34
35
  "@awsless/weak-cache": "^0.0.1",
35
- "@awsless/lambda": "^0.0.47",
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",
@@ -101,25 +102,25 @@
101
102
  "zip-a-folder": "^3.1.6",
102
103
  "zod": "^3.24.2",
103
104
  "zod-to-json-schema": "^3.24.3",
105
+ "@awsless/big-float": "^0.1.7",
104
106
  "@awsless/cloudwatch": "^0.0.1",
107
+ "@awsless/clui": "^0.0.9",
105
108
  "@awsless/duration": "^0.0.4",
106
- "@awsless/big-float": "^0.1.7",
107
- "@awsless/dynamodb": "^0.3.22",
108
- "@awsless/lambda": "^0.0.47",
109
109
  "@awsless/json": "^0.0.11",
110
+ "@awsless/dynamodb": "^0.3.22",
110
111
  "@awsless/iot": "^0.0.5",
112
+ "@awsless/lambda": "^0.0.47",
111
113
  "@awsless/redis": "^0.1.13",
112
- "@awsless/clui": "^0.0.9",
113
- "@awsless/scheduler": "^0.0.5",
114
+ "@awsless/open-search": "^0.0.24",
114
115
  "@awsless/sns": "^0.0.11",
115
- "@awsless/s3": "^0.0.22",
116
116
  "@awsless/size": "^0.0.2",
117
- "@awsless/validate": "^0.1.7",
118
- "@awsless/ssm": "^0.0.8",
117
+ "@awsless/s3": "^0.0.22",
118
+ "@awsless/scheduler": "^0.0.5",
119
119
  "@awsless/weak-cache": "^0.0.1",
120
- "@awsless/sqs": "^0.0.24",
120
+ "@awsless/ssm": "^0.0.8",
121
121
  "awsless": "^0.0.15-next.8",
122
- "@awsless/open-search": "^0.0.24"
122
+ "@awsless/validate": "^0.1.7",
123
+ "@awsless/sqs": "^0.0.24"
123
124
  },
124
125
  "scripts": {
125
126
  "test": "bun cli/build-handlers.ts && pnpm vitest",