oidc-client-rx
Version:
ReactiveX enhanced OIDC and OAuth2 protocol support for browser-based JavaScript applications
157 lines (156 loc) • 8.03 kB
JavaScript
import { DataService } from "./api/data.service.js";
import { HttpBaseService } from "./api/http-base.service.js";
import { PASSED_CONFIG, createStaticLoader } from "./auth-config.js";
import { AuthStateService } from "./auth-state/auth-state.service.js";
import { CheckAuthService } from "./auth-state/check-auth.service.js";
import { AutoLoginService } from "./auto-login/auto-login.service.js";
import { CallbackService } from "./callback/callback.service.js";
import { CodeFlowCallbackService } from "./callback/code-flow-callback.service.js";
import { ImplicitFlowCallbackService } from "./callback/implicit-flow-callback.service.js";
import { IntervalService } from "./callback/interval.service.js";
import { PeriodicallyTokenCheckService } from "./callback/periodically-token-check.service.js";
import { RefreshSessionService } from "./callback/refresh-session.service.js";
import { RefreshSessionRefreshTokenService } from "./callback/refresh-session-refresh-token.service.js";
import { AuthWellKnownService } from "./config/auth-well-known/auth-well-known.service.js";
import { AuthWellKnownDataService } from "./config/auth-well-known/auth-well-known-data.service.js";
import { ConfigurationService } from "./config/config.service.js";
import { StsConfigLoader } from "./config/loader/config-loader.js";
import { ConfigValidationService } from "./config/validation/config-validation.service.js";
import { JwkExtractor } from "./extractors/jwk.extractor.js";
import { CodeFlowCallbackHandlerService } from "./flows/callback-handling/code-flow-callback-handler.service.js";
import { HistoryJwtKeysCallbackHandlerService } from "./flows/callback-handling/history-jwt-keys-callback-handler.service.js";
import { ImplicitFlowCallbackHandlerService } from "./flows/callback-handling/implicit-flow-callback-handler.service.js";
import { RefreshSessionCallbackHandlerService } from "./flows/callback-handling/refresh-session-callback-handler.service.js";
import { RefreshTokenCallbackHandlerService } from "./flows/callback-handling/refresh-token-callback-handler.service.js";
import { StateValidationCallbackHandlerService } from "./flows/callback-handling/state-validation-callback-handler.service.js";
import { UserCallbackHandlerService } from "./flows/callback-handling/user-callback-handler.service.js";
import { FlowsService } from "./flows/flows.service.js";
import { FlowsDataService } from "./flows/flows-data.service.js";
import { RandomService } from "./flows/random/random.service.js";
import { ResetAuthDataService } from "./flows/reset-auth-data.service.js";
import { SigninKeyDataService } from "./flows/signin-key-data.service.js";
import { CheckSessionService } from "./iframe/check-session.service.js";
import { IFrameService } from "./iframe/existing-iframe.service.js";
import { RefreshSessionIframeService } from "./iframe/refresh-session-iframe.service.js";
import { SilentRenewService } from "./iframe/silent-renew.service.js";
import { ClosestMatchingRouteService } from "./interceptor/closest-matching-route.service.js";
import { AbstractLoggerService } from "./logging/abstract-logger.service.js";
import { ConsoleLoggerService } from "./logging/console-logger.service.js";
import { LoggerService } from "./logging/logger.service.js";
import { LoginService } from "./login/login.service.js";
import { ParService } from "./login/par/par.service.js";
import { ParLoginService } from "./login/par/par-login.service.js";
import { PopUpService } from "./login/popup/popup.service.js";
import { PopUpLoginService } from "./login/popup/popup-login.service.js";
import { ResponseTypeValidationService } from "./login/response-type-validation/response-type-validation.service.js";
import { StandardLoginService } from "./login/standard/standard-login.service.js";
import { LogoffRevocationService } from "./logoff-revoke/logoff-revocation.service.js";
import { OidcSecurityService } from "./oidc.security.service.js";
import { PublicEventsService } from "./public-events/public-events.service.js";
import { AbstractSecurityStorage } from "./storage/abstract-security-storage.js";
import { BrowserStorageService } from "./storage/browser-storage.service.js";
import { DefaultSessionStorageService } from "./storage/default-sessionstorage.service.js";
import { StoragePersistenceService } from "./storage/storage-persistence.service.js";
import { UserService } from "./user-data/user.service.js";
import { CryptoService } from "./utils/crypto/crypto.service.js";
import { EqualityService } from "./utils/equality/equality.service.js";
import { FlowHelper } from "./utils/flowHelper/flow-helper.service.js";
import { PlatformProvider } from "./utils/platform-provider/platform.provider.js";
import { RedirectService } from "./utils/redirect/redirect.service.js";
import { TokenHelperService } from "./utils/tokenHelper/token-helper.service.js";
import { CurrentUrlService } from "./utils/url/current-url.service.js";
import { UrlService } from "./utils/url/url.service.js";
import { JwkWindowCryptoService } from "./validation/jwk-window-crypto.service.js";
import { JwtWindowCryptoService } from "./validation/jwt-window-crypto.service.js";
import { StateValidationService } from "./validation/state-validation.service.js";
import { TokenValidationService } from "./validation/token-validation.service.js";
function provideAuth(passedConfig, ...features) {
const providers = _provideAuth(passedConfig);
const normailizedFeatures = features.flat(Number.MAX_SAFE_INTEGER).filter(Boolean);
for (const feature of normailizedFeatures)providers.push(...feature.ɵproviders);
return providers;
}
function _provideAuth(passedConfig) {
return [
{
provide: PASSED_CONFIG,
useValue: passedConfig
},
passedConfig?.loader || {
provide: StsConfigLoader,
useFactory: createStaticLoader,
deps: [
PASSED_CONFIG
]
},
{
provide: AbstractSecurityStorage,
useClass: DefaultSessionStorageService
},
{
provide: AbstractLoggerService,
useClass: ConsoleLoggerService
},
StandardLoginService,
JwkWindowCryptoService,
ParLoginService,
AuthStateService,
RefreshTokenCallbackHandlerService,
JwkExtractor,
TokenHelperService,
RefreshSessionIframeService,
ImplicitFlowCallbackHandlerService,
CallbackService,
EqualityService,
FlowsDataService,
PopUpService,
FlowsService,
StoragePersistenceService,
ClosestMatchingRouteService,
CryptoService,
AutoLoginService,
RedirectService,
LoginService,
CurrentUrlService,
UserCallbackHandlerService,
IFrameService,
BrowserStorageService,
ParService,
LoggerService,
RandomService,
PopUpLoginService,
AuthWellKnownService,
RefreshSessionRefreshTokenService,
CodeFlowCallbackService,
StateValidationService,
FlowHelper,
ImplicitFlowCallbackService,
PublicEventsService,
CodeFlowCallbackHandlerService,
UrlService,
ConfigValidationService,
RefreshSessionService,
HttpBaseService,
AuthWellKnownDataService,
CheckAuthService,
SilentRenewService,
StateValidationCallbackHandlerService,
JwtWindowCryptoService,
ResetAuthDataService,
IntervalService,
LogoffRevocationService,
HistoryJwtKeysCallbackHandlerService,
PlatformProvider,
RefreshSessionCallbackHandlerService,
CheckSessionService,
ConfigurationService,
ResponseTypeValidationService,
DataService,
UserService,
PeriodicallyTokenCheckService,
SigninKeyDataService,
TokenValidationService,
OidcSecurityService
];
}
export { _provideAuth, provideAuth };