@momentumcms/server-express 0.4.0 → 0.5.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/CHANGELOG.md +8 -0
- package/index.cjs +39 -45
- package/index.js +39 -45
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## 0.5.0 (2026-02-23)
|
|
2
|
+
|
|
3
|
+
This was a version bump only for server-express to align it with other projects, there were no code changes.
|
|
4
|
+
|
|
5
|
+
## 0.4.1 (2026-02-22)
|
|
6
|
+
|
|
7
|
+
This was a version bump only for server-express to align it with other projects, there were no code changes.
|
|
8
|
+
|
|
1
9
|
## 0.4.0 (2026-02-22)
|
|
2
10
|
|
|
3
11
|
### 🚀 Features
|
package/index.cjs
CHANGED
|
@@ -37,6 +37,35 @@ var init_storage_types = __esm({
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
+
// libs/storage/src/lib/storage-utils.ts
|
|
41
|
+
function getExtensionFromMimeType(mimeType) {
|
|
42
|
+
return MIME_TO_EXT[mimeType] ?? "";
|
|
43
|
+
}
|
|
44
|
+
var MIME_TO_EXT;
|
|
45
|
+
var init_storage_utils = __esm({
|
|
46
|
+
"libs/storage/src/lib/storage-utils.ts"() {
|
|
47
|
+
"use strict";
|
|
48
|
+
MIME_TO_EXT = {
|
|
49
|
+
"image/jpeg": ".jpg",
|
|
50
|
+
"image/png": ".png",
|
|
51
|
+
"image/gif": ".gif",
|
|
52
|
+
"image/webp": ".webp",
|
|
53
|
+
"image/svg+xml": ".svg",
|
|
54
|
+
"application/pdf": ".pdf",
|
|
55
|
+
"application/json": ".json",
|
|
56
|
+
"text/plain": ".txt",
|
|
57
|
+
"text/html": ".html",
|
|
58
|
+
"text/css": ".css",
|
|
59
|
+
"application/javascript": ".js",
|
|
60
|
+
"video/mp4": ".mp4",
|
|
61
|
+
"video/webm": ".webm",
|
|
62
|
+
"audio/mpeg": ".mp3",
|
|
63
|
+
"audio/wav": ".wav",
|
|
64
|
+
"application/zip": ".zip"
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
40
69
|
// libs/storage/src/lib/storage-local.ts
|
|
41
70
|
function localStorageAdapter(options) {
|
|
42
71
|
const { directory, baseUrl } = options;
|
|
@@ -103,27 +132,6 @@ function localStorageAdapter(options) {
|
|
|
103
132
|
}
|
|
104
133
|
};
|
|
105
134
|
}
|
|
106
|
-
function getExtensionFromMimeType(mimeType) {
|
|
107
|
-
const mimeToExt = {
|
|
108
|
-
"image/jpeg": ".jpg",
|
|
109
|
-
"image/png": ".png",
|
|
110
|
-
"image/gif": ".gif",
|
|
111
|
-
"image/webp": ".webp",
|
|
112
|
-
"image/svg+xml": ".svg",
|
|
113
|
-
"application/pdf": ".pdf",
|
|
114
|
-
"application/json": ".json",
|
|
115
|
-
"text/plain": ".txt",
|
|
116
|
-
"text/html": ".html",
|
|
117
|
-
"text/css": ".css",
|
|
118
|
-
"application/javascript": ".js",
|
|
119
|
-
"video/mp4": ".mp4",
|
|
120
|
-
"video/webm": ".webm",
|
|
121
|
-
"audio/mpeg": ".mp3",
|
|
122
|
-
"audio/wav": ".wav",
|
|
123
|
-
"application/zip": ".zip"
|
|
124
|
-
};
|
|
125
|
-
return mimeToExt[mimeType] ?? "";
|
|
126
|
-
}
|
|
127
135
|
var import_node_fs, import_node_path, import_node_crypto5;
|
|
128
136
|
var init_storage_local = __esm({
|
|
129
137
|
"libs/storage/src/lib/storage-local.ts"() {
|
|
@@ -131,6 +139,7 @@ var init_storage_local = __esm({
|
|
|
131
139
|
import_node_fs = require("node:fs");
|
|
132
140
|
import_node_path = require("node:path");
|
|
133
141
|
import_node_crypto5 = require("node:crypto");
|
|
142
|
+
init_storage_utils();
|
|
134
143
|
}
|
|
135
144
|
});
|
|
136
145
|
|
|
@@ -192,7 +201,7 @@ function s3StorageAdapter(options) {
|
|
|
192
201
|
return {
|
|
193
202
|
async upload(file, uploadOptions) {
|
|
194
203
|
const s3 = await getClient();
|
|
195
|
-
const ext = (0, import_node_path2.extname)(file.originalName) ||
|
|
204
|
+
const ext = (0, import_node_path2.extname)(file.originalName) || getExtensionFromMimeType(file.mimeType);
|
|
196
205
|
const filename = uploadOptions?.filename ? `${uploadOptions.filename}${ext}` : `${(0, import_node_crypto6.randomUUID)()}${ext}`;
|
|
197
206
|
const key = uploadOptions?.directory ? `${uploadOptions.directory}/${filename}` : filename;
|
|
198
207
|
await s3.send(
|
|
@@ -281,33 +290,13 @@ function s3StorageAdapter(options) {
|
|
|
281
290
|
}
|
|
282
291
|
};
|
|
283
292
|
}
|
|
284
|
-
function getExtensionFromMimeType2(mimeType) {
|
|
285
|
-
const mimeToExt = {
|
|
286
|
-
"image/jpeg": ".jpg",
|
|
287
|
-
"image/png": ".png",
|
|
288
|
-
"image/gif": ".gif",
|
|
289
|
-
"image/webp": ".webp",
|
|
290
|
-
"image/svg+xml": ".svg",
|
|
291
|
-
"application/pdf": ".pdf",
|
|
292
|
-
"application/json": ".json",
|
|
293
|
-
"text/plain": ".txt",
|
|
294
|
-
"text/html": ".html",
|
|
295
|
-
"text/css": ".css",
|
|
296
|
-
"application/javascript": ".js",
|
|
297
|
-
"video/mp4": ".mp4",
|
|
298
|
-
"video/webm": ".webm",
|
|
299
|
-
"audio/mpeg": ".mp3",
|
|
300
|
-
"audio/wav": ".wav",
|
|
301
|
-
"application/zip": ".zip"
|
|
302
|
-
};
|
|
303
|
-
return mimeToExt[mimeType] ?? "";
|
|
304
|
-
}
|
|
305
293
|
var import_node_crypto6, import_node_path2, S3Client, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand, GetObjectCommand, getSignedUrl;
|
|
306
294
|
var init_storage_s3 = __esm({
|
|
307
295
|
"libs/storage/src/lib/storage-s3.ts"() {
|
|
308
296
|
"use strict";
|
|
309
297
|
import_node_crypto6 = require("node:crypto");
|
|
310
298
|
import_node_path2 = require("node:path");
|
|
299
|
+
init_storage_utils();
|
|
311
300
|
}
|
|
312
301
|
});
|
|
313
302
|
|
|
@@ -524,6 +513,7 @@ var init_mime_validator = __esm({
|
|
|
524
513
|
var src_exports = {};
|
|
525
514
|
__export(src_exports, {
|
|
526
515
|
detectMimeType: () => detectMimeType,
|
|
516
|
+
getExtensionFromMimeType: () => getExtensionFromMimeType,
|
|
527
517
|
isMimeTypeAllowed: () => isMimeTypeAllowed,
|
|
528
518
|
localStorageAdapter: () => localStorageAdapter,
|
|
529
519
|
mimeTypeMatches: () => mimeTypeMatches,
|
|
@@ -536,6 +526,7 @@ var init_src = __esm({
|
|
|
536
526
|
init_storage_types();
|
|
537
527
|
init_storage_local();
|
|
538
528
|
init_storage_s3();
|
|
529
|
+
init_storage_utils();
|
|
539
530
|
init_mime_validator();
|
|
540
531
|
}
|
|
541
532
|
});
|
|
@@ -6585,7 +6576,6 @@ var AUTH_ROLES = [
|
|
|
6585
6576
|
|
|
6586
6577
|
// libs/auth/src/lib/auth.ts
|
|
6587
6578
|
var import_better_auth = require("better-auth");
|
|
6588
|
-
var import_plugins = require("better-auth/plugins");
|
|
6589
6579
|
|
|
6590
6580
|
// libs/auth/src/lib/email.ts
|
|
6591
6581
|
var nodemailer = __toESM(require("nodemailer"));
|
|
@@ -6767,7 +6757,7 @@ var AuthApiKeysCollection = defineCollection({
|
|
|
6767
6757
|
});
|
|
6768
6758
|
|
|
6769
6759
|
// libs/auth/src/lib/plugins/two-factor.ts
|
|
6770
|
-
var
|
|
6760
|
+
var import_plugins = require("better-auth/plugins");
|
|
6771
6761
|
var AuthTwoFactorCollection = defineCollection({
|
|
6772
6762
|
slug: "auth-two-factor",
|
|
6773
6763
|
dbName: "twoFactor",
|
|
@@ -6792,7 +6782,11 @@ var AuthTwoFactorCollection = defineCollection({
|
|
|
6792
6782
|
}
|
|
6793
6783
|
});
|
|
6794
6784
|
|
|
6785
|
+
// libs/auth/src/lib/plugins/admin.ts
|
|
6786
|
+
var import_plugins2 = require("better-auth/plugins");
|
|
6787
|
+
|
|
6795
6788
|
// libs/auth/src/lib/plugins/organization.ts
|
|
6789
|
+
var import_plugins3 = require("better-auth/plugins");
|
|
6796
6790
|
var AuthOrganizationCollection = defineCollection({
|
|
6797
6791
|
slug: "auth-organization",
|
|
6798
6792
|
dbName: "organization",
|
package/index.js
CHANGED
|
@@ -15,6 +15,35 @@ var init_storage_types = __esm({
|
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
+
// libs/storage/src/lib/storage-utils.ts
|
|
19
|
+
function getExtensionFromMimeType(mimeType) {
|
|
20
|
+
return MIME_TO_EXT[mimeType] ?? "";
|
|
21
|
+
}
|
|
22
|
+
var MIME_TO_EXT;
|
|
23
|
+
var init_storage_utils = __esm({
|
|
24
|
+
"libs/storage/src/lib/storage-utils.ts"() {
|
|
25
|
+
"use strict";
|
|
26
|
+
MIME_TO_EXT = {
|
|
27
|
+
"image/jpeg": ".jpg",
|
|
28
|
+
"image/png": ".png",
|
|
29
|
+
"image/gif": ".gif",
|
|
30
|
+
"image/webp": ".webp",
|
|
31
|
+
"image/svg+xml": ".svg",
|
|
32
|
+
"application/pdf": ".pdf",
|
|
33
|
+
"application/json": ".json",
|
|
34
|
+
"text/plain": ".txt",
|
|
35
|
+
"text/html": ".html",
|
|
36
|
+
"text/css": ".css",
|
|
37
|
+
"application/javascript": ".js",
|
|
38
|
+
"video/mp4": ".mp4",
|
|
39
|
+
"video/webm": ".webm",
|
|
40
|
+
"audio/mpeg": ".mp3",
|
|
41
|
+
"audio/wav": ".wav",
|
|
42
|
+
"application/zip": ".zip"
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
|
|
18
47
|
// libs/storage/src/lib/storage-local.ts
|
|
19
48
|
import { existsSync, mkdirSync, writeFileSync, unlinkSync, readFileSync, lstatSync } from "node:fs";
|
|
20
49
|
import { join, extname, resolve, normalize } from "node:path";
|
|
@@ -84,30 +113,10 @@ function localStorageAdapter(options) {
|
|
|
84
113
|
}
|
|
85
114
|
};
|
|
86
115
|
}
|
|
87
|
-
function getExtensionFromMimeType(mimeType) {
|
|
88
|
-
const mimeToExt = {
|
|
89
|
-
"image/jpeg": ".jpg",
|
|
90
|
-
"image/png": ".png",
|
|
91
|
-
"image/gif": ".gif",
|
|
92
|
-
"image/webp": ".webp",
|
|
93
|
-
"image/svg+xml": ".svg",
|
|
94
|
-
"application/pdf": ".pdf",
|
|
95
|
-
"application/json": ".json",
|
|
96
|
-
"text/plain": ".txt",
|
|
97
|
-
"text/html": ".html",
|
|
98
|
-
"text/css": ".css",
|
|
99
|
-
"application/javascript": ".js",
|
|
100
|
-
"video/mp4": ".mp4",
|
|
101
|
-
"video/webm": ".webm",
|
|
102
|
-
"audio/mpeg": ".mp3",
|
|
103
|
-
"audio/wav": ".wav",
|
|
104
|
-
"application/zip": ".zip"
|
|
105
|
-
};
|
|
106
|
-
return mimeToExt[mimeType] ?? "";
|
|
107
|
-
}
|
|
108
116
|
var init_storage_local = __esm({
|
|
109
117
|
"libs/storage/src/lib/storage-local.ts"() {
|
|
110
118
|
"use strict";
|
|
119
|
+
init_storage_utils();
|
|
111
120
|
}
|
|
112
121
|
});
|
|
113
122
|
|
|
@@ -171,7 +180,7 @@ function s3StorageAdapter(options) {
|
|
|
171
180
|
return {
|
|
172
181
|
async upload(file, uploadOptions) {
|
|
173
182
|
const s3 = await getClient();
|
|
174
|
-
const ext = extname2(file.originalName) ||
|
|
183
|
+
const ext = extname2(file.originalName) || getExtensionFromMimeType(file.mimeType);
|
|
175
184
|
const filename = uploadOptions?.filename ? `${uploadOptions.filename}${ext}` : `${randomUUID3()}${ext}`;
|
|
176
185
|
const key = uploadOptions?.directory ? `${uploadOptions.directory}/${filename}` : filename;
|
|
177
186
|
await s3.send(
|
|
@@ -260,31 +269,11 @@ function s3StorageAdapter(options) {
|
|
|
260
269
|
}
|
|
261
270
|
};
|
|
262
271
|
}
|
|
263
|
-
function getExtensionFromMimeType2(mimeType) {
|
|
264
|
-
const mimeToExt = {
|
|
265
|
-
"image/jpeg": ".jpg",
|
|
266
|
-
"image/png": ".png",
|
|
267
|
-
"image/gif": ".gif",
|
|
268
|
-
"image/webp": ".webp",
|
|
269
|
-
"image/svg+xml": ".svg",
|
|
270
|
-
"application/pdf": ".pdf",
|
|
271
|
-
"application/json": ".json",
|
|
272
|
-
"text/plain": ".txt",
|
|
273
|
-
"text/html": ".html",
|
|
274
|
-
"text/css": ".css",
|
|
275
|
-
"application/javascript": ".js",
|
|
276
|
-
"video/mp4": ".mp4",
|
|
277
|
-
"video/webm": ".webm",
|
|
278
|
-
"audio/mpeg": ".mp3",
|
|
279
|
-
"audio/wav": ".wav",
|
|
280
|
-
"application/zip": ".zip"
|
|
281
|
-
};
|
|
282
|
-
return mimeToExt[mimeType] ?? "";
|
|
283
|
-
}
|
|
284
272
|
var S3Client, PutObjectCommand, DeleteObjectCommand, HeadObjectCommand, GetObjectCommand, getSignedUrl;
|
|
285
273
|
var init_storage_s3 = __esm({
|
|
286
274
|
"libs/storage/src/lib/storage-s3.ts"() {
|
|
287
275
|
"use strict";
|
|
276
|
+
init_storage_utils();
|
|
288
277
|
}
|
|
289
278
|
});
|
|
290
279
|
|
|
@@ -501,6 +490,7 @@ var init_mime_validator = __esm({
|
|
|
501
490
|
var src_exports = {};
|
|
502
491
|
__export(src_exports, {
|
|
503
492
|
detectMimeType: () => detectMimeType,
|
|
493
|
+
getExtensionFromMimeType: () => getExtensionFromMimeType,
|
|
504
494
|
isMimeTypeAllowed: () => isMimeTypeAllowed,
|
|
505
495
|
localStorageAdapter: () => localStorageAdapter,
|
|
506
496
|
mimeTypeMatches: () => mimeTypeMatches,
|
|
@@ -513,6 +503,7 @@ var init_src = __esm({
|
|
|
513
503
|
init_storage_types();
|
|
514
504
|
init_storage_local();
|
|
515
505
|
init_storage_s3();
|
|
506
|
+
init_storage_utils();
|
|
516
507
|
init_mime_validator();
|
|
517
508
|
}
|
|
518
509
|
});
|
|
@@ -6556,7 +6547,6 @@ var AUTH_ROLES = [
|
|
|
6556
6547
|
|
|
6557
6548
|
// libs/auth/src/lib/auth.ts
|
|
6558
6549
|
import { betterAuth } from "better-auth";
|
|
6559
|
-
import { twoFactor } from "better-auth/plugins";
|
|
6560
6550
|
|
|
6561
6551
|
// libs/auth/src/lib/email.ts
|
|
6562
6552
|
import * as nodemailer from "nodemailer";
|
|
@@ -6738,7 +6728,7 @@ var AuthApiKeysCollection = defineCollection({
|
|
|
6738
6728
|
});
|
|
6739
6729
|
|
|
6740
6730
|
// libs/auth/src/lib/plugins/two-factor.ts
|
|
6741
|
-
import { twoFactor
|
|
6731
|
+
import { twoFactor } from "better-auth/plugins";
|
|
6742
6732
|
var AuthTwoFactorCollection = defineCollection({
|
|
6743
6733
|
slug: "auth-two-factor",
|
|
6744
6734
|
dbName: "twoFactor",
|
|
@@ -6763,7 +6753,11 @@ var AuthTwoFactorCollection = defineCollection({
|
|
|
6763
6753
|
}
|
|
6764
6754
|
});
|
|
6765
6755
|
|
|
6756
|
+
// libs/auth/src/lib/plugins/admin.ts
|
|
6757
|
+
import { admin } from "better-auth/plugins";
|
|
6758
|
+
|
|
6766
6759
|
// libs/auth/src/lib/plugins/organization.ts
|
|
6760
|
+
import { organization } from "better-auth/plugins";
|
|
6767
6761
|
var AuthOrganizationCollection = defineCollection({
|
|
6768
6762
|
slug: "auth-organization",
|
|
6769
6763
|
dbName: "organization",
|