|
|
@@ -1,23 +1,18 @@
|
|
|
-import type { Scope } from '@growi/core/dist/interfaces';
|
|
|
-import type { NextFunction, Response } from 'express';
|
|
|
+import type {
|
|
|
+ AccessTokenParser,
|
|
|
+ AccessTokenParserReq,
|
|
|
+} from '@growi/core/dist/interfaces/server';
|
|
|
|
|
|
import loggerFactory from '~/utils/logger';
|
|
|
|
|
|
import { parserForAccessToken } from './access-token';
|
|
|
import { parserForApiToken } from './api-token';
|
|
|
-import type { AccessTokenParserReq } from './interfaces';
|
|
|
|
|
|
const logger = loggerFactory('growi:middleware:access-token-parser');
|
|
|
|
|
|
-export type AccessTokenParser = (
|
|
|
- scopes?: Scope[],
|
|
|
- opts?: { acceptLegacy: boolean },
|
|
|
-) => (
|
|
|
- req: AccessTokenParserReq,
|
|
|
- res: Response,
|
|
|
- next: NextFunction,
|
|
|
-) => Promise<void>;
|
|
|
+export type { AccessTokenParser, AccessTokenParserReq };
|
|
|
|
|
|
+// @ts-expect-error - Scope type causes "Type instantiation is excessively deep" with tsgo
|
|
|
export const accessTokenParser: AccessTokenParser = (scopes, opts) => {
|
|
|
return async (req, res, next): Promise<void> => {
|
|
|
if (scopes == null || scopes.length === 0) {
|