@@ -918,49 +918,91 @@ private static function getCurlOptValueType(int $curlOpt): ?Type
918918 }
919919 }
920920
921+ $ nullableStringConstants = [
922+ 'CURLOPT_ACCEPT_ENCODING ' ,
923+ 'CURLOPT_CUSTOMREQUEST ' ,
924+ 'CURLOPT_DNS_INTERFACE ' ,
925+ 'CURLOPT_DNS_LOCAL_IP4 ' ,
926+ 'CURLOPT_DNS_LOCAL_IP6 ' ,
927+ 'CURLOPT_DOH_URL ' ,
928+ 'CURLOPT_FTP_ACCOUNT ' ,
929+ 'CURLOPT_FTPPORT ' ,
930+ 'CURLOPT_HSTS ' ,
931+ 'CURLOPT_KRBLEVEL ' ,
932+ 'CURLOPT_RANGE ' ,
933+ 'CURLOPT_RTSP_SESSION_ID ' ,
934+ 'CURLOPT_UNIX_SOCKET_PATH ' ,
935+ 'CURLOPT_XOAUTH2_BEARER ' ,
936+ ];
937+ foreach ($ nullableStringConstants as $ constName ) {
938+ if (defined ($ constName ) && constant ($ constName ) === $ curlOpt ) {
939+ return new UnionType ([
940+ new NullType (),
941+ TypeCombinator::intersect (
942+ new StringType (),
943+ new AccessoryNonEmptyStringType (),
944+ ),
945+ ]);
946+ }
947+ }
948+
921949 $ nonEmptyStringConstants = [
922950 'CURLOPT_ABSTRACT_UNIX_SOCKET ' ,
951+ 'CURLOPT_ALTSVC ' ,
952+ 'CURLOPT_AWS_SIGV4 ' ,
923953 'CURLOPT_CAINFO ' ,
924954 'CURLOPT_CAPATH ' ,
925955 'CURLOPT_COOKIE ' ,
926956 'CURLOPT_COOKIEJAR ' ,
927957 'CURLOPT_COOKIELIST ' ,
928- 'CURLOPT_CUSTOMREQUEST ' ,
929958 'CURLOPT_DEFAULT_PROTOCOL ' ,
930- 'CURLOPT_DNS_INTERFACE ' ,
931- 'CURLOPT_DNS_LOCAL_IP4 ' ,
932- 'CURLOPT_DNS_LOCAL_IP6 ' ,
959+ 'CURLOPT_DNS_SERVERS ' ,
933960 'CURLOPT_EGDSOCKET ' ,
934- 'CURLOPT_FTPPORT ' ,
961+ 'CURLOPT_FTP_ALTERNATIVE_TO_USER ' ,
935962 'CURLOPT_INTERFACE ' ,
936963 'CURLOPT_KEYPASSWD ' ,
937964 'CURLOPT_KRB4LEVEL ' ,
938965 'CURLOPT_LOGIN_OPTIONS ' ,
966+ 'CURLOPT_MAIL_AUTH ' ,
967+ 'CURLOPT_MAIL_FROM ' ,
968+ 'CURLOPT_NOPROXY ' ,
969+ 'CURLOPT_PASSWORD ' ,
939970 'CURLOPT_PINNEDPUBLICKEY ' ,
940- 'CURLOPT_PROXY_SERVICE_NAME ' ,
971+ 'CURLOPT_PROTOCOLS_STR ' ,
941972 'CURLOPT_PROXY_CAINFO ' ,
942973 'CURLOPT_PROXY_CAPATH ' ,
943974 'CURLOPT_PROXY_CRLFILE ' ,
975+ 'CURLOPT_PROXY_ISSUERCERT ' ,
944976 'CURLOPT_PROXY_KEYPASSWD ' ,
945977 'CURLOPT_PROXY_PINNEDPUBLICKEY ' ,
978+ 'CURLOPT_PROXY_SERVICE_NAME ' ,
979+ 'CURLOPT_PROXY_SSL_CIPHER_LIST ' ,
946980 'CURLOPT_PROXY_SSLCERT ' ,
947981 'CURLOPT_PROXY_SSLCERTTYPE ' ,
948- 'CURLOPT_PROXY_SSL_CIPHER_LIST ' ,
949- 'CURLOPT_PROXY_TLS13_CIPHERS ' ,
950982 'CURLOPT_PROXY_SSLKEY ' ,
951983 'CURLOPT_PROXY_SSLKEYTYPE ' ,
984+ 'CURLOPT_PROXY_TLS13_CIPHERS ' ,
952985 'CURLOPT_PROXY_TLSAUTH_PASSWORD ' ,
953986 'CURLOPT_PROXY_TLSAUTH_TYPE ' ,
954987 'CURLOPT_PROXY_TLSAUTH_USERNAME ' ,
988+ 'CURLOPT_PROXYPASSWORD ' ,
989+ 'CURLOPT_PROXYUSERNAME ' ,
955990 'CURLOPT_PROXYUSERPWD ' ,
956991 'CURLOPT_RANDOM_FILE ' ,
957- 'CURLOPT_RANGE ' ,
992+ 'CURLOPT_REDIR_PROTOCOLS_STR ' ,
958993 'CURLOPT_REFERER ' ,
994+ 'CURLOPT_REQUEST_TARGET ' ,
995+ 'CURLOPT_RTSP_STREAM_URI ' ,
996+ 'CURLOPT_RTSP_TRANSPORT ' ,
997+ 'CURLOPT_SASL_AUTHZID ' ,
959998 'CURLOPT_SERVICE_NAME ' ,
999+ 'CURLOPT_SOCKS5_GSSAPI_SERVICE ' ,
9601000 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 ' ,
961- 'CURLOPT_SSH_PUBLIC_KEYFILE ' ,
1001+ 'CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 ' ,
9621002 'CURLOPT_SSH_PRIVATE_KEYFILE ' ,
1003+ 'CURLOPT_SSH_PUBLIC_KEYFILE ' ,
9631004 'CURLOPT_SSL_CIPHER_LIST ' ,
1005+ 'CURLOPT_SSL_EC_CURVES ' ,
9641006 'CURLOPT_SSLCERT ' ,
9651007 'CURLOPT_SSLCERTPASSWD ' ,
9661008 'CURLOPT_SSLCERTTYPE ' ,
@@ -970,13 +1012,14 @@ private static function getCurlOptValueType(int $curlOpt): ?Type
9701012 'CURLOPT_SSLKEYPASSWD ' ,
9711013 'CURLOPT_SSLKEYTYPE ' ,
9721014 'CURLOPT_TLS13_CIPHERS ' ,
973- 'CURLOPT_UNIX_SOCKET_PATH ' ,
1015+ 'CURLOPT_TLSAUTH_PASSWORD ' ,
1016+ 'CURLOPT_TLSAUTH_TYPE ' ,
1017+ 'CURLOPT_TLSAUTH_USERNAME ' ,
1018+ 'CURLOPT_TRANSFER_ENCODING ' ,
9741019 'CURLOPT_URL ' ,
9751020 'CURLOPT_USERAGENT ' ,
9761021 'CURLOPT_USERNAME ' ,
977- 'CURLOPT_PASSWORD ' ,
9781022 'CURLOPT_USERPWD ' ,
979- 'CURLOPT_XOAUTH2_BEARER ' ,
9801023 ];
9811024 foreach ($ nonEmptyStringConstants as $ constName ) {
9821025 if (defined ($ constName ) && constant ($ constName ) === $ curlOpt ) {
0 commit comments