@8ms/helpers 2.4.10 → 2.4.12

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 (78) hide show
  1. package/dist/_class/BaseClass.cjs +31 -21
  2. package/dist/_class/BaseClass.mjs +31 -21
  3. package/dist/_class/BaseNamespace.cjs +10 -9
  4. package/dist/_class/BaseNamespace.mjs +10 -9
  5. package/dist/_virtual/_rolldown/runtime.cjs +1 -1
  6. package/dist/_virtual/_rolldown/runtime.mjs +1 -1
  7. package/dist/api/ApiResponseClass.cjs +96 -96
  8. package/dist/api/ApiResponseClass.mjs +96 -96
  9. package/dist/aws/cloudWatchLog/server/AwsCloudWatchLogNamespace.cjs +70 -60
  10. package/dist/aws/cloudWatchLog/server/AwsCloudWatchLogNamespace.mjs +70 -60
  11. package/dist/aws/cloudWatchMetric/server/AwsCloudWatchMetricNamespace.cjs +30 -28
  12. package/dist/aws/cloudWatchMetric/server/AwsCloudWatchMetricNamespace.mjs +30 -28
  13. package/dist/aws/ec2/server/AwsEc2Namespace.cjs +29 -32
  14. package/dist/aws/ec2/server/AwsEc2Namespace.mjs +29 -32
  15. package/dist/aws/ecs/server/AwsEcsNamespace.cjs +92 -78
  16. package/dist/aws/ecs/server/AwsEcsNamespace.mjs +92 -78
  17. package/dist/aws/glue/server/AwsGlueNamespace.cjs +17 -17
  18. package/dist/aws/glue/server/AwsGlueNamespace.mjs +17 -17
  19. package/dist/aws/lambda/server/AwsLambdaNamespace.cjs +33 -31
  20. package/dist/aws/lambda/server/AwsLambdaNamespace.mjs +33 -31
  21. package/dist/aws/s3/server/AwsS3Namespace.cjs +280 -265
  22. package/dist/aws/s3/server/AwsS3Namespace.mjs +280 -265
  23. package/dist/aws/ses/server/AwsSesNamespace.cjs +27 -30
  24. package/dist/aws/ses/server/AwsSesNamespace.mjs +27 -30
  25. package/dist/aws/ses/server/SimpleEmail.cjs +202 -199
  26. package/dist/aws/ses/server/SimpleEmail.mjs +202 -199
  27. package/dist/aws/sqs/server/AwsSqsNamespace.cjs +35 -38
  28. package/dist/aws/sqs/server/AwsSqsNamespace.mjs +35 -38
  29. package/dist/aws/ssm/server/AwsSsmNamespace.cjs +24 -23
  30. package/dist/aws/ssm/server/AwsSsmNamespace.mjs +24 -23
  31. package/dist/date/index.cjs +1 -1
  32. package/dist/date/index.mjs +1 -1
  33. package/dist/drizzle/server/DrizzleNamespace.cjs +39 -42
  34. package/dist/drizzle/server/DrizzleNamespace.d.cts +1 -0
  35. package/dist/drizzle/server/DrizzleNamespace.mjs +39 -42
  36. package/dist/googleAds/server/GoogleAdsNamespace.cjs +21 -24
  37. package/dist/googleAds/server/GoogleAdsNamespace.mjs +21 -24
  38. package/dist/googleCloud/bigquery/server/GoogleCloudBigqueryNamespace.cjs +87 -70
  39. package/dist/googleCloud/bigquery/server/GoogleCloudBigqueryNamespace.mjs +87 -70
  40. package/dist/googleCloud/sheets/server/GoogleCloudSheetsNamespace.cjs +22 -25
  41. package/dist/googleCloud/sheets/server/GoogleCloudSheetsNamespace.mjs +22 -25
  42. package/dist/googleCloud/storage/server/GoogleCloudStorageNamespace.cjs +45 -38
  43. package/dist/googleCloud/storage/server/GoogleCloudStorageNamespace.mjs +45 -38
  44. package/dist/googlePageSpeed/server/GooglePageSpeedNamespace.cjs +12 -15
  45. package/dist/googlePageSpeed/server/GooglePageSpeedNamespace.mjs +12 -15
  46. package/dist/littleWarden/server/LittleWardenNamespace.cjs +12 -15
  47. package/dist/littleWarden/server/LittleWardenNamespace.mjs +12 -15
  48. package/dist/nextJs/client/index.cjs +2 -0
  49. package/dist/nextJs/client/index.d.cts +2 -1
  50. package/dist/nextJs/client/index.d.mts +2 -1
  51. package/dist/nextJs/client/index.mjs +2 -1
  52. package/dist/nextJs/client/useAsyncEffect.cjs +23 -0
  53. package/dist/nextJs/client/useAsyncEffect.d.cts +4 -0
  54. package/dist/nextJs/client/useAsyncEffect.d.mts +4 -0
  55. package/dist/nextJs/client/useAsyncEffect.mjs +21 -0
  56. package/dist/onePassword/server/OnePasswordNamespace.cjs +30 -33
  57. package/dist/onePassword/server/OnePasswordNamespace.mjs +30 -33
  58. package/dist/openAi/server/OpenAiNamespace.cjs +20 -20
  59. package/dist/openAi/server/OpenAiNamespace.mjs +20 -20
  60. package/dist/prisma/server/PrismaNamespace.cjs +35 -38
  61. package/dist/prisma/server/PrismaNamespace.mjs +35 -38
  62. package/dist/snapchat/server/SnapchatNamespace.cjs +12 -12
  63. package/dist/snapchat/server/SnapchatNamespace.mjs +12 -12
  64. package/dist/upTimeRobot/server/UpTimeRobotNamespace.cjs +19 -19
  65. package/dist/upTimeRobot/server/UpTimeRobotNamespace.mjs +19 -19
  66. package/package.json +4 -12
  67. package/dist/nextJs/index.cjs +0 -4
  68. package/dist/nextJs/index.d.cts +0 -2
  69. package/dist/nextJs/index.d.mts +0 -2
  70. package/dist/nextJs/index.mjs +0 -2
  71. package/dist/nextJs/nextJs.cjs +0 -13
  72. package/dist/nextJs/nextJs.d.cts +0 -19
  73. package/dist/nextJs/nextJs.d.mts +0 -19
  74. package/dist/nextJs/nextJs.mjs +0 -11
  75. package/dist/nextJs/tests/getIp.cjs +0 -9
  76. package/dist/nextJs/tests/getIp.d.cts +0 -1
  77. package/dist/nextJs/tests/getIp.d.mts +0 -1
  78. package/dist/nextJs/tests/getIp.mjs +0 -10
@@ -16,282 +16,297 @@ const require_aws_s3_server_awsS3 = require("./awsS3.cjs");
16
16
  require("./index.cjs");
17
17
  //#region src/aws/s3/server/AwsS3Namespace.ts
18
18
  var AwsS3Namespace = class extends require__class_BaseNamespace.BaseNamespace {
19
- constructor(..._args) {
20
- super(..._args);
21
- this.ensureInit = async () => {
22
- if (!this.client) try {
23
- const { S3Client } = await import("@aws-sdk/client-s3");
24
- this.client = new S3Client(this.config);
25
- } catch (e) {
26
- throw new Error("AWS S3 Client not installed");
27
- }
28
- };
29
- this.copy = async (fromBucket, fromKey, toBucket, toKey) => {
30
- await this.ensureInit();
31
- const { CopyObjectCommand } = await import("@aws-sdk/client-s3");
32
- await this.client.send(new CopyObjectCommand({
33
- Bucket: toBucket,
34
- CopySource: encodeURIComponent(`${fromBucket}/${fromKey}`),
35
- Key: toKey
36
- }));
37
- };
38
- this.deleteFile = async (bucket, key) => {
39
- await this.ensureInit();
40
- const { DeleteObjectCommand } = await import("@aws-sdk/client-s3");
41
- await this.client.send(new DeleteObjectCommand({
42
- Bucket: bucket,
43
- Key: key
44
- }));
45
- };
46
- this.deleteFiles = async (bucket, keys) => {
47
- await this.ensureInit();
48
- const { DeleteObjectsCommand } = await import("@aws-sdk/client-s3");
49
- await this.client.send(new DeleteObjectsCommand({
50
- Bucket: bucket,
51
- Delete: { Objects: keys.map((key) => ({ Key: key })) }
52
- }));
53
- };
54
- this.deleteFolder = async (bucket, folder) => {
55
- await this.ensureInit();
56
- const { ListObjectsV2Command, DeleteObjectsCommand } = await import("@aws-sdk/client-s3");
57
- const cleanFolder = require_string_getFolder.getFolder(folder);
58
- const apiResponse = await this.client.send(new ListObjectsV2Command({
59
- Bucket: bucket,
60
- Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
61
- }));
62
- if (!apiResponse.Contents?.length || 0 === apiResponse.Contents.length) return;
63
- const keys = apiResponse.Contents.map((file) => ({ Key: file.Key }));
64
- await this.client.send(new DeleteObjectsCommand({
65
- Bucket: bucket,
66
- Delete: { Objects: keys }
67
- }));
68
- if (apiResponse.IsTruncated) await this.deleteFolder(bucket, folder);
19
+ ensureInit = async () => {
20
+ if (!this.client) try {
21
+ const { S3Client } = await import("@aws-sdk/client-s3");
22
+ this.client = new S3Client(this.config);
23
+ } catch (e) {
24
+ throw new Error("AWS S3 Client not installed");
25
+ }
26
+ };
27
+ copy = async (fromBucket, fromKey, toBucket, toKey) => {
28
+ await this.ensureInit();
29
+ const { CopyObjectCommand } = await import("@aws-sdk/client-s3");
30
+ await this.client.send(new CopyObjectCommand({
31
+ Bucket: toBucket,
32
+ CopySource: encodeURIComponent(`${fromBucket}/${fromKey}`),
33
+ Key: toKey
34
+ }));
35
+ };
36
+ deleteFile = async (bucket, key) => {
37
+ await this.ensureInit();
38
+ const { DeleteObjectCommand } = await import("@aws-sdk/client-s3");
39
+ await this.client.send(new DeleteObjectCommand({
40
+ Bucket: bucket,
41
+ Key: key
42
+ }));
43
+ };
44
+ deleteFiles = async (bucket, keys) => {
45
+ await this.ensureInit();
46
+ const { DeleteObjectsCommand } = await import("@aws-sdk/client-s3");
47
+ await this.client.send(new DeleteObjectsCommand({
48
+ Bucket: bucket,
49
+ Delete: { Objects: keys.map((key) => ({ Key: key })) }
50
+ }));
51
+ };
52
+ deleteFolder = async (bucket, folder) => {
53
+ await this.ensureInit();
54
+ const { ListObjectsV2Command, DeleteObjectsCommand } = await import("@aws-sdk/client-s3");
55
+ const cleanFolder = require_string_getFolder.getFolder(folder);
56
+ const apiResponse = await this.client.send(new ListObjectsV2Command({
57
+ Bucket: bucket,
58
+ Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
59
+ }));
60
+ if (!apiResponse.Contents?.length || 0 === apiResponse.Contents.length) return;
61
+ const keys = apiResponse.Contents.map((file) => ({ Key: file.Key }));
62
+ await this.client.send(new DeleteObjectsCommand({
63
+ Bucket: bucket,
64
+ Delete: { Objects: keys }
65
+ }));
66
+ if (apiResponse.IsTruncated) await this.deleteFolder(bucket, folder);
67
+ };
68
+ /**
69
+ * List the files in the given bucket and option folder
70
+ */
71
+ listFiles = async (bucket, folder = "") => {
72
+ await this.ensureInit();
73
+ const { ListObjectsV2Command } = await import("@aws-sdk/client-s3");
74
+ const cleanFolder = require_string_getFolder.getFolder(folder);
75
+ const apiResponse = await this.client.send(new ListObjectsV2Command({
76
+ Bucket: bucket,
77
+ Delimiter: "/",
78
+ Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
79
+ }));
80
+ if (!apiResponse?.["Contents"]) return [];
81
+ const valid = apiResponse["Contents"].filter((content) => {
82
+ if (!content?.["Key"]) return false;
83
+ const keyExploded = content["Key"].split("/");
84
+ return keyExploded[keyExploded.length - 1].indexOf(".") > -1;
85
+ });
86
+ if (0 === valid.length) return [];
87
+ return valid.map((entry) => entry?.["Key"] ?? "").filter((entryKey) => "" !== entryKey);
88
+ };
89
+ /**
90
+ * Fetch all the files within a given directory recursively
91
+ */
92
+ filesIteratively = async (bucket, folder) => {
93
+ await this.ensureInit();
94
+ return await this.iterateFolders(bucket, folder);
95
+ };
96
+ /**
97
+ * Sub function
98
+ */
99
+ iterateFolders = async (bucket, folder) => {
100
+ let response = [];
101
+ const folders = await this.listFolders(bucket, folder);
102
+ for (let i = 0; i < folders.length; i++) {
103
+ const subFolderFiles = await this.listFolders(bucket, `${folder}/${folders[i]}`);
104
+ const files = await this.listFiles(bucket, `${folder}/${folders[i]}`);
105
+ response = [
106
+ ...response,
107
+ ...files,
108
+ ...subFolderFiles
109
+ ];
110
+ }
111
+ return response;
112
+ };
113
+ /**
114
+ * List the files in the given bucket and option folder.
115
+ */
116
+ listFolders = async (bucket, folder) => {
117
+ await this.ensureInit();
118
+ const { ListObjectsV2Command } = await import("@aws-sdk/client-s3");
119
+ const cleanFolder = require_string_getFolder.getFolder(folder);
120
+ const apiResponse = await this.client.send(new ListObjectsV2Command({
121
+ Bucket: bucket,
122
+ Delimiter: "/",
123
+ Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
124
+ }));
125
+ if (!apiResponse?.["CommonPrefixes"]) return [];
126
+ return apiResponse["CommonPrefixes"].map((prefix) => {
127
+ if (!prefix?.Prefix) return "";
128
+ const fileFolders = prefix.Prefix.slice(0, -1).split("/");
129
+ return fileFolders[fileFolders.length - 1];
130
+ }).filter((prefixFolder) => "" !== prefixFolder);
131
+ };
132
+ move = async (fromBucket, fromKey, toBucket, toKey) => {
133
+ await this.ensureInit();
134
+ const { CopyObjectCommand, DeleteObjectCommand } = await import("@aws-sdk/client-s3");
135
+ await this.client.send(new CopyObjectCommand({
136
+ Bucket: toBucket,
137
+ CopySource: encodeURIComponent(`${fromBucket}/${fromKey}`),
138
+ Key: toKey
139
+ }));
140
+ await this.client.send(new DeleteObjectCommand({
141
+ Bucket: fromBucket,
142
+ Key: fromKey
143
+ }));
144
+ };
145
+ readBrotli = async (bucket, key, brotliOptions = {}, awsS3Options = {}) => {
146
+ await this.ensureInit();
147
+ const apiResponse = await this.readFile(bucket, key, awsS3Options);
148
+ if (void 0 !== apiResponse.body) apiResponse.body = await require_util_server_getBrotliDecompressed.getBrotliDecompressed(apiResponse.body, brotliOptions);
149
+ return apiResponse;
150
+ };
151
+ readJsonBrotli = async (bucket, key, brotliOptions = {}, awsS3Options = {}) => {
152
+ await this.ensureInit();
153
+ const apiResponse = await this.readFile(bucket, key, awsS3Options);
154
+ if (void 0 !== apiResponse.body) {
155
+ apiResponse.body = await require_util_server_getBrotliDecompressed.getBrotliDecompressed(apiResponse.body, brotliOptions);
156
+ apiResponse.body = JSON.parse(apiResponse.body) || null;
157
+ }
158
+ return apiResponse;
159
+ };
160
+ readBuffer = async (bucket, key) => {
161
+ await this.ensureInit();
162
+ const { GetObjectCommand } = await import("@aws-sdk/client-s3");
163
+ let response = {
164
+ ...require_aws_s3_server_awsS3.readFileDefault,
165
+ buffer: void 0
69
166
  };
70
- this.listFiles = async (bucket, folder = "") => {
71
- await this.ensureInit();
72
- const { ListObjectsV2Command } = await import("@aws-sdk/client-s3");
73
- const cleanFolder = require_string_getFolder.getFolder(folder);
74
- const apiResponse = await this.client.send(new ListObjectsV2Command({
75
- Bucket: bucket,
76
- Delimiter: "/",
77
- Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
78
- }));
79
- if (!apiResponse?.["Contents"]) return [];
80
- const valid = apiResponse["Contents"].filter((content) => {
81
- if (!content?.["Key"]) return false;
82
- const keyExploded = content["Key"].split("/");
83
- return keyExploded[keyExploded.length - 1].indexOf(".") > -1;
167
+ const apiResponse = await this.client.send(new GetObjectCommand({
168
+ Bucket: bucket,
169
+ Key: key
170
+ }));
171
+ if (require_aws_server_isResponse200.isResponse200(apiResponse)) {
172
+ const chunks = [];
173
+ response.buffer = await new Promise((resolve, reject) => {
174
+ const body = apiResponse.Body;
175
+ body.on("data", (chunk) => chunks.push(chunk));
176
+ body.on("error", (err) => reject(err));
177
+ body.on("end", () => resolve(Buffer.concat(chunks)));
84
178
  });
85
- if (0 === valid.length) return [];
86
- return valid.map((entry) => entry?.["Key"] ?? "").filter((entryKey) => "" !== entryKey);
87
- };
88
- this.filesIteratively = async (bucket, folder) => {
89
- await this.ensureInit();
90
- return await this.iterateFolders(bucket, folder);
91
- };
92
- this.iterateFolders = async (bucket, folder) => {
93
- let response = [];
94
- const folders = await this.listFolders(bucket, folder);
95
- for (let i = 0; i < folders.length; i++) {
96
- const subFolderFiles = await this.listFolders(bucket, `${folder}/${folders[i]}`);
97
- const files = await this.listFiles(bucket, `${folder}/${folders[i]}`);
98
- response = [
99
- ...response,
100
- ...files,
101
- ...subFolderFiles
102
- ];
103
- }
104
- return response;
105
- };
106
- this.listFolders = async (bucket, folder) => {
107
- await this.ensureInit();
108
- const { ListObjectsV2Command } = await import("@aws-sdk/client-s3");
109
- const cleanFolder = require_string_getFolder.getFolder(folder);
110
- const apiResponse = await this.client.send(new ListObjectsV2Command({
179
+ } else throw new Error("Error reading file.");
180
+ return response;
181
+ };
182
+ fileExists = async (bucket, key) => {
183
+ await this.ensureInit();
184
+ let response = false;
185
+ try {
186
+ const { HeadObjectCommand } = await import("@aws-sdk/client-s3");
187
+ response = require_aws_server_isResponse200.isResponse200(await this.client.send(new HeadObjectCommand({
111
188
  Bucket: bucket,
112
- Delimiter: "/",
113
- Prefix: "" === cleanFolder ? "" : cleanFolder + "/"
114
- }));
115
- if (!apiResponse?.["CommonPrefixes"]) return [];
116
- return apiResponse["CommonPrefixes"].map((prefix) => {
117
- if (!prefix?.Prefix) return "";
118
- const fileFolders = prefix.Prefix.slice(0, -1).split("/");
119
- return fileFolders[fileFolders.length - 1];
120
- }).filter((prefixFolder) => "" !== prefixFolder);
121
- };
122
- this.move = async (fromBucket, fromKey, toBucket, toKey) => {
123
- await this.ensureInit();
124
- const { CopyObjectCommand, DeleteObjectCommand } = await import("@aws-sdk/client-s3");
125
- await this.client.send(new CopyObjectCommand({
126
- Bucket: toBucket,
127
- CopySource: encodeURIComponent(`${fromBucket}/${fromKey}`),
128
- Key: toKey
129
- }));
130
- await this.client.send(new DeleteObjectCommand({
131
- Bucket: fromBucket,
132
- Key: fromKey
133
- }));
134
- };
135
- this.readBrotli = async (bucket, key, brotliOptions = {}, awsS3Options = {}) => {
136
- await this.ensureInit();
137
- const apiResponse = await this.readFile(bucket, key, awsS3Options);
138
- if (void 0 !== apiResponse.body) apiResponse.body = await require_util_server_getBrotliDecompressed.getBrotliDecompressed(apiResponse.body, brotliOptions);
139
- return apiResponse;
140
- };
141
- this.readJsonBrotli = async (bucket, key, brotliOptions = {}, awsS3Options = {}) => {
142
- await this.ensureInit();
143
- const apiResponse = await this.readFile(bucket, key, awsS3Options);
144
- if (void 0 !== apiResponse.body) {
145
- apiResponse.body = await require_util_server_getBrotliDecompressed.getBrotliDecompressed(apiResponse.body, brotliOptions);
146
- apiResponse.body = JSON.parse(apiResponse.body) || null;
147
- }
148
- return apiResponse;
149
- };
150
- this.readBuffer = async (bucket, key) => {
151
- await this.ensureInit();
189
+ Key: key
190
+ })));
191
+ } catch (exception) {
192
+ response = false;
193
+ }
194
+ return response;
195
+ };
196
+ readFile = async (bucket, key, options = {}) => {
197
+ await this.ensureInit();
198
+ let response = structuredClone(require_aws_s3_server_awsS3.readFileDefault);
199
+ const today = require_date_calculation.getToday();
200
+ require_date_calculation.getToday(true);
201
+ try {
202
+ response.now = today.toUnixInteger();
152
203
  const { GetObjectCommand } = await import("@aws-sdk/client-s3");
153
- let response = {
154
- ...require_aws_s3_server_awsS3.readFileDefault,
155
- buffer: void 0
156
- };
157
204
  const apiResponse = await this.client.send(new GetObjectCommand({
158
205
  Bucket: bucket,
159
- Key: key
206
+ Key: key,
207
+ ...options
160
208
  }));
161
209
  if (require_aws_server_isResponse200.isResponse200(apiResponse)) {
162
- const chunks = [];
163
- response.buffer = await new Promise((resolve, reject) => {
164
- const body = apiResponse.Body;
165
- body.on("data", (chunk) => chunks.push(chunk));
166
- body.on("error", (err) => reject(err));
167
- body.on("end", () => resolve(Buffer.concat(chunks)));
168
- });
169
- } else throw new Error("Error reading file.");
170
- return response;
171
- };
172
- this.fileExists = async (bucket, key) => {
173
- await this.ensureInit();
174
- let response = false;
175
- try {
176
- const { HeadObjectCommand } = await import("@aws-sdk/client-s3");
177
- response = require_aws_server_isResponse200.isResponse200(await this.client.send(new HeadObjectCommand({
178
- Bucket: bucket,
179
- Key: key
180
- })));
181
- } catch (exception) {
182
- response = false;
210
+ response.modified = require_date_format.getYmdHisString(apiResponse.LastModified);
211
+ response.body = await require_string_getStringFromStream.getStringFromStream(apiResponse.Body);
183
212
  }
184
- return response;
185
- };
186
- this.readFile = async (bucket, key, options = {}) => {
187
- await this.ensureInit();
188
- let response = structuredClone(require_aws_s3_server_awsS3.readFileDefault);
189
- const today = require_date_calculation.getToday();
190
- require_date_calculation.getToday(true);
191
- try {
192
- response.now = today.toUnixInteger();
193
- const { GetObjectCommand } = await import("@aws-sdk/client-s3");
194
- const apiResponse = await this.client.send(new GetObjectCommand({
195
- Bucket: bucket,
196
- Key: key,
197
- ...options
198
- }));
199
- if (require_aws_server_isResponse200.isResponse200(apiResponse)) {
200
- response.modified = require_date_format.getYmdHisString(apiResponse.LastModified);
201
- response.body = await require_string_getStringFromStream.getStringFromStream(apiResponse.Body);
202
- }
203
- } catch (error) {
204
- response.body = null;
205
- response.error = error;
206
- }
207
- return response;
208
- };
209
- this.readJson = async (bucket, key) => {
210
- await this.ensureInit();
211
- const apiResponse = await this.readFile(bucket, key);
213
+ } catch (error) {
214
+ response.body = null;
215
+ response.error = error;
216
+ }
217
+ return response;
218
+ };
219
+ readJson = async (bucket, key) => {
220
+ await this.ensureInit();
221
+ const apiResponse = await this.readFile(bucket, key);
222
+ apiResponse.body = JSON.parse(apiResponse.body) || null;
223
+ return apiResponse;
224
+ };
225
+ readJsonGzip = async (bucket, key, gzipOptions = {}, awsS3Options = {}) => {
226
+ await this.ensureInit();
227
+ const apiResponse = await this.readFile(bucket, key, awsS3Options);
228
+ if (void 0 !== apiResponse.body) {
229
+ apiResponse.body = await require_util_server_getGzipDecompressed.getGzipDecompressed(apiResponse.body, gzipOptions);
212
230
  apiResponse.body = JSON.parse(apiResponse.body) || null;
213
- return apiResponse;
214
- };
215
- this.readJsonGzip = async (bucket, key, gzipOptions = {}, awsS3Options = {}) => {
216
- await this.ensureInit();
217
- const apiResponse = await this.readFile(bucket, key, awsS3Options);
218
- if (void 0 !== apiResponse.body) {
219
- apiResponse.body = await require_util_server_getGzipDecompressed.getGzipDecompressed(apiResponse.body, gzipOptions);
220
- apiResponse.body = JSON.parse(apiResponse.body) || null;
221
- }
222
- return apiResponse;
223
- };
224
- this.readGzip = async (bucket, key, gzipOptions = {}, awsS3Options = {}) => {
225
- await this.ensureInit();
226
- const apiResponse = await this.readFile(bucket, key, awsS3Options);
227
- if (void 0 !== apiResponse.body) apiResponse.body = await require_util_server_getGzipDecompressed.getGzipDecompressed(apiResponse.body, gzipOptions);
228
- return apiResponse;
229
- };
230
- this.writeBrotli = async (bucket, key, data, brotliOptions = {}, awsS3Options = {}) => {
231
- await this.ensureInit();
232
- let finalData = data;
233
- finalData = await require_util_server_getBrotliCompressed.getBrotliCompressed(finalData, brotliOptions);
234
- return await this.writeFile(bucket, key, finalData, awsS3Options);
235
- };
236
- this.writeFile = async (bucket, key, data, options = {}) => {
237
- await this.ensureInit();
238
- const { PutObjectCommand } = await import("@aws-sdk/client-s3");
239
- return await this.client.send(new PutObjectCommand({
240
- Bucket: bucket,
241
- Body: data,
242
- Key: key,
243
- ...options
244
- }));
245
- };
246
- this.writeJson = async (bucket, key, data, options = {}) => {
247
- await this.ensureInit();
248
- return await this.writeFile(bucket, key, JSON.stringify(data), options);
249
- };
250
- this.writeJsonGzip = async (bucket, key, data, gzipOptions = {}, awsS3Options = {}) => {
251
- await this.ensureInit();
252
- let finalData = JSON.stringify(data);
253
- finalData = await require_util_server_getGzipCompressed.getGzipCompressed(finalData, gzipOptions);
254
- return await this.writeFile(bucket, key, finalData, awsS3Options);
255
- };
256
- this.writeGzip = async (bucket, key, data, gzipOptions = {}, awsS3Options = {}) => {
257
- await this.ensureInit();
258
- let finalData = data;
259
- finalData = await require_util_server_getGzipCompressed.getGzipCompressed(finalData, gzipOptions);
260
- return await this.writeFile(bucket, key, finalData, awsS3Options);
261
- };
262
- this.presignedPost = async (props) => {
263
- await this.ensureInit();
264
- return new Promise(async (resolve, reject) => {
265
- let response = null;
266
- const formData = new FormData();
267
- Object.entries(props.fields).forEach(([key, value]) => {
268
- formData.append(key, value);
269
- });
270
- formData.append("file", props.file);
271
- if ((await fetch(props.url, {
272
- method: "POST",
273
- body: formData
274
- })).ok) {
275
- response = `https://${props.bucket}.s3.${this.config.region}.amazonaws.com/${props.key}`;
276
- resolve(response);
277
- } else {
278
- response = null;
279
- reject(response);
280
- }
281
- });
282
- };
283
- this.urlContents = async (bucket, key, url) => {
284
- await this.ensureInit();
285
- const { default: ky } = await import("ky");
286
- const response = await ky.get(url);
287
- const arrayBuffer = await response.arrayBuffer();
288
- const data = Buffer.from(arrayBuffer);
289
- await this.writeFile(bucket, key, data, {
290
- ContentType: response.headers.get("content-type"),
291
- ContentLength: response.headers.get("content-length")
231
+ }
232
+ return apiResponse;
233
+ };
234
+ readGzip = async (bucket, key, gzipOptions = {}, awsS3Options = {}) => {
235
+ await this.ensureInit();
236
+ const apiResponse = await this.readFile(bucket, key, awsS3Options);
237
+ if (void 0 !== apiResponse.body) apiResponse.body = await require_util_server_getGzipDecompressed.getGzipDecompressed(apiResponse.body, gzipOptions);
238
+ return apiResponse;
239
+ };
240
+ writeBrotli = async (bucket, key, data, brotliOptions = {}, awsS3Options = {}) => {
241
+ await this.ensureInit();
242
+ let finalData = data;
243
+ finalData = await require_util_server_getBrotliCompressed.getBrotliCompressed(finalData, brotliOptions);
244
+ return await this.writeFile(bucket, key, finalData, awsS3Options);
245
+ };
246
+ writeFile = async (bucket, key, data, options = {}) => {
247
+ await this.ensureInit();
248
+ const { PutObjectCommand } = await import("@aws-sdk/client-s3");
249
+ return await this.client.send(new PutObjectCommand({
250
+ Bucket: bucket,
251
+ Body: data,
252
+ Key: key,
253
+ ...options
254
+ }));
255
+ };
256
+ writeJson = async (bucket, key, data, options = {}) => {
257
+ await this.ensureInit();
258
+ return await this.writeFile(bucket, key, JSON.stringify(data), options);
259
+ };
260
+ writeJsonGzip = async (bucket, key, data, gzipOptions = {}, awsS3Options = {}) => {
261
+ await this.ensureInit();
262
+ let finalData = JSON.stringify(data);
263
+ finalData = await require_util_server_getGzipCompressed.getGzipCompressed(finalData, gzipOptions);
264
+ return await this.writeFile(bucket, key, finalData, awsS3Options);
265
+ };
266
+ writeGzip = async (bucket, key, data, gzipOptions = {}, awsS3Options = {}) => {
267
+ await this.ensureInit();
268
+ let finalData = data;
269
+ finalData = await require_util_server_getGzipCompressed.getGzipCompressed(finalData, gzipOptions);
270
+ return await this.writeFile(bucket, key, finalData, awsS3Options);
271
+ };
272
+ /**
273
+ * Get a presigned post URL so we can upload directly to S3 via frontend.
274
+ */
275
+ presignedPost = async (props) => {
276
+ await this.ensureInit();
277
+ return new Promise(async (resolve, reject) => {
278
+ let response = null;
279
+ const formData = new FormData();
280
+ Object.entries(props.fields).forEach(([key, value]) => {
281
+ formData.append(key, value);
292
282
  });
293
- };
294
- }
283
+ formData.append("file", props.file);
284
+ if ((await fetch(props.url, {
285
+ method: "POST",
286
+ body: formData
287
+ })).ok) {
288
+ response = `https://${props.bucket}.s3.${this.config.region}.amazonaws.com/${props.key}`;
289
+ resolve(response);
290
+ } else {
291
+ response = null;
292
+ reject(response);
293
+ }
294
+ });
295
+ };
296
+ /**
297
+ * Download a file and write to S3.
298
+ */
299
+ urlContents = async (bucket, key, url) => {
300
+ await this.ensureInit();
301
+ const { default: ky } = await import("ky");
302
+ const response = await ky.get(url);
303
+ const arrayBuffer = await response.arrayBuffer();
304
+ const data = Buffer.from(arrayBuffer);
305
+ await this.writeFile(bucket, key, data, {
306
+ ContentType: response.headers.get("content-type"),
307
+ ContentLength: response.headers.get("content-length")
308
+ });
309
+ };
295
310
  };
296
311
  //#endregion
297
312
  exports.AwsS3Namespace = AwsS3Namespace;