├── .dockerignore ├── .env.example ├── .gitattributes ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── .gitignore ├── CHANGELOG.md ├── Dockerfile ├── Dockerfile.heroku ├── Dockerfile.koyeb ├── LICENSE ├── Makefile ├── README.md ├── README_EN.md ├── app.json ├── app ├── Console │ ├── Base.php │ ├── Cron.php │ ├── FreeNom.php │ ├── GlobalValue.php │ ├── MigrateEnvFile.php │ └── Upgrade.php ├── Constants │ └── CommonConst.php ├── Data │ └── .gitignore ├── Exceptions │ ├── .gitkeep │ ├── LlfException.php │ └── WarningException.php └── helpers.php ├── common.yml ├── composer.json ├── composer.lock ├── config.php ├── docker-compose.yml ├── docker-entrypoint.sh ├── heroku.yml ├── heroku ├── nginx.template.conf ├── startup.sh └── web │ ├── css │ ├── mdui.css │ ├── mdui.css.map │ ├── mdui.min.css │ └── mdui.min.css.map │ ├── fonts │ └── roboto │ │ ├── LICENSE.txt │ │ ├── Roboto-Black.woff │ │ ├── Roboto-Black.woff2 │ │ ├── Roboto-BlackItalic.woff │ │ ├── Roboto-BlackItalic.woff2 │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-BoldItalic.woff │ │ ├── Roboto-BoldItalic.woff2 │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-LightItalic.woff │ │ ├── Roboto-LightItalic.woff2 │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-MediumItalic.woff │ │ ├── Roboto-MediumItalic.woff2 │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-RegularItalic.woff │ │ ├── Roboto-RegularItalic.woff2 │ │ ├── Roboto-Thin.woff │ │ ├── Roboto-Thin.woff2 │ │ ├── Roboto-ThinItalic.woff │ │ └── Roboto-ThinItalic.woff2 │ ├── icons │ └── material-icons │ │ ├── LICENSE.txt │ │ ├── MaterialIcons-Regular.ijmap │ │ ├── MaterialIcons-Regular.woff │ │ └── MaterialIcons-Regular.woff2 │ ├── images │ └── logo_bear.png │ ├── index.php │ └── js │ ├── clipboard.min.js │ ├── mdui.esm.js │ ├── mdui.esm.js.map │ ├── mdui.js │ ├── mdui.js.map │ ├── mdui.min.js │ └── mdui.min.js.map ├── index.php ├── koyeb ├── favicon.ico ├── nginx.template.conf ├── startup.sh └── web │ ├── composer.json │ ├── composer.lock │ ├── css │ ├── mdui.css │ ├── mdui.css.map │ ├── mdui.min.css │ └── mdui.min.css.map │ ├── fonts │ └── roboto │ │ ├── LICENSE.txt │ │ ├── Roboto-Black.woff │ │ ├── Roboto-Black.woff2 │ │ ├── Roboto-BlackItalic.woff │ │ ├── Roboto-BlackItalic.woff2 │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-BoldItalic.woff │ │ ├── Roboto-BoldItalic.woff2 │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-LightItalic.woff │ │ ├── Roboto-LightItalic.woff2 │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-MediumItalic.woff │ │ ├── Roboto-MediumItalic.woff2 │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-RegularItalic.woff │ │ ├── Roboto-RegularItalic.woff2 │ │ ├── Roboto-Thin.woff │ │ ├── Roboto-Thin.woff2 │ │ ├── Roboto-ThinItalic.woff │ │ └── Roboto-ThinItalic.woff2 │ ├── icons │ └── material-icons │ │ ├── LICENSE.txt │ │ ├── MaterialIcons-Regular.ijmap │ │ ├── MaterialIcons-Regular.woff │ │ └── MaterialIcons-Regular.woff2 │ ├── images │ └── logo_bear.png │ ├── index.php │ ├── js │ ├── clipboard.min.js │ ├── mdui.esm.js │ ├── mdui.esm.js.map │ ├── mdui.js │ ├── mdui.js.map │ ├── mdui.min.js │ └── mdui.min.js.map │ └── vendor │ ├── autoload.php │ ├── composer │ ├── ClassLoader.php │ ├── InstalledVersions.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── autoload_static.php │ ├── installed.json │ ├── installed.php │ └── platform_check.php │ └── sensiolabs │ └── ansi-to-html │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── SensioLabs │ └── AnsiConverter │ │ ├── AnsiToHtmlConverter.php │ │ ├── Bridge │ │ └── Twig │ │ │ └── AnsiExtension.php │ │ ├── Tests │ │ └── AnsiToHtmlConverterTest.php │ │ └── Theme │ │ ├── SolarizedTheme.php │ │ ├── SolarizedXTermTheme.php │ │ └── Theme.php │ ├── composer.json │ └── phpunit.xml.dist ├── libs ├── Argv.php ├── Base.php ├── Config.php ├── Connector │ ├── MessageGateway.php │ └── MessageServiceInterface.php ├── Env.php ├── IP.php ├── Lang.php ├── Log.php ├── Message.php ├── MessageServices │ ├── Bark.php │ ├── Mail.php │ ├── Pushplus.php │ ├── ServerChan.php │ ├── TelegramBot.php │ └── WeChat.php └── PhpColor.php ├── logs └── .gitignore ├── resources ├── lang │ ├── en.php │ └── zh.php ├── mail │ ├── en │ │ ├── no_renewal_required.html │ │ ├── notice.html │ │ └── successful_renewal.html │ ├── images │ │ ├── 163 │ │ │ ├── 163mail01.png │ │ │ ├── 163mail02.png │ │ │ └── 163mail03.png │ │ ├── github_actions │ │ │ ├── ga01.png │ │ │ ├── ga02.png │ │ │ ├── ga03.png │ │ │ ├── ga04.png │ │ │ ├── ga05.png │ │ │ ├── ga06.png │ │ │ ├── ga07.png │ │ │ └── ga08.png │ │ ├── gmail │ │ │ ├── gmail01.png │ │ │ ├── gmail01_en.png │ │ │ └── gmail02.png │ │ ├── mmsgletter_2_bg.png │ │ ├── mmsgletter_2_bg_topline.png │ │ ├── mmsgletter_2_btn.png │ │ ├── mmsgletter_chat_left.gif │ │ ├── mmsgletter_chat_right.gif │ │ ├── pay.png │ │ ├── qq │ │ │ ├── qq01.png │ │ │ ├── qq02.png │ │ │ ├── qq03.png │ │ │ └── qq04.png │ │ └── ting.jpg │ └── zh │ │ ├── no_renewal_required.html │ │ ├── notice.html │ │ └── successful_renewal.html └── screenshot │ ├── .gitkeep │ ├── Snipaste_2018-08-13_15-58-52.png │ ├── aliyun00.png │ ├── aliyun01.png │ ├── aliyun02.png │ ├── aliyun03.png │ ├── aliyun04.png │ ├── aliyun05.png │ ├── aliyun06.png │ ├── aliyun07.png │ ├── aliyun08.png │ ├── aliyun09.png │ ├── aliyun10.png │ ├── aliyun11.png │ ├── aliyun12.png │ ├── aliyun13.png │ ├── aliyun14.png │ ├── aliyun15.png │ ├── bark_01.png │ ├── bark_02.png │ ├── demo01.png │ ├── demo02.png │ ├── freenom_tg_group.png │ ├── heroku01.png │ ├── heroku02.png │ ├── heroku03.png │ ├── heroku04.png │ ├── heroku05.png │ ├── heroku06.png │ ├── hw01.jpg │ ├── hw02.jpg │ ├── hw03.jpg │ ├── hw04.png │ ├── koyeb01.png │ ├── koyeb02.png │ ├── koyeb03.png │ ├── koyeb04.png │ ├── koyeb05.png │ ├── koyeb06.png │ ├── koyeb07.png │ ├── koyeb08.png │ ├── koyeb09.png │ ├── lie.jpg │ ├── lizhi.jpg │ ├── lizhi01.jpg │ ├── logo.png │ ├── logo_bear.png │ ├── qq_scf01.png │ ├── qq_scf02.png │ ├── qq_scf03.png │ ├── qq_scf04.png │ ├── qq_scf05.png │ ├── qq_scf06.png │ ├── railway01.png │ ├── railway02.png │ ├── railway03.png │ ├── railway04.png │ ├── scf01.png │ ├── scf02.png │ ├── scf03.png │ ├── scf04.png │ ├── tg_bot_create.png │ ├── uptimerobot01.png │ ├── wechat_01.png │ ├── wechat_02.png │ ├── wechat_03.png │ ├── wechat_04.png │ ├── wechat_05.png │ ├── wechat_06.png │ └── wechat_07.png ├── run └── vendor ├── autoload.php ├── bramus ├── ansi-php │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── composer.json │ ├── composer.lock │ ├── phpunit.xml.dist │ ├── readme.md │ ├── src │ │ ├── Ansi.php │ │ ├── ControlFunctions │ │ │ ├── Backspace.php │ │ │ ├── Base.php │ │ │ ├── Bell.php │ │ │ ├── CarriageReturn.php │ │ │ ├── Enums │ │ │ │ └── C0.php │ │ │ ├── Escape.php │ │ │ ├── LineFeed.php │ │ │ └── Tab.php │ │ ├── ControlSequences │ │ │ ├── Base.php │ │ │ ├── EscapeSequences │ │ │ │ ├── Base.php │ │ │ │ ├── CUB.php │ │ │ │ ├── CUD.php │ │ │ │ ├── CUF.php │ │ │ │ ├── CUP.php │ │ │ │ ├── CUU.php │ │ │ │ ├── ED.php │ │ │ │ ├── EL.php │ │ │ │ ├── Enums │ │ │ │ │ ├── ED.php │ │ │ │ │ ├── EL.php │ │ │ │ │ ├── FinalByte.php │ │ │ │ │ └── SGR.php │ │ │ │ └── SGR.php │ │ │ └── Traits │ │ │ │ ├── HasFinalByte.php │ │ │ │ ├── HasIntermediateBytes.php │ │ │ │ └── HasParameterBytes.php │ │ ├── Traits │ │ │ ├── ControlFunctions.php │ │ │ └── EscapeSequences │ │ │ │ ├── CUB.php │ │ │ │ ├── CUD.php │ │ │ │ ├── CUF.php │ │ │ │ ├── CUP.php │ │ │ │ ├── CUU.php │ │ │ │ ├── ED.php │ │ │ │ ├── EL.php │ │ │ │ └── SGR.php │ │ └── Writers │ │ │ ├── BufferWriter.php │ │ │ ├── FlushableInterface.php │ │ │ ├── ProxyWriter.php │ │ │ ├── StreamWriter.php │ │ │ └── WriterInterface.php │ └── tests │ │ ├── AnsiTest.php │ │ ├── ControlFunctionsTest.php │ │ ├── EscapeSequenceCUBTest.php │ │ ├── EscapeSequenceCUDTest.php │ │ ├── EscapeSequenceCUFTest.php │ │ ├── EscapeSequenceCUPTest.php │ │ ├── EscapeSequenceCUUTest.php │ │ ├── EscapeSequenceEDTest.php │ │ ├── EscapeSequenceELTest.php │ │ ├── EscapeSequenceSGRTest.php │ │ ├── EscapeSequenceTest.php │ │ ├── EscapeSequenceWithParameterBytesTest.php │ │ ├── WritersTest.php │ │ └── bootstrap.php └── monolog-colored-line-formatter │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE.txt │ ├── composer.json │ ├── composer.lock │ ├── phpunit.xml.dist │ ├── readme.md │ ├── screenshots │ ├── colorscheme-default.gif │ └── colorscheme-trafficlight.gif │ ├── src │ └── Formatter │ │ ├── ColorSchemes │ │ ├── ColorSchemeInterface.php │ │ ├── ColorSchemeTrait.php │ │ ├── DefaultScheme.php │ │ └── TrafficLight.php │ │ └── ColoredLineFormatter.php │ └── tests │ ├── ColoredLineFormatterTest.php │ └── bootstrap.php ├── composer ├── ClassLoader.php ├── InstalledVersions.php ├── LICENSE ├── autoload_classmap.php ├── autoload_files.php ├── autoload_namespaces.php ├── autoload_psr4.php ├── autoload_real.php ├── autoload_static.php ├── installed.json └── installed.php ├── guzzlehttp ├── guzzle │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── UPGRADING.md │ ├── composer.json │ └── src │ │ ├── BodySummarizer.php │ │ ├── BodySummarizerInterface.php │ │ ├── Client.php │ │ ├── ClientInterface.php │ │ ├── ClientTrait.php │ │ ├── Cookie │ │ ├── CookieJar.php │ │ ├── CookieJarInterface.php │ │ ├── FileCookieJar.php │ │ ├── SessionCookieJar.php │ │ └── SetCookie.php │ │ ├── Exception │ │ ├── BadResponseException.php │ │ ├── ClientException.php │ │ ├── ConnectException.php │ │ ├── GuzzleException.php │ │ ├── InvalidArgumentException.php │ │ ├── RequestException.php │ │ ├── ServerException.php │ │ ├── TooManyRedirectsException.php │ │ └── TransferException.php │ │ ├── Handler │ │ ├── CurlFactory.php │ │ ├── CurlFactoryInterface.php │ │ ├── CurlHandler.php │ │ ├── CurlMultiHandler.php │ │ ├── EasyHandle.php │ │ ├── HeaderProcessor.php │ │ ├── MockHandler.php │ │ ├── Proxy.php │ │ └── StreamHandler.php │ │ ├── HandlerStack.php │ │ ├── MessageFormatter.php │ │ ├── MessageFormatterInterface.php │ │ ├── Middleware.php │ │ ├── Pool.php │ │ ├── PrepareBodyMiddleware.php │ │ ├── RedirectMiddleware.php │ │ ├── RequestOptions.php │ │ ├── RetryMiddleware.php │ │ ├── TransferStats.php │ │ ├── Utils.php │ │ ├── functions.php │ │ └── functions_include.php ├── promises │ ├── CHANGELOG.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AggregateException.php │ │ ├── CancellationException.php │ │ ├── Coroutine.php │ │ ├── Create.php │ │ ├── Each.php │ │ ├── EachPromise.php │ │ ├── FulfilledPromise.php │ │ ├── Is.php │ │ ├── Promise.php │ │ ├── PromiseInterface.php │ │ ├── PromisorInterface.php │ │ ├── RejectedPromise.php │ │ ├── RejectionException.php │ │ ├── TaskQueue.php │ │ ├── TaskQueueInterface.php │ │ ├── Utils.php │ │ ├── functions.php │ │ └── functions_include.php └── psr7 │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── src │ ├── AppendStream.php │ ├── BufferStream.php │ ├── CachingStream.php │ ├── DroppingStream.php │ ├── Exception │ │ └── MalformedUriException.php │ ├── FnStream.php │ ├── Header.php │ ├── HttpFactory.php │ ├── InflateStream.php │ ├── LazyOpenStream.php │ ├── LimitStream.php │ ├── Message.php │ ├── MessageTrait.php │ ├── MimeType.php │ ├── MultipartStream.php │ ├── NoSeekStream.php │ ├── PumpStream.php │ ├── Query.php │ ├── Request.php │ ├── Response.php │ ├── Rfc7230.php │ ├── ServerRequest.php │ ├── Stream.php │ ├── StreamDecoratorTrait.php │ ├── StreamWrapper.php │ ├── UploadedFile.php │ ├── Uri.php │ ├── UriNormalizer.php │ ├── UriResolver.php │ └── Utils.php │ └── vendor-bin │ ├── php-cs-fixer │ └── composer.json │ ├── phpstan │ └── composer.json │ └── psalm │ └── composer.json ├── kevinlebrun └── colors.php │ ├── LICENSE │ ├── composer.json │ └── src │ └── Colors │ ├── Color.php │ ├── Exception.php │ ├── InvalidStyleNameException.php │ ├── NoStyleFoundException.php │ └── RecursionInUserStylesException.php ├── monolog └── monolog │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── phpstan.neon.dist │ └── src │ └── Monolog │ ├── ErrorHandler.php │ ├── Formatter │ ├── ChromePHPFormatter.php │ ├── ElasticaFormatter.php │ ├── FlowdockFormatter.php │ ├── FluentdFormatter.php │ ├── FormatterInterface.php │ ├── GelfMessageFormatter.php │ ├── HtmlFormatter.php │ ├── JsonFormatter.php │ ├── LineFormatter.php │ ├── LogglyFormatter.php │ ├── LogstashFormatter.php │ ├── MongoDBFormatter.php │ ├── NormalizerFormatter.php │ ├── ScalarFormatter.php │ └── WildfireFormatter.php │ ├── Handler │ ├── AbstractHandler.php │ ├── AbstractProcessingHandler.php │ ├── AbstractSyslogHandler.php │ ├── AmqpHandler.php │ ├── BrowserConsoleHandler.php │ ├── BufferHandler.php │ ├── ChromePHPHandler.php │ ├── CouchDBHandler.php │ ├── CubeHandler.php │ ├── Curl │ │ └── Util.php │ ├── DeduplicationHandler.php │ ├── DoctrineCouchDBHandler.php │ ├── DynamoDbHandler.php │ ├── ElasticSearchHandler.php │ ├── ErrorLogHandler.php │ ├── FilterHandler.php │ ├── FingersCrossed │ │ ├── ActivationStrategyInterface.php │ │ ├── ChannelLevelActivationStrategy.php │ │ └── ErrorLevelActivationStrategy.php │ ├── FingersCrossedHandler.php │ ├── FirePHPHandler.php │ ├── FleepHookHandler.php │ ├── FlowdockHandler.php │ ├── FormattableHandlerInterface.php │ ├── FormattableHandlerTrait.php │ ├── GelfHandler.php │ ├── GroupHandler.php │ ├── HandlerInterface.php │ ├── HandlerWrapper.php │ ├── HipChatHandler.php │ ├── IFTTTHandler.php │ ├── InsightOpsHandler.php │ ├── LogEntriesHandler.php │ ├── LogglyHandler.php │ ├── MailHandler.php │ ├── MandrillHandler.php │ ├── MissingExtensionException.php │ ├── MongoDBHandler.php │ ├── NativeMailerHandler.php │ ├── NewRelicHandler.php │ ├── NullHandler.php │ ├── PHPConsoleHandler.php │ ├── ProcessableHandlerInterface.php │ ├── ProcessableHandlerTrait.php │ ├── PsrHandler.php │ ├── PushoverHandler.php │ ├── RavenHandler.php │ ├── RedisHandler.php │ ├── RollbarHandler.php │ ├── RotatingFileHandler.php │ ├── SamplingHandler.php │ ├── Slack │ │ └── SlackRecord.php │ ├── SlackHandler.php │ ├── SlackWebhookHandler.php │ ├── SlackbotHandler.php │ ├── SocketHandler.php │ ├── StreamHandler.php │ ├── SwiftMailerHandler.php │ ├── SyslogHandler.php │ ├── SyslogUdp │ │ └── UdpSocket.php │ ├── SyslogUdpHandler.php │ ├── TestHandler.php │ ├── WhatFailureGroupHandler.php │ └── ZendMonitorHandler.php │ ├── Logger.php │ ├── Processor │ ├── GitProcessor.php │ ├── IntrospectionProcessor.php │ ├── MemoryPeakUsageProcessor.php │ ├── MemoryProcessor.php │ ├── MemoryUsageProcessor.php │ ├── MercurialProcessor.php │ ├── ProcessIdProcessor.php │ ├── ProcessorInterface.php │ ├── PsrLogMessageProcessor.php │ ├── TagProcessor.php │ ├── UidProcessor.php │ └── WebProcessor.php │ ├── Registry.php │ ├── ResettableInterface.php │ ├── SignalHandler.php │ └── Utils.php ├── phpmailer └── phpmailer │ ├── COMMITMENT │ ├── LICENSE │ ├── README.md │ ├── SECURITY.md │ ├── VERSION │ ├── composer.json │ ├── get_oauth_token.php │ ├── language │ ├── phpmailer.lang-af.php │ ├── phpmailer.lang-ar.php │ ├── phpmailer.lang-az.php │ ├── phpmailer.lang-ba.php │ ├── phpmailer.lang-be.php │ ├── phpmailer.lang-bg.php │ ├── phpmailer.lang-ca.php │ ├── phpmailer.lang-ch.php │ ├── phpmailer.lang-cs.php │ ├── phpmailer.lang-da.php │ ├── phpmailer.lang-de.php │ ├── phpmailer.lang-el.php │ ├── phpmailer.lang-eo.php │ ├── phpmailer.lang-es.php │ ├── phpmailer.lang-et.php │ ├── phpmailer.lang-fa.php │ ├── phpmailer.lang-fi.php │ ├── phpmailer.lang-fo.php │ ├── phpmailer.lang-fr.php │ ├── phpmailer.lang-gl.php │ ├── phpmailer.lang-he.php │ ├── phpmailer.lang-hi.php │ ├── phpmailer.lang-hr.php │ ├── phpmailer.lang-hu.php │ ├── phpmailer.lang-hy.php │ ├── phpmailer.lang-id.php │ ├── phpmailer.lang-it.php │ ├── phpmailer.lang-ja.php │ ├── phpmailer.lang-ka.php │ ├── phpmailer.lang-ko.php │ ├── phpmailer.lang-lt.php │ ├── phpmailer.lang-lv.php │ ├── phpmailer.lang-mg.php │ ├── phpmailer.lang-ms.php │ ├── phpmailer.lang-nb.php │ ├── phpmailer.lang-nl.php │ ├── phpmailer.lang-pl.php │ ├── phpmailer.lang-pt.php │ ├── phpmailer.lang-pt_br.php │ ├── phpmailer.lang-ro.php │ ├── phpmailer.lang-ru.php │ ├── phpmailer.lang-sk.php │ ├── phpmailer.lang-sl.php │ ├── phpmailer.lang-sr.php │ ├── phpmailer.lang-sr_latn.php │ ├── phpmailer.lang-sv.php │ ├── phpmailer.lang-tl.php │ ├── phpmailer.lang-tr.php │ ├── phpmailer.lang-uk.php │ ├── phpmailer.lang-vi.php │ ├── phpmailer.lang-zh.php │ └── phpmailer.lang-zh_cn.php │ └── src │ ├── Exception.php │ ├── OAuth.php │ ├── PHPMailer.php │ ├── POP3.php │ └── SMTP.php ├── phpoption └── phpoption │ ├── LICENSE │ ├── Makefile │ ├── composer.json │ └── src │ └── PhpOption │ ├── LazyOption.php │ ├── None.php │ ├── Option.php │ └── Some.php ├── predis └── predis │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── FAQ.md │ ├── LICENSE │ ├── README.md │ ├── VERSION │ ├── autoload.php │ ├── bin │ ├── create-command-test │ ├── create-pear │ ├── create-phar │ └── create-single-file │ ├── composer.json │ ├── examples │ ├── custom_cluster_distributor.php │ ├── debuggable_connection.php │ ├── dispatcher_loop.php │ ├── executing_redis_commands.php │ ├── key_prefixing.php │ ├── lua_scripting_abstraction.php │ ├── monitor_consumer.php │ ├── pipelining_commands.php │ ├── pubsub_consumer.php │ ├── redis_collections_iterators.php │ ├── replication_complex.php │ ├── replication_sentinel.php │ ├── replication_simple.php │ ├── session_handler.php │ ├── shared.php │ └── transaction_using_cas.php │ ├── package.ini │ ├── src │ ├── Autoloader.php │ ├── Client.php │ ├── ClientContextInterface.php │ ├── ClientException.php │ ├── ClientInterface.php │ ├── Cluster │ │ ├── ClusterStrategy.php │ │ ├── Distributor │ │ │ ├── DistributorInterface.php │ │ │ ├── EmptyRingException.php │ │ │ ├── HashRing.php │ │ │ └── KetamaRing.php │ │ ├── Hash │ │ │ ├── CRC16.php │ │ │ └── HashGeneratorInterface.php │ │ ├── PredisStrategy.php │ │ ├── RedisStrategy.php │ │ └── StrategyInterface.php │ ├── Collection │ │ └── Iterator │ │ │ ├── CursorBasedIterator.php │ │ │ ├── HashKey.php │ │ │ ├── Keyspace.php │ │ │ ├── ListKey.php │ │ │ ├── SetKey.php │ │ │ └── SortedSetKey.php │ ├── Command │ │ ├── Command.php │ │ ├── CommandInterface.php │ │ ├── ConnectionAuth.php │ │ ├── ConnectionEcho.php │ │ ├── ConnectionPing.php │ │ ├── ConnectionQuit.php │ │ ├── ConnectionSelect.php │ │ ├── GeospatialGeoAdd.php │ │ ├── GeospatialGeoDist.php │ │ ├── GeospatialGeoHash.php │ │ ├── GeospatialGeoPos.php │ │ ├── GeospatialGeoRadius.php │ │ ├── GeospatialGeoRadiusByMember.php │ │ ├── HashDelete.php │ │ ├── HashExists.php │ │ ├── HashGet.php │ │ ├── HashGetAll.php │ │ ├── HashGetMultiple.php │ │ ├── HashIncrementBy.php │ │ ├── HashIncrementByFloat.php │ │ ├── HashKeys.php │ │ ├── HashLength.php │ │ ├── HashScan.php │ │ ├── HashSet.php │ │ ├── HashSetMultiple.php │ │ ├── HashSetPreserve.php │ │ ├── HashStringLength.php │ │ ├── HashValues.php │ │ ├── HyperLogLogAdd.php │ │ ├── HyperLogLogCount.php │ │ ├── HyperLogLogMerge.php │ │ ├── KeyDelete.php │ │ ├── KeyDump.php │ │ ├── KeyExists.php │ │ ├── KeyExpire.php │ │ ├── KeyExpireAt.php │ │ ├── KeyKeys.php │ │ ├── KeyMigrate.php │ │ ├── KeyMove.php │ │ ├── KeyPersist.php │ │ ├── KeyPreciseExpire.php │ │ ├── KeyPreciseExpireAt.php │ │ ├── KeyPreciseTimeToLive.php │ │ ├── KeyRandom.php │ │ ├── KeyRename.php │ │ ├── KeyRenamePreserve.php │ │ ├── KeyRestore.php │ │ ├── KeyScan.php │ │ ├── KeySort.php │ │ ├── KeyTimeToLive.php │ │ ├── KeyType.php │ │ ├── ListIndex.php │ │ ├── ListInsert.php │ │ ├── ListLength.php │ │ ├── ListPopFirst.php │ │ ├── ListPopFirstBlocking.php │ │ ├── ListPopLast.php │ │ ├── ListPopLastBlocking.php │ │ ├── ListPopLastPushHead.php │ │ ├── ListPopLastPushHeadBlocking.php │ │ ├── ListPushHead.php │ │ ├── ListPushHeadX.php │ │ ├── ListPushTail.php │ │ ├── ListPushTailX.php │ │ ├── ListRange.php │ │ ├── ListRemove.php │ │ ├── ListSet.php │ │ ├── ListTrim.php │ │ ├── PrefixableCommandInterface.php │ │ ├── Processor │ │ │ ├── KeyPrefixProcessor.php │ │ │ ├── ProcessorChain.php │ │ │ └── ProcessorInterface.php │ │ ├── PubSubPublish.php │ │ ├── PubSubPubsub.php │ │ ├── PubSubSubscribe.php │ │ ├── PubSubSubscribeByPattern.php │ │ ├── PubSubUnsubscribe.php │ │ ├── PubSubUnsubscribeByPattern.php │ │ ├── RawCommand.php │ │ ├── ScriptCommand.php │ │ ├── ServerBackgroundRewriteAOF.php │ │ ├── ServerBackgroundSave.php │ │ ├── ServerClient.php │ │ ├── ServerCommand.php │ │ ├── ServerConfig.php │ │ ├── ServerDatabaseSize.php │ │ ├── ServerEval.php │ │ ├── ServerEvalSHA.php │ │ ├── ServerFlushAll.php │ │ ├── ServerFlushDatabase.php │ │ ├── ServerInfo.php │ │ ├── ServerInfoV26x.php │ │ ├── ServerLastSave.php │ │ ├── ServerMonitor.php │ │ ├── ServerObject.php │ │ ├── ServerSave.php │ │ ├── ServerScript.php │ │ ├── ServerSentinel.php │ │ ├── ServerShutdown.php │ │ ├── ServerSlaveOf.php │ │ ├── ServerSlowlog.php │ │ ├── ServerTime.php │ │ ├── SetAdd.php │ │ ├── SetCardinality.php │ │ ├── SetDifference.php │ │ ├── SetDifferenceStore.php │ │ ├── SetIntersection.php │ │ ├── SetIntersectionStore.php │ │ ├── SetIsMember.php │ │ ├── SetMembers.php │ │ ├── SetMove.php │ │ ├── SetPop.php │ │ ├── SetRandomMember.php │ │ ├── SetRemove.php │ │ ├── SetScan.php │ │ ├── SetUnion.php │ │ ├── SetUnionStore.php │ │ ├── StringAppend.php │ │ ├── StringBitCount.php │ │ ├── StringBitField.php │ │ ├── StringBitOp.php │ │ ├── StringBitPos.php │ │ ├── StringDecrement.php │ │ ├── StringDecrementBy.php │ │ ├── StringGet.php │ │ ├── StringGetBit.php │ │ ├── StringGetMultiple.php │ │ ├── StringGetRange.php │ │ ├── StringGetSet.php │ │ ├── StringIncrement.php │ │ ├── StringIncrementBy.php │ │ ├── StringIncrementByFloat.php │ │ ├── StringPreciseSetExpire.php │ │ ├── StringSet.php │ │ ├── StringSetBit.php │ │ ├── StringSetExpire.php │ │ ├── StringSetMultiple.php │ │ ├── StringSetMultiplePreserve.php │ │ ├── StringSetPreserve.php │ │ ├── StringSetRange.php │ │ ├── StringStrlen.php │ │ ├── StringSubstr.php │ │ ├── TransactionDiscard.php │ │ ├── TransactionExec.php │ │ ├── TransactionMulti.php │ │ ├── TransactionUnwatch.php │ │ ├── TransactionWatch.php │ │ ├── ZSetAdd.php │ │ ├── ZSetCardinality.php │ │ ├── ZSetCount.php │ │ ├── ZSetIncrementBy.php │ │ ├── ZSetIntersectionStore.php │ │ ├── ZSetLexCount.php │ │ ├── ZSetRange.php │ │ ├── ZSetRangeByLex.php │ │ ├── ZSetRangeByScore.php │ │ ├── ZSetRank.php │ │ ├── ZSetRemove.php │ │ ├── ZSetRemoveRangeByLex.php │ │ ├── ZSetRemoveRangeByRank.php │ │ ├── ZSetRemoveRangeByScore.php │ │ ├── ZSetReverseRange.php │ │ ├── ZSetReverseRangeByLex.php │ │ ├── ZSetReverseRangeByScore.php │ │ ├── ZSetReverseRank.php │ │ ├── ZSetScan.php │ │ ├── ZSetScore.php │ │ └── ZSetUnionStore.php │ ├── CommunicationException.php │ ├── Configuration │ │ ├── ClusterOption.php │ │ ├── ConnectionFactoryOption.php │ │ ├── ExceptionsOption.php │ │ ├── OptionInterface.php │ │ ├── Options.php │ │ ├── OptionsInterface.php │ │ ├── PrefixOption.php │ │ ├── ProfileOption.php │ │ └── ReplicationOption.php │ ├── Connection │ │ ├── AbstractConnection.php │ │ ├── Aggregate │ │ │ ├── ClusterInterface.php │ │ │ ├── MasterSlaveReplication.php │ │ │ ├── PredisCluster.php │ │ │ ├── RedisCluster.php │ │ │ ├── ReplicationInterface.php │ │ │ └── SentinelReplication.php │ │ ├── AggregateConnectionInterface.php │ │ ├── CompositeConnectionInterface.php │ │ ├── CompositeStreamConnection.php │ │ ├── ConnectionException.php │ │ ├── ConnectionInterface.php │ │ ├── Factory.php │ │ ├── FactoryInterface.php │ │ ├── NodeConnectionInterface.php │ │ ├── Parameters.php │ │ ├── ParametersInterface.php │ │ ├── PhpiredisSocketConnection.php │ │ ├── PhpiredisStreamConnection.php │ │ ├── StreamConnection.php │ │ └── WebdisConnection.php │ ├── Monitor │ │ └── Consumer.php │ ├── NotSupportedException.php │ ├── Pipeline │ │ ├── Atomic.php │ │ ├── ConnectionErrorProof.php │ │ ├── FireAndForget.php │ │ └── Pipeline.php │ ├── PredisException.php │ ├── Profile │ │ ├── Factory.php │ │ ├── ProfileInterface.php │ │ ├── RedisProfile.php │ │ ├── RedisUnstable.php │ │ ├── RedisVersion200.php │ │ ├── RedisVersion220.php │ │ ├── RedisVersion240.php │ │ ├── RedisVersion260.php │ │ ├── RedisVersion280.php │ │ ├── RedisVersion300.php │ │ └── RedisVersion320.php │ ├── Protocol │ │ ├── ProtocolException.php │ │ ├── ProtocolProcessorInterface.php │ │ ├── RequestSerializerInterface.php │ │ ├── ResponseReaderInterface.php │ │ └── Text │ │ │ ├── CompositeProtocolProcessor.php │ │ │ ├── Handler │ │ │ ├── BulkResponse.php │ │ │ ├── ErrorResponse.php │ │ │ ├── IntegerResponse.php │ │ │ ├── MultiBulkResponse.php │ │ │ ├── ResponseHandlerInterface.php │ │ │ ├── StatusResponse.php │ │ │ └── StreamableMultiBulkResponse.php │ │ │ ├── ProtocolProcessor.php │ │ │ ├── RequestSerializer.php │ │ │ └── ResponseReader.php │ ├── PubSub │ │ ├── AbstractConsumer.php │ │ ├── Consumer.php │ │ └── DispatcherLoop.php │ ├── Replication │ │ ├── MissingMasterException.php │ │ ├── ReplicationStrategy.php │ │ └── RoleException.php │ ├── Response │ │ ├── Error.php │ │ ├── ErrorInterface.php │ │ ├── Iterator │ │ │ ├── MultiBulk.php │ │ │ ├── MultiBulkIterator.php │ │ │ └── MultiBulkTuple.php │ │ ├── ResponseInterface.php │ │ ├── ServerException.php │ │ └── Status.php │ ├── Session │ │ └── Handler.php │ └── Transaction │ │ ├── AbortedMultiExecException.php │ │ ├── MultiExec.php │ │ └── MultiExecState.php │ └── tests │ ├── README.md │ ├── apply-patches.php │ ├── phpunit_mock_objects.patch │ ├── phpunit_php7.patch │ ├── phpunit_php8.patch │ └── phpunit_php81.patch ├── psr ├── http-client │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── ClientExceptionInterface.php │ │ ├── ClientInterface.php │ │ ├── NetworkExceptionInterface.php │ │ └── RequestExceptionInterface.php ├── http-factory │ ├── .gitignore │ ├── .pullapprove.yml │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── RequestFactoryInterface.php │ │ ├── ResponseFactoryInterface.php │ │ ├── ServerRequestFactoryInterface.php │ │ ├── StreamFactoryInterface.php │ │ ├── UploadedFileFactoryInterface.php │ │ └── UriFactoryInterface.php ├── http-message │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── MessageInterface.php │ │ ├── RequestInterface.php │ │ ├── ResponseInterface.php │ │ ├── ServerRequestInterface.php │ │ ├── StreamInterface.php │ │ ├── UploadedFileInterface.php │ │ └── UriInterface.php └── log │ ├── LICENSE │ ├── Psr │ └── Log │ │ ├── AbstractLogger.php │ │ ├── InvalidArgumentException.php │ │ ├── LogLevel.php │ │ ├── LoggerAwareInterface.php │ │ ├── LoggerAwareTrait.php │ │ ├── LoggerInterface.php │ │ ├── LoggerTrait.php │ │ ├── NullLogger.php │ │ └── Test │ │ ├── DummyTest.php │ │ ├── LoggerInterfaceTest.php │ │ └── TestLogger.php │ ├── README.md │ └── composer.json ├── ralouphie └── getallheaders │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ └── getallheaders.php ├── symfony ├── deprecation-contracts │ ├── .gitignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── function.php └── polyfill-ctype │ ├── Ctype.php │ ├── LICENSE │ ├── README.md │ ├── bootstrap.php │ ├── bootstrap80.php │ └── composer.json └── vlucas └── phpdotenv ├── LICENSE ├── composer.json └── src ├── Dotenv.php ├── Environment ├── AbstractVariables.php ├── Adapter │ ├── AdapterInterface.php │ ├── ApacheAdapter.php │ ├── ArrayAdapter.php │ ├── EnvConstAdapter.php │ ├── PutenvAdapter.php │ └── ServerConstAdapter.php ├── DotenvFactory.php ├── DotenvVariables.php ├── FactoryInterface.php └── VariablesInterface.php ├── Exception ├── ExceptionInterface.php ├── InvalidFileException.php ├── InvalidPathException.php └── ValidationException.php ├── Lines.php ├── Loader.php ├── Parser.php ├── Regex ├── Error.php ├── Regex.php ├── Result.php └── Success.php └── Validator.php /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .idea 3 | .env 4 | .env.old 5 | logs 6 | README.md 7 | README_EN.md 8 | LICENSE 9 | .github 10 | app/Data/pushed_version.txt 11 | app/Data/wechat_access_token.txt 12 | resources/screenshot 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | heroku/* linguist-language=php 2 | resources/mail/* linguist-language=php 3 | resources/screenshot/* linguist-language=php -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ["https://www.paypal.me/mybsdc", "https://images.llfapp.com/pay.png"] 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: 报告问题请根据此模板填写,不按此模板行文的问题将被直接关闭。Create a report to help us improve. 4 | title: bug_report 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **描述问题** 11 | 12 | ``` 13 | A clear and concise description of what the bug is. 14 | ``` 15 | 16 | **重现步骤** 17 | 18 | ``` 19 | 步骤一 20 | ``` 21 | 22 | **截图&日志** 23 | 24 | **你做了哪些尝试** 25 | 26 | ``` 27 | 描述你发现问题后做了哪些尝试,以及尝试结果,方便我快速排除某些问题,提高沟通效率。 28 | ``` 29 | 30 | **环境信息** 31 | 32 | - 系统: *(例如 debian11 x64)* 33 | - PHP 版本: *(例如 php8.0)* 34 | - 脚本版本: *(例如 v0.4.5)* 35 | - 是否 Docker: *(例如 是)* 36 | 37 | **额外的备注** 38 | 39 | - Add any other context about the problem here. 40 | - 可额外备注比如你的运行环境是否 NAS,是否宝塔面板等信息 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 问题与帮助 Questions and support 4 | url: https://github.com/luolongfei/freenom/discussions 5 | about: 提问,求助,以及其他类型的帮助支持,请前往 Discussions。Answers to questions and other kinds of help support is provided on the discussions page. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: 新功能建议请按此模板行文。Suggest an idea for this project. 4 | title: feature_request 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | app/tmp/ 3 | app/num_limit/ 4 | .idea/ 5 | app/Data/ 6 | .env.old 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4.19-alpine3.13 2 | 3 | LABEL author="mybsdc " \ 4 | maintainer="luolongfei " 5 | 6 | ENV TZ Asia/Shanghai 7 | 8 | WORKDIR /app 9 | 10 | COPY . ./ 11 | 12 | RUN set -eux \ 13 | && apk update \ 14 | && apk add --no-cache tzdata bash 15 | 16 | # 由于部分环境不支持数据卷 VOLUME 关键字,故不再指定 17 | # VOLUME ["/conf", "/app/logs"] 18 | 19 | COPY docker-entrypoint.sh /usr/local/bin/ 20 | RUN chmod +x /usr/local/bin/docker-entrypoint.sh \ 21 | && mkdir /conf 22 | 23 | ENTRYPOINT ["docker-entrypoint.sh"] 24 | 25 | CMD ["crond", "-f"] 26 | -------------------------------------------------------------------------------- /Dockerfile.heroku: -------------------------------------------------------------------------------- 1 | FROM php:8.1.9-fpm-alpine3.16 2 | 3 | LABEL author="mybsdc " \ 4 | maintainer="luolongfei " 5 | 6 | ENV TZ Asia/Shanghai 7 | ENV IS_HEROKU 1 8 | 9 | WORKDIR /app 10 | 11 | COPY . ./ 12 | 13 | COPY ./heroku/nginx.template.conf ./ 14 | COPY ./heroku/web ./web/ 15 | 16 | RUN set -eux \ 17 | && apk update \ 18 | && apk add --no-cache tzdata bash nginx gettext 19 | 20 | COPY ./heroku/startup.sh / 21 | RUN chmod +x /startup.sh 22 | 23 | # https://devcenter.heroku.com/articles/container-registry-and-runtime#dockerfile-commands-and-runtime 24 | CMD ["/bin/bash", "-c", "/startup.sh"] 25 | -------------------------------------------------------------------------------- /Dockerfile.koyeb: -------------------------------------------------------------------------------- 1 | FROM php:8.1.9-fpm-alpine3.16 2 | 3 | LABEL author="mybsdc " \ 4 | maintainer="luolongfei " 5 | 6 | ENV TZ Asia/Shanghai 7 | ENV IS_KOYEB 1 8 | 9 | WORKDIR /app 10 | 11 | COPY . ./ 12 | 13 | COPY ./koyeb/nginx.template.conf ./ 14 | COPY ./koyeb/web ./web/ 15 | 16 | RUN set -eux \ 17 | && apk update \ 18 | && apk add --no-cache tzdata bash nginx gettext \ 19 | && mkdir -p /app/logs \ 20 | && chmod -Rf 666 /app/logs 21 | 22 | COPY ./koyeb/startup.sh / 23 | RUN chmod +x /startup.sh 24 | 25 | EXPOSE 80 443 2019 26 | 27 | # https://www.koyeb.com/docs/deploy-to-koyeb-button 28 | # https://www.koyeb.com/docs/quickstart/deploy-a-docker-application 29 | CMD ["/bin/bash", "-c", "/startup.sh"] 30 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: up down logs ps clear restart 2 | 3 | # 可以通过 make logs n=30 查看最近 30 行日志 4 | n=20 5 | 6 | up: 7 | git fetch --all 8 | git reset --hard 9 | git pull 10 | docker compose pull aws-waf-solver 11 | docker compose up --build -d 12 | docker system prune -af 13 | 14 | down: 15 | docker compose down 16 | 17 | logs: 18 | docker compose logs -tf --tail $(n) 19 | 20 | ps: 21 | docker compose ps 22 | 23 | clear: 24 | docker system prune -af 25 | docker volume prune -af 26 | 27 | restart: 28 | docker compose restart 29 | -------------------------------------------------------------------------------- /app/Console/Base.php: -------------------------------------------------------------------------------- 1 | 6 | * @date 2021/11/3 7 | * @time 16:32 8 | */ 9 | 10 | namespace Luolongfei\App\Console; 11 | 12 | class Base 13 | { 14 | /** 15 | * 获取版本号数字部分 16 | * 17 | * @param $rawVer 18 | * 19 | * @return string|null 20 | */ 21 | public function getVerNum($rawVer) 22 | { 23 | if (preg_match('/(?P\d+(?:\.\d+)*)/i', $rawVer, $m)) { 24 | return $m['ver_num']; 25 | } 26 | 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Constants/CommonConst.php: -------------------------------------------------------------------------------- 1 | 5 | * @date 2024-01-26 6 | * @time 12:22 7 | */ 8 | 9 | namespace Luolongfei\App\Constants; 10 | 11 | class CommonConst 12 | { 13 | /** 14 | * @var string aws waf token 的 key 15 | */ 16 | public const AWS_WAF_TOKEN = 'AWS_WAF_TOKEN'; 17 | } 18 | -------------------------------------------------------------------------------- /app/Data/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/app/Data/.gitignore -------------------------------------------------------------------------------- /app/Exceptions/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/app/Exceptions/.gitkeep -------------------------------------------------------------------------------- /common.yml: -------------------------------------------------------------------------------- 1 | # common config 2 | # no volumes_from, no depends_on 3 | # https://docs.docker.com/compose/extends/#extending-services 4 | services: 5 | common_config: 6 | logging: 7 | options: 8 | max-size: "20M" 9 | max-file: "3" 10 | restart: unless-stopped 11 | networks: 12 | - llf-networks 13 | env_file: 14 | - ./.env 15 | dns: 16 | - 1.1.1.1 17 | - 1.0.0.1 18 | - 9.9.9.9 19 | - 8.8.8.8 -------------------------------------------------------------------------------- /heroku.yml: -------------------------------------------------------------------------------- 1 | build: 2 | docker: 3 | web: Dockerfile.heroku 4 | -------------------------------------------------------------------------------- /heroku/nginx.template.conf: -------------------------------------------------------------------------------- 1 | worker_processes auto; 2 | 3 | error_log stderr; 4 | pid /var/run/nginx.pid; 5 | 6 | events { 7 | worker_connections 1024; 8 | } 9 | 10 | http { 11 | include /etc/nginx/mime.types; 12 | access_log /dev/stdout; 13 | server_tokens off; 14 | 15 | server { 16 | listen $PORT; 17 | 18 | root /app/web; 19 | 20 | location / { 21 | index index.php index.html index.htm; 22 | } 23 | 24 | location ~ \.php$ { 25 | try_files $uri =404; 26 | fastcgi_split_path_info ^(.+?\.php)(/.*)$; 27 | fastcgi_pass 127.0.0.1:9000; 28 | fastcgi_index index.php; 29 | include /etc/nginx/fastcgi_params; 30 | fastcgi_param SCRIPT_FILENAME /app/web/$fastcgi_script_name; 31 | fastcgi_param PATH_INFO $fastcgi_path_info; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /heroku/startup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #===================================================================# 4 | # Author: luolongfei # 5 | # Intro: https://github.com/luolongfei/freenom # 6 | #===================================================================# 7 | 8 | set -e 9 | 10 | echo '[Info] 检测到你当前在 Heroku 环境运行容器,此环境依赖外部请求触发脚本运行,请自行前往 https://uptimerobot.com 配置心跳任务' 11 | echo '[Info] 由于 Heroku 对 cron 的支持不友好,故当前脚本只能通过请求 url 触发执行' 12 | echo '[Info] 更多部署手顺请参考文档:https://github.com/luolongfei/freenom' 13 | 14 | # 替换端口变量 15 | envsubst '\$PORT' < /app/nginx.template.conf > /app/nginx.conf 16 | 17 | # 启动 php-fpm 与 nginx 18 | php-fpm -D -R; nginx -c /app/nginx.conf -g 'daemon off;' -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Black.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Black.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-BlackItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-BlackItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-BoldItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-BoldItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-LightItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-LightItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-MediumItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-MediumItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-RegularItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-RegularItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-RegularItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-RegularItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-ThinItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-ThinItalic.woff -------------------------------------------------------------------------------- /heroku/web/fonts/roboto/Roboto-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/fonts/roboto/Roboto-ThinItalic.woff2 -------------------------------------------------------------------------------- /heroku/web/icons/material-icons/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/icons/material-icons/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /heroku/web/icons/material-icons/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/icons/material-icons/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /heroku/web/images/logo_bear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/heroku/web/images/logo_bear.png -------------------------------------------------------------------------------- /koyeb/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/favicon.ico -------------------------------------------------------------------------------- /koyeb/nginx.template.conf: -------------------------------------------------------------------------------- 1 | worker_processes auto; 2 | 3 | error_log stderr; 4 | pid /var/run/nginx.pid; 5 | 6 | events { 7 | worker_connections 1024; 8 | } 9 | 10 | http { 11 | include /etc/nginx/mime.types; 12 | access_log /dev/stdout; 13 | server_tokens off; 14 | 15 | server { 16 | listen 80; 17 | 18 | root /app/web; 19 | 20 | location / { 21 | index index.php index.html index.htm; 22 | } 23 | 24 | location ~ \.php$ { 25 | try_files $uri =404; 26 | fastcgi_split_path_info ^(.+?\.php)(/.*)$; 27 | fastcgi_pass 127.0.0.1:9000; 28 | fastcgi_index index.php; 29 | include /etc/nginx/fastcgi_params; 30 | fastcgi_param SCRIPT_FILENAME /app/web/$fastcgi_script_name; 31 | fastcgi_param PATH_INFO $fastcgi_path_info; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /koyeb/web/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "sensiolabs/ansi-to-html": "^1.2" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Black.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Black.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-BlackItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-BlackItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-BoldItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-BoldItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-LightItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-LightItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-MediumItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-MediumItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-RegularItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-RegularItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-RegularItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-RegularItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-ThinItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-ThinItalic.woff -------------------------------------------------------------------------------- /koyeb/web/fonts/roboto/Roboto-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/fonts/roboto/Roboto-ThinItalic.woff2 -------------------------------------------------------------------------------- /koyeb/web/icons/material-icons/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/icons/material-icons/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /koyeb/web/icons/material-icons/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/icons/material-icons/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /koyeb/web/images/logo_bear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/koyeb/web/images/logo_bear.png -------------------------------------------------------------------------------- /koyeb/web/vendor/autoload.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /koyeb/web/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/sensiolabs/ansi-to-html/SensioLabs/AnsiConverter'), 10 | ); 11 | -------------------------------------------------------------------------------- /koyeb/web/vendor/sensiolabs/ansi-to-html/.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | /vendor/ 3 | -------------------------------------------------------------------------------- /koyeb/web/vendor/sensiolabs/ansi-to-html/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | ./SensioLabs/AnsiConverter/Tests 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /libs/Connector/MessageServiceInterface.php: -------------------------------------------------------------------------------- 1 | 5 | * @date 2021/10/20 6 | * @time 11:46 7 | */ 8 | 9 | namespace Luolongfei\Libs\Connector; 10 | 11 | /** 12 | * 所有消息类需要实现的接口 13 | */ 14 | interface MessageServiceInterface 15 | { 16 | /** 17 | * 送信 18 | * 19 | * @param string $content 20 | * @param string $subject 21 | * @param integer $type 消息类型 1:普通消息 2:域名续期结果 3:无需续期,域名状态信件 4:升级通知 22 | * @param array $data 23 | * @param string|null $recipient 24 | * @param ...$params 25 | * 26 | * @return bool 27 | */ 28 | public function send(string $content, string $subject = '', int $type = 1, array $data = [], ?string $recipient = null, ...$params); 29 | } -------------------------------------------------------------------------------- /libs/PhpColor.php: -------------------------------------------------------------------------------- 1 | 标签恢复,待原作者修正 6 | * 7 | * @author mybsdc 8 | * @date 2019/11/29 9 | * @time 10:52 10 | */ 11 | 12 | namespace Luolongfei\Libs; 13 | 14 | use Colors\Color; 15 | 16 | class PhpColor extends Base 17 | { 18 | /** 19 | * @var Color 20 | */ 21 | protected $colorInstance; 22 | 23 | public function init() 24 | { 25 | $this->colorInstance = new Color(); 26 | 27 | // Create my own style 28 | $this->colorInstance->setUserStyles([ 29 | // '自定义标签' => 'red', 30 | ]); 31 | } 32 | 33 | /** 34 | * @return Color 35 | */ 36 | public function getColorInstance() 37 | { 38 | return $this->colorInstance; 39 | } 40 | } -------------------------------------------------------------------------------- /logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/mail/images/163/163mail01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/163/163mail01.png -------------------------------------------------------------------------------- /resources/mail/images/163/163mail02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/163/163mail02.png -------------------------------------------------------------------------------- /resources/mail/images/163/163mail03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/163/163mail03.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga01.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga02.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga03.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga04.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga05.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga06.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga07.png -------------------------------------------------------------------------------- /resources/mail/images/github_actions/ga08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/github_actions/ga08.png -------------------------------------------------------------------------------- /resources/mail/images/gmail/gmail01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/gmail/gmail01.png -------------------------------------------------------------------------------- /resources/mail/images/gmail/gmail01_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/gmail/gmail01_en.png -------------------------------------------------------------------------------- /resources/mail/images/gmail/gmail02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/gmail/gmail02.png -------------------------------------------------------------------------------- /resources/mail/images/mmsgletter_2_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/mmsgletter_2_bg.png -------------------------------------------------------------------------------- /resources/mail/images/mmsgletter_2_bg_topline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/mmsgletter_2_bg_topline.png -------------------------------------------------------------------------------- /resources/mail/images/mmsgletter_2_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/mmsgletter_2_btn.png -------------------------------------------------------------------------------- /resources/mail/images/mmsgletter_chat_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/mmsgletter_chat_left.gif -------------------------------------------------------------------------------- /resources/mail/images/mmsgletter_chat_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/mmsgletter_chat_right.gif -------------------------------------------------------------------------------- /resources/mail/images/pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/pay.png -------------------------------------------------------------------------------- /resources/mail/images/qq/qq01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/qq/qq01.png -------------------------------------------------------------------------------- /resources/mail/images/qq/qq02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/qq/qq02.png -------------------------------------------------------------------------------- /resources/mail/images/qq/qq03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/qq/qq03.png -------------------------------------------------------------------------------- /resources/mail/images/qq/qq04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/qq/qq04.png -------------------------------------------------------------------------------- /resources/mail/images/ting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/mail/images/ting.jpg -------------------------------------------------------------------------------- /resources/screenshot/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/.gitkeep -------------------------------------------------------------------------------- /resources/screenshot/Snipaste_2018-08-13_15-58-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/Snipaste_2018-08-13_15-58-52.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun00.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun01.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun02.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun03.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun04.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun05.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun06.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun07.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun08.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun09.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun10.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun11.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun12.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun13.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun14.png -------------------------------------------------------------------------------- /resources/screenshot/aliyun15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/aliyun15.png -------------------------------------------------------------------------------- /resources/screenshot/bark_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/bark_01.png -------------------------------------------------------------------------------- /resources/screenshot/bark_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/bark_02.png -------------------------------------------------------------------------------- /resources/screenshot/demo01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/demo01.png -------------------------------------------------------------------------------- /resources/screenshot/demo02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/demo02.png -------------------------------------------------------------------------------- /resources/screenshot/freenom_tg_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/freenom_tg_group.png -------------------------------------------------------------------------------- /resources/screenshot/heroku01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku01.png -------------------------------------------------------------------------------- /resources/screenshot/heroku02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku02.png -------------------------------------------------------------------------------- /resources/screenshot/heroku03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku03.png -------------------------------------------------------------------------------- /resources/screenshot/heroku04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku04.png -------------------------------------------------------------------------------- /resources/screenshot/heroku05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku05.png -------------------------------------------------------------------------------- /resources/screenshot/heroku06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/heroku06.png -------------------------------------------------------------------------------- /resources/screenshot/hw01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/hw01.jpg -------------------------------------------------------------------------------- /resources/screenshot/hw02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/hw02.jpg -------------------------------------------------------------------------------- /resources/screenshot/hw03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/hw03.jpg -------------------------------------------------------------------------------- /resources/screenshot/hw04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/hw04.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb01.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb02.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb03.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb04.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb05.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb06.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb07.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb08.png -------------------------------------------------------------------------------- /resources/screenshot/koyeb09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/koyeb09.png -------------------------------------------------------------------------------- /resources/screenshot/lie.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/lie.jpg -------------------------------------------------------------------------------- /resources/screenshot/lizhi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/lizhi.jpg -------------------------------------------------------------------------------- /resources/screenshot/lizhi01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/lizhi01.jpg -------------------------------------------------------------------------------- /resources/screenshot/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/logo.png -------------------------------------------------------------------------------- /resources/screenshot/logo_bear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/logo_bear.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf01.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf02.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf03.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf04.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf05.png -------------------------------------------------------------------------------- /resources/screenshot/qq_scf06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/qq_scf06.png -------------------------------------------------------------------------------- /resources/screenshot/railway01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/railway01.png -------------------------------------------------------------------------------- /resources/screenshot/railway02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/railway02.png -------------------------------------------------------------------------------- /resources/screenshot/railway03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/railway03.png -------------------------------------------------------------------------------- /resources/screenshot/railway04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/railway04.png -------------------------------------------------------------------------------- /resources/screenshot/scf01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/scf01.png -------------------------------------------------------------------------------- /resources/screenshot/scf02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/scf02.png -------------------------------------------------------------------------------- /resources/screenshot/scf03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/scf03.png -------------------------------------------------------------------------------- /resources/screenshot/scf04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/scf04.png -------------------------------------------------------------------------------- /resources/screenshot/tg_bot_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/tg_bot_create.png -------------------------------------------------------------------------------- /resources/screenshot/uptimerobot01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/uptimerobot01.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_01.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_02.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_03.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_04.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_05.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_06.png -------------------------------------------------------------------------------- /resources/screenshot/wechat_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/resources/screenshot/wechat_07.png -------------------------------------------------------------------------------- /vendor/autoload.php: -------------------------------------------------------------------------------- 1 | =5.4.0" 14 | }, 15 | "require-dev": { 16 | "phpunit/phpunit": "~4.0" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "Bramus\\Ansi\\": "src/" 21 | } 22 | }, 23 | "scripts": { 24 | "test": "vendor/bin/phpunit" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/bramus/ansi-php/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | tests/ 7 | 8 | 9 | 10 | 11 | src/ 12 | 13 | 14 | -------------------------------------------------------------------------------- /vendor/bramus/ansi-php/src/ControlFunctions/Backspace.php: -------------------------------------------------------------------------------- 1 | =5.4.0", 14 | "bramus/ansi-php": "~3.0" 15 | }, 16 | "require-dev": { 17 | "monolog/monolog": "~1.0", 18 | "phpunit/phpunit": "~4.0" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Bramus\\Monolog\\": "src/" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/bramus/monolog-colored-line-formatter/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | tests/ 7 | 8 | 9 | 10 | 11 | src/ 12 | 13 | 14 | -------------------------------------------------------------------------------- /vendor/bramus/monolog-colored-line-formatter/screenshots/colorscheme-default.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/vendor/bramus/monolog-colored-line-formatter/screenshots/colorscheme-default.gif -------------------------------------------------------------------------------- /vendor/bramus/monolog-colored-line-formatter/screenshots/colorscheme-trafficlight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luolongfei/freenom/ff48664b390b96a49c18ebe87ac8dcdb17d95292/vendor/bramus/monolog-colored-line-formatter/screenshots/colorscheme-trafficlight.gif -------------------------------------------------------------------------------- /vendor/bramus/monolog-colored-line-formatter/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 10 | 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 11 | '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', 12 | '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', 13 | '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', 14 | 'f5df59ef04e89a509333d52505b5236d' => $baseDir . '/app/helpers.php', 15 | ); 16 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/kevinlebrun/colors.php/src'), 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/BodySummarizer.php: -------------------------------------------------------------------------------- 1 | truncateAt = $truncateAt; 17 | } 18 | 19 | /** 20 | * Returns a summarized message body. 21 | */ 22 | public function summarize(MessageInterface $message): ?string 23 | { 24 | return $this->truncateAt === null 25 | ? \GuzzleHttp\Psr7\Message::bodySummary($message) 26 | : \GuzzleHttp\Psr7\Message::bodySummary($message, $this->truncateAt); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/guzzle/src/BodySummarizerInterface.php: -------------------------------------------------------------------------------- 1 | @,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; 22 | public const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; 23 | } 24 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/vendor-bin/php-cs-fixer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "friendsofphp/php-cs-fixer": "3.2.1" 5 | }, 6 | "config": { 7 | "preferred-install": "dist" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/vendor-bin/phpstan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "phpstan/phpstan": "0.12.81", 5 | "phpstan/phpstan-deprecation-rules": "0.12.6" 6 | }, 7 | "config": { 8 | "preferred-install": "dist" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /vendor/guzzlehttp/psr7/vendor-bin/psalm/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.2.5 || ^8.0", 4 | "psalm/phar": "4.6.2" 5 | }, 6 | "config": { 7 | "preferred-install": "dist" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /vendor/kevinlebrun/colors.php/src/Colors/Exception.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Monolog\Handler\FingersCrossed; 13 | 14 | /** 15 | * Interface for activation strategies for the FingersCrossedHandler. 16 | * 17 | * @author Johannes M. Schmitt 18 | */ 19 | interface ActivationStrategyInterface 20 | { 21 | /** 22 | * Returns whether the given record activates the handler. 23 | * 24 | * @param array $record 25 | * @return bool 26 | */ 27 | public function isHandlerActivated(array $record); 28 | } 29 | -------------------------------------------------------------------------------- /vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Monolog\Handler; 13 | 14 | /** 15 | * Exception can be thrown if an extension for an handler is missing 16 | * 17 | * @author Christian Bergau 18 | */ 19 | class MissingExtensionException extends \Exception 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Monolog\Processor; 13 | 14 | /** 15 | * Adds value of getmypid into records 16 | * 17 | * @author Andreas Hörnicke 18 | */ 19 | class ProcessIdProcessor implements ProcessorInterface 20 | { 21 | /** 22 | * @param array $record 23 | * @return array 24 | */ 25 | public function __invoke(array $record) 26 | { 27 | $record['extra']['process_id'] = getmypid(); 28 | 29 | return $record; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Monolog\Processor; 13 | 14 | /** 15 | * An optional interface to allow labelling Monolog processors. 16 | * 17 | * @author Nicolas Grekas 18 | */ 19 | interface ProcessorInterface 20 | { 21 | /** 22 | * @return array The processed records 23 | */ 24 | public function __invoke(array $records); 25 | } 26 | -------------------------------------------------------------------------------- /vendor/phpmailer/phpmailer/VERSION: -------------------------------------------------------------------------------- 1 | 6.5.3 -------------------------------------------------------------------------------- /vendor/predis/predis/VERSION: -------------------------------------------------------------------------------- 1 | 1.1.10 2 | -------------------------------------------------------------------------------- /vendor/predis/predis/autoload.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | require __DIR__.'/src/Autoloader.php'; 13 | 14 | Predis\Autoloader::register(); 15 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/ClientException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis; 13 | 14 | /** 15 | * Exception class that identifies client-side errors. 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ClientException extends PredisException 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Cluster/Distributor/EmptyRingException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Cluster\Distributor; 13 | 14 | /** 15 | * Exception class that identifies empty rings. 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class EmptyRingException extends \Exception 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Cluster/Hash/HashGeneratorInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Cluster\Hash; 13 | 14 | /** 15 | * An hash generator implements the logic used to calculate the hash of a key to 16 | * distribute operations among Redis nodes. 17 | * 18 | * @author Daniele Alessandri 19 | */ 20 | interface HashGeneratorInterface 21 | { 22 | /** 23 | * Generates an hash from a string to be used for distribution. 24 | * 25 | * @param string $value String value. 26 | * 27 | * @return int 28 | */ 29 | public function hash($value); 30 | } 31 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ConnectionAuth.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/auth 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ConnectionAuth extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'AUTH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ConnectionEcho.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/echo 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ConnectionEcho extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ECHO'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ConnectionPing.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/ping 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ConnectionPing extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PING'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ConnectionQuit.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/quit 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ConnectionQuit extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'QUIT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ConnectionSelect.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/select 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ConnectionSelect extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SELECT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/GeospatialGeoDist.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/geodist 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class GeospatialGeoDist extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GEODIST'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/GeospatialGeoRadiusByMember.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/georadiusbymember 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class GeospatialGeoRadiusByMember extends GeospatialGeoRadius 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GEORADIUSBYMEMBER'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashDelete.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hdel 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashDelete extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HDEL'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashExists.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hexists 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashExists extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HEXISTS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashGet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hget 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashGet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HGET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashGetMultiple.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hmget 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashGetMultiple extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HMGET'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashIncrementBy.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hincrby 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashIncrementBy extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HINCRBY'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashIncrementByFloat.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hincrbyfloat 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashIncrementByFloat extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HINCRBYFLOAT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashKeys.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hkeys 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashKeys extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HKEYS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashLength.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hlen 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashLength extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HLEN'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashSet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hset 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashSet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HSET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashSetPreserve.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hsetnx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashSetPreserve extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HSETNX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashStringLength.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hstrlen 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashStringLength extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HSTRLEN'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HashValues.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/hvals 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HashValues extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'HVALS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/HyperLogLogAdd.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/pfadd 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class HyperLogLogAdd extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PFADD'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyDelete.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/del 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyDelete extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DEL'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeArguments($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyDump.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/dump 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyDump extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DUMP'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyExists.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/exists 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyExists extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'EXISTS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyExpire.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/expire 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyExpire extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'EXPIRE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyExpireAt.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/expireat 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyExpireAt extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'EXPIREAT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyKeys.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/keys 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyKeys extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'KEYS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyMove.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/move 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyMove extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'MOVE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyPersist.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/persist 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyPersist extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PERSIST'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyPreciseExpire.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/pexpire 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyPreciseExpire extends KeyExpire 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PEXPIRE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyPreciseExpireAt.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/pexpireat 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyPreciseExpireAt extends KeyExpireAt 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PEXPIREAT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyPreciseTimeToLive.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/pttl 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyPreciseTimeToLive extends KeyTimeToLive 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PTTL'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyRandom.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/randomkey 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyRandom extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RANDOMKEY'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | public function parseResponse($data) 33 | { 34 | return $data !== '' ? $data : null; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyRename.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/rename 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyRename extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RENAME'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyRenamePreserve.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/renamenx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyRenamePreserve extends KeyRename 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RENAMENX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyRestore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/restore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyRestore extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RESTORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyTimeToLive.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/ttl 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyTimeToLive extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'TTL'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/KeyType.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/type 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class KeyType extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'TYPE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListIndex.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lindex 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListIndex extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LINDEX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListInsert.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/linsert 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListInsert extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LINSERT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListLength.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/llen 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListLength extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LLEN'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPopFirst.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lpop 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPopFirst extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LPOP'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPopLast.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/rpop 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPopLast extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RPOP'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPopLastBlocking.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/brpop 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPopLastBlocking extends ListPopFirstBlocking 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'BRPOP'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPopLastPushHead.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/rpoplpush 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPopLastPushHead extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RPOPLPUSH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPopLastPushHeadBlocking.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/brpoplpush 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPopLastPushHeadBlocking extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'BRPOPLPUSH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPushHead.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lpush 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPushHead extends ListPushTail 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LPUSH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPushHeadX.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lpushx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPushHeadX extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LPUSHX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPushTail.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/rpush 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPushTail extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RPUSH'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListPushTailX.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/rpushx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListPushTailX extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'RPUSHX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListRange.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lrange 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListRange extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LRANGE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListRemove.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lrem 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListRemove extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LREM'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListSet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lset 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListSet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LSET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ListTrim.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/ltrim 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ListTrim extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LTRIM'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/PrefixableCommandInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * Defines a command whose keys can be prefixed. 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | interface PrefixableCommandInterface extends CommandInterface 20 | { 21 | /** 22 | * Prefixes all the keys found in the arguments of the command. 23 | * 24 | * @param string $prefix String used to prefix the keys. 25 | */ 26 | public function prefixKeys($prefix); 27 | } 28 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/Processor/ProcessorInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command\Processor; 13 | 14 | use Predis\Command\CommandInterface; 15 | 16 | /** 17 | * A command processor processes Redis commands before they are sent to Redis. 18 | * 19 | * @author Daniele Alessandri 20 | */ 21 | interface ProcessorInterface 22 | { 23 | /** 24 | * Processes the given Redis command. 25 | * 26 | * @param CommandInterface $command Command instance. 27 | */ 28 | public function process(CommandInterface $command); 29 | } 30 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/PubSubPublish.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/publish 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class PubSubPublish extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PUBLISH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/PubSubSubscribeByPattern.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/psubscribe 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class PubSubSubscribeByPattern extends PubSubSubscribe 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PSUBSCRIBE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/PubSubUnsubscribeByPattern.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/punsubscribe 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class PubSubUnsubscribeByPattern extends PubSubUnsubscribe 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PUNSUBSCRIBE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerCommand.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/command 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerCommand extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'COMMAND'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerDatabaseSize.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/dbsize 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerDatabaseSize extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DBSIZE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerFlushAll.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/flushall 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerFlushAll extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'FLUSHALL'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerFlushDatabase.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/flushdb 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerFlushDatabase extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'FLUSHDB'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerLastSave.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/lastsave 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerLastSave extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'LASTSAVE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerMonitor.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/monitor 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerMonitor extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'MONITOR'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerObject.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/object 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerObject extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'OBJECT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerSave.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/save 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerSave extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SAVE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerScript.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/script 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerScript extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SCRIPT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerShutdown.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/shutdown 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerShutdown extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SHUTDOWN'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ServerTime.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/time 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ServerTime extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'TIME'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetAdd.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sadd 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetAdd extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SADD'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetCardinality.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/scard 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetCardinality extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SCARD'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetDifference.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sdiff 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetDifference extends SetIntersection 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SDIFF'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetDifferenceStore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sdiffstore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetDifferenceStore extends SetIntersectionStore 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SDIFFSTORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetIntersection.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sinter 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetIntersection extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SINTER'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeArguments($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetIsMember.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sismember 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetIsMember extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SISMEMBER'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetMembers.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/smembers 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetMembers extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SMEMBERS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetMove.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/smove 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetMove extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SMOVE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetPop.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/spop 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetPop extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SPOP'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetRandomMember.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/srandmember 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetRandomMember extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SRANDMEMBER'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetRemove.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/srem 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetRemove extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SREM'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetUnion.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sunion 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetUnion extends SetIntersection 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SUNION'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/SetUnionStore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/sunionstore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class SetUnionStore extends SetIntersectionStore 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SUNIONSTORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringAppend.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/append 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringAppend extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'APPEND'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringBitCount.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/bitcount 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringBitCount extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'BITCOUNT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringBitField.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/bitfield 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringBitField extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'BITFIELD'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringBitPos.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/bitpos 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringBitPos extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'BITPOS'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringDecrement.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/decr 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringDecrement extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DECR'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringDecrementBy.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/decrby 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringDecrementBy extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DECRBY'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringGet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/get 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringGet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringGetBit.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/getbit 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringGetBit extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GETBIT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringGetMultiple.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/mget 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringGetMultiple extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'MGET'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeArguments($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringGetRange.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/getrange 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringGetRange extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GETRANGE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringGetSet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/getset 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringGetSet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'GETSET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringIncrement.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/incr 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringIncrement extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'INCR'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringIncrementBy.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/incrby 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringIncrementBy extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'INCRBY'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringIncrementByFloat.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/incrbyfloat 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringIncrementByFloat extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'INCRBYFLOAT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringPreciseSetExpire.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/psetex 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringPreciseSetExpire extends StringSetExpire 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'PSETEX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSet.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/set 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSet extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SET'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSetBit.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/setbit 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSetBit extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SETBIT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSetExpire.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/setex 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSetExpire extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SETEX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSetMultiplePreserve.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/msetnx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSetMultiplePreserve extends StringSetMultiple 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'MSETNX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSetPreserve.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/setnx 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSetPreserve extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SETNX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSetRange.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/setrange 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSetRange extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SETRANGE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringStrlen.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/strlen 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringStrlen extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'STRLEN'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/StringSubstr.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/substr 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class StringSubstr extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'SUBSTR'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/TransactionDiscard.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/discard 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class TransactionDiscard extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'DISCARD'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/TransactionExec.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/exec 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class TransactionExec extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'EXEC'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/TransactionMulti.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/multi 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class TransactionMulti extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'MULTI'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/TransactionUnwatch.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/unwatch 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class TransactionUnwatch extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'UNWATCH'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetCardinality.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zcard 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetCardinality extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZCARD'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetCount.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zcount 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetCount extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZCOUNT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetIncrementBy.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zincrby 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetIncrementBy extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZINCRBY'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetIntersectionStore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zinterstore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetIntersectionStore extends ZSetUnionStore 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZINTERSTORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetLexCount.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zlexcount 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetLexCount extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZLEXCOUNT'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetRank.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrank 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetRank extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZRANK'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetRemove.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrem 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetRemove extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREM'; 27 | } 28 | 29 | /** 30 | * {@inheritdoc} 31 | */ 32 | protected function filterArguments(array $arguments) 33 | { 34 | return self::normalizeVariadic($arguments); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetRemoveRangeByLex.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zremrangebylex 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetRemoveRangeByLex extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREMRANGEBYLEX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetRemoveRangeByRank.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zremrangebyrank 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetRemoveRangeByRank extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREMRANGEBYRANK'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetRemoveRangeByScore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zremrangebyscore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetRemoveRangeByScore extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREMRANGEBYSCORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetReverseRange.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrevrange 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetReverseRange extends ZSetRange 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREVRANGE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetReverseRangeByLex.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrevrangebylex 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetReverseRangeByLex extends ZSetRangeByLex 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREVRANGEBYLEX'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetReverseRangeByScore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrevrangebyscore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetReverseRangeByScore extends ZSetRangeByScore 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREVRANGEBYSCORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetReverseRank.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zrevrank 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetReverseRank extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZREVRANK'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Command/ZSetScore.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Command; 13 | 14 | /** 15 | * @link http://redis.io/commands/zscore 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | class ZSetScore extends Command 20 | { 21 | /** 22 | * {@inheritdoc} 23 | */ 24 | public function getId() 25 | { 26 | return 'ZSCORE'; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Connection/Aggregate/ClusterInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Connection\Aggregate; 13 | 14 | use Predis\Connection\AggregateConnectionInterface; 15 | 16 | /** 17 | * Defines a cluster of Redis servers formed by aggregating multiple connection 18 | * instances to single Redis nodes. 19 | * 20 | * @author Daniele Alessandri 21 | */ 22 | interface ClusterInterface extends AggregateConnectionInterface 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Connection/ConnectionException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Connection; 13 | 14 | use Predis\CommunicationException; 15 | 16 | /** 17 | * Exception class that identifies connection-related errors. 18 | * 19 | * @author Daniele Alessandri 20 | */ 21 | class ConnectionException extends CommunicationException 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/NotSupportedException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis; 13 | 14 | /** 15 | * Exception class thrown when trying to use features not supported by certain 16 | * classes or abstractions of Predis. 17 | * 18 | * @author Daniele Alessandri 19 | */ 20 | class NotSupportedException extends PredisException 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/PredisException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis; 13 | 14 | /** 15 | * Base exception class for Predis-related errors. 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | abstract class PredisException extends \Exception 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Protocol/ProtocolException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Protocol; 13 | 14 | use Predis\CommunicationException; 15 | 16 | /** 17 | * Exception used to indentify errors encountered while parsing the Redis wire 18 | * protocol. 19 | * 20 | * @author Daniele Alessandri 21 | */ 22 | class ProtocolException extends CommunicationException 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Protocol/RequestSerializerInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Protocol; 13 | 14 | use Predis\Command\CommandInterface; 15 | 16 | /** 17 | * Defines a pluggable serializer for Redis commands. 18 | * 19 | * @author Daniele Alessandri 20 | */ 21 | interface RequestSerializerInterface 22 | { 23 | /** 24 | * Serializes a Redis command. 25 | * 26 | * @param CommandInterface $command Redis command. 27 | * 28 | * @return string 29 | */ 30 | public function serialize(CommandInterface $command); 31 | } 32 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Replication/MissingMasterException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Replication; 13 | 14 | use Predis\ClientException; 15 | 16 | /** 17 | * Exception class that identifies when master is missing in a replication setup. 18 | * 19 | * @author Daniele Alessandri 20 | */ 21 | class MissingMasterException extends ClientException 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Replication/RoleException.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Replication; 13 | 14 | use Predis\CommunicationException; 15 | 16 | /** 17 | * Exception class that identifies a role mismatch when connecting to node 18 | * managed by redis-sentinel. 19 | * 20 | * @author Daniele Alessandri 21 | */ 22 | class RoleException extends CommunicationException 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /vendor/predis/predis/src/Response/ResponseInterface.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Predis\Response; 13 | 14 | /** 15 | * Represents a complex response object from Redis. 16 | * 17 | * @author Daniele Alessandri 18 | */ 19 | interface ResponseInterface 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/predis/predis/tests/apply-patches.php: -------------------------------------------------------------------------------- 1 | 'phpunit/phpunit-mock-objects', 8 | 'phpunit_php7.patch' => 'phpunit/phpunit', 9 | 'phpunit_php8.patch' => 'phpunit/phpunit', 10 | 'phpunit_php81.patch' => 'phpunit/phpunit', 11 | ); 12 | 13 | foreach ($patches as $patch => $package) { 14 | chdir(__DIR__.'/../vendor/'.$package); 15 | passthru(sprintf('patch -p1 -f < ../../../tests/%s', $patch)); 16 | } 17 | -------------------------------------------------------------------------------- /vendor/psr/http-client/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file, in reverse chronological order by release. 4 | 5 | ## 1.0.1 6 | 7 | Allow installation with PHP 8. No code changes. 8 | 9 | ## 1.0.0 10 | 11 | First stable release. No changes since 0.3.0. 12 | 13 | ## 0.3.0 14 | 15 | Added Interface suffix on exceptions 16 | 17 | ## 0.2.0 18 | 19 | All exceptions are in `Psr\Http\Client` namespace 20 | 21 | ## 0.1.0 22 | 23 | First release 24 | -------------------------------------------------------------------------------- /vendor/psr/http-client/README.md: -------------------------------------------------------------------------------- 1 | HTTP Client 2 | =========== 3 | 4 | This repository holds all the common code related to [PSR-18 (HTTP Client)][psr-url]. 5 | 6 | Note that this is not a HTTP Client implementation of its own. It is merely abstractions that describe the components of a HTTP Client. 7 | 8 | The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. 9 | 10 | [psr-url]: http://www.php-fig.org/psr/psr-18 11 | [package-url]: https://packagist.org/packages/psr/http-client 12 | [implementation-url]: https://packagist.org/providers/psr/http-client-implementation 13 | -------------------------------------------------------------------------------- /vendor/psr/http-client/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "psr/http-client", 3 | "description": "Common interface for HTTP clients", 4 | "keywords": ["psr", "psr-18", "http", "http-client"], 5 | "homepage": "https://github.com/php-fig/http-client", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "PHP-FIG", 10 | "homepage": "http://www.php-fig.org/" 11 | } 12 | ], 13 | "require": { 14 | "php": "^7.0 || ^8.0", 15 | "psr/http-message": "^1.0" 16 | }, 17 | "autoload": { 18 | "psr-4": { 19 | "Psr\\Http\\Client\\": "src/" 20 | } 21 | }, 22 | "extra": { 23 | "branch-alias": { 24 | "dev-master": "1.0.x-dev" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/psr/http-client/src/ClientExceptionInterface.php: -------------------------------------------------------------------------------- 1 | =5.3.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "Psr\\Http\\Message\\": "src/" 19 | } 20 | }, 21 | "extra": { 22 | "branch-alias": { 23 | "dev-master": "1.0.x-dev" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/psr/log/Psr/Log/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/psr/log/Psr/Log/NullLogger.php: -------------------------------------------------------------------------------- 1 | logger) { }` 11 | * blocks. 12 | */ 13 | class NullLogger extends AbstractLogger 14 | { 15 | /** 16 | * Logs with an arbitrary level. 17 | * 18 | * @param mixed $level 19 | * @param string $message 20 | * @param array $context 21 | * 22 | * @return void 23 | * 24 | * @throws \Psr\Log\InvalidArgumentException 25 | */ 26 | public function log($level, $message, array $context = array()) 27 | { 28 | // noop 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/psr/log/Psr/Log/Test/DummyTest.php: -------------------------------------------------------------------------------- 1 | =5.3.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "Psr\\Log\\": "Psr/Log/" 19 | } 20 | }, 21 | "extra": { 22 | "branch-alias": { 23 | "dev-master": "1.1.x-dev" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/ralouphie/getallheaders/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ralouphie/getallheaders", 3 | "description": "A polyfill for getallheaders.", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Ralph Khattar", 8 | "email": "ralph.khattar@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "php": ">=5.6" 13 | }, 14 | "require-dev": { 15 | "phpunit/phpunit": "^5 || ^6.5", 16 | "php-coveralls/php-coveralls": "^2.1" 17 | }, 18 | "autoload": { 19 | "files": ["src/getallheaders.php"] 20 | }, 21 | "autoload-dev": { 22 | "psr-4": { 23 | "getallheaders\\Tests\\": "tests/" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | composer.lock 3 | phpunit.xml 4 | -------------------------------------------------------------------------------- /vendor/symfony/deprecation-contracts/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | CHANGELOG 2 | ========= 3 | 4 | The changelog is maintained for all Symfony contracts at the following URL: 5 | https://github.com/symfony/contracts/blob/main/CHANGELOG.md 6 | -------------------------------------------------------------------------------- /vendor/symfony/polyfill-ctype/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Ctype 2 | ======================== 3 | 4 | This component provides `ctype_*` functions to users who run php versions without the ctype extension. 5 | 6 | More information can be found in the 7 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 8 | 9 | License 10 | ======= 11 | 12 | This library is released under the [MIT license](LICENSE). 13 | -------------------------------------------------------------------------------- /vendor/vlucas/phpdotenv/src/Environment/FactoryInterface.php: -------------------------------------------------------------------------------- 1 |