@@ -9,6 +9,10 @@ import * as logs from "aws-cdk-lib/aws-logs"
99import * as cr from "aws-cdk-lib/custom-resources"
1010import { Construct } from "constructs"
1111import type { CognitoDetails , VyEnvironment } from "./shared/types"
12+ import type {
13+ IVyCognitoProvider ,
14+ VyCognitoProviderAttributes ,
15+ } from "./vy-cognito-provider-base"
1216
1317const require = createRequire ( import . meta. url )
1418const __filename = fileURLToPath ( import . meta. url )
@@ -43,13 +47,38 @@ export interface ResourceServerProvider {
4347 serviceToken : string
4448}
4549
46- export class VyCognitoProvider extends Construct {
50+ export class VyCognitoProvider extends Construct implements IVyCognitoProvider {
4751 public readonly environment : VyEnvironment
4852 public readonly cognitoBaseDomain : string
4953 public readonly details : CognitoDetails
5054 public readonly appClientProvider : AppClientProvider
5155 public readonly resourceServerProvider : ResourceServerProvider
5256
57+ public static fromVyCognitoProviderAttributes (
58+ scope : Construct ,
59+ id : string ,
60+ attrs : VyCognitoProviderAttributes ,
61+ ) : IVyCognitoProvider {
62+ class Import extends Construct implements IVyCognitoProvider {
63+ public readonly environment = attrs . environment
64+ public readonly cognitoBaseDomain = attrs . cognitoBaseDomain
65+ public readonly details = getCognitoDetailsForEnvironment (
66+ attrs . environment ,
67+ )
68+ public readonly appClientProvider = {
69+ environment : attrs . environment ,
70+ serviceToken : attrs . appClientProviderServiceToken ,
71+ auth_url : getCognitoDetailsForEnvironment ( attrs . environment ) . authUrl ,
72+ }
73+ public readonly resourceServerProvider = {
74+ environment : attrs . environment ,
75+ serviceToken : attrs . resourceServerProviderServiceToken ,
76+ }
77+ }
78+
79+ return new Import ( scope , id )
80+ }
81+
5382 constructor ( scope : Construct , id : string , props : VyCognitoProviderProps ) {
5483 super ( scope , id )
5584
0 commit comments