├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── changelog.md ├── config ├── config.defaults.php └── config.template.php ├── lib ├── DiViMS │ ├── Config.php │ ├── SCW.php │ ├── SSH.php │ └── ServersPool.php ├── composer.json ├── composer.lock ├── scripts │ ├── BBB-gatherStats │ ├── BBB-stopServices │ └── addToScalelite.sh └── vendor │ ├── autoload.php │ ├── bigbluebutton │ └── bigbluebutton-api-php │ │ ├── .gitignore │ │ ├── .php_cs │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codeception.yml │ │ ├── composer.json │ │ ├── phpunit.xml.dist │ │ ├── src │ │ ├── BigBlueButton.php │ │ ├── Core │ │ │ ├── ApiMethod.php │ │ │ ├── Attendee.php │ │ │ ├── GuestPolicy.php │ │ │ ├── Hook.php │ │ │ ├── Meeting.php │ │ │ ├── MeetingLayout.php │ │ │ └── Record.php │ │ ├── Exceptions │ │ │ └── BadResponseException.php │ │ ├── Parameters │ │ │ ├── BaseParameters.php │ │ │ ├── CreateMeetingParameters.php │ │ │ ├── DeleteRecordingsParameters.php │ │ │ ├── EndMeetingParameters.php │ │ │ ├── GetMeetingInfoParameters.php │ │ │ ├── GetRecordingsParameters.php │ │ │ ├── HooksCreateParameters.php │ │ │ ├── HooksDestroyParameters.php │ │ │ ├── IsMeetingRunningParameters.php │ │ │ ├── JoinMeetingParameters.php │ │ │ ├── MetaParameters.php │ │ │ ├── PublishRecordingsParameters.php │ │ │ ├── UpdateRecordingsParameters.php │ │ │ └── UserDataParameters.php │ │ ├── Responses │ │ │ ├── ApiVersionResponse.php │ │ │ ├── BaseResponse.php │ │ │ ├── CreateMeetingResponse.php │ │ │ ├── DeleteRecordingsResponse.php │ │ │ ├── EndMeetingResponse.php │ │ │ ├── GetMeetingInfoResponse.php │ │ │ ├── GetMeetingsResponse.php │ │ │ ├── GetRecordingsResponse.php │ │ │ ├── HooksCreateResponse.php │ │ │ ├── HooksDestroyResponse.php │ │ │ ├── HooksListResponse.php │ │ │ ├── IsMeetingRunningResponse.php │ │ │ ├── JoinMeetingResponse.php │ │ │ ├── PublishRecordingsResponse.php │ │ │ └── UpdateRecordingsResponse.php │ │ └── Util │ │ │ └── UrlBuilder.php │ │ └── tests │ │ ├── BigBlueButtonTest.php │ │ ├── Parameters │ │ ├── CreateMeetingParametersTest.php │ │ ├── DeleteRecordingsParametersTest.php │ │ ├── EndMeetingParametersTest.php │ │ ├── GetMeetingInfoParametersTest.php │ │ ├── GetRecordingsParametersTest.php │ │ ├── HooksCreateParametersTest.php │ │ ├── HooksDestroyParametersTest.php │ │ ├── IsMeetingRunningParametersTest.php │ │ ├── JoinMeetingParametersTest.php │ │ ├── PublishRecordingsParametersTest.php │ │ └── UpdateRecordingsParametersTest.php │ │ ├── Responses │ │ ├── ApiVersionResponseTest.php │ │ ├── CreateMeetingResponseTest.php │ │ ├── DeleteRecordingsResponseTest.php │ │ ├── EndMeetingResponseTest.php │ │ ├── GetMeetingInfoResponseTest.php │ │ ├── GetMeetingsResponseTest.php │ │ ├── GetRecordingsResponseTest.php │ │ ├── HooksCreateResponseTest.php │ │ ├── HooksDestroyResponseTest.php │ │ ├── HooksListResponseTest.php │ │ ├── IsMeetingRunningResponseTest.php │ │ ├── JoinMeetingResponseTest.php │ │ ├── PublishRecordingsResponseTest.php │ │ └── UpdateRecordingsResponseTest.php │ │ ├── TestCase.php │ │ ├── bootstrap.php │ │ └── fixtures │ │ ├── api_version.xml │ │ ├── bbb_logo.png │ │ ├── create_meeting.xml │ │ ├── delete_recordings.xml │ │ ├── end_meeting.xml │ │ ├── get_meeting_info.xml │ │ ├── get_meetings.xml │ │ ├── get_recordings.xml │ │ ├── hooks_create.xml │ │ ├── hooks_create_error.xml │ │ ├── hooks_create_existing.xml │ │ ├── hooks_create_no_hook_id.xml │ │ ├── hooks_destroy.xml │ │ ├── hooks_destroy_error.xml │ │ ├── hooks_destroy_not_found.xml │ │ ├── hooks_list.xml │ │ ├── is_meeting_running.xml │ │ ├── join_meeting.xml │ │ ├── presentation_with_embedded_file.xml │ │ ├── presentation_with_filename.xml │ │ ├── presentation_with_url.xml │ │ ├── publish_recordings.xml │ │ └── update_recordings.xml │ ├── bin │ ├── generate_vcards │ └── vobject │ ├── composer │ ├── ClassLoader.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── autoload_files.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── autoload_static.php │ └── installed.json │ ├── confirm-it-solutions │ └── php-zabbix-api │ │ ├── LICENSE │ │ └── composer.json │ ├── guzzlehttp │ ├── guzzle │ │ ├── .php_cs │ │ ├── CHANGELOG.md │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── README.md │ │ ├── UPGRADING.md │ │ ├── composer.json │ │ └── src │ │ │ ├── Client.php │ │ │ ├── ClientInterface.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 │ │ │ ├── SeekException.php │ │ │ ├── ServerException.php │ │ │ ├── TooManyRedirectsException.php │ │ │ └── TransferException.php │ │ │ ├── Handler │ │ │ ├── CurlFactory.php │ │ │ ├── CurlFactoryInterface.php │ │ │ ├── CurlHandler.php │ │ │ ├── CurlMultiHandler.php │ │ │ ├── EasyHandle.php │ │ │ ├── MockHandler.php │ │ │ ├── Proxy.php │ │ │ └── StreamHandler.php │ │ │ ├── HandlerStack.php │ │ │ ├── MessageFormatter.php │ │ │ ├── Middleware.php │ │ │ ├── Pool.php │ │ │ ├── PrepareBodyMiddleware.php │ │ │ ├── RedirectMiddleware.php │ │ │ ├── RequestOptions.php │ │ │ ├── RetryMiddleware.php │ │ │ ├── TransferStats.php │ │ │ ├── UriTemplate.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 │ │ ├── .github │ │ ├── FUNDING.yml │ │ ├── stale.yml │ │ └── workflows │ │ │ ├── ci.yml │ │ │ ├── integration.yml │ │ │ └── static.yml │ │ ├── .php_cs.dist │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ ├── AppendStream.php │ │ ├── BufferStream.php │ │ ├── CachingStream.php │ │ ├── DroppingStream.php │ │ ├── FnStream.php │ │ ├── Header.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 │ │ ├── functions.php │ │ └── functions_include.php │ ├── monolog │ └── monolog │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── UPGRADE.md │ │ ├── composer.json │ │ └── src │ │ └── Monolog │ │ ├── DateTimeImmutable.php │ │ ├── ErrorHandler.php │ │ ├── Formatter │ │ ├── ChromePHPFormatter.php │ │ ├── ElasticaFormatter.php │ │ ├── ElasticsearchFormatter.php │ │ ├── FlowdockFormatter.php │ │ ├── FluentdFormatter.php │ │ ├── FormatterInterface.php │ │ ├── GelfMessageFormatter.php │ │ ├── HtmlFormatter.php │ │ ├── JsonFormatter.php │ │ ├── LineFormatter.php │ │ ├── LogglyFormatter.php │ │ ├── LogmaticFormatter.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 │ │ ├── ElasticaHandler.php │ │ ├── ElasticsearchHandler.php │ │ ├── ErrorLogHandler.php │ │ ├── FallbackGroupHandler.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 │ │ ├── Handler.php │ │ ├── HandlerInterface.php │ │ ├── HandlerWrapper.php │ │ ├── IFTTTHandler.php │ │ ├── InsightOpsHandler.php │ │ ├── LogEntriesHandler.php │ │ ├── LogglyHandler.php │ │ ├── LogmaticHandler.php │ │ ├── MailHandler.php │ │ ├── MandrillHandler.php │ │ ├── MissingExtensionException.php │ │ ├── MongoDBHandler.php │ │ ├── NativeMailerHandler.php │ │ ├── NewRelicHandler.php │ │ ├── NoopHandler.php │ │ ├── NullHandler.php │ │ ├── OverflowHandler.php │ │ ├── PHPConsoleHandler.php │ │ ├── ProcessHandler.php │ │ ├── ProcessableHandlerInterface.php │ │ ├── ProcessableHandlerTrait.php │ │ ├── PsrHandler.php │ │ ├── PushoverHandler.php │ │ ├── RedisHandler.php │ │ ├── RedisPubSubHandler.php │ │ ├── RollbarHandler.php │ │ ├── RotatingFileHandler.php │ │ ├── SamplingHandler.php │ │ ├── SendGridHandler.php │ │ ├── Slack │ │ │ └── SlackRecord.php │ │ ├── SlackHandler.php │ │ ├── SlackWebhookHandler.php │ │ ├── SocketHandler.php │ │ ├── SqsHandler.php │ │ ├── StreamHandler.php │ │ ├── SwiftMailerHandler.php │ │ ├── SyslogHandler.php │ │ ├── SyslogUdp │ │ │ └── UdpSocket.php │ │ ├── SyslogUdpHandler.php │ │ ├── TelegramBotHandler.php │ │ ├── TestHandler.php │ │ ├── WebRequestRecognizerTrait.php │ │ ├── WhatFailureGroupHandler.php │ │ └── ZendMonitorHandler.php │ │ ├── Logger.php │ │ ├── Processor │ │ ├── GitProcessor.php │ │ ├── HostnameProcessor.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 │ │ ├── Test │ │ └── TestCase.php │ │ └── Utils.php │ ├── ovh │ └── ovh │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.rst │ │ ├── LICENSE │ │ ├── MIGRATION.rst │ │ ├── README.md │ │ ├── build.xml │ │ ├── composer.json │ │ ├── examples │ │ ├── README.md │ │ ├── create-Redirection │ │ │ ├── api_create_redirection.md │ │ │ └── apiv6.php │ │ ├── hosting-attachedDomain │ │ │ ├── api_attach_domain_to_web_hosting.md │ │ │ ├── createAttachedDomain.php │ │ │ ├── deleteAttachedDomain.php │ │ │ └── listAttachedDomains.php │ │ └── hosting-getCapabilities │ │ │ ├── api_get_hosting_capacities.md │ │ │ └── apiv6.php │ │ ├── img │ │ └── logo.png │ │ ├── phpunit.xml.dist │ │ ├── scripts │ │ ├── bump-version.sh │ │ ├── release_binary.sh │ │ └── update-copyright.sh │ │ ├── src │ │ ├── Api.php │ │ └── Exceptions │ │ │ ├── ApiException.php │ │ │ ├── InvalidParameterException.php │ │ │ └── NotLoggedException.php │ │ └── tests │ │ ├── ApiFunctionalTest.php │ │ ├── ApiTest.php │ │ └── bootstrap.php │ ├── psr │ ├── 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 │ ├── sabre │ ├── uri │ │ ├── .gitattributes │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── ci.yml │ │ ├── .gitignore │ │ ├── .php_cs.dist │ │ ├── LICENSE │ │ ├── composer.json │ │ ├── lib │ │ │ ├── InvalidUriException.php │ │ │ ├── Version.php │ │ │ └── functions.php │ │ └── phpstan.neon │ ├── vobject │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── ci.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ │ ├── bench.php │ │ │ ├── bench_freebusygenerator.php │ │ │ ├── bench_manipulatevcard.php │ │ │ ├── fetch_windows_zones.php │ │ │ ├── generate_vcards │ │ │ ├── generateicalendardata.php │ │ │ ├── mergeduplicates.php │ │ │ ├── rrulebench.php │ │ │ └── vobject │ │ ├── composer.json │ │ ├── lib │ │ │ ├── BirthdayCalendarGenerator.php │ │ │ ├── Cli.php │ │ │ ├── Component.php │ │ │ ├── Component │ │ │ │ ├── Available.php │ │ │ │ ├── VAlarm.php │ │ │ │ ├── VAvailability.php │ │ │ │ ├── VCalendar.php │ │ │ │ ├── VCard.php │ │ │ │ ├── VEvent.php │ │ │ │ ├── VFreeBusy.php │ │ │ │ ├── VJournal.php │ │ │ │ ├── VTimeZone.php │ │ │ │ └── VTodo.php │ │ │ ├── DateTimeParser.php │ │ │ ├── Document.php │ │ │ ├── ElementList.php │ │ │ ├── EofException.php │ │ │ ├── FreeBusyData.php │ │ │ ├── FreeBusyGenerator.php │ │ │ ├── ITip │ │ │ │ ├── Broker.php │ │ │ │ ├── ITipException.php │ │ │ │ ├── Message.php │ │ │ │ └── SameOrganizerForAllComponentsException.php │ │ │ ├── InvalidDataException.php │ │ │ ├── Node.php │ │ │ ├── PHPUnitAssertions.php │ │ │ ├── Parameter.php │ │ │ ├── ParseException.php │ │ │ ├── Parser │ │ │ │ ├── Json.php │ │ │ │ ├── MimeDir.php │ │ │ │ ├── Parser.php │ │ │ │ ├── XML.php │ │ │ │ └── XML │ │ │ │ │ └── Element │ │ │ │ │ └── KeyValue.php │ │ │ ├── Property.php │ │ │ ├── Property │ │ │ │ ├── Binary.php │ │ │ │ ├── Boolean.php │ │ │ │ ├── FlatText.php │ │ │ │ ├── FloatValue.php │ │ │ │ ├── ICalendar │ │ │ │ │ ├── CalAddress.php │ │ │ │ │ ├── Date.php │ │ │ │ │ ├── DateTime.php │ │ │ │ │ ├── Duration.php │ │ │ │ │ ├── Period.php │ │ │ │ │ └── Recur.php │ │ │ │ ├── IntegerValue.php │ │ │ │ ├── Text.php │ │ │ │ ├── Time.php │ │ │ │ ├── Unknown.php │ │ │ │ ├── Uri.php │ │ │ │ ├── UtcOffset.php │ │ │ │ └── VCard │ │ │ │ │ ├── Date.php │ │ │ │ │ ├── DateAndOrTime.php │ │ │ │ │ ├── DateTime.php │ │ │ │ │ ├── LanguageTag.php │ │ │ │ │ ├── PhoneNumber.php │ │ │ │ │ └── TimeStamp.php │ │ │ ├── Reader.php │ │ │ ├── Recur │ │ │ │ ├── EventIterator.php │ │ │ │ ├── MaxInstancesExceededException.php │ │ │ │ ├── NoInstancesException.php │ │ │ │ ├── RDateIterator.php │ │ │ │ └── RRuleIterator.php │ │ │ ├── Settings.php │ │ │ ├── Splitter │ │ │ │ ├── ICalendar.php │ │ │ │ ├── SplitterInterface.php │ │ │ │ └── VCard.php │ │ │ ├── StringUtil.php │ │ │ ├── TimeZoneUtil.php │ │ │ ├── TimezoneGuesser │ │ │ │ ├── FindFromOffset.php │ │ │ │ ├── FindFromTimezoneIdentifier.php │ │ │ │ ├── FindFromTimezoneMap.php │ │ │ │ ├── GuessFromLicEntry.php │ │ │ │ ├── GuessFromMsTzId.php │ │ │ │ ├── TimezoneFinder.php │ │ │ │ └── TimezoneGuesser.php │ │ │ ├── UUIDUtil.php │ │ │ ├── VCardConverter.php │ │ │ ├── Version.php │ │ │ ├── Writer.php │ │ │ └── timezonedata │ │ │ │ ├── exchangezones.php │ │ │ │ ├── lotuszones.php │ │ │ │ ├── php-bc.php │ │ │ │ ├── php-workaround.php │ │ │ │ └── windowszones.php │ │ └── resources │ │ │ └── schema │ │ │ ├── xcal.rng │ │ │ └── xcard.rng │ └── xml │ │ ├── .github │ │ └── workflows │ │ │ └── ci.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ └── .empty │ │ ├── composer.json │ │ └── lib │ │ ├── ContextStackTrait.php │ │ ├── Deserializer │ │ └── functions.php │ │ ├── Element.php │ │ ├── Element │ │ ├── Base.php │ │ ├── Cdata.php │ │ ├── Elements.php │ │ ├── KeyValue.php │ │ ├── Uri.php │ │ └── XmlFragment.php │ │ ├── LibXMLException.php │ │ ├── ParseException.php │ │ ├── Reader.php │ │ ├── Serializer │ │ └── functions.php │ │ ├── Service.php │ │ ├── Version.php │ │ ├── Writer.php │ │ ├── XmlDeserializable.php │ │ └── XmlSerializable.php │ └── symfony │ ├── polyfill-intl-idn │ ├── Idn.php │ ├── Info.php │ ├── LICENSE │ ├── README.md │ ├── Resources │ │ └── unidata │ │ │ ├── DisallowedRanges.php │ │ │ ├── Regex.php │ │ │ ├── deviation.php │ │ │ ├── disallowed.php │ │ │ ├── disallowed_STD3_mapped.php │ │ │ ├── disallowed_STD3_valid.php │ │ │ ├── ignored.php │ │ │ ├── mapped.php │ │ │ └── virama.php │ ├── bootstrap.php │ ├── bootstrap80.php │ └── composer.json │ ├── polyfill-intl-normalizer │ ├── LICENSE │ ├── Normalizer.php │ ├── README.md │ ├── Resources │ │ ├── stubs │ │ │ └── Normalizer.php │ │ └── unidata │ │ │ ├── canonicalComposition.php │ │ │ ├── canonicalDecomposition.php │ │ │ ├── combiningClass.php │ │ │ └── compatibilityDecomposition.php │ ├── bootstrap.php │ ├── bootstrap80.php │ └── composer.json │ └── polyfill-php72 │ ├── LICENSE │ ├── Php72.php │ ├── README.md │ ├── bootstrap.php │ └── composer.json ├── log └── .gitkeep ├── msmtprc.template └── run ├── init.php └── main.default.php /.gitignore: -------------------------------------------------------------------------------- 1 | Divim-S.code-workspace 2 | tmp/ 3 | cache/ 4 | /log/* 5 | /run/main.php 6 | /msmtprc 7 | /config/project/ 8 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | #docker build --tag php:parallel --build-arg PUID=$(id -u) --build-arg PGID=$(id -g) --build-arg USER=$(id -un) . 2 | FROM php:7.4-zts 3 | 4 | RUN apt-get update \ 5 | && apt-get -y install openssh-client git 6 | 7 | #RUN git clone https://github.com/krakjoe/pthreads -b master /tmp/pthreads \ 8 | # && docker-php-ext-configure /tmp/pthreads --enable-pthreads \ 9 | # && docker-php-ext-install /tmp/pthreads 10 | 11 | #RUN git clone https://github.com/krakjoe/parallel -b release /tmp/parallel \ 12 | # && docker-php-ext-configure /tmp/parallel --enable-parallel \ 13 | # && docker-php-ext-install /tmp/parallel 14 | 15 | #RUN pecl install pthreads-3.1.6 \ 16 | # && docker-php-ext-enable pthreads 17 | 18 | RUN pecl install parallel-1.1.4 \ 19 | && docker-php-ext-enable parallel 20 | 21 | RUN pecl install stats-2.0.3 \ 22 | && docker-php-ext-enable stats 23 | 24 | #RUN pecl install psr-1.2.0 \ 25 | # && docker-php-ext-enable psr 26 | 27 | #RUN apt-get -y install libssh2-1-dev \ 28 | # && pecl install ssh2-1.2 \ 29 | # && docker-php-ext-enable ssh2 30 | 31 | #RUN docker-php-ext-install pcntl 32 | 33 | # Mail configuration 34 | # install 35 | RUN apt-get update && apt-get install -y msmtp mailutils 36 | # config 37 | COPY msmtprc /etc/msmtprc 38 | RUN chmod 644 /etc/msmtprc 39 | # Set up php sendmail config 40 | RUN echo "sendmail_path=/usr/bin/msmtp -t" >> /usr/local/etc/php/conf.d/sendmail.ini 41 | 42 | # accept the arguments from build-args 43 | ARG PUID 44 | ARG PGID 45 | ARG USER 46 | 47 | # Add the group (if not existing) 48 | # then add the user to the numbered group 49 | RUN groupadd -g ${PGID} ${USER} || true && \ 50 | useradd --create-home --uid ${PUID} --gid `getent group ${PGID} | cut -d: -f1` ${USER} || true 51 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [3.6] - 2025-03-20 4 | ## Add 5 | - BBB version retrieved in BBB polling. 6 | - Scalelite tag retrieved in Scalelite polling. 7 | - Compatibility with Scalelite 1.6.3. Loses compatibility with Scalelite 1.5.X. 8 | 9 | ## [3.5] - 2025-02 10 | ### Remove 11 | - Config parameter deprecated: 'clone_enable_routed_ip' 12 | 13 | ## [3.4] - 2023-10-31 14 | ## Add 15 | - Automatic recycling of bare metal servers 16 | 17 | ## [3.3] - 2023-09-26 18 | ## Add 19 | - Automatic recycling of servers whose uptime is above limit 20 | 21 | ## [3.2] - 2021-12-13 22 | ## Add 23 | - Check transfered recording sizes 24 | 25 | ## [1.0.1] - 2020-08-21 26 | ### Add 27 | - This changelog file 28 | - SCW library as a Class 29 | -------------------------------------------------------------------------------- /lib/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "ovh/ovh": "^2.0", 4 | "sabre/vobject": "~4.1", 5 | "monolog/monolog": "^2.1", 6 | "bigbluebutton/bigbluebutton-api-php": "^2.1", 7 | "confirm-it-solutions/php-zabbix-api": "^2.4" 8 | } 9 | } -------------------------------------------------------------------------------- /lib/scripts/BBB-stopServices: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bbb-conf --stop 4 | service bbb-exporter stop -------------------------------------------------------------------------------- /lib/scripts/addToScalelite.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ##BEGIN-INSERT 4 | NEW_DOMAIN= 5 | SECRET= 6 | ENABLE_IN_SCALELITE= 7 | ##END-INSERT 8 | 9 | 10 | [ -z ${NEW_DOMAIN+x} ] && echo "New domain is not set" && exit 1; 11 | 12 | echo "Add new BBB VM to pool" 13 | COMMAND=( docker exec scalelite-api ./bin/rake servers:add[https://${NEW_DOMAIN}/bigbluebutton/api,${SECRET},1] ) 14 | RESULT=$("${COMMAND[@]}") 15 | echo "$RESULT" 16 | 17 | if [ $ENABLE_IN_SCALELITE = "true" ]; then 18 | echo "Enable new VM" 19 | id=$(echo "$RESULT" | grep "^id" | awk -F ":" '{print $2}' | tr -d ' ') 20 | COMMAND=( docker exec scalelite-api ./bin/rake servers:enable[$id] ) 21 | RESULT=$("${COMMAND[@]}") 22 | echo "$RESULT" 23 | fi 24 | 25 | #COMMAND=( docker exec scalelite-api ./bin/rake servers ) 26 | #RESULT=$("${COMMAND[@]}") 27 | #echo "$RESULT" 28 | -------------------------------------------------------------------------------- /lib/vendor/autoload.php: -------------------------------------------------------------------------------- 1 | =7.1", 27 | "ext-curl": "*", 28 | "ext-simplexml": "*", 29 | "ext-mbstring": "*" 30 | }, 31 | "require-dev": { 32 | "ext-mbstring": "*", 33 | "composer/composer": "^1.10.24", 34 | "phpunit/phpunit": "^8.5", 35 | "fakerphp/faker": "^1.17", 36 | "friendsofphp/php-cs-fixer": "^2.19", 37 | "squizlabs/php_codesniffer": "^3.6", 38 | "php-coveralls/php-coveralls": "^2.5.2" 39 | }, 40 | "options": { 41 | "symlink": false 42 | }, 43 | "autoload": { 44 | "psr-4": { 45 | "BigBlueButton\\": "src" 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | ./src/ 27 | 28 | 29 | 30 | 31 | 32 | ./tests/ 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Core/ApiMethod.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Core; 20 | 21 | abstract class ApiMethod 22 | { 23 | const CREATE = 'create'; 24 | const JOIN = 'join'; 25 | const ENTER = 'enter'; 26 | const END = 'end'; 27 | const IS_MEETING_RUNNING = 'isMeetingRunning'; 28 | const GET_MEETING_INFO = 'getMeetingInfo'; 29 | const GET_MEETINGS = 'getMeetings'; 30 | const SIGN_OUT = 'signOut'; 31 | const GET_RECORDINGS = 'getRecordings'; 32 | const PUBLISH_RECORDINGS = 'publishRecordings'; 33 | const DELETE_RECORDINGS = 'deleteRecordings'; 34 | const UPDATE_RECORDINGS = 'updateRecordings'; 35 | const HOOKS_CREATE = 'hooks/create'; 36 | const HOOKS_LIST = 'hooks/list'; 37 | const HOOKS_DESTROY = 'hooks/destroy'; 38 | } 39 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Core/GuestPolicy.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Core; 20 | 21 | class GuestPolicy 22 | { 23 | public const ALWAYS_ACCEPT = 'ALWAYS_ACCEPT'; 24 | public const ALWAYS_DENY = 'ALWAYS_DENY'; 25 | public const ASK_MODERATOR = 'ASK_MODERATOR'; 26 | } 27 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Core/MeetingLayout.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Core; 20 | 21 | class MeetingLayout 22 | { 23 | public const CUSTOM_LAYOUT = 'CUSTOM_LAYOUT'; 24 | public const SMART_LAYOUT = 'SMART_LAYOUT'; 25 | public const PRESENTATION_FOCUS = 'PRESENTATION_FOCUS'; 26 | public const VIDEO_FOCUS = 'VIDEO_FOCUS'; 27 | } 28 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Exceptions/BadResponseException.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | /** 22 | * Class BaseParameters. 23 | */ 24 | abstract class BaseParameters 25 | { 26 | /** 27 | * @param $array 28 | * 29 | * @return string 30 | */ 31 | protected function buildHTTPQuery($array) 32 | { 33 | return http_build_query(array_filter($array)); 34 | } 35 | 36 | /** 37 | * @return string 38 | */ 39 | abstract public function getHTTPQuery(); 40 | } 41 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/ApiVersionResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | 20 | namespace BigBlueButton\Responses; 21 | 22 | /** 23 | * Class ApiVersionResponse 24 | * @package BigBlueButton\Responses 25 | */ 26 | class ApiVersionResponse extends BaseResponse 27 | { 28 | /** 29 | * @return string 30 | */ 31 | public function getVersion() 32 | { 33 | return $this->rawXml->version->__toString(); 34 | } 35 | 36 | /** 37 | * @return string 38 | */ 39 | public function getApiVersion() 40 | { 41 | return $this->rawXml->apiVersion->__toString(); 42 | } 43 | 44 | /** 45 | * @return string 46 | */ 47 | public function getBbbVersion() 48 | { 49 | return $this->rawXml->bbbVersion->__toString(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/DeleteRecordingsResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class DeleteRecordingsResponse 23 | * @package BigBlueButton\Parameters 24 | */ 25 | class DeleteRecordingsResponse extends BaseResponse 26 | { 27 | /** 28 | * @return bool 29 | */ 30 | public function isDeleted() 31 | { 32 | return $this->rawXml->deleted->__toString() == 'true'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/EndMeetingResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class EndMeetingResponse 23 | * @package BigBlueButton\Responses 24 | */ 25 | class EndMeetingResponse extends BaseResponse 26 | { 27 | /** 28 | * @return string 29 | */ 30 | public function getMessageKey() 31 | { 32 | return $this->rawXml->messageKey->__toString(); 33 | } 34 | 35 | /** 36 | * @return string 37 | */ 38 | public function getMessage() 39 | { 40 | return $this->rawXml->message->__toString(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/GetMeetingInfoResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | use BigBlueButton\Core\Meeting; 22 | 23 | /** 24 | * Class GetMeetingInfoResponse 25 | * @package BigBlueButton\Responses 26 | */ 27 | class GetMeetingInfoResponse extends BaseResponse 28 | { 29 | /** 30 | * @var Meeting 31 | */ 32 | private $meeting; 33 | 34 | /** 35 | * @return Meeting 36 | */ 37 | public function getMeeting() 38 | { 39 | if ($this->meeting === null) { 40 | $this->meeting = new Meeting($this->rawXml); 41 | } 42 | 43 | return $this->meeting; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/GetMeetingsResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | use BigBlueButton\Core\Meeting; 22 | 23 | /** 24 | * Class GetMeetingsResponse 25 | * @package BigBlueButton\Responses 26 | */ 27 | class GetMeetingsResponse extends BaseResponse 28 | { 29 | /** 30 | * @var Meeting[] 31 | */ 32 | private $meetings; 33 | 34 | /** 35 | * @return Meeting[] 36 | */ 37 | public function getMeetings() 38 | { 39 | if ($this->meetings === null) { 40 | $this->meetings = []; 41 | foreach ($this->rawXml->meetings->children() as $meetingXml) { 42 | $this->meetings[] = new Meeting($meetingXml); 43 | } 44 | } 45 | 46 | return $this->meetings; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/GetRecordingsResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | use BigBlueButton\Core\Record; 22 | 23 | /** 24 | * Class GetRecordingsResponse 25 | * @package BigBlueButton\Responses 26 | */ 27 | class GetRecordingsResponse extends BaseResponse 28 | { 29 | /** 30 | * @var Record[] 31 | */ 32 | private $records; 33 | 34 | /** 35 | * @return Record[] 36 | */ 37 | public function getRecords() 38 | { 39 | if ($this->records === null) { 40 | $this->records = []; 41 | foreach ($this->rawXml->recordings->children() as $recordXml) { 42 | $this->records[] = new Record($recordXml); 43 | } 44 | } 45 | 46 | return $this->records; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/HooksCreateResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class GetRecordingsResponse 23 | * @package BigBlueButton\Responses 24 | */ 25 | class HooksCreateResponse extends BaseResponse 26 | { 27 | /** 28 | * @return int 29 | */ 30 | public function getHookId() 31 | { 32 | return (int) $this->rawXml->hookID->__toString(); 33 | } 34 | 35 | /** 36 | * @return bool 37 | */ 38 | public function isPermanentHook() 39 | { 40 | return $this->rawXml->permanentHook->__toString() === 'true'; 41 | } 42 | 43 | /** 44 | * @return bool 45 | */ 46 | public function hasRawData() 47 | { 48 | return $this->rawXml->rawData->__toString() === 'true'; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/HooksDestroyResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class GetRecordingsResponse 23 | * @package BigBlueButton\Responses 24 | */ 25 | class HooksDestroyResponse extends BaseResponse 26 | { 27 | /** 28 | * @return bool 29 | */ 30 | public function removed() 31 | { 32 | return $this->rawXml->removed->__toString() === 'true'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/HooksListResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | use BigBlueButton\Core\Hook; 22 | 23 | /** 24 | * Class GetRecordingsResponse 25 | * @package BigBlueButton\Responses 26 | */ 27 | class HooksListResponse extends BaseResponse 28 | { 29 | /** 30 | * @var Hook[] 31 | */ 32 | private $hooks; 33 | 34 | /** 35 | * @return Hook[] 36 | */ 37 | public function getHooks() 38 | { 39 | if ($this->hooks === null) { 40 | $this->hooks = []; 41 | foreach ($this->rawXml->hooks->children() as $hookXml) { 42 | $this->hooks[] = new Hook($hookXml); 43 | } 44 | } 45 | 46 | return $this->hooks; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/IsMeetingRunningResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class IsMeetingRunningResponse 23 | * @package BigBlueButton\Parameters 24 | */ 25 | class IsMeetingRunningResponse extends BaseResponse 26 | { 27 | /** 28 | * @return bool 29 | */ 30 | public function isRunning() 31 | { 32 | return $this->rawXml->running->__toString() === 'true'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/PublishRecordingsResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class PublishRecordingsResponse 23 | * @package BigBlueButton\Parameters 24 | */ 25 | class PublishRecordingsResponse extends BaseResponse 26 | { 27 | /** 28 | * @return bool 29 | */ 30 | public function isPublished() 31 | { 32 | return $this->rawXml->published->__toString() === 'true'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/src/Responses/UpdateRecordingsResponse.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Responses; 20 | 21 | /** 22 | * Class UpdateRecordingsResponse 23 | * @package BigBlueButton\Parameters 24 | */ 25 | class UpdateRecordingsResponse extends BaseResponse 26 | { 27 | /** 28 | * @return bool 29 | */ 30 | public function isUpdated() 31 | { 32 | return $this->rawXml->updated->__toString() === 'true'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/Parameters/DeleteRecordingsParametersTest.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | use BigBlueButton\TestCase; 22 | 23 | class DeleteRecordingsParametersTest extends TestCase 24 | { 25 | public function testDeleteRecordingParameter() 26 | { 27 | $recordingId = $this->faker->uuid; 28 | $deleteRecording = new DeleteRecordingsParameters($recordingId); 29 | 30 | $this->assertEquals($recordingId, $deleteRecording->getRecordingId()); 31 | 32 | // Test setters that are ignored by the constructor 33 | $deleteRecording->setRecordingId($recordingId = $this->faker->uuid); 34 | $this->assertEquals($recordingId, $deleteRecording->getRecordingId()); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/Parameters/HooksCreateParametersTest.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | use BigBlueButton\TestCase; 22 | 23 | class HooksCreateParametersTest extends TestCase 24 | { 25 | public function testHooksCreateParameters() 26 | { 27 | $hooksCreateParameters = new HooksCreateParameters($callBackUrl = $this->faker->url); 28 | 29 | $this->assertEquals($callBackUrl, $hooksCreateParameters->getCallbackUrl()); 30 | 31 | // Test setters that are ignored by the constructor 32 | $hooksCreateParameters->setMeetingId($meetingId = $this->faker->uuid); 33 | $hooksCreateParameters->setGetRaw($getRaw = $this->faker->boolean); 34 | $this->assertEquals($meetingId, $hooksCreateParameters->getMeetingId()); 35 | $this->assertEquals($getRaw, $hooksCreateParameters->getRaw()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/Parameters/HooksDestroyParametersTest.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | use BigBlueButton\TestCase; 22 | 23 | class HooksDestroyParametersTest extends TestCase 24 | { 25 | public function testHooksDestroyParameters() 26 | { 27 | $hooksCreateParameters = new HooksDestroyParameters($hookId = $this->faker->numberBetween(1, 50)); 28 | 29 | $this->assertEquals($hookId, $hooksCreateParameters->getHookId()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/Parameters/IsMeetingRunningParametersTest.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | use BigBlueButton\TestCase; 22 | 23 | /** 24 | * Class IsMeetingRunningParametersTest 25 | * @package BigBlueButton\Parameters 26 | */ 27 | class IsMeetingRunningParametersTest extends TestCase 28 | { 29 | public function testIsMeetingRunningParameters() 30 | { 31 | $meetingId = $this->faker->uuid; 32 | $isRunningParams = new IsMeetingRunningParameters($meetingId); 33 | 34 | $this->assertEquals($meetingId, $isRunningParams->getMeetingId()); 35 | 36 | // Test setters that are ignored by the constructor 37 | $isRunningParams->setMeetingId($newId = $this->faker->uuid); 38 | $this->assertEquals($newId, $isRunningParams->getMeetingId()); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/Parameters/UpdateRecordingsParametersTest.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | namespace BigBlueButton\Parameters; 20 | 21 | use BigBlueButton\TestCase; 22 | 23 | class UpdateRecordingsParametersTest extends TestCase 24 | { 25 | public function testUpdateRecordingsParameters() 26 | { 27 | $params = $this->generateUpdateRecordingsParams(); 28 | $updateRecordingsParams = $this->getUpdateRecordingsParamsMock($params); 29 | 30 | $this->assertEquals($params['recordingId'], $updateRecordingsParams->getRecordingId()); 31 | $this->assertEquals($params['meta_presenter'], $updateRecordingsParams->getMeta('presenter')); 32 | 33 | // Test setters that are ignored by the constructor 34 | $updateRecordingsParams->setRecordingId($newId = $this->faker->uuid); 35 | $this->assertEquals($newId, $updateRecordingsParams->getRecordingId()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | . 18 | */ 19 | error_reporting(-1); 20 | date_default_timezone_set('UTC'); 21 | // Include the composer autoloader 22 | $loader = require_once __DIR__.'/../vendor/autoload.php'; 23 | // Include custom test class 24 | require_once __DIR__.'/TestCase.php'; 25 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/api_version.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | 2.0 4 | 2.0 5 | 2.4-rc-7 6 | 7 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/bbb_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arawa/divims/dec24208d6f1afb1b2ab2ac84bbd0b24728e9f20/lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/bbb_logo.png -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/create_meeting.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | random-1665177 4 | 1a6938c707cdf5d052958672d66c219c30690c47-1524212045514 5 | bbb-none 6 | tK6J5cJv3hMLNx5IBePa 7 | 34Heu0uiZYqCZXX9C4m2 8 | 1453283819419 9 | 76286 10 | 613-555-1234 11 | Wed Jan 20 04:56:59 EST 2016 12 | false 13 | 20 14 | false 15 | duplicateWarning 16 | This conference was already in existence and may currently be in progress. 17 | 18 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/delete_recordings.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | true 4 | 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/end_meeting.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | sentEndMeetingRequest 4 | A request to end the meeting was sent. Please wait a few seconds, and then use the getMeetingInfo or isMeetingRunning API calls to verify that it was ended. 5 | 6 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_create.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | 1 4 | false 5 | false 6 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_create_error.xml: -------------------------------------------------------------------------------- 1 | 2 | FAILED 3 | createHookError 4 | An error happened while creating your hook. Check the logs. 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_create_existing.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | 1 4 | duplicateWarning 5 | There is already a hook for this callback URL. 6 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_create_no_hook_id.xml: -------------------------------------------------------------------------------- 1 | 2 | FAILED 3 | missingParamHookID 4 | You must specify a hookID in the parameters. 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_destroy.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | true 4 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_destroy_error.xml: -------------------------------------------------------------------------------- 1 | 2 | FAILED 3 | destroyHookError 4 | An error happened while removing your hook. Check the logs. 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_destroy_not_found.xml: -------------------------------------------------------------------------------- 1 | 2 | FAILED 3 | destroyMissingHook 4 | The hook informed was not found. 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/hooks_list.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | 4 | 5 | 1 6 | 7 | 8 | false 9 | false 10 | 11 | 12 | 2 13 | 14 | false 15 | false 16 | 17 | 18 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/is_meeting_running.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | true 4 | 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/join_meeting.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | successfullyJoined 4 | You have joined successfully. 5 | fa51ae0c65adef7fe3cf115421da8a6a25855a20-1464618262714 6 | ao6ehbtvbmhz 7 | huzbpgthac7s 8 | rbe7bbkjzx5mnoda 9 | ALLOW 10 | https://bigblubutton-server.sample/client/BigBlueButton.html?sessionToken=0wzsph6uaelwc68z 11 | 12 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/presentation_with_filename.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/presentation_with_url.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/publish_recordings.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | true 4 | 5 | -------------------------------------------------------------------------------- /lib/vendor/bigbluebutton/bigbluebutton-api-php/tests/fixtures/update_recordings.xml: -------------------------------------------------------------------------------- 1 | 2 | SUCCESS 3 | true 4 | 5 | -------------------------------------------------------------------------------- /lib/vendor/bin/generate_vcards: -------------------------------------------------------------------------------- 1 | ../sabre/vobject/bin/generate_vcards -------------------------------------------------------------------------------- /lib/vendor/bin/vobject: -------------------------------------------------------------------------------- 1 | ../sabre/vobject/bin/vobject -------------------------------------------------------------------------------- /lib/vendor/composer/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) Nils Adermann, Jordi Boggiano 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is furnished 9 | to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /lib/vendor/composer/autoload_classmap.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 10 | ); 11 | -------------------------------------------------------------------------------- /lib/vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 10 | 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', 11 | '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', 12 | 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 13 | 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', 14 | '383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php', 15 | 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', 16 | '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', 17 | '3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php', 18 | '93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php', 19 | ); 20 | -------------------------------------------------------------------------------- /lib/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/confirm-it-solutions/php-zabbix-api/src'), 10 | 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), 11 | 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), 12 | 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), 13 | 'Sabre\\Xml\\' => array($vendorDir . '/sabre/xml/lib'), 14 | 'Sabre\\VObject\\' => array($vendorDir . '/sabre/vobject/lib'), 15 | 'Sabre\\Uri\\' => array($vendorDir . '/sabre/uri/lib'), 16 | 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 17 | 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), 18 | 'Ovh\\' => array($vendorDir . '/ovh/ovh/src'), 19 | 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 20 | 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 21 | 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), 22 | 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), 23 | 'BigBlueButton\\' => array($vendorDir . '/bigbluebutton/bigbluebutton-api-php/src'), 24 | ); 25 | -------------------------------------------------------------------------------- /lib/vendor/confirm-it-solutions/php-zabbix-api/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 confirm IT solutions GmbH 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /lib/vendor/confirm-it-solutions/php-zabbix-api/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "confirm-it-solutions/php-zabbix-api", 3 | "type": "library", 4 | "description": "PhpZabbixApi library", 5 | "keywords": [ 6 | "zabbix", 7 | "api" 8 | ], 9 | "homepage": "https://github.com/confirm/PhpZabbixApi", 10 | "license": "MIT", 11 | "authors": [ 12 | { 13 | "name": "Dominique Barton", 14 | "email": "phpzabbixapi@confirm.ch", 15 | "homepage": "http://www.confirm.ch", 16 | "role": "Developer" 17 | } 18 | ], 19 | "require": { 20 | "php": "^5.3 || ^7.0", 21 | "ext-json": "*", 22 | "ext-openssl": "*", 23 | "ext-pcre": "*" 24 | }, 25 | "require-dev": { 26 | "friendsofphp/php-cs-fixer": "^1.13 || ^2.16", 27 | "phpunit/phpunit": "<4.8.35 || <5.4.3,>=5.0" 28 | }, 29 | "suggest": { 30 | "ext-posix": "In order to get the real user ID of the current process." 31 | }, 32 | "config": { 33 | "sort-packages": true 34 | }, 35 | "extra": { 36 | "branch-alias": { 37 | "dev-master": "2.4-dev" 38 | } 39 | }, 40 | "autoload": { 41 | "psr-4": { 42 | "ZabbixApi\\": [ 43 | "src/" 44 | ] 45 | } 46 | }, 47 | "autoload-dev": { 48 | "psr-4": { 49 | "ZabbixApi\\Tests\\": [ 50 | "tests/" 51 | ] 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/.php_cs: -------------------------------------------------------------------------------- 1 | setRiskyAllowed(true) 5 | ->setRules([ 6 | '@PSR2' => true, 7 | 'array_syntax' => ['syntax' => 'short'], 8 | 'declare_strict_types' => false, 9 | 'concat_space' => ['spacing'=>'one'], 10 | 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], 11 | 'ordered_imports' => true, 12 | // 'phpdoc_align' => ['align'=>'vertical'], 13 | // 'native_function_invocation' => true, 14 | ]) 15 | ->setFinder( 16 | PhpCsFixer\Finder::create() 17 | ->in(__DIR__.'/src') 18 | ->in(__DIR__.'/tests') 19 | ->name('*.php') 20 | ) 21 | ; 22 | 23 | return $config; 24 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM composer:latest as setup 2 | 3 | RUN mkdir /guzzle 4 | 5 | WORKDIR /guzzle 6 | 7 | RUN set -xe \ 8 | && composer init --name=guzzlehttp/test --description="Simple project for testing Guzzle scripts" --author="Márk Sági-Kazár " --no-interaction \ 9 | && composer require guzzlehttp/guzzle 10 | 11 | 12 | FROM php:7.3 13 | 14 | RUN mkdir /guzzle 15 | 16 | WORKDIR /guzzle 17 | 18 | COPY --from=setup /guzzle /guzzle 19 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2018 Michael Dowling, https://github.com/mtdowling 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/guzzle", 3 | "type": "library", 4 | "description": "Guzzle is a PHP HTTP client library", 5 | "keywords": [ 6 | "framework", 7 | "http", 8 | "rest", 9 | "web service", 10 | "curl", 11 | "client", 12 | "HTTP client" 13 | ], 14 | "homepage": "http://guzzlephp.org/", 15 | "license": "MIT", 16 | "authors": [ 17 | { 18 | "name": "Michael Dowling", 19 | "email": "mtdowling@gmail.com", 20 | "homepage": "https://github.com/mtdowling" 21 | } 22 | ], 23 | "require": { 24 | "php": ">=5.5", 25 | "ext-json": "*", 26 | "symfony/polyfill-intl-idn": "^1.17.0", 27 | "guzzlehttp/promises": "^1.0", 28 | "guzzlehttp/psr7": "^1.6.1" 29 | }, 30 | "require-dev": { 31 | "ext-curl": "*", 32 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", 33 | "psr/log": "^1.1" 34 | }, 35 | "suggest": { 36 | "psr/log": "Required for using the Log middleware" 37 | }, 38 | "config": { 39 | "sort-packages": true 40 | }, 41 | "extra": { 42 | "branch-alias": { 43 | "dev-master": "6.5-dev" 44 | } 45 | }, 46 | "autoload": { 47 | "psr-4": { 48 | "GuzzleHttp\\": "src/" 49 | }, 50 | "files": [ 51 | "src/functions_include.php" 52 | ] 53 | }, 54 | "autoload-dev": { 55 | "psr-4": { 56 | "GuzzleHttp\\Tests\\": "tests/" 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php: -------------------------------------------------------------------------------- 1 | stream = $stream; 16 | $msg = $msg ?: 'Could not seek the stream to position ' . $pos; 17 | parent::__construct($msg); 18 | } 19 | 20 | /** 21 | * @return StreamInterface 22 | */ 23 | public function getStream() 24 | { 25 | return $this->stream; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php: -------------------------------------------------------------------------------- 1 | factory = isset($options['handle_factory']) 29 | ? $options['handle_factory'] 30 | : new CurlFactory(3); 31 | } 32 | 33 | public function __invoke(RequestInterface $request, array $options) 34 | { 35 | if (isset($options['delay'])) { 36 | usleep($options['delay'] * 1000); 37 | } 38 | 39 | $easy = $this->factory->create($request, $options); 40 | curl_exec($easy->handle); 41 | $easy->errno = curl_errno($easy->handle); 42 | 43 | return CurlFactory::finish($this, $easy, $this->factory); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/guzzle/src/functions_include.php: -------------------------------------------------------------------------------- 1 | 4 | Copyright (c) 2015 Graham Campbell 5 | Copyright (c) 2017 Tobias Schultze 6 | Copyright (c) 2020 Tobias Nyholm 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/promises/Makefile: -------------------------------------------------------------------------------- 1 | all: clean test 2 | 3 | test: 4 | vendor/bin/phpunit 5 | 6 | coverage: 7 | vendor/bin/phpunit --coverage-html=artifacts/coverage 8 | 9 | view-coverage: 10 | open artifacts/coverage/index.html 11 | 12 | clean: 13 | rm -rf artifacts/* 14 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/promises/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guzzlehttp/promises", 3 | "description": "Guzzle promises library", 4 | "keywords": ["promise"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Graham Campbell", 9 | "email": "hello@gjcampbell.co.uk", 10 | "homepage": "https://github.com/GrahamCampbell" 11 | }, 12 | { 13 | "name": "Michael Dowling", 14 | "email": "mtdowling@gmail.com", 15 | "homepage": "https://github.com/mtdowling" 16 | }, 17 | { 18 | "name": "Tobias Nyholm", 19 | "email": "tobias.nyholm@gmail.com", 20 | "homepage": "https://github.com/Nyholm" 21 | }, 22 | { 23 | "name": "Tobias Schultze", 24 | "email": "webmaster@tubo-world.de", 25 | "homepage": "https://github.com/Tobion" 26 | } 27 | ], 28 | "require": { 29 | "php": ">=5.5" 30 | }, 31 | "require-dev": { 32 | "symfony/phpunit-bridge": "^4.4 || ^5.1" 33 | }, 34 | "autoload": { 35 | "psr-4": { 36 | "GuzzleHttp\\Promise\\": "src/" 37 | }, 38 | "files": ["src/functions_include.php"] 39 | }, 40 | "autoload-dev": { 41 | "psr-4": { 42 | "GuzzleHttp\\Promise\\Tests\\": "tests/" 43 | } 44 | }, 45 | "scripts": { 46 | "test": "vendor/bin/simple-phpunit", 47 | "test-ci": "vendor/bin/simple-phpunit --coverage-text" 48 | }, 49 | "extra": { 50 | "branch-alias": { 51 | "dev-master": "1.5-dev" 52 | } 53 | }, 54 | "config": { 55 | "preferred-install": "dist", 56 | "sort-packages": true 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/promises/src/AggregateException.php: -------------------------------------------------------------------------------- 1 | getState() === PromiseInterface::PENDING; 15 | } 16 | 17 | /** 18 | * Returns true if a promise is fulfilled or rejected. 19 | * 20 | * @return bool 21 | */ 22 | public static function settled(PromiseInterface $promise) 23 | { 24 | return $promise->getState() !== PromiseInterface::PENDING; 25 | } 26 | 27 | /** 28 | * Returns true if a promise is fulfilled. 29 | * 30 | * @return bool 31 | */ 32 | public static function fulfilled(PromiseInterface $promise) 33 | { 34 | return $promise->getState() === PromiseInterface::FULFILLED; 35 | } 36 | 37 | /** 38 | * Returns true if a promise is rejected. 39 | * 40 | * @return bool 41 | */ 42 | public static function rejected(PromiseInterface $promise) 43 | { 44 | return $promise->getState() === PromiseInterface::REJECTED; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/promises/src/PromisorInterface.php: -------------------------------------------------------------------------------- 1 | reason = $reason; 22 | 23 | $message = 'The promise was rejected'; 24 | 25 | if ($description) { 26 | $message .= ' with reason: ' . $description; 27 | } elseif (is_string($reason) 28 | || (is_object($reason) && method_exists($reason, '__toString')) 29 | ) { 30 | $message .= ' with reason: ' . $this->reason; 31 | } elseif ($reason instanceof \JsonSerializable) { 32 | $message .= ' with reason: ' 33 | . json_encode($this->reason, JSON_PRETTY_PRINT); 34 | } 35 | 36 | parent::__construct($message); 37 | } 38 | 39 | /** 40 | * Returns the rejection reason. 41 | * 42 | * @return mixed 43 | */ 44 | public function getReason() 45 | { 46 | return $this->reason; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/promises/src/TaskQueueInterface.php: -------------------------------------------------------------------------------- 1 | 10 | This issue has been automatically marked as stale because it has not had 11 | recent activity. It will be closed after 2 weeks if no further activity occurs. Thank you 12 | for your contributions. 13 | # Comment to post when closing a stale issue. Set to `false` to disable 14 | closeComment: false 15 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | build: 8 | name: Build 9 | runs-on: ubuntu-latest 10 | strategy: 11 | max-parallel: 10 12 | matrix: 13 | php: ['5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] 14 | 15 | steps: 16 | - name: Set up PHP 17 | uses: shivammathur/setup-php@v2 18 | with: 19 | php-version: ${{ matrix.php }} 20 | coverage: 'none' 21 | extensions: mbstring 22 | 23 | - name: Checkout code 24 | uses: actions/checkout@v2 25 | 26 | - name: Mimic PHP 8.0 27 | run: composer config platform.php 8.0.999 28 | if: matrix.php > 8 29 | 30 | - name: Install dependencies 31 | run: composer update --no-interaction --no-progress 32 | 33 | - name: Run tests 34 | run: make test 35 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/.github/workflows/integration.yml: -------------------------------------------------------------------------------- 1 | name: Integration 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | 8 | build: 9 | name: Test 10 | runs-on: ubuntu-latest 11 | strategy: 12 | max-parallel: 10 13 | matrix: 14 | php: ['7.2', '7.3', '7.4', '8.0'] 15 | 16 | steps: 17 | - name: Set up PHP 18 | uses: shivammathur/setup-php@v2 19 | with: 20 | php-version: ${{ matrix.php }} 21 | coverage: none 22 | 23 | - name: Checkout code 24 | uses: actions/checkout@v2 25 | 26 | - name: Download dependencies 27 | uses: ramsey/composer-install@v1 28 | with: 29 | composer-options: --no-interaction --optimize-autoloader 30 | 31 | - name: Start server 32 | run: php -S 127.0.0.1:10002 tests/Integration/server.php & 33 | 34 | - name: Run tests 35 | env: 36 | TEST_SERVER: 127.0.0.1:10002 37 | run: ./vendor/bin/phpunit --testsuite Integration 38 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/.github/workflows/static.yml: -------------------------------------------------------------------------------- 1 | name: Static analysis 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | php-cs-fixer: 8 | name: PHP-CS-Fixer 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Checkout code 13 | uses: actions/checkout@v2 14 | 15 | - name: Setup PHP 16 | uses: shivammathur/setup-php@v2 17 | with: 18 | php-version: '7.4' 19 | coverage: none 20 | extensions: mbstring 21 | 22 | - name: Download dependencies 23 | run: composer update --no-interaction --no-progress 24 | 25 | - name: Download PHP CS Fixer 26 | run: composer require "friendsofphp/php-cs-fixer:2.18.4" 27 | 28 | - name: Execute PHP CS Fixer 29 | run: vendor/bin/php-cs-fixer fix --diff-format udiff --dry-run 30 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Michael Dowling 4 | Copyright (c) 2015 Márk Sági-Kazár 5 | Copyright (c) 2015 Graham Campbell 6 | Copyright (c) 2016 Tobias Schultze 7 | Copyright (c) 2016 George Mponos 8 | Copyright (c) 2018 Tobias Nyholm 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/src/DroppingStream.php: -------------------------------------------------------------------------------- 1 | stream = $stream; 26 | $this->maxLength = $maxLength; 27 | } 28 | 29 | public function write($string) 30 | { 31 | $diff = $this->maxLength - $this->stream->getSize(); 32 | 33 | // Begin returning 0 when the underlying stream is too large. 34 | if ($diff <= 0) { 35 | return 0; 36 | } 37 | 38 | // Write the stream or a subset of the stream if needed. 39 | if (strlen($string) < $diff) { 40 | return $this->stream->write($string); 41 | } 42 | 43 | return $this->stream->write(substr($string, 0, $diff)); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/src/LazyOpenStream.php: -------------------------------------------------------------------------------- 1 | filename = $filename; 30 | $this->mode = $mode; 31 | } 32 | 33 | /** 34 | * Creates the underlying stream lazily when required. 35 | * 36 | * @return StreamInterface 37 | */ 38 | protected function createStream() 39 | { 40 | return Utils::streamFor(Utils::tryFopen($this->filename, $this->mode)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/src/NoSeekStream.php: -------------------------------------------------------------------------------- 1 | @,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; 18 | const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)"; 19 | } 20 | -------------------------------------------------------------------------------- /lib/vendor/guzzlehttp/psr7/src/functions_include.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; 13 | 14 | use DateTimeZone; 15 | 16 | /** 17 | * Overrides default json encoding of date time objects 18 | * 19 | * @author Menno Holtkamp 20 | * @author Jordi Boggiano 21 | */ 22 | class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable 23 | { 24 | /** 25 | * @var bool 26 | */ 27 | private $useMicroseconds; 28 | 29 | public function __construct(bool $useMicroseconds, ?DateTimeZone $timezone = null) 30 | { 31 | $this->useMicroseconds = $useMicroseconds; 32 | 33 | parent::__construct('now', $timezone); 34 | } 35 | 36 | public function jsonSerialize(): string 37 | { 38 | if ($this->useMicroseconds) { 39 | return $this->format('Y-m-d\TH:i:s.uP'); 40 | } 41 | 42 | return $this->format('Y-m-d\TH:i:sP'); 43 | } 44 | 45 | public function __toString(): string 46 | { 47 | return $this->jsonSerialize(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.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\Formatter; 13 | 14 | /** 15 | * Interface for formatters 16 | * 17 | * @author Jordi Boggiano 18 | * 19 | * @phpstan-import-type Record from \Monolog\Logger 20 | */ 21 | interface FormatterInterface 22 | { 23 | /** 24 | * Formats a log record. 25 | * 26 | * @param array $record A record to format 27 | * @return mixed The formatted record 28 | * 29 | * @phpstan-param Record $record 30 | */ 31 | public function format(array $record); 32 | 33 | /** 34 | * Formats a set of log records. 35 | * 36 | * @param array $records A set of records to format 37 | * @return mixed The formatted set of records 38 | * 39 | * @phpstan-param Record[] $records 40 | */ 41 | public function formatBatch(array $records); 42 | } 43 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.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\Formatter; 13 | 14 | /** 15 | * Encodes message information into JSON in a format compatible with Loggly. 16 | * 17 | * @author Adam Pancutt 18 | */ 19 | class LogglyFormatter extends JsonFormatter 20 | { 21 | /** 22 | * Overrides the default batch mode to new lines for compatibility with the 23 | * Loggly bulk API. 24 | */ 25 | public function __construct(int $batchMode = self::BATCH_MODE_NEWLINES, bool $appendNewline = false) 26 | { 27 | parent::__construct($batchMode, $appendNewline); 28 | } 29 | 30 | /** 31 | * Appends the 'timestamp' parameter for indexing by Loggly. 32 | * 33 | * @see https://www.loggly.com/docs/automated-parsing/#json 34 | * @see \Monolog\Formatter\JsonFormatter::format() 35 | */ 36 | public function format(array $record): string 37 | { 38 | if (isset($record["datetime"]) && ($record["datetime"] instanceof \DateTimeInterface)) { 39 | $record["timestamp"] = $record["datetime"]->format("Y-m-d\TH:i:s.uO"); 40 | unset($record["datetime"]); 41 | } 42 | 43 | return parent::format($record); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Formatter/LogmaticFormatter.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\Formatter; 13 | 14 | /** 15 | * Encodes message information into JSON in a format compatible with Logmatic. 16 | * 17 | * @author Julien Breux 18 | */ 19 | class LogmaticFormatter extends JsonFormatter 20 | { 21 | protected const MARKERS = ["sourcecode", "php"]; 22 | 23 | /** 24 | * @var string 25 | */ 26 | protected $hostname = ''; 27 | 28 | /** 29 | * @var string 30 | */ 31 | protected $appname = ''; 32 | 33 | public function setHostname(string $hostname): self 34 | { 35 | $this->hostname = $hostname; 36 | 37 | return $this; 38 | } 39 | 40 | public function setAppname(string $appname): self 41 | { 42 | $this->appname = $appname; 43 | 44 | return $this; 45 | } 46 | 47 | /** 48 | * Appends the 'hostname' and 'appname' parameter for indexing by Logmatic. 49 | * 50 | * @see http://doc.logmatic.io/docs/basics-to-send-data 51 | * @see \Monolog\Formatter\JsonFormatter::format() 52 | */ 53 | public function format(array $record): string 54 | { 55 | if (!empty($this->hostname)) { 56 | $record["hostname"] = $this->hostname; 57 | } 58 | if (!empty($this->appname)) { 59 | $record["appname"] = $this->appname; 60 | } 61 | 62 | $record["@marker"] = static::MARKERS; 63 | 64 | return parent::format($record); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.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\Formatter; 13 | 14 | /** 15 | * Formats data into an associative array of scalar values. 16 | * Objects and arrays will be JSON encoded. 17 | * 18 | * @author Andrew Lawson 19 | */ 20 | class ScalarFormatter extends NormalizerFormatter 21 | { 22 | /** 23 | * {@inheritDoc} 24 | * 25 | * @phpstan-return array $record 26 | */ 27 | public function format(array $record): array 28 | { 29 | $result = []; 30 | foreach ($record as $key => $value) { 31 | $result[$key] = $this->normalizeValue($value); 32 | } 33 | 34 | return $result; 35 | } 36 | 37 | /** 38 | * @param mixed $value 39 | * @return scalar|null 40 | */ 41 | protected function normalizeValue($value) 42 | { 43 | $normalized = $this->normalize($value); 44 | 45 | if (is_array($normalized)) { 46 | return $this->toJson($normalized, true); 47 | } 48 | 49 | return $normalized; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.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 | use Monolog\Logger; 15 | use Monolog\Formatter\NormalizerFormatter; 16 | use Monolog\Formatter\FormatterInterface; 17 | use Doctrine\CouchDB\CouchDBClient; 18 | 19 | /** 20 | * CouchDB handler for Doctrine CouchDB ODM 21 | * 22 | * @author Markus Bachmann 23 | */ 24 | class DoctrineCouchDBHandler extends AbstractProcessingHandler 25 | { 26 | /** @var CouchDBClient */ 27 | private $client; 28 | 29 | public function __construct(CouchDBClient $client, $level = Logger::DEBUG, bool $bubble = true) 30 | { 31 | $this->client = $client; 32 | parent::__construct($level, $bubble); 33 | } 34 | 35 | /** 36 | * {@inheritDoc} 37 | */ 38 | protected function write(array $record): void 39 | { 40 | $this->client->postDocument($record['formatted']); 41 | } 42 | 43 | protected function getDefaultFormatter(): FormatterInterface 44 | { 45 | return new NormalizerFormatter; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.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 | * @phpstan-import-type Record from \Monolog\Logger 20 | */ 21 | interface ActivationStrategyInterface 22 | { 23 | /** 24 | * Returns whether the given record activates the handler. 25 | * 26 | * @phpstan-param Record $record 27 | */ 28 | public function isHandlerActivated(array $record): bool; 29 | } 30 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.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 | use Monolog\Logger; 15 | use Psr\Log\LogLevel; 16 | 17 | /** 18 | * Error level based activation strategy. 19 | * 20 | * @author Johannes M. Schmitt 21 | * 22 | * @phpstan-import-type Level from \Monolog\Logger 23 | * @phpstan-import-type LevelName from \Monolog\Logger 24 | */ 25 | class ErrorLevelActivationStrategy implements ActivationStrategyInterface 26 | { 27 | /** 28 | * @var Level 29 | */ 30 | private $actionLevel; 31 | 32 | /** 33 | * @param int|string $actionLevel Level or name or value 34 | * 35 | * @phpstan-param Level|LevelName|LogLevel::* $actionLevel 36 | */ 37 | public function __construct($actionLevel) 38 | { 39 | $this->actionLevel = Logger::toMonologLevel($actionLevel); 40 | } 41 | 42 | public function isHandlerActivated(array $record): bool 43 | { 44 | return $record['level'] >= $this->actionLevel; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.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 | use Monolog\Formatter\FormatterInterface; 15 | 16 | /** 17 | * Interface to describe loggers that have a formatter 18 | * 19 | * @author Jordi Boggiano 20 | */ 21 | interface FormattableHandlerInterface 22 | { 23 | /** 24 | * Sets the formatter. 25 | * 26 | * @param FormatterInterface $formatter 27 | * @return HandlerInterface self 28 | */ 29 | public function setFormatter(FormatterInterface $formatter): HandlerInterface; 30 | 31 | /** 32 | * Gets the formatter. 33 | * 34 | * @return FormatterInterface 35 | */ 36 | public function getFormatter(): FormatterInterface; 37 | } 38 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.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 | use Monolog\Formatter\FormatterInterface; 15 | use Monolog\Formatter\LineFormatter; 16 | 17 | /** 18 | * Helper trait for implementing FormattableInterface 19 | * 20 | * @author Jordi Boggiano 21 | */ 22 | trait FormattableHandlerTrait 23 | { 24 | /** 25 | * @var ?FormatterInterface 26 | */ 27 | protected $formatter; 28 | 29 | /** 30 | * {@inheritDoc} 31 | */ 32 | public function setFormatter(FormatterInterface $formatter): HandlerInterface 33 | { 34 | $this->formatter = $formatter; 35 | 36 | return $this; 37 | } 38 | 39 | /** 40 | * {@inheritDoc} 41 | */ 42 | public function getFormatter(): FormatterInterface 43 | { 44 | if (!$this->formatter) { 45 | $this->formatter = $this->getDefaultFormatter(); 46 | } 47 | 48 | return $this->formatter; 49 | } 50 | 51 | /** 52 | * Gets the default formatter. 53 | * 54 | * Overwrite this if the LineFormatter is not a good default for your handler. 55 | */ 56 | protected function getDefaultFormatter(): FormatterInterface 57 | { 58 | return new LineFormatter(); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.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 | use Gelf\PublisherInterface; 15 | use Monolog\Logger; 16 | use Monolog\Formatter\GelfMessageFormatter; 17 | use Monolog\Formatter\FormatterInterface; 18 | 19 | /** 20 | * Handler to send messages to a Graylog2 (http://www.graylog2.org) server 21 | * 22 | * @author Matt Lehner 23 | * @author Benjamin Zikarsky 24 | */ 25 | class GelfHandler extends AbstractProcessingHandler 26 | { 27 | /** 28 | * @var PublisherInterface the publisher object that sends the message to the server 29 | */ 30 | protected $publisher; 31 | 32 | /** 33 | * @param PublisherInterface $publisher a gelf publisher object 34 | */ 35 | public function __construct(PublisherInterface $publisher, $level = Logger::DEBUG, bool $bubble = true) 36 | { 37 | parent::__construct($level, $bubble); 38 | 39 | $this->publisher = $publisher; 40 | } 41 | 42 | /** 43 | * {@inheritDoc} 44 | */ 45 | protected function write(array $record): void 46 | { 47 | $this->publisher->publish($record['formatted']); 48 | } 49 | 50 | /** 51 | * {@inheritDoc} 52 | */ 53 | protected function getDefaultFormatter(): FormatterInterface 54 | { 55 | return new GelfMessageFormatter(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/Handler.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 | * Base Handler class providing basic close() support as well as handleBatch 16 | * 17 | * @author Jordi Boggiano 18 | */ 19 | abstract class Handler implements HandlerInterface 20 | { 21 | /** 22 | * {@inheritDoc} 23 | */ 24 | public function handleBatch(array $records): void 25 | { 26 | foreach ($records as $record) { 27 | $this->handle($record); 28 | } 29 | } 30 | 31 | /** 32 | * {@inheritDoc} 33 | */ 34 | public function close(): void 35 | { 36 | } 37 | 38 | public function __destruct() 39 | { 40 | try { 41 | $this->close(); 42 | } catch (\Throwable $e) { 43 | // do nothing 44 | } 45 | } 46 | 47 | public function __sleep() 48 | { 49 | $this->close(); 50 | 51 | return array_keys(get_object_vars($this)); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.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 | use Monolog\Logger; 15 | 16 | /** 17 | * @author Robert Kaufmann III 18 | */ 19 | class LogEntriesHandler extends SocketHandler 20 | { 21 | /** 22 | * @var string 23 | */ 24 | protected $logToken; 25 | 26 | /** 27 | * @param string $token Log token supplied by LogEntries 28 | * @param bool $useSSL Whether or not SSL encryption should be used. 29 | * @param string $host Custom hostname to send the data to if needed 30 | * 31 | * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing 32 | */ 33 | public function __construct(string $token, bool $useSSL = true, $level = Logger::DEBUG, bool $bubble = true, string $host = 'data.logentries.com') 34 | { 35 | if ($useSSL && !extension_loaded('openssl')) { 36 | throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); 37 | } 38 | 39 | $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; 40 | parent::__construct($endpoint, $level, $bubble); 41 | $this->logToken = $token; 42 | } 43 | 44 | /** 45 | * {@inheritDoc} 46 | */ 47 | protected function generateDataStream(array $record): string 48 | { 49 | return $this->logToken . ' ' . $record['formatted']; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/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 a handler is missing 16 | * 17 | * @author Christian Bergau 18 | */ 19 | class MissingExtensionException extends \Exception 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/NoopHandler.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 | * No-op 16 | * 17 | * This handler handles anything, but does nothing, and does not stop bubbling to the rest of the stack. 18 | * This can be used for testing, or to disable a handler when overriding a configuration without 19 | * influencing the rest of the stack. 20 | * 21 | * @author Roel Harbers 22 | */ 23 | class NoopHandler extends Handler 24 | { 25 | /** 26 | * {@inheritDoc} 27 | */ 28 | public function isHandling(array $record): bool 29 | { 30 | return true; 31 | } 32 | 33 | /** 34 | * {@inheritDoc} 35 | */ 36 | public function handle(array $record): bool 37 | { 38 | return false; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.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 | use Monolog\Logger; 15 | use Psr\Log\LogLevel; 16 | 17 | /** 18 | * Blackhole 19 | * 20 | * Any record it can handle will be thrown away. This can be used 21 | * to put on top of an existing stack to override it temporarily. 22 | * 23 | * @author Jordi Boggiano 24 | * 25 | * @phpstan-import-type Level from \Monolog\Logger 26 | * @phpstan-import-type LevelName from \Monolog\Logger 27 | */ 28 | class NullHandler extends Handler 29 | { 30 | /** 31 | * @var int 32 | */ 33 | private $level; 34 | 35 | /** 36 | * @param string|int $level The minimum logging level at which this handler will be triggered 37 | * 38 | * @phpstan-param Level|LevelName|LogLevel::* $level 39 | */ 40 | public function __construct($level = Logger::DEBUG) 41 | { 42 | $this->level = Logger::toMonologLevel($level); 43 | } 44 | 45 | /** 46 | * {@inheritDoc} 47 | */ 48 | public function isHandling(array $record): bool 49 | { 50 | return $record['level'] >= $this->level; 51 | } 52 | 53 | /** 54 | * {@inheritDoc} 55 | */ 56 | public function handle(array $record): bool 57 | { 58 | return $record['level'] >= $this->level; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.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 | use Monolog\Processor\ProcessorInterface; 15 | 16 | /** 17 | * Interface to describe loggers that have processors 18 | * 19 | * @author Jordi Boggiano 20 | * 21 | * @phpstan-import-type Record from \Monolog\Logger 22 | */ 23 | interface ProcessableHandlerInterface 24 | { 25 | /** 26 | * Adds a processor in the stack. 27 | * 28 | * @psalm-param ProcessorInterface|callable(Record): Record $callback 29 | * 30 | * @param ProcessorInterface|callable $callback 31 | * @return HandlerInterface self 32 | */ 33 | public function pushProcessor(callable $callback): HandlerInterface; 34 | 35 | /** 36 | * Removes the processor on top of the stack and returns it. 37 | * 38 | * @psalm-return ProcessorInterface|callable(Record): Record $callback 39 | * 40 | * @throws \LogicException In case the processor stack is empty 41 | * @return callable|ProcessorInterface 42 | */ 43 | public function popProcessor(): callable; 44 | } 45 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Handler/WebRequestRecognizerTrait.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 | trait WebRequestRecognizerTrait 15 | { 16 | /** 17 | * Checks if PHP's serving a web request 18 | * @return bool 19 | */ 20 | protected function isWebRequest(): bool 21 | { 22 | return 'cli' !== \PHP_SAPI && 'phpdbg' !== \PHP_SAPI; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Processor/HostnameProcessor.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 | * Injects value of gethostname in all records 16 | */ 17 | class HostnameProcessor implements ProcessorInterface 18 | { 19 | /** @var string */ 20 | private static $host; 21 | 22 | public function __construct() 23 | { 24 | self::$host = (string) gethostname(); 25 | } 26 | 27 | /** 28 | * {@inheritDoc} 29 | */ 30 | public function __invoke(array $record): array 31 | { 32 | $record['extra']['hostname'] = self::$host; 33 | 34 | return $record; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.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 | * Injects memory_get_peak_usage in all records 16 | * 17 | * @see Monolog\Processor\MemoryProcessor::__construct() for options 18 | * @author Rob Jensen 19 | */ 20 | class MemoryPeakUsageProcessor extends MemoryProcessor 21 | { 22 | /** 23 | * {@inheritDoc} 24 | */ 25 | public function __invoke(array $record): array 26 | { 27 | $usage = memory_get_peak_usage($this->realUsage); 28 | 29 | if ($this->useFormatting) { 30 | $usage = $this->formatBytes($usage); 31 | } 32 | 33 | $record['extra']['memory_peak_usage'] = $usage; 34 | 35 | return $record; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.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 | * Injects memory_get_usage in all records 16 | * 17 | * @see Monolog\Processor\MemoryProcessor::__construct() for options 18 | * @author Rob Jensen 19 | */ 20 | class MemoryUsageProcessor extends MemoryProcessor 21 | { 22 | /** 23 | * {@inheritDoc} 24 | */ 25 | public function __invoke(array $record): array 26 | { 27 | $usage = memory_get_usage($this->realUsage); 28 | 29 | if ($this->useFormatting) { 30 | $usage = $this->formatBytes($usage); 31 | } 32 | 33 | $record['extra']['memory_usage'] = $usage; 34 | 35 | return $record; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/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 | * {@inheritDoc} 23 | */ 24 | public function __invoke(array $record): array 25 | { 26 | $record['extra']['process_id'] = getmypid(); 27 | 28 | return $record; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/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 | * @phpstan-import-type Record from \Monolog\Logger 20 | */ 21 | interface ProcessorInterface 22 | { 23 | /** 24 | * @return array The processed record 25 | * 26 | * @phpstan-param Record $record 27 | * @phpstan-return Record 28 | */ 29 | public function __invoke(array $record); 30 | } 31 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.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 a tags array into record 16 | * 17 | * @author Martijn Riemers 18 | */ 19 | class TagProcessor implements ProcessorInterface 20 | { 21 | /** @var string[] */ 22 | private $tags; 23 | 24 | /** 25 | * @param string[] $tags 26 | */ 27 | public function __construct(array $tags = []) 28 | { 29 | $this->setTags($tags); 30 | } 31 | 32 | /** 33 | * @param string[] $tags 34 | */ 35 | public function addTags(array $tags = []): self 36 | { 37 | $this->tags = array_merge($this->tags, $tags); 38 | 39 | return $this; 40 | } 41 | 42 | /** 43 | * @param string[] $tags 44 | */ 45 | public function setTags(array $tags = []): self 46 | { 47 | $this->tags = $tags; 48 | 49 | return $this; 50 | } 51 | 52 | /** 53 | * {@inheritDoc} 54 | */ 55 | public function __invoke(array $record): array 56 | { 57 | $record['extra']['tags'] = $this->tags; 58 | 59 | return $record; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.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 | use Monolog\ResettableInterface; 15 | 16 | /** 17 | * Adds a unique identifier into records 18 | * 19 | * @author Simon Mönch 20 | */ 21 | class UidProcessor implements ProcessorInterface, ResettableInterface 22 | { 23 | /** @var string */ 24 | private $uid; 25 | 26 | public function __construct(int $length = 7) 27 | { 28 | if ($length > 32 || $length < 1) { 29 | throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32'); 30 | } 31 | 32 | $this->uid = $this->generateUid($length); 33 | } 34 | 35 | /** 36 | * {@inheritDoc} 37 | */ 38 | public function __invoke(array $record): array 39 | { 40 | $record['extra']['uid'] = $this->uid; 41 | 42 | return $record; 43 | } 44 | 45 | public function getUid(): string 46 | { 47 | return $this->uid; 48 | } 49 | 50 | public function reset() 51 | { 52 | $this->uid = $this->generateUid(strlen($this->uid)); 53 | } 54 | 55 | private function generateUid(int $length): string 56 | { 57 | return substr(bin2hex(random_bytes((int) ceil($length / 2))), 0, $length); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/vendor/monolog/monolog/src/Monolog/ResettableInterface.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; 13 | 14 | /** 15 | * Handler or Processor implementing this interface will be reset when Logger::reset() is called. 16 | * 17 | * Resetting ends a log cycle gets them back to their initial state. 18 | * 19 | * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal 20 | * state, and getting it back to a state in which it can receive log records again. 21 | * 22 | * This is useful in case you want to avoid logs leaking between two requests or jobs when you 23 | * have a long running process like a worker or an application server serving multiple requests 24 | * in one process. 25 | * 26 | * @author Grégoire Pineau 27 | */ 28 | interface ResettableInterface 29 | { 30 | /** 31 | * @return void 32 | */ 33 | public function reset(); 34 | } 35 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | vendor 3 | composer.lock 4 | composer.phar 5 | /phpunit.xml 6 | /build.properties 7 | /docs 8 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/.travis.yml: -------------------------------------------------------------------------------- 1 | addons: 2 | apt: 3 | packages: 4 | - libcurl4-openssl-dev 5 | 6 | language: php 7 | php: 8 | - 7.3 9 | - 7.2 10 | - 7.1 11 | - 7.0 12 | - 5.6 13 | 14 | before_script: 15 | - composer self-update 16 | - composer install 17 | 18 | script: vendor/bin/phing test -Donly.units=true 19 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2017, OVH SAS. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * Neither the name of OVH SAS nor the 13 | names of its contributors may be used to endorse or promote products 14 | derived from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY OVH SAS AND CONTRIBUTORS ``AS IS'' AND ANY 17 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL OVH SAS AND CONTRIBUTORS BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | 27 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ovh/ovh", 3 | "description": "Wrapper for OVH APIs", 4 | "license": "BSD-3-Clause", 5 | "require": { 6 | "guzzlehttp/guzzle": "^6.0" 7 | }, 8 | "autoload": { 9 | "psr-4": {"Ovh\\": "src/"} 10 | }, 11 | "require-dev": { 12 | "phpunit/phpunit": "4.*", 13 | "phpdocumentor/phpdocumentor": "2.*", 14 | "squizlabs/php_codesniffer": "2.*", 15 | "phing/phing": "^2.14" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/examples/README.md: -------------------------------------------------------------------------------- 1 | PHP wrapper examples 2 | -------------------- 3 | 4 | In this part, you can find real use cases for the OVH php wrapper 5 | 6 | ## Domains 7 | 8 | Following examples are related to [domains offers](https://www.ovh.ie/domains/) proposed by OVH. 9 | 10 | - [How to create HTTP redirection using php wrapper?](create-Redirection/api_create_redirection.md) 11 | 12 | ## Web hosting 13 | 14 | Following examples are related to [web hosting offers](https://www.ovh.ie/web-hosting/) proposed by OVH. 15 | 16 | - [How to get web hosting capabilities using php wrapper?](hosting-getCapabilities/api_get_hosting_capacities.md) 17 | - [How to attach domains to a web hosting offer using the php wrapper?](hosting-attachedDomain/api_attach_domain_to_web_hosting.md) 18 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/examples/hosting-attachedDomain/listAttachedDomains.php: -------------------------------------------------------------------------------- 1 | 30, 19 | 'connect_timeout' => 5, 20 | ]); 21 | 22 | // Create a new attached domain 23 | $conn = new Api( $applicationKey, 24 | $applicationSecret, 25 | $endpoint, 26 | $consumer_key, 27 | $http_client); 28 | 29 | try { 30 | 31 | $attachedDomainsIds = $conn->get('/hosting/web/' . $domain . '/attachedDomain'); 32 | 33 | foreach( $attachedDomainsIds as $attachedDomainsId) { 34 | $attachedDomain = $conn->get('/hosting/web/' . $domain . '/attachedDomain/' . $attachedDomainsId ); 35 | print_r( $attachedDomain ); 36 | } 37 | 38 | } catch ( Exception $ex ) { 39 | print_r( $ex->getMessage() ); 40 | } 41 | ?> 42 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/examples/hosting-getCapabilities/apiv6.php: -------------------------------------------------------------------------------- 1 | get('/hosting/web/' . $web_hosting ); 22 | 23 | print_r( $conn->get('/hosting/web/offerCapabilities', array( 'offer' => $hosting['offer'] ) ) ); 24 | 25 | ?> 26 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arawa/divims/dec24208d6f1afb1b2ab2ac84bbd0b24728e9f20/lib/vendor/ovh/ovh/img/logo.png -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tests 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | src 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/scripts/bump-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Usage: ./scripts/bump-version.sh 4 | # 5 | 6 | PCRE_MATCH_VERSION="[0-9]+\.[0-9]+\.[0-9]+" 7 | PCRE_MATCH_VERSION_BOUNDS="(^|[- v/'\"])${PCRE_MATCH_VERSION}([- /'\"]|$)" 8 | VERSION="$1" 9 | 10 | if ! echo "$VERSION" | grep -Pq "${PCRE_MATCH_VERSION}"; then 11 | echo "Usage: ./scripts/bump-version.sh " 12 | echo " must be a valid 3 digit version number" 13 | echo " Make sure to double check 'git diff' before commiting anything you'll regret on master" 14 | exit 1 15 | fi 16 | 17 | # Edit text files matching the PCRE, do *not* patch .git folder 18 | grep -PIrl "${PCRE_MATCH_VERSION_BOUNDS}" $(ls) | xargs sed -ir "s/${PCRE_MATCH_VERSION_BOUNDS}/"'\1'"${VERSION}"'\2/g' 19 | 20 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/scripts/update-copyright.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Usage: ./scripts/update-copyright.sh 4 | # 5 | 6 | PCRE_MATCH_COPYRIGHT="Copyright \(c\) 2013-[0-9]{4}, OVH SAS." 7 | PCRE_MATCH_DEBIAN="Copyright: [-0-9]* OVH SAS" 8 | YEAR=$(date +%Y) 9 | 10 | echo -n "Updating copyright headers to ${YEAR}... " 11 | grep -rPl "${PCRE_MATCH_COPYRIGHT}" | xargs sed -ri "s/${PCRE_MATCH_COPYRIGHT}/Copyright (c) 2013-${YEAR}, OVH SAS./g" 12 | grep -rPl "${PCRE_MATCH_DEBIAN}" | xargs sed -ri "s/${PCRE_MATCH_DEBIAN}/Copyright: 2013-${YEAR} OVH SAS/g" 13 | echo "[OK]" 14 | 15 | -------------------------------------------------------------------------------- /lib/vendor/ovh/ovh/tests/bootstrap.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 | -------------------------------------------------------------------------------- /lib/vendor/psr/log/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 PHP Framework Interoperability Group 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib/vendor/psr/log/Psr/Log/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/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 | -------------------------------------------------------------------------------- /lib/vendor/psr/log/Psr/Log/Test/DummyTest.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 34 | } 35 | 36 | public function doSomething() 37 | { 38 | if ($this->logger) { 39 | $this->logger->info('Doing work'); 40 | } 41 | 42 | try { 43 | $this->doSomethingElse(); 44 | } catch (Exception $exception) { 45 | $this->logger->error('Oh no!', array('exception' => $exception)); 46 | } 47 | 48 | // do something useful 49 | } 50 | } 51 | ``` 52 | 53 | You can then pick one of the implementations of the interface to get a logger. 54 | 55 | If you want to implement the interface, you can require this package and 56 | implement `Psr\Log\LoggerInterface` in your code. Please read the 57 | [specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) 58 | for details. 59 | -------------------------------------------------------------------------------- /lib/vendor/psr/log/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "psr/log", 3 | "description": "Common interface for logging libraries", 4 | "keywords": ["psr", "psr-3", "log"], 5 | "homepage": "https://github.com/php-fig/log", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "PHP-FIG", 10 | "homepage": "https://www.php-fig.org/" 11 | } 12 | ], 13 | "require": { 14 | "php": ">=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 | -------------------------------------------------------------------------------- /lib/vendor/ralouphie/getallheaders/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Ralph Khattar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/vendor/ralouphie/getallheaders/README.md: -------------------------------------------------------------------------------- 1 | getallheaders 2 | ============= 3 | 4 | PHP `getallheaders()` polyfill. Compatible with PHP >= 5.3. 5 | 6 | [![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders) 7 | [![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master) 8 | [![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders) 9 | [![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders) 10 | [![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders) 11 | 12 | 13 | This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php). 14 | 15 | ## Install 16 | 17 | For PHP version **`>= 5.6`**: 18 | 19 | ``` 20 | composer require ralouphie/getallheaders 21 | ``` 22 | 23 | For PHP version **`< 5.6`**: 24 | 25 | ``` 26 | composer require ralouphie/getallheaders "^2" 27 | ``` 28 | -------------------------------------------------------------------------------- /lib/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 | -------------------------------------------------------------------------------- /lib/vendor/ralouphie/getallheaders/src/getallheaders.php: -------------------------------------------------------------------------------- 1 | 'Content-Type', 16 | 'CONTENT_LENGTH' => 'Content-Length', 17 | 'CONTENT_MD5' => 'Content-Md5', 18 | ); 19 | 20 | foreach ($_SERVER as $key => $value) { 21 | if (substr($key, 0, 5) === 'HTTP_') { 22 | $key = substr($key, 5); 23 | if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { 24 | $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key)))); 25 | $headers[$key] = $value; 26 | } 27 | } elseif (isset($copy_server[$key])) { 28 | $headers[$copy_server[$key]] = $value; 29 | } 30 | } 31 | 32 | if (!isset($headers['Authorization'])) { 33 | if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { 34 | $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; 35 | } elseif (isset($_SERVER['PHP_AUTH_USER'])) { 36 | $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : ''; 37 | $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass); 38 | } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) { 39 | $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST']; 40 | } 41 | } 42 | 43 | return $headers; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/.gitattributes: -------------------------------------------------------------------------------- 1 | /tests export-ignore 2 | /.travis.yml export-ignore 3 | /CHANGELOG.md export-ignore 4 | /README.md export-ignore 5 | -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/.gitignore: -------------------------------------------------------------------------------- 1 | # Composer 2 | vendor/ 3 | composer.lock 4 | 5 | # Tests 6 | tests/cov/ 7 | tests/.phpunit.result.cache 8 | .php_cs.cache 9 | -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/.php_cs.dist: -------------------------------------------------------------------------------- 1 | getFinder() 5 | ->exclude('vendor') 6 | ->in(__DIR__); 7 | $config->setRules([ 8 | '@PSR1' => true, 9 | '@Symfony' => true 10 | ]); 11 | 12 | return $config; -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014-2019 fruux GmbH (https://fruux.com/) 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | * Neither the name Sabre nor the names of its contributors 14 | may be used to endorse or promote products derived from this software 15 | without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sabre/uri", 3 | "description": "Functions for making sense out of URIs.", 4 | "keywords": [ 5 | "URI", 6 | "URL", 7 | "rfc3986" 8 | ], 9 | "homepage": "http://sabre.io/uri/", 10 | "license": "BSD-3-Clause", 11 | "require": { 12 | "php": "^7.1 || ^8.0" 13 | }, 14 | "authors": [ 15 | { 16 | "name": "Evert Pot", 17 | "email": "me@evertpot.com", 18 | "homepage": "http://evertpot.com/", 19 | "role": "Developer" 20 | } 21 | ], 22 | "support": { 23 | "forum": "https://groups.google.com/group/sabredav-discuss", 24 | "source": "https://github.com/fruux/sabre-uri" 25 | }, 26 | "autoload": { 27 | "files" : [ 28 | "lib/functions.php" 29 | ], 30 | "psr-4" : { 31 | "Sabre\\Uri\\" : "lib/" 32 | } 33 | }, 34 | "autoload-dev": { 35 | "psr-4": { 36 | "Sabre\\Uri\\": "tests/Uri" 37 | } 38 | }, 39 | "require-dev": { 40 | "friendsofphp/php-cs-fixer": "~2.17.1", 41 | "phpstan/phpstan": "^0.12", 42 | "phpunit/phpunit" : "^7.5 || ^8.5 || ^9.0" 43 | }, 44 | "scripts": { 45 | "phpstan": [ 46 | "phpstan analyse lib tests" 47 | ], 48 | "cs-fixer": [ 49 | "php-cs-fixer fix" 50 | ], 51 | "phpunit": [ 52 | "phpunit --configuration tests/phpunit.xml" 53 | ], 54 | "test": [ 55 | "composer phpstan", 56 | "composer cs-fixer", 57 | "composer phpunit" 58 | ] 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/vendor/sabre/uri/lib/InvalidUriException.php: -------------------------------------------------------------------------------- 1 | parse->start(); 21 | 22 | $vcal = Sabre\VObject\Reader::read(fopen($inputFile, 'r')); 23 | 24 | $bench->parse->stop(); 25 | 26 | $repeat = 100; 27 | $start = new \DateTime('2000-01-01'); 28 | $end = new \DateTime('2020-01-01'); 29 | $timeZone = new \DateTimeZone('America/Toronto'); 30 | 31 | $bench->fb->start(); 32 | 33 | for ($i = 0; $i < $repeat; ++$i) { 34 | $fb = new Sabre\VObject\FreeBusyGenerator($start, $end, $vcal, $timeZone); 35 | $results = $fb->getResult(); 36 | } 37 | $bench->fb->stop(); 38 | 39 | echo $bench,"\n"; 40 | 41 | function formatMemory($input) 42 | { 43 | if (strlen($input) > 6) { 44 | return round($input / (1024 * 1024)).'M'; 45 | } elseif (strlen($input) > 3) { 46 | return round($input / 1024).'K'; 47 | } 48 | } 49 | 50 | unset($input, $splitter); 51 | 52 | echo 'peak memory usage: '.formatMemory(memory_get_peak_usage()), "\n"; 53 | echo 'current memory usage: '.formatMemory(memory_get_usage()), "\n"; 54 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/bin/bench_manipulatevcard.php: -------------------------------------------------------------------------------- 1 | parse->start(); 26 | $vcard = $splitter->getNext(); 27 | $bench->parse->pause(); 28 | 29 | if (!$vcard) { 30 | break; 31 | } 32 | 33 | $bench->manipulate->start(); 34 | $vcard->{'X-FOO'} = 'Random new value!'; 35 | $emails = []; 36 | if (isset($vcard->EMAIL)) { 37 | foreach ($vcard->EMAIL as $email) { 38 | $emails[] = (string) $email; 39 | } 40 | } 41 | $bench->manipulate->pause(); 42 | 43 | $bench->serialize->start(); 44 | $vcard2 = $vcard->serialize(); 45 | $bench->serialize->pause(); 46 | 47 | $vcard->destroy(); 48 | } 49 | 50 | echo $bench,"\n"; 51 | 52 | function formatMemory($input) 53 | { 54 | if (strlen($input) > 6) { 55 | return round($input / (1024 * 1024)).'M'; 56 | } elseif (strlen($input) > 3) { 57 | return round($input / 1024).'K'; 58 | } 59 | } 60 | 61 | unset($input, $splitter); 62 | 63 | echo 'peak memory usage: '.formatMemory(memory_get_peak_usage()), "\n"; 64 | echo 'current memory usage: '.formatMemory(memory_get_usage()), "\n"; 65 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/bin/fetch_windows_zones.php: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | xpath('//mapZone') as $mapZone) { 15 | $from = (string) $mapZone['other']; 16 | $to = (string) $mapZone['type']; 17 | 18 | list($to) = explode(' ', $to, 2); 19 | 20 | if (!isset($map[$from])) { 21 | $map[$from] = $to; 22 | } 23 | } 24 | 25 | ksort($map); 26 | echo "Writing to: $outputFile\n"; 27 | 28 | $f = fopen($outputFile, 'w'); 29 | fwrite($f, "parse->start(); 19 | 20 | echo "Parsing.\n"; 21 | $vobj = Sabre\VObject\Reader::read(fopen($inputFile, 'r')); 22 | 23 | $bench->parse->stop(); 24 | 25 | echo "Expanding.\n"; 26 | $bench->expand->start(); 27 | 28 | $vobj->expand(new DateTime($startDate), new DateTime($endDate)); 29 | 30 | $bench->expand->stop(); 31 | 32 | echo $bench,"\n"; 33 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/bin/vobject: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | main($argv)); 27 | 28 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/ElementList.php: -------------------------------------------------------------------------------- 1 | vevent where there's multiple VEVENT objects. 13 | * 14 | * @copyright Copyright (C) fruux GmbH (https://fruux.com/) 15 | * @author Evert Pot (http://evertpot.com/) 16 | * @license http://sabre.io/license/ Modified BSD License 17 | */ 18 | class ElementList extends ArrayIterator 19 | { 20 | /* {{{ ArrayAccess Interface */ 21 | 22 | /** 23 | * Sets an item through ArrayAccess. 24 | * 25 | * @param int $offset 26 | * @param mixed $value 27 | */ 28 | #[\ReturnTypeWillChange] 29 | public function offsetSet($offset, $value) 30 | { 31 | throw new LogicException('You can not add new objects to an ElementList'); 32 | } 33 | 34 | /** 35 | * Sets an item through ArrayAccess. 36 | * 37 | * This method just forwards the request to the inner iterator 38 | * 39 | * @param int $offset 40 | */ 41 | #[\ReturnTypeWillChange] 42 | public function offsetUnset($offset) 43 | { 44 | throw new LogicException('You can not remove objects from an ElementList'); 45 | } 46 | 47 | /* }}} */ 48 | } 49 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/EofException.php: -------------------------------------------------------------------------------- 1 | setValue($val); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Property/ICalendar/CalAddress.php: -------------------------------------------------------------------------------- 1 | getValue(); 52 | if (!strpos($input, ':')) { 53 | return $input; 54 | } 55 | list($schema, $everythingElse) = explode(':', $input, 2); 56 | 57 | return strtolower($schema).':'.$everythingElse; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Property/ICalendar/Date.php: -------------------------------------------------------------------------------- 1 | getRawMimeDirValue()]; 27 | } 28 | 29 | /** 30 | * Returns the type of value. 31 | * 32 | * This corresponds to the VALUE= parameter. Every property also has a 33 | * 'default' valueType. 34 | * 35 | * @return string 36 | */ 37 | public function getValueType() 38 | { 39 | return 'UNKNOWN'; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Property/VCard/Date.php: -------------------------------------------------------------------------------- 1 | value = $dt->format('Ymd'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Property/VCard/DateTime.php: -------------------------------------------------------------------------------- 1 | setValue($val); 29 | } 30 | 31 | /** 32 | * Returns a raw mime-dir representation of the value. 33 | * 34 | * @return string 35 | */ 36 | public function getRawMimeDirValue() 37 | { 38 | return $this->getValue(); 39 | } 40 | 41 | /** 42 | * Returns the type of value. 43 | * 44 | * This corresponds to the VALUE= parameter. Every property also has a 45 | * 'default' valueType. 46 | * 47 | * @return string 48 | */ 49 | public function getValueType() 50 | { 51 | return 'LANGUAGE-TAG'; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Property/VCard/PhoneNumber.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | class PhoneNumber extends Property\Text 15 | { 16 | protected $structuredValues = []; 17 | 18 | /** 19 | * Returns the type of value. 20 | * 21 | * This corresponds to the VALUE= parameter. Every property also has a 22 | * 'default' valueType. 23 | * 24 | * @return string 25 | */ 26 | public function getValueType() 27 | { 28 | return 'PHONE-NUMBER'; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/Recur/MaxInstancesExceededException.php: -------------------------------------------------------------------------------- 1 | {'X-LIC-LOCATION'})) { 19 | return null; 20 | } 21 | 22 | $lic = (string) $vtimezone->{'X-LIC-LOCATION'}; 23 | 24 | // Libical generators may specify strings like 25 | // "SystemV/EST5EDT". For those we must remove the 26 | // SystemV part. 27 | if ('SystemV/' === substr($lic, 0, 8)) { 28 | $lic = substr($lic, 8); 29 | } 30 | 31 | return TimeZoneUtil::getTimeZone($lic, null, $failIfUncertain); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/vendor/sabre/vobject/lib/TimezoneGuesser/TimezoneFinder.php: -------------------------------------------------------------------------------- 1 | 'America/Chicago', 19 | 'Cuba' => 'America/Havana', 20 | 'Egypt' => 'Africa/Cairo', 21 | 'Eire' => 'Europe/Dublin', 22 | 'EST5EDT' => 'America/New_York', 23 | 'Factory' => 'UTC', 24 | 'GB-Eire' => 'Europe/London', 25 | 'GMT0' => 'UTC', 26 | 'Greenwich' => 'UTC', 27 | 'Hongkong' => 'Asia/Hong_Kong', 28 | 'Iceland' => 'Atlantic/Reykjavik', 29 | 'Iran' => 'Asia/Tehran', 30 | 'Israel' => 'Asia/Jerusalem', 31 | 'Jamaica' => 'America/Jamaica', 32 | 'Japan' => 'Asia/Tokyo', 33 | 'Kwajalein' => 'Pacific/Kwajalein', 34 | 'Libya' => 'Africa/Tripoli', 35 | 'MST7MDT' => 'America/Denver', 36 | 'Navajo' => 'America/Denver', 37 | 'NZ-CHAT' => 'Pacific/Chatham', 38 | 'Poland' => 'Europe/Warsaw', 39 | 'Portugal' => 'Europe/Lisbon', 40 | 'PST8PDT' => 'America/Los_Angeles', 41 | 'Singapore' => 'Asia/Singapore', 42 | 'Turkey' => 'Europe/Istanbul', 43 | 'Universal' => 'UTC', 44 | 'W-SU' => 'Europe/Moscow', 45 | 'Zulu' => 'UTC', 46 | ]; 47 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2009-2015 fruux GmbH (https://fruux.com/) 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | * Neither the name Sabre nor the names of its contributors 14 | may be used to endorse or promote products derived from this software 15 | without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/README.md: -------------------------------------------------------------------------------- 1 | sabre/xml 2 | ========= 3 | 4 | [![Build Status](https://secure.travis-ci.org/sabre-io/xml.svg?branch=master)](http://travis-ci.org/sabre-io/xml) 5 | 6 | The sabre/xml library is a specialized XML reader and writer. 7 | 8 | Documentation 9 | ------------- 10 | 11 | * [Introduction](http://sabre.io/xml/). 12 | * [Installation](http://sabre.io/xml/install/). 13 | * [Reading XML](http://sabre.io/xml/reading/). 14 | * [Writing XML](http://sabre.io/xml/writing/). 15 | 16 | 17 | Support 18 | ------- 19 | 20 | Head over to the [SabreDAV mailing list](http://groups.google.com/group/sabredav-discuss) for any questions. 21 | 22 | Made at fruux 23 | ------------- 24 | 25 | This library is being developed by [fruux](https://fruux.com/). Drop us a line for commercial services or enterprise support. 26 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/bin/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arawa/divims/dec24208d6f1afb1b2ab2ac84bbd0b24728e9f20/lib/vendor/sabre/xml/bin/.empty -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/lib/Element.php: -------------------------------------------------------------------------------- 1 | value = $value; 37 | } 38 | 39 | /** 40 | * The xmlSerialize method is called during xml writing. 41 | * 42 | * Use the $writer argument to write its own xml serialization. 43 | * 44 | * An important note: do _not_ create a parent element. Any element 45 | * implementing XmlSerializable should only ever write what's considered 46 | * its 'inner xml'. 47 | * 48 | * The parent of the current element is responsible for writing a 49 | * containing element. 50 | * 51 | * This allows serializers to be re-used for different element names. 52 | * 53 | * If you are opening new elements, you must also close them again. 54 | */ 55 | public function xmlSerialize(Xml\Writer $writer) 56 | { 57 | $writer->writeCData($this->value); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/lib/LibXMLException.php: -------------------------------------------------------------------------------- 1 | errors = $errors; 39 | parent::__construct($errors[0]->message.' on line '.$errors[0]->line.', column '.$errors[0]->column, $code, $previousException); 40 | } 41 | 42 | /** 43 | * Returns the LibXML errors. 44 | */ 45 | public function getErrors(): array 46 | { 47 | return $this->errors; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/lib/ParseException.php: -------------------------------------------------------------------------------- 1 | next(); 31 | * 32 | * $reader->parseInnerTree() will parse the entire sub-tree, and advance to 33 | * the next element. 34 | * 35 | * @return mixed 36 | */ 37 | public static function xmlDeserialize(Reader $reader); 38 | } 39 | -------------------------------------------------------------------------------- /lib/vendor/sabre/xml/lib/XmlSerializable.php: -------------------------------------------------------------------------------- 1 | and Trevor Rowbotham 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 Symfony\Polyfill\Intl\Idn; 13 | 14 | /** 15 | * @internal 16 | */ 17 | class Info 18 | { 19 | public $bidiDomain = false; 20 | public $errors = 0; 21 | public $validBidiDomain = true; 22 | public $transitionalDifferent = false; 23 | } 24 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Intl: Idn 2 | ============================ 3 | 4 | This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) 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 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/Resources/unidata/deviation.php: -------------------------------------------------------------------------------- 1 | 'ss', 5 | 962 => 'σ', 6 | 8204 => '', 7 | 8205 => '', 8 | ); 9 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php: -------------------------------------------------------------------------------- 1 | true, 5 | 1 => true, 6 | 2 => true, 7 | 3 => true, 8 | 4 => true, 9 | 5 => true, 10 | 6 => true, 11 | 7 => true, 12 | 8 => true, 13 | 9 => true, 14 | 10 => true, 15 | 11 => true, 16 | 12 => true, 17 | 13 => true, 18 | 14 => true, 19 | 15 => true, 20 | 16 => true, 21 | 17 => true, 22 | 18 => true, 23 | 19 => true, 24 | 20 => true, 25 | 21 => true, 26 | 22 => true, 27 | 23 => true, 28 | 24 => true, 29 | 25 => true, 30 | 26 => true, 31 | 27 => true, 32 | 28 => true, 33 | 29 => true, 34 | 30 => true, 35 | 31 => true, 36 | 32 => true, 37 | 33 => true, 38 | 34 => true, 39 | 35 => true, 40 | 36 => true, 41 | 37 => true, 42 | 38 => true, 43 | 39 => true, 44 | 40 => true, 45 | 41 => true, 46 | 42 => true, 47 | 43 => true, 48 | 44 => true, 49 | 47 => true, 50 | 58 => true, 51 | 59 => true, 52 | 60 => true, 53 | 61 => true, 54 | 62 => true, 55 | 63 => true, 56 | 64 => true, 57 | 91 => true, 58 | 92 => true, 59 | 93 => true, 60 | 94 => true, 61 | 95 => true, 62 | 96 => true, 63 | 123 => true, 64 | 124 => true, 65 | 125 => true, 66 | 126 => true, 67 | 127 => true, 68 | 8800 => true, 69 | 8814 => true, 70 | 8815 => true, 71 | ); 72 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php: -------------------------------------------------------------------------------- 1 | 9, 5 | 2509 => 9, 6 | 2637 => 9, 7 | 2765 => 9, 8 | 2893 => 9, 9 | 3021 => 9, 10 | 3149 => 9, 11 | 3277 => 9, 12 | 3387 => 9, 13 | 3388 => 9, 14 | 3405 => 9, 15 | 3530 => 9, 16 | 3642 => 9, 17 | 3770 => 9, 18 | 3972 => 9, 19 | 4153 => 9, 20 | 4154 => 9, 21 | 5908 => 9, 22 | 5940 => 9, 23 | 6098 => 9, 24 | 6752 => 9, 25 | 6980 => 9, 26 | 7082 => 9, 27 | 7083 => 9, 28 | 7154 => 9, 29 | 7155 => 9, 30 | 11647 => 9, 31 | 43014 => 9, 32 | 43052 => 9, 33 | 43204 => 9, 34 | 43347 => 9, 35 | 43456 => 9, 36 | 43766 => 9, 37 | 44013 => 9, 38 | 68159 => 9, 39 | 69702 => 9, 40 | 69759 => 9, 41 | 69817 => 9, 42 | 69939 => 9, 43 | 69940 => 9, 44 | 70080 => 9, 45 | 70197 => 9, 46 | 70378 => 9, 47 | 70477 => 9, 48 | 70722 => 9, 49 | 70850 => 9, 50 | 71103 => 9, 51 | 71231 => 9, 52 | 71350 => 9, 53 | 71467 => 9, 54 | 71737 => 9, 55 | 71997 => 9, 56 | 71998 => 9, 57 | 72160 => 9, 58 | 72244 => 9, 59 | 72263 => 9, 60 | 72345 => 9, 61 | 72767 => 9, 62 | 73028 => 9, 63 | 73029 => 9, 64 | 73111 => 9, 65 | ); 66 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-idn/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-intl-idn", 3 | "type": "library", 4 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", 5 | "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Laurent Bassin", 11 | "email": "laurent@bassin.info" 12 | }, 13 | { 14 | "name": "Trevor Rowbotham", 15 | "email": "trevor.rowbotham@pm.me" 16 | }, 17 | { 18 | "name": "Symfony Community", 19 | "homepage": "https://symfony.com/contributors" 20 | } 21 | ], 22 | "require": { 23 | "php": ">=7.1", 24 | "symfony/polyfill-intl-normalizer": "^1.10", 25 | "symfony/polyfill-php72": "^1.10" 26 | }, 27 | "autoload": { 28 | "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" }, 29 | "files": [ "bootstrap.php" ] 30 | }, 31 | "suggest": { 32 | "ext-intl": "For best performance" 33 | }, 34 | "minimum-stability": "dev", 35 | "extra": { 36 | "branch-alias": { 37 | "dev-main": "1.23-dev" 38 | }, 39 | "thanks": { 40 | "name": "symfony/polyfill", 41 | "url": "https://github.com/symfony/polyfill" 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-normalizer/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2019 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-normalizer/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Intl: Normalizer 2 | =================================== 3 | 4 | This component provides a fallback implementation for the 5 | [`Normalizer`](https://php.net/Normalizer) class provided 6 | by the [Intl](https://php.net/intl) extension. 7 | 8 | More information can be found in the 9 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 10 | 11 | License 12 | ======= 13 | 14 | This library is released under the [MIT license](LICENSE). 15 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.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 | use Symfony\Polyfill\Intl\Normalizer as p; 13 | 14 | if (\PHP_VERSION_ID >= 80000) { 15 | return require __DIR__.'/bootstrap80.php'; 16 | } 17 | 18 | if (!function_exists('normalizer_is_normalized')) { 19 | function normalizer_is_normalized($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::isNormalized($string, $form); } 20 | } 21 | if (!function_exists('normalizer_normalize')) { 22 | function normalizer_normalize($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::normalize($string, $form); } 23 | } 24 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-normalizer/bootstrap80.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 | use Symfony\Polyfill\Intl\Normalizer as p; 13 | 14 | if (!function_exists('normalizer_is_normalized')) { 15 | function normalizer_is_normalized(?string $string, ?int $form = p\Normalizer::FORM_C): bool { return p\Normalizer::isNormalized((string) $string, (int) $form); } 16 | } 17 | if (!function_exists('normalizer_normalize')) { 18 | function normalizer_normalize(?string $string, ?int $form = p\Normalizer::FORM_C): string|false { return p\Normalizer::normalize((string) $string, (int) $form); } 19 | } 20 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-intl-normalizer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-intl-normalizer", 3 | "type": "library", 4 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 5 | "keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "normalizer"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Nicolas Grekas", 11 | "email": "p@tchwork.com" 12 | }, 13 | { 14 | "name": "Symfony Community", 15 | "homepage": "https://symfony.com/contributors" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=7.1" 20 | }, 21 | "autoload": { 22 | "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, 23 | "files": [ "bootstrap.php" ], 24 | "classmap": [ "Resources/stubs" ] 25 | }, 26 | "suggest": { 27 | "ext-intl": "For best performance" 28 | }, 29 | "minimum-stability": "dev", 30 | "extra": { 31 | "branch-alias": { 32 | "dev-main": "1.23-dev" 33 | }, 34 | "thanks": { 35 | "name": "symfony/polyfill", 36 | "url": "https://github.com/symfony/polyfill" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-php72/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2019 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-php72/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Php72 2 | ======================== 3 | 4 | This component provides functions added to PHP 7.2 core: 5 | 6 | - [`spl_object_id`](https://php.net/spl_object_id) 7 | - [`stream_isatty`](https://php.net/stream_isatty) 8 | 9 | On Windows only: 10 | 11 | - [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support) 12 | 13 | Moved to core since 7.2 (was in the optional XML extension earlier): 14 | 15 | - [`utf8_encode`](https://php.net/utf8_encode) 16 | - [`utf8_decode`](https://php.net/utf8_decode) 17 | 18 | Also, it provides constants added to PHP 7.2: 19 | - [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig) 20 | - [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family) 21 | 22 | More information can be found in the 23 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 24 | 25 | License 26 | ======= 27 | 28 | This library is released under the [MIT license](LICENSE). 29 | -------------------------------------------------------------------------------- /lib/vendor/symfony/polyfill-php72/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-php72", 3 | "type": "library", 4 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 5 | "keywords": ["polyfill", "shim", "compatibility", "portable"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Nicolas Grekas", 11 | "email": "p@tchwork.com" 12 | }, 13 | { 14 | "name": "Symfony Community", 15 | "homepage": "https://symfony.com/contributors" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=7.1" 20 | }, 21 | "autoload": { 22 | "psr-4": { "Symfony\\Polyfill\\Php72\\": "" }, 23 | "files": [ "bootstrap.php" ] 24 | }, 25 | "minimum-stability": "dev", 26 | "extra": { 27 | "branch-alias": { 28 | "dev-main": "1.23-dev" 29 | }, 30 | "thanks": { 31 | "name": "symfony/polyfill", 32 | "url": "https://github.com/symfony/polyfill" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arawa/divims/dec24208d6f1afb1b2ab2ac84bbd0b24728e9f20/log/.gitkeep -------------------------------------------------------------------------------- /msmtprc.template: -------------------------------------------------------------------------------- 1 | account default 2 | host mail.example.com 3 | port 465 4 | tls on 5 | tls_starttls on 6 | tls_trust_file /etc/ssl/certs/ca-certificates.crt 7 | tls_certcheck on 8 | auth on 9 | user user@example.com 10 | password "mysuperpassword" 11 | from "user@example.com" 12 | logfile /app/tmp/msmtp.log -------------------------------------------------------------------------------- /run/init.php: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------