@kensio/yulin 1.12.0 → 1.12.1
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/serve/controller/host/sim-aws-service-hosts.d.ts +27 -0
- package/dist/serve/controller/host/sim-aws-service-hosts.d.ts.map +1 -0
- package/dist/serve/controller/host/sim-aws-service-hosts.js +13 -0
- package/dist/serve/controller/host/sim-aws-service-hosts.js.map +1 -0
- package/dist/serve/http/url/sim-aws-local-url.d.ts.map +1 -1
- package/dist/serve/http/url/sim-aws-local-url.js +1 -0
- package/dist/serve/http/url/sim-aws-local-url.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +1 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-service-cache.js +3 -0
- package/dist/service/aws/factory/sim-aws-account-service-cache.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.d.ts +8 -0
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.js +8 -0
- package/dist/service/aws/factory/sim-aws-scoped-service-registries.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +3 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-cfn-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-cfn-value-adapter.js +14 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-cfn-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-idp-cfn.d.ts +26 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-idp-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-idp-cfn.js +25 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-idp-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-user-pool-domain-cfn.d.ts +31 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-user-pool-domain-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-user-pool-domain-cfn.js +33 -0
- package/dist/service/cloudformation/resource/cfn/cognito/sim-cognito-user-pool-domain-cfn.js.map +1 -0
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.d.ts +1 -0
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.d.ts.map +1 -1
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js +20 -9
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js.map +1 -1
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts +26 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.d.ts.map +1 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js +34 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-creator.js.map +1 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-properties.d.ts +37 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-properties.d.ts.map +1 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-properties.js +67 -0
- package/dist/service/cognito/cfn/domain/sim-cfn-cognito-domain-properties.js.map +1 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts +26 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.d.ts.map +1 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js +37 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-creator.js.map +1 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-properties.d.ts +40 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-properties.d.ts.map +1 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-properties.js +74 -0
- package/dist/service/cognito/cfn/idp/sim-cfn-cognito-idp-properties.js.map +1 -0
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts +29 -3
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.d.ts.map +1 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js +88 -26
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-deleter.js.map +1 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts +5 -3
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.d.ts.map +1 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js +15 -3
- package/dist/service/cognito/cfn/sim-cfn-cognito-resource-factory.js.map +1 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts +6 -0
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js +1 -3
- package/dist/service/cognito/command/auth/sim-cognito-auth-commands.js.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts +0 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js +0 -4
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.d.ts +2 -3
- package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.d.ts.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.js +3 -4
- package/dist/service/cognito/command/client/sim-cognito-user-pool-client-view.js.map +1 -1
- package/dist/service/cognito/command/client/user-pool-client.command.d.ts +5 -6
- package/dist/service/cognito/command/client/user-pool-client.command.d.ts.map +1 -1
- package/dist/service/cognito/command/domain/sim-cognito-domain-commands.d.ts +62 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-commands.d.ts.map +1 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-commands.js +87 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-commands.js.map +1 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-view.d.ts +19 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-view.d.ts.map +1 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-view.js +38 -0
- package/dist/service/cognito/command/domain/sim-cognito-domain-view.js.map +1 -0
- package/dist/service/cognito/command/domain/user-pool-domain.command.d.ts +72 -0
- package/dist/service/cognito/command/domain/user-pool-domain.command.d.ts.map +1 -0
- package/dist/service/cognito/command/domain/user-pool-domain.command.js +2 -0
- package/dist/service/cognito/command/domain/user-pool-domain.command.js.map +1 -0
- package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts +69 -0
- package/dist/service/cognito/command/hosted/hosted-auth.command.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/hosted-auth.command.js +2 -0
- package/dist/service/cognito/command/hosted/hosted-auth.command.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts +38 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js +72 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-endpoint.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.d.ts +37 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.js +123 -0
- package/dist/service/cognito/command/hosted/sim-cognito-authorize-request.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-scopes.d.ts +16 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-scopes.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-scopes.js +34 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-scopes.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-tokens.d.ts +16 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-tokens.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-tokens.js +32 -0
- package/dist/service/cognito/command/hosted/sim-cognito-granted-tokens.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-client.d.ts +49 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-client.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-client.js +98 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-client.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts +28 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js +27 -0
- package/dist/service/cognito/command/hosted/sim-cognito-hosted-commands.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-logout-endpoint.d.ts +22 -0
- package/dist/service/cognito/command/hosted/sim-cognito-logout-endpoint.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-logout-endpoint.js +43 -0
- package/dist/service/cognito/command/hosted/sim-cognito-logout-endpoint.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-presented-grant.d.ts +47 -0
- package/dist/service/cognito/command/hosted/sim-cognito-presented-grant.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-presented-grant.js +92 -0
- package/dist/service/cognito/command/hosted/sim-cognito-presented-grant.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts +33 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.js +58 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-endpoint.js.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts +42 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.d.ts.map +1 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js +70 -0
- package/dist/service/cognito/command/hosted/sim-cognito-token-grants.js.map +1 -0
- package/dist/service/cognito/command/idp/identity-provider.command.d.ts +118 -0
- package/dist/service/cognito/command/idp/identity-provider.command.d.ts.map +1 -0
- package/dist/service/cognito/command/idp/identity-provider.command.js +2 -0
- package/dist/service/cognito/command/idp/identity-provider.command.js.map +1 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-commands.d.ts +54 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-commands.d.ts.map +1 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-commands.js +94 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-commands.js.map +1 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-view.d.ts +22 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-view.d.ts.map +1 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-view.js +38 -0
- package/dist/service/cognito/command/idp/sim-cognito-identity-provider-view.js.map +1 -0
- package/dist/service/cognito/command/sim-cognito-command.types.d.ts +3 -0
- package/dist/service/cognito/command/sim-cognito-command.types.d.ts.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +8 -0
- package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.js +30 -1
- package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
- package/dist/service/cognito/error/sim-cognito-oauth.error.d.ts +42 -0
- package/dist/service/cognito/error/sim-cognito-oauth.error.d.ts.map +1 -0
- package/dist/service/cognito/error/sim-cognito-oauth.error.js +29 -0
- package/dist/service/cognito/error/sim-cognito-oauth.error.js.map +1 -0
- package/dist/service/cognito/error/sim-cognito.error.d.ts +10 -0
- package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
- package/dist/service/cognito/error/sim-cognito.error.js +12 -0
- package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
- package/dist/service/cognito/index.d.ts +15 -1
- package/dist/service/cognito/index.d.ts.map +1 -1
- package/dist/service/cognito/index.js +15 -1
- package/dist/service/cognito/index.js.map +1 -1
- package/dist/service/cognito/registry/sim-cognito-domain-registry.d.ts +49 -0
- package/dist/service/cognito/registry/sim-cognito-domain-registry.d.ts.map +1 -0
- package/dist/service/cognito/registry/sim-cognito-domain-registry.js +83 -0
- package/dist/service/cognito/registry/sim-cognito-domain-registry.js.map +1 -0
- package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.d.ts +3 -2
- package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.d.ts.map +1 -1
- package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.js +5 -2
- package/dist/service/cognito/sdk/sim-cognito-sdk-command-router.js.map +1 -1
- package/dist/service/cognito/sdk/sim-cognito-sdk-federation-routes.d.ts +7 -0
- package/dist/service/cognito/sdk/sim-cognito-sdk-federation-routes.d.ts.map +1 -0
- package/dist/service/cognito/sdk/sim-cognito-sdk-federation-routes.js +41 -0
- package/dist/service/cognito/sdk/sim-cognito-sdk-federation-routes.js.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-controller.d.ts +5 -0
- package/dist/service/cognito/serve/sim-cognito-controller.d.ts.map +1 -1
- package/dist/service/cognito/serve/sim-cognito-controller.js +12 -2
- package/dist/service/cognito/serve/sim-cognito-controller.js.map +1 -1
- package/dist/service/cognito/serve/sim-cognito-domain-controller.d.ts +48 -0
- package/dist/service/cognito/serve/sim-cognito-domain-controller.d.ts.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-domain-controller.js +79 -0
- package/dist/service/cognito/serve/sim-cognito-domain-controller.js.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-domain-endpoints.d.ts +49 -0
- package/dist/service/cognito/serve/sim-cognito-domain-endpoints.d.ts.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-domain-endpoints.js +91 -0
- package/dist/service/cognito/serve/sim-cognito-domain-endpoints.js.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-oauth-response.d.ts +57 -0
- package/dist/service/cognito/serve/sim-cognito-oauth-response.d.ts.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-oauth-response.js +113 -0
- package/dist/service/cognito/serve/sim-cognito-oauth-response.js.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-openid-configuration.d.ts +15 -4
- package/dist/service/cognito/serve/sim-cognito-openid-configuration.d.ts.map +1 -1
- package/dist/service/cognito/serve/sim-cognito-openid-configuration.js +28 -4
- package/dist/service/cognito/serve/sim-cognito-openid-configuration.js.map +1 -1
- package/dist/service/cognito/serve/sim-cognito-token-request.d.ts +30 -0
- package/dist/service/cognito/serve/sim-cognito-token-request.d.ts.map +1 -0
- package/dist/service/cognito/serve/sim-cognito-token-request.js +66 -0
- package/dist/service/cognito/serve/sim-cognito-token-request.js.map +1 -0
- package/dist/service/cognito/sim-cognito-federation.d.ts +74 -0
- package/dist/service/cognito/sim-cognito-federation.d.ts.map +1 -0
- package/dist/service/cognito/sim-cognito-federation.js +99 -0
- package/dist/service/cognito/sim-cognito-federation.js.map +1 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +21 -2
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js +21 -4
- package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code-store.d.ts +28 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code-store.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code-store.js +52 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code-store.js.map +1 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts +57 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js +75 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-authorization-code.js.map +1 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token-store.d.ts +8 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token-store.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token-store.js +13 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token-store.js.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token.d.ts +10 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token.js +6 -0
- package/dist/service/cognito/user-pool/auth/sim-cognito-issued-token.js.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts +47 -4
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js +58 -4
- package/dist/service/cognito/user-pool/auth/sim-cognito-pool-auth.js.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-grants.d.ts +18 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-grants.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-grants.js +61 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-grants.js.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-settings.d.ts +60 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-settings.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-settings.js +83 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-oauth-settings.js.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-redirect-urls.d.ts +22 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-redirect-urls.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-redirect-urls.js +47 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-redirect-urls.js.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-requested-oauth.d.ts +29 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-requested-oauth.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-requested-oauth.js +64 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-requested-oauth.js.map +1 -0
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-settings.d.ts +4 -5
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-settings.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-settings.js +4 -5
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client-settings.js.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.d.ts +4 -4
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.js +4 -4
- package/dist/service/cognito/user-pool/client/sim-cognito-user-pool-client.js.map +1 -1
- package/dist/service/cognito/user-pool/domain/sim-cognito-custom-domain-config.d.ts +30 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-custom-domain-config.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-custom-domain-config.js +37 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-custom-domain-config.js.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-domain-name.d.ts +58 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-domain-name.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-domain-name.js +123 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-domain-name.js.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-pool-domains.d.ts +33 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-pool-domains.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-pool-domains.js +66 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-pool-domains.js.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-user-pool-domain.d.ts +58 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-user-pool-domain.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-user-pool-domain.js +70 -0
- package/dist/service/cognito/user-pool/domain/sim-cognito-user-pool-domain.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts +40 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js +56 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-attribute-mapping.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-external-user.d.ts +37 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-external-user.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-external-user.js +28 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-external-user.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.d.ts +64 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.js +50 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-identity.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts +47 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js +72 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-federated-sign-in.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-settings.d.ts +37 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-settings.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-settings.js +55 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-settings.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-store.d.ts +39 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-store.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-store.js +58 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-identity-provider-store.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-details.d.ts +29 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-details.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-details.js +52 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-details.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-type.d.ts +24 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-type.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-type.js +67 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-provider-type.js.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts +82 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js +108 -0
- package/dist/service/cognito/user-pool/idp/sim-cognito-user-pool-identity-provider.js.map +1 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts +11 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js +11 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-store.js.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-access-token.d.ts +5 -0
- package/dist/service/cognito/user-pool/token/sim-cognito-access-token.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-access-token.js +16 -5
- package/dist/service/cognito/user-pool/token/sim-cognito-access-token.js.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-id-token.d.ts +7 -0
- package/dist/service/cognito/user-pool/token/sim-cognito-id-token.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-id-token.js +14 -0
- package/dist/service/cognito/user-pool/token/sim-cognito-id-token.js.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-token-claims.d.ts +10 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-token-claims.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-token-claims.js.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-token-issuer.d.ts +5 -0
- package/dist/service/cognito/user-pool/token/sim-cognito-token-issuer.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/token/sim-cognito-token-issuer.js +3 -0
- package/dist/service/cognito/user-pool/token/sim-cognito-token-issuer.js.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-standard-attributes.d.ts +9 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-standard-attributes.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-standard-attributes.js +39 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-standard-attributes.js.map +1 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-user-attributes.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user-attributes.js +2 -29
- package/dist/service/cognito/user-pool/user/sim-cognito-user-attributes.js.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user-factory.d.ts +15 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-user-factory.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user-factory.js +17 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-user-factory.js.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user-status.d.ts +14 -4
- package/dist/service/cognito/user-pool/user/sim-cognito-user-status.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user-status.js +13 -3
- package/dist/service/cognito/user-pool/user/sim-cognito-user-status.js.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user.d.ts +20 -0
- package/dist/service/cognito/user-pool/user/sim-cognito-user.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user.js +29 -1
- package/dist/service/cognito/user-pool/user/sim-cognito-user.js.map +1 -1
- package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts +1 -0
- package/dist/service/route53/resolve/sim-r53-service-target-resolver.d.ts.map +1 -1
- package/dist/service/route53/resolve/sim-r53-service-target-resolver.js +1 -0
- package/dist/service/route53/resolve/sim-r53-service-target-resolver.js.map +1 -1
- package/dist/service/route53/resolve/sim-route53-resolver.d.ts +7 -0
- package/dist/service/route53/resolve/sim-route53-resolver.d.ts.map +1 -1
- package/dist/service/route53/resolve/sim-route53-resolver.js +12 -4
- package/dist/service/route53/resolve/sim-route53-resolver.js.map +1 -1
- package/dist/service/route53/sim-route53.d.ts +8 -0
- package/dist/service/route53/sim-route53.d.ts.map +1 -1
- package/dist/service/route53/sim-route53.js +1 -0
- package/dist/service/route53/sim-route53.js.map +1 -1
- package/package.json +1 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.d.ts +0 -24
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.d.ts.map +0 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.js +0 -51
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-managed-login.js.map +0 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-unsimulated-client-settings.d.ts +0 -42
- package/dist/service/cognito/user-pool/client/sim-cognito-unsimulated-client-settings.d.ts.map +0 -1
- package/dist/service/cognito/user-pool/client/sim-cognito-unsimulated-client-settings.js +0 -44
- package/dist/service/cognito/user-pool/client/sim-cognito-unsimulated-client-settings.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SimAwsServiceRequest } from "../../../serve/controller/sim-service-controller.js";
|
|
2
|
+
import type { SimCognitoIdentityProvider } from "../sim-cognito-identity-provider.js";
|
|
3
|
+
import type { SimCognitoUserPool } from "../user-pool/sim-cognito-user-pool.js";
|
|
4
|
+
/**
|
|
5
|
+
* One request to a hosted domain, and what answers it.
|
|
6
|
+
*/
|
|
7
|
+
export interface SimCognitoDomainRequest {
|
|
8
|
+
readonly pool: SimCognitoUserPool;
|
|
9
|
+
/** The simulated Cognito scope the pool belongs to. */
|
|
10
|
+
readonly cognito: SimCognitoIdentityProvider;
|
|
11
|
+
readonly serviceRequest: SimAwsServiceRequest;
|
|
12
|
+
readonly url: URL;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The three endpoints a pool's hosted domain serves.
|
|
16
|
+
*
|
|
17
|
+
* Each takes one HTTP method and one only, as real Cognito's do, and turns
|
|
18
|
+
* what the simulation answered into the redirect or the JSON body a browser or
|
|
19
|
+
* an application's own server reads.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimCognitoDomainEndpoints {
|
|
22
|
+
private readonly response;
|
|
23
|
+
private readonly tokenRequest;
|
|
24
|
+
/**
|
|
25
|
+
* Answer a request that reached the domain's hostname.
|
|
26
|
+
*/
|
|
27
|
+
handleRequest(request: SimCognitoDomainRequest): Promise<Response>;
|
|
28
|
+
/**
|
|
29
|
+
* Sign a user in through an identity provider and send the browser back to
|
|
30
|
+
* the application with a code.
|
|
31
|
+
*/
|
|
32
|
+
private authorize;
|
|
33
|
+
/**
|
|
34
|
+
* Exchange an authorization code or a refresh token for tokens.
|
|
35
|
+
*/
|
|
36
|
+
private token;
|
|
37
|
+
/**
|
|
38
|
+
* Send the browser to the application's sign-out page.
|
|
39
|
+
*/
|
|
40
|
+
private logout;
|
|
41
|
+
/**
|
|
42
|
+
* Answer a request that used the method its endpoint takes.
|
|
43
|
+
*
|
|
44
|
+
* Each endpoint takes one method and one only, as real Cognito's do, so what
|
|
45
|
+
* is left to say about any other is which one it was.
|
|
46
|
+
*/
|
|
47
|
+
private answered;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=sim-cognito-domain-endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-domain-endpoints.d.ts","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-domain-endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAWhF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAElC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAE7D;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBvE;IAED;;;OAGG;YACW,SAAS;IAkBvB;;OAEG;YACW,KAAK;IAenB;;OAEG;YACW,MAAM;IAcpB;;;;;OAKG;YACW,QAAQ;CAavB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { SimCognitoOAuthResponse } from "./sim-cognito-oauth-response.js";
|
|
2
|
+
import { SimCognitoTokenRequest } from "./sim-cognito-token-request.js";
|
|
3
|
+
/**
|
|
4
|
+
* The paths a hosted domain serves.
|
|
5
|
+
*/
|
|
6
|
+
const authorizePath = "/oauth2/authorize";
|
|
7
|
+
const tokenPath = "/oauth2/token";
|
|
8
|
+
const logoutPath = "/logout";
|
|
9
|
+
/**
|
|
10
|
+
* The three endpoints a pool's hosted domain serves.
|
|
11
|
+
*
|
|
12
|
+
* Each takes one HTTP method and one only, as real Cognito's do, and turns
|
|
13
|
+
* what the simulation answered into the redirect or the JSON body a browser or
|
|
14
|
+
* an application's own server reads.
|
|
15
|
+
*/
|
|
16
|
+
export class SimCognitoDomainEndpoints {
|
|
17
|
+
response = new SimCognitoOAuthResponse();
|
|
18
|
+
tokenRequest = new SimCognitoTokenRequest();
|
|
19
|
+
/**
|
|
20
|
+
* Answer a request that reached the domain's hostname.
|
|
21
|
+
*/
|
|
22
|
+
async handleRequest(request) {
|
|
23
|
+
const { pathname } = request.url;
|
|
24
|
+
if (pathname === authorizePath) {
|
|
25
|
+
return await this.authorize(request);
|
|
26
|
+
}
|
|
27
|
+
if (pathname === tokenPath) {
|
|
28
|
+
return await this.token(request);
|
|
29
|
+
}
|
|
30
|
+
if (pathname === logoutPath) {
|
|
31
|
+
return await this.logout(request);
|
|
32
|
+
}
|
|
33
|
+
return this.response.noSuchEndpoint(pathname);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sign a user in through an identity provider and send the browser back to
|
|
37
|
+
* the application with a code.
|
|
38
|
+
*/
|
|
39
|
+
async authorize(request) {
|
|
40
|
+
const parameters = Object.fromEntries(request.url.searchParams);
|
|
41
|
+
return await this.answered(request, "GET", async () => {
|
|
42
|
+
try {
|
|
43
|
+
return this.response.redirect(await request.cognito.hostedAuthorize(request.pool, parameters));
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
return this.response.refusedRedirect(error, parameters["redirect_uri"], parameters["state"]);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Exchange an authorization code or a refresh token for tokens.
|
|
52
|
+
*/
|
|
53
|
+
async token(request) {
|
|
54
|
+
return await this.answered(request, "POST", async () => {
|
|
55
|
+
try {
|
|
56
|
+
return this.response.tokens(await request.cognito.hostedToken(request.pool, this.tokenRequest.read(request.serviceRequest)));
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return this.response.refusedRequest(error);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Send the browser to the application's sign-out page.
|
|
65
|
+
*/
|
|
66
|
+
async logout(request) {
|
|
67
|
+
const parameters = Object.fromEntries(request.url.searchParams);
|
|
68
|
+
return await this.answered(request, "GET", async () => {
|
|
69
|
+
try {
|
|
70
|
+
return this.response.redirect(await request.cognito.hostedSignOut(request.pool, parameters));
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return this.response.refusedRequest(error);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Answer a request that used the method its endpoint takes.
|
|
79
|
+
*
|
|
80
|
+
* Each endpoint takes one method and one only, as real Cognito's do, so what
|
|
81
|
+
* is left to say about any other is which one it was.
|
|
82
|
+
*/
|
|
83
|
+
async answered(request, method, answer) {
|
|
84
|
+
const requested = request.serviceRequest.request.method;
|
|
85
|
+
if (requested !== method) {
|
|
86
|
+
return this.response.notAllowed(requested, method);
|
|
87
|
+
}
|
|
88
|
+
return await answer();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=sim-cognito-domain-endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-domain-endpoints.js","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-domain-endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { SimCognitoHostedRedirect } from "../command/hosted/hosted-auth.command.js";
|
|
2
|
+
/**
|
|
3
|
+
* The responses a pool's hosted OAuth endpoints answer with.
|
|
4
|
+
*
|
|
5
|
+
* A hosted endpoint is answering a browser rather than an SDK client, so its
|
|
6
|
+
* successes are redirects and its failures are either a redirect carrying an
|
|
7
|
+
* error or a JSON body, which is the difference between an error the
|
|
8
|
+
* application can be told about and one only the person in front of the
|
|
9
|
+
* browser can see.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SimCognitoOAuthResponse {
|
|
12
|
+
/**
|
|
13
|
+
* Read an error as an OAuth one, whatever it turned out to be.
|
|
14
|
+
*
|
|
15
|
+
* A refusal from further inside the simulation, such as an identity provider
|
|
16
|
+
* with nobody signed in at it, is a server error to OAuth and its own
|
|
17
|
+
* message to the reader, so the message is kept rather than replaced.
|
|
18
|
+
*/
|
|
19
|
+
private static oauthError;
|
|
20
|
+
private static describe;
|
|
21
|
+
/**
|
|
22
|
+
* Send the browser on to where an endpoint decided it goes.
|
|
23
|
+
*/
|
|
24
|
+
redirect(redirect: SimCognitoHostedRedirect): Response;
|
|
25
|
+
/**
|
|
26
|
+
* Answer a token request with the tokens it asked for.
|
|
27
|
+
*
|
|
28
|
+
* The `Access-Control-Allow-Origin` header is the one real Cognito sets on
|
|
29
|
+
* this endpoint, so a browser-based application completing a grant with PKCE
|
|
30
|
+
* can read the answer.
|
|
31
|
+
*/
|
|
32
|
+
tokens(body: object): Response;
|
|
33
|
+
/**
|
|
34
|
+
* Answer a refused request to the authorize or logout endpoint.
|
|
35
|
+
*
|
|
36
|
+
* An error is sent back to the application's own URL where the request has
|
|
37
|
+
* shown it knows one the app client registered, which is what real Cognito
|
|
38
|
+
* does. Anything else is answered in the browser, because there is nowhere
|
|
39
|
+
* trustworthy to send it.
|
|
40
|
+
*/
|
|
41
|
+
refusedRedirect(error: unknown, redirectUri: string | undefined, state: string | undefined): Response;
|
|
42
|
+
/**
|
|
43
|
+
* Answer a refused request in the shape the OAuth 2.0 specification gives an
|
|
44
|
+
* error, which is what the token endpoint answers with and what a client
|
|
45
|
+
* library reads.
|
|
46
|
+
*/
|
|
47
|
+
refusedRequest(error: unknown): Response;
|
|
48
|
+
/**
|
|
49
|
+
* Refuse a path the hosted domain serves nothing at.
|
|
50
|
+
*/
|
|
51
|
+
noSuchEndpoint(pathname: string): Response;
|
|
52
|
+
/**
|
|
53
|
+
* Refuse a method an endpoint does not answer.
|
|
54
|
+
*/
|
|
55
|
+
notAllowed(method: string, allowed: string): Response;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=sim-cognito-oauth-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-oauth-response.d.ts","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-oauth-response.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEzF;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAYzB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAQvB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,QAAQ,CAKrD;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAQ7B;IAED;;;;;;;OAOG;IACH,eAAe,CACb,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,QAAQ,CAoBV;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAOvC;IAED;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAUzC;IAED;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAQpD;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { isSimCognitoOAuthError, SimCognitoOAuthError, } from "../error/sim-cognito-oauth.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* The responses a pool's hosted OAuth endpoints answer with.
|
|
4
|
+
*
|
|
5
|
+
* A hosted endpoint is answering a browser rather than an SDK client, so its
|
|
6
|
+
* successes are redirects and its failures are either a redirect carrying an
|
|
7
|
+
* error or a JSON body, which is the difference between an error the
|
|
8
|
+
* application can be told about and one only the person in front of the
|
|
9
|
+
* browser can see.
|
|
10
|
+
*/
|
|
11
|
+
export class SimCognitoOAuthResponse {
|
|
12
|
+
/**
|
|
13
|
+
* Read an error as an OAuth one, whatever it turned out to be.
|
|
14
|
+
*
|
|
15
|
+
* A refusal from further inside the simulation, such as an identity provider
|
|
16
|
+
* with nobody signed in at it, is a server error to OAuth and its own
|
|
17
|
+
* message to the reader, so the message is kept rather than replaced.
|
|
18
|
+
*/
|
|
19
|
+
static oauthError(error) {
|
|
20
|
+
if (isSimCognitoOAuthError(error)) {
|
|
21
|
+
return error;
|
|
22
|
+
}
|
|
23
|
+
return new SimCognitoOAuthError({
|
|
24
|
+
code: "invalid_request",
|
|
25
|
+
description: this.describe(error),
|
|
26
|
+
redirectable: false,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
static describe(error) {
|
|
30
|
+
if (error instanceof Error) {
|
|
31
|
+
return error.message;
|
|
32
|
+
}
|
|
33
|
+
return "The request was refused";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Send the browser on to where an endpoint decided it goes.
|
|
37
|
+
*/
|
|
38
|
+
redirect(redirect) {
|
|
39
|
+
return new Response(undefined, {
|
|
40
|
+
status: 302,
|
|
41
|
+
headers: { location: redirect.location },
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Answer a token request with the tokens it asked for.
|
|
46
|
+
*
|
|
47
|
+
* The `Access-Control-Allow-Origin` header is the one real Cognito sets on
|
|
48
|
+
* this endpoint, so a browser-based application completing a grant with PKCE
|
|
49
|
+
* can read the answer.
|
|
50
|
+
*/
|
|
51
|
+
tokens(body) {
|
|
52
|
+
return Response.json(body, {
|
|
53
|
+
status: 200,
|
|
54
|
+
headers: {
|
|
55
|
+
"cache-control": "no-store",
|
|
56
|
+
"access-control-allow-origin": "*",
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Answer a refused request to the authorize or logout endpoint.
|
|
62
|
+
*
|
|
63
|
+
* An error is sent back to the application's own URL where the request has
|
|
64
|
+
* shown it knows one the app client registered, which is what real Cognito
|
|
65
|
+
* does. Anything else is answered in the browser, because there is nowhere
|
|
66
|
+
* trustworthy to send it.
|
|
67
|
+
*/
|
|
68
|
+
refusedRedirect(error, redirectUri, state) {
|
|
69
|
+
const oauthError = SimCognitoOAuthResponse.oauthError(error);
|
|
70
|
+
if (redirectUri === undefined || !oauthError.redirectable) {
|
|
71
|
+
return this.refusedRequest(oauthError);
|
|
72
|
+
}
|
|
73
|
+
const location = new URL(redirectUri);
|
|
74
|
+
location.searchParams.set("error", oauthError.code);
|
|
75
|
+
location.searchParams.set("error_description", oauthError.description);
|
|
76
|
+
if (state !== undefined) {
|
|
77
|
+
location.searchParams.set("state", state);
|
|
78
|
+
}
|
|
79
|
+
return new Response(undefined, {
|
|
80
|
+
status: 302,
|
|
81
|
+
headers: { location: location.href },
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Answer a refused request in the shape the OAuth 2.0 specification gives an
|
|
86
|
+
* error, which is what the token endpoint answers with and what a client
|
|
87
|
+
* library reads.
|
|
88
|
+
*/
|
|
89
|
+
refusedRequest(error) {
|
|
90
|
+
const oauthError = SimCognitoOAuthResponse.oauthError(error);
|
|
91
|
+
return Response.json({ error: oauthError.code, error_description: oauthError.description }, { status: 400 });
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Refuse a path the hosted domain serves nothing at.
|
|
95
|
+
*/
|
|
96
|
+
noSuchEndpoint(pathname) {
|
|
97
|
+
return Response.json({
|
|
98
|
+
error: "invalid_request",
|
|
99
|
+
error_description: `A simulated user pool domain serves nothing at ${pathname}. It ` +
|
|
100
|
+
`serves /oauth2/authorize, /oauth2/token and /logout.`,
|
|
101
|
+
}, { status: 404 });
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Refuse a method an endpoint does not answer.
|
|
105
|
+
*/
|
|
106
|
+
notAllowed(method, allowed) {
|
|
107
|
+
return Response.json({
|
|
108
|
+
error: "invalid_request",
|
|
109
|
+
error_description: `This endpoint answers ${allowed}, not ${method}`,
|
|
110
|
+
}, { status: 405, headers: { allow: allowed } });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=sim-cognito-oauth-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-oauth-response.js","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-oauth-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ import type { SimCognitoUserPool } from "../user-pool/sim-cognito-user-pool.js";
|
|
|
6
6
|
export interface SimCognitoOpenIdConfigurationDocument {
|
|
7
7
|
readonly issuer: string;
|
|
8
8
|
readonly jwks_uri: string;
|
|
9
|
+
readonly authorization_endpoint?: string | undefined;
|
|
10
|
+
readonly token_endpoint?: string | undefined;
|
|
11
|
+
readonly end_session_endpoint?: string | undefined;
|
|
9
12
|
readonly id_token_signing_alg_values_supported: readonly string[];
|
|
10
13
|
readonly response_types_supported: readonly string[];
|
|
11
14
|
readonly scopes_supported: readonly string[];
|
|
@@ -22,15 +25,23 @@ export interface SimCognitoOpenIdConfigurationDocument {
|
|
|
22
25
|
* in `iss`, which is what a verifier builds from a pool id and checks against,
|
|
23
26
|
* so the two disagree here and agree on real Cognito.
|
|
24
27
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* that
|
|
28
|
+
* The OAuth endpoints are published once the pool has a domain, and left out
|
|
29
|
+
* until then, because until then they do not exist. They name the domain's own
|
|
30
|
+
* local hostname for the same reason the issuer names the local one: a client
|
|
31
|
+
* that discovers an endpoint has to be able to reach it.
|
|
32
|
+
*
|
|
33
|
+
* No `userinfo_endpoint` is published, because that endpoint is not
|
|
34
|
+
* simulated. A client discovering nothing there fails rather than calling an
|
|
35
|
+
* endpoint that would not answer.
|
|
29
36
|
*/
|
|
30
37
|
export declare class SimCognitoOpenIdConfiguration {
|
|
31
38
|
/**
|
|
32
39
|
* The discovery document for a pool, as served from an origin.
|
|
33
40
|
*/
|
|
34
41
|
document(pool: SimCognitoUserPool, origin: string): SimCognitoOpenIdConfigurationDocument;
|
|
42
|
+
/**
|
|
43
|
+
* The endpoints a pool's hosted domain serves, for a pool that has one.
|
|
44
|
+
*/
|
|
45
|
+
private hostedEndpoints;
|
|
35
46
|
}
|
|
36
47
|
//# sourceMappingURL=sim-cognito-openid-configuration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cognito-openid-configuration.d.ts","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-openid-configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cognito-openid-configuration.d.ts","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-openid-configuration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,qCAAqC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClE,QAAQ,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,qCAAqC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,6BAA6B;IACxC;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,GACb,qCAAqC,CAgBvC;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;CAqBxB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SimAwsLocalUrl } from "../../../serve/http/url/sim-aws-local-url.js";
|
|
1
2
|
/**
|
|
2
3
|
* Builds the discovery document a simulated user pool publishes.
|
|
3
4
|
*
|
|
@@ -8,10 +9,14 @@
|
|
|
8
9
|
* in `iss`, which is what a verifier builds from a pool id and checks against,
|
|
9
10
|
* so the two disagree here and agree on real Cognito.
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* that
|
|
12
|
+
* The OAuth endpoints are published once the pool has a domain, and left out
|
|
13
|
+
* until then, because until then they do not exist. They name the domain's own
|
|
14
|
+
* local hostname for the same reason the issuer names the local one: a client
|
|
15
|
+
* that discovers an endpoint has to be able to reach it.
|
|
16
|
+
*
|
|
17
|
+
* No `userinfo_endpoint` is published, because that endpoint is not
|
|
18
|
+
* simulated. A client discovering nothing there fails rather than calling an
|
|
19
|
+
* endpoint that would not answer.
|
|
15
20
|
*/
|
|
16
21
|
export class SimCognitoOpenIdConfiguration {
|
|
17
22
|
/**
|
|
@@ -22,6 +27,7 @@ export class SimCognitoOpenIdConfiguration {
|
|
|
22
27
|
return {
|
|
23
28
|
issuer,
|
|
24
29
|
jwks_uri: `${issuer}/.well-known/jwks.json`,
|
|
30
|
+
...this.hostedEndpoints(pool, origin),
|
|
25
31
|
id_token_signing_alg_values_supported: ["RS256"],
|
|
26
32
|
response_types_supported: ["code", "token"],
|
|
27
33
|
scopes_supported: ["openid", "email", "phone", "profile"],
|
|
@@ -32,5 +38,23 @@ export class SimCognitoOpenIdConfiguration {
|
|
|
32
38
|
],
|
|
33
39
|
};
|
|
34
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* The endpoints a pool's hosted domain serves, for a pool that has one.
|
|
43
|
+
*/
|
|
44
|
+
hostedEndpoints(pool, origin) {
|
|
45
|
+
const domain = pool.auth.domain;
|
|
46
|
+
if (domain === undefined) {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
const domainUrl = new SimAwsLocalUrl({
|
|
50
|
+
input: `https://${domain.hostname}/`,
|
|
51
|
+
port: new URL(origin).port,
|
|
52
|
+
}).toURL();
|
|
53
|
+
return {
|
|
54
|
+
authorization_endpoint: `${domainUrl.origin}/oauth2/authorize`,
|
|
55
|
+
token_endpoint: `${domainUrl.origin}/oauth2/token`,
|
|
56
|
+
end_session_endpoint: `${domainUrl.origin}/logout`,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
35
59
|
}
|
|
36
60
|
//# sourceMappingURL=sim-cognito-openid-configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-cognito-openid-configuration.js","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-openid-configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-cognito-openid-configuration.js","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-openid-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAoB9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,6BAA6B;IACxC;;OAEG;IACH,QAAQ,CACN,IAAwB,EACxB,MAAc;QAEd,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QAEtC,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,GAAG,MAAM,wBAAwB;YAC3C,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;YACrC,qCAAqC,EAAE,CAAC,OAAO,CAAC;YAChD,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YAC3C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;YACzD,uBAAuB,EAAE,CAAC,QAAQ,CAAC;YACnC,qCAAqC,EAAE;gBACrC,qBAAqB;gBACrB,oBAAoB;aACrB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,IAAwB,EACxB,MAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAEhC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC;YACnC,KAAK,EAAE,WAAW,MAAM,CAAC,QAAQ,GAAG;YACpC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI;SAC3B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEX,OAAO;YACL,sBAAsB,EAAE,GAAG,SAAS,CAAC,MAAM,mBAAmB;YAC9D,cAAc,EAAE,GAAG,SAAS,CAAC,MAAM,eAAe;YAClD,oBAAoB,EAAE,GAAG,SAAS,CAAC,MAAM,SAAS;SACnD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SimAwsServiceRequest } from "../../../serve/controller/sim-service-controller.js";
|
|
2
|
+
import type { SimCognitoTokenInput } from "../command/hosted/hosted-auth.command.js";
|
|
3
|
+
/**
|
|
4
|
+
* Reads a `/oauth2/token` request into the fields the endpoint answers on.
|
|
5
|
+
*
|
|
6
|
+
* The body is form encoded, as the OAuth 2.0 specification requires, and the
|
|
7
|
+
* app client's id and secret arrive either in that body or in a basic
|
|
8
|
+
* authorization header. Both are read here so the endpoint itself does not
|
|
9
|
+
* have to care which the application used, which is what
|
|
10
|
+
* `client_secret_basic` and `client_secret_post` are.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SimCognitoTokenRequest {
|
|
13
|
+
/**
|
|
14
|
+
* The fields a token request carries.
|
|
15
|
+
*/
|
|
16
|
+
read(serviceRequest: SimAwsServiceRequest): SimCognitoTokenInput;
|
|
17
|
+
/**
|
|
18
|
+
* The body as it arrived, which the serving layer buffered.
|
|
19
|
+
*/
|
|
20
|
+
private bodyText;
|
|
21
|
+
/**
|
|
22
|
+
* The app client id and secret from a basic authorization header.
|
|
23
|
+
*
|
|
24
|
+
* The header wins over the body where a request carries both, because it is
|
|
25
|
+
* the more specific of the two: an application that signed its request has
|
|
26
|
+
* said which client it is.
|
|
27
|
+
*/
|
|
28
|
+
private basicCredentials;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=sim-cognito-token-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-token-request.d.ts","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-token-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAarF;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,IAAI,CAAC,cAAc,EAAE,oBAAoB,GAAG,oBAAoB,CAS/D;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAsBzB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scheme the token endpoint's client authentication header uses.
|
|
3
|
+
*
|
|
4
|
+
* The scheme name is matched without regard to case, as HTTP authentication
|
|
5
|
+
* scheme names are. The credentials are the base64 of `client_id:client_secret`
|
|
6
|
+
* as Cognito's own documentation writes them, rather than the form encoded
|
|
7
|
+
* pair the OAuth specification describes, because an app client's id and
|
|
8
|
+
* secret hold nothing that either encoding would change.
|
|
9
|
+
*/
|
|
10
|
+
const basicScheme = /^basic (?<credentials>.+)$/iu;
|
|
11
|
+
/**
|
|
12
|
+
* Reads a `/oauth2/token` request into the fields the endpoint answers on.
|
|
13
|
+
*
|
|
14
|
+
* The body is form encoded, as the OAuth 2.0 specification requires, and the
|
|
15
|
+
* app client's id and secret arrive either in that body or in a basic
|
|
16
|
+
* authorization header. Both are read here so the endpoint itself does not
|
|
17
|
+
* have to care which the application used, which is what
|
|
18
|
+
* `client_secret_basic` and `client_secret_post` are.
|
|
19
|
+
*/
|
|
20
|
+
export class SimCognitoTokenRequest {
|
|
21
|
+
/**
|
|
22
|
+
* The fields a token request carries.
|
|
23
|
+
*/
|
|
24
|
+
read(serviceRequest) {
|
|
25
|
+
const body = new URLSearchParams(this.bodyText(serviceRequest));
|
|
26
|
+
const fields = Object.fromEntries(body);
|
|
27
|
+
const basic = this.basicCredentials(serviceRequest);
|
|
28
|
+
return {
|
|
29
|
+
...fields,
|
|
30
|
+
...basic,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The body as it arrived, which the serving layer buffered.
|
|
35
|
+
*/
|
|
36
|
+
bodyText(serviceRequest) {
|
|
37
|
+
if (serviceRequest.body === undefined) {
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
return Buffer.from(serviceRequest.body).toString("utf8");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The app client id and secret from a basic authorization header.
|
|
44
|
+
*
|
|
45
|
+
* The header wins over the body where a request carries both, because it is
|
|
46
|
+
* the more specific of the two: an application that signed its request has
|
|
47
|
+
* said which client it is.
|
|
48
|
+
*/
|
|
49
|
+
basicCredentials(serviceRequest) {
|
|
50
|
+
const header = serviceRequest.request.headers.get("authorization") ?? "";
|
|
51
|
+
const credentials = basicScheme.exec(header)?.groups?.["credentials"];
|
|
52
|
+
if (credentials === undefined) {
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
const decoded = Buffer.from(credentials, "base64").toString("utf8");
|
|
56
|
+
const separator = decoded.indexOf(":");
|
|
57
|
+
if (separator === -1) {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
client_id: decoded.slice(0, separator),
|
|
62
|
+
client_secret: decoded.slice(separator + 1),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sim-cognito-token-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-token-request.js","sourceRoot":"","sources":["../../../../src/service/cognito/serve/sim-cognito-token-request.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,IAAI,CAAC,cAAoC;QACvC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAEpD,OAAO;YACL,GAAG,MAAM;YACT,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,cAAoC;QACnD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CACtB,cAAoC;QAEpC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;QAEtE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;YACtC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;SAC5C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { BackgroundScheduler } from "../../util/background/background.js";
|
|
2
|
+
import type * as simCognitoCommands from "./command/sim-cognito-command.types.js";
|
|
3
|
+
import type { SimCognitoCommands } from "./command/sim-cognito-commands.js";
|
|
4
|
+
import type { SimCognitoAuthorizeInput, SimCognitoHostedRedirect, SimCognitoLogoutInput, SimCognitoTokenInput, SimCognitoTokenOutput } from "./command/hosted/hosted-auth.command.js";
|
|
5
|
+
import { SimCognitoUserDirectory, type SimCognitoIdentityProviderRequestOptions } from "./sim-cognito-user-directory.js";
|
|
6
|
+
import type { SimCognitoUserPool } from "./user-pool/sim-cognito-user-pool.js";
|
|
7
|
+
export type { SimCognitoIdentityProviderRequestOptions } from "./sim-cognito-authentication.js";
|
|
8
|
+
interface SimCognitoFederationProperties {
|
|
9
|
+
readonly commands: SimCognitoCommands;
|
|
10
|
+
readonly background: BackgroundScheduler;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The federated half of simulated Cognito: the domain a pool is signed in at,
|
|
14
|
+
* the external identity providers it federates to, and the OAuth endpoints
|
|
15
|
+
* that domain serves.
|
|
16
|
+
*
|
|
17
|
+
* The domain and provider operations are ordinary SDK commands.
|
|
18
|
+
* `hostedAuthorize`, `hostedToken` and `hostedSignOut` are not: they are the
|
|
19
|
+
* three endpoints a browser and an application's own server reach over HTTP,
|
|
20
|
+
* and the serving layer is what turns a request into one of them. They are
|
|
21
|
+
* here because they belong to this service's state, and because a test that
|
|
22
|
+
* wants to drive a sign-in without an HTTP round trip can call them directly.
|
|
23
|
+
*/
|
|
24
|
+
export declare abstract class SimCognitoFederation extends SimCognitoUserDirectory {
|
|
25
|
+
protected constructor(properties: SimCognitoFederationProperties);
|
|
26
|
+
/**
|
|
27
|
+
* Handle a CreateUserPoolDomain Command from the SDK.
|
|
28
|
+
*/
|
|
29
|
+
createUserPoolDomain(command: simCognitoCommands.SimCreateUserPoolDomainCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimCreateUserPoolDomainCommandOutput>;
|
|
30
|
+
/**
|
|
31
|
+
* Handle a DescribeUserPoolDomain Command from the SDK.
|
|
32
|
+
*/
|
|
33
|
+
describeUserPoolDomain(command: simCognitoCommands.SimDescribeUserPoolDomainCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimDescribeUserPoolDomainCommandOutput>;
|
|
34
|
+
/**
|
|
35
|
+
* Handle a DeleteUserPoolDomain Command from the SDK.
|
|
36
|
+
*/
|
|
37
|
+
deleteUserPoolDomain(command: simCognitoCommands.SimDeleteUserPoolDomainCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimDeleteUserPoolDomainCommandOutput>;
|
|
38
|
+
/**
|
|
39
|
+
* Handle a CreateIdentityProvider Command from the SDK.
|
|
40
|
+
*/
|
|
41
|
+
createIdentityProvider(command: simCognitoCommands.SimCreateIdentityProviderCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimCreateIdentityProviderCommandOutput>;
|
|
42
|
+
/**
|
|
43
|
+
* Handle a DescribeIdentityProvider Command from the SDK.
|
|
44
|
+
*/
|
|
45
|
+
describeIdentityProvider(command: simCognitoCommands.SimDescribeIdentityProviderCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimDescribeIdentityProviderCommandOutput>;
|
|
46
|
+
/**
|
|
47
|
+
* Handle an UpdateIdentityProvider Command from the SDK.
|
|
48
|
+
*/
|
|
49
|
+
updateIdentityProvider(command: simCognitoCommands.SimUpdateIdentityProviderCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimUpdateIdentityProviderCommandOutput>;
|
|
50
|
+
/**
|
|
51
|
+
* Handle a DeleteIdentityProvider Command from the SDK.
|
|
52
|
+
*/
|
|
53
|
+
deleteIdentityProvider(command: simCognitoCommands.SimDeleteIdentityProviderCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimDeleteIdentityProviderCommandOutput>;
|
|
54
|
+
/**
|
|
55
|
+
* Handle a ListIdentityProviders Command from the SDK.
|
|
56
|
+
*/
|
|
57
|
+
listIdentityProviders(command: simCognitoCommands.SimListIdentityProvidersCommand, options?: SimCognitoIdentityProviderRequestOptions): Promise<simCognitoCommands.SimListIdentityProvidersCommandOutput>;
|
|
58
|
+
/**
|
|
59
|
+
* Handle a request to a pool's `/oauth2/authorize` endpoint.
|
|
60
|
+
*
|
|
61
|
+
* The answer is where the browser goes next, which for a request that signs
|
|
62
|
+
* a user in is the app client's callback URL carrying an authorization code.
|
|
63
|
+
*/
|
|
64
|
+
hostedAuthorize(pool: SimCognitoUserPool, input: SimCognitoAuthorizeInput): Promise<SimCognitoHostedRedirect>;
|
|
65
|
+
/**
|
|
66
|
+
* Handle a request to a pool's `/oauth2/token` endpoint.
|
|
67
|
+
*/
|
|
68
|
+
hostedToken(pool: SimCognitoUserPool, input: SimCognitoTokenInput): Promise<SimCognitoTokenOutput>;
|
|
69
|
+
/**
|
|
70
|
+
* Handle a request to a pool's `/logout` endpoint.
|
|
71
|
+
*/
|
|
72
|
+
hostedSignOut(pool: SimCognitoUserPool, input: SimCognitoLogoutInput): Promise<SimCognitoHostedRedirect>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sim-cognito-federation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-cognito-federation.d.ts","sourceRoot":"","sources":["../../../src/service/cognito/sim-cognito-federation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,KAAK,kBAAkB,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,KAAK,wCAAwC,EAC9C,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,YAAY,EAAE,wCAAwC,EAAE,MAAM,iCAAiC,CAAC;AAEhG,UAAU,8BAA8B;IACtC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,oBAAqB,SAAQ,uBAAuB;IACxE,SAAS,aAAa,UAAU,EAAE,8BAA8B,EAE/D;IAED;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,kBAAkB,CAAC,8BAA8B,EAC1D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAGlE;IAED;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,kBAAkB,CAAC,gCAAgC,EAC5D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,sCAAsC,CAAC,CAGpE;IAED;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,kBAAkB,CAAC,8BAA8B,EAC1D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAGlE;IAED;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,kBAAkB,CAAC,gCAAgC,EAC5D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,sCAAsC,CAAC,CAGpE;IAED;;OAEG;IACG,wBAAwB,CAC5B,OAAO,EAAE,kBAAkB,CAAC,kCAAkC,EAC9D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,CAGtE;IAED;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,kBAAkB,CAAC,gCAAgC,EAC5D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,sCAAsC,CAAC,CAGpE;IAED;;OAEG;IACG,sBAAsB,CAC1B,OAAO,EAAE,kBAAkB,CAAC,gCAAgC,EAC5D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,sCAAsC,CAAC,CAGpE;IAED;;OAEG;IACG,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,CAAC,+BAA+B,EAC3D,OAAO,CAAC,EAAE,wCAAwC,GACjD,OAAO,CAAC,kBAAkB,CAAC,qCAAqC,CAAC,CAGnE;IAED;;;;;OAKG;IACG,eAAe,CACnB,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CAGnC;IAED;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAGhC;IAED;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAGnC;CACF"}
|