@yimingliao/cms 0.0.27 → 0.0.28
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 +40 -1
- package/dist/server/index.js +86 -3
- package/package.json +1 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -682,6 +682,45 @@ declare function createAuthUseCases({ prisma, adminQueryRepository, adminRefresh
|
|
|
682
682
|
}) => Promise<AdminSafe>;
|
|
683
683
|
};
|
|
684
684
|
|
|
685
|
+
interface CreateVerifyAccessTokenOptions {
|
|
686
|
+
adminQueryRepository: ReturnType<typeof createAdminQueryRepository>;
|
|
687
|
+
jwtService: ReturnType<typeof createJwtService>;
|
|
688
|
+
cryptoService: ReturnType<typeof createCryptoService>;
|
|
689
|
+
cookieService: ReturnType<typeof createCookieService>;
|
|
690
|
+
config: {
|
|
691
|
+
accessTokenName: string;
|
|
692
|
+
accessTokenSecret: string;
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
declare function createVerifyAccessToken({ adminQueryRepository, jwtService, cryptoService, cookieService, config, }: CreateVerifyAccessTokenOptions): () => Promise<{
|
|
696
|
+
admin: AdminFull;
|
|
697
|
+
} | null>;
|
|
698
|
+
|
|
699
|
+
interface CreateVerifyRefreshTokenOptions {
|
|
700
|
+
adminQueryRepository: ReturnType<typeof createAdminQueryRepository>;
|
|
701
|
+
adminRefreshTokenQueryRepository: ReturnType<typeof createAdminRefreshTokenQueryRepository>;
|
|
702
|
+
cryptoService: ReturnType<typeof createCryptoService>;
|
|
703
|
+
cookieService: ReturnType<typeof createCookieService>;
|
|
704
|
+
config: {
|
|
705
|
+
refreshTokenName: string;
|
|
706
|
+
};
|
|
707
|
+
}
|
|
708
|
+
declare function createVerifyRefreshToken({ adminQueryRepository, adminRefreshTokenQueryRepository, cryptoService, cookieService, config, }: CreateVerifyRefreshTokenOptions): () => Promise<{
|
|
709
|
+
adminRefreshToken: AdminRefreshToken;
|
|
710
|
+
admin: AdminFull;
|
|
711
|
+
} | null>;
|
|
712
|
+
|
|
713
|
+
interface CreateAuthMiddlewareOptions {
|
|
714
|
+
adminRefreshTokenCommandRepository: ReturnType<typeof createAdminRefreshTokenCommandRepository>;
|
|
715
|
+
authUseCases: ReturnType<typeof createAuthUseCases>;
|
|
716
|
+
verifyAccessToken: ReturnType<typeof createVerifyAccessToken>;
|
|
717
|
+
verifyRefreshToken: ReturnType<typeof createVerifyRefreshToken>;
|
|
718
|
+
headers: () => Promise<Headers>;
|
|
719
|
+
}
|
|
720
|
+
declare function createAuthMiddleware({ adminRefreshTokenCommandRepository, authUseCases, verifyAccessToken, verifyRefreshToken, headers, }: CreateAuthMiddlewareOptions): Promise<{
|
|
721
|
+
authenticate(): Promise<AdminFull>;
|
|
722
|
+
}>;
|
|
723
|
+
|
|
685
724
|
declare class ServerError extends Error {
|
|
686
725
|
readonly i18nKey?: string;
|
|
687
726
|
readonly statusCode?: number;
|
|
@@ -700,4 +739,4 @@ declare class ServerError extends Error {
|
|
|
700
739
|
static internalServerError(): ServerError;
|
|
701
740
|
}
|
|
702
741
|
|
|
703
|
-
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, type RawCacheKey, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createFileCommandRepository, createFileQueryRepository, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createPostCommandRepository, createPostQueryRepository, createSeoMetadataCommandRepository, normalizeCacheKey };
|
|
742
|
+
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, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createPostCommandRepository, createPostQueryRepository, createSeoMetadataCommandRepository, createVerifyAccessToken, createVerifyRefreshToken, normalizeCacheKey };
|
package/dist/server/index.js
CHANGED
|
@@ -1458,7 +1458,7 @@ var ServerError = class _ServerError extends Error {
|
|
|
1458
1458
|
}
|
|
1459
1459
|
};
|
|
1460
1460
|
|
|
1461
|
-
// src/server/interfaces/normalize-error.ts
|
|
1461
|
+
// src/server/interfaces/execution/normalize-error.ts
|
|
1462
1462
|
var normalizeError = (error, translator) => {
|
|
1463
1463
|
if (error instanceof ZodError) {
|
|
1464
1464
|
const errors = error.issues.map((issue) => {
|
|
@@ -1488,7 +1488,7 @@ var normalizeError = (error, translator) => {
|
|
|
1488
1488
|
};
|
|
1489
1489
|
};
|
|
1490
1490
|
|
|
1491
|
-
// src/server/interfaces/execute-action/create-execute-action.ts
|
|
1491
|
+
// src/server/interfaces/execution/execute-action/create-execute-action.ts
|
|
1492
1492
|
function createExecuteAction({
|
|
1493
1493
|
initI18n,
|
|
1494
1494
|
cacheResult,
|
|
@@ -1546,6 +1546,89 @@ function createExecuteApi({
|
|
|
1546
1546
|
};
|
|
1547
1547
|
}
|
|
1548
1548
|
|
|
1549
|
+
// src/server/interfaces/middlewares/auth/create-auth-middleware.ts
|
|
1550
|
+
async function createAuthMiddleware({
|
|
1551
|
+
adminRefreshTokenCommandRepository,
|
|
1552
|
+
authUseCases,
|
|
1553
|
+
verifyAccessToken,
|
|
1554
|
+
verifyRefreshToken,
|
|
1555
|
+
headers: headers2
|
|
1556
|
+
}) {
|
|
1557
|
+
const authMiddleware = {
|
|
1558
|
+
async authenticate() {
|
|
1559
|
+
const verifiedAccessToken = await verifyAccessToken();
|
|
1560
|
+
if (verifiedAccessToken) return verifiedAccessToken.admin;
|
|
1561
|
+
const verifiedRefreshToken = await verifyRefreshToken();
|
|
1562
|
+
if (!verifiedRefreshToken) throw ServerError.unauthorized();
|
|
1563
|
+
const { adminRefreshToken, admin } = verifiedRefreshToken;
|
|
1564
|
+
await adminRefreshTokenCommandRepository.delete({
|
|
1565
|
+
id: adminRefreshToken.id
|
|
1566
|
+
});
|
|
1567
|
+
await authUseCases.refreshTokens({
|
|
1568
|
+
admin,
|
|
1569
|
+
deviceInfo: adminRefreshToken.deviceInfo,
|
|
1570
|
+
ip: (await headers2()).get("x-forwarded-for") || "unknown"
|
|
1571
|
+
});
|
|
1572
|
+
return admin;
|
|
1573
|
+
}
|
|
1574
|
+
};
|
|
1575
|
+
return authMiddleware;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
// src/server/interfaces/middlewares/auth/create-verify-access-token.ts
|
|
1579
|
+
function createVerifyAccessToken({
|
|
1580
|
+
adminQueryRepository,
|
|
1581
|
+
jwtService,
|
|
1582
|
+
cryptoService,
|
|
1583
|
+
cookieService,
|
|
1584
|
+
config
|
|
1585
|
+
}) {
|
|
1586
|
+
return async function verifyAccessToken() {
|
|
1587
|
+
try {
|
|
1588
|
+
const token = await cookieService.getSignedCookie({
|
|
1589
|
+
name: config.accessTokenName
|
|
1590
|
+
});
|
|
1591
|
+
const payload = jwtService.verify({
|
|
1592
|
+
token,
|
|
1593
|
+
secret: cryptoService.hash(config.accessTokenSecret)
|
|
1594
|
+
});
|
|
1595
|
+
const admin = await adminQueryRepository.findFull({
|
|
1596
|
+
id: payload["id"]
|
|
1597
|
+
});
|
|
1598
|
+
return admin ? { admin } : null;
|
|
1599
|
+
} catch {
|
|
1600
|
+
return null;
|
|
1601
|
+
}
|
|
1602
|
+
};
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
// src/server/interfaces/middlewares/auth/create-verify-refresh-token.ts
|
|
1606
|
+
function createVerifyRefreshToken({
|
|
1607
|
+
adminQueryRepository,
|
|
1608
|
+
adminRefreshTokenQueryRepository,
|
|
1609
|
+
cryptoService,
|
|
1610
|
+
cookieService,
|
|
1611
|
+
config
|
|
1612
|
+
}) {
|
|
1613
|
+
return async function verifyRefreshToken() {
|
|
1614
|
+
try {
|
|
1615
|
+
const token = await cookieService.getSignedCookie({
|
|
1616
|
+
name: config.refreshTokenName
|
|
1617
|
+
});
|
|
1618
|
+
const adminRefreshToken = await adminRefreshTokenQueryRepository.findByToken({
|
|
1619
|
+
tokenHash: cryptoService.hash(token)
|
|
1620
|
+
});
|
|
1621
|
+
if (!adminRefreshToken) return null;
|
|
1622
|
+
const admin = await adminQueryRepository.findFull({
|
|
1623
|
+
id: adminRefreshToken.adminId
|
|
1624
|
+
});
|
|
1625
|
+
return admin ? { adminRefreshToken, admin } : null;
|
|
1626
|
+
} catch {
|
|
1627
|
+
return null;
|
|
1628
|
+
}
|
|
1629
|
+
};
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1549
1632
|
// src/server/applications/auth/create-auth-use-cases.ts
|
|
1550
1633
|
function createAuthUseCases({
|
|
1551
1634
|
prisma,
|
|
@@ -1670,4 +1753,4 @@ function createAuthUseCases({
|
|
|
1670
1753
|
};
|
|
1671
1754
|
}
|
|
1672
1755
|
|
|
1673
|
-
export { ADMIN_ORDER_BY, ORDER_BY, POST_ORDER_BY, ServerError, createAdminCommandRepository, createAdminQueryRepository, createAdminRefreshTokenCommandRepository, createAdminRefreshTokenQueryRepository, createArgon2Service, createAuthUseCases, createCache, createCacheResult, createCookieService, createCryptoService, createExecuteAction, createExecuteApi, createFileCommandRepository, createFileQueryRepository, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createPostCommandRepository, createPostQueryRepository, createSeoMetadataCommandRepository, normalizeCacheKey };
|
|
1756
|
+
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, createFolderCommandRepository, createFolderQueryRepository, createIpRateLimiter, createJwtService, createPostCommandRepository, createPostQueryRepository, createSeoMetadataCommandRepository, createVerifyAccessToken, createVerifyRefreshToken, normalizeCacheKey };
|