fix: Use local file for oidc-provider typings

Due to v8 of oidc-provider being ESM,
we can't use the typings directly because of a TS bug:
https://github.com/microsoft/TypeScript/issues/49721.
This works around that.
This commit is contained in:
Joachim Van Herwegen
2023-06-16 10:36:55 +02:00
parent 7024ee9a58
commit b3ef4ed017
22 changed files with 2235 additions and 27 deletions

View File

@@ -1,4 +1,3 @@
import type { Provider } from 'oidc-provider';
import type { Operation } from '../../../src/http/Operation';
import { BasicRepresentation } from '../../../src/http/representation/BasicRepresentation';
import type { Representation } from '../../../src/http/representation/Representation';
@@ -16,6 +15,7 @@ import type {
} from '../../../src/storage/conversion/RepresentationConverter';
import { APPLICATION_JSON, APPLICATION_X_WWW_FORM_URLENCODED } from '../../../src/util/ContentTypes';
import { CONTENT_TYPE } from '../../../src/util/Vocabularies';
import type Provider from '../../../templates/types/oidc-provider';
describe('An IdentityProviderHttpHandler', (): void => {
const request: HttpRequest = {} as any;

View File

@@ -1,8 +1,8 @@
import type { Provider } from 'oidc-provider';
import type { ProviderFactory } from '../../../src/identity/configuration/ProviderFactory';
import { OidcHttpHandler } from '../../../src/identity/OidcHttpHandler';
import type { HttpRequest } from '../../../src/server/HttpRequest';
import type { HttpResponse } from '../../../src/server/HttpResponse';
import type Provider from '../../../templates/types/oidc-provider';
describe('An OidcHttpHandler', (): void => {
const request: HttpRequest = {

View File

@@ -1,9 +1,9 @@
import { generateKeyPair, importJWK, jwtVerify, SignJWT } from 'jose';
import * as jose from 'jose';
import type { JWKS } from 'oidc-provider';
import { CachedJwkGenerator } from '../../../../src/identity/configuration/CachedJwkGenerator';
import type { AlgJwk } from '../../../../src/identity/configuration/JwkGenerator';
import type { KeyValueStorage } from '../../../../src/storage/keyvalue/KeyValueStorage';
import type { JWKS } from '../../../../templates/types/oidc-provider';
describe('A CachedJwkGenerator', (): void => {
const alg = 'ES256';

View File

@@ -1,7 +1,6 @@
import { Readable } from 'stream';
import { exportJWK, generateKeyPair } from 'jose';
import type * as Koa from 'koa';
import type { errors, Configuration, KoaContextWithOIDC } from 'oidc-provider';
import type { ErrorHandler } from '../../../../src/http/output/error/ErrorHandler';
import type { ResponseWriter } from '../../../../src/http/output/ResponseWriter';
import { BasicRepresentation } from '../../../../src/http/representation/BasicRepresentation';
@@ -16,12 +15,11 @@ import type { KeyValueStorage } from '../../../../src/storage/keyvalue/KeyValueS
import { FoundHttpError } from '../../../../src/util/errors/FoundHttpError';
import { extractErrorTerms } from '../../../../src/util/errors/HttpErrorUtil';
import { OAuthHttpError } from '../../../../src/util/errors/OAuthHttpError';
import type { errors, Configuration, KoaContextWithOIDC } from '../../../../templates/types/oidc-provider';
/* eslint-disable @typescript-eslint/naming-convention */
jest.mock('oidc-provider', (): any => ({
Provider: jest.fn().mockImplementation((issuer: string, config: Configuration): any =>
({ issuer, config, use: jest.fn() })),
}));
jest.mock('oidc-provider', (): any =>
jest.fn().mockImplementation((issuer: string, config: Configuration): any => ({ issuer, config, use: jest.fn() })));
const routes = {
authorization: '/foo/oidc/auth',

View File

@@ -1,10 +1,10 @@
import type { Provider } from 'oidc-provider';
import type { ProviderFactory } from '../../../../src/identity/configuration/ProviderFactory';
import { ConsentHandler } from '../../../../src/identity/interaction/ConsentHandler';
import type { Interaction } from '../../../../src/identity/interaction/InteractionHandler';
import { FoundHttpError } from '../../../../src/util/errors/FoundHttpError';
import { NotImplementedHttpError } from '../../../../src/util/errors/NotImplementedHttpError';
import { readJsonStream } from '../../../../src/util/StreamUtil';
import type Provider from '../../../../templates/types/oidc-provider';
import { createPostJsonOperation } from './email-password/handler/Util';
const newGrantId = 'newGrantId';

View File

@@ -1,4 +1,3 @@
import type { Adapter } from 'oidc-provider';
import {
ClientCredentialsAdapter,
ClientCredentialsAdapterFactory,
@@ -8,6 +7,7 @@ import type {
} from '../../../../../../src/identity/interaction/email-password/credentials/ClientCredentialsAdapterFactory';
import type { AdapterFactory } from '../../../../../../src/identity/storage/AdapterFactory';
import type { KeyValueStorage } from '../../../../../../src/storage/keyvalue/KeyValueStorage';
import type { Adapter } from '../../../../../../templates/types/oidc-provider';
describe('A ClientCredentialsAdapterFactory', (): void => {
let storage: jest.Mocked<KeyValueStorage<string, ClientCredentials>>;

View File

@@ -1,7 +1,7 @@
import type { AdapterPayload } from 'oidc-provider';
import type { ExpiringAdapter } from '../../../../src/identity/storage/ExpiringAdapterFactory';
import { ExpiringAdapterFactory } from '../../../../src/identity/storage/ExpiringAdapterFactory';
import type { ExpiringStorage } from '../../../../src/storage/keyvalue/ExpiringStorage';
import type { AdapterPayload } from '../../../../templates/types/oidc-provider';
// Use fixed dates
jest.useFakeTimers();

View File

@@ -1,9 +1,9 @@
import type { Adapter } from 'oidc-provider';
import type { AdapterFactory } from '../../../../src/identity/storage/AdapterFactory';
import {
PassthroughAdapter,
PassthroughAdapterFactory,
} from '../../../../src/identity/storage/PassthroughAdapterFactory';
import type { Adapter } from '../../../../templates/types/oidc-provider';
describe('A PassthroughAdapterFactory', (): void => {
let sourceFactory: jest.Mocked<AdapterFactory>;

View File

@@ -1,8 +1,8 @@
import fetch from 'cross-fetch';
import type { Adapter } from 'oidc-provider';
import type { AdapterFactory } from '../../../../src/identity/storage/AdapterFactory';
import { WebIdAdapterFactory } from '../../../../src/identity/storage/WebIdAdapterFactory';
import { RdfToQuadConverter } from '../../../../src/storage/conversion/RdfToQuadConverter';
import type { Adapter } from '../../../../templates/types/oidc-provider';
jest.mock('cross-fetch');