@yimingliao/cms 0.0.56 → 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 +43 -2
- package/dist/server/index.js +90 -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;
|
|
@@ -1290,4 +1331,4 @@ declare class ServerError extends Error {
|
|
|
1290
1331
|
static internalServerError(): ServerError;
|
|
1291
1332
|
}
|
|
1292
1333
|
|
|
1293
|
-
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, createFileSoftDeleteAction, 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(
|
|
@@ -3370,4 +3459,4 @@ function createForgotPasswordEmail({
|
|
|
3370
3459
|
};
|
|
3371
3460
|
}
|
|
3372
3461
|
|
|
3373
|
-
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, 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 };
|