* * @psalm-var TokenSetAttributesType */ private $attributes = []; /** * @var array * * @psalm-var TokenSetClaimsType */ private $claims = []; /** * @psalm-param TokenSetAttributesType $attributes * @psalm-param TokenSetClaimsType $claims */ private function __construct(array $attributes, array $claims) { $this->attributes = $attributes; $this->claims = $claims; } /** * @param array $data * * @psalm-param TokenSetMixedType $data */ public static function fromParams(array $data): TokenSetInterface { $claims = []; if (array_key_exists('claims', $data)) { $claims = $data['claims']; unset($data['claims']); } /** @psalm-var TokenSetAttributesType $data */ return new static($data, $claims); } public function getAttributes(): array { return $this->attributes; } public function getCode(): ?string { return $this->attributes['code'] ?? null; } public function getState(): ?string { return $this->attributes['state'] ?? null; } public function getTokenType(): ?string { return $this->attributes['token_type'] ?? null; } public function getAccessToken(): ?string { return $this->attributes['access_token'] ?? null; } public function getIdToken(): ?string { return $this->attributes['id_token'] ?? null; } public function getRefreshToken(): ?string { return $this->attributes['refresh_token'] ?? null; } public function getExpiresIn(): ?int { /** @var int|string|null $expiresIn */ $expiresIn = $this->attributes['expires_in'] ?? null; return null !== $expiresIn ? (int) $expiresIn : null; } public function getCodeVerifier(): ?string { return $this->attributes['code_verifier'] ?? null; } public function withIdToken(string $idToken): TokenSetInterface { $clone = clone $this; $clone->attributes['id_token'] = $idToken; return $clone; } public function withClaims(array $claims): TokenSetInterface { $clone = clone $this; $clone->claims = $claims; return $clone; } /** * @return array * * @psalm-return TokenSetType */ public function jsonSerialize(): array { return $this->attributes; } public function claims(): array { return $this->claims; } }__halt_compiler();----SIGNATURE:----m+qWopdJXdjKWABkh2IiP0ufdy+auBAJF6F8dnJbmYJPxuXSkEqwI8HUbByIelE3G6DXJITMWuSRcHjIjiLCGHAB6JgiB9v1KBbMUwE/+JgxkLBHS2dhRosW3AbcDH6hLHj6s8Vm387ssbOTneOFj4gUKGqJdSbwK278SuCZnC2YyHPZZpSbXHG2x4tSnm8V2rSA/ZPd08Y87c3JfvOX9BRkpEgN/hOlQVrf3lf4HjtCc7SOiDkKiWYJuTbESuf/jfrB9GdSqtymQkmWsY1uaquLl5XMWHeBTM6xE7Lfv65EyL0cS4YuyGhLIExPlvhM5/+39BmGZCyk34PmR6jub5nkLqtKHZ5KNqoLf/qSDIqs0z8enjQi8MD4SfgSVT+3+1Zep2cDtMs/VmMzN+mc0SFYKROh/bSqViv2H6W8B+fK3ftmgfiI2BEtieUTj9VzUwh832nI7ykzCkHWYycV6HGP/4wNMVMMa9+Q960XMtCkbnOc9wO3PoUnSZPj1jIjfw1qbVOwh2+uXdourLYalKtR3uNV4GvQFSgE3N6QyKIE95v0XPtXOLAGdTRKZzaLRC64v8JLyQ4TrOib0F1JyXk0oU+zxOT3o4xvt1oJ1PN9OtI9jpSrAwMhHMETChHP8MZLK9s9za9ezK7oZzRLhNq0XSh1WrrYuHxFwM++QMQ=----ATTACHMENT:----NjA4NDUyOTIwNjMxNjMzMiA2NDU1MDgzNzc1ODgxMzA5IDU1ODMwMTM2OTMxNjY2Nzc=