fauxqs 2.0.0 → 2.2.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.
- package/README.md +11 -4
- package/dist/app.d.ts +2 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/initConfig.d.ts +28 -1
- package/dist/initConfig.d.ts.map +1 -1
- package/dist/initConfig.js +34 -2
- package/dist/initConfig.js.map +1 -1
- package/dist/persistence.js +130 -130
- package/dist/s3/actions/postObject.d.ts +21 -0
- package/dist/s3/actions/postObject.d.ts.map +1 -0
- package/dist/s3/actions/postObject.js +166 -0
- package/dist/s3/actions/postObject.js.map +1 -0
- package/dist/s3/s3Router.d.ts.map +1 -1
- package/dist/s3/s3Router.js +13 -2
- package/dist/s3/s3Router.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -340,8 +340,8 @@ server.createQueue("eu-queue", { region: "eu-west-1" });
|
|
|
340
340
|
server.createTopic("eu-topic", { region: "eu-west-1" });
|
|
341
341
|
server.subscribe({ topic: "eu-topic", queue: "eu-queue", region: "eu-west-1" });
|
|
342
342
|
|
|
343
|
-
// Or create everything at once
|
|
344
|
-
server.setup({
|
|
343
|
+
// Or create everything at once — returns metadata about each resource
|
|
344
|
+
const result = server.setup({
|
|
345
345
|
queues: [
|
|
346
346
|
{ name: "orders" },
|
|
347
347
|
{ name: "notifications", attributes: { DelaySeconds: "5" } },
|
|
@@ -354,6 +354,11 @@ server.setup({
|
|
|
354
354
|
],
|
|
355
355
|
buckets: ["uploads", "exports"],
|
|
356
356
|
});
|
|
357
|
+
// result.queues[0] → { name: "orders", url: "...", arn: "...", created: true }
|
|
358
|
+
// result.topics[0] → { name: "events", arn: "...", created: true }
|
|
359
|
+
// result.subscriptions[0] → { topicName: "events", queueName: "orders", subscriptionArn: "...", created: true }
|
|
360
|
+
// result.buckets[0] → { name: "uploads", created: true }
|
|
361
|
+
// `created` is false when the resource already existed (idempotent skip)
|
|
357
362
|
|
|
358
363
|
// Delete individual resources (uses defaultRegion; pass { region } to override)
|
|
359
364
|
server.deleteQueue("my-queue"); // no-op if queue doesn't exist
|
|
@@ -629,7 +634,7 @@ The spy tracks events across all three services using a discriminated union on `
|
|
|
629
634
|
- **`published`** — message was published to a topic (before fan-out to SQS subscriptions)
|
|
630
635
|
|
|
631
636
|
**S3 events** (`service: 's3'`):
|
|
632
|
-
- **`uploaded`** — object was put (PutObject or CompleteMultipartUpload)
|
|
637
|
+
- **`uploaded`** — object was put (PutObject, PostObject, or CompleteMultipartUpload)
|
|
633
638
|
- **`downloaded`** — object was retrieved (GetObject)
|
|
634
639
|
- **`deleted`** — object was deleted (DeleteObject, only when key existed)
|
|
635
640
|
- **`copied`** — object was copied (CopyObject; also emits `uploaded` for the destination)
|
|
@@ -995,6 +1000,7 @@ Platform application, SMS, and phone number actions are not supported.
|
|
|
995
1000
|
| ListObjects | Yes |
|
|
996
1001
|
| ListObjectsV2 | Yes |
|
|
997
1002
|
| PutObject | Yes |
|
|
1003
|
+
| PostObject | Yes |
|
|
998
1004
|
| GetObject | Yes |
|
|
999
1005
|
| HeadObject | Yes |
|
|
1000
1006
|
| DeleteObject | Yes |
|
|
@@ -1058,10 +1064,11 @@ Returns a mock identity with account `000000000000` and ARN `arn:aws:iam::000000
|
|
|
1058
1064
|
## S3 Features
|
|
1059
1065
|
|
|
1060
1066
|
- **Bucket management** — CreateBucket (idempotent), DeleteBucket (rejects non-empty), HeadBucket, ListBuckets, ListObjects (V1 and V2)
|
|
1061
|
-
- **Object operations** — PutObject, GetObject, DeleteObject, HeadObject, CopyObject with ETag, Content-Type, and Last-Modified headers
|
|
1067
|
+
- **Object operations** — PutObject, PostObject (presigned POST form uploads), GetObject, DeleteObject, HeadObject, CopyObject with ETag, Content-Type, and Last-Modified headers
|
|
1062
1068
|
- **Multipart uploads** — CreateMultipartUpload, UploadPart, UploadPartCopy, CompleteMultipartUpload, AbortMultipartUpload with correct multipart ETag calculation (`MD5-of-part-digests-partCount`), metadata preservation, and part overwrite support
|
|
1063
1069
|
- **ListObjects V2** — prefix filtering, delimiter-based virtual directories, MaxKeys, continuation tokens, StartAfter
|
|
1064
1070
|
- **CopyObject** — same-bucket and cross-bucket copy via `x-amz-copy-source` header, with metadata preservation
|
|
1071
|
+
- **PostObject** — presigned POST form uploads (`multipart/form-data`). Supports `key` field with `${filename}` substitution, `Content-Type`, `success_action_status` (200/201/204), `success_action_redirect`, and user metadata via `x-amz-meta-*` fields. Policy signature validation is skipped (mock server).
|
|
1065
1072
|
- **User metadata** — `x-amz-meta-*` headers are stored and returned on GetObject and HeadObject
|
|
1066
1073
|
- **Bulk delete** — DeleteObjects for batch key deletion with proper XML entity handling
|
|
1067
1074
|
- **Keys with slashes** — full support for slash-delimited keys (e.g., `path/to/file.txt`)
|
package/dist/app.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { MessageAttributeValue } from "./sqs/sqsTypes.ts";
|
|
|
4
4
|
import { SnsStore } from "./sns/snsStore.ts";
|
|
5
5
|
import { S3Store } from "./s3/s3Store.ts";
|
|
6
6
|
import { type MessageSpyReader } from "./spy.ts";
|
|
7
|
-
export type { FauxqsInitConfig } from "./initConfig.ts";
|
|
7
|
+
export type { FauxqsInitConfig, SetupResult, SetupQueueResult, SetupTopicResult, SetupSubscriptionResult, SetupBucketResult, } from "./initConfig.ts";
|
|
8
8
|
export type { MessageAttributeValue } from "./sqs/sqsTypes.ts";
|
|
9
9
|
export { createLocalhostHandler, interceptLocalhostDns } from "./localhost.ts";
|
|
10
10
|
export type { MessageSpyReader, SpyMessage, SqsSpyMessage, SnsSpyMessage, S3SpyEvent, SpyMessageStatus, SqsSpyMessageStatus, SnsSpyMessageStatus, S3SpyEventStatus, MessageSpyFilter, MessageSpyParams, WaitForMessagesOptions, ExpectNoMessageOptions, } from "./spy.ts";
|
|
@@ -107,7 +107,7 @@ export interface FauxqsServer {
|
|
|
107
107
|
}): {
|
|
108
108
|
messageId: string;
|
|
109
109
|
};
|
|
110
|
-
setup(config: import("./initConfig.ts").FauxqsInitConfig):
|
|
110
|
+
setup(config: import("./initConfig.ts").FauxqsInitConfig): import("./initConfig.ts").SetupResult;
|
|
111
111
|
/** Clear all messages from queues and all objects from buckets, but keep queues, topics, subscriptions, and buckets intact. Also clears the spy buffer. */
|
|
112
112
|
reset(): void;
|
|
113
113
|
purgeAll(): void;
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM1C,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7D,YAAY,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -459,7 +459,7 @@ export async function startFauxqs(options) {
|
|
|
459
459
|
return { messageId };
|
|
460
460
|
},
|
|
461
461
|
setup(config) {
|
|
462
|
-
applyInitConfig(config, sqsStore, snsStore, s3Store, {
|
|
462
|
+
return applyInitConfig(config, sqsStore, snsStore, s3Store, {
|
|
463
463
|
port: actualPort,
|
|
464
464
|
region,
|
|
465
465
|
});
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/initConfig.d.ts
CHANGED
|
@@ -28,11 +28,38 @@ declare const InitConfigSchema: v.ObjectSchema<{
|
|
|
28
28
|
}, undefined>], undefined>, undefined>, undefined>;
|
|
29
29
|
}, undefined>;
|
|
30
30
|
export type FauxqsInitConfig = v.InferOutput<typeof InitConfigSchema>;
|
|
31
|
+
export interface SetupQueueResult {
|
|
32
|
+
name: string;
|
|
33
|
+
url: string;
|
|
34
|
+
arn: string;
|
|
35
|
+
created: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface SetupTopicResult {
|
|
38
|
+
name: string;
|
|
39
|
+
arn: string;
|
|
40
|
+
created: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface SetupSubscriptionResult {
|
|
43
|
+
topicName: string;
|
|
44
|
+
queueName: string;
|
|
45
|
+
subscriptionArn: string;
|
|
46
|
+
created: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface SetupBucketResult {
|
|
49
|
+
name: string;
|
|
50
|
+
created: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface SetupResult {
|
|
53
|
+
queues: SetupQueueResult[];
|
|
54
|
+
topics: SetupTopicResult[];
|
|
55
|
+
subscriptions: SetupSubscriptionResult[];
|
|
56
|
+
buckets: SetupBucketResult[];
|
|
57
|
+
}
|
|
31
58
|
export declare function validateInitConfig(data: unknown): FauxqsInitConfig;
|
|
32
59
|
export declare function loadInitConfig(path: string): FauxqsInitConfig;
|
|
33
60
|
export declare function applyInitConfig(config: FauxqsInitConfig, sqsStore: SqsStore, snsStore: SnsStore, s3Store: S3Store, context: {
|
|
34
61
|
port: number;
|
|
35
62
|
region: string;
|
|
36
|
-
}):
|
|
63
|
+
}): SetupResult;
|
|
37
64
|
export {};
|
|
38
65
|
//# sourceMappingURL=initConfig.d.ts.map
|
package/dist/initConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initConfig.d.ts","sourceRoot":"","sources":["../src/initConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAiC/C,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;aAMpB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAElE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAG7D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC,
|
|
1
|
+
{"version":3,"file":"initConfig.d.ts","sourceRoot":"","sources":["../src/initConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAI7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAiC/C,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;aAMpB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAElE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAG7D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC,WAAW,CA6Fb"}
|
package/dist/initConfig.js
CHANGED
|
@@ -51,23 +51,34 @@ export function applyInitConfig(config, sqsStore, snsStore, s3Store, context) {
|
|
|
51
51
|
// Authorization header does not contain a region (e.g. unsigned requests).
|
|
52
52
|
sqsStore.region = defaultRegion;
|
|
53
53
|
snsStore.region = defaultRegion;
|
|
54
|
+
const queueResults = [];
|
|
55
|
+
const topicResults = [];
|
|
56
|
+
const subscriptionResults = [];
|
|
57
|
+
const bucketResults = [];
|
|
54
58
|
// Create queues first (subscriptions depend on queue ARNs)
|
|
55
59
|
if (config.queues) {
|
|
56
60
|
const defaultHost = `127.0.0.1:${port}`;
|
|
57
61
|
for (const q of config.queues) {
|
|
58
|
-
if (sqsStore.getQueueByName(q.name))
|
|
59
|
-
continue; // already exists, skip
|
|
60
62
|
const region = q.region ?? defaultRegion;
|
|
61
63
|
const arn = sqsQueueArn(q.name, region);
|
|
62
64
|
const url = sqsStore.buildQueueUrl(q.name, String(port), defaultHost, region);
|
|
65
|
+
if (sqsStore.getQueueByName(q.name)) {
|
|
66
|
+
const existing = sqsStore.getQueueByName(q.name);
|
|
67
|
+
queueResults.push({ name: q.name, url: existing.url, arn: existing.arn, created: false });
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
63
70
|
sqsStore.createQueue(q.name, url, arn, q.attributes, q.tags);
|
|
71
|
+
queueResults.push({ name: q.name, url, arn, created: true });
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
// Create topics next
|
|
67
75
|
if (config.topics) {
|
|
68
76
|
for (const t of config.topics) {
|
|
69
77
|
const region = t.region ?? defaultRegion;
|
|
78
|
+
const arn = snsTopicArn(t.name, region);
|
|
79
|
+
const existed = !!snsStore.getTopic(arn);
|
|
70
80
|
snsStore.createTopic(t.name, t.attributes, t.tags, region);
|
|
81
|
+
topicResults.push({ name: t.name, arn, created: !existed });
|
|
71
82
|
}
|
|
72
83
|
}
|
|
73
84
|
// Create subscriptions last (depends on both topic ARN and queue ARN)
|
|
@@ -76,22 +87,43 @@ export function applyInitConfig(config, sqsStore, snsStore, s3Store, context) {
|
|
|
76
87
|
const region = s.region ?? defaultRegion;
|
|
77
88
|
const topicArn = snsTopicArn(s.topic, region);
|
|
78
89
|
const queueArn = sqsQueueArn(s.queue, region);
|
|
90
|
+
const topic = snsStore.getTopic(topicArn);
|
|
91
|
+
if (!topic) {
|
|
92
|
+
throw new Error(`Init config: cannot create subscription — topic "${s.topic}" does not exist`);
|
|
93
|
+
}
|
|
94
|
+
const countBefore = topic.subscriptionArns.length;
|
|
79
95
|
const sub = snsStore.subscribe(topicArn, "sqs", queueArn, s.attributes);
|
|
80
96
|
if (!sub) {
|
|
81
97
|
throw new Error(`Init config: cannot create subscription — topic "${s.topic}" does not exist`);
|
|
82
98
|
}
|
|
99
|
+
const created = topic.subscriptionArns.length > countBefore;
|
|
100
|
+
subscriptionResults.push({
|
|
101
|
+
topicName: s.topic,
|
|
102
|
+
queueName: s.queue,
|
|
103
|
+
subscriptionArn: sub.arn,
|
|
104
|
+
created,
|
|
105
|
+
});
|
|
83
106
|
}
|
|
84
107
|
}
|
|
85
108
|
// Create buckets (independent)
|
|
86
109
|
if (config.buckets) {
|
|
87
110
|
for (const entry of config.buckets) {
|
|
111
|
+
const name = typeof entry === "string" ? entry : entry.name;
|
|
112
|
+
const existed = s3Store.hasBucket(name);
|
|
88
113
|
if (typeof entry === "string") {
|
|
89
114
|
s3Store.createBucket(entry);
|
|
90
115
|
}
|
|
91
116
|
else {
|
|
92
117
|
s3Store.createBucket(entry.name, entry.type);
|
|
93
118
|
}
|
|
119
|
+
bucketResults.push({ name, created: !existed });
|
|
94
120
|
}
|
|
95
121
|
}
|
|
122
|
+
return {
|
|
123
|
+
queues: queueResults,
|
|
124
|
+
topics: topicResults,
|
|
125
|
+
subscriptions: subscriptionResults,
|
|
126
|
+
buckets: bucketResults,
|
|
127
|
+
};
|
|
96
128
|
}
|
|
97
129
|
//# sourceMappingURL=initConfig.js.map
|
package/dist/initConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initConfig.js","sourceRoot":"","sources":["../src/initConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAE5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;KAC/D,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CAC3C,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"initConfig.js","sourceRoot":"","sources":["../src/initConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/persistence.js
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
1
|
import { mkdirSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { DatabaseSync } from "node:sqlite";
|
|
4
|
-
const SCHEMA = `
|
|
5
|
-
CREATE TABLE IF NOT EXISTS sqs_queues (
|
|
6
|
-
name TEXT PRIMARY KEY,
|
|
7
|
-
url TEXT NOT NULL,
|
|
8
|
-
arn TEXT NOT NULL,
|
|
9
|
-
attributes TEXT NOT NULL,
|
|
10
|
-
tags TEXT NOT NULL,
|
|
11
|
-
created_timestamp INTEGER NOT NULL,
|
|
12
|
-
last_modified_timestamp INTEGER NOT NULL,
|
|
13
|
-
sequence_counter INTEGER NOT NULL DEFAULT 0
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
CREATE TABLE IF NOT EXISTS sqs_messages (
|
|
17
|
-
message_id TEXT PRIMARY KEY,
|
|
18
|
-
queue_name TEXT NOT NULL REFERENCES sqs_queues(name) ON DELETE CASCADE,
|
|
19
|
-
body TEXT NOT NULL,
|
|
20
|
-
md5_of_body TEXT NOT NULL,
|
|
21
|
-
message_attributes TEXT NOT NULL,
|
|
22
|
-
md5_of_message_attributes TEXT NOT NULL,
|
|
23
|
-
sent_timestamp INTEGER NOT NULL,
|
|
24
|
-
approximate_receive_count INTEGER NOT NULL DEFAULT 0,
|
|
25
|
-
approximate_first_receive_timestamp INTEGER,
|
|
26
|
-
delay_until INTEGER,
|
|
27
|
-
message_group_id TEXT,
|
|
28
|
-
message_deduplication_id TEXT,
|
|
29
|
-
sequence_number TEXT,
|
|
30
|
-
receipt_handle TEXT,
|
|
31
|
-
visibility_deadline INTEGER
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
CREATE TABLE IF NOT EXISTS sns_topics (
|
|
35
|
-
arn TEXT PRIMARY KEY,
|
|
36
|
-
name TEXT NOT NULL,
|
|
37
|
-
attributes TEXT NOT NULL,
|
|
38
|
-
tags TEXT NOT NULL,
|
|
39
|
-
subscription_arns TEXT NOT NULL
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
CREATE TABLE IF NOT EXISTS sns_subscriptions (
|
|
43
|
-
arn TEXT PRIMARY KEY,
|
|
44
|
-
topic_arn TEXT NOT NULL,
|
|
45
|
-
protocol TEXT NOT NULL,
|
|
46
|
-
endpoint TEXT NOT NULL,
|
|
47
|
-
confirmed INTEGER NOT NULL DEFAULT 0,
|
|
48
|
-
attributes TEXT NOT NULL
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
CREATE TABLE IF NOT EXISTS s3_buckets (
|
|
52
|
-
name TEXT PRIMARY KEY,
|
|
53
|
-
creation_date TEXT NOT NULL,
|
|
54
|
-
type TEXT NOT NULL DEFAULT 'general-purpose'
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
CREATE TABLE IF NOT EXISTS s3_objects (
|
|
58
|
-
bucket TEXT NOT NULL,
|
|
59
|
-
key TEXT NOT NULL,
|
|
60
|
-
body BLOB NOT NULL,
|
|
61
|
-
content_type TEXT NOT NULL,
|
|
62
|
-
content_length INTEGER NOT NULL,
|
|
63
|
-
etag TEXT NOT NULL,
|
|
64
|
-
last_modified TEXT NOT NULL,
|
|
65
|
-
metadata TEXT NOT NULL,
|
|
66
|
-
content_language TEXT,
|
|
67
|
-
content_disposition TEXT,
|
|
68
|
-
cache_control TEXT,
|
|
69
|
-
content_encoding TEXT,
|
|
70
|
-
parts TEXT,
|
|
71
|
-
checksum_algorithm TEXT,
|
|
72
|
-
checksum_value TEXT,
|
|
73
|
-
checksum_type TEXT,
|
|
74
|
-
part_checksums TEXT,
|
|
75
|
-
PRIMARY KEY (bucket, key)
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
CREATE TABLE IF NOT EXISTS s3_multipart_uploads (
|
|
79
|
-
upload_id TEXT PRIMARY KEY,
|
|
80
|
-
bucket TEXT NOT NULL,
|
|
81
|
-
key TEXT NOT NULL,
|
|
82
|
-
content_type TEXT NOT NULL,
|
|
83
|
-
metadata TEXT NOT NULL,
|
|
84
|
-
initiated TEXT NOT NULL,
|
|
85
|
-
content_language TEXT,
|
|
86
|
-
content_disposition TEXT,
|
|
87
|
-
cache_control TEXT,
|
|
88
|
-
content_encoding TEXT,
|
|
89
|
-
checksum_algorithm TEXT
|
|
90
|
-
);
|
|
91
|
-
|
|
92
|
-
CREATE TABLE IF NOT EXISTS s3_multipart_parts (
|
|
93
|
-
upload_id TEXT NOT NULL REFERENCES s3_multipart_uploads(upload_id) ON DELETE CASCADE,
|
|
94
|
-
part_number INTEGER NOT NULL,
|
|
95
|
-
body BLOB NOT NULL,
|
|
96
|
-
etag TEXT NOT NULL,
|
|
97
|
-
last_modified TEXT NOT NULL,
|
|
98
|
-
checksum_value TEXT,
|
|
99
|
-
PRIMARY KEY (upload_id, part_number)
|
|
100
|
-
);
|
|
4
|
+
const SCHEMA = `
|
|
5
|
+
CREATE TABLE IF NOT EXISTS sqs_queues (
|
|
6
|
+
name TEXT PRIMARY KEY,
|
|
7
|
+
url TEXT NOT NULL,
|
|
8
|
+
arn TEXT NOT NULL,
|
|
9
|
+
attributes TEXT NOT NULL,
|
|
10
|
+
tags TEXT NOT NULL,
|
|
11
|
+
created_timestamp INTEGER NOT NULL,
|
|
12
|
+
last_modified_timestamp INTEGER NOT NULL,
|
|
13
|
+
sequence_counter INTEGER NOT NULL DEFAULT 0
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE TABLE IF NOT EXISTS sqs_messages (
|
|
17
|
+
message_id TEXT PRIMARY KEY,
|
|
18
|
+
queue_name TEXT NOT NULL REFERENCES sqs_queues(name) ON DELETE CASCADE,
|
|
19
|
+
body TEXT NOT NULL,
|
|
20
|
+
md5_of_body TEXT NOT NULL,
|
|
21
|
+
message_attributes TEXT NOT NULL,
|
|
22
|
+
md5_of_message_attributes TEXT NOT NULL,
|
|
23
|
+
sent_timestamp INTEGER NOT NULL,
|
|
24
|
+
approximate_receive_count INTEGER NOT NULL DEFAULT 0,
|
|
25
|
+
approximate_first_receive_timestamp INTEGER,
|
|
26
|
+
delay_until INTEGER,
|
|
27
|
+
message_group_id TEXT,
|
|
28
|
+
message_deduplication_id TEXT,
|
|
29
|
+
sequence_number TEXT,
|
|
30
|
+
receipt_handle TEXT,
|
|
31
|
+
visibility_deadline INTEGER
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS sns_topics (
|
|
35
|
+
arn TEXT PRIMARY KEY,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
attributes TEXT NOT NULL,
|
|
38
|
+
tags TEXT NOT NULL,
|
|
39
|
+
subscription_arns TEXT NOT NULL
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS sns_subscriptions (
|
|
43
|
+
arn TEXT PRIMARY KEY,
|
|
44
|
+
topic_arn TEXT NOT NULL,
|
|
45
|
+
protocol TEXT NOT NULL,
|
|
46
|
+
endpoint TEXT NOT NULL,
|
|
47
|
+
confirmed INTEGER NOT NULL DEFAULT 0,
|
|
48
|
+
attributes TEXT NOT NULL
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS s3_buckets (
|
|
52
|
+
name TEXT PRIMARY KEY,
|
|
53
|
+
creation_date TEXT NOT NULL,
|
|
54
|
+
type TEXT NOT NULL DEFAULT 'general-purpose'
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
CREATE TABLE IF NOT EXISTS s3_objects (
|
|
58
|
+
bucket TEXT NOT NULL,
|
|
59
|
+
key TEXT NOT NULL,
|
|
60
|
+
body BLOB NOT NULL,
|
|
61
|
+
content_type TEXT NOT NULL,
|
|
62
|
+
content_length INTEGER NOT NULL,
|
|
63
|
+
etag TEXT NOT NULL,
|
|
64
|
+
last_modified TEXT NOT NULL,
|
|
65
|
+
metadata TEXT NOT NULL,
|
|
66
|
+
content_language TEXT,
|
|
67
|
+
content_disposition TEXT,
|
|
68
|
+
cache_control TEXT,
|
|
69
|
+
content_encoding TEXT,
|
|
70
|
+
parts TEXT,
|
|
71
|
+
checksum_algorithm TEXT,
|
|
72
|
+
checksum_value TEXT,
|
|
73
|
+
checksum_type TEXT,
|
|
74
|
+
part_checksums TEXT,
|
|
75
|
+
PRIMARY KEY (bucket, key)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS s3_multipart_uploads (
|
|
79
|
+
upload_id TEXT PRIMARY KEY,
|
|
80
|
+
bucket TEXT NOT NULL,
|
|
81
|
+
key TEXT NOT NULL,
|
|
82
|
+
content_type TEXT NOT NULL,
|
|
83
|
+
metadata TEXT NOT NULL,
|
|
84
|
+
initiated TEXT NOT NULL,
|
|
85
|
+
content_language TEXT,
|
|
86
|
+
content_disposition TEXT,
|
|
87
|
+
cache_control TEXT,
|
|
88
|
+
content_encoding TEXT,
|
|
89
|
+
checksum_algorithm TEXT
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
CREATE TABLE IF NOT EXISTS s3_multipart_parts (
|
|
93
|
+
upload_id TEXT NOT NULL REFERENCES s3_multipart_uploads(upload_id) ON DELETE CASCADE,
|
|
94
|
+
part_number INTEGER NOT NULL,
|
|
95
|
+
body BLOB NOT NULL,
|
|
96
|
+
etag TEXT NOT NULL,
|
|
97
|
+
last_modified TEXT NOT NULL,
|
|
98
|
+
checksum_value TEXT,
|
|
99
|
+
PRIMARY KEY (upload_id, part_number)
|
|
100
|
+
);
|
|
101
101
|
`;
|
|
102
102
|
export class PersistenceManager {
|
|
103
103
|
db;
|
|
@@ -112,41 +112,41 @@ export class PersistenceManager {
|
|
|
112
112
|
}
|
|
113
113
|
prepareStatements() {
|
|
114
114
|
return {
|
|
115
|
-
insertQueue: this.db.prepare(`
|
|
116
|
-
INSERT OR REPLACE INTO sqs_queues (name, url, arn, attributes, tags, created_timestamp, last_modified_timestamp, sequence_counter)
|
|
117
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
115
|
+
insertQueue: this.db.prepare(`
|
|
116
|
+
INSERT OR REPLACE INTO sqs_queues (name, url, arn, attributes, tags, created_timestamp, last_modified_timestamp, sequence_counter)
|
|
117
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
118
118
|
`),
|
|
119
119
|
deleteQueue: this.db.prepare("DELETE FROM sqs_queues WHERE name = ?"),
|
|
120
120
|
updateQueueAttributes: this.db.prepare("UPDATE sqs_queues SET attributes = ?, last_modified_timestamp = ? WHERE name = ?"),
|
|
121
121
|
updateQueueSequenceCounter: this.db.prepare("UPDATE sqs_queues SET sequence_counter = ? WHERE name = ?"),
|
|
122
122
|
loadQueues: this.db.prepare("SELECT * FROM sqs_queues"),
|
|
123
|
-
insertMessage: this.db.prepare(`
|
|
124
|
-
INSERT OR REPLACE INTO sqs_messages (
|
|
125
|
-
message_id, queue_name, body, md5_of_body, message_attributes, md5_of_message_attributes,
|
|
126
|
-
sent_timestamp, approximate_receive_count, approximate_first_receive_timestamp,
|
|
127
|
-
delay_until, message_group_id, message_deduplication_id, sequence_number,
|
|
128
|
-
receipt_handle, visibility_deadline
|
|
129
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
123
|
+
insertMessage: this.db.prepare(`
|
|
124
|
+
INSERT OR REPLACE INTO sqs_messages (
|
|
125
|
+
message_id, queue_name, body, md5_of_body, message_attributes, md5_of_message_attributes,
|
|
126
|
+
sent_timestamp, approximate_receive_count, approximate_first_receive_timestamp,
|
|
127
|
+
delay_until, message_group_id, message_deduplication_id, sequence_number,
|
|
128
|
+
receipt_handle, visibility_deadline
|
|
129
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
130
130
|
`),
|
|
131
131
|
deleteMessage: this.db.prepare("DELETE FROM sqs_messages WHERE message_id = ?"),
|
|
132
|
-
updateMessageInflight: this.db.prepare(`
|
|
133
|
-
UPDATE sqs_messages SET receipt_handle = ?, visibility_deadline = ?, approximate_receive_count = ?, approximate_first_receive_timestamp = ?
|
|
134
|
-
WHERE message_id = ?
|
|
132
|
+
updateMessageInflight: this.db.prepare(`
|
|
133
|
+
UPDATE sqs_messages SET receipt_handle = ?, visibility_deadline = ?, approximate_receive_count = ?, approximate_first_receive_timestamp = ?
|
|
134
|
+
WHERE message_id = ?
|
|
135
135
|
`),
|
|
136
136
|
deleteQueueMessages: this.db.prepare("DELETE FROM sqs_messages WHERE queue_name = ?"),
|
|
137
137
|
loadMessages: this.db.prepare("SELECT * FROM sqs_messages WHERE queue_name = ?"),
|
|
138
138
|
deleteAllMessages: this.db.prepare("DELETE FROM sqs_messages"),
|
|
139
|
-
insertTopic: this.db.prepare(`
|
|
140
|
-
INSERT OR REPLACE INTO sns_topics (arn, name, attributes, tags, subscription_arns)
|
|
141
|
-
VALUES (?, ?, ?, ?, ?)
|
|
139
|
+
insertTopic: this.db.prepare(`
|
|
140
|
+
INSERT OR REPLACE INTO sns_topics (arn, name, attributes, tags, subscription_arns)
|
|
141
|
+
VALUES (?, ?, ?, ?, ?)
|
|
142
142
|
`),
|
|
143
143
|
deleteTopic: this.db.prepare("DELETE FROM sns_topics WHERE arn = ?"),
|
|
144
144
|
updateTopicAttributes: this.db.prepare("UPDATE sns_topics SET attributes = ? WHERE arn = ?"),
|
|
145
145
|
updateTopicSubscriptionArns: this.db.prepare("UPDATE sns_topics SET subscription_arns = ? WHERE arn = ?"),
|
|
146
146
|
loadTopics: this.db.prepare("SELECT * FROM sns_topics"),
|
|
147
|
-
insertSubscription: this.db.prepare(`
|
|
148
|
-
INSERT OR REPLACE INTO sns_subscriptions (arn, topic_arn, protocol, endpoint, confirmed, attributes)
|
|
149
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
147
|
+
insertSubscription: this.db.prepare(`
|
|
148
|
+
INSERT OR REPLACE INTO sns_subscriptions (arn, topic_arn, protocol, endpoint, confirmed, attributes)
|
|
149
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
150
150
|
`),
|
|
151
151
|
deleteSubscription: this.db.prepare("DELETE FROM sns_subscriptions WHERE arn = ?"),
|
|
152
152
|
updateSubscriptionAttributes: this.db.prepare("UPDATE sns_subscriptions SET attributes = ? WHERE arn = ?"),
|
|
@@ -154,28 +154,28 @@ export class PersistenceManager {
|
|
|
154
154
|
insertBucket: this.db.prepare("INSERT OR REPLACE INTO s3_buckets (name, creation_date, type) VALUES (?, ?, ?)"),
|
|
155
155
|
deleteBucket: this.db.prepare("DELETE FROM s3_buckets WHERE name = ?"),
|
|
156
156
|
loadBuckets: this.db.prepare("SELECT * FROM s3_buckets"),
|
|
157
|
-
upsertObject: this.db.prepare(`
|
|
158
|
-
INSERT OR REPLACE INTO s3_objects (
|
|
159
|
-
bucket, key, body, content_type, content_length, etag, last_modified, metadata,
|
|
160
|
-
content_language, content_disposition, cache_control, content_encoding,
|
|
161
|
-
parts, checksum_algorithm, checksum_value, checksum_type, part_checksums
|
|
162
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
157
|
+
upsertObject: this.db.prepare(`
|
|
158
|
+
INSERT OR REPLACE INTO s3_objects (
|
|
159
|
+
bucket, key, body, content_type, content_length, etag, last_modified, metadata,
|
|
160
|
+
content_language, content_disposition, cache_control, content_encoding,
|
|
161
|
+
parts, checksum_algorithm, checksum_value, checksum_type, part_checksums
|
|
162
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
163
163
|
`),
|
|
164
164
|
deleteObject: this.db.prepare("DELETE FROM s3_objects WHERE bucket = ? AND key = ?"),
|
|
165
165
|
deleteObjectsByBucket: this.db.prepare("DELETE FROM s3_objects WHERE bucket = ?"),
|
|
166
166
|
deleteAllObjects: this.db.prepare("DELETE FROM s3_objects"),
|
|
167
167
|
loadObjects: this.db.prepare("SELECT * FROM s3_objects"),
|
|
168
|
-
insertMultipartUpload: this.db.prepare(`
|
|
169
|
-
INSERT OR REPLACE INTO s3_multipart_uploads (
|
|
170
|
-
upload_id, bucket, key, content_type, metadata, initiated,
|
|
171
|
-
content_language, content_disposition, cache_control, content_encoding, checksum_algorithm
|
|
172
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
168
|
+
insertMultipartUpload: this.db.prepare(`
|
|
169
|
+
INSERT OR REPLACE INTO s3_multipart_uploads (
|
|
170
|
+
upload_id, bucket, key, content_type, metadata, initiated,
|
|
171
|
+
content_language, content_disposition, cache_control, content_encoding, checksum_algorithm
|
|
172
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
173
173
|
`),
|
|
174
174
|
deleteMultipartUpload: this.db.prepare("DELETE FROM s3_multipart_uploads WHERE upload_id = ?"),
|
|
175
175
|
loadMultipartUploads: this.db.prepare("SELECT * FROM s3_multipart_uploads"),
|
|
176
|
-
upsertMultipartPart: this.db.prepare(`
|
|
177
|
-
INSERT OR REPLACE INTO s3_multipart_parts (upload_id, part_number, body, etag, last_modified, checksum_value)
|
|
178
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
176
|
+
upsertMultipartPart: this.db.prepare(`
|
|
177
|
+
INSERT OR REPLACE INTO s3_multipart_parts (upload_id, part_number, body, etag, last_modified, checksum_value)
|
|
178
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
179
179
|
`),
|
|
180
180
|
deleteMultipartParts: this.db.prepare("DELETE FROM s3_multipart_parts WHERE upload_id = ?"),
|
|
181
181
|
loadMultipartParts: this.db.prepare("SELECT * FROM s3_multipart_parts WHERE upload_id = ?"),
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { FastifyRequest, FastifyReply } from "fastify";
|
|
2
|
+
import type { S3Store } from "../s3Store.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Handles S3 POST Object (presigned POST form data uploads).
|
|
5
|
+
* See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html
|
|
6
|
+
*
|
|
7
|
+
* The client sends multipart/form-data with policy fields and a file.
|
|
8
|
+
* The "file" field MUST be the last field; any fields after it are ignored.
|
|
9
|
+
* The object key is specified in the "key" form field, not in the URL.
|
|
10
|
+
*/
|
|
11
|
+
export declare function postObject(request: FastifyRequest<{
|
|
12
|
+
Params: {
|
|
13
|
+
bucket: string;
|
|
14
|
+
};
|
|
15
|
+
}>, reply: FastifyReply, store: S3Store): void;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a POST /:bucket request is a PostObject (multipart/form-data)
|
|
18
|
+
* vs DeleteObjects (XML body). This is used by the router to dispatch correctly.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isPostObjectRequest(contentType: string | undefined): boolean;
|
|
21
|
+
//# sourceMappingURL=postObject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postObject.d.ts","sourceRoot":"","sources":["../../../src/s3/actions/postObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,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,CAqGN;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE5E"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { S3Error } from "../../common/errors.js";
|
|
2
|
+
/**
|
|
3
|
+
* Handles S3 POST Object (presigned POST form data uploads).
|
|
4
|
+
* See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html
|
|
5
|
+
*
|
|
6
|
+
* The client sends multipart/form-data with policy fields and a file.
|
|
7
|
+
* The "file" field MUST be the last field; any fields after it are ignored.
|
|
8
|
+
* The object key is specified in the "key" form field, not in the URL.
|
|
9
|
+
*/
|
|
10
|
+
export function postObject(request, reply, store) {
|
|
11
|
+
const bucket = request.params.bucket;
|
|
12
|
+
const contentType = request.headers["content-type"] ?? "";
|
|
13
|
+
const boundaryMatch = /boundary=([^\s;]+)/i.exec(contentType);
|
|
14
|
+
if (!boundaryMatch) {
|
|
15
|
+
throw new S3Error("MalformedPOSTRequest", "The body of your POST request is not well-formed multipart/form-data.", 400);
|
|
16
|
+
}
|
|
17
|
+
const boundary = boundaryMatch[1];
|
|
18
|
+
const body = Buffer.isBuffer(request.body) ? request.body : Buffer.from(request.body);
|
|
19
|
+
const { fields, file, filename } = parseMultipart(body, boundary);
|
|
20
|
+
// "key" is a required field
|
|
21
|
+
let key = fields["key"];
|
|
22
|
+
if (!key) {
|
|
23
|
+
throw new S3Error("InvalidArgument", "Bucket POST must contain a field named 'key'.", 400);
|
|
24
|
+
}
|
|
25
|
+
// ${filename} substitution in the key field
|
|
26
|
+
if (key.includes("${filename}")) {
|
|
27
|
+
const resolvedFilename = filename ?? "";
|
|
28
|
+
key = key.replaceAll("${filename}", resolvedFilename);
|
|
29
|
+
}
|
|
30
|
+
// Content-Type for the stored object comes from the form field, default binary/octet-stream
|
|
31
|
+
const objectContentType = fields["Content-Type"] ?? "binary/octet-stream";
|
|
32
|
+
const fileBody = file ?? Buffer.alloc(0);
|
|
33
|
+
// Extract user metadata from x-amz-meta-* form fields
|
|
34
|
+
const metadata = {};
|
|
35
|
+
for (const [fieldName, fieldValue] of Object.entries(fields)) {
|
|
36
|
+
if (fieldName.toLowerCase().startsWith("x-amz-meta-")) {
|
|
37
|
+
const metaKey = fieldName.toLowerCase().slice("x-amz-meta-".length);
|
|
38
|
+
metadata[metaKey] = fieldValue;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// System metadata from form fields
|
|
42
|
+
const systemMetadata = {};
|
|
43
|
+
if (fields["Content-Disposition"])
|
|
44
|
+
systemMetadata.contentDisposition = fields["Content-Disposition"];
|
|
45
|
+
if (fields["Cache-Control"])
|
|
46
|
+
systemMetadata.cacheControl = fields["Cache-Control"];
|
|
47
|
+
if (fields["Content-Encoding"])
|
|
48
|
+
systemMetadata.contentEncoding = fields["Content-Encoding"];
|
|
49
|
+
const obj = store.putObject(bucket, key, fileBody, objectContentType, metadata, systemMetadata);
|
|
50
|
+
if (store.spy) {
|
|
51
|
+
store.spy.addMessage({
|
|
52
|
+
service: "s3",
|
|
53
|
+
bucket,
|
|
54
|
+
key,
|
|
55
|
+
status: "uploaded",
|
|
56
|
+
timestamp: Date.now(),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// success_action_redirect takes precedence over success_action_status
|
|
60
|
+
const redirect = fields["success_action_redirect"] ?? fields["redirect"];
|
|
61
|
+
if (redirect) {
|
|
62
|
+
try {
|
|
63
|
+
const redirectUrl = new URL(redirect);
|
|
64
|
+
redirectUrl.searchParams.set("bucket", bucket);
|
|
65
|
+
redirectUrl.searchParams.set("key", key);
|
|
66
|
+
redirectUrl.searchParams.set("etag", obj.etag);
|
|
67
|
+
reply.header("location", redirectUrl.toString());
|
|
68
|
+
reply.status(303).send();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Invalid redirect URL — fall through to success_action_status
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// success_action_status: 200, 201, or 204 (default). Invalid values fall back to 204.
|
|
76
|
+
const rawStatus = Number.parseInt(fields["success_action_status"] ?? "204", 10);
|
|
77
|
+
const status = [200, 201, 204].includes(rawStatus) ? rawStatus : 204;
|
|
78
|
+
// ETag header on all success responses
|
|
79
|
+
reply.header("etag", obj.etag);
|
|
80
|
+
if (status === 201) {
|
|
81
|
+
const xml = [
|
|
82
|
+
`<?xml version="1.0" encoding="UTF-8"?>`,
|
|
83
|
+
`<PostResponse>`,
|
|
84
|
+
` <Bucket>${bucket}</Bucket>`,
|
|
85
|
+
` <Key>${key}</Key>`,
|
|
86
|
+
` <ETag>${obj.etag}</ETag>`,
|
|
87
|
+
`</PostResponse>`,
|
|
88
|
+
].join("\n");
|
|
89
|
+
reply.header("content-type", "application/xml");
|
|
90
|
+
reply.status(201).send(xml);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
reply.status(status).send();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Checks if a POST /:bucket request is a PostObject (multipart/form-data)
|
|
98
|
+
* vs DeleteObjects (XML body). This is used by the router to dispatch correctly.
|
|
99
|
+
*/
|
|
100
|
+
export function isPostObjectRequest(contentType) {
|
|
101
|
+
return !!contentType && contentType.toLowerCase().includes("multipart/form-data");
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Parse multipart/form-data from raw buffer.
|
|
105
|
+
*
|
|
106
|
+
* Per the S3 spec, the "file" field must be the last field.
|
|
107
|
+
* Any fields appearing after "file" are ignored.
|
|
108
|
+
*/
|
|
109
|
+
function parseMultipart(body, boundary) {
|
|
110
|
+
const fields = {};
|
|
111
|
+
let file;
|
|
112
|
+
let filename;
|
|
113
|
+
const delimiter = Buffer.from(`--${boundary}`);
|
|
114
|
+
const crlfCrlf = Buffer.from("\r\n\r\n");
|
|
115
|
+
const crlf = Buffer.from("\r\n");
|
|
116
|
+
// Find all boundary positions
|
|
117
|
+
const positions = [];
|
|
118
|
+
let searchFrom = 0;
|
|
119
|
+
while (true) {
|
|
120
|
+
const idx = body.indexOf(delimiter, searchFrom);
|
|
121
|
+
if (idx === -1)
|
|
122
|
+
break;
|
|
123
|
+
positions.push(idx);
|
|
124
|
+
searchFrom = idx + delimiter.length;
|
|
125
|
+
}
|
|
126
|
+
for (let i = 0; i < positions.length - 1; i++) {
|
|
127
|
+
const partStart = positions[i] + delimiter.length;
|
|
128
|
+
const partEnd = positions[i + 1];
|
|
129
|
+
// Skip the \r\n after the boundary delimiter
|
|
130
|
+
const contentStart = body.indexOf(crlf, partStart);
|
|
131
|
+
if (contentStart === -1 || contentStart >= partEnd)
|
|
132
|
+
continue;
|
|
133
|
+
const headersStart = contentStart + crlf.length;
|
|
134
|
+
// Find \r\n\r\n that separates headers from body
|
|
135
|
+
const headerEnd = body.indexOf(crlfCrlf, headersStart);
|
|
136
|
+
if (headerEnd === -1 || headerEnd >= partEnd)
|
|
137
|
+
continue;
|
|
138
|
+
const headerSection = body.subarray(headersStart, headerEnd).toString("utf-8");
|
|
139
|
+
const valueStart = headerEnd + crlfCrlf.length;
|
|
140
|
+
// Value ends at \r\n before the next boundary
|
|
141
|
+
let valueEnd = partEnd;
|
|
142
|
+
if (body[partEnd - 2] === 0x0d && body[partEnd - 1] === 0x0a) {
|
|
143
|
+
valueEnd = partEnd - 2; // strip trailing \r\n before boundary
|
|
144
|
+
}
|
|
145
|
+
// Parse Content-Disposition
|
|
146
|
+
const dispositionMatch = /Content-Disposition:\s*form-data;\s*name="([^"]+)"(?:;\s*filename="([^"]*)")?/i.exec(headerSection);
|
|
147
|
+
if (!dispositionMatch)
|
|
148
|
+
continue;
|
|
149
|
+
const fieldName = dispositionMatch[1];
|
|
150
|
+
const filenamePart = dispositionMatch[2];
|
|
151
|
+
if (filenamePart !== undefined || fieldName === "file") {
|
|
152
|
+
// File field — extract binary data directly from buffer
|
|
153
|
+
file = body.subarray(valueStart, valueEnd);
|
|
154
|
+
// Extract just the filename (strip path components per AWS spec)
|
|
155
|
+
if (filenamePart !== undefined) {
|
|
156
|
+
const lastSlash = Math.max(filenamePart.lastIndexOf("/"), filenamePart.lastIndexOf("\\"));
|
|
157
|
+
filename = lastSlash >= 0 ? filenamePart.substring(lastSlash + 1) : filenamePart;
|
|
158
|
+
}
|
|
159
|
+
// Per AWS spec, file must be the last field — stop processing
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
fields[fieldName] = body.subarray(valueStart, valueEnd).toString("utf-8");
|
|
163
|
+
}
|
|
164
|
+
return { fields, file, filename };
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=postObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postObject.js","sourceRoot":"","sources":["../../../src/s3/actions/postObject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3Router.d.ts","sourceRoot":"","sources":["../../src/s3/s3Router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"s3Router.d.ts","sourceRoot":"","sources":["../../src/s3/s3Router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmB5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAoL3E"}
|
package/dist/s3/s3Router.js
CHANGED
|
@@ -15,6 +15,7 @@ import { completeMultipartUpload } from "./actions/completeMultipartUpload.js";
|
|
|
15
15
|
import { abortMultipartUpload } from "./actions/abortMultipartUpload.js";
|
|
16
16
|
import { getObjectAttributes } from "./actions/getObjectAttributes.js";
|
|
17
17
|
import { renameObject } from "./actions/renameObject.js";
|
|
18
|
+
import { postObject, isPostObjectRequest } from "./actions/postObject.js";
|
|
18
19
|
export function registerS3Routes(app, store) {
|
|
19
20
|
const handleError = (err, reply, isHead = false) => {
|
|
20
21
|
if (err instanceof S3Error) {
|
|
@@ -88,7 +89,12 @@ export function registerS3Routes(app, store) {
|
|
|
88
89
|
});
|
|
89
90
|
app.post("/:bucket", async (request, reply) => {
|
|
90
91
|
try {
|
|
91
|
-
|
|
92
|
+
if (isPostObjectRequest(request.headers["content-type"])) {
|
|
93
|
+
postObject(request, reply, store);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
deleteObjects(request, reply, store);
|
|
97
|
+
}
|
|
92
98
|
}
|
|
93
99
|
catch (err) {
|
|
94
100
|
handleError(err, reply);
|
|
@@ -175,7 +181,12 @@ export function registerS3Routes(app, store) {
|
|
|
175
181
|
try {
|
|
176
182
|
const key = getKey(request.params);
|
|
177
183
|
if (!key) {
|
|
178
|
-
|
|
184
|
+
if (isPostObjectRequest(request.headers["content-type"])) {
|
|
185
|
+
postObject(request, reply, store);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
deleteObjects(request, reply, store);
|
|
189
|
+
}
|
|
179
190
|
return;
|
|
180
191
|
}
|
|
181
192
|
const query = getQuery(request);
|
package/dist/s3/s3Router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3Router.js","sourceRoot":"","sources":["../../src/s3/s3Router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"s3Router.js","sourceRoot":"","sources":["../../src/s3/s3Router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fauxqs",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "SNS/SQS/S3 emulator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"valibot": "^1.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
+
"@aws-sdk/s3-presigned-post": "^3.997.0",
|
|
46
47
|
"@aws-sdk/s3-request-presigner": "^3.993.0",
|
|
47
48
|
"@message-queue-toolkit/s3-payload-store": "^3.0.0",
|
|
48
49
|
"@types/node": "^25.2.3",
|