@yimingliao/cms 0.0.55 → 0.0.57
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/dist/server/index.d.ts +47 -2
- package/dist/server/index.js +116 -1
- package/package.json +1 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -1153,13 +1153,54 @@ declare const fileCreateValidator: (schemas: ReturnType<typeof createSchemas>) =
|
|
|
1153
1153
|
}[]>>;
|
|
1154
1154
|
}, zod_v4_core.$strip>;
|
|
1155
1155
|
|
|
1156
|
-
type FileCreateFormData = zod__default.infer<ReturnType<typeof fileCreateValidator
|
|
1156
|
+
type FileCreateFormData = Omit<zod__default.infer<ReturnType<typeof fileCreateValidator>>, "folder"> & {
|
|
1157
|
+
folder: Folder | null;
|
|
1158
|
+
};
|
|
1157
1159
|
declare function createFileCreateAction(ctx: ActionContext): ({ formData, }: {
|
|
1158
1160
|
formData: FileCreateFormData;
|
|
1159
1161
|
}) => Promise<Result<{
|
|
1160
1162
|
file: FileFull;
|
|
1161
1163
|
}>>;
|
|
1162
1164
|
|
|
1165
|
+
declare const fileUpdateValidator: (schemas: ReturnType<typeof createSchemas>) => zod.ZodObject<{
|
|
1166
|
+
key: zod.ZodOptional<zod.ZodString>;
|
|
1167
|
+
checksum: zod.ZodOptional<zod.ZodString>;
|
|
1168
|
+
fileMeta: zod.ZodObject<{
|
|
1169
|
+
type: zod.ZodString;
|
|
1170
|
+
size: zod.ZodPipe<zod.ZodTransform<number | undefined, unknown>, zod.ZodNumber>;
|
|
1171
|
+
name: zod.ZodString;
|
|
1172
|
+
}, zod_v4_core.$strip>;
|
|
1173
|
+
width: zod.ZodNullable<zod.ZodPipe<zod.ZodTransform<number | undefined, unknown>, zod.ZodNumber>>;
|
|
1174
|
+
height: zod.ZodNullable<zod.ZodPipe<zod.ZodTransform<number | undefined, unknown>, zod.ZodNumber>>;
|
|
1175
|
+
duration: zod.ZodNullable<zod.ZodPipe<zod.ZodTransform<number | undefined, unknown>, zod.ZodNumber>>;
|
|
1176
|
+
folder: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
|
|
1177
|
+
id: zod.ZodString;
|
|
1178
|
+
}, zod_v4_core.$strip>>>;
|
|
1179
|
+
translations: zod.ZodPipe<zod.ZodArray<zod.ZodObject<{
|
|
1180
|
+
locale: zod.ZodString;
|
|
1181
|
+
name: zod.ZodNullable<zod.ZodString>;
|
|
1182
|
+
alt: zod.ZodNullable<zod.ZodString>;
|
|
1183
|
+
}, zod_v4_core.$strip>>, zod.ZodTransform<{
|
|
1184
|
+
locale: string;
|
|
1185
|
+
name: string | null;
|
|
1186
|
+
alt: string | null;
|
|
1187
|
+
}[], {
|
|
1188
|
+
locale: string;
|
|
1189
|
+
name: string | null;
|
|
1190
|
+
alt: string | null;
|
|
1191
|
+
}[]>>;
|
|
1192
|
+
}, zod_v4_core.$strip>;
|
|
1193
|
+
|
|
1194
|
+
type FileUpdateFormData = Omit<zod__default.infer<ReturnType<typeof fileUpdateValidator>>, "folder"> & {
|
|
1195
|
+
folder: Folder | null;
|
|
1196
|
+
};
|
|
1197
|
+
declare function createFileUpdateAction(ctx: ActionContext): ({ id, formData, }: {
|
|
1198
|
+
id: string;
|
|
1199
|
+
formData: FileUpdateFormData;
|
|
1200
|
+
}) => Promise<Result<{
|
|
1201
|
+
file: File$1;
|
|
1202
|
+
}>>;
|
|
1203
|
+
|
|
1163
1204
|
declare const fileCreateManyValidator: (schemas: ReturnType<typeof createSchemas>) => zod.ZodObject<{
|
|
1164
1205
|
uploadResults: zod.ZodPipe<zod.ZodArray<zod.ZodObject<{
|
|
1165
1206
|
key: zod.ZodString;
|
|
@@ -1242,6 +1283,10 @@ declare function createFileRestoreManyAction(ctx: ActionContext): ({ formData, }
|
|
|
1242
1283
|
};
|
|
1243
1284
|
}) => Promise<Result<void>>;
|
|
1244
1285
|
|
|
1286
|
+
declare function createFileSoftDeleteAction(ctx: ActionContext): ({ id }: {
|
|
1287
|
+
id: string;
|
|
1288
|
+
}) => Promise<Result<void>>;
|
|
1289
|
+
|
|
1245
1290
|
declare function createFileSoftDeleteManyAction(ctx: ActionContext): ({ formData, }: {
|
|
1246
1291
|
formData: {
|
|
1247
1292
|
ids: string[];
|
|
@@ -1286,4 +1331,4 @@ declare class ServerError extends Error {
|
|
|
1286
1331
|
static internalServerError(): ServerError;
|
|
1287
1332
|
}
|
|
1288
1333
|
|
|
1289
|
-
export { ADMIN_ORDER_BY, type ActionContext, type AdminCreateFormData, type AdminUpdateFormData, type ChangePasswordFormData, type EmailUnverifiedFormData, type FileCreateFormData, type FileCreateManyFormData, type ForgotPasswordFormData, ORDER_BY, POST_ORDER_BY, type RawCacheKey, type ResetPasswordFormData, ServerError, type SignInFormData, type VerifyEmailFormData, createAdminCommandRepository, createAdminCreateAction, createAdminDeleteAction, createAdminFindFullAction, createAdminFindListCardsAction, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenDeleteAction, createAdminRefreshTokenFindManyAction, createAdminRefreshTokenQueryRepository, createAdminUpdateAction, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createChangePasswordAction, createCookieService, createCryptoService, createEmailUnverifiedAction, createEmailVerificationEmail, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileCreateAction, createFileCreateManyAction, createFileFindFullAction, createFileFindListCardsAction, createFilePurgeManyAction, createFileQueryRepository, createFileRestoreManyAction, createFileSchema, createFileSoftDeleteManyAction, createFolderCommandRepository, createFolderQueryRepository, createForgotPasswordAction, createForgotPasswordEmail, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createRenderEmailTemplate, createResetPasswordAction, createSchemas, createSendEmail, createSeoMetadataCommandRepository, createSignInAction, createSignOutAction, createTocItemSchema, createTransporter, createUnique, createVerifyAccessToken, createVerifyAction, createVerifyEmailAction, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
|
1334
|
+
export { ADMIN_ORDER_BY, type ActionContext, type AdminCreateFormData, type AdminUpdateFormData, type ChangePasswordFormData, type EmailUnverifiedFormData, type FileCreateFormData, type FileCreateManyFormData, type FileUpdateFormData, type ForgotPasswordFormData, ORDER_BY, POST_ORDER_BY, type RawCacheKey, type ResetPasswordFormData, ServerError, type SignInFormData, type VerifyEmailFormData, createAdminCommandRepository, createAdminCreateAction, createAdminDeleteAction, createAdminFindFullAction, createAdminFindListCardsAction, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenDeleteAction, createAdminRefreshTokenFindManyAction, createAdminRefreshTokenQueryRepository, createAdminUpdateAction, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createChangePasswordAction, createCookieService, createCryptoService, createEmailUnverifiedAction, createEmailVerificationEmail, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileCreateAction, createFileCreateManyAction, createFileFindFullAction, createFileFindListCardsAction, createFilePurgeManyAction, createFileQueryRepository, createFileRestoreManyAction, createFileSchema, createFileSoftDeleteAction, createFileSoftDeleteManyAction, createFileUpdateAction, createFolderCommandRepository, createFolderQueryRepository, createForgotPasswordAction, createForgotPasswordEmail, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createRenderEmailTemplate, createResetPasswordAction, createSchemas, createSendEmail, createSeoMetadataCommandRepository, createSignInAction, createSignOutAction, createTocItemSchema, createTransporter, createUnique, createVerifyAccessToken, createVerifyAction, createVerifyEmailAction, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
package/dist/server/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { readFile } from 'fs/promises';
|
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import { ulid } from 'ulid';
|
|
14
14
|
import { NextResponse } from 'next/server';
|
|
15
|
+
import path2 from 'path/posix';
|
|
15
16
|
|
|
16
17
|
function createJwtService({
|
|
17
18
|
defaultSecret,
|
|
@@ -2772,6 +2773,94 @@ function createFileCreateAction(ctx) {
|
|
|
2772
2773
|
};
|
|
2773
2774
|
}
|
|
2774
2775
|
|
|
2776
|
+
// src/server/interfaces/actions/resources/file/commands/update/file-update-validator.ts
|
|
2777
|
+
var fileUpdateValidator = (schemas) => schemas.z.object({
|
|
2778
|
+
// core
|
|
2779
|
+
key: schemas.key().optional(),
|
|
2780
|
+
checksum: schemas.sha256Hash().optional(),
|
|
2781
|
+
// file meta
|
|
2782
|
+
fileMeta: schemas.z.object({
|
|
2783
|
+
type: schemas.text(),
|
|
2784
|
+
size: schemas.positiveNumber(),
|
|
2785
|
+
name: schemas.text()
|
|
2786
|
+
}),
|
|
2787
|
+
// media info
|
|
2788
|
+
width: schemas.positiveNumber().nullable(),
|
|
2789
|
+
height: schemas.positiveNumber().nullable(),
|
|
2790
|
+
duration: schemas.positiveNumber().nullable(),
|
|
2791
|
+
// ----------------------------------------------------------------------------
|
|
2792
|
+
// relations
|
|
2793
|
+
// ----------------------------------------------------------------------------
|
|
2794
|
+
folder: schemas.z.object({
|
|
2795
|
+
id: schemas.id().exist({ table: "folders", column: "id" })
|
|
2796
|
+
}).nullable().optional(),
|
|
2797
|
+
// ----------------------------------------------------------------------------
|
|
2798
|
+
// translation
|
|
2799
|
+
// ----------------------------------------------------------------------------
|
|
2800
|
+
translations: schemas.array(
|
|
2801
|
+
schemas.z.object({
|
|
2802
|
+
// core
|
|
2803
|
+
locale: schemas.locale(),
|
|
2804
|
+
// text
|
|
2805
|
+
name: schemas.text().nullable(),
|
|
2806
|
+
alt: schemas.text().nullable()
|
|
2807
|
+
})
|
|
2808
|
+
)
|
|
2809
|
+
});
|
|
2810
|
+
function createFileUpdateAction(ctx) {
|
|
2811
|
+
const {
|
|
2812
|
+
services: { storageService },
|
|
2813
|
+
repositories: { fileQueryRepository, fileCommandRepository },
|
|
2814
|
+
middlewares: { authMiddleware },
|
|
2815
|
+
action: { executeAction },
|
|
2816
|
+
schemas
|
|
2817
|
+
} = ctx;
|
|
2818
|
+
return async function fileUpdateAction({
|
|
2819
|
+
id,
|
|
2820
|
+
formData
|
|
2821
|
+
}) {
|
|
2822
|
+
return executeAction(
|
|
2823
|
+
async () => {
|
|
2824
|
+
await authMiddleware.authenticate();
|
|
2825
|
+
const { checksum, width, height, duration, translations } = await fileUpdateValidator(schemas).parseAsync(formData);
|
|
2826
|
+
const { folder, fileMeta, key: uploadedKey } = formData;
|
|
2827
|
+
const foundFile = await fileQueryRepository.findFull({ id });
|
|
2828
|
+
if (!foundFile) throw ServerError.notFound();
|
|
2829
|
+
const oldKey = foundFile.key;
|
|
2830
|
+
let newKey = oldKey;
|
|
2831
|
+
const folderChanged = folder?.key !== foundFile.folder?.key;
|
|
2832
|
+
if (uploadedKey) {
|
|
2833
|
+
newKey = uploadedKey;
|
|
2834
|
+
} else if (folderChanged) {
|
|
2835
|
+
const folderKey = folder?.key ?? "";
|
|
2836
|
+
newKey = path2.join(folderKey, path2.basename(oldKey));
|
|
2837
|
+
await storageService.move({ fromKey: oldKey, toKey: newKey });
|
|
2838
|
+
}
|
|
2839
|
+
const updatedFile = await fileCommandRepository.update({
|
|
2840
|
+
file: foundFile,
|
|
2841
|
+
id,
|
|
2842
|
+
key: newKey,
|
|
2843
|
+
checksum: checksum ?? foundFile.checksum,
|
|
2844
|
+
fileMeta,
|
|
2845
|
+
width,
|
|
2846
|
+
height,
|
|
2847
|
+
duration,
|
|
2848
|
+
folder,
|
|
2849
|
+
translations
|
|
2850
|
+
});
|
|
2851
|
+
if (uploadedKey) {
|
|
2852
|
+
await storageService.remove({ key: oldKey });
|
|
2853
|
+
}
|
|
2854
|
+
return {
|
|
2855
|
+
i18nKey: "ok.update-ok",
|
|
2856
|
+
data: { file: updatedFile }
|
|
2857
|
+
};
|
|
2858
|
+
},
|
|
2859
|
+
{ type: "command" }
|
|
2860
|
+
);
|
|
2861
|
+
};
|
|
2862
|
+
}
|
|
2863
|
+
|
|
2775
2864
|
// src/server/interfaces/actions/resources/file/commands/create-many/file-create-many-validator.ts
|
|
2776
2865
|
var fileCreateManyValidator = (schemas) => schemas.z.object({
|
|
2777
2866
|
uploadResults: schemas.array(
|
|
@@ -3065,6 +3154,32 @@ function createFileRestoreManyAction(ctx) {
|
|
|
3065
3154
|
};
|
|
3066
3155
|
}
|
|
3067
3156
|
|
|
3157
|
+
// src/server/interfaces/actions/resources/file/commands/soft-delete/create-file-soft-delete-action.ts
|
|
3158
|
+
function createFileSoftDeleteAction(ctx) {
|
|
3159
|
+
const {
|
|
3160
|
+
repositories: { fileQueryRepository, fileCommandRepository },
|
|
3161
|
+
middlewares: { authMiddleware },
|
|
3162
|
+
action: { executeAction }
|
|
3163
|
+
} = ctx;
|
|
3164
|
+
return async function fileSoftDeleteAction({ id }) {
|
|
3165
|
+
return executeAction(
|
|
3166
|
+
async () => {
|
|
3167
|
+
await authMiddleware.authenticate();
|
|
3168
|
+
const foundFile = await fileQueryRepository.findFull({ id });
|
|
3169
|
+
if (!foundFile) throw ServerError.notFound();
|
|
3170
|
+
if (isFileLocked(foundFile)) {
|
|
3171
|
+
throw new ServerError({ i18nKey: "error.files-destroy-is-locked" });
|
|
3172
|
+
}
|
|
3173
|
+
await fileCommandRepository.softDelete({ id });
|
|
3174
|
+
return {
|
|
3175
|
+
i18nKey: "ok.destroy-ok"
|
|
3176
|
+
};
|
|
3177
|
+
},
|
|
3178
|
+
{ type: "command" }
|
|
3179
|
+
);
|
|
3180
|
+
};
|
|
3181
|
+
}
|
|
3182
|
+
|
|
3068
3183
|
// src/server/interfaces/actions/resources/file/commands/soft-delete-many/file-soft-delete-many-validator.ts
|
|
3069
3184
|
var fileSoftDeleteManyValidator = (schemas) => schemas.z.object({
|
|
3070
3185
|
ids: schemas.array(schemas.id().exist({ table: "files", column: "id" }))
|
|
@@ -3344,4 +3459,4 @@ function createForgotPasswordEmail({
|
|
|
3344
3459
|
};
|
|
3345
3460
|
}
|
|
3346
3461
|
|
|
3347
|
-
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, ServerError, createAdminCommandRepository, createAdminCreateAction, createAdminDeleteAction, createAdminFindFullAction, createAdminFindListCardsAction, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenDeleteAction, createAdminRefreshTokenFindManyAction, createAdminRefreshTokenQueryRepository, createAdminUpdateAction, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createChangePasswordAction, createCookieService, createCryptoService, createEmailUnverifiedAction, createEmailVerificationEmail, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileCreateAction, createFileCreateManyAction, createFileFindFullAction, createFileFindListCardsAction, createFilePurgeManyAction, createFileQueryRepository, createFileRestoreManyAction, createFileSchema, createFileSoftDeleteManyAction, createFolderCommandRepository, createFolderQueryRepository, createForgotPasswordAction, createForgotPasswordEmail, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createRenderEmailTemplate, createResetPasswordAction, createSchemas, createSendEmail, createSeoMetadataCommandRepository, createSignInAction, createSignOutAction, createTocItemSchema, createTransporter, createUnique, createVerifyAccessToken, createVerifyAction, createVerifyEmailAction, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
|
3462
|
+
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, ServerError, createAdminCommandRepository, createAdminCreateAction, createAdminDeleteAction, createAdminFindFullAction, createAdminFindListCardsAction, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenDeleteAction, createAdminRefreshTokenFindManyAction, createAdminRefreshTokenQueryRepository, createAdminUpdateAction, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createChangePasswordAction, createCookieService, createCryptoService, createEmailUnverifiedAction, createEmailVerificationEmail, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileCreateAction, createFileCreateManyAction, createFileFindFullAction, createFileFindListCardsAction, createFilePurgeManyAction, createFileQueryRepository, createFileRestoreManyAction, createFileSchema, createFileSoftDeleteAction, createFileSoftDeleteManyAction, createFileUpdateAction, createFolderCommandRepository, createFolderQueryRepository, createForgotPasswordAction, createForgotPasswordEmail, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createRenderEmailTemplate, createResetPasswordAction, createSchemas, createSendEmail, createSeoMetadataCommandRepository, createSignInAction, createSignOutAction, createTocItemSchema, createTransporter, createUnique, createVerifyAccessToken, createVerifyAction, createVerifyEmailAction, createVerifyRefreshToken, createZod, normalizeCacheKey };
|