fauxqs 1.0.2 → 1.1.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 (51) hide show
  1. package/dist/s3/actions/deleteObjects.d.ts.map +1 -1
  2. package/dist/s3/actions/deleteObjects.js +11 -3
  3. package/dist/s3/actions/deleteObjects.js.map +1 -1
  4. package/dist/s3/actions/getObject.d.ts.map +1 -1
  5. package/dist/s3/actions/getObject.js +3 -0
  6. package/dist/s3/actions/getObject.js.map +1 -1
  7. package/dist/s3/actions/headObject.d.ts.map +1 -1
  8. package/dist/s3/actions/headObject.js +3 -0
  9. package/dist/s3/actions/headObject.js.map +1 -1
  10. package/dist/s3/actions/listObjects.d.ts.map +1 -1
  11. package/dist/s3/actions/listObjects.js +102 -10
  12. package/dist/s3/actions/listObjects.js.map +1 -1
  13. package/dist/s3/actions/putObject.d.ts.map +1 -1
  14. package/dist/s3/actions/putObject.js +38 -1
  15. package/dist/s3/actions/putObject.js.map +1 -1
  16. package/dist/s3/s3Store.d.ts +12 -2
  17. package/dist/s3/s3Store.d.ts.map +1 -1
  18. package/dist/s3/s3Store.js +48 -5
  19. package/dist/s3/s3Store.js.map +1 -1
  20. package/dist/s3/s3Types.d.ts +1 -0
  21. package/dist/s3/s3Types.d.ts.map +1 -1
  22. package/dist/sns/actions/publish.d.ts.map +1 -1
  23. package/dist/sns/actions/publish.js +3 -17
  24. package/dist/sns/actions/publish.js.map +1 -1
  25. package/dist/sns/actions/setSubscriptionAttributes.d.ts.map +1 -1
  26. package/dist/sns/actions/setSubscriptionAttributes.js +11 -0
  27. package/dist/sns/actions/setSubscriptionAttributes.js.map +1 -1
  28. package/dist/sns/filter.d.ts +5 -0
  29. package/dist/sns/filter.d.ts.map +1 -1
  30. package/dist/sns/filter.js +99 -15
  31. package/dist/sns/filter.js.map +1 -1
  32. package/dist/sns/snsStore.d.ts.map +1 -1
  33. package/dist/sns/snsStore.js +8 -0
  34. package/dist/sns/snsStore.js.map +1 -1
  35. package/dist/sqs/actions/createQueue.d.ts.map +1 -1
  36. package/dist/sqs/actions/createQueue.js +3 -1
  37. package/dist/sqs/actions/createQueue.js.map +1 -1
  38. package/dist/sqs/actions/receiveMessage.d.ts.map +1 -1
  39. package/dist/sqs/actions/receiveMessage.js +3 -0
  40. package/dist/sqs/actions/receiveMessage.js.map +1 -1
  41. package/dist/sqs/actions/sendMessageBatch.d.ts.map +1 -1
  42. package/dist/sqs/actions/sendMessageBatch.js +14 -2
  43. package/dist/sqs/actions/sendMessageBatch.js.map +1 -1
  44. package/dist/sqs/actions/setQueueAttributes.d.ts.map +1 -1
  45. package/dist/sqs/actions/setQueueAttributes.js +3 -1
  46. package/dist/sqs/actions/setQueueAttributes.js.map +1 -1
  47. package/dist/sqs/sqsTypes.d.ts +5 -0
  48. package/dist/sqs/sqsTypes.d.ts.map +1 -1
  49. package/dist/sqs/sqsTypes.js +21 -0
  50. package/dist/sqs/sqsTypes.js.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deleteObjects.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/deleteObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CA+BN"}
1
+ {"version":3,"file":"deleteObjects.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/deleteObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CA+BN"}
@@ -1,15 +1,23 @@
1
1
  import { escapeXml } from "../../common/xml.js";
2
+ function unescapeXml(str) {
3
+ return str
4
+ .replace(/&/g, "&")
5
+ .replace(/&lt;/g, "<")
6
+ .replace(/&gt;/g, ">")
7
+ .replace(/&quot;/g, '"')
8
+ .replace(/&apos;/g, "'");
9
+ }
2
10
  export function deleteObjects(request, reply, store) {
3
11
  const bucket = request.params.bucket;
4
12
  const body = Buffer.isBuffer(request.body)
5
13
  ? request.body.toString("utf-8")
6
14
  : request.body;
7
- // Parse <Key> elements from XML body
15
+ // Parse <Key> elements from XML body with proper entity unescaping
8
16
  const keys = [];
9
- const keyRegex = /<Key>([^<]+)<\/Key>/g;
17
+ const keyRegex = /<Key>([\s\S]*?)<\/Key>/g;
10
18
  let match;
11
19
  while ((match = keyRegex.exec(body)) !== null) {
12
- keys.push(match[1]);
20
+ keys.push(unescapeXml(match[1]));
13
21
  }
14
22
  const deleted = store.deleteObjects(bucket, keys);
15
23
  const deletedXml = deleted
@@ -1 +1 @@
1
- {"version":3,"file":"deleteObjects.js","sourceRoot":"","sources":["../../../src/s3/actions/deleteObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,UAAU,aAAa,CAC3B,OAAuD,EACvD,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChC,CAAC,CAAE,OAAO,CAAC,IAAe,CAAC;IAE7B,qCAAqC;IACrC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;IACxC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;SAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG;QACV,wCAAwC;QACxC,gEAAgE;QAChE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QACnC,iBAAiB;KAClB;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"deleteObjects.js","sourceRoot":"","sources":["../../../src/s3/actions/deleteObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG;SACP,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAuD,EACvD,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChC,CAAC,CAAE,OAAO,CAAC,IAAe,CAAC;IAE7B,mEAAmE;IACnE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,yBAAyB,CAAC;IAC3C,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;SAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG;QACV,wCAAwC;QACxC,gEAAgE;QAChE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QACnC,iBAAiB;KAClB;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/getObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAWN"}
1
+ {"version":3,"file":"getObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/getObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAcN"}
@@ -6,6 +6,9 @@ export function getObject(request, reply, store) {
6
6
  reply.header("content-length", obj.contentLength);
7
7
  reply.header("etag", obj.etag);
8
8
  reply.header("last-modified", obj.lastModified.toUTCString());
9
+ for (const [metaKey, metaValue] of Object.entries(obj.metadata)) {
10
+ reply.header(`x-amz-meta-${metaKey}`, metaValue);
11
+ }
9
12
  reply.status(200).send(obj.body);
10
13
  }
11
14
  //# sourceMappingURL=getObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getObject.js","sourceRoot":"","sources":["../../../src/s3/actions/getObject.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,SAAS,CACvB,OAAoE,EACpE,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"getObject.js","sourceRoot":"","sources":["../../../src/s3/actions/getObject.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,SAAS,CACvB,OAAoE,EACpE,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"headObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/headObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,UAAU,CACxB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAWN"}
1
+ {"version":3,"file":"headObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/headObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,UAAU,CACxB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAcN"}
@@ -6,6 +6,9 @@ export function headObject(request, reply, store) {
6
6
  reply.header("content-length", obj.contentLength);
7
7
  reply.header("etag", obj.etag);
8
8
  reply.header("last-modified", obj.lastModified.toUTCString());
9
+ for (const [metaKey, metaValue] of Object.entries(obj.metadata)) {
10
+ reply.header(`x-amz-meta-${metaKey}`, metaValue);
11
+ }
9
12
  reply.status(200).send();
10
13
  }
11
14
  //# sourceMappingURL=headObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"headObject.js","sourceRoot":"","sources":["../../../src/s3/actions/headObject.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CACxB,OAAoE,EACpE,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"headObject.js","sourceRoot":"","sources":["../../../src/s3/actions/headObject.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CACxB,OAAoE,EACpE,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"listObjects.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/listObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,WAAW,CACzB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CA6BN"}
1
+ {"version":3,"file":"listObjects.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/listObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,WAAW,CACzB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACvD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAeN"}
@@ -1,26 +1,118 @@
1
1
  import { escapeXml } from "../../common/xml.js";
2
2
  export function listObjects(request, reply, store) {
3
3
  const bucket = request.params.bucket;
4
- const objects = store.listObjects(bucket);
5
- const contents = objects
4
+ const query = (request.query ?? {});
5
+ const listType = query["list-type"];
6
+ const prefix = query["prefix"] ?? "";
7
+ const delimiter = query["delimiter"];
8
+ const maxKeysStr = query["max-keys"];
9
+ const maxKeys = maxKeysStr ? parseInt(maxKeysStr, 10) : 1000;
10
+ if (listType === "2") {
11
+ listObjectsV2(bucket, prefix, delimiter, maxKeys, query, reply, store);
12
+ }
13
+ else {
14
+ listObjectsV1(bucket, prefix, delimiter, maxKeys, query, reply, store);
15
+ }
16
+ }
17
+ function listObjectsV1(bucket, prefix, delimiter, maxKeys, query, reply, store) {
18
+ const marker = query["marker"] ?? "";
19
+ const { objects, commonPrefixes, isTruncated } = store.listObjects(bucket, {
20
+ prefix,
21
+ delimiter,
22
+ maxKeys,
23
+ marker,
24
+ });
25
+ const contentsXml = objects
6
26
  .map((obj) => `<Contents>` +
7
27
  `<Key>${escapeXml(obj.key)}</Key>` +
8
28
  `<Size>${obj.contentLength}</Size>` +
9
29
  `<ETag>${escapeXml(obj.etag)}</ETag>` +
10
30
  `<LastModified>${obj.lastModified.toISOString()}</LastModified>` +
31
+ `<StorageClass>STANDARD</StorageClass>` +
11
32
  `</Contents>`)
12
33
  .join("\n ");
13
- const xml = [
34
+ const commonPrefixesXml = commonPrefixes
35
+ .map((p) => `<CommonPrefixes><Prefix>${escapeXml(p)}</Prefix></CommonPrefixes>`)
36
+ .join("\n ");
37
+ const nextMarker = isTruncated && objects.length > 0 ? objects[objects.length - 1].key : "";
38
+ const parts = [
39
+ `<?xml version="1.0" encoding="UTF-8"?>`,
40
+ `<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">`,
41
+ ` <Name>${escapeXml(bucket)}</Name>`,
42
+ ` <Prefix>${escapeXml(prefix)}</Prefix>`,
43
+ ` <Marker>${escapeXml(marker)}</Marker>`,
44
+ ` <MaxKeys>${maxKeys}</MaxKeys>`,
45
+ ` <IsTruncated>${isTruncated}</IsTruncated>`,
46
+ ];
47
+ if (isTruncated && nextMarker) {
48
+ parts.push(` <NextMarker>${escapeXml(nextMarker)}</NextMarker>`);
49
+ }
50
+ if (delimiter) {
51
+ parts.push(` <Delimiter>${escapeXml(delimiter)}</Delimiter>`);
52
+ }
53
+ if (contentsXml)
54
+ parts.push(` ${contentsXml}`);
55
+ if (commonPrefixesXml)
56
+ parts.push(` ${commonPrefixesXml}`);
57
+ parts.push(`</ListBucketResult>`);
58
+ reply.header("content-type", "application/xml");
59
+ reply.status(200).send(parts.join("\n"));
60
+ }
61
+ function listObjectsV2(bucket, prefix, delimiter, maxKeys, query, reply, store) {
62
+ const startAfter = query["start-after"] ?? "";
63
+ const continuationToken = query["continuation-token"];
64
+ // Use continuation-token as the start-after if provided (it encodes the last key)
65
+ const effectiveStartAfter = continuationToken
66
+ ? Buffer.from(continuationToken, "base64").toString("utf-8")
67
+ : startAfter;
68
+ const { objects, commonPrefixes, isTruncated } = store.listObjects(bucket, {
69
+ prefix,
70
+ delimiter,
71
+ maxKeys,
72
+ startAfter: effectiveStartAfter,
73
+ });
74
+ const keyCount = objects.length + commonPrefixes.length;
75
+ const contentsXml = objects
76
+ .map((obj) => `<Contents>` +
77
+ `<Key>${escapeXml(obj.key)}</Key>` +
78
+ `<Size>${obj.contentLength}</Size>` +
79
+ `<ETag>${escapeXml(obj.etag)}</ETag>` +
80
+ `<LastModified>${obj.lastModified.toISOString()}</LastModified>` +
81
+ `<StorageClass>STANDARD</StorageClass>` +
82
+ `</Contents>`)
83
+ .join("\n ");
84
+ const commonPrefixesXml = commonPrefixes
85
+ .map((p) => `<CommonPrefixes><Prefix>${escapeXml(p)}</Prefix></CommonPrefixes>`)
86
+ .join("\n ");
87
+ const parts = [
14
88
  `<?xml version="1.0" encoding="UTF-8"?>`,
15
89
  `<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">`,
16
90
  ` <Name>${escapeXml(bucket)}</Name>`,
17
- ` <IsTruncated>false</IsTruncated>`,
18
- contents ? ` ${contents}` : "",
19
- `</ListBucketResult>`,
20
- ]
21
- .filter(Boolean)
22
- .join("\n");
91
+ ` <Prefix>${escapeXml(prefix)}</Prefix>`,
92
+ ` <KeyCount>${keyCount}</KeyCount>`,
93
+ ` <MaxKeys>${maxKeys}</MaxKeys>`,
94
+ ` <IsTruncated>${isTruncated}</IsTruncated>`,
95
+ ];
96
+ if (startAfter) {
97
+ parts.push(` <StartAfter>${escapeXml(startAfter)}</StartAfter>`);
98
+ }
99
+ if (continuationToken) {
100
+ parts.push(` <ContinuationToken>${escapeXml(continuationToken)}</ContinuationToken>`);
101
+ }
102
+ if (isTruncated && objects.length > 0) {
103
+ const lastKey = objects[objects.length - 1].key;
104
+ const nextToken = Buffer.from(lastKey, "utf-8").toString("base64");
105
+ parts.push(` <NextContinuationToken>${escapeXml(nextToken)}</NextContinuationToken>`);
106
+ }
107
+ if (delimiter) {
108
+ parts.push(` <Delimiter>${escapeXml(delimiter)}</Delimiter>`);
109
+ }
110
+ if (contentsXml)
111
+ parts.push(` ${contentsXml}`);
112
+ if (commonPrefixesXml)
113
+ parts.push(` ${commonPrefixesXml}`);
114
+ parts.push(`</ListBucketResult>`);
23
115
  reply.header("content-type", "application/xml");
24
- reply.status(200).send(xml);
116
+ reply.status(200).send(parts.join("\n"));
25
117
  }
26
118
  //# sourceMappingURL=listObjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listObjects.js","sourceRoot":"","sources":["../../../src/s3/actions/listObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,UAAU,WAAW,CACzB,OAAuD,EACvD,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,OAAO;SACrB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,YAAY;QACZ,QAAQ,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ;QAClC,SAAS,GAAG,CAAC,aAAa,SAAS;QACnC,SAAS,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;QACrC,iBAAiB,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,iBAAiB;QAChE,aAAa,CAChB;SACA,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG;QACV,wCAAwC;QACxC,oEAAoE;QACpE,WAAW,SAAS,CAAC,MAAM,CAAC,SAAS;QACrC,oCAAoC;QACpC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAC/B,qBAAqB;KACtB;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"listObjects.js","sourceRoot":"","sources":["../../../src/s3/actions/listObjects.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"putObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/putObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA6B7C,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAiBN"}
1
+ {"version":3,"file":"putObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/putObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAwC7C,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,CAAC;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACpE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,OAAO,GACb,IAAI,CAiDN"}
@@ -21,17 +21,54 @@ function decodeAwsChunked(buf) {
21
21
  }
22
22
  return Buffer.concat(chunks);
23
23
  }
24
+ function extractMetadata(headers) {
25
+ const metadata = {};
26
+ for (const [key, value] of Object.entries(headers)) {
27
+ if (key.toLowerCase().startsWith("x-amz-meta-") && value) {
28
+ const metaKey = key.toLowerCase().slice("x-amz-meta-".length);
29
+ metadata[metaKey] = Array.isArray(value) ? value[0] : value;
30
+ }
31
+ }
32
+ return metadata;
33
+ }
24
34
  export function putObject(request, reply, store) {
25
35
  const bucket = request.params.bucket;
26
36
  const key = request.params["*"];
27
37
  const contentType = request.headers["content-type"] ?? "application/octet-stream";
38
+ const copySource = request.headers["x-amz-copy-source"];
39
+ if (copySource) {
40
+ // CopyObject: copy from source bucket/key
41
+ const decoded = decodeURIComponent(copySource).replace(/^\//, "");
42
+ const slashIdx = decoded.indexOf("/");
43
+ if (slashIdx === -1) {
44
+ reply.status(400).send();
45
+ return;
46
+ }
47
+ const srcBucket = decoded.substring(0, slashIdx);
48
+ const srcKey = decoded.substring(slashIdx + 1);
49
+ const srcObj = store.getObject(srcBucket, srcKey);
50
+ const metadata = extractMetadata(request.headers);
51
+ const hasMetadata = Object.keys(metadata).length > 0;
52
+ const obj = store.putObject(bucket, key, srcObj.body, srcObj.contentType, hasMetadata ? metadata : srcObj.metadata);
53
+ const xml = [
54
+ `<?xml version="1.0" encoding="UTF-8"?>`,
55
+ `<CopyObjectResult>`,
56
+ ` <ETag>${obj.etag}</ETag>`,
57
+ ` <LastModified>${obj.lastModified.toISOString()}</LastModified>`,
58
+ `</CopyObjectResult>`,
59
+ ].join("\n");
60
+ reply.header("content-type", "application/xml");
61
+ reply.status(200).send(xml);
62
+ return;
63
+ }
28
64
  let body = Buffer.isBuffer(request.body) ? request.body : Buffer.from(request.body);
29
65
  // Decode aws-chunked encoding if present
30
66
  const contentEncoding = request.headers["content-encoding"];
31
67
  if (contentEncoding && contentEncoding.includes("aws-chunked")) {
32
68
  body = decodeAwsChunked(body);
33
69
  }
34
- const obj = store.putObject(bucket, key, body, contentType);
70
+ const metadata = extractMetadata(request.headers);
71
+ const obj = store.putObject(bucket, key, body, contentType, metadata);
35
72
  reply.header("etag", obj.etag);
36
73
  reply.status(200).send();
37
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"putObject.js","sourceRoot":"","sources":["../../../src/s3/actions/putObject.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,sCAAsC;QACtC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,MAAM;QAE5B,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvD,IAAI,SAAS,KAAK,CAAC;YAAE,MAAM,CAAC,cAAc;QAE1C,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;QAC5D,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,mBAAmB;IACzD,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,OAAoE,EACpE,KAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,0BAA0B,CAAC;IAElF,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;IAE9F,yCAAyC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/D,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAE5D,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"putObject.js","sourceRoot":"","sources":["../../../src/s3/actions/putObject.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,21 @@ export declare class S3Store {
4
4
  createBucket(name: string): void;
5
5
  deleteBucket(name: string): void;
6
6
  hasBucket(name: string): boolean;
7
- putObject(bucket: string, key: string, body: Buffer, contentType?: string): S3Object;
7
+ putObject(bucket: string, key: string, body: Buffer, contentType?: string, metadata?: Record<string, string>): S3Object;
8
8
  getObject(bucket: string, key: string): S3Object;
9
9
  deleteObject(bucket: string, key: string): void;
10
10
  headObject(bucket: string, key: string): S3Object;
11
- listObjects(bucket: string): S3Object[];
11
+ listObjects(bucket: string, options?: {
12
+ prefix?: string;
13
+ delimiter?: string;
14
+ maxKeys?: number;
15
+ startAfter?: string;
16
+ marker?: string;
17
+ }): {
18
+ objects: S3Object[];
19
+ commonPrefixes: string[];
20
+ isTruncated: boolean;
21
+ };
12
22
  deleteObjects(bucket: string, keys: string[]): string[];
13
23
  }
14
24
  //# sourceMappingURL=s3Store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3Store.d.ts","sourceRoot":"","sources":["../../src/s3/s3Store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAA4C;IAE3D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ;IAoBpF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAchD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ/C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQvC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAQxD"}
1
+ {"version":3,"file":"s3Store.d.ts","sourceRoot":"","sources":["../../src/s3/s3Store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAA4C;IAE3D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ;IAqBvH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAchD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ/C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,WAAW,CACT,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACxG;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAwD1E,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAQxD"}
@@ -20,7 +20,7 @@ export class S3Store {
20
20
  hasBucket(name) {
21
21
  return this.buckets.has(name);
22
22
  }
23
- putObject(bucket, key, body, contentType) {
23
+ putObject(bucket, key, body, contentType, metadata) {
24
24
  const objects = this.buckets.get(bucket);
25
25
  if (!objects) {
26
26
  throw new S3Error("NoSuchBucket", `The specified bucket does not exist: ${bucket}`, 404);
@@ -33,6 +33,7 @@ export class S3Store {
33
33
  contentLength: body.length,
34
34
  etag,
35
35
  lastModified: new Date(),
36
+ metadata: metadata ?? {},
36
37
  };
37
38
  objects.set(key, obj);
38
39
  return obj;
@@ -58,12 +59,54 @@ export class S3Store {
58
59
  headObject(bucket, key) {
59
60
  return this.getObject(bucket, key);
60
61
  }
61
- listObjects(bucket) {
62
- const objects = this.buckets.get(bucket);
63
- if (!objects) {
62
+ listObjects(bucket, options) {
63
+ const objectsMap = this.buckets.get(bucket);
64
+ if (!objectsMap) {
64
65
  throw new S3Error("NoSuchBucket", `The specified bucket does not exist: ${bucket}`, 404);
65
66
  }
66
- return Array.from(objects.values());
67
+ const prefix = options?.prefix ?? "";
68
+ const delimiter = options?.delimiter;
69
+ const maxKeys = options?.maxKeys ?? 1000;
70
+ const startAfter = options?.startAfter ?? options?.marker ?? "";
71
+ // Get all keys sorted lexicographically
72
+ const allObjects = Array.from(objectsMap.values())
73
+ .filter((obj) => obj.key.startsWith(prefix))
74
+ .sort((a, b) => a.key.localeCompare(b.key));
75
+ const result = [];
76
+ const commonPrefixSet = new Set();
77
+ let count = 0;
78
+ let isTruncated = false;
79
+ for (const obj of allObjects) {
80
+ if (startAfter && obj.key <= startAfter)
81
+ continue;
82
+ if (delimiter) {
83
+ const rest = obj.key.slice(prefix.length);
84
+ const delimIdx = rest.indexOf(delimiter);
85
+ if (delimIdx >= 0) {
86
+ const commonPrefix = prefix + rest.slice(0, delimIdx + delimiter.length);
87
+ if (!commonPrefixSet.has(commonPrefix)) {
88
+ if (count >= maxKeys) {
89
+ isTruncated = true;
90
+ break;
91
+ }
92
+ commonPrefixSet.add(commonPrefix);
93
+ count++;
94
+ }
95
+ continue;
96
+ }
97
+ }
98
+ if (count >= maxKeys) {
99
+ isTruncated = true;
100
+ break;
101
+ }
102
+ result.push(obj);
103
+ count++;
104
+ }
105
+ return {
106
+ objects: result,
107
+ commonPrefixes: Array.from(commonPrefixSet).sort(),
108
+ isTruncated,
109
+ };
67
110
  }
68
111
  deleteObjects(bucket, keys) {
69
112
  const deleted = [];
@@ -1 +1 @@
1
- {"version":3,"file":"s3Store.js","sourceRoot":"","sources":["../../src/s3/s3Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3Store.js","sourceRoot":"","sources":["../../src/s3/s3Store.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export interface S3Object {
5
5
  contentLength: number;
6
6
  etag: string;
7
7
  lastModified: Date;
8
+ metadata: Record<string, string>;
8
9
  }
9
10
  //# sourceMappingURL=s3Types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3Types.d.ts","sourceRoot":"","sources":["../../src/s3/s3Types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"s3Types.d.ts","sourceRoot":"","sources":["../../src/s3/s3Types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/sns/actions/publish.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMtD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CA8IR;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAsIR"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/sns/actions/publish.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMtD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAsIR;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CA8HR"}
@@ -3,7 +3,7 @@ import { SnsError } from "../../common/errors.js";
3
3
  import { snsSuccessResponse } from "../../common/xml.js";
4
4
  import { SqsStore as SqsStoreClass } from "../../sqs/sqsStore.js";
5
5
  import { SNS_MAX_MESSAGE_SIZE_BYTES } from "../../sqs/sqsTypes.js";
6
- import { matchesFilterPolicy, parseBodyAsAttributes } from "../filter.js";
6
+ import { matchesFilterPolicy, matchesFilterPolicyOnBody } from "../filter.js";
7
7
  export function publish(params, snsStore, sqsStore) {
8
8
  const topicArn = params.TopicArn;
9
9
  if (!topicArn) {
@@ -43,9 +43,6 @@ export function publish(params, snsStore, sqsStore) {
43
43
  }
44
44
  }
45
45
  }
46
- // Pre-parse body for MessageBody-scoped filter policies (done once, not per subscription)
47
- let parsedBodyAttrs;
48
- let bodyAttrsParsed = false;
49
46
  // Pre-build envelope template for non-raw subscriptions (stringify once, not per subscription)
50
47
  const UNSUB_PLACEHOLDER = "__UNSUB_ARN_PLACEHOLDER__";
51
48
  const envelopeTemplate = JSON.stringify({
@@ -74,11 +71,7 @@ export function publish(params, snsStore, sqsStore) {
74
71
  const filterPolicy = JSON.parse(sub.attributes.FilterPolicy);
75
72
  const scope = sub.attributes.FilterPolicyScope ?? "MessageAttributes";
76
73
  if (scope === "MessageBody") {
77
- if (!bodyAttrsParsed) {
78
- parsedBodyAttrs = parseBodyAsAttributes(message);
79
- bodyAttrsParsed = true;
80
- }
81
- if (!parsedBodyAttrs || !matchesFilterPolicy(filterPolicy, parsedBodyAttrs))
74
+ if (!matchesFilterPolicyOnBody(filterPolicy, message))
82
75
  continue;
83
76
  }
84
77
  else {
@@ -156,9 +149,6 @@ export function publishBatch(params, snsStore, sqsStore) {
156
149
  }
157
150
  }
158
151
  const messageId = randomUUID();
159
- // Pre-parse body for MessageBody-scoped filter policies (done once per entry)
160
- let parsedBodyAttrs;
161
- let bodyAttrsParsed = false;
162
152
  // Fan out each entry
163
153
  for (const subArn of topic.subscriptionArns) {
164
154
  const sub = snsStore.getSubscription(subArn);
@@ -170,11 +160,7 @@ export function publishBatch(params, snsStore, sqsStore) {
170
160
  const filterPolicy = JSON.parse(sub.attributes.FilterPolicy);
171
161
  const scope = sub.attributes.FilterPolicyScope ?? "MessageAttributes";
172
162
  if (scope === "MessageBody") {
173
- if (!bodyAttrsParsed) {
174
- parsedBodyAttrs = parseBodyAsAttributes(entry.message);
175
- bodyAttrsParsed = true;
176
- }
177
- if (!parsedBodyAttrs || !matchesFilterPolicy(filterPolicy, parsedBodyAttrs))
163
+ if (!matchesFilterPolicyOnBody(filterPolicy, entry.message))
178
164
  continue;
179
165
  }
180
166
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/sns/actions/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,UAAU,OAAO,CACrB,MAA8B,EAC9B,QAAkB,EAClB,QAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,0BAA0B,EAAE,CAAC;QACpE,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,qEAAqE,0BAA0B,SAAS,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAEzD,sBAAsB;IACtB,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC;IAC1D,IAAI,cAAkC,CAAC;IACvC,IAAI,sBAA0C,CAAC;IAE/C,IAAI,WAAW,EAAE,CAAC;QAChB,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QAED,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACvD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,yBAAyB,KAAK,MAAM,EAAE,CAAC;gBAC1D,sBAAsB,GAAG,aAAa,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,kIAAkI,CACnI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,IAAI,eAAkE,CAAC;IACvE,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,+FAA+F;IAC/F,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,gBAAgB,EAAE,GAAG;QACrB,SAAS,EAAE,SAAS;QACpB,cAAc,EACZ,0FAA0F;QAC5F,cAAc,EAAE,iBAAiB;QACjC,iBAAiB,EAAE,wBAAwB,CAAC,iBAAiB,CAAC;KAC/D,CAAC,CAAC;IAEH,2BAA2B;IAC3B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,SAAS;QACrC,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK;YAAE,SAAS;QAErC,sBAAsB;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,iBAAiB,IAAI,mBAAmB,CAAC;gBAEtE,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;wBACrB,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;wBACjD,eAAe,GAAG,IAAI,CAAC;oBACzB,CAAC;oBACD,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC;wBAAE,SAAS;gBACxF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC;wBAAE,SAAS;gBACtE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,kBAAkB,KAAK,MAAM,CAAC;QAE3D,IAAI,OAAe,CAAC;QACpB,IAAI,aAAa,GAA0C,EAAE,CAAC;QAE9D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,GAAG,OAAO,CAAC;YAClB,aAAa,GAAG,iBAAiB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,kFAAkF;YAClF,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAChC,iBAAiB,EACjB,2EAA2E,GAAG,CAAC,GAAG,EAAE,CACrF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CACxC,OAAO,EACP,aAAa,EACb,SAAS,EACT,cAAc,EACd,sBAAsB,CACvB,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;YACrE,IAAI,WAAW,CAAC,WAAW;gBAAE,SAAS;YACtC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACnD,KAAK,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,kBAAkB,CAAC,SAAS,EAAE,cAAc,SAAS,cAAc,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAA8B,EAC9B,QAAkB,EAClB,QAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,iDAAiD;IACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC;IAE1D,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,0BAA0B,EAAE,CAAC;YAC1E,SAAS,CAAC,IAAI,CACZ,eAAe,KAAK,CAAC,EAAE,+GAA+G,CACvI,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,cAAkC,CAAC;QACvC,IAAI,sBAA0C,CAAC;QAE/C,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CACZ,eAAe,KAAK,CAAC,EAAE,wJAAwJ,CAChL,CAAC;gBACF,SAAS;YACX,CAAC;YAED,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC;YACtD,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,yBAAyB,KAAK,MAAM,EAAE,CAAC;oBAC1D,sBAAsB,GAAG,aAAa,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CACZ,eAAe,KAAK,CAAC,EAAE,4MAA4M,CACpO,CAAC;oBACF,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,8EAA8E;QAC9E,IAAI,eAAkE,CAAC;QACvE,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,qBAAqB;QACrB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK;gBAAE,SAAS;YAE/D,sBAAsB;YACtB,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,iBAAiB,IAAI,mBAAmB,CAAC;oBAEtE,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;wBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;4BACrB,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACvD,eAAe,GAAG,IAAI,CAAC;wBACzB,CAAC;wBACD,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC;4BAAE,SAAS;oBACxF,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC;4BAAE,SAAS;oBAC5E,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,wCAAwC;gBAC1C,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,kBAAkB,KAAK,MAAM,CAAC;YAC3D,IAAI,OAAe,CAAC;YACpB,IAAI,aAAa,GAA0C,EAAE,CAAC;YAE9D,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBACxB,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;oBACvB,IAAI,EAAE,cAAc;oBACpB,SAAS,EAAE,SAAS;oBACpB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,gBAAgB,EAAE,GAAG;oBACrB,SAAS,EAAE,SAAS;oBACpB,cAAc,EACZ,0FAA0F;oBAC5F,cAAc,EAAE,2EAA2E,GAAG,CAAC,GAAG,EAAE;oBACpG,iBAAiB,EAAE,wBAAwB,CAAC,KAAK,CAAC,iBAAiB,CAAC;iBACrE,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CACxC,OAAO,EACP,aAAa,EACb,SAAS,EACT,cAAc,EACd,sBAAsB,CACvB,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;gBACrE,IAAI,WAAW,CAAC,WAAW;oBAAE,SAAS;gBACtC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACnD,KAAK,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACtE,CAAC;YAED,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,mBAAmB,SAAS,uBAAuB,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,kBAAkB,CACvB,cAAc,EACd,eAAe,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAA8B;IAE9B,MAAM,MAAM,GAA0C,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,2BAA2B,GAAG,OAAO,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,2BAA2B,GAAG,iBAAiB,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,2BAA2B,GAAG,oBAAoB,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,MAAM,CAAC,2BAA2B,GAAG,oBAAoB,CAAC,CAAC;QAE/E,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACtC,IAAI,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;YACtE,IAAI,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA8B;IAQvD,MAAM,OAAO,GAOR,EAAE,CAAC;IACR,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACxE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,qCAAqC,GAAG,EAAE,CAAC;QAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,CAAC;QAC1D,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,MAAM,yBAAyB,CAAC,CAAC;QAE1E,0CAA0C;QAC1C,MAAM,iBAAiB,GAA0C,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,MAAM,2BAA2B,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjE,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,UAAU,GAAG,OAAO,OAAO,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,UAAU,GAAG,OAAO,iBAAiB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,UAAU,GAAG,OAAO,oBAAoB,CAAC,CAAC;YACxE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,UAAU,GAAG,OAAO,oBAAoB,CAAC,CAAC;YACxE,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACrB,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACjD,IAAI,WAAW,KAAK,SAAS;oBAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;gBACjF,IAAI,WAAW,KAAK,SAAS;oBAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;YACnF,CAAC;QACH,CAAC;QAED,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAC/B,UAAiD;IAEjD,MAAM,MAAM,GAAoD,EAAE,CAAC;IACnE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/sns/actions/publish.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setSubscriptionAttributes.d.ts","sourceRoot":"","sources":["../../../src/sns/actions/setSubscriptionAttributes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAmBR"}
1
+ {"version":3,"file":"setSubscriptionAttributes.d.ts","sourceRoot":"","sources":["../../../src/sns/actions/setSubscriptionAttributes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAyBR"}
@@ -1,5 +1,13 @@
1
1
  import { SnsError } from "../../common/errors.js";
2
2
  import { snsSuccessResponse } from "../../common/xml.js";
3
+ const VALID_SUBSCRIPTION_ATTRIBUTES = new Set([
4
+ "RawMessageDelivery",
5
+ "FilterPolicy",
6
+ "FilterPolicyScope",
7
+ "RedrivePolicy",
8
+ "DeliveryPolicy",
9
+ "SubscriptionRoleArn",
10
+ ]);
3
11
  export function setSubscriptionAttributes(params, snsStore) {
4
12
  const subscriptionArn = params.SubscriptionArn;
5
13
  if (!subscriptionArn) {
@@ -12,6 +20,9 @@ export function setSubscriptionAttributes(params, snsStore) {
12
20
  const attributeName = params.AttributeName;
13
21
  const attributeValue = params.AttributeValue ?? "";
14
22
  if (attributeName) {
23
+ if (!VALID_SUBSCRIPTION_ATTRIBUTES.has(attributeName)) {
24
+ throw new SnsError("InvalidParameter", `Invalid parameter: AttributeName Reason: Invalid attribute name: ${attributeName}`);
25
+ }
15
26
  subscription.attributes[attributeName] = attributeValue;
16
27
  }
17
28
  return snsSuccessResponse("SetSubscriptionAttributes", "");
@@ -1 +1 @@
1
- {"version":3,"file":"setSubscriptionAttributes.js","sourceRoot":"","sources":["../../../src/sns/actions/setSubscriptionAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,UAAU,yBAAyB,CACvC,MAA8B,EAC9B,QAAkB;IAElB,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;IAEnD,IAAI,aAAa,EAAE,CAAC;QAClB,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;IAC1D,CAAC;IAED,OAAO,kBAAkB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"setSubscriptionAttributes.js","sourceRoot":"","sources":["../../../src/sns/actions/setSubscriptionAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC5C,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CACvC,MAA8B,EAC9B,QAAkB;IAElB,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;IAEnD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,oEAAoE,aAAa,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC;IAC1D,CAAC;IAED,OAAO,kBAAkB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC"}