├── .gitattributes ├── .gitignore ├── .prettierrc ├── LICENSE.md ├── README.md ├── bin ├── build-all.sh ├── build-examples.sh ├── build-libraries-phar.sh ├── build-phar │ ├── DataLiberationBoxCompactor.php │ ├── box.php │ ├── core.php │ ├── smoke-test.php │ └── truncate-composer-checks.php ├── build-plugins.sh ├── run-server-build.sh └── run-server-dev.sh ├── bootstrap.php ├── components ├── BlockParser │ ├── class-wp-block-parser-block.php │ ├── class-wp-block-parser-error.php │ ├── class-wp-block-parser-frame.php │ ├── class-wp-block-parser.php │ └── composer.json ├── Blueprints │ ├── DataReference │ │ ├── AbsoluteLocalPath.php │ │ ├── DataReference.php │ │ ├── DataReferenceResolver.php │ │ ├── Directory.php │ │ ├── ExecutionContextPath.php │ │ ├── File.php │ │ ├── GitPath.php │ │ ├── InlineDirectory.php │ │ ├── InlineFile.php │ │ ├── RemoteFile.php │ │ ├── URLReference.php │ │ ├── WordPressOrgPlugin.php │ │ ├── WordPressOrgTheme.php │ │ └── WordPressReference.php │ ├── Exception │ │ ├── BlueprintExecutionException.php │ │ ├── DataResolutionException.php │ │ └── PermissionsException.php │ ├── Logger │ │ ├── CLILogger.php │ │ └── NoopLogger.php │ ├── MediaFileDefinition.php │ ├── Metadata.php │ ├── ProcessFailedException.php │ ├── Progress │ │ ├── DoneEvent.php │ │ ├── ProgressEvent.php │ │ ├── ProgressTrackedReadStream.php │ │ └── Tracker.php │ ├── ProgressObserver.php │ ├── Runner.php │ ├── RunnerConfiguration.php │ ├── Runtime.php │ ├── SiteResolver │ │ ├── ExistingSiteResolver.php │ │ └── NewSiteResolver.php │ ├── Steps │ │ ├── ActivatePluginStep.php │ │ ├── ActivateThemeStep.php │ │ ├── CpStep.php │ │ ├── DefineConstantsStep.php │ │ ├── ImportContentStep.php │ │ ├── ImportMediaStep.php │ │ ├── ImportThemeStarterContentStep.php │ │ ├── InstallPluginStep.php │ │ ├── InstallThemeStep.php │ │ ├── MkdirStep.php │ │ ├── MvStep.php │ │ ├── RmDirStep.php │ │ ├── RmStep.php │ │ ├── RunPHPStep.php │ │ ├── RunSqlStep.php │ │ ├── SetSiteLanguageStep.php │ │ ├── SetSiteOptionsStep.php │ │ ├── StepInterface.php │ │ ├── UnzipStep.php │ │ ├── WPCLIStep.php │ │ └── WriteFilesStep.php │ ├── Tests │ │ └── Unit │ │ │ ├── DataReference │ │ │ └── DataReferenceResolverTest.php │ │ │ ├── Steps │ │ │ ├── CpStepTest.php │ │ │ ├── DefineConstantsStepTest.php │ │ │ ├── InstallPluginStepTest.php │ │ │ ├── InstallThemeStepTest.php │ │ │ ├── MkdirStepTest.php │ │ │ ├── MvStepTest.php │ │ │ ├── RmDirStepTest.php │ │ │ ├── RmStepTest.php │ │ │ ├── RunPHPStepTest.php │ │ │ ├── RunSQLStepTest.php │ │ │ ├── SetSiteOptionsStepTest.php │ │ │ ├── StepTestCase.php │ │ │ ├── UnzipStepTest.php │ │ │ └── WriteFilesStepTest.php │ │ │ └── Validator │ │ │ ├── HumanFriendlySchemaValidatorTest.php │ │ │ └── fixtures │ │ │ ├── invalid │ │ │ ├── invalid-additional-steps.json │ │ │ ├── invalid-content-type.json │ │ │ ├── invalid-plugin-format.json │ │ │ ├── invalid-post-types.json │ │ │ ├── invalid-url-format.json │ │ │ ├── invalid-version.json │ │ │ └── missing-required.json │ │ │ └── valid │ │ │ ├── full-features.json │ │ │ ├── minimal-valid.json │ │ │ ├── with-additional-steps.json │ │ │ ├── with-content.json │ │ │ ├── with-plugins.json │ │ │ ├── with-post-types.json │ │ │ └── with-steps.json │ ├── Validator │ │ ├── HumanFriendlySchemaValidator.php │ │ ├── UnsupportedSchemaException.php │ │ └── ValidationError.php │ ├── VersionStrings │ │ ├── PHPVersion.php │ │ ├── Version.php │ │ ├── VersionConstraint.php │ │ └── WordPressVersion.php │ ├── Versions │ │ ├── Version1 │ │ │ ├── V1ToV2Transpiler.php │ │ │ └── schema-v1.json │ │ └── Version2 │ │ │ └── json-schema │ │ │ ├── regenerate-schema.ts │ │ │ ├── schema-v2.json │ │ │ ├── tsconfig.json │ │ │ └── wsp │ │ │ └── wsp-1-blueprint-v2-schema │ │ │ ├── appendix-A-blueprint-v2-schema.ts │ │ │ ├── appendix-B-data-sources.ts │ │ │ ├── appendix-C-runner-configuration.ts │ │ │ └── proposal.md │ ├── bin │ │ └── blueprint.php │ └── vendor-patched │ │ ├── log │ │ ├── LICENSE │ │ ├── Psr │ │ │ └── Log │ │ │ │ ├── AbstractLogger.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── LogLevel.php │ │ │ │ ├── LoggerAwareInterface.php │ │ │ │ ├── LoggerAwareTrait.php │ │ │ │ ├── LoggerInterface.php │ │ │ │ ├── LoggerTrait.php │ │ │ │ └── NullLogger.php │ │ ├── README.md │ │ └── composer.json │ │ └── symfony │ │ ├── event-dispatcher │ │ ├── ContainerAwareEventDispatcher.php │ │ ├── Debug │ │ │ ├── TraceableEventDispatcher.php │ │ │ ├── TraceableEventDispatcherInterface.php │ │ │ └── WrappedListener.php │ │ ├── DependencyInjection │ │ │ └── RegisterListenersPass.php │ │ ├── Event.php │ │ ├── EventDispatcher.php │ │ ├── EventDispatcherInterface.php │ │ ├── EventSubscriberInterface.php │ │ ├── GenericEvent.php │ │ ├── ImmutableEventDispatcher.php │ │ ├── LICENSE │ │ └── composer.json │ │ └── process │ │ ├── .gitignore │ │ ├── Exception │ │ ├── ExceptionInterface.php │ │ ├── InvalidArgumentException.php │ │ ├── LogicException.php │ │ ├── ProcessFailedException.php │ │ ├── ProcessTimedOutException.php │ │ └── RuntimeException.php │ │ ├── ExecutableFinder.php │ │ ├── InputStream.php │ │ ├── LICENSE │ │ ├── PhpExecutableFinder.php │ │ ├── PhpProcess.php │ │ ├── Pipes │ │ ├── AbstractPipes.php │ │ ├── PipesInterface.php │ │ ├── UnixPipes.php │ │ └── WindowsPipes.php │ │ ├── Process.php │ │ ├── ProcessBuilder.php │ │ ├── ProcessUtils.php │ │ ├── composer.json │ │ └── phpunit.xml.dist ├── ByteStream │ ├── BytePipe.php │ ├── ByteStreamException.php │ ├── ByteTransformer │ │ ├── ByteTransformer.php │ │ ├── ChecksumTransformer.php │ │ ├── DeflateTransformer.php │ │ └── InflateTransformer.php │ ├── FileReadWriteStream.php │ ├── MemoryPipe.php │ ├── NotEnoughDataException.php │ ├── ReadStream │ │ ├── BaseByteReadStream.php │ │ ├── ByteReadStream.php │ │ ├── DeflateReadStream.php │ │ ├── FileReadStream.php │ │ ├── InflateReadStream.php │ │ ├── LimitedByteReadStream.php │ │ └── TransformedReadStream.php │ ├── Tests │ │ ├── ByteReadStreamTest.php │ │ ├── DeflateReadStreamTest.php │ │ ├── FileReadWriteStreamTest.php │ │ ├── FileWriteStreamTest.php │ │ ├── InflateReadStreamTest.php │ │ ├── TransformedReadStreamTest.php │ │ └── fixtures │ │ │ ├── preface-to-pygmalion.txt │ │ │ └── pygmalion.html │ ├── WriteStream │ │ ├── ByteWriteStream.php │ │ ├── FileWriteStream.php │ │ └── TransformedWriteStream.php │ └── composer.json ├── CORSProxy │ ├── README.md │ ├── composer.json │ ├── cors-proxy-functions.php │ ├── cors-proxy.php │ ├── dev.sh │ ├── package.json │ ├── project.json │ ├── test-watch.sh │ ├── test.sh │ └── tests │ │ ├── ProxyFunctionsTests.php │ │ └── bootstrap.php ├── DataLiberation │ ├── BlockMarkup │ │ ├── BlockMarkupProcessor.php │ │ ├── BlockMarkupUrlProcessor.php │ │ └── BlockObject.php │ ├── DataFormatConsumer │ │ ├── AnnotatedBlockMarkupConsumer.php │ │ ├── BlocksWithMetadata.php │ │ ├── DataFormatConsumer.php │ │ └── MarkupProcessorConsumer.php │ ├── DataFormatProducer │ │ ├── AnnotatedBlockMarkupProducer.php │ │ └── DataFormatProducer.php │ ├── DataLiberationException.php │ ├── DataLiberationHTMLProcessor.php │ ├── EntityReader │ │ ├── BlocksWithMetadataEntityReader.php │ │ ├── DatabaseContentEntityReader.php │ │ ├── DatabaseRowsEntityReader.php │ │ ├── EPubEntityReader.php │ │ ├── EntityReader.php │ │ ├── EntityReaderIterator.php │ │ ├── FilesystemEntityReader.php │ │ ├── HTMLEntityReader.php │ │ └── WXREntityReader.php │ ├── EntityWriter │ │ ├── EntityWriter.php │ │ ├── MySQLDumpWriter.php │ │ ├── StaticPostFilesWriter.php │ │ └── WXRWriter.php │ ├── ImportEntity.php │ ├── Importer │ │ ├── AttachmentDownloader.php │ │ ├── AttachmentDownloaderEvent.php │ │ ├── EntityImporter.php │ │ ├── EntityIteratorChain.php │ │ ├── FileVisitorEvent.php │ │ ├── ImportSession.php │ │ ├── ImportUtils.php │ │ ├── RetryFrontloadingIterator.php │ │ └── StreamImporter.php │ ├── Tests │ │ ├── BlockMarkupProcessorTest.php │ │ ├── BlockMarkupUrlProcessorTest.php │ │ ├── DatabaseContentEntityReaderTest.php │ │ ├── DatabaseEntityReaderTest.php │ │ ├── EPubEntityReaderTest.php │ │ ├── FilesystemEntityReaderTest.php │ │ ├── HTMLEntityReaderTest.php │ │ ├── MarkupProcessorConsumerTest.php │ │ ├── MySQLDumpWriterTest.php │ │ ├── MySQLExportTest.php │ │ ├── RewriteUrlsTest.php │ │ ├── StaticPostFilesWriterTest.php │ │ ├── StreamImporterTest.php │ │ ├── URLInTextProcessorTest.php │ │ ├── URLParserWHATWGComplianceTest.php │ │ ├── UrldecodeNTest.php │ │ ├── WPURLTest.php │ │ ├── WXRReaderTest.php │ │ ├── WXRWriterTest.php │ │ ├── fixtures │ │ │ ├── epub-entity-reader │ │ │ │ └── childrens-literature.epub │ │ │ ├── filesystem-entity-reader │ │ │ │ ├── simple-structure │ │ │ │ │ ├── nested │ │ │ │ │ │ └── page1.html │ │ │ │ │ └── root.html │ │ │ │ └── with-nested-images-directory │ │ │ │ │ ├── nested │ │ │ │ │ ├── images │ │ │ │ │ │ └── screenshot.png │ │ │ │ │ └── page1.html │ │ │ │ │ └── root.html │ │ │ ├── html-to-blocks │ │ │ │ ├── excerpt.input.html │ │ │ │ └── excerpt.output.html │ │ │ ├── wxr-simple-expected.xml │ │ │ └── wxr-simple.xml │ │ ├── import │ │ │ ├── blueprint-import.json │ │ │ └── run.sh │ │ ├── whatwg_url_test_data.json │ │ └── wxr │ │ │ ├── 10MB.xml │ │ │ ├── a11y-unit-test-data.xml │ │ │ ├── crazy-cdata-escaped.xml │ │ │ ├── crazy-cdata.xml │ │ │ ├── entities-options-and-posts.xml │ │ │ ├── frontloading-1-attachment.xml │ │ │ ├── frontloading-attachments-post-contents-and-404s.xml │ │ │ ├── invalid-version-tag.xml │ │ │ ├── malformed.xml │ │ │ ├── missing-version-tag.xml │ │ │ ├── slashes.xml │ │ │ ├── small-export.xml │ │ │ ├── test-serialized-postmeta-no-cdata.xml │ │ │ ├── test-serialized-postmeta-with-cdata.xml │ │ │ ├── test-utw-post-meta-import.xml │ │ │ ├── theme-unit-test-data.xml │ │ │ ├── valid-wxr-1.0.xml │ │ │ ├── valid-wxr-1.1.xml │ │ │ └── woocommerce-demo-products.xml │ ├── URL │ │ ├── URLInTextProcessor.php │ │ ├── WPURL.php │ │ ├── functions.php │ │ └── public_suffix_list.php │ ├── bin │ │ ├── import │ │ │ ├── blueprint-import-wxr.json │ │ │ └── import-wxr.sh │ │ ├── regenerate_public_suffix_list.php │ │ └── rewrite-urls.php │ ├── composer.json │ ├── plugin-build.sh │ ├── rector.php │ └── vendor-patched │ │ ├── README.md │ │ ├── brick │ │ └── math │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── BigDecimal.php │ │ │ ├── BigInteger.php │ │ │ ├── BigNumber.php │ │ │ ├── BigRational.php │ │ │ ├── Exception │ │ │ ├── DivisionByZeroException.php │ │ │ ├── IntegerOverflowException.php │ │ │ ├── MathException.php │ │ │ ├── NegativeNumberException.php │ │ │ ├── NumberFormatException.php │ │ │ └── RoundingNecessaryException.php │ │ │ ├── Internal │ │ │ ├── Calculator.php │ │ │ └── Calculator │ │ │ │ ├── BcMathCalculator.php │ │ │ │ ├── GmpCalculator.php │ │ │ │ └── NativeCalculator.php │ │ │ └── RoundingMode.php │ │ ├── psr │ │ ├── event-dispatcher │ │ │ ├── .editorconfig │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ │ ├── EventDispatcherInterface.php │ │ │ │ ├── ListenerProviderInterface.php │ │ │ │ └── StoppableEventInterface.php │ │ └── log │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── AbstractLogger.php │ │ │ ├── InvalidArgumentException.php │ │ │ ├── LogLevel.php │ │ │ ├── LoggerAwareInterface.php │ │ │ ├── LoggerAwareTrait.php │ │ │ ├── LoggerInterface.php │ │ │ ├── LoggerTrait.php │ │ │ └── NullLogger.php │ │ ├── rowbot │ │ ├── idna │ │ │ ├── .gitattributes │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .phpcs.xml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bin │ │ │ │ ├── Builder.php │ │ │ │ ├── IdnaDataBuilder.php │ │ │ │ ├── RegexBuilder.php │ │ │ │ ├── ViramaDataBuilder.php │ │ │ │ └── generateDataFiles.php │ │ │ ├── composer.json │ │ │ ├── phpstan.neon │ │ │ ├── phpunit.xml │ │ │ ├── resources │ │ │ │ ├── DisallowedRanges.php │ │ │ │ ├── Regex.php │ │ │ │ ├── deviation.php │ │ │ │ ├── disallowed.php │ │ │ │ ├── disallowed_STD3_mapped.php │ │ │ │ ├── disallowed_STD3_valid.php │ │ │ │ ├── ignored.php │ │ │ │ ├── mapped.php │ │ │ │ └── virama.php │ │ │ ├── src │ │ │ │ ├── CodePoint.php │ │ │ │ ├── CodePointStatus.php │ │ │ │ ├── DomainInfo.php │ │ │ │ ├── Idna.php │ │ │ │ ├── IdnaResult.php │ │ │ │ └── LabelValidator.php │ │ │ └── tests │ │ │ │ ├── IdnaV2Test.php │ │ │ │ └── IdnaV2TestCase.php │ │ ├── punycode │ │ │ ├── .gitattributes │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .phpcs.xml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ ├── phpstan.neon │ │ │ ├── phpunit.xml │ │ │ ├── src │ │ │ │ ├── Exception │ │ │ │ │ ├── InvalidInputException.php │ │ │ │ │ ├── OutputSizeExceededException.php │ │ │ │ │ ├── OverflowException.php │ │ │ │ │ └── PunycodeException.php │ │ │ │ └── Punycode.php │ │ │ └── tests │ │ │ │ └── PunycodeTest.php │ │ └── url │ │ │ ├── .github │ │ │ └── workflows │ │ │ │ ├── coverage.yml │ │ │ │ └── tests.yml │ │ │ ├── .gitignore │ │ │ ├── .phpcs.xml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ ├── phpstan.neon │ │ │ ├── phpunit.xml │ │ │ ├── src │ │ │ ├── APIParserErrorType.php │ │ │ ├── APIParserResult.php │ │ │ ├── BasicURLParser.php │ │ │ ├── Component │ │ │ │ ├── AbstractPath.php │ │ │ │ ├── Host │ │ │ │ │ ├── AbstractHost.php │ │ │ │ │ ├── HostInterface.php │ │ │ │ │ ├── HostParser.php │ │ │ │ │ ├── IPv4Address.php │ │ │ │ │ ├── IPv4AddressParser.php │ │ │ │ │ ├── IPv6Address.php │ │ │ │ │ ├── IPv6AddressParser.php │ │ │ │ │ ├── Math │ │ │ │ │ │ ├── BrickMathAdapter.php │ │ │ │ │ │ ├── Exception │ │ │ │ │ │ │ └── MathException.php │ │ │ │ │ │ ├── NativeIntAdapter.php │ │ │ │ │ │ ├── NumberFactory.php │ │ │ │ │ │ └── NumberInterface.php │ │ │ │ │ ├── NullHost.php │ │ │ │ │ ├── Serializer │ │ │ │ │ │ ├── HostSerializerInterface.php │ │ │ │ │ │ ├── IPv4AddressSerializer.php │ │ │ │ │ │ ├── IPv6AddressSerializer.php │ │ │ │ │ │ └── StringHostSerializer.php │ │ │ │ │ └── StringHost.php │ │ │ │ ├── OpaqueOrigin.php │ │ │ │ ├── OpaquePath.php │ │ │ │ ├── PathInterface.php │ │ │ │ ├── PathList.php │ │ │ │ ├── PathSegment.php │ │ │ │ ├── QueryList.php │ │ │ │ ├── Scheme.php │ │ │ │ └── TupleOrigin.php │ │ │ ├── Exception │ │ │ │ ├── TypeError.php │ │ │ │ ├── URLException.php │ │ │ │ └── UnsupportedOperationException.php │ │ │ ├── Origin.php │ │ │ ├── ParserContext.php │ │ │ ├── ParserState.php │ │ │ ├── State │ │ │ │ ├── AbstractHostState.php │ │ │ │ ├── AuthorityState.php │ │ │ │ ├── FileHostState.php │ │ │ │ ├── FileSlashState.php │ │ │ │ ├── FileState.php │ │ │ │ ├── FragmentState.php │ │ │ │ ├── HostState.php │ │ │ │ ├── HostnameState.php │ │ │ │ ├── NoSchemeState.php │ │ │ │ ├── OpaquePathState.php │ │ │ │ ├── PathOrAuthorityState.php │ │ │ │ ├── PathStartState.php │ │ │ │ ├── PathState.php │ │ │ │ ├── PortState.php │ │ │ │ ├── QueryState.php │ │ │ │ ├── RelativeSlashState.php │ │ │ │ ├── RelativeState.php │ │ │ │ ├── SchemeStartState.php │ │ │ │ ├── SchemeState.php │ │ │ │ ├── SpecialAuthorityIgnoreSlashesState.php │ │ │ │ ├── SpecialAuthoritySlashesState.php │ │ │ │ ├── SpecialRelativeOrAuthorityState.php │ │ │ │ ├── State.php │ │ │ │ └── StatusCode.php │ │ │ ├── String │ │ │ │ ├── AbstractStringBuffer.php │ │ │ │ ├── AbstractStringList.php │ │ │ │ ├── AbstractUSVString.php │ │ │ │ ├── CodePoint.php │ │ │ │ ├── EncodeSet.php │ │ │ │ ├── Exception │ │ │ │ │ ├── EncodingException.php │ │ │ │ │ ├── RegexException.php │ │ │ │ │ └── UndefinedIndexException.php │ │ │ │ ├── PercentEncoder.php │ │ │ │ ├── StringBuffer.php │ │ │ │ ├── StringBufferInterface.php │ │ │ │ ├── StringIteratorInterface.php │ │ │ │ ├── StringList.php │ │ │ │ ├── StringListInterface.php │ │ │ │ ├── USVStringInterface.php │ │ │ │ ├── Utf8String.php │ │ │ │ └── Utf8StringIterator.php │ │ │ ├── Support │ │ │ │ └── EncodingHelper.php │ │ │ ├── URL.php │ │ │ ├── URLRecord.php │ │ │ └── URLSearchParams.php │ │ │ └── tests │ │ │ ├── EncodingHelperTest.php │ │ │ ├── HostParserTest.php │ │ │ ├── Math │ │ │ ├── BrickMathAdapterTest.php │ │ │ ├── MathTestCase.php │ │ │ └── NativeIntAdapterTest.php │ │ │ ├── NullHostTest.php │ │ │ ├── OriginTest.php │ │ │ ├── PathTest.php │ │ │ ├── QueryListTest.php │ │ │ ├── QueryStateTest.php │ │ │ ├── SchemeTest.php │ │ │ ├── StringsTest.php │ │ │ ├── URLRecordTest.php │ │ │ ├── URLSearchParamsTest.php │ │ │ ├── URLTest.php │ │ │ ├── ValidationErrorLogger.php │ │ │ └── WhatWg │ │ │ ├── FailureTest.php │ │ │ ├── PercentEncodingTest.php │ │ │ ├── ToASCIIWindowTest.php │ │ │ ├── URLConstructorTest.php │ │ │ ├── URLEncodedParserTest.php │ │ │ ├── URLOriginTest.php │ │ │ ├── URLSearchParamsAppendTest.php │ │ │ ├── URLSearchParamsConstructorTest.php │ │ │ ├── URLSearchParamsDeleteTest.php │ │ │ ├── URLSearchParamsForeachTest.php │ │ │ ├── URLSearchParamsGetAllTest.php │ │ │ ├── URLSearchParamsGetTest.php │ │ │ ├── URLSearchParamsHasTest.php │ │ │ ├── URLSearchParamsSetTest.php │ │ │ ├── URLSearchParamsSizeTest.php │ │ │ ├── URLSearchParamsSortTest.php │ │ │ ├── URLSearchParamsStringifierTest.php │ │ │ ├── URLSearchParamsTest.php │ │ │ ├── URLSettersTest.php │ │ │ ├── URLStaticsCanParseTest.php │ │ │ ├── URLToJSONTest.php │ │ │ └── WhatwgTestCase.php │ │ └── symfony │ │ ├── deprecation-contracts │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── function.php │ │ ├── polyfill-ctype │ │ ├── Ctype.php │ │ ├── LICENSE │ │ ├── README.md │ │ ├── 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-php80 │ │ ├── LICENSE │ │ ├── Php80.php │ │ ├── PhpToken.php │ │ ├── README.md │ │ ├── Resources │ │ └── stubs │ │ │ ├── Attribute.php │ │ │ ├── PhpToken.php │ │ │ ├── Stringable.php │ │ │ ├── UnhandledMatchError.php │ │ │ └── ValueError.php │ │ ├── bootstrap.php │ │ └── composer.json ├── Encoding │ ├── composer.json │ └── utf8_decoder.php ├── Filesystem │ ├── ByteStream │ │ └── FilesystemWriteStream.php │ ├── Filesystem.php │ ├── FilesystemException.php │ ├── InMemoryFilesystem.php │ ├── Layer │ │ ├── ChrootLayer.php │ │ └── Layer.php │ ├── LocalFilesystem.php │ ├── Mixin │ │ ├── BufferedWriteStreamViaPutContents.php │ │ ├── CopyDirectoryRecursive.php │ │ ├── CopyFileViaStreaming.php │ │ ├── CopyRecursiveViaStreaming.php │ │ ├── GetContentsViaReadStream.php │ │ ├── Interfaces │ │ │ └── InternalizedWriteStream.php │ │ ├── InternalizeWriteStream.php │ │ ├── MkdirRecursive.php │ │ ├── PutContentsViaWriteStream.php │ │ ├── ReadOnlyFilesystem.php │ │ ├── RenameFileViaCopyAndRm.php │ │ └── RmdirRecursive.php │ ├── Path │ │ └── WindowsPath.php │ ├── SQLiteFilesystem.php │ ├── Tests │ │ ├── FilesystemTestCase.php │ │ ├── FunctionsTest.php │ │ ├── InMemoryFilesystemTest.php │ │ ├── LocalFilesystemTest.php │ │ ├── SQLiteFilesystemTest.php │ │ └── UploadedFilesystemTest.php │ ├── UploadedFilesystem.php │ ├── Visitor │ │ ├── FileVisitorEvent.php │ │ └── FilesystemVisitor.php │ ├── composer.json │ └── functions.php ├── Git │ ├── GitEndpoint.php │ ├── GitException.php │ ├── GitFilesystem.php │ ├── GitObjectDecoder.php │ ├── GitObjectEncoder.php │ ├── GitPathDoesNotExistException.php │ ├── GitRemote.php │ ├── GitRemoteException.php │ ├── GitRepository.php │ ├── Model │ │ ├── Commit.php │ │ ├── Tree.php │ │ └── TreeEntry.php │ ├── Protocol │ │ ├── GitProtocolEncoderPipe.php │ │ ├── PackfileEncoderReadStream.php │ │ └── Parser │ │ │ ├── CommitParser.php │ │ │ ├── DeltaResolver.php │ │ │ ├── GitProtocolDecoder.php │ │ │ ├── PackParser.php │ │ │ ├── PacketParser.php │ │ │ ├── ProtocolDemultiplexer.php │ │ │ └── TreeParser.php │ ├── Tests │ │ ├── CommitParserTest.php │ │ ├── DeltaResolverTest.php │ │ ├── GitFilesystemTest.php │ │ ├── GitObjectReadStreamTest.php │ │ ├── GitObjectWriteStreamTest.php │ │ ├── GitProtocolDecoderTest.php │ │ ├── GitProtocolEncoderPipeTest.php │ │ ├── GitRepositoryTest.php │ │ ├── GitServerTest.php │ │ ├── GitTreeParserTest.php │ │ ├── PackParserTest.php │ │ ├── PacketParserTest.php │ │ ├── ProtocolDemultiplexerTest.php │ │ └── fixtures │ │ │ ├── pack-simple.pack │ │ │ ├── pack-tree.pack │ │ │ ├── preface-to-pygmalion.txt │ │ │ ├── woocommerce-response.bin │ │ │ ├── wordpress-develop-response-full.bin │ │ │ └── wordpress-develop-response-no-blobs.bin │ ├── composer.json │ └── functions.php ├── HTML │ ├── class-wp-html-active-formatting-elements.php │ ├── class-wp-html-attribute-token.php │ ├── class-wp-html-decoder.php │ ├── class-wp-html-doctype-info.php │ ├── class-wp-html-open-elements.php │ ├── class-wp-html-processor-state.php │ ├── class-wp-html-processor.php │ ├── class-wp-html-span.php │ ├── class-wp-html-stack-event.php │ ├── class-wp-html-tag-processor.php │ ├── class-wp-html-text-replacement.php │ ├── class-wp-html-token.php │ ├── class-wp-html-unsupported-exception.php │ ├── class-wp-token-map.php │ ├── composer.json │ └── html5-named-character-references.php ├── HttpClient │ ├── ByteStream │ │ ├── ChunkedDecoderReadStream.php │ │ ├── ChunkedEncoderByteTransformer.php │ │ ├── RequestReadStream.php │ │ └── SeekableRequestReadStream.php │ ├── Client.php │ ├── ClientState.php │ ├── Connection.php │ ├── Crawler.php │ ├── HttpClientException.php │ ├── HttpError.php │ ├── Middleware │ │ ├── HttpMiddleware.php │ │ ├── MiddlewareInterface.php │ │ └── RedirectionMiddleware.php │ ├── README.md │ ├── Request.php │ ├── Response.php │ ├── Tests │ │ ├── ClientTestBase.php │ │ ├── CurlTransportTest.php │ │ ├── RequestReadStreamTest.php │ │ ├── SeekableRequestReadStreamTest.php │ │ ├── SocketTransportTest.php │ │ ├── fixtures │ │ │ └── preface-to-pygmalion.txt │ │ └── test-server │ │ │ └── run.php │ ├── Transport │ │ ├── CurlTransport.php │ │ ├── SocketTransport.php │ │ └── TransportInterface.php │ ├── composer.json │ └── examples │ │ ├── concurrent-downloads.php │ │ └── http-proxy.php ├── HttpServer │ ├── IncomingRequest.php │ ├── Response │ │ ├── BufferingResponseWriter.php │ │ ├── ResponseWriteStream.php │ │ ├── StreamingResponseWriter.php │ │ └── TcpResponseWriteStream.php │ ├── StatusCode.php │ ├── TcpServer.php │ └── composer.json ├── Markdown │ ├── MarkdownConsumer.php │ ├── MarkdownImporter.php │ ├── MarkdownProducer.php │ ├── Tests │ │ ├── MarkdownConsumerTest.php │ │ └── MarkdownProducerTest.php │ ├── bin │ │ ├── build │ │ │ ├── DataLiberationBoxCompactor.php │ │ │ ├── box.php │ │ │ ├── core.php │ │ │ ├── smoke-test.php │ │ │ └── truncate-composer-checks.php │ │ └── phar-build.sh │ ├── box.json │ ├── composer.json │ ├── plugin.php │ ├── project.json │ └── vendor-patched │ │ ├── autoload.php │ │ ├── bin │ │ └── yaml-lint │ │ ├── composer │ │ ├── ClassLoader.php │ │ ├── InstalledVersions.php │ │ ├── LICENSE │ │ ├── autoload_classmap.php │ │ ├── autoload_files.php │ │ ├── autoload_namespaces.php │ │ ├── autoload_psr4.php │ │ ├── autoload_real.php │ │ ├── autoload_static.php │ │ ├── installed.json │ │ ├── installed.php │ │ └── platform_check.php │ │ ├── dflydev │ │ └── dot-access-data │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── Data.php │ │ │ ├── DataInterface.php │ │ │ ├── Exception │ │ │ ├── DataException.php │ │ │ ├── InvalidPathException.php │ │ │ └── MissingPathException.php │ │ │ └── Util.php │ │ ├── league │ │ ├── commonmark │ │ │ ├── .phpstorm.meta.php │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ │ ├── CommonMarkConverter.php │ │ │ │ ├── ConverterInterface.php │ │ │ │ ├── Delimiter │ │ │ │ ├── Bracket.php │ │ │ │ ├── Delimiter.php │ │ │ │ ├── DelimiterInterface.php │ │ │ │ ├── DelimiterParser.php │ │ │ │ ├── DelimiterStack.php │ │ │ │ └── Processor │ │ │ │ │ ├── CacheableDelimiterProcessorInterface.php │ │ │ │ │ ├── DelimiterProcessorCollection.php │ │ │ │ │ ├── DelimiterProcessorCollectionInterface.php │ │ │ │ │ ├── DelimiterProcessorInterface.php │ │ │ │ │ └── StaggeredDelimiterProcessor.php │ │ │ │ ├── Environment │ │ │ │ ├── Environment.php │ │ │ │ ├── EnvironmentAwareInterface.php │ │ │ │ ├── EnvironmentBuilderInterface.php │ │ │ │ └── EnvironmentInterface.php │ │ │ │ ├── Event │ │ │ │ ├── AbstractEvent.php │ │ │ │ ├── DocumentParsedEvent.php │ │ │ │ ├── DocumentPreParsedEvent.php │ │ │ │ ├── DocumentPreRenderEvent.php │ │ │ │ ├── DocumentRenderedEvent.php │ │ │ │ └── ListenerData.php │ │ │ │ ├── Exception │ │ │ │ ├── AlreadyInitializedException.php │ │ │ │ ├── CommonMarkException.php │ │ │ │ ├── IOException.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── LogicException.php │ │ │ │ ├── MissingDependencyException.php │ │ │ │ └── UnexpectedEncodingException.php │ │ │ │ ├── Extension │ │ │ │ ├── Attributes │ │ │ │ │ ├── AttributesExtension.php │ │ │ │ │ ├── Event │ │ │ │ │ │ └── AttributesListener.php │ │ │ │ │ ├── Node │ │ │ │ │ │ ├── Attributes.php │ │ │ │ │ │ └── AttributesInline.php │ │ │ │ │ ├── Parser │ │ │ │ │ │ ├── AttributesBlockContinueParser.php │ │ │ │ │ │ ├── AttributesBlockStartParser.php │ │ │ │ │ │ └── AttributesInlineParser.php │ │ │ │ │ └── Util │ │ │ │ │ │ └── AttributesHelper.php │ │ │ │ ├── Autolink │ │ │ │ │ ├── AutolinkExtension.php │ │ │ │ │ ├── EmailAutolinkParser.php │ │ │ │ │ └── UrlAutolinkParser.php │ │ │ │ ├── CommonMark │ │ │ │ │ ├── CommonMarkCoreExtension.php │ │ │ │ │ ├── Delimiter │ │ │ │ │ │ └── Processor │ │ │ │ │ │ │ └── EmphasisDelimiterProcessor.php │ │ │ │ │ ├── Node │ │ │ │ │ │ ├── Block │ │ │ │ │ │ │ ├── BlockQuote.php │ │ │ │ │ │ │ ├── FencedCode.php │ │ │ │ │ │ │ ├── Heading.php │ │ │ │ │ │ │ ├── HtmlBlock.php │ │ │ │ │ │ │ ├── IndentedCode.php │ │ │ │ │ │ │ ├── ListBlock.php │ │ │ │ │ │ │ ├── ListData.php │ │ │ │ │ │ │ ├── ListItem.php │ │ │ │ │ │ │ └── ThematicBreak.php │ │ │ │ │ │ └── Inline │ │ │ │ │ │ │ ├── AbstractWebResource.php │ │ │ │ │ │ │ ├── Code.php │ │ │ │ │ │ │ ├── Emphasis.php │ │ │ │ │ │ │ ├── HtmlInline.php │ │ │ │ │ │ │ ├── Image.php │ │ │ │ │ │ │ ├── Link.php │ │ │ │ │ │ │ └── Strong.php │ │ │ │ │ ├── Parser │ │ │ │ │ │ ├── Block │ │ │ │ │ │ │ ├── BlockQuoteParser.php │ │ │ │ │ │ │ ├── BlockQuoteStartParser.php │ │ │ │ │ │ │ ├── FencedCodeParser.php │ │ │ │ │ │ │ ├── FencedCodeStartParser.php │ │ │ │ │ │ │ ├── HeadingParser.php │ │ │ │ │ │ │ ├── HeadingStartParser.php │ │ │ │ │ │ │ ├── HtmlBlockParser.php │ │ │ │ │ │ │ ├── HtmlBlockStartParser.php │ │ │ │ │ │ │ ├── IndentedCodeParser.php │ │ │ │ │ │ │ ├── IndentedCodeStartParser.php │ │ │ │ │ │ │ ├── ListBlockParser.php │ │ │ │ │ │ │ ├── ListBlockStartParser.php │ │ │ │ │ │ │ ├── ListItemParser.php │ │ │ │ │ │ │ ├── ThematicBreakParser.php │ │ │ │ │ │ │ └── ThematicBreakStartParser.php │ │ │ │ │ │ └── Inline │ │ │ │ │ │ │ ├── AutolinkParser.php │ │ │ │ │ │ │ ├── BacktickParser.php │ │ │ │ │ │ │ ├── BangParser.php │ │ │ │ │ │ │ ├── CloseBracketParser.php │ │ │ │ │ │ │ ├── EntityParser.php │ │ │ │ │ │ │ ├── EscapableParser.php │ │ │ │ │ │ │ ├── HtmlInlineParser.php │ │ │ │ │ │ │ └── OpenBracketParser.php │ │ │ │ │ └── Renderer │ │ │ │ │ │ ├── Block │ │ │ │ │ │ ├── BlockQuoteRenderer.php │ │ │ │ │ │ ├── FencedCodeRenderer.php │ │ │ │ │ │ ├── HeadingRenderer.php │ │ │ │ │ │ ├── HtmlBlockRenderer.php │ │ │ │ │ │ ├── IndentedCodeRenderer.php │ │ │ │ │ │ ├── ListBlockRenderer.php │ │ │ │ │ │ ├── ListItemRenderer.php │ │ │ │ │ │ └── ThematicBreakRenderer.php │ │ │ │ │ │ └── Inline │ │ │ │ │ │ ├── CodeRenderer.php │ │ │ │ │ │ ├── EmphasisRenderer.php │ │ │ │ │ │ ├── HtmlInlineRenderer.php │ │ │ │ │ │ ├── ImageRenderer.php │ │ │ │ │ │ ├── LinkRenderer.php │ │ │ │ │ │ └── StrongRenderer.php │ │ │ │ ├── ConfigurableExtensionInterface.php │ │ │ │ ├── DefaultAttributes │ │ │ │ │ ├── ApplyDefaultAttributesProcessor.php │ │ │ │ │ └── DefaultAttributesExtension.php │ │ │ │ ├── DescriptionList │ │ │ │ │ ├── DescriptionListExtension.php │ │ │ │ │ ├── Event │ │ │ │ │ │ ├── ConsecutiveDescriptionListMerger.php │ │ │ │ │ │ └── LooseDescriptionHandler.php │ │ │ │ │ ├── Node │ │ │ │ │ │ ├── Description.php │ │ │ │ │ │ ├── DescriptionList.php │ │ │ │ │ │ └── DescriptionTerm.php │ │ │ │ │ ├── Parser │ │ │ │ │ │ ├── DescriptionContinueParser.php │ │ │ │ │ │ ├── DescriptionListContinueParser.php │ │ │ │ │ │ ├── DescriptionStartParser.php │ │ │ │ │ │ └── DescriptionTermContinueParser.php │ │ │ │ │ └── Renderer │ │ │ │ │ │ ├── DescriptionListRenderer.php │ │ │ │ │ │ ├── DescriptionRenderer.php │ │ │ │ │ │ └── DescriptionTermRenderer.php │ │ │ │ ├── DisallowedRawHtml │ │ │ │ │ ├── DisallowedRawHtmlExtension.php │ │ │ │ │ └── DisallowedRawHtmlRenderer.php │ │ │ │ ├── Embed │ │ │ │ │ ├── Bridge │ │ │ │ │ │ └── OscaroteroEmbedAdapter.php │ │ │ │ │ ├── DomainFilteringAdapter.php │ │ │ │ │ ├── Embed.php │ │ │ │ │ ├── EmbedAdapterInterface.php │ │ │ │ │ ├── EmbedExtension.php │ │ │ │ │ ├── EmbedParser.php │ │ │ │ │ ├── EmbedProcessor.php │ │ │ │ │ ├── EmbedRenderer.php │ │ │ │ │ └── EmbedStartParser.php │ │ │ │ ├── ExtensionInterface.php │ │ │ │ ├── ExternalLink │ │ │ │ │ ├── ExternalLinkExtension.php │ │ │ │ │ └── ExternalLinkProcessor.php │ │ │ │ ├── Footnote │ │ │ │ │ ├── Event │ │ │ │ │ │ ├── AnonymousFootnotesListener.php │ │ │ │ │ │ ├── FixOrphanedFootnotesAndRefsListener.php │ │ │ │ │ │ ├── GatherFootnotesListener.php │ │ │ │ │ │ └── NumberFootnotesListener.php │ │ │ │ │ ├── FootnoteExtension.php │ │ │ │ │ ├── Node │ │ │ │ │ │ ├── Footnote.php │ │ │ │ │ │ ├── FootnoteBackref.php │ │ │ │ │ │ ├── FootnoteContainer.php │ │ │ │ │ │ └── FootnoteRef.php │ │ │ │ │ ├── Parser │ │ │ │ │ │ ├── AnonymousFootnoteRefParser.php │ │ │ │ │ │ ├── FootnoteParser.php │ │ │ │ │ │ ├── FootnoteRefParser.php │ │ │ │ │ │ └── FootnoteStartParser.php │ │ │ │ │ └── Renderer │ │ │ │ │ │ ├── FootnoteBackrefRenderer.php │ │ │ │ │ │ ├── FootnoteContainerRenderer.php │ │ │ │ │ │ ├── FootnoteRefRenderer.php │ │ │ │ │ │ └── FootnoteRenderer.php │ │ │ │ ├── FrontMatter │ │ │ │ │ ├── Data │ │ │ │ │ │ ├── FrontMatterDataParserInterface.php │ │ │ │ │ │ ├── LibYamlFrontMatterParser.php │ │ │ │ │ │ └── SymfonyYamlFrontMatterParser.php │ │ │ │ │ ├── Exception │ │ │ │ │ │ └── InvalidFrontMatterException.php │ │ │ │ │ ├── FrontMatterExtension.php │ │ │ │ │ ├── FrontMatterParser.php │ │ │ │ │ ├── FrontMatterParserInterface.php │ │ │ │ │ ├── FrontMatterProviderInterface.php │ │ │ │ │ ├── Input │ │ │ │ │ │ └── MarkdownInputWithFrontMatter.php │ │ │ │ │ ├── Listener │ │ │ │ │ │ ├── FrontMatterPostRenderListener.php │ │ │ │ │ │ └── FrontMatterPreParser.php │ │ │ │ │ └── Output │ │ │ │ │ │ └── RenderedContentWithFrontMatter.php │ │ │ │ ├── GithubFlavoredMarkdownExtension.php │ │ │ │ ├── HeadingPermalink │ │ │ │ │ ├── HeadingPermalink.php │ │ │ │ │ ├── HeadingPermalinkExtension.php │ │ │ │ │ ├── HeadingPermalinkProcessor.php │ │ │ │ │ └── HeadingPermalinkRenderer.php │ │ │ │ ├── InlinesOnly │ │ │ │ │ ├── ChildRenderer.php │ │ │ │ │ └── InlinesOnlyExtension.php │ │ │ │ ├── Mention │ │ │ │ │ ├── Generator │ │ │ │ │ │ ├── CallbackGenerator.php │ │ │ │ │ │ ├── MentionGeneratorInterface.php │ │ │ │ │ │ └── StringTemplateLinkGenerator.php │ │ │ │ │ ├── Mention.php │ │ │ │ │ ├── MentionExtension.php │ │ │ │ │ └── MentionParser.php │ │ │ │ ├── SmartPunct │ │ │ │ │ ├── DashParser.php │ │ │ │ │ ├── EllipsesParser.php │ │ │ │ │ ├── Quote.php │ │ │ │ │ ├── QuoteParser.php │ │ │ │ │ ├── QuoteProcessor.php │ │ │ │ │ ├── ReplaceUnpairedQuotesListener.php │ │ │ │ │ └── SmartPunctExtension.php │ │ │ │ ├── Strikethrough │ │ │ │ │ ├── Strikethrough.php │ │ │ │ │ ├── StrikethroughDelimiterProcessor.php │ │ │ │ │ ├── StrikethroughExtension.php │ │ │ │ │ └── StrikethroughRenderer.php │ │ │ │ ├── Table │ │ │ │ │ ├── Table.php │ │ │ │ │ ├── TableCell.php │ │ │ │ │ ├── TableCellRenderer.php │ │ │ │ │ ├── TableExtension.php │ │ │ │ │ ├── TableParser.php │ │ │ │ │ ├── TableRenderer.php │ │ │ │ │ ├── TableRow.php │ │ │ │ │ ├── TableRowRenderer.php │ │ │ │ │ ├── TableSection.php │ │ │ │ │ ├── TableSectionRenderer.php │ │ │ │ │ └── TableStartParser.php │ │ │ │ ├── TableOfContents │ │ │ │ │ ├── Node │ │ │ │ │ │ ├── TableOfContents.php │ │ │ │ │ │ └── TableOfContentsPlaceholder.php │ │ │ │ │ ├── Normalizer │ │ │ │ │ │ ├── AsIsNormalizerStrategy.php │ │ │ │ │ │ ├── FlatNormalizerStrategy.php │ │ │ │ │ │ ├── NormalizerStrategyInterface.php │ │ │ │ │ │ └── RelativeNormalizerStrategy.php │ │ │ │ │ ├── TableOfContentsBuilder.php │ │ │ │ │ ├── TableOfContentsExtension.php │ │ │ │ │ ├── TableOfContentsGenerator.php │ │ │ │ │ ├── TableOfContentsGeneratorInterface.php │ │ │ │ │ ├── TableOfContentsPlaceholderParser.php │ │ │ │ │ ├── TableOfContentsPlaceholderRenderer.php │ │ │ │ │ └── TableOfContentsRenderer.php │ │ │ │ └── TaskList │ │ │ │ │ ├── TaskListExtension.php │ │ │ │ │ ├── TaskListItemMarker.php │ │ │ │ │ ├── TaskListItemMarkerParser.php │ │ │ │ │ └── TaskListItemMarkerRenderer.php │ │ │ │ ├── GithubFlavoredMarkdownConverter.php │ │ │ │ ├── Input │ │ │ │ ├── MarkdownInput.php │ │ │ │ └── MarkdownInputInterface.php │ │ │ │ ├── MarkdownConverter.php │ │ │ │ ├── MarkdownConverterInterface.php │ │ │ │ ├── Node │ │ │ │ ├── Block │ │ │ │ │ ├── AbstractBlock.php │ │ │ │ │ ├── Document.php │ │ │ │ │ ├── Paragraph.php │ │ │ │ │ └── TightBlockInterface.php │ │ │ │ ├── Inline │ │ │ │ │ ├── AbstractInline.php │ │ │ │ │ ├── AbstractStringContainer.php │ │ │ │ │ ├── AdjacentTextMerger.php │ │ │ │ │ ├── DelimitedInterface.php │ │ │ │ │ ├── Newline.php │ │ │ │ │ └── Text.php │ │ │ │ ├── Node.php │ │ │ │ ├── NodeIterator.php │ │ │ │ ├── NodeWalker.php │ │ │ │ ├── NodeWalkerEvent.php │ │ │ │ ├── Query.php │ │ │ │ ├── Query │ │ │ │ │ ├── AndExpr.php │ │ │ │ │ ├── ExpressionInterface.php │ │ │ │ │ └── OrExpr.php │ │ │ │ ├── RawMarkupContainerInterface.php │ │ │ │ ├── StringContainerHelper.php │ │ │ │ └── StringContainerInterface.php │ │ │ │ ├── Normalizer │ │ │ │ ├── SlugNormalizer.php │ │ │ │ ├── TextNormalizer.php │ │ │ │ ├── TextNormalizerInterface.php │ │ │ │ ├── UniqueSlugNormalizer.php │ │ │ │ └── UniqueSlugNormalizerInterface.php │ │ │ │ ├── Output │ │ │ │ ├── RenderedContent.php │ │ │ │ └── RenderedContentInterface.php │ │ │ │ ├── Parser │ │ │ │ ├── Block │ │ │ │ │ ├── AbstractBlockContinueParser.php │ │ │ │ │ ├── BlockContinue.php │ │ │ │ │ ├── BlockContinueParserInterface.php │ │ │ │ │ ├── BlockContinueParserWithInlinesInterface.php │ │ │ │ │ ├── BlockStart.php │ │ │ │ │ ├── BlockStartParserInterface.php │ │ │ │ │ ├── DocumentBlockParser.php │ │ │ │ │ ├── ParagraphParser.php │ │ │ │ │ └── SkipLinesStartingWithLettersParser.php │ │ │ │ ├── Cursor.php │ │ │ │ ├── CursorState.php │ │ │ │ ├── Inline │ │ │ │ │ ├── InlineParserInterface.php │ │ │ │ │ ├── InlineParserMatch.php │ │ │ │ │ └── NewlineParser.php │ │ │ │ ├── InlineParserContext.php │ │ │ │ ├── InlineParserEngine.php │ │ │ │ ├── InlineParserEngineInterface.php │ │ │ │ ├── MarkdownParser.php │ │ │ │ ├── MarkdownParserInterface.php │ │ │ │ ├── MarkdownParserState.php │ │ │ │ ├── MarkdownParserStateInterface.php │ │ │ │ └── ParserLogicException.php │ │ │ │ ├── Reference │ │ │ │ ├── MemoryLimitedReferenceMap.php │ │ │ │ ├── Reference.php │ │ │ │ ├── ReferenceInterface.php │ │ │ │ ├── ReferenceMap.php │ │ │ │ ├── ReferenceMapInterface.php │ │ │ │ ├── ReferenceParser.php │ │ │ │ └── ReferenceableInterface.php │ │ │ │ ├── Renderer │ │ │ │ ├── Block │ │ │ │ │ ├── DocumentRenderer.php │ │ │ │ │ └── ParagraphRenderer.php │ │ │ │ ├── ChildNodeRendererInterface.php │ │ │ │ ├── DocumentRendererInterface.php │ │ │ │ ├── HtmlDecorator.php │ │ │ │ ├── HtmlRenderer.php │ │ │ │ ├── Inline │ │ │ │ │ ├── NewlineRenderer.php │ │ │ │ │ └── TextRenderer.php │ │ │ │ ├── MarkdownRendererInterface.php │ │ │ │ ├── NoMatchingRendererException.php │ │ │ │ └── NodeRendererInterface.php │ │ │ │ ├── Util │ │ │ │ ├── ArrayCollection.php │ │ │ │ ├── Html5EntityDecoder.php │ │ │ │ ├── HtmlElement.php │ │ │ │ ├── HtmlFilter.php │ │ │ │ ├── LinkParserHelper.php │ │ │ │ ├── PrioritizedList.php │ │ │ │ ├── RegexHelper.php │ │ │ │ ├── SpecReader.php │ │ │ │ ├── UrlEncoder.php │ │ │ │ └── Xml.php │ │ │ │ └── Xml │ │ │ │ ├── FallbackNodeXmlRenderer.php │ │ │ │ ├── MarkdownToXmlConverter.php │ │ │ │ ├── XmlNodeRendererInterface.php │ │ │ │ └── XmlRenderer.php │ │ └── config │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── Configuration.php │ │ │ ├── ConfigurationAwareInterface.php │ │ │ ├── ConfigurationBuilderInterface.php │ │ │ ├── ConfigurationInterface.php │ │ │ ├── ConfigurationProviderInterface.php │ │ │ ├── Exception │ │ │ ├── ConfigurationExceptionInterface.php │ │ │ ├── InvalidConfigurationException.php │ │ │ ├── UnknownOptionException.php │ │ │ └── ValidationException.php │ │ │ ├── MutableConfigurationInterface.php │ │ │ ├── ReadOnlyConfiguration.php │ │ │ └── SchemaBuilderInterface.php │ │ ├── nette │ │ ├── schema │ │ │ ├── composer.json │ │ │ ├── license.md │ │ │ ├── readme.md │ │ │ └── src │ │ │ │ └── Schema │ │ │ │ ├── Context.php │ │ │ │ ├── DynamicParameter.php │ │ │ │ ├── Elements │ │ │ │ ├── AnyOf.php │ │ │ │ ├── Base.php │ │ │ │ ├── Structure.php │ │ │ │ └── Type.php │ │ │ │ ├── Expect.php │ │ │ │ ├── Helpers.php │ │ │ │ ├── Message.php │ │ │ │ ├── Processor.php │ │ │ │ ├── Schema.php │ │ │ │ └── ValidationException.php │ │ └── utils │ │ │ ├── .phpstorm.meta.php │ │ │ ├── composer.json │ │ │ ├── license.md │ │ │ ├── readme.md │ │ │ └── src │ │ │ ├── HtmlStringable.php │ │ │ ├── Iterators │ │ │ ├── CachingIterator.php │ │ │ └── Mapper.php │ │ │ ├── SmartObject.php │ │ │ ├── StaticClass.php │ │ │ ├── Translator.php │ │ │ ├── Utils │ │ │ ├── ArrayHash.php │ │ │ ├── ArrayList.php │ │ │ ├── Arrays.php │ │ │ ├── Callback.php │ │ │ ├── DateTime.php │ │ │ ├── FileInfo.php │ │ │ ├── FileSystem.php │ │ │ ├── Finder.php │ │ │ ├── Floats.php │ │ │ ├── Helpers.php │ │ │ ├── Html.php │ │ │ ├── Image.php │ │ │ ├── ImageColor.php │ │ │ ├── ImageType.php │ │ │ ├── Iterables.php │ │ │ ├── Json.php │ │ │ ├── ObjectHelpers.php │ │ │ ├── Paginator.php │ │ │ ├── Random.php │ │ │ ├── Reflection.php │ │ │ ├── ReflectionMethod.php │ │ │ ├── Strings.php │ │ │ ├── Type.php │ │ │ ├── Validators.php │ │ │ └── exceptions.php │ │ │ ├── compatibility.php │ │ │ └── exceptions.php │ │ ├── psr │ │ └── event-dispatcher │ │ │ ├── .editorconfig │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── EventDispatcherInterface.php │ │ │ ├── ListenerProviderInterface.php │ │ │ └── StoppableEventInterface.php │ │ ├── symfony │ │ ├── deprecation-contracts │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── function.php │ │ ├── polyfill-ctype │ │ │ ├── Ctype.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bootstrap.php │ │ │ ├── bootstrap80.php │ │ │ └── composer.json │ │ ├── polyfill-php80 │ │ │ ├── LICENSE │ │ │ ├── Php80.php │ │ │ ├── PhpToken.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ └── stubs │ │ │ │ │ ├── Attribute.php │ │ │ │ │ ├── PhpToken.php │ │ │ │ │ ├── Stringable.php │ │ │ │ │ ├── UnhandledMatchError.php │ │ │ │ │ └── ValueError.php │ │ │ ├── bootstrap.php │ │ │ └── composer.json │ │ └── yaml │ │ │ ├── CHANGELOG.md │ │ │ ├── Command │ │ │ └── LintCommand.php │ │ │ ├── Dumper.php │ │ │ ├── Escaper.php │ │ │ ├── Exception │ │ │ ├── DumpException.php │ │ │ ├── ExceptionInterface.php │ │ │ ├── ParseException.php │ │ │ └── RuntimeException.php │ │ │ ├── Inline.php │ │ │ ├── LICENSE │ │ │ ├── Parser.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ └── bin │ │ │ │ └── yaml-lint │ │ │ ├── Tag │ │ │ └── TaggedValue.php │ │ │ ├── Unescaper.php │ │ │ ├── Yaml.php │ │ │ └── composer.json │ │ └── webuni │ │ └── front-matter │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── compose.yaml │ │ ├── composer.json │ │ ├── sonar-project.properties │ │ └── src │ │ ├── Document.php │ │ ├── FrontMatter.php │ │ ├── FrontMatterChain.php │ │ ├── FrontMatterInterface.php │ │ ├── Haml │ │ └── FrontMatterFilter.php │ │ ├── Markdown │ │ └── FrontMatterLeagueCommonMarkExtension.php │ │ ├── Processor │ │ ├── JsonProcessor.php │ │ ├── JsonWithoutBracesProcessor.php │ │ ├── NeonProcessor.php │ │ ├── ProcessorDecorator.php │ │ ├── ProcessorInterface.php │ │ ├── TomlProcessor.php │ │ └── YamlProcessor.php │ │ ├── Pug │ │ └── PugCommentFrontMatter.php │ │ └── Twig │ │ ├── DataToTwigConvertor.php │ │ ├── FrontMatterLoader.php │ │ └── TwigCommentFrontMatter.php ├── Merge │ ├── Diff │ │ ├── Diff.php │ │ ├── Differ.php │ │ ├── LineDiffer.php │ │ └── MyersDiffer.php │ ├── Merge │ │ ├── Chunk.php │ │ ├── ChunkMerger.php │ │ ├── LineMerger.php │ │ ├── MergeConflict.php │ │ ├── MergeResult.php │ │ └── Merger.php │ ├── MergeException.php │ ├── MergeStrategy.php │ ├── Tests │ │ ├── BlockMarkupMergeTest.php │ │ ├── BlockMarkupMergeValidatorTest.php │ │ ├── DiffTest.php │ │ ├── LineDifferTest.php │ │ └── test-data │ │ │ ├── clean-resolution │ │ │ ├── A_and_B_both_change_title_to_the_same_value_changeA.html │ │ │ ├── A_and_B_both_change_title_to_the_same_value_changeB.html │ │ │ ├── A_and_B_both_change_title_to_the_same_value_merge_result.html │ │ │ ├── A_and_B_both_change_title_to_the_same_value_parent.html │ │ │ ├── A_deletes_first_para_B_deletes_second_para_changeA.html │ │ │ ├── A_deletes_first_para_B_deletes_second_para_changeB.html │ │ │ ├── A_deletes_first_para_B_deletes_second_para_merge_result.html │ │ │ ├── A_deletes_first_para_B_deletes_second_para_parent.html │ │ │ ├── A_stays_the_same_B_adds_para_changeA.html │ │ │ ├── A_stays_the_same_B_adds_para_changeB.html │ │ │ ├── A_stays_the_same_B_adds_para_merge_result.html │ │ │ ├── A_stays_the_same_B_adds_para_parent.html │ │ │ ├── A_stays_the_same_B_appends_text_changeA.html │ │ │ ├── A_stays_the_same_B_appends_text_changeB.html │ │ │ ├── A_stays_the_same_B_appends_text_merge_result.html │ │ │ ├── A_stays_the_same_B_appends_text_parent.html │ │ │ ├── add_text_at_both_sides_of_a_block_changeA.html │ │ │ ├── add_text_at_both_sides_of_a_block_changeB.html │ │ │ ├── add_text_at_both_sides_of_a_block_merge_result.html │ │ │ ├── add_text_at_both_sides_of_a_block_parent.html │ │ │ ├── identical_documents_changeA.html │ │ │ ├── identical_documents_changeB.html │ │ │ ├── identical_documents_merge_result.html │ │ │ ├── identical_documents_parent.html │ │ │ ├── internet_history_changeA.html │ │ │ ├── internet_history_changeB.html │ │ │ ├── internet_history_merge_result.html │ │ │ ├── internet_history_parent.html │ │ │ ├── markdown_case_1_changeA.md │ │ │ ├── markdown_case_1_changeB.md │ │ │ ├── markdown_case_1_merge_result.md │ │ │ ├── markdown_case_1_parent.md │ │ │ ├── remove_paragraph_update_heading_changeA.html │ │ │ ├── remove_paragraph_update_heading_changeB.html │ │ │ ├── remove_paragraph_update_heading_merge_result.html │ │ │ ├── remove_paragraph_update_heading_parent.html │ │ │ ├── sleep_is_essential_changeA.md │ │ │ ├── sleep_is_essential_changeB.md │ │ │ ├── sleep_is_essential_merge_result.md │ │ │ ├── sleep_is_essential_parent.md │ │ │ ├── test_case_1_changeA.txt │ │ │ ├── test_case_1_changeB.txt │ │ │ ├── test_case_1_merge_result.txt │ │ │ ├── test_case_1_parent.txt │ │ │ ├── test_case_2_changeA.md │ │ │ ├── test_case_2_changeB.md │ │ │ ├── test_case_2_merge_result.md │ │ │ ├── test_case_2_parent.md │ │ │ ├── test_case_3_changeA.html │ │ │ ├── test_case_3_changeB.html │ │ │ ├── test_case_3_merge_result.html │ │ │ ├── test_case_3_parent.html │ │ │ ├── wporg_page_changeA.html │ │ │ ├── wporg_page_changeB.html │ │ │ ├── wporg_page_merge_result.html │ │ │ └── wporg_page_parent.html │ │ │ ├── conflicts-during-resolution │ │ │ ├── html_case_1_changeA.html │ │ │ ├── html_case_1_changeB.html │ │ │ ├── html_case_1_merge_result.html │ │ │ ├── html_case_1_parent.html │ │ │ ├── sleep_is_essential_changeA.html │ │ │ ├── sleep_is_essential_changeB.html │ │ │ ├── sleep_is_essential_merge_result.html │ │ │ ├── text_case_2_changeA.txt │ │ │ ├── text_case_2_changeB.txt │ │ │ ├── text_case_2_merge_result.txt │ │ │ └── text_case_2_parent.txt │ │ │ ├── corrupted-merge-results │ │ │ ├── a_in_a.html │ │ │ ├── p_across_block_boundary.html │ │ │ └── unclosed_p.html │ │ │ └── corrupted-resolution │ │ │ ├── corrupted_p_changeA.html │ │ │ ├── corrupted_p_changeB.html │ │ │ ├── corrupted_p_merge_result.html │ │ │ ├── corrupted_p_parent.html │ │ │ ├── tricky_cross_block_text_reshuffle_changeA.html │ │ │ ├── tricky_cross_block_text_reshuffle_changeB.html │ │ │ ├── tricky_cross_block_text_reshuffle_merge_result.html │ │ │ └── tricky_cross_block_text_reshuffle_parent.html │ ├── Validate │ │ ├── BlockMarkupMergeValidator.php │ │ ├── InvalidMergeException.php │ │ └── MergeValidator.php │ ├── __ExperimentalDiffRebaser.php │ ├── composer.json │ ├── functions.php │ ├── rector.php │ └── vendor-patched │ │ └── yetanotherape │ │ └── diff-match-patch │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ ├── phpunit.xml.dist │ │ ├── src │ │ ├── Diff.php │ │ ├── DiffMatchPatch.php │ │ ├── DiffToolkit.php │ │ ├── Matcher.php │ │ ├── Patch.php │ │ ├── PatchObject.php │ │ └── Utils.php │ │ └── tests │ │ ├── ChrBenchmark.php │ │ ├── DiffMatchPatchTest.php │ │ ├── DiffTest.php │ │ ├── DiffToolkitTest.php │ │ ├── MatchTest.php │ │ ├── PatchTest.php │ │ ├── PerformanceTest.php │ │ ├── SimpleDiffBenchmark.php │ │ ├── UtilsTest.php │ │ ├── bootstrap.php │ │ └── fixtures │ │ ├── L_performance1.txt │ │ ├── L_performance2.txt │ │ ├── M_performance1.txt │ │ ├── M_performance2.txt │ │ ├── S_performance1.txt │ │ └── S_performance2.txt ├── Polyfill │ ├── composer.json │ ├── mbstring.php │ ├── php_functions.php │ └── wordpress.php ├── XML │ ├── Tests │ │ └── XMLProcessorTest.php │ ├── XMLDecoder.php │ ├── XMLProcessor.php │ ├── XMLUnsupportedException.php │ └── composer.json └── Zip │ ├── CentralDirectoryEntry.php │ ├── EndCentralDirectoryEntry.php │ ├── FileEntry.php │ ├── Tests │ ├── ZipEncoderTest.php │ ├── ZipFilesystemTest.php │ ├── fixtures │ │ └── childrens-literature.zip │ └── test-server │ │ ├── childrens-literature.zip │ │ └── run.php │ ├── ZipDecoder.php │ ├── ZipEncoder.php │ ├── ZipFilesystem.php │ ├── composer.json │ └── functions.php ├── composer-ci-matrix-tests.json ├── composer.json ├── composer.lock ├── file.php ├── package-lock.json ├── package.json ├── phar-box.json ├── phpcs.xml ├── phpunit.xml └── rector.php /.gitattributes: -------------------------------------------------------------------------------- 1 | # Check out every test-related file using LF (\n) as the line ending. 2 | # 3 | # On Windows, test fixtures are normalized to CRLF (\r\n), but our code 4 | # often expects the result to use LF (\n). For example, WXRWriter 5 | # will always output documents using LF (\n) as the line ending. 6 | # 7 | # Let's make sure we use LF (\n) as the line ending in all test files 8 | # for consistent outcomes across different operating systems. 9 | **/Tests/**/* text eol=lf 10 | /examples export-ignore 11 | /plugins export-ignore 12 | /.github export-ignore 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | **/*/vendor/ 3 | opfs/ 4 | node_modules 5 | .cursor 6 | rest/ 7 | dist/ 8 | outdir/ 9 | .idea/ 10 | .my-notes-git/ 11 | .vscode 12 | test.php 13 | run_phar.php 14 | run_src.php 15 | .phive 16 | vendor-bin 17 | new-wp 18 | .phpunit.result.cache 19 | test.txt 20 | secrets.php 21 | testing-grounds.php 22 | plugins/git-repo/git-test-server-data 23 | *.secret.json 24 | plugins/static-files-editor/build 25 | plugins/static-files-editor/node_modules 26 | url-updater.sh 27 | buntest.php 28 | blueprint-url-updater.json 29 | components/DataLiberation/Tests/test-output-html/ 30 | components/DataLiberation/Tests/test-output-md 31 | blueprint-dev.json 32 | examples/create-wp-site/data-liberation.zip 33 | untracked -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 4, 4 | "useTabs": true, 5 | "semi": true, 6 | "singleQuote": true 7 | } 8 | -------------------------------------------------------------------------------- /bin/build-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | composer build-blueprints-phar 4 | bash bin/build-libraries-phar.sh 5 | bash bin/build-plugins.sh 6 | bash bin/build-examples.sh 7 | -------------------------------------------------------------------------------- /bin/build-examples.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | PROJECT_DIR=$SCRIPT_DIR/.. 5 | 6 | rm -rf $PROJECT_DIR/dist/examples 7 | mkdir -p $PROJECT_DIR/dist/examples 8 | 9 | cp $PROJECT_DIR/dist/plugins/data-liberation.zip $PROJECT_DIR/examples/create-wp-site/data-liberation.zip 10 | cp -r $PROJECT_DIR/examples/create-wp-site/ $PROJECT_DIR/dist/package 11 | cd $PROJECT_DIR/dist 12 | tar -czvf examples/create-wp-site.tar.gz package/{*.js,*.json,*.php,*.zip,cli,playground-protocol,README.md} 13 | rm -rf package 14 | -------------------------------------------------------------------------------- /bin/build-phar/box.php: -------------------------------------------------------------------------------- 1 | __DIR__ . '/uploads', 12 | 'new_site_url' => 'https://smoke-test.org' 13 | ]); 14 | 15 | WordPress\DataLiberation\URL\WPURL::parse('https://example.com'); 16 | 17 | echo 'Stream importer created!'; 18 | 19 | -------------------------------------------------------------------------------- /bin/build-phar/truncate-composer-checks.php: -------------------------------------------------------------------------------- 1 | startBuffering(); 13 | $phar['.box/bin/check-requirements.php'] = ''; 14 | $phar['vendor/composer/platform_check.php'] = ''; // Set to empty string to truncate 15 | $phar->stopBuffering(); 16 | 17 | 18 | -------------------------------------------------------------------------------- /bin/run-server-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # @TODO: Figure out how to set up the dev environment to be as similar to 4 | # production as possible. 5 | npx @wp-playground/cli@latest \ 6 | server \ 7 | --mount=`pwd`/dist:/wordpress/dist \ 8 | --mount=`pwd`/.my-notes-git:/wordpress/wp-content/uploads \ 9 | --blueprint=./blueprint-build.json 10 | -------------------------------------------------------------------------------- /bin/run-server-dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # @TODO: Figure out how to set up the dev environment to be as similar to 4 | # production as possible. 5 | npx @wp-playground/cli@latest \ 6 | server \ 7 | --mount=`pwd`/vendor:/wordpress/wp-content/vendor \ 8 | --mount=`pwd`/components:/wordpress/wp-content/components \ 9 | --mount=`pwd`/plugins/data-liberation:/wordpress/wp-content/plugins/data-liberation \ 10 | --mount=`pwd`/plugins/static-files-editor:/wordpress/wp-content/plugins/static-files-editor \ 11 | --mount=`pwd`/plugins/url-updater:/wordpress/wp-content/plugins/url-updater \ 12 | --mount=`pwd`/plugins/git-repo:/wordpress/wp-content/plugins/git-repo \ 13 | --mount=`pwd`/.my-notes-git:/wordpress/wp-content/uploads \ 14 | --blueprint=./blueprint-dev.json -------------------------------------------------------------------------------- /bootstrap.php: -------------------------------------------------------------------------------- 1 | type = $type; 20 | parent::__construct( $message, 0, $previous ); 21 | } 22 | 23 | public function get_type() { 24 | return $this->type; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/BlockParser/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/blockparser", 3 | "description": "BlockParser component for WordPress.", 4 | "type": "library", 5 | "require": { 6 | "php": ">=7.2" 7 | }, 8 | "authors": [ 9 | { 10 | "name": "Adam Zielinski", 11 | "email": "adam@adamziel.com" 12 | }, 13 | { 14 | "name": "WordPress Team", 15 | "email": "wordpress@wordpress.org" 16 | } 17 | ], 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\BlockParser\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/Blueprints/DataReference/RemoteFile.php: -------------------------------------------------------------------------------- 1 | stream->await_response(); 16 | if ( ! $response->ok() ) { 17 | throw new DataResolutionException( 18 | sprintf( 19 | 'Failed to load the URL from %s. Server responded with %d %s.', 20 | $response->request->url, 21 | $response->status_code, 22 | $response->get_reason_phrase() 23 | ) 24 | ); 25 | } 26 | 27 | return $this->stream; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /components/Blueprints/Exception/BlueprintExecutionException.php: -------------------------------------------------------------------------------- 1 | schemaError = $schemaError; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /components/Blueprints/Exception/DataResolutionException.php: -------------------------------------------------------------------------------- 1 | permission = $permission; 26 | $this->php_api_tip = $php_api_tip; 27 | } 28 | 29 | public function getPermission(): string { 30 | return $this->permission; 31 | } 32 | 33 | public function getPhpApiTip(): string { 34 | return $this->php_api_tip; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /components/Blueprints/ProcessFailedException.php: -------------------------------------------------------------------------------- 1 | process = $process; 18 | parent::__construct( 19 | 'Process `' . $process->getCommandLine() . '` failed with exit code ' . $process->getExitCode() . " and the following stderr output: \n" . $process->getErrorOutput() . "\n" . $process->getOutput(), 20 | $process->getExitCode(), 21 | $previous 22 | ); 23 | } 24 | 25 | public function getProcess(): Process { 26 | return $this->process; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /components/Blueprints/Progress/DoneEvent.php: -------------------------------------------------------------------------------- 1 | path = $path; 27 | $this->options = $options; 28 | } 29 | 30 | public function run( Runtime $runtime, Tracker $tracker ) { 31 | $tracker->setCaption( 'Removing directory ' . $this->path ); 32 | $runtime->getTargetFilesystem()->rmdir( $this->path, $this->options ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /components/Blueprints/Steps/StepInterface.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/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 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | composer.lock 3 | phpunit.xml 4 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/Exception/ExceptionInterface.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 Symfony\Component\Process\Exception; 13 | 14 | /** 15 | * Marker Interface for the Process Component. 16 | * 17 | * @author Johannes M. Schmitt 18 | */ 19 | interface ExceptionInterface { 20 | } 21 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/Exception/InvalidArgumentException.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 Symfony\Component\Process\Exception; 13 | 14 | /** 15 | * InvalidArgumentException for the Process Component. 16 | * 17 | * @author Romain Neutron 18 | */ 19 | class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface { 20 | } 21 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/Exception/LogicException.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 Symfony\Component\Process\Exception; 13 | 14 | /** 15 | * LogicException for the Process Component. 16 | * 17 | * @author Romain Neutron 18 | */ 19 | class LogicException extends \LogicException implements ExceptionInterface { 20 | } 21 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/Exception/RuntimeException.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 Symfony\Component\Process\Exception; 13 | 14 | /** 15 | * RuntimeException for the Process Component. 16 | * 17 | * @author Johannes M. Schmitt 18 | */ 19 | class RuntimeException extends \RuntimeException implements ExceptionInterface { 20 | } 21 | -------------------------------------------------------------------------------- /components/Blueprints/vendor-patched/symfony/process/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/process", 3 | "type": "library", 4 | "description": "Symfony Process Component", 5 | "keywords": [], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Fabien Potencier", 11 | "email": "fabien@symfony.com" 12 | }, 13 | { 14 | "name": "Symfony Community", 15 | "homepage": "https://symfony.com/contributors" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=5.5.9" 20 | }, 21 | "autoload": { 22 | "psr-4": { 23 | "Symfony\\Component\\Process\\": "" 24 | }, 25 | "exclude-from-classmap": [ 26 | "/Tests/" 27 | ] 28 | }, 29 | "minimum-stability": "dev", 30 | "extra": { 31 | "branch-alias": { 32 | "dev-master": "3.3-dev" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /components/ByteStream/BytePipe.php: -------------------------------------------------------------------------------- 1 | =7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\ByteStream\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/CORSProxy/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/corsproxy", 3 | "description": "CORSProxy component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\CORSProxy\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/CORSProxy/dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | php -S 127.0.0.1:5263 4 | -------------------------------------------------------------------------------- /components/CORSProxy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@wp-playground/php-cors-proxy", 3 | "version": "0.0.1", 4 | "description": "", 5 | "private": true 6 | } 7 | -------------------------------------------------------------------------------- /components/CORSProxy/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "playground-php-cors-proxy", 3 | "$schema": "../../../node_modules/nx/schemas/project-schema.json", 4 | "sourceRoot": "packages/playground/php-cors-proxy", 5 | "projectType": "library", 6 | "targets": { 7 | "start": { 8 | "executor": "nx:run-commands", 9 | "options": { 10 | "commands": [ 11 | "PLAYGROUND_CORS_PROXY_DISABLE_RATE_LIMIT=true php -S 127.0.0.1:5263" 12 | ], 13 | "cwd": "packages/playground/php-cors-proxy" 14 | } 15 | }, 16 | "test": { 17 | "executor": "nx:run-commands", 18 | "options": { 19 | "commands": [ 20 | "bash test.sh" 21 | ], 22 | "cwd": "packages/playground/php-cors-proxy" 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/CORSProxy/test-watch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bash test.sh 4 | 5 | fswatch -o *.php ./tests/*.php | while read; do 6 | # Clear the terminal 7 | clear 8 | # Run the phpunit tests 9 | bash test.sh 10 | done 11 | -------------------------------------------------------------------------------- /components/CORSProxy/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | phpunit ./tests/ProxyFunctionsTests.php 4 | -------------------------------------------------------------------------------- /components/CORSProxy/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | block_name = $block_name; 12 | $this->attrs = $attrs; 13 | $this->inner_blocks = $inner_blocks; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /components/DataLiberation/DataFormatConsumer/DataFormatConsumer.php: -------------------------------------------------------------------------------- 1 | Block Markup + Metadata consumer. 7 | * 8 | * Used by the Data Liberation importers to accept data formatted as HTML, Markdown, etc. 9 | * and convert them to WordPress posts. 10 | */ 11 | interface DataFormatConsumer { 12 | /** 13 | * Converts the input document specified in the constructor to block markup. 14 | * 15 | * @return BlocksWithMetadata The consumed block markup and metadata. 16 | */ 17 | public function consume(); 18 | } 19 | -------------------------------------------------------------------------------- /components/DataLiberation/DataFormatProducer/DataFormatProducer.php: -------------------------------------------------------------------------------- 1 | {Data Format} producer. 7 | * 8 | * Used by the Data Liberation exporters for exporting posts to HTML, Markdown, 9 | * and other static formats etc. 10 | */ 11 | interface DataFormatProducer { 12 | /** 13 | * Converts the input document specified in the constructor to block markup. 14 | * 15 | * @return string The data format representing the block markup and metadata 16 | * passed to the constructor. 17 | */ 18 | public function produce(); 19 | } 20 | -------------------------------------------------------------------------------- /components/DataLiberation/DataLiberationException.php: -------------------------------------------------------------------------------- 1 | resource_id = $resource_id; 18 | $this->type = $type; 19 | $this->error = $error; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /components/DataLiberation/Importer/FileVisitorEvent.php: -------------------------------------------------------------------------------- 1 | type = $type; 15 | $this->dir = $dir; 16 | $this->files = $files; 17 | } 18 | 19 | public function is_entering() { 20 | return $this->type === self::EVENT_ENTER; 21 | } 22 | 23 | public function is_exiting() { 24 | return $this->type === self::EVENT_EXIT; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/WPURLTest.php: -------------------------------------------------------------------------------- 1 | assertNotFalse( $parsed_url, 'URL parsing failed' ); 14 | $this->assertEquals( $expected_result, $parsed_url->toString() ); 15 | } 16 | 17 | public static function provider_test_parse_with_base_url() { 18 | return array( 19 | 'Relative file path with base URL' => array( 20 | 'nodejs-development-environment.md', 21 | 'https://wordpress.org', 22 | 'https://wordpress.org/nodejs-development-environment.md', 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/epub-entity-reader/childrens-literature.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/php-toolkit/d4142f5ad34314a3c325b26558f7e649732597d0/components/DataLiberation/Tests/fixtures/epub-entity-reader/childrens-literature.epub -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/filesystem-entity-reader/simple-structure/nested/page1.html: -------------------------------------------------------------------------------- 1 |

Page 1

2 |

This is page 1.

3 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/filesystem-entity-reader/simple-structure/root.html: -------------------------------------------------------------------------------- 1 |

Root

2 |

This is the root page.

3 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/filesystem-entity-reader/with-nested-images-directory/nested/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/php-toolkit/d4142f5ad34314a3c325b26558f7e649732597d0/components/DataLiberation/Tests/fixtures/filesystem-entity-reader/with-nested-images-directory/nested/images/screenshot.png -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/filesystem-entity-reader/with-nested-images-directory/nested/page1.html: -------------------------------------------------------------------------------- 1 |

Page 1

2 |

This is page 1.

3 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/fixtures/filesystem-entity-reader/with-nested-images-directory/root.html: -------------------------------------------------------------------------------- 1 |

Root

2 |

This is the root page.

3 | -------------------------------------------------------------------------------- /components/DataLiberation/Tests/import/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bun ../../../cli/src/cli.ts \ 4 | server \ 5 | --mount=../../:/wordpress/wp-content/plugins/data-liberation \ 6 | --mount=../../../../docs:/wordpress/wp-content/docs \ 7 | --blueprint=./blueprint-import.json 8 | -------------------------------------------------------------------------------- /components/DataLiberation/bin/import/blueprint-import-wxr.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../../blueprints/public/blueprint-schema.json", 3 | "constants": { 4 | "WP_DEBUG": true, 5 | "WP_DEBUG_LOG": true 6 | }, 7 | "login": true, 8 | "steps": [ 9 | { 10 | "step": "activatePlugin", 11 | "pluginPath": "data-liberation/plugin.php" 12 | }, 13 | { 14 | "step": "runPHP", 15 | "code": "files as $file ) {\nif ( $file->isFile() && pathinfo( $file->getPathname(), PATHINFO_EXTENSION ) === 'xml' ) {\ndata_liberation_import( $file->getPathname() );\n}\n}\n};" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /components/DataLiberation/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/data-liberation", 3 | "description": "Data Liberation component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "classmap": [ 20 | "vendor-patched/" 21 | ], 22 | "files": [ 23 | "URL/functions.php" 24 | ], 25 | "psr-4": { 26 | "WordPress\\DataLiberation\\": "", 27 | "Rowbot\\": "vendor-patched/", 28 | "Brick\\": "vendor-patched/" 29 | }, 30 | "exclude-from-classmap": [ 31 | "/Tests/" 32 | ] 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /components/DataLiberation/plugin-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Running the full build of the data liberation plugin" 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # Only include the subset of blueprints-library that we need 7 | # for the importers to work. Don't include the PHP Blueprint 8 | # library yet. 9 | zip -r ./dist/data-liberation-plugin.zip ./*.php ./src \ 10 | ./blueprints-library/src/WordPress/HttpClient \ 11 | ./blueprints-library/src/WordPress/Zip \ 12 | ./blueprints-library/src/WordPress/Util \ 13 | ./blueprints-library/src/WordPress/Streams \ 14 | ./vendor 15 | 16 | echo "Done" 17 | -------------------------------------------------------------------------------- /components/DataLiberation/rector.php: -------------------------------------------------------------------------------- 1 | withPaths( 9 | array( 10 | __DIR__ . '/vendor-patched/brick', 11 | ) 12 | ) 13 | ->withDowngradeSets( 14 | false, 15 | false, 16 | false, 17 | false, 18 | false, 19 | true 20 | ) 21 | ->withTypeCoverageLevel( 0 ); 22 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/README.md: -------------------------------------------------------------------------------- 1 | # Vendor Patches 2 | 3 | The libraries in this directory have been downgraded to PHP 7.2 compatibility using Rector 4 | and some manual fixes. 5 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/brick/math/src/Exception/IntegerOverflowException.php: -------------------------------------------------------------------------------- 1 | =7.2.0" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Psr\\EventDispatcher\\": "src" 23 | } 24 | }, 25 | "extra": { 26 | "branch-alias": { 27 | "dev-master": "1.0.x-dev" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/psr/event-dispatcher/src/EventDispatcherInterface.php: -------------------------------------------------------------------------------- 1 | =8.0.0" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Psr\\Log\\": "src" 23 | } 24 | }, 25 | "extra": { 26 | "branch-alias": { 27 | "dev-master": "3.x-dev" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/psr/log/src/AbstractLogger.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/psr/log/src/NullLogger.php: -------------------------------------------------------------------------------- 1 | logger) { }` 13 | * blocks. 14 | */ 15 | class NullLogger extends AbstractLogger { 16 | /** 17 | * Logs with an arbitrary level. 18 | * 19 | * @param mixed[] $context 20 | * 21 | * @param string|Stringable $message 22 | * 23 | * @throws InvalidArgumentException 24 | */ 25 | public function log( $level, $message, array $context = [] ): void { 26 | // noop 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/idna/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/idna/.gitignore: -------------------------------------------------------------------------------- 1 | composer.phar 2 | composer.lock 3 | /vendor/ 4 | /.vscode/ 5 | /build/ 6 | /tests/data/ 7 | .phpunit.result.cache 8 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/idna/.phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | src 4 | */tests/* 5 | */data/* 6 | */Data/* 7 | */build/* 8 | src/Regex.php 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/idna/bin/generateDataFiles.php: -------------------------------------------------------------------------------- 1 | 'ss', 5 | 962 => 'σ', 6 | 8204 => '', 7 | 8205 => '', 8 | ); 9 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/.gitignore: -------------------------------------------------------------------------------- 1 | composer.phar 2 | composer.lock 3 | /vendor/ 4 | /.vscode/ 5 | /build/ 6 | .phpunit.result.cache 7 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/.phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | src 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [Unreleased] 4 | 5 | ## [1.0.4] - 2024-05-02 6 | 7 | ### Fixed 8 | 9 | - Fix implicit nullable deprecation warning for PHP 8.4 10 | 11 | ## [1.0.3] - 2022-01-10 12 | 13 | ### Changed 14 | 15 | - Update PHPstan to 1.0 16 | - Switched to GitHub Actions 17 | 18 | ## [1.0.2] - 2020-07-15 19 | 20 | ### Added 21 | 22 | - Minor performance improvements 23 | 24 | ## [1.0.1] - 2020-06-16 25 | 26 | ### Fixed 27 | 28 | - When calling `Punycode::decode()`, the case flags array would fail to populate when given an empty array. 29 | 30 | ## [1.0.0] - 2020-06-09 31 | 32 | - Initial release 33 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/phpstan.neon: -------------------------------------------------------------------------------- 1 | includes: 2 | - vendor/phpstan/phpstan-strict-rules/rules.neon 3 | - vendor/phpstan/phpstan-deprecation-rules/rules.neon 4 | 5 | parameters: 6 | level: max 7 | paths: 8 | - src 9 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/punycode/src/Exception/InvalidInputException.php: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | ./src 12 | 13 | 14 | 15 | 16 | ./tests 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/APIParserErrorType.php: -------------------------------------------------------------------------------- 1 | url = $urlRecord; 25 | $this->error = $error; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/Component/Host/AbstractHost.php: -------------------------------------------------------------------------------- 1 | string = $string; 15 | } 16 | 17 | public function toFormattedString(): string { 18 | return $this->string; 19 | } 20 | 21 | public function toString(): string { 22 | return $this->string; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/Component/PathInterface.php: -------------------------------------------------------------------------------- 1 | state = ParserState::AUTHORITY; 18 | 19 | return StatusCode::OK; 20 | } 21 | 22 | // 2. Otherwise, set state to path state, and decrease pointer by 1. 23 | $context->state = ParserState::PATH; 24 | $context->iter->prev(); 25 | 26 | return StatusCode::OK; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/State/State.php: -------------------------------------------------------------------------------- 1 | string ) === 1; 16 | } 17 | 18 | public function toInt( int $base = 10 ): int { 19 | return intval( $this->string, $base ); 20 | } 21 | 22 | public function toPath(): PathSegment { 23 | return new PathSegment( $this->string ); 24 | } 25 | 26 | public function toScheme(): Scheme { 27 | return new Scheme( $this->string ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/String/StringIteratorInterface.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | interface StringIteratorInterface extends SeekableIterator { 13 | public function current(): string; 14 | 15 | public function key(): int; 16 | 17 | public function next(): void; 18 | 19 | public function peek( int $count = 1 ): string; 20 | 21 | public function prev(): void; 22 | 23 | /** 24 | * @param int $position The position to seek to relative to the current position. 25 | */ 26 | 27 | public function seek( $position ): void; 28 | 29 | public function rewind(): void; 30 | 31 | public function valid(): bool; 32 | } 33 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/String/StringList.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class StringList extends AbstractStringList implements StringListInterface { 11 | } 12 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/src/String/StringListInterface.php: -------------------------------------------------------------------------------- 1 | 12 | */ 13 | interface StringListInterface extends Countable, IteratorAggregate { 14 | /** 15 | * @return USVStringInterface 16 | */ 17 | public function first(); 18 | 19 | public function isEmpty(): bool; 20 | 21 | /** 22 | * @return USVStringInterface 23 | */ 24 | public function last(); 25 | 26 | /** 27 | * @return USVStringInterface|null 28 | */ 29 | public function pop(); 30 | 31 | /** 32 | * @param USVStringInterface $item 33 | */ 34 | public function push( $item ): void; 35 | } 36 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/tests/EncodingHelperTest.php: -------------------------------------------------------------------------------- 1 | getSerializer(); 15 | self::assertEmpty( $serializer->toFormattedString() ); 16 | self::assertEmpty( $serializer->toString() ); 17 | } 18 | 19 | public function testNullHostIsEqualOnlyToItself(): void { 20 | $host = new NullHost(); 21 | self::assertTrue( $host->equals( $host ) ); 22 | self::assertTrue( $host->equals( new NullHost() ) ); 23 | self::assertFalse( $host->equals( new StringHost() ) ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/tests/QueryListTest.php: -------------------------------------------------------------------------------- 1 | 'a', 'value' => 'b' ], 14 | [ 'name' => 'a', 'value' => 'c' ], 15 | ]; 16 | $list = new QueryList( $input ); 17 | $list->set( 'Foo', 'Bar' ); 18 | self::assertSame( $input, $list->getIterator()->getArrayCopy() ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/tests/ValidationErrorLogger.php: -------------------------------------------------------------------------------- 1 | messages[] = [ $level, $message, $context ]; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/tests/WhatWg/URLOriginTest.php: -------------------------------------------------------------------------------- 1 | origin ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/rowbot/url/tests/WhatWg/URLStaticsCanParseTest.php: -------------------------------------------------------------------------------- 1 | href ) . '"', json_encode( $a, 0 ) ); 18 | self::assertSame( '"' . $a->href . '"', $a->toJSON() ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/deprecation-contracts/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | The changelog is maintained for all Symfony contracts at the following URL: 4 | https://github.com/symfony/contracts/blob/main/CHANGELOG.md 5 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/polyfill-ctype/README.md: -------------------------------------------------------------------------------- 1 | # Symfony Polyfill / Ctype 2 | 3 | This component provides `ctype_*` functions to users who run php versions without the ctype extension. 4 | 5 | More information can be found in the 6 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). 7 | 8 | # License 9 | 10 | This library is released under the [MIT license](LICENSE). 11 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/polyfill-intl-normalizer/README.md: -------------------------------------------------------------------------------- 1 | # Symfony Polyfill / Intl: Normalizer 2 | 3 | This component provides a fallback implementation for the 4 | [`Normalizer`](https://php.net/Normalizer) class provided 5 | by the [Intl](https://php.net/intl) extension. 6 | 7 | More information can be found in the 8 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). 9 | 10 | # License 11 | 12 | This library is released under the [MIT license](LICENSE). 13 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/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 | if ( PHP_VERSION_ID < 80000 && extension_loaded( 'tokenizer' ) ) { 13 | class PhpToken extends Symfony\Polyfill\Php80\PhpToken { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/polyfill-php80/Resources/stubs/Stringable.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 | if ( PHP_VERSION_ID < 80000 ) { 13 | interface Stringable { 14 | /** 15 | * @return string 16 | */ 17 | public function __toString(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.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 | if ( PHP_VERSION_ID < 80000 ) { 13 | class UnhandledMatchError extends Error { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /components/DataLiberation/vendor-patched/symfony/polyfill-php80/Resources/stubs/ValueError.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 | if ( PHP_VERSION_ID < 80000 ) { 13 | class ValueError extends Error { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /components/Encoding/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/encoding", 3 | "description": "Encoding component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "files": [ 20 | "utf8_decoder.php" 21 | ], 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /components/Filesystem/FilesystemException.php: -------------------------------------------------------------------------------- 1 | $this, 13 | 'source_path' => $from_path, 14 | 'target_filesystem' => $this, 15 | 'target_path' => $to_path, 16 | 'recursive' => $options['recursive'] ?? true, 17 | ) 18 | ); 19 | } 20 | 21 | abstract public function copy_file( $from_path, $to_path, $options ); 22 | } 23 | -------------------------------------------------------------------------------- /components/Filesystem/Mixin/CopyFileViaStreaming.php: -------------------------------------------------------------------------------- 1 | $this, 16 | 'source_path' => $from_path, 17 | 'target_filesystem' => $this, 18 | 'target_path' => $to_path, 19 | ) 20 | ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /components/Filesystem/Mixin/CopyRecursiveViaStreaming.php: -------------------------------------------------------------------------------- 1 | open_read_stream( $path ); 12 | $body = $stream->consume_all(); 13 | $stream->close_reading(); 14 | 15 | return $body; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /components/Filesystem/Mixin/Interfaces/InternalizedWriteStream.php: -------------------------------------------------------------------------------- 1 | is_file( $from_path ) ) { 14 | throw new FilesystemException( sprintf( 'Path is not a file: %s', $from_path ) ); 15 | } 16 | 17 | $this->copy( $from_path, $to_path, $options ); 18 | $this->rm( $from_path ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /components/Filesystem/Mixin/RmdirRecursive.php: -------------------------------------------------------------------------------- 1 | ls( $path ) as $child ) { 13 | $child_path = wp_join_unix_paths( $path, $child ); 14 | if ( $this->is_dir( $child_path ) ) { 15 | $this->rmdir( $child_path, $options ); 16 | } else { 17 | $this->rm( $child_path ); 18 | } 19 | } 20 | } 21 | $this->rmdir_single( $path, $options ); 22 | } 23 | 24 | abstract protected function rmdir_single( $path, $options = array() ); 25 | } 26 | -------------------------------------------------------------------------------- /components/Filesystem/Tests/InMemoryFilesystemTest.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public $files; 15 | 16 | const EVENT_ENTER = 'entering'; 17 | const EVENT_EXIT = 'exiting'; 18 | 19 | public function __construct( $type, $dir, $files = array() ) { 20 | $this->type = $type; 21 | $this->dir = $dir; 22 | $this->files = $files; 23 | } 24 | 25 | public function is_entering() { 26 | return $this->type === self::EVENT_ENTER; 27 | } 28 | 29 | public function is_exiting() { 30 | return $this->type === self::EVENT_EXIT; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /components/Filesystem/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/filesystem", 3 | "description": "Filesystem component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\Filesystem\\": "" 21 | }, 22 | "files": [ 23 | "functions.php" 24 | ], 25 | "exclude-from-classmap": [ 26 | "/Tests/" 27 | ] 28 | }, 29 | "require-dev": { 30 | "phpunit/phpunit": "^9.5" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /components/Git/GitException.php: -------------------------------------------------------------------------------- 1 | =7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\Git\\": "" 21 | }, 22 | "files": [ 23 | "functions.php" 24 | ], 25 | "exclude-from-classmap": [ 26 | "/Tests/" 27 | ] 28 | }, 29 | "require-dev": { 30 | "phpunit/phpunit": "^9.5" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /components/Git/functions.php: -------------------------------------------------------------------------------- 1 | read_object( $tree_hash )->as_tree(); 16 | foreach ( $tree->entries as $entry ) { 17 | if ( $entry->get_mode_bucket() === TreeEntry::FILE_MODE_DIRECTORY ) { 18 | $trees[] = $entry->hash; 19 | } 20 | 21 | if ( $object_types === null || in_array( $entry->get_mode_bucket(), $object_types ) ) { 22 | $oids[ $entry->hash ] = true; 23 | } 24 | } 25 | } 26 | 27 | return array_keys( $oids ); 28 | } 29 | -------------------------------------------------------------------------------- /components/HTML/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/html", 3 | "description": "HTML component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "classmap": [ 20 | "./" 21 | ], 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/HttpClient/ByteStream/ChunkedEncoderByteTransformer.php: -------------------------------------------------------------------------------- 1 | 13 | * 14 | * @param string $bytes The bytes to encode. 15 | */ 16 | public function filter_bytes( $bytes ): string { 17 | if ( strlen( $bytes ) === 0 ) { 18 | return ""; 19 | } 20 | $chunk_size = strtoupper( dechex( strlen( $bytes ) ) ); 21 | 22 | return $chunk_size . "\r\n" . $bytes . "\r\n"; 23 | } 24 | 25 | public function flush(): string { 26 | return "0\r\n\r\n"; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /components/HttpClient/Connection.php: -------------------------------------------------------------------------------- 1 | request = $request; 15 | } 16 | 17 | public function consume_buffer( $length = null ) { 18 | if ( $length === null ) { 19 | $length = strlen( $this->response_buffer ); 20 | } 21 | $buffer = substr( $this->response_buffer, 0, $length ); 22 | $this->response_buffer = substr( $this->response_buffer, $length ); 23 | 24 | return $buffer; 25 | } 26 | 27 | public function time_elapsed_ms() { 28 | return (microtime( true ) - $this->started_at) * 1000; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/HttpClient/HttpClientException.php: -------------------------------------------------------------------------------- 1 | request = $request; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /components/HttpClient/HttpError.php: -------------------------------------------------------------------------------- 1 | message = $message; 13 | $this->request = $request; 14 | parent::__construct( $message ); 15 | } 16 | 17 | public function __toString() { 18 | $url = $this->request->url ?? ''; 19 | if (strlen($url) > 100) { 20 | $url = substr($url, 0, 97) . '...'; 21 | } 22 | return sprintf( 23 | '%s (Request: %s, %s)', 24 | $this->message, 25 | $this->request->id ?? 'unknown', 26 | $url 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/HttpClient/Middleware/MiddlewareInterface.php: -------------------------------------------------------------------------------- 1 | =7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\HttpClient\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/HttpServer/Response/ResponseWriteStream.php: -------------------------------------------------------------------------------- 1 | =7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\HttpServer\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/Markdown/bin/build/DataLiberationBoxCompactor.php: -------------------------------------------------------------------------------- 1 | 'file://' . $markdown_root, 16 | 'local_markdown_assets_root' => $markdown_root, 17 | 'local_markdown_assets_url_prefix' => '@site/', 18 | ), 19 | $import['cursor'] ?? null 20 | ); 21 | 22 | echo 'Markdown importer created!'; 23 | -------------------------------------------------------------------------------- /components/Markdown/box.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/box-project/box/refs/heads/main/res/schema.json", 3 | "main": "src/bootstrap.php", 4 | "output": "dist/data-liberation-markdown.phar", 5 | "force-autodiscovery": true, 6 | "compactors": [ 7 | "KevinGH\\Box\\Compactor\\Php", 8 | "DataLiberationBoxCompactor" 9 | ], 10 | "annotations": false, 11 | "directories": ["src/", "vendor/"] 12 | } 13 | -------------------------------------------------------------------------------- /components/Markdown/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/markdown", 3 | "description": "Markdown component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "classmap": [ 20 | "vendor-patched" 21 | ], 22 | "psr-4": { 23 | "WordPress\\Markdown\\": "" 24 | }, 25 | "exclude-from-classmap": [ 26 | "/Tests/" 27 | ] 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/Markdown/plugin.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/symfony/deprecation-contracts/function.php', 10 | '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', 11 | 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', 12 | ); 13 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/webuni/front-matter/src'), 10 | 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 11 | 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), 12 | 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), 13 | 'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'), 14 | 'League\\Config\\' => array($vendorDir . '/league/config/src'), 15 | 'League\\CommonMark\\' => array($vendorDir . '/league/commonmark/src'), 16 | 'Dflydev\\DotAccessData\\' => array($vendorDir . '/dflydev/dot-access-data/src'), 17 | ); 18 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/dflydev/dot-access-data/src/Exception/DataException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Environment; 15 | 16 | interface EnvironmentAwareInterface 17 | { 18 | public function setEnvironment(EnvironmentInterface $environment): void; 19 | } 20 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/AlreadyInitializedException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | class AlreadyInitializedException extends LogicException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/CommonMarkException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | /** 17 | * Marker interface for all exceptions thrown by this library. 18 | */ 19 | interface CommonMarkException extends \Throwable 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/IOException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | class IOException extends \RuntimeException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | class InvalidArgumentException extends \InvalidArgumentException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/LogicException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | class LogicException extends \LogicException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/MissingDependencyException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | class MissingDependencyException extends \RuntimeException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Exception/UnexpectedEncodingException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Exception; 15 | 16 | final class UnexpectedEncodingException extends \RuntimeException implements CommonMarkException 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/CommonMark/Node/Block/BlockQuote.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\CommonMark\Node\Block; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | class BlockQuote extends AbstractBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/CommonMark/Node/Block/ThematicBreak.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\CommonMark\Node\Block; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | class ThematicBreak extends AbstractBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/CommonMark/Node/Inline/Code.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Extension\CommonMark\Node\Inline; 18 | 19 | use League\CommonMark\Node\Inline\AbstractStringContainer; 20 | 21 | class Code extends AbstractStringContainer 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/CommonMark/Node/Inline/HtmlInline.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Extension\CommonMark\Node\Inline; 18 | 19 | use League\CommonMark\Node\Inline\AbstractStringContainer; 20 | use League\CommonMark\Node\RawMarkupContainerInterface; 21 | 22 | final class HtmlInline extends AbstractStringContainer implements RawMarkupContainerInterface 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/ConfigurableExtensionInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension; 15 | 16 | use League\Config\ConfigurationBuilderInterface; 17 | 18 | interface ConfigurableExtensionInterface extends ExtensionInterface 19 | { 20 | public function configureSchema(ConfigurationBuilderInterface $builder): void; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/DescriptionList/Node/DescriptionList.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\DescriptionList\Node; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | class DescriptionList extends AbstractBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/DescriptionList/Node/DescriptionTerm.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\DescriptionList\Node; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | class DescriptionTerm extends AbstractBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/Embed/EmbedAdapterInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\Embed; 15 | 16 | /** 17 | * Interface for a service which updates the embed code(s) for the given array of embeds 18 | */ 19 | interface EmbedAdapterInterface 20 | { 21 | /** 22 | * @param Embed[] $embeds 23 | */ 24 | public function updateEmbeds(array $embeds): void; 25 | } 26 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/ExtensionInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Extension; 18 | 19 | use League\CommonMark\Environment\EnvironmentBuilderInterface; 20 | 21 | interface ExtensionInterface 22 | { 23 | public function register(EnvironmentBuilderInterface $environment): void; 24 | } 25 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/Footnote/Node/FootnoteContainer.php: -------------------------------------------------------------------------------- 1 | 7 | * (c) Rezo Zero / Ambroise Maupate 8 | * 9 | * For the full copyright and license information, please view the LICENSE 10 | * file that was distributed with this source code. 11 | */ 12 | 13 | declare(strict_types=1); 14 | 15 | namespace League\CommonMark\Extension\Footnote\Node; 16 | 17 | use League\CommonMark\Node\Block\AbstractBlock; 18 | 19 | final class FootnoteContainer extends AbstractBlock 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/FrontMatter/Exception/InvalidFrontMatterException.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 | declare(strict_types=1); 13 | 14 | namespace League\CommonMark\Extension\FrontMatter\Exception; 15 | 16 | use League\CommonMark\Exception\CommonMarkException; 17 | 18 | class InvalidFrontMatterException extends \RuntimeException implements CommonMarkException 19 | { 20 | public static function wrap(\Throwable $t): self 21 | { 22 | return new InvalidFrontMatterException('Failed to parse front matter: ' . $t->getMessage(), 0, $t); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/FrontMatter/FrontMatterParserInterface.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 | declare(strict_types=1); 13 | 14 | namespace League\CommonMark\Extension\FrontMatter; 15 | 16 | use League\CommonMark\Extension\FrontMatter\Input\MarkdownInputWithFrontMatter; 17 | 18 | interface FrontMatterParserInterface 19 | { 20 | public function parse(string $markdownContent): MarkdownInputWithFrontMatter; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/FrontMatter/FrontMatterProviderInterface.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 | declare(strict_types=1); 13 | 14 | namespace League\CommonMark\Extension\FrontMatter; 15 | 16 | interface FrontMatterProviderInterface 17 | { 18 | /** 19 | * @return mixed|null 20 | */ 21 | public function getFrontMatter(); 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/Mention/Generator/MentionGeneratorInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\Mention\Generator; 15 | 16 | use League\CommonMark\Extension\Mention\Mention; 17 | use League\CommonMark\Node\Inline\AbstractInline; 18 | 19 | interface MentionGeneratorInterface 20 | { 21 | public function generateMention(Mention $mention): ?AbstractInline; 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/Table/Table.php: -------------------------------------------------------------------------------- 1 | 9 | * (c) Webuni s.r.o. 10 | * (c) Colin O'Dell 11 | * 12 | * For the full copyright and license information, please view the LICENSE 13 | * file that was distributed with this source code. 14 | */ 15 | 16 | namespace League\CommonMark\Extension\Table; 17 | 18 | use League\CommonMark\Node\Block\AbstractBlock; 19 | 20 | final class Table extends AbstractBlock 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/Table/TableRow.php: -------------------------------------------------------------------------------- 1 | 9 | * (c) Webuni s.r.o. 10 | * (c) Colin O'Dell 11 | * 12 | * For the full copyright and license information, please view the LICENSE 13 | * file that was distributed with this source code. 14 | */ 15 | 16 | namespace League\CommonMark\Extension\Table; 17 | 18 | use League\CommonMark\Node\Block\AbstractBlock; 19 | 20 | final class TableRow extends AbstractBlock 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/TableOfContents/Node/TableOfContents.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\TableOfContents\Node; 15 | 16 | use League\CommonMark\Extension\CommonMark\Node\Block\ListBlock; 17 | 18 | final class TableOfContents extends ListBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/TableOfContents/Node/TableOfContentsPlaceholder.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\TableOfContents\Node; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | final class TableOfContentsPlaceholder extends AbstractBlock 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/TableOfContents/Normalizer/NormalizerStrategyInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\TableOfContents\Normalizer; 15 | 16 | use League\CommonMark\Extension\CommonMark\Node\Block\ListItem; 17 | 18 | interface NormalizerStrategyInterface 19 | { 20 | public function addItem(int $level, ListItem $listItemToAdd): void; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Extension/TableOfContents/TableOfContentsGeneratorInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Extension\TableOfContents; 15 | 16 | use League\CommonMark\Extension\TableOfContents\Node\TableOfContents; 17 | use League\CommonMark\Node\Block\Document; 18 | 19 | interface TableOfContentsGeneratorInterface 20 | { 21 | public function generate(Document $document): ?TableOfContents; 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Input/MarkdownInputInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Input; 15 | 16 | interface MarkdownInputInterface 17 | { 18 | public function getContent(): string; 19 | 20 | /** 21 | * @return iterable 22 | */ 23 | public function getLines(): iterable; 24 | 25 | public function getLineCount(): int; 26 | } 27 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Block/Paragraph.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Node\Block; 18 | 19 | class Paragraph extends AbstractBlock 20 | { 21 | /** @internal 22 | * @var bool */ 23 | public $onlyContainsLinkReferenceDefinitions = false; 24 | } 25 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Block/TightBlockInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Node\Block; 15 | 16 | interface TightBlockInterface 17 | { 18 | public function isTight(): bool; 19 | 20 | public function setTight(bool $tight): void; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Inline/AbstractInline.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Node\Inline; 18 | 19 | use League\CommonMark\Node\Node; 20 | 21 | abstract class AbstractInline extends Node 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Inline/DelimitedInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Node\Inline; 15 | 16 | interface DelimitedInterface 17 | { 18 | public function getOpeningDelimiter(): string; 19 | 20 | public function getClosingDelimiter(): string; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Inline/Text.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Node\Inline; 18 | 19 | final class Text extends AbstractStringContainer 20 | { 21 | public function append(string $literal): void 22 | { 23 | $this->literal .= $literal; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/Query/ExpressionInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Node\Query; 15 | 16 | use League\CommonMark\Node\Node; 17 | 18 | interface ExpressionInterface 19 | { 20 | public function __invoke(Node $node): bool; 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/RawMarkupContainerInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Node; 15 | 16 | /** 17 | * Interface for a node which contains raw, unprocessed markup (like HTML) 18 | */ 19 | interface RawMarkupContainerInterface extends StringContainerInterface 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Node/StringContainerInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Node; 18 | 19 | /** 20 | * Interface for a node which directly contains line(s) of text 21 | */ 22 | interface StringContainerInterface 23 | { 24 | public function setLiteral(string $literal): void; 25 | 26 | public function getLiteral(): string; 27 | } 28 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Output/RenderedContentInterface.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 | declare(strict_types=1); 13 | 14 | namespace League\CommonMark\Output; 15 | 16 | use League\CommonMark\Node\Block\Document; 17 | 18 | interface RenderedContentInterface extends \Stringable 19 | { 20 | /** 21 | * @psalm-mutation-free 22 | */ 23 | public function getDocument(): Document; 24 | 25 | /** 26 | * @psalm-mutation-free 27 | */ 28 | public function getContent(): string; 29 | } 30 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Parser/Block/BlockContinueParserWithInlinesInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Parser\Block; 15 | 16 | use League\CommonMark\Parser\InlineParserEngineInterface; 17 | 18 | interface BlockContinueParserWithInlinesInterface extends BlockContinueParserInterface 19 | { 20 | /** 21 | * Parse any inlines inside of the current block 22 | */ 23 | public function parseInlines(InlineParserEngineInterface $inlineParser): void; 24 | } 25 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Parser/Inline/InlineParserInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Parser\Inline; 15 | 16 | use League\CommonMark\Parser\InlineParserContext; 17 | 18 | interface InlineParserInterface 19 | { 20 | public function getMatchDefinition(): InlineParserMatch; 21 | 22 | public function parse(InlineParserContext $inlineContext): bool; 23 | } 24 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Parser/InlineParserEngineInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Parser; 15 | 16 | use League\CommonMark\Node\Block\AbstractBlock; 17 | 18 | /** 19 | * Parser for inline content (text, links, emphasized text, etc). 20 | */ 21 | interface InlineParserEngineInterface 22 | { 23 | /** 24 | * Parse the given contents as inlines and insert them into the given block 25 | */ 26 | public function parse(string $contents, AbstractBlock $block): void; 27 | } 28 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Parser/MarkdownParserInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Parser; 15 | 16 | use League\CommonMark\Exception\CommonMarkException; 17 | use League\CommonMark\Node\Block\Document; 18 | 19 | interface MarkdownParserInterface 20 | { 21 | /** 22 | * @throws CommonMarkException 23 | */ 24 | public function parse(string $input): Document; 25 | } 26 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Parser/ParserLogicException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Parser; 15 | 16 | use League\CommonMark\Exception\CommonMarkException; 17 | 18 | class ParserLogicException extends \LogicException implements CommonMarkException 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Reference/ReferenceInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 11 | * - (c) John MacFarlane 12 | * 13 | * For the full copyright and license information, please view the LICENSE 14 | * file that was distributed with this source code. 15 | */ 16 | 17 | namespace League\CommonMark\Reference; 18 | 19 | /** 20 | * Link reference 21 | */ 22 | interface ReferenceInterface 23 | { 24 | public function getLabel(): string; 25 | 26 | public function getDestination(): string; 27 | 28 | public function getTitle(): string; 29 | } 30 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Reference/ReferenceableInterface.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 | declare(strict_types=1); 13 | 14 | namespace League\CommonMark\Reference; 15 | 16 | interface ReferenceableInterface 17 | { 18 | public function getReference(): ReferenceInterface; 19 | } 20 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Renderer/NoMatchingRendererException.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Renderer; 15 | 16 | use League\CommonMark\Exception\LogicException; 17 | 18 | class NoMatchingRendererException extends LogicException 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Renderer/NodeRendererInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Renderer; 15 | 16 | use League\CommonMark\Exception\InvalidArgumentException; 17 | use League\CommonMark\Node\Node; 18 | 19 | interface NodeRendererInterface 20 | { 21 | /** 22 | * @return \Stringable|string|null 23 | * 24 | * @throws InvalidArgumentException if the wrong type of Node is provided 25 | */ 26 | public function render(Node $node, ChildNodeRendererInterface $childRenderer); 27 | } 28 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/commonmark/src/Xml/XmlNodeRendererInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\CommonMark\Xml; 15 | 16 | use League\CommonMark\Node\Node; 17 | 18 | interface XmlNodeRendererInterface 19 | { 20 | public function getXmlTagName(Node $node): string; 21 | 22 | /** 23 | * @return array 24 | * 25 | * @psalm-return array 26 | */ 27 | public function getXmlAttributes(Node $node): array; 28 | } 29 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/config/src/ConfigurationAwareInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\Config; 15 | 16 | /** 17 | * Implement this class to facilitate setter injection of the configuration where needed 18 | */ 19 | interface ConfigurationAwareInterface 20 | { 21 | public function setConfiguration(ConfigurationInterface $configuration): void; 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/config/src/ConfigurationBuilderInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\Config; 15 | 16 | /** 17 | * An interface that provides the ability to set both the schema and configuration values 18 | */ 19 | interface ConfigurationBuilderInterface extends MutableConfigurationInterface, SchemaBuilderInterface 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/config/src/ConfigurationProviderInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\Config; 15 | 16 | /** 17 | * Interface for a service which provides a readable configuration object 18 | */ 19 | interface ConfigurationProviderInterface 20 | { 21 | public function getConfiguration(): ConfigurationInterface; 22 | } 23 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/config/src/Exception/ConfigurationExceptionInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\Config\Exception; 15 | 16 | /** 17 | * Marker interface for any/all exceptions thrown by this library 18 | */ 19 | interface ConfigurationExceptionInterface extends \Throwable 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/league/config/src/SchemaBuilderInterface.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace League\Config; 15 | 16 | use Nette\Schema\Schema; 17 | 18 | /** 19 | * Interface that allows new schemas to be added to a configuration 20 | */ 21 | interface SchemaBuilderInterface 22 | { 23 | /** 24 | * Registers a new configuration schema at the given top-level key 25 | */ 26 | public function addSchema(string $key, Schema $schema): void; 27 | } 28 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/nette/schema/src/Schema/DynamicParameter.php: -------------------------------------------------------------------------------- 1 | callback = $callback; 26 | } 27 | 28 | 29 | /** 30 | * @return mixed 31 | */ 32 | public function current() 33 | { 34 | return ($this->callback)(parent::current(), parent::key()); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/nette/utils/src/StaticClass.php: -------------------------------------------------------------------------------- 1 | =7.2.0" 19 | }, 20 | "autoload": { 21 | "psr-4": { 22 | "Psr\\EventDispatcher\\": "src/" 23 | } 24 | }, 25 | "extra": { 26 | "branch-alias": { 27 | "dev-master": "1.0.x-dev" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/psr/event-dispatcher/src/EventDispatcherInterface.php: -------------------------------------------------------------------------------- 1 | =8.1" 19 | }, 20 | "autoload": { 21 | "files": [ 22 | "function.php" 23 | ] 24 | }, 25 | "minimum-stability": "dev", 26 | "extra": { 27 | "branch-alias": { 28 | "dev-main": "3.5-dev" 29 | }, 30 | "thanks": { 31 | "name": "symfony/contracts", 32 | "url": "https://github.com/symfony/contracts" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/polyfill-ctype/README.md: -------------------------------------------------------------------------------- 1 | # Symfony Polyfill / Ctype 2 | 3 | This component provides `ctype_*` functions to users who run php versions without the ctype extension. 4 | 5 | More information can be found in the 6 | [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). 7 | 8 | # License 9 | 10 | This library is released under the [MIT license](LICENSE). 11 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/polyfill-php80/Resources/stubs/PhpToken.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 | if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) { 13 | class PhpToken extends Symfony\Polyfill\Php80\PhpToken 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/polyfill-php80/Resources/stubs/Stringable.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 | if (\PHP_VERSION_ID < 80000) { 13 | interface Stringable 14 | { 15 | /** 16 | * @return string 17 | */ 18 | public function __toString(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.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 | if (\PHP_VERSION_ID < 80000) { 13 | class UnhandledMatchError extends Error 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/polyfill-php80/Resources/stubs/ValueError.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 | if (\PHP_VERSION_ID < 80000) { 13 | class ValueError extends Error 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/yaml/Exception/DumpException.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 Symfony\Component\Yaml\Exception; 13 | 14 | /** 15 | * Exception class thrown when an error occurs during dumping. 16 | * 17 | * @author Fabien Potencier 18 | */ 19 | class DumpException extends RuntimeException 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/yaml/Exception/ExceptionInterface.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 Symfony\Component\Yaml\Exception; 13 | 14 | /** 15 | * Exception interface for all exceptions thrown by the component. 16 | * 17 | * @author Fabien Potencier 18 | */ 19 | interface ExceptionInterface extends \Throwable 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/yaml/Exception/RuntimeException.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 Symfony\Component\Yaml\Exception; 13 | 14 | /** 15 | * Exception class thrown when an error occurs during parsing. 16 | * 17 | * @author Romain Neutron 18 | */ 19 | class RuntimeException extends \RuntimeException implements ExceptionInterface 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/symfony/yaml/README.md: -------------------------------------------------------------------------------- 1 | # Yaml Component 2 | 3 | The Yaml component loads and dumps YAML files. 4 | 5 | ## Resources 6 | 7 | - [Documentation](https://symfony.com/doc/current/components/yaml.html) 8 | - [Contributing](https://symfony.com/doc/current/contributing/index.html) 9 | - [Report issues](https://github.com/symfony/symfony/issues) and 10 | [send Pull Requests](https://github.com/symfony/symfony/pulls) 11 | in the [main Symfony repository](https://github.com/symfony/symfony) 12 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/webuni/front-matter/compose.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | php: 3 | image: 'minidocks/php:${PHP_VERSION:-8.3}' 4 | volumes: 5 | - .:$PWD 6 | - ~/.composer/cache:/composer-cache 7 | - ~/.composer/auth.json:/composer/auth.json 8 | environment: 9 | PATH_SUFFIX: './vendor/bin' 10 | working_dir: $PWD 11 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/webuni/front-matter/sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.organization=webuni 2 | sonar.projectKey=webuni_front-matter 3 | 4 | sonar.sources=src 5 | sonar.tests=tests 6 | sonar.php.coverage.reportPaths=coverage.xml 7 | -------------------------------------------------------------------------------- /components/Markdown/vendor-patched/webuni/front-matter/src/Processor/TomlProcessor.php: -------------------------------------------------------------------------------- 1 | 7 | * (c) Webuni s.r.o. 8 | * 9 | * For the full copyright and license information, please view the LICENSE 10 | * file that was distributed with this source code. 11 | */ 12 | 13 | namespace Webuni\FrontMatter\Processor; 14 | 15 | use Yosymfony\Toml\Toml; 16 | 17 | final class TomlProcessor implements ProcessorInterface 18 | { 19 | public function parse(string $string): array 20 | { 21 | return (array) Toml::parse($string); 22 | } 23 | 24 | public function dump(array $data): string 25 | { 26 | throw new \BadMethodCallException('Dump for Toml is not implemented.'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /components/Merge/Diff/Differ.php: -------------------------------------------------------------------------------- 1 | dmp = new DiffMatchPatch(); 12 | } 13 | 14 | public function diff( string $oldString, string $newString ): Diff { 15 | $diff = $this->dmp->diff_main( $oldString, $newString, false ); 16 | $this->dmp->diff_cleanupSemantic( $diff ); 17 | $this->dmp->diff_cleanupEfficiency( $diff ); 18 | 19 | return new Diff( $diff ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /components/Merge/Merge/Chunk.php: -------------------------------------------------------------------------------- 1 | base = $base; 17 | $this->inserted = $inserted; 18 | $this->deleted = $deleted; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /components/Merge/Merge/MergeConflict.php: -------------------------------------------------------------------------------- 1 | ours = $ours; 17 | $this->theirs = $theirs; 18 | $this->options = $options; 19 | } 20 | 21 | public function get_message() { 22 | return $this->options['message'] ?? ''; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /components/Merge/Merge/Merger.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

A paragraph of text.

6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_and_B_both_change_title_to_the_same_value_changeB.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

A paragraph of text.

6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_and_B_both_change_title_to_the_same_value_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

A paragraph of text.

6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_and_B_both_change_title_to_the_same_value_parent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

A paragraph of text.

6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_deletes_first_para_B_deletes_second_para_changeA.html: -------------------------------------------------------------------------------- 1 | 2 |

First paragraph

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_deletes_first_para_B_deletes_second_para_changeB.html: -------------------------------------------------------------------------------- 1 | 2 |

Second paragraph

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_deletes_first_para_B_deletes_second_para_merge_result.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/php-toolkit/d4142f5ad34314a3c325b26558f7e649732597d0/components/Merge/Tests/test-data/clean-resolution/A_deletes_first_para_B_deletes_second_para_merge_result.html -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_deletes_first_para_B_deletes_second_para_parent.html: -------------------------------------------------------------------------------- 1 | 2 |

First paragraph

3 | 4 | 5 | 6 |

Second paragraph

7 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_adds_para_changeA.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

heya saving nice

6 | 7 | 8 | 9 |

Adding line

10 | 11 | 12 | 13 |

And another

14 | 15 | 16 | 17 |

New section

18 | 19 | 20 | 21 |

Did you know...?

22 | 23 | 24 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_adds_para_changeB.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

heya saving nice

6 | 7 | 8 | 9 |

Adding line

10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_adds_para_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

heya saving nice

6 | 7 | 8 | 9 |

Adding line

10 | 11 | 12 | 13 |

And another

14 | 15 | 16 | 17 |

New section

18 | 19 | 20 | 21 |

Did you know...?

22 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_adds_para_parent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

heya saving nice

7 | 8 | 9 | 10 |

Adding line

11 | 12 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_appends_text_changeA.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

The Data Liberation project

6 | 7 | 8 | 9 |

Piszę nic nie tracę. Piszę po lewej! i pisze i

10 | 11 | 12 | 13 |

A teraz dodam nagłówka!

14 | 15 | 16 | 17 |

I treść. Piszę po prawej!

18 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_appends_text_changeB.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

The Data Liberation project

6 | 7 | 8 | 9 |

Piszę nic nie tracę. Piszę po lewej! i pisze i dalej pisze i wciaz pisze i pisze asupe iw

10 | 11 | 12 | 13 |

A teraz dodam nagłówka!

14 | 15 | 16 | 17 |

I treść. Piszę po prawej!

18 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_appends_text_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

The Data Liberation project

6 | 7 | 8 | 9 |

Piszę nic nie tracę. Piszę po lewej! i pisze i dalej pisze i wciaz pisze i pisze asupe iw

10 | 11 | 12 | 13 |

A teraz dodam nagłówka!

14 | 15 | 16 | 17 |

I treść. Piszę po prawej!

18 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/A_stays_the_same_B_appends_text_parent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

The Data Liberation project

7 | 8 | 9 | 10 |

Piszę nic nie tracę. Piszę po lewej! i pisze i

11 | 12 | 13 | 14 |

A teraz dodam nagłówka!

15 | 16 | 17 | 18 |

I treść. Piszę po prawej!

19 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/add_text_at_both_sides_of_a_block_changeA.html: -------------------------------------------------------------------------------- 1 | 2 |

Original text at the end

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/add_text_at_both_sides_of_a_block_changeB.html: -------------------------------------------------------------------------------- 1 | 2 |

At the start original text

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/add_text_at_both_sides_of_a_block_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 |

At the start original text at the end

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/add_text_at_both_sides_of_a_block_parent.html: -------------------------------------------------------------------------------- 1 | 2 |

Original text

3 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/identical_documents_changeA.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/identical_documents_changeB.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/identical_documents_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/identical_documents_parent.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/markdown_case_1_changeA.md: -------------------------------------------------------------------------------- 1 | # Updated Title 2 | 3 | This is the original markdown document. 4 | 5 | - Item 1 6 | - Item 2 7 | - Item 3 8 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/markdown_case_1_changeB.md: -------------------------------------------------------------------------------- 1 | # Original Title 2 | 3 | This is an updated markdown document. 4 | 5 | - Item 1 6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/markdown_case_1_merge_result.md: -------------------------------------------------------------------------------- 1 | # Updated Title 2 | 3 | This is an updated markdown document. 4 | 5 | - Item 1 6 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/markdown_case_1_parent.md: -------------------------------------------------------------------------------- 1 | # Original Title 2 | 3 | This is the original markdown document. 4 | 5 | - Item 1 6 | - Item 2 7 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/remove_paragraph_update_heading_changeA.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

Updated heading

7 | 8 | 9 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/remove_paragraph_update_heading_changeB.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/remove_paragraph_update_heading_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

Updated heading

7 | 8 | 9 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/remove_paragraph_update_heading_parent.html: -------------------------------------------------------------------------------- 1 | 2 |

Here's some text before the block.

3 | 4 | 5 | 6 |

First paragraph

7 | 8 | 9 | 10 |

Hello, there

11 | 12 | 13 | Ending words -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_1_changeA.txt: -------------------------------------------------------------------------------- 1 | 2 | ### 1. Merge Evaluation Test Suites 3 | The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a detailed methodology for testing merge tools. 4 | It describes scenarios where: 5 | - Parent/Base Document: The original document before any changes. 6 | - Change A: A modification made in one branch. 7 | - Change B: A separate modification made in another branch. 8 | - Merge Result: The expected outcome. 9 | The paper includes various examples of merge scenarios. 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_1_changeB.txt: -------------------------------------------------------------------------------- 1 | 2 | ### 1. Merge Evaluation Test Suites 3 | The paper "Evaluation of Version Control Merge Tools" by UoW provides a methodology for testing merge tools. 4 | It highlights scenarios where: 5 | - Base Document: The original document before changes. 6 | - Modification A: A modification made in one branch. 7 | - Modification B: A separate modification made in another branch. 8 | - Result: The expected outcome after conflict resolution. 9 | Examples are included. 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_1_merge_result.txt: -------------------------------------------------------------------------------- 1 | 2 | ### 1. Merge Evaluation Test Suites 3 | The paper "Evaluation of Version Control Merge Tools" by UoW provides a detailed methodology for testing merge tools. 4 | It highlights scenarios where: 5 | - Base Document: The original document before any changes. 6 | - Modification A: A modification made in one branch. 7 | - Modification B: A separate modification made in another branch. 8 | - Result: The expected outcomeconflict resolution. 9 | Examples are included. 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_1_parent.txt: -------------------------------------------------------------------------------- 1 | 2 | ### 1. Merge Evaluation Test Suites 3 | The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a methodology for testing merge tools. 4 | It describes scenarios where: 5 | - Parent/Base Document: The original document before changes. 6 | - Change A: A modification made in one branch. 7 | - Change B: A separate modification made in another branch. 8 | - Merge Result: The expected outcome after resolving conflicts. 9 | The paper includes examples of merge scenarios. 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_2_changeA.md: -------------------------------------------------------------------------------- 1 | ## 1. Merge Evaluation Test Suites and Strategies 2 | 3 | The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a methodology for testing 4 | merge tools. It adds a section on strategies. 5 | 6 | It describes scenarios where: 7 | 8 | - **Parent/Base Document**: The original document before any changes. 9 | - **Change A**: A modification made in one branch. 10 | - **Change B**: A separate modification made in another branch. 11 | - **Merge Result**: The expected outcome after resolving conflicts. 12 | * **Note:** Conflicts should be minimal. 13 | 14 | The paper includes examples of merge scenarios, including code examples. 15 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_2_changeB.md: -------------------------------------------------------------------------------- 1 | ## 1. Merge Evaluation 2 | 3 | The paper from the University of Washington provides a methodology for testing merge tools. 4 | 5 | It outlines these scenarios: 6 | 7 | - **Base Document**: The initial document. 8 | - **Change 1**: A modification. 9 | - **Change 2**: Another modification. 10 | - **Merged Result**: The expected final outcome. 11 | 12 | The paper has examples. It also discusses limitations. 13 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_2_merge_result.md: -------------------------------------------------------------------------------- 1 | ## 1. Merge Evaluation 2 | 3 | The paper from the University of Washington provides a methodology for testing merge tools. It adds a section on strategies. 4 | 5 | It outlines these scenarios: 6 | 7 | - **Base Document**: The initial document. 8 | - **Change 1**: A modification. 9 | - **Change 2**: Another modification. 10 | - **Merged Result**: The expected final outcome. 11 | * **Note:** Conflicts should be minimal. 12 | 13 | The paper has examples. It also discusses limitations, including code examples. 14 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_2_parent.md: -------------------------------------------------------------------------------- 1 | ## 1. Merge Evaluation Test Suites 2 | 3 | The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a methodology for testing 4 | merge tools. 5 | 6 | It describes scenarios where: 7 | 8 | - **Parent/Base Document**: The original document before changes. 9 | - **Change A**: A modification made in one branch. 10 | - **Change B**: A separate modification made in another branch. 11 | - **Merge Result**: The expected outcome after resolving conflicts. 12 | 13 | The paper includes examples of merge scenarios. 14 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_3_changeA.html: -------------------------------------------------------------------------------- 1 |

Merge Evaluation Test Suites

2 |

The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a comprehensive 3 | methodology for testing merge tools.

4 |

It describes scenarios where:

5 |
    6 |
  • Parent/Base Document: The original document before changes. This is the baseline.
  • 7 |
  • Change A: A modification made in one branch.
  • 8 |
  • Change B: A separate modification made in another branch.
  • 9 |
  • Merge Result: The expected outcome after resolving conflicts.
  • 10 |
11 |

The paper includes examples of merge scenarios.

12 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_3_changeB.html: -------------------------------------------------------------------------------- 1 |

Merge Tool Evaluation

2 |

The University of Washington paper provides a testing methodology.

3 |
    4 |
  • Base: Original document.
  • 5 |
  • Modification 1: First change.
  • 6 |
  • Modification 2: Second change.
  • 7 |
  • Result: Merged document.
  • 8 |
9 |

Examples are provided.

10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_3_merge_result.html: -------------------------------------------------------------------------------- 1 |

Merge Tool Evaluation

2 |

The University of Washington paper provides a comprehensive 3 | testing methodology.

4 |
    5 |
  • Base: Original document. This is the baseline.
  • 6 |
  • Modification 1: First change.
  • 7 |
  • Modification 2: Second change.
  • 8 |
  • Result: Merged document.
  • 9 |
10 |

Examples are provided.

11 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/clean-resolution/test_case_3_parent.html: -------------------------------------------------------------------------------- 1 |

Merge Evaluation Test Suites

2 |

The paper "Evaluation of Version Control Merge Tools" by the University of Washington provides a methodology for 3 | testing merge tools.

4 |

It describes scenarios where:

5 |
    6 |
  • Parent/Base Document: The original document before changes.
  • 7 |
  • Change A: A modification made in one branch.
  • 8 |
  • Change B: A separate modification made in another branch.
  • 9 |
  • Merge Result: The expected outcome after resolving conflicts.
  • 10 |
11 |

The paper includes examples of merge scenarios.

12 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/html_case_1_changeA.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Updated Title 5 | 6 | 7 |

This is the original HTML document.

8 |

Added a new paragraph in change A.

9 | 10 | 11 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/html_case_1_changeB.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Original Title 5 | 6 | 7 |

This is an updated HTML document.

8 |

Added a different paragraph in change B.

9 | 10 | 11 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/html_case_1_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Updated Title 5 | 6 | 7 |

This is an updated HTML document.

8 |

Added a new paragraph in change A.

9 |

Added a different paragraph in change B.

10 | 11 | 12 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/html_case_1_parent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Original Title 5 | 6 | 7 |

This is the original HTML document.

8 | 9 | 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/text_case_2_changeA.txt: -------------------------------------------------------------------------------- 1 | This is another original text document. 2 | It has different initial content. 3 | Change A added this line. -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/text_case_2_changeB.txt: -------------------------------------------------------------------------------- 1 | This is another original text document. 2 | It has different initial content. 3 | Change B added this other line. -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/text_case_2_merge_result.txt: -------------------------------------------------------------------------------- 1 | This is another original text document. 2 | It has different initial content. 3 | Change A added this line. 4 | Change B added this other line. -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/conflicts-during-resolution/text_case_2_parent.txt: -------------------------------------------------------------------------------- 1 | This is another original text document. 2 | It has different initial content. -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-merge-results/a_in_a.html: -------------------------------------------------------------------------------- 1 | WordPress -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-merge-results/p_across_block_boundary.html: -------------------------------------------------------------------------------- 1 | 2 |

3 | Paragraph text starts here, but the p tag does not close... 4 | 5 | 6 | 7 | ...until the second paragraph block. Each block must be structurally sound on its own! 8 |

9 | 10 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-merge-results/unclosed_p.html: -------------------------------------------------------------------------------- 1 |

2 | This paragraph does not have a closer. The content is the same in all 3 | the test files for this case. We're counting on the merge driver to detect 4 | an unclosed tag and throw an exception to indicate corrupted data. 5 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-resolution/corrupted_p_changeA.html: -------------------------------------------------------------------------------- 1 |

WordPress powers more than simplicity for users and publishers with under-the-hood complexity for developers. This 2 | makes it flexible while still being easy-to-use. The following is a list of some of the features that come as 3 | standard with WordPress; however, there are literally thousands of plugins that extend what WordPress does, so the 4 | actual functionality is nearly limitless. You are also free to do whatever you like with the WordPress code, extend 5 | it or modify in any way or use it for commercial projects without any licensing fees. That is the beauty of free 6 | software, free refers not only to price but also the freedom to have complete control over it.

7 | 8 |

Here are some of the features that we think that you’ll love.

9 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-resolution/corrupted_p_changeB.html: -------------------------------------------------------------------------------- 1 |

WordPress combines the web — a figure that rises every day. Everything from simple websites, to blogs, to complex 2 | portals and enterprise websites, and even applications, are built with WordPress.

3 | 4 |

Here are some of the features that we think that you’ll love.

5 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-resolution/corrupted_p_merge_result.html: -------------------------------------------------------------------------------- 1 |

WordPress

Here are some of the features that we think that you’ll love.

-------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-resolution/tricky_cross_block_text_reshuffle_changeB.html: -------------------------------------------------------------------------------- 1 | 2 |

WordPress combines the web — a figure that rises every day. Everything from simple websites, to blogs, to complex 3 | portals and enterprise websites, and even applications, are built with WordPress.

4 | 5 | 6 | 7 |

Here are some of the features that we think that you’ll love.

8 | 9 | -------------------------------------------------------------------------------- /components/Merge/Tests/test-data/corrupted-resolution/tricky_cross_block_text_reshuffle_merge_result.html: -------------------------------------------------------------------------------- 1 | 2 |

WordPress 3 |

Here are some of the features that we think that you’ll love.

4 | -------------------------------------------------------------------------------- /components/Merge/Validate/InvalidMergeException.php: -------------------------------------------------------------------------------- 1 | merge_result = $merge_result; 14 | } 15 | 16 | public function get_merge_result() { 17 | return $this->merge_result; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /components/Merge/Validate/MergeValidator.php: -------------------------------------------------------------------------------- 1 | withPaths( 9 | array( 10 | __DIR__ . '/vendor-patched', 11 | ) 12 | ) 13 | ->withDowngradeSets( 14 | false, 15 | false, 16 | false, 17 | false, 18 | false, 19 | true 20 | ) 21 | ->withTypeCoverageLevel( 0 ); 22 | -------------------------------------------------------------------------------- /components/Merge/vendor-patched/yetanotherape/diff-match-patch/.dockerignore: -------------------------------------------------------------------------------- 1 | /composer.lock 2 | /vendor 3 | -------------------------------------------------------------------------------- /components/Merge/vendor-patched/yetanotherape/diff-match-patch/.gitignore: -------------------------------------------------------------------------------- 1 | # Project specific files # 2 | ########################## 3 | /vendor 4 | /composer.lock 5 | /composer.phar 6 | /tmp 7 | 8 | 9 | # IDE generated files # 10 | ####################### 11 | /.idea 12 | 13 | # OS generated files # 14 | ###################### 15 | .DS_Store 16 | .DS_Store? 17 | ._* 18 | .Spotlight-V100 19 | .Trashes 20 | Icon? 21 | ehthumbs.db 22 | Thumbs.db 23 | 24 | # Stub for empty folders # 25 | ########################## 26 | !.gitkeep 27 | .phpunit.result.cache 28 | -------------------------------------------------------------------------------- /components/Merge/vendor-patched/yetanotherape/diff-match-patch/.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 7.3 5 | - 7.4 6 | - 8.0 7 | 8 | install: 9 | - composer install 10 | -------------------------------------------------------------------------------- /components/Merge/vendor-patched/yetanotherape/diff-match-patch/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PHP_VERSION 2 | FROM php:${PHP_VERSION}-cli 3 | 4 | WORKDIR /app 5 | 6 | RUN apt-get update && apt-get install -y \ 7 | git \ 8 | && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer 9 | COPY composer.json /app 10 | RUN composer install 11 | 12 | COPY . /app 13 | CMD [ "/bin/bash" ] 14 | 15 | # Usage: 16 | # export PHP_VERSION=7.2 17 | # docker build -t dmp:${PHP_VERSION} --build-arg PHP_VERSION=${PHP_VERSION} . 18 | # docker run -it --rm dmp:${PHP_VERSION} ./vendor/bin/phpunit 19 | # docker run -it --rm -v `pwd`/src:/app/src -v `pwd`/tests:/app/tests dmp:${PHP_VERSION} 20 | -------------------------------------------------------------------------------- /components/Merge/vendor-patched/yetanotherape/diff-match-patch/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | tests/ 11 | 12 | 13 | 14 | 15 | 16 | src/ 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /components/Polyfill/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/polyfill", 3 | "description": "Polyfill component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "files": [ 20 | "wordpress.php", 21 | "mbstring.php" 22 | ], 23 | "exclude-from-classmap": [ 24 | "/Tests/" 25 | ] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /components/Polyfill/php_functions.php: -------------------------------------------------------------------------------- 1 | $value ) { 24 | return $key; 25 | } 26 | 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/XML/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/xml", 3 | "description": "XML component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\XML\\": "" 21 | }, 22 | "exclude-from-classmap": [ 23 | "/Tests/" 24 | ] 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^9.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /components/Zip/Tests/fixtures/childrens-literature.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/php-toolkit/d4142f5ad34314a3c325b26558f7e649732597d0/components/Zip/Tests/fixtures/childrens-literature.zip -------------------------------------------------------------------------------- /components/Zip/Tests/test-server/childrens-literature.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Automattic/php-toolkit/d4142f5ad34314a3c325b26558f7e649732597d0/components/Zip/Tests/test-server/childrens-literature.zip -------------------------------------------------------------------------------- /components/Zip/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress/zip", 3 | "description": "Zip component for WordPress.", 4 | "type": "library", 5 | "authors": [ 6 | { 7 | "name": "Adam Zielinski", 8 | "email": "adam@adamziel.com" 9 | }, 10 | { 11 | "name": "WordPress Team", 12 | "email": "wordpress@wordpress.org" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=7.2" 17 | }, 18 | "autoload": { 19 | "psr-4": { 20 | "WordPress\\Zip\\": "" 21 | }, 22 | "files": [ 23 | "src/functions.php" 24 | ], 25 | "exclude-from-classmap": [ 26 | "/Tests/" 27 | ] 28 | }, 29 | "require-dev": { 30 | "phpunit/phpunit": "^9.5" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /components/Zip/functions.php: -------------------------------------------------------------------------------- 1 | length() < 4 ) { 10 | return false; 11 | } 12 | 13 | try { 14 | $stream->pull( 4, ByteReadStream::PULL_EXACTLY ); 15 | } catch ( NotEnoughDataException $e ) { 16 | return false; 17 | } 18 | 19 | return $stream->peek( 4 ) === "PK\x03\x04"; 20 | } 21 | -------------------------------------------------------------------------------- /file.php: -------------------------------------------------------------------------------- 1 | get_stylesheet(), 'wp_theme' ); 6 | if ( ! $term ) { 7 | $term = wp_insert_term( $theme->get_stylesheet(), 'wp_theme' ); 8 | $term_id = $term['term_id']; 9 | } else { 10 | $term_id = $term->term_id; 11 | } 12 | $post_id = wp_insert_post( 13 | array( 14 | 'post_type' => 'wp_template_part', 15 | 'post_title' => '" + checkbox.dataset.post_title.replace( /' / g, 16 | "\\'", 17 | ) + "', 'post_name' => '" + checkbox . dataset . post_name . replace( /'/g, "\\'" ) + "', 'post_content' => '" + checkbox.dataset.post_content.replace( /'/g, "\\'" ).replace( /\\n/g, "\n" ) + "', 'post_status' => 'publish' ) 18 | ); 19 | 20 | wp_set_object_terms( $post_id, 21 | $term_id, 'wp_theme' );", 22 | } ); 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wordpress-components", 3 | "version": "1.0.0", 4 | "description": "Standalone PHP libraries for use in WordPress plugins and standalone PHP projects:", 5 | "main": "index.js", 6 | "directories": { 7 | "example": "examples" 8 | }, 9 | "dependencies": { 10 | "ts-json-schema-generator": "^2.4.0" 11 | }, 12 | "scripts": { 13 | "test": "echo \"Error: no test specified\" && exit 1" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/Automattic/php-toolkit.git" 18 | }, 19 | "author": "", 20 | "license": "ISC", 21 | "bugs": { 22 | "url": "https://github.com/Automattic/php-toolkit/issues" 23 | }, 24 | "homepage": "https://github.com/Automattic/php-toolkit#readme" 25 | } 26 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | components/*/Tests 12 | components/Blueprints/Tests 13 | 14 | 15 | components/Blueprints/Tests 16 | 17 | 18 | -------------------------------------------------------------------------------- /rector.php: -------------------------------------------------------------------------------- 1 | sets([ 8 | DowngradeLevelSetList::DOWN_TO_PHP_72 9 | ]); 10 | }; 11 | --------------------------------------------------------------------------------