@yimingliao/cms 0.0.30 → 0.0.31
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 +1 -1
- package/dist/server/index.js +60 -1
- package/package.json +1 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -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;
|
|
@@ -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 };
|