@yimingliao/cms 0.0.30 → 0.0.32
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 +2 -2
- package/dist/server/index.js +61 -2
- package/package.json +1 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -170,7 +170,7 @@ declare function createSchemas({ z, localeArray, exist, }: {
|
|
|
170
170
|
declare function createFileSchema({ z, maxSizeInMb, }: {
|
|
171
171
|
z: ReturnType<typeof createZod>;
|
|
172
172
|
maxSizeInMb: number;
|
|
173
|
-
}): ({ size, extensions, }
|
|
173
|
+
}): ({ size, extensions, }?: {
|
|
174
174
|
size?: number;
|
|
175
175
|
extensions?: string[];
|
|
176
176
|
}) => zod.ZodPipe<zod.ZodCustom<File, File>, zod.ZodTransform<BlobFile, File>>;
|
|
@@ -829,4 +829,4 @@ declare class ServerError extends Error {
|
|
|
829
829
|
static internalServerError(): ServerError;
|
|
830
830
|
}
|
|
831
831
|
|
|
832
|
-
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, type RawCacheKey, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createFileCommandRepository, createFileQueryRepository, createFileSchema, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createSchemas, createSeoMetadataCommandRepository, createTocItemSchema, createVerifyAccessToken, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
|
832
|
+
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, type RawCacheKey, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileQueryRepository, createFileSchema, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createSchemas, createSeoMetadataCommandRepository, createTocItemSchema, createUnique, createVerifyAccessToken, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
package/dist/server/index.js
CHANGED
|
@@ -310,6 +310,65 @@ function createIpRateLimiter(cache, appName) {
|
|
|
310
310
|
};
|
|
311
311
|
}
|
|
312
312
|
|
|
313
|
+
// src/server/infrastructure/zod/rules/unique.ts
|
|
314
|
+
function createUnique(prisma) {
|
|
315
|
+
return async function unique(value, options) {
|
|
316
|
+
if (!value) return true;
|
|
317
|
+
let query = `
|
|
318
|
+
SELECT COUNT(*) AS count
|
|
319
|
+
FROM ${options.table}
|
|
320
|
+
WHERE ${options.column} = $1
|
|
321
|
+
`;
|
|
322
|
+
const params = [value];
|
|
323
|
+
const appendCondition = (op, sc) => {
|
|
324
|
+
const paramIndex = params.length + 1;
|
|
325
|
+
const cast = sc.cast ? `::"${sc.cast}"` : "";
|
|
326
|
+
query += ` AND ${sc.name} ${op} $${paramIndex}${cast}`;
|
|
327
|
+
params.push(sc.value);
|
|
328
|
+
};
|
|
329
|
+
if (options.scope) {
|
|
330
|
+
options.scope.forEach((sc) => appendCondition("=", sc));
|
|
331
|
+
}
|
|
332
|
+
if (options.excludeSelf) {
|
|
333
|
+
appendCondition("!=", options.excludeSelf);
|
|
334
|
+
}
|
|
335
|
+
try {
|
|
336
|
+
const result2 = await prisma.$queryRawUnsafe(
|
|
337
|
+
query,
|
|
338
|
+
...params
|
|
339
|
+
);
|
|
340
|
+
return Number(result2[0]?.count || 0) === 0;
|
|
341
|
+
} catch (error) {
|
|
342
|
+
console.error("Unique check failed:", error);
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// src/server/infrastructure/zod/rules/exist.ts
|
|
349
|
+
function createExist(prisma) {
|
|
350
|
+
return async function exist(value, options) {
|
|
351
|
+
if (!value) return false;
|
|
352
|
+
const column = options.column || "id";
|
|
353
|
+
const query = `
|
|
354
|
+
SELECT COUNT(*) AS count
|
|
355
|
+
FROM ${options.table}
|
|
356
|
+
WHERE ${column} = $1
|
|
357
|
+
`;
|
|
358
|
+
try {
|
|
359
|
+
const result2 = await prisma.$queryRawUnsafe(
|
|
360
|
+
query,
|
|
361
|
+
value
|
|
362
|
+
);
|
|
363
|
+
const count = Number(result2[0]?.count || 0);
|
|
364
|
+
return count > 0;
|
|
365
|
+
} catch (error) {
|
|
366
|
+
console.error("Exist check failed:", error);
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
|
|
313
372
|
// src/server/infrastructure/zod/rules/bcp47.ts
|
|
314
373
|
function bcp47(locale) {
|
|
315
374
|
if (typeof locale !== "string") return false;
|
|
@@ -496,7 +555,7 @@ function createFileSchema({
|
|
|
496
555
|
return function fileSchema({
|
|
497
556
|
size = maxSizeInMb * SIZE.MB,
|
|
498
557
|
extensions = []
|
|
499
|
-
}) {
|
|
558
|
+
} = {}) {
|
|
500
559
|
return z2.instanceof(File, { error: "Invalid file" }).refine((file) => file.size <= size, {
|
|
501
560
|
error: `File is too large, max ${size / SIZE.MB}MB`
|
|
502
561
|
}).refine(
|
|
@@ -1985,4 +2044,4 @@ function createAuthUseCases({
|
|
|
1985
2044
|
};
|
|
1986
2045
|
}
|
|
1987
2046
|
|
|
1988
|
-
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createFileCommandRepository, createFileQueryRepository, createFileSchema, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createSchemas, createSeoMetadataCommandRepository, createTocItemSchema, createVerifyAccessToken, createVerifyRefreshToken, createZod, normalizeCacheKey };
|
|
2047
|
+
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthMiddleware, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createExist, createFileCommandRepository, createFileQueryRepository, createFileSchema, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createMultiFileSchema, createPostCommandRepository, createPostQueryRepository, createSchemas, createSeoMetadataCommandRepository, createTocItemSchema, createUnique, createVerifyAccessToken, createVerifyRefreshToken, createZod, normalizeCacheKey };
|