local-serverless-stack 0.13.0 → 0.15.0-rc.0

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.
Files changed (66) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +3 -3
  3. package/dist/server/engine/backends/self-backend.js +1 -1
  4. package/dist/server/engine/backends/self-backend.js.map +1 -1
  5. package/dist/server/engine/dispatch/dispatcher.d.ts +2 -1
  6. package/dist/server/engine/dispatch/dispatcher.d.ts.map +1 -1
  7. package/dist/server/engine/dispatch/dispatcher.js +34 -6
  8. package/dist/server/engine/dispatch/dispatcher.js.map +1 -1
  9. package/dist/server/engine/dispatch/filter-criteria.d.ts +6 -0
  10. package/dist/server/engine/dispatch/filter-criteria.d.ts.map +1 -0
  11. package/dist/server/engine/dispatch/filter-criteria.js +125 -0
  12. package/dist/server/engine/dispatch/filter-criteria.js.map +1 -0
  13. package/dist/server/engine/dispatch/scheduler.d.ts +2 -4
  14. package/dist/server/engine/dispatch/scheduler.d.ts.map +1 -1
  15. package/dist/server/engine/dispatch/scheduler.js +1 -7
  16. package/dist/server/engine/dispatch/scheduler.js.map +1 -1
  17. package/dist/server/engine/dispatch/sqs-poller.d.ts +4 -0
  18. package/dist/server/engine/dispatch/sqs-poller.d.ts.map +1 -1
  19. package/dist/server/engine/dispatch/sqs-poller.js +78 -3
  20. package/dist/server/engine/dispatch/sqs-poller.js.map +1 -1
  21. package/dist/server/engine/dispatch/stream-tailer.d.ts.map +1 -1
  22. package/dist/server/engine/dispatch/stream-tailer.js +134 -21
  23. package/dist/server/engine/dispatch/stream-tailer.js.map +1 -1
  24. package/dist/server/engine/emulators/events/index.d.ts.map +1 -1
  25. package/dist/server/engine/emulators/events/index.js +5 -0
  26. package/dist/server/engine/emulators/events/index.js.map +1 -1
  27. package/dist/server/engine/emulators/events/pattern.d.ts +2 -0
  28. package/dist/server/engine/emulators/events/pattern.d.ts.map +1 -1
  29. package/dist/server/engine/emulators/events/pattern.js +152 -5
  30. package/dist/server/engine/emulators/events/pattern.js.map +1 -1
  31. package/dist/server/engine/emulators/lambda-ctl/index.d.ts +1 -0
  32. package/dist/server/engine/emulators/lambda-ctl/index.d.ts.map +1 -1
  33. package/dist/server/engine/emulators/lambda-ctl/index.js +28 -2
  34. package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -1
  35. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
  36. package/dist/server/engine/emulators/s3/index.js +24 -2
  37. package/dist/server/engine/emulators/s3/index.js.map +1 -1
  38. package/dist/server/engine/emulators/sqs/index.d.ts +3 -0
  39. package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -1
  40. package/dist/server/engine/emulators/sqs/index.js +19 -0
  41. package/dist/server/engine/emulators/sqs/index.js.map +1 -1
  42. package/dist/server/engine/types.d.ts +2 -0
  43. package/dist/server/engine/types.d.ts.map +1 -1
  44. package/dist/server/index.js +12 -0
  45. package/dist/server/index.js.map +1 -1
  46. package/dist/server/services/cloudformation-parser.d.ts +26 -1
  47. package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
  48. package/dist/server/services/cloudformation-parser.js +85 -1
  49. package/dist/server/services/cloudformation-parser.js.map +1 -1
  50. package/dist/server/services/config-manager.d.ts +4 -0
  51. package/dist/server/services/config-manager.d.ts.map +1 -1
  52. package/dist/server/services/config-manager.js +12 -0
  53. package/dist/server/services/config-manager.js.map +1 -1
  54. package/dist/server/services/resource-provisioner.d.ts +2 -0
  55. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  56. package/dist/server/services/resource-provisioner.js +75 -1
  57. package/dist/server/services/resource-provisioner.js.map +1 -1
  58. package/dist/server/services/secret-value.d.ts +35 -0
  59. package/dist/server/services/secret-value.d.ts.map +1 -0
  60. package/dist/server/services/secret-value.js +69 -0
  61. package/dist/server/services/secret-value.js.map +1 -0
  62. package/dist/server/services/seed-manager.d.ts +20 -0
  63. package/dist/server/services/seed-manager.d.ts.map +1 -1
  64. package/dist/server/services/seed-manager.js +131 -0
  65. package/dist/server/services/seed-manager.js.map +1 -1
  66. package/package.json +1 -1
@@ -6,27 +6,40 @@
6
6
  // them into InvalidEventPatternException) — matching never fails silently on
7
7
  // an operator the validator would have refused.
8
8
  const V1_OPERATORS = new Set(['prefix', 'exists']);
9
+ // Lambda ESM FilterCriteria supports a superset of the EventBridge v1
10
+ // operators — it adds numeric ranges and anything-but (but NOT the EventBridge
11
+ // suffix/wildcard/cidr/equals-ignore-case). Kept separate from V1_OPERATORS so
12
+ // EventBridge PutRule keeps rejecting these operators unchanged.
13
+ const ESM_OPERATORS = new Set(['prefix', 'exists', 'numeric', 'anything-but']);
9
14
  function isPlainObject(value) {
10
15
  return typeof value === 'object' && value !== null && !Array.isArray(value);
11
16
  }
12
17
  export function matches(pattern, event) {
13
18
  if (!isPlainObject(pattern))
14
19
  return false;
15
- return matchObject(pattern, event);
20
+ return matchObject(pattern, event, matchLeaf);
16
21
  }
17
- function matchObject(pattern, event) {
22
+ // ESM FilterCriteria matcher — same object-walking as EventBridge's `matches`
23
+ // but with the wider ESM leaf operator set. Separate entrypoint so the
24
+ // EventBridge matcher (and its defensive tests) stay byte-for-byte unchanged.
25
+ export function matchEsmPattern(pattern, event) {
26
+ if (!isPlainObject(pattern))
27
+ return false;
28
+ return matchObject(pattern, event, matchEsmLeaf);
29
+ }
30
+ function matchObject(pattern, event, leaf) {
18
31
  // An event array satisfies a nested pattern when any element does.
19
32
  if (Array.isArray(event))
20
- return event.some(element => matchObject(pattern, element));
33
+ return event.some(element => matchObject(pattern, element, leaf));
21
34
  for (const [key, expected] of Object.entries(pattern)) {
22
35
  const present = isPlainObject(event) && key in event;
23
36
  const actual = present ? event[key] : undefined;
24
37
  if (Array.isArray(expected)) {
25
- if (!matchLeaf(expected, actual, present))
38
+ if (!leaf(expected, actual, present))
26
39
  return false;
27
40
  }
28
41
  else if (isPlainObject(expected)) {
29
- if (!present || !matchObject(expected, actual))
42
+ if (!present || !matchObject(expected, actual, leaf))
30
43
  return false;
31
44
  }
32
45
  else {
@@ -64,6 +77,73 @@ function valueEquals(expected, actual) {
64
77
  return typeof actual === 'number' && expected === actual;
65
78
  return expected === actual;
66
79
  }
80
+ // Leaf matcher for Lambda ESM FilterCriteria. Adds numeric + anything-but on
81
+ // top of the v1 exact/OR/prefix/exists operators and refines `exists`: a
82
+ // present-but-null value counts as NOT existing (exists:true → false,
83
+ // exists:false → true), matching AWS ESM filtering.
84
+ function matchEsmLeaf(alternatives, actual, present) {
85
+ const existsNonNull = present && actual !== null;
86
+ const candidates = Array.isArray(actual) ? actual : [actual];
87
+ return alternatives.some(alternative => {
88
+ if (isPlainObject(alternative)) {
89
+ const keys = Object.keys(alternative);
90
+ if (keys.length !== 1)
91
+ return false;
92
+ const operator = keys[0];
93
+ const argument = alternative[operator];
94
+ if (operator === 'exists')
95
+ return argument === true ? existsNonNull : !existsNonNull;
96
+ if (operator === 'prefix') {
97
+ return present && typeof argument === 'string'
98
+ && candidates.some(value => typeof value === 'string' && value.startsWith(argument));
99
+ }
100
+ if (operator === 'numeric')
101
+ return present && matchNumeric(argument, candidates);
102
+ if (operator === 'anything-but')
103
+ return present && matchAnythingBut(argument, candidates);
104
+ return false; // unsupported operator — rejected at write time by validateEsmPattern
105
+ }
106
+ return present && candidates.some(value => valueEquals(alternative, value));
107
+ });
108
+ }
109
+ // {"numeric":["=",n]} or a range {"numeric":[">",0,"<=",100]}. DynamoDB N
110
+ // leaves arrive as strings, so coerce with Number() before comparing.
111
+ function matchNumeric(argument, candidates) {
112
+ if (!Array.isArray(argument) || argument.length < 2 || argument.length % 2 !== 0)
113
+ return false;
114
+ return candidates.some(raw => {
115
+ const actual = typeof raw === 'number'
116
+ ? raw
117
+ : typeof raw === 'string' && raw.trim() !== ''
118
+ ? Number(raw)
119
+ : NaN;
120
+ if (Number.isNaN(actual))
121
+ return false;
122
+ for (let i = 0; i < argument.length; i += 2) {
123
+ const op = argument[i];
124
+ const value = argument[i + 1];
125
+ if (typeof op !== 'string' || typeof value !== 'number' || !numericOp(op, actual, value))
126
+ return false;
127
+ }
128
+ return true;
129
+ });
130
+ }
131
+ function numericOp(op, a, b) {
132
+ switch (op) {
133
+ case '=': return a === b;
134
+ case '<': return a < b;
135
+ case '<=': return a <= b;
136
+ case '>': return a > b;
137
+ case '>=': return a >= b;
138
+ default: return false;
139
+ }
140
+ }
141
+ // {"anything-but": scalar | [list]} — matches when the value is present and is
142
+ // not equal to any listed value.
143
+ function matchAnythingBut(argument, candidates) {
144
+ const excluded = Array.isArray(argument) ? argument : [argument];
145
+ return candidates.every(value => !excluded.some(ex => valueEquals(ex, value)));
146
+ }
67
147
  // Structural validation for PutRule. Returns the (deduplicated) operator names
68
148
  // used by the pattern that the v1 matcher does not support — suffix,
69
149
  // anything-but, numeric, cidr, equals-ignore-case, wildcard, or anything else
@@ -122,4 +202,71 @@ function validateAlternative(alternative, keyPath, unsupported) {
122
202
  throw new Error(`Operator "exists" at "${keyPath}" requires a boolean argument.`);
123
203
  }
124
204
  }
205
+ // Structural validation for a single ESM FilterCriteria pattern (control-plane
206
+ // write path). Throws a plain Error on a non-object root, empty objects/lists,
207
+ // bare primitive leaves, nested arrays, malformed operator objects, or an
208
+ // operator outside the ESM set (prefix/exists/numeric/anything-but); callers
209
+ // wrap the message into InvalidArgumentException.
210
+ export function validateEsmPattern(pattern) {
211
+ if (!isPlainObject(pattern)) {
212
+ throw new Error('Filter pattern must be a JSON object.');
213
+ }
214
+ walkEsmPattern(pattern, '');
215
+ }
216
+ function walkEsmPattern(pattern, path) {
217
+ const entries = Object.entries(pattern);
218
+ if (entries.length === 0) {
219
+ throw new Error(`Filter pattern must not contain an empty object${path ? ` at "${path}"` : ''}.`);
220
+ }
221
+ for (const [key, value] of entries) {
222
+ const keyPath = path ? `${path}.${key}` : key;
223
+ if (Array.isArray(value)) {
224
+ if (value.length === 0)
225
+ throw new Error(`Match value list at "${keyPath}" must not be empty.`);
226
+ for (const alternative of value)
227
+ validateEsmAlternative(alternative, keyPath);
228
+ }
229
+ else if (isPlainObject(value)) {
230
+ walkEsmPattern(value, keyPath);
231
+ }
232
+ else {
233
+ throw new Error(`Pattern value at "${keyPath}" must be an array of match values or a nested object.`);
234
+ }
235
+ }
236
+ }
237
+ function validateEsmAlternative(alternative, keyPath) {
238
+ if (Array.isArray(alternative)) {
239
+ throw new Error(`Nested arrays are not allowed in the match value list at "${keyPath}".`);
240
+ }
241
+ if (!isPlainObject(alternative))
242
+ return; // exact-match primitive — always supported
243
+ const keys = Object.keys(alternative);
244
+ if (keys.length !== 1) {
245
+ throw new Error(`Match operator objects must have exactly one key (at "${keyPath}").`);
246
+ }
247
+ const operator = keys[0];
248
+ if (!ESM_OPERATORS.has(operator)) {
249
+ throw new Error(`Unsupported filter operator "${operator}" at "${keyPath}".`);
250
+ }
251
+ if (operator === 'prefix' && typeof alternative[operator] !== 'string') {
252
+ throw new Error(`Operator "prefix" at "${keyPath}" requires a string argument.`);
253
+ }
254
+ if (operator === 'exists' && typeof alternative[operator] !== 'boolean') {
255
+ throw new Error(`Operator "exists" at "${keyPath}" requires a boolean argument.`);
256
+ }
257
+ if (operator === 'numeric') {
258
+ const arg = alternative[operator];
259
+ if (!Array.isArray(arg) || arg.length < 2 || arg.length % 2 !== 0) {
260
+ throw new Error(`Operator "numeric" at "${keyPath}" requires [op, value, ...] pairs.`);
261
+ }
262
+ for (let i = 0; i < arg.length; i += 2) {
263
+ if (typeof arg[i] !== 'string' || !['=', '<', '<=', '>', '>='].includes(arg[i])) {
264
+ throw new Error(`Operator "numeric" at "${keyPath}" has an invalid comparator "${String(arg[i])}".`);
265
+ }
266
+ if (typeof arg[i + 1] !== 'number') {
267
+ throw new Error(`Operator "numeric" at "${keyPath}" requires numeric operands.`);
268
+ }
269
+ }
270
+ }
271
+ }
125
272
  //# sourceMappingURL=pattern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/events/pattern.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/events/pattern.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export declare class LambdaCtlEmulator implements RestEmulator {
50
50
  private requireMapping;
51
51
  private functionConfiguration;
52
52
  private mappingJson;
53
+ private assertValidFilterCriteria;
53
54
  private fireEsmChanged;
54
55
  }
55
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/lambda-ctl/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,8BAA8B,EAC9B,oBAAoB,EAEpB,iBAAiB,EACjB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE;YAAE,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACpD;AA+ED,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAY;IAE/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;gBAE/D,GAAG,EAAE,aAAa;IAU9B,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B,EAAE;IAIzE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAMjF,YAAY,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAYrC,oBAAoB;IAmBlC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,wBAAwB;IA8ChC,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,wBAAwB;YAWlB,MAAM;IA4CpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/lambda-ctl/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,8BAA8B,EAC9B,oBAAoB,EAEpB,iBAAiB,EACjB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE;YAAE,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACpD;AAqFD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAY;IAE/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;gBAE/D,GAAG,EAAE,aAAa;IAU9B,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,8BAA8B,EAAE;IAIzE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAMjF,YAAY,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAYrC,oBAAoB;IAmBlC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,wBAAwB;IAmDhC,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,wBAAwB;YAWlB,MAAM;IA4CpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,cAAc;CASvB"}
@@ -7,6 +7,11 @@
7
7
  // LSS provisioner and QueueInspector call — see docs/PRD_SELF_ENGINE.md §6.
8
8
  import { randomUUID } from 'crypto';
9
9
  import { AwsError, notImplementedOperation } from '../../http/errors.js';
10
+ import { validateFilterCriteria } from '../../dispatch/filter-criteria.js';
11
+ // DynamoDB Streams / Kinesis sources; SQS sources do not carry a retry count.
12
+ function isStreamSourceArn(arn) {
13
+ return arn.startsWith('arn:aws:dynamodb:') || arn.startsWith('arn:aws:kinesis:');
14
+ }
10
15
  // Failed dispatcher results with these errorType values mean "the ref could
11
16
  // not be resolved at all" (vs a handler error, which stays a 200 +
12
17
  // X-Amz-Function-Error). The dispatcher contract never throws, so this is the
@@ -264,8 +269,11 @@ export class LambdaCtlEmulator {
264
269
  throw new AwsError('ResourceConflictException', `An event source mapping with ${sourceLabel(eventSourceArn)} arn (" ${eventSourceArn} ") and function ` +
265
270
  `(" ${functionName} ") already exists. Please use the existing mapping with UUID ${existing.uuid}`, { status: 409 });
266
271
  }
272
+ if (input.FilterCriteria !== undefined)
273
+ this.assertValidFilterCriteria(input.FilterCriteria);
267
274
  const now = new Date().toISOString();
268
275
  const enabled = input.Enabled !== false;
276
+ const isStream = isStreamSourceArn(eventSourceArn);
269
277
  const record = {
270
278
  uuid: randomUUID(),
271
279
  functionName,
@@ -273,10 +281,13 @@ export class LambdaCtlEmulator {
273
281
  enabled,
274
282
  batchSize: input.BatchSize ?? 10,
275
283
  maximumBatchingWindowInSeconds: input.MaximumBatchingWindowInSeconds,
276
- maximumRetryAttempts: input.MaximumRetryAttempts,
284
+ // AWS default for a stream (DynamoDB Streams / Kinesis) ESM is -1
285
+ // (retry until the record ages out); SQS sources carry no retry count.
286
+ maximumRetryAttempts: input.MaximumRetryAttempts ?? (isStream ? -1 : undefined),
277
287
  startingPosition: input.StartingPosition,
278
288
  onFailureDestinationArn: input.DestinationConfig?.OnFailure?.Destination,
279
289
  filterCriteria: input.FilterCriteria,
290
+ functionResponseTypes: input.FunctionResponseTypes,
280
291
  createdAt: now,
281
292
  lastModified: now,
282
293
  state: enabled ? 'Enabled' : 'Disabled',
@@ -311,8 +322,12 @@ export class LambdaCtlEmulator {
311
322
  record.maximumRetryAttempts = input.MaximumRetryAttempts;
312
323
  if (input.FunctionName !== undefined)
313
324
  record.functionName = this.resolveFunctionName(input.FunctionName);
314
- if (input.FilterCriteria !== undefined)
325
+ if (input.FilterCriteria !== undefined) {
326
+ this.assertValidFilterCriteria(input.FilterCriteria);
315
327
  record.filterCriteria = input.FilterCriteria;
328
+ }
329
+ if (input.FunctionResponseTypes !== undefined)
330
+ record.functionResponseTypes = input.FunctionResponseTypes;
316
331
  if (input.DestinationConfig !== undefined)
317
332
  record.onFailureDestinationArn = input.DestinationConfig.OnFailure?.Destination;
318
333
  record.lastModified = new Date().toISOString();
@@ -445,8 +460,19 @@ export class LambdaCtlEmulator {
445
460
  }
446
461
  if (record.filterCriteria !== undefined)
447
462
  json.FilterCriteria = record.filterCriteria;
463
+ // AWS always returns FunctionResponseTypes, defaulting to [].
464
+ json.FunctionResponseTypes = record.functionResponseTypes ?? [];
448
465
  return json;
449
466
  }
467
+ // Validates ESM FilterCriteria at write time, surfacing the AWS-shaped 400.
468
+ assertValidFilterCriteria(filterCriteria) {
469
+ try {
470
+ validateFilterCriteria(filterCriteria);
471
+ }
472
+ catch (err) {
473
+ throw new AwsError('InvalidArgumentException', err instanceof Error ? err.message : 'Invalid FilterCriteria.', { status: 400 });
474
+ }
475
+ }
450
476
  fireEsmChanged(region) {
451
477
  for (const listener of this.esmChangedListeners) {
452
478
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/lambda-ctl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/lambda-ctl/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/s3/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAe3F,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,wBAAwB,EAAE,CAAC;CACzC;AAiBD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,qBAAa,UAAW,YAAW,YAAY;IAC7C,QAAQ,CAAC,OAAO,EAAG,IAAI,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAM;gBAEf,GAAG,EAAE,aAAa;IAKxB,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAmBrC,KAAK;IAwBnB,OAAO,CAAC,WAAW;IA2Cb,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;YAS3E,YAAY;IA+B1B,OAAO,CAAC,YAAY;YAiBN,YAAY;IAW1B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;YAQV,aAAa;YAiFb,aAAa;YAwBb,YAAY;YAWZ,SAAS;YA2BT,UAAU;IAyCxB,OAAO,CAAC,YAAY;YAgCN,UAAU;YA0CV,SAAS;YAeT,UAAU;YAOV,YAAY;IAa1B,OAAO,CAAC,aAAa;YAMP,aAAa;YAQb,KAAK;YAML,YAAY;YAWZ,wBAAwB;IAStC,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/engine/emulators/s3/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAe3F,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,wBAAwB,EAAE,CAAC;CACzC;AAiBD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,qBAAa,UAAW,YAAW,YAAY;IAC7C,QAAQ,CAAC,OAAO,EAAG,IAAI,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAM;gBAEf,GAAG,EAAE,aAAa;IAKxB,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAmBrC,KAAK;IAwBnB,OAAO,CAAC,WAAW;IA2Cb,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;YAS3E,YAAY;IA+B1B,OAAO,CAAC,YAAY;YAiBN,YAAY;IAW1B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;YAQV,aAAa;YAiFb,aAAa;YAwBb,YAAY;YAWZ,SAAS;YA2BT,UAAU;IAyCxB,OAAO,CAAC,YAAY;YAgCN,UAAU;YA0CV,SAAS;YAgBT,UAAU;YAQV,YAAY;IAa1B,OAAO,CAAC,aAAa;YAMP,aAAa;YAQb,KAAK;YAML,YAAY;YAWZ,wBAAwB;IAStC,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,aAAa;CAKtB"}
@@ -347,7 +347,7 @@ export class S3Emulator {
347
347
  if (req.method === 'GET')
348
348
  return this.getObject(bucket, key, req);
349
349
  if (req.method === 'HEAD')
350
- return this.headObject(bucket, key);
350
+ return this.headObject(bucket, key, req);
351
351
  if (req.method === 'DELETE')
352
352
  return this.deleteObject(bucket, key);
353
353
  throw notImplementedOperation('s3', `${req.method} /<bucket>/<key>`);
@@ -488,6 +488,7 @@ export class S3Emulator {
488
488
  const record = await this.requireObject(bucket, key);
489
489
  const data = await this.ctx.store.readBlob(record.blobPath);
490
490
  const headers = objectHeaders(record);
491
+ applyResponseOverrides(headers, req.query);
491
492
  const range = parseRange(req.headers.range, record.size);
492
493
  if (range) {
493
494
  const slice = data.subarray(range.start, range.end + 1);
@@ -498,9 +499,10 @@ export class S3Emulator {
498
499
  headers['Content-Length'] = String(record.size);
499
500
  return { status: 200, headers, body: data };
500
501
  }
501
- async headObject(bucket, key) {
502
+ async headObject(bucket, key, req) {
502
503
  const record = await this.requireObject(bucket, key);
503
504
  const headers = objectHeaders(record);
505
+ applyResponseOverrides(headers, req.query);
504
506
  headers['Content-Length'] = String(record.size);
505
507
  return { status: 200, headers };
506
508
  }
@@ -644,6 +646,26 @@ function objectHeaders(record) {
644
646
  }
645
647
  return headers;
646
648
  }
649
+ // GET/HEAD response-header overrides carried as `response-*` query params (the
650
+ // presigned-URL mechanism for forcing a download filename / content type). AWS
651
+ // echoes each present param into the matching response header — this is what a
652
+ // presigned GET with `response-content-disposition=attachment; filename=…`
653
+ // relies on.
654
+ const RESPONSE_OVERRIDE_HEADERS = {
655
+ 'response-content-type': 'Content-Type',
656
+ 'response-content-language': 'Content-Language',
657
+ 'response-expires': 'Expires',
658
+ 'response-cache-control': 'Cache-Control',
659
+ 'response-content-disposition': 'Content-Disposition',
660
+ 'response-content-encoding': 'Content-Encoding',
661
+ };
662
+ function applyResponseOverrides(headers, query) {
663
+ for (const [param, header] of Object.entries(RESPONSE_OVERRIDE_HEADERS)) {
664
+ const value = query[param];
665
+ if (typeof value === 'string' && value.length > 0)
666
+ headers[header] = value;
667
+ }
668
+ }
647
669
  // "bytes=a-b" | "bytes=a-" | "bytes=-n". A malformed header is ignored (full
648
670
  // response), like real S3; a syntactically valid but unsatisfiable one is 416.
649
671
  function parseRange(header, size) {