From 1abbac58e7b56b60fe0ad47cd21b06413fb279ee Mon Sep 17 00:00:00 2001
From: root
Date: Thu, 25 Dec 2025 23:39:42 +0000
Subject: [PATCH] Add safe_html() for XSS-safe WYSIWYG HTML sanitization
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude
---
app/RSpade/Core/Bundle/Core_Bundle.php | 3 +
app/RSpade/Core/Js/functions.js | 17 +
app/RSpade/helpers.php | 42 +
app/RSpade/man/safe_html.txt | 66 +
composer.json | 1 +
composer.lock | 65 +-
node_modules/.package-lock.json | 49 +
.../@parcel/watcher-linux-x64-musl/LICENSE | 21 +
.../@parcel/watcher-linux-x64-musl/README.md | 1 +
.../watcher-linux-x64-musl/package.json | 33 +
.../watcher-linux-x64-musl/watcher.node | Bin 0 -> 511160 bytes
.../@rollup/rollup-linux-x64-musl/README.md | 3 +
.../rollup-linux-x64-musl/package.json | 25 +
.../rollup.linux-x64-musl.node | Bin 0 -> 2124320 bytes
node_modules/@types/trusted-types/LICENSE | 21 +
node_modules/@types/trusted-types/README.md | 15 +
node_modules/@types/trusted-types/index.d.ts | 53 +
.../@types/trusted-types/lib/index.d.ts | 64 +
.../@types/trusted-types/package.json | 45 +
node_modules/dompurify/LICENSE | 568 ++
node_modules/dompurify/README.md | 479 ++
node_modules/dompurify/dist/purify.cjs.d.ts | 450 ++
node_modules/dompurify/dist/purify.cjs.js | 1388 +++++
node_modules/dompurify/dist/purify.cjs.js.map | 1 +
node_modules/dompurify/dist/purify.es.d.mts | 447 ++
node_modules/dompurify/dist/purify.es.mjs | 1386 +++++
node_modules/dompurify/dist/purify.es.mjs.map | 1 +
node_modules/dompurify/dist/purify.js | 1394 +++++
node_modules/dompurify/dist/purify.js.map | 1 +
node_modules/dompurify/dist/purify.min.js | 3 +
node_modules/dompurify/dist/purify.min.js.map | 1 +
node_modules/dompurify/package.json | 171 +
package-lock.json | 17 +
package.json | 1 +
vendor/composer/autoload_classmap.php | 22 +-
vendor/composer/autoload_static.php | 314 +-
vendor/ezyang/htmlpurifier/composer.json | 45 +
.../library/HTMLPurifier.auto.php | 11 +
.../library/HTMLPurifier.autoload-legacy.php | 14 +
.../library/HTMLPurifier.autoload.php | 25 +
.../library/HTMLPurifier.composer.php | 4 +
.../library/HTMLPurifier.func.php | 25 +
.../library/HTMLPurifier.includes.php | 236 +
.../library/HTMLPurifier.kses.php | 30 +
.../library/HTMLPurifier.path.php | 11 +
.../htmlpurifier/library/HTMLPurifier.php | 297 +
.../library/HTMLPurifier.safe-includes.php | 230 +
.../library/HTMLPurifier/Arborize.php | 71 +
.../library/HTMLPurifier/AttrCollections.php | 148 +
.../library/HTMLPurifier/AttrDef.php | 144 +
.../library/HTMLPurifier/AttrDef/CSS.php | 140 +
.../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 34 +
.../HTMLPurifier/AttrDef/CSS/Background.php | 113 +
.../AttrDef/CSS/BackgroundPosition.php | 157 +
.../HTMLPurifier/AttrDef/CSS/Border.php | 56 +
.../HTMLPurifier/AttrDef/CSS/Color.php | 161 +
.../HTMLPurifier/AttrDef/CSS/Composite.php | 48 +
.../AttrDef/CSS/DenyElementDecorator.php | 44 +
.../HTMLPurifier/AttrDef/CSS/Filter.php | 77 +
.../library/HTMLPurifier/AttrDef/CSS/Font.php | 176 +
.../HTMLPurifier/AttrDef/CSS/FontFamily.php | 217 +
.../HTMLPurifier/AttrDef/CSS/Ident.php | 32 +
.../AttrDef/CSS/ImportantDecorator.php | 56 +
.../HTMLPurifier/AttrDef/CSS/Length.php | 77 +
.../HTMLPurifier/AttrDef/CSS/ListStyle.php | 112 +
.../HTMLPurifier/AttrDef/CSS/Multiple.php | 71 +
.../HTMLPurifier/AttrDef/CSS/Number.php | 90 +
.../HTMLPurifier/AttrDef/CSS/Percentage.php | 54 +
.../HTMLPurifier/AttrDef/CSS/Ratio.php | 46 +
.../AttrDef/CSS/TextDecoration.php | 46 +
.../library/HTMLPurifier/AttrDef/CSS/URI.php | 77 +
.../library/HTMLPurifier/AttrDef/Clone.php | 44 +
.../library/HTMLPurifier/AttrDef/Enum.php | 73 +
.../HTMLPurifier/AttrDef/HTML/Bool.php | 48 +
.../HTMLPurifier/AttrDef/HTML/Class.php | 48 +
.../HTMLPurifier/AttrDef/HTML/Color.php | 51 +
.../AttrDef/HTML/ContentEditable.php | 16 +
.../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 38 +
.../library/HTMLPurifier/AttrDef/HTML/ID.php | 113 +
.../HTMLPurifier/AttrDef/HTML/Length.php | 56 +
.../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 67 +
.../HTMLPurifier/AttrDef/HTML/MultiLength.php | 60 +
.../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 70 +
.../HTMLPurifier/AttrDef/HTML/Pixels.php | 76 +
.../library/HTMLPurifier/AttrDef/Integer.php | 91 +
.../library/HTMLPurifier/AttrDef/Lang.php | 86 +
.../library/HTMLPurifier/AttrDef/Switch.php | 53 +
.../library/HTMLPurifier/AttrDef/Text.php | 21 +
.../library/HTMLPurifier/AttrDef/URI.php | 111 +
.../HTMLPurifier/AttrDef/URI/Email.php | 20 +
.../AttrDef/URI/Email/SimpleCheck.php | 29 +
.../library/HTMLPurifier/AttrDef/URI/Host.php | 136 +
.../library/HTMLPurifier/AttrDef/URI/IPv4.php | 45 +
.../library/HTMLPurifier/AttrDef/URI/IPv6.php | 89 +
.../library/HTMLPurifier/AttrTransform.php | 60 +
.../HTMLPurifier/AttrTransform/Background.php | 28 +
.../HTMLPurifier/AttrTransform/BdoDir.php | 27 +
.../HTMLPurifier/AttrTransform/BgColor.php | 28 +
.../HTMLPurifier/AttrTransform/BoolToCSS.php | 47 +
.../HTMLPurifier/AttrTransform/Border.php | 26 +
.../HTMLPurifier/AttrTransform/EnumToCSS.php | 68 +
.../AttrTransform/ImgRequired.php | 47 +
.../HTMLPurifier/AttrTransform/ImgSpace.php | 61 +
.../HTMLPurifier/AttrTransform/Input.php | 56 +
.../HTMLPurifier/AttrTransform/Lang.php | 31 +
.../HTMLPurifier/AttrTransform/Length.php | 45 +
.../HTMLPurifier/AttrTransform/Name.php | 33 +
.../HTMLPurifier/AttrTransform/NameSync.php | 46 +
.../HTMLPurifier/AttrTransform/Nofollow.php | 52 +
.../HTMLPurifier/AttrTransform/SafeEmbed.php | 25 +
.../HTMLPurifier/AttrTransform/SafeObject.php | 28 +
.../HTMLPurifier/AttrTransform/SafeParam.php | 84 +
.../AttrTransform/ScriptRequired.php | 23 +
.../AttrTransform/TargetBlank.php | 49 +
.../AttrTransform/TargetNoopener.php | 37 +
.../AttrTransform/TargetNoreferrer.php | 37 +
.../HTMLPurifier/AttrTransform/Textarea.php | 27 +
.../library/HTMLPurifier/AttrTypes.php | 97 +
.../library/HTMLPurifier/AttrValidator.php | 178 +
.../library/HTMLPurifier/Bootstrap.php | 91 +
.../library/HTMLPurifier/CSSDefinition.php | 570 ++
.../library/HTMLPurifier/ChildDef.php | 52 +
.../HTMLPurifier/ChildDef/Chameleon.php | 67 +
.../library/HTMLPurifier/ChildDef/Custom.php | 102 +
.../library/HTMLPurifier/ChildDef/Empty.php | 38 +
.../library/HTMLPurifier/ChildDef/List.php | 94 +
.../HTMLPurifier/ChildDef/Optional.php | 45 +
.../HTMLPurifier/ChildDef/Required.php | 118 +
.../ChildDef/StrictBlockquote.php | 110 +
.../library/HTMLPurifier/ChildDef/Table.php | 227 +
.../library/HTMLPurifier/Config.php | 924 ++++
.../library/HTMLPurifier/ConfigSchema.php | 176 +
.../ConfigSchema/Builder/ConfigSchema.php | 48 +
.../HTMLPurifier/ConfigSchema/Builder/Xml.php | 144 +
.../HTMLPurifier/ConfigSchema/Exception.php | 11 +
.../HTMLPurifier/ConfigSchema/Interchange.php | 47 +
.../ConfigSchema/Interchange/Directive.php | 89 +
.../ConfigSchema/Interchange/Id.php | 58 +
.../ConfigSchema/InterchangeBuilder.php | 226 +
.../HTMLPurifier/ConfigSchema/Validator.php | 248 +
.../ConfigSchema/ValidatorAtom.php | 130 +
.../HTMLPurifier/ConfigSchema/schema.ser | 1 +
.../schema/Attr.AllowedClasses.txt | 8 +
.../schema/Attr.AllowedFrameTargets.txt | 12 +
.../ConfigSchema/schema/Attr.AllowedRel.txt | 9 +
.../ConfigSchema/schema/Attr.AllowedRev.txt | 9 +
.../schema/Attr.ClassUseCDATA.txt | 19 +
.../schema/Attr.DefaultImageAlt.txt | 11 +
.../schema/Attr.DefaultInvalidImage.txt | 9 +
.../schema/Attr.DefaultInvalidImageAlt.txt | 8 +
.../schema/Attr.DefaultTextDir.txt | 10 +
.../ConfigSchema/schema/Attr.EnableID.txt | 16 +
.../schema/Attr.ForbiddenClasses.txt | 8 +
.../ConfigSchema/schema/Attr.ID.HTML5.txt | 10 +
.../ConfigSchema/schema/Attr.IDBlacklist.txt | 5 +
.../schema/Attr.IDBlacklistRegexp.txt | 9 +
.../ConfigSchema/schema/Attr.IDPrefix.txt | 12 +
.../schema/Attr.IDPrefixLocal.txt | 14 +
.../schema/AutoFormat.AutoParagraph.txt | 31 +
.../ConfigSchema/schema/AutoFormat.Custom.txt | 12 +
.../schema/AutoFormat.DisplayLinkURI.txt | 11 +
.../schema/AutoFormat.Linkify.txt | 12 +
.../AutoFormat.PurifierLinkify.DocURL.txt | 12 +
.../schema/AutoFormat.PurifierLinkify.txt | 12 +
.../AutoFormat.RemoveEmpty.Predicate.txt | 14 +
...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 11 +
.../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 15 +
.../schema/AutoFormat.RemoveEmpty.txt | 46 +
...utoFormat.RemoveSpansWithoutAttributes.txt | 11 +
.../schema/CSS.AllowDuplicates.txt | 11 +
.../schema/CSS.AllowImportant.txt | 8 +
.../ConfigSchema/schema/CSS.AllowTricky.txt | 11 +
.../ConfigSchema/schema/CSS.AllowedFonts.txt | 12 +
.../schema/CSS.AllowedProperties.txt | 18 +
.../ConfigSchema/schema/CSS.DefinitionRev.txt | 11 +
.../schema/CSS.ForbiddenProperties.txt | 13 +
.../ConfigSchema/schema/CSS.MaxImgLength.txt | 16 +
.../ConfigSchema/schema/CSS.Proprietary.txt | 10 +
.../ConfigSchema/schema/CSS.Trusted.txt | 9 +
.../schema/Cache.DefinitionImpl.txt | 14 +
.../schema/Cache.SerializerPath.txt | 13 +
.../schema/Cache.SerializerPermissions.txt | 16 +
.../schema/Core.AggressivelyFixLt.txt | 18 +
.../schema/Core.AggressivelyRemoveScript.txt | 16 +
.../schema/Core.AllowHostnameUnderscore.txt | 16 +
.../schema/Core.AllowParseManyTags.txt | 12 +
.../schema/Core.CollectErrors.txt | 12 +
.../schema/Core.ColorKeywords.txt | 160 +
.../schema/Core.ConvertDocumentToFragment.txt | 15 +
.../Core.DirectLexLineNumberSyncInterval.txt | 17 +
.../schema/Core.DisableExcludes.txt | 14 +
.../ConfigSchema/schema/Core.EnableIDNA.txt | 9 +
.../ConfigSchema/schema/Core.Encoding.txt | 15 +
.../schema/Core.EscapeInvalidChildren.txt | 12 +
.../schema/Core.EscapeInvalidTags.txt | 7 +
.../schema/Core.EscapeNonASCIICharacters.txt | 13 +
.../schema/Core.HiddenElements.txt | 19 +
.../ConfigSchema/schema/Core.Language.txt | 10 +
.../schema/Core.LegacyEntityDecoder.txt | 36 +
.../ConfigSchema/schema/Core.LexerImpl.txt | 34 +
.../schema/Core.MaintainLineNumbers.txt | 16 +
.../schema/Core.NormalizeNewlines.txt | 11 +
.../ConfigSchema/schema/Core.RemoveBlanks.txt | 10 +
.../schema/Core.RemoveInvalidImg.txt | 12 +
.../Core.RemoveProcessingInstructions.txt | 11 +
.../schema/Core.RemoveScriptContents.txt | 12 +
.../ConfigSchema/schema/Filter.Custom.txt | 11 +
.../Filter.ExtractStyleBlocks.Escaping.txt | 14 +
.../Filter.ExtractStyleBlocks.Scope.txt | 29 +
.../Filter.ExtractStyleBlocks.TidyImpl.txt | 16 +
.../schema/Filter.ExtractStyleBlocks.txt | 74 +
.../ConfigSchema/schema/Filter.YouTube.txt | 16 +
.../ConfigSchema/schema/HTML.Allowed.txt | 25 +
.../schema/HTML.AllowedAttributes.txt | 19 +
.../schema/HTML.AllowedComments.txt | 10 +
.../schema/HTML.AllowedCommentsRegexp.txt | 15 +
.../schema/HTML.AllowedElements.txt | 23 +
.../schema/HTML.AllowedModules.txt | 20 +
.../schema/HTML.Attr.Name.UseCDATA.txt | 11 +
.../ConfigSchema/schema/HTML.BlockWrapper.txt | 18 +
.../ConfigSchema/schema/HTML.CoreModules.txt | 23 +
.../schema/HTML.CustomDoctype.txt | 9 +
.../ConfigSchema/schema/HTML.DefinitionID.txt | 33 +
.../schema/HTML.DefinitionRev.txt | 16 +
.../ConfigSchema/schema/HTML.Doctype.txt | 11 +
.../schema/HTML.FlashAllowFullScreen.txt | 11 +
.../schema/HTML.ForbiddenAttributes.txt | 21 +
.../schema/HTML.ForbiddenElements.txt | 20 +
.../ConfigSchema/schema/HTML.Forms.txt | 11 +
.../ConfigSchema/schema/HTML.MaxImgLength.txt | 14 +
.../ConfigSchema/schema/HTML.Nofollow.txt | 7 +
.../ConfigSchema/schema/HTML.Parent.txt | 12 +
.../ConfigSchema/schema/HTML.Proprietary.txt | 12 +
.../ConfigSchema/schema/HTML.SafeEmbed.txt | 13 +
.../ConfigSchema/schema/HTML.SafeIframe.txt | 13 +
.../ConfigSchema/schema/HTML.SafeObject.txt | 13 +
.../schema/HTML.SafeScripting.txt | 10 +
.../ConfigSchema/schema/HTML.Strict.txt | 9 +
.../ConfigSchema/schema/HTML.TargetBlank.txt | 8 +
.../schema/HTML.TargetNoopener.txt | 10 +
.../schema/HTML.TargetNoreferrer.txt | 9 +
.../ConfigSchema/schema/HTML.TidyAdd.txt | 8 +
.../ConfigSchema/schema/HTML.TidyLevel.txt | 24 +
.../ConfigSchema/schema/HTML.TidyRemove.txt | 8 +
.../ConfigSchema/schema/HTML.Trusted.txt | 9 +
.../ConfigSchema/schema/HTML.XHTML.txt | 11 +
.../schema/Output.CommentScriptContents.txt | 10 +
.../schema/Output.FixInnerHTML.txt | 15 +
.../schema/Output.FlashCompat.txt | 11 +
.../ConfigSchema/schema/Output.Newline.txt | 13 +
.../ConfigSchema/schema/Output.SortAttr.txt | 14 +
.../ConfigSchema/schema/Output.TidyFormat.txt | 25 +
.../ConfigSchema/schema/Test.ForceNoIconv.txt | 7 +
.../schema/URI.AllowedSchemes.txt | 18 +
.../schema/URI.AllowedSymbols.txt | 7 +
.../ConfigSchema/schema/URI.Base.txt | 17 +
.../ConfigSchema/schema/URI.DefaultScheme.txt | 15 +
.../ConfigSchema/schema/URI.DefinitionID.txt | 11 +
.../ConfigSchema/schema/URI.DefinitionRev.txt | 11 +
.../ConfigSchema/schema/URI.Disable.txt | 14 +
.../schema/URI.DisableExternal.txt | 11 +
.../schema/URI.DisableExternalResources.txt | 13 +
.../schema/URI.DisableResources.txt | 15 +
.../ConfigSchema/schema/URI.Host.txt | 19 +
.../ConfigSchema/schema/URI.HostBlacklist.txt | 9 +
.../ConfigSchema/schema/URI.MakeAbsolute.txt | 13 +
.../ConfigSchema/schema/URI.Munge.txt | 83 +
.../schema/URI.MungeResources.txt | 17 +
.../schema/URI.MungeSecretKey.txt | 30 +
.../schema/URI.OverrideAllowedSchemes.txt | 9 +
.../schema/URI.SafeIframeHosts.txt | 14 +
.../schema/URI.SafeIframeRegexp.txt | 22 +
.../HTMLPurifier/ConfigSchema/schema/info.ini | 3 +
.../library/HTMLPurifier/ContentSets.php | 169 +
.../library/HTMLPurifier/Context.php | 84 +
.../library/HTMLPurifier/Definition.php | 55 +
.../library/HTMLPurifier/DefinitionCache.php | 129 +
.../DefinitionCache/Decorator.php | 112 +
.../DefinitionCache/Decorator/Cleanup.php | 78 +
.../DefinitionCache/Decorator/Memory.php | 85 +
.../DefinitionCache/Decorator/Template.php.in | 82 +
.../HTMLPurifier/DefinitionCache/Null.php | 76 +
.../DefinitionCache/Serializer.php | 313 ++
...085c4c805c2214f1053d076809eac62813a2,1.ser | Bin 0 -> 38774 bytes
.../DefinitionCache/Serializer/README | 3 +
...70d335b76b3972a49fb28c948a88c9c20b69,1.ser | Bin 0 -> 516 bytes
.../HTMLPurifier/DefinitionCacheFactory.php | 106 +
.../library/HTMLPurifier/Doctype.php | 73 +
.../library/HTMLPurifier/DoctypeRegistry.php | 142 +
.../library/HTMLPurifier/ElementDef.php | 216 +
.../library/HTMLPurifier/Encoder.php | 615 +++
.../library/HTMLPurifier/EntityLookup.php | 48 +
.../HTMLPurifier/EntityLookup/entities.ser | 1 +
.../library/HTMLPurifier/EntityParser.php | 285 +
.../library/HTMLPurifier/ErrorCollector.php | 244 +
.../library/HTMLPurifier/ErrorStruct.php | 74 +
.../library/HTMLPurifier/Exception.php | 12 +
.../library/HTMLPurifier/Filter.php | 56 +
.../Filter/ExtractStyleBlocks.php | 362 ++
.../library/HTMLPurifier/Filter/YouTube.php | 65 +
.../library/HTMLPurifier/Generator.php | 286 +
.../library/HTMLPurifier/HTMLDefinition.php | 488 ++
.../library/HTMLPurifier/HTMLModule.php | 285 +
.../library/HTMLPurifier/HTMLModule/Bdo.php | 44 +
.../HTMLModule/CommonAttributes.php | 32 +
.../library/HTMLPurifier/HTMLModule/Edit.php | 55 +
.../library/HTMLPurifier/HTMLModule/Forms.php | 194 +
.../HTMLPurifier/HTMLModule/Hypertext.php | 40 +
.../HTMLPurifier/HTMLModule/Iframe.php | 57 +
.../library/HTMLPurifier/HTMLModule/Image.php | 49 +
.../HTMLPurifier/HTMLModule/Legacy.php | 186 +
.../library/HTMLPurifier/HTMLModule/List.php | 51 +
.../library/HTMLPurifier/HTMLModule/Name.php | 26 +
.../HTMLPurifier/HTMLModule/Nofollow.php | 25 +
.../HTMLModule/NonXMLCommonAttributes.php | 20 +
.../HTMLPurifier/HTMLModule/Object.php | 62 +
.../HTMLPurifier/HTMLModule/Presentation.php | 42 +
.../HTMLPurifier/HTMLModule/Proprietary.php | 40 +
.../library/HTMLPurifier/HTMLModule/Ruby.php | 36 +
.../HTMLPurifier/HTMLModule/SafeEmbed.php | 40 +
.../HTMLPurifier/HTMLModule/SafeObject.php | 62 +
.../HTMLPurifier/HTMLModule/SafeScripting.php | 40 +
.../HTMLPurifier/HTMLModule/Scripting.php | 73 +
.../HTMLModule/StyleAttribute.php | 33 +
.../HTMLPurifier/HTMLModule/Tables.php | 75 +
.../HTMLPurifier/HTMLModule/Target.php | 28 +
.../HTMLPurifier/HTMLModule/TargetBlank.php | 24 +
.../HTMLModule/TargetNoopener.php | 21 +
.../HTMLModule/TargetNoreferrer.php | 21 +
.../library/HTMLPurifier/HTMLModule/Text.php | 87 +
.../library/HTMLPurifier/HTMLModule/Tidy.php | 226 +
.../HTMLPurifier/HTMLModule/Tidy/Name.php | 33 +
.../HTMLModule/Tidy/Proprietary.php | 34 +
.../HTMLPurifier/HTMLModule/Tidy/Strict.php | 43 +
.../HTMLModule/Tidy/Transitional.php | 16 +
.../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 26 +
.../HTMLModule/Tidy/XHTMLAndHTML4.php | 182 +
.../HTMLModule/XMLCommonAttributes.php | 20 +
.../HTMLPurifier/HTMLModuleManager.php | 463 ++
.../library/HTMLPurifier/IDAccumulator.php | 57 +
.../library/HTMLPurifier/Injector.php | 283 +
.../HTMLPurifier/Injector/AutoParagraph.php | 356 ++
.../HTMLPurifier/Injector/DisplayLinkURI.php | 40 +
.../library/HTMLPurifier/Injector/Linkify.php | 67 +
.../HTMLPurifier/Injector/PurifierLinkify.php | 71 +
.../HTMLPurifier/Injector/RemoveEmpty.php | 112 +
.../Injector/RemoveSpansWithoutAttributes.php | 95 +
.../HTMLPurifier/Injector/SafeObject.php | 124 +
.../library/HTMLPurifier/Language.php | 204 +
.../HTMLPurifier/Language/messages/en.php | 55 +
.../library/HTMLPurifier/LanguageFactory.php | 203 +
.../library/HTMLPurifier/Length.php | 162 +
.../library/HTMLPurifier/Lexer.php | 371 ++
.../library/HTMLPurifier/Lexer/DOMLex.php | 411 ++
.../library/HTMLPurifier/Lexer/DirectLex.php | 517 ++
.../library/HTMLPurifier/Lexer/PH5P.php | 4788 +++++++++++++++++
.../library/HTMLPurifier/Node.php | 49 +
.../library/HTMLPurifier/Node/Comment.php | 36 +
.../library/HTMLPurifier/Node/Element.php | 59 +
.../library/HTMLPurifier/Node/Text.php | 54 +
.../library/HTMLPurifier/PercentEncoder.php | 111 +
.../library/HTMLPurifier/Printer.php | 218 +
.../HTMLPurifier/Printer/CSSDefinition.php | 44 +
.../HTMLPurifier/Printer/ConfigForm.css | 10 +
.../HTMLPurifier/Printer/ConfigForm.js | 5 +
.../HTMLPurifier/Printer/ConfigForm.php | 456 ++
.../HTMLPurifier/Printer/HTMLDefinition.php | 324 ++
.../library/HTMLPurifier/PropertyList.php | 122 +
.../HTMLPurifier/PropertyListIterator.php | 43 +
.../library/HTMLPurifier/Queue.php | 56 +
.../library/HTMLPurifier/Strategy.php | 26 +
.../HTMLPurifier/Strategy/Composite.php | 30 +
.../library/HTMLPurifier/Strategy/Core.php | 17 +
.../HTMLPurifier/Strategy/FixNesting.php | 181 +
.../HTMLPurifier/Strategy/MakeWellFormed.php | 659 +++
.../Strategy/RemoveForeignElements.php | 207 +
.../Strategy/ValidateAttributes.php | 45 +
.../library/HTMLPurifier/StringHash.php | 48 +
.../library/HTMLPurifier/StringHashParser.php | 136 +
.../library/HTMLPurifier/TagTransform.php | 37 +
.../HTMLPurifier/TagTransform/Font.php | 114 +
.../HTMLPurifier/TagTransform/Simple.php | 44 +
.../library/HTMLPurifier/Token.php | 100 +
.../library/HTMLPurifier/Token/Comment.php | 38 +
.../library/HTMLPurifier/Token/Empty.php | 15 +
.../library/HTMLPurifier/Token/End.php | 24 +
.../library/HTMLPurifier/Token/Start.php | 10 +
.../library/HTMLPurifier/Token/Tag.php | 68 +
.../library/HTMLPurifier/Token/Text.php | 53 +
.../library/HTMLPurifier/TokenFactory.php | 118 +
.../htmlpurifier/library/HTMLPurifier/URI.php | 316 ++
.../library/HTMLPurifier/URIDefinition.php | 112 +
.../library/HTMLPurifier/URIFilter.php | 74 +
.../URIFilter/DisableExternal.php | 54 +
.../URIFilter/DisableExternalResources.php | 25 +
.../URIFilter/DisableResources.php | 22 +
.../HTMLPurifier/URIFilter/HostBlacklist.php | 46 +
.../HTMLPurifier/URIFilter/MakeAbsolute.php | 158 +
.../library/HTMLPurifier/URIFilter/Munge.php | 115 +
.../HTMLPurifier/URIFilter/SafeIframe.php | 69 +
.../library/HTMLPurifier/URIParser.php | 71 +
.../library/HTMLPurifier/URIScheme.php | 102 +
.../library/HTMLPurifier/URIScheme/data.php | 136 +
.../library/HTMLPurifier/URIScheme/file.php | 44 +
.../library/HTMLPurifier/URIScheme/ftp.php | 58 +
.../library/HTMLPurifier/URIScheme/http.php | 36 +
.../library/HTMLPurifier/URIScheme/https.php | 18 +
.../library/HTMLPurifier/URIScheme/mailto.php | 40 +
.../library/HTMLPurifier/URIScheme/news.php | 35 +
.../library/HTMLPurifier/URIScheme/nntp.php | 32 +
.../library/HTMLPurifier/URIScheme/tel.php | 46 +
.../HTMLPurifier/URISchemeRegistry.php | 81 +
.../library/HTMLPurifier/UnitConverter.php | 307 ++
.../library/HTMLPurifier/VarParser.php | 198 +
.../HTMLPurifier/VarParser/Flexible.php | 130 +
.../library/HTMLPurifier/VarParser/Native.php | 38 +
.../HTMLPurifier/VarParserException.php | 11 +
.../library/HTMLPurifier/Zipper.php | 157 +
.../src/Illuminate/Filesystem/Filesystem.php | 5 +-
419 files changed, 39662 insertions(+), 154 deletions(-)
create mode 100644 app/RSpade/man/safe_html.txt
create mode 100644 node_modules/@parcel/watcher-linux-x64-musl/LICENSE
create mode 100644 node_modules/@parcel/watcher-linux-x64-musl/README.md
create mode 100644 node_modules/@parcel/watcher-linux-x64-musl/package.json
create mode 100644 node_modules/@parcel/watcher-linux-x64-musl/watcher.node
create mode 100644 node_modules/@rollup/rollup-linux-x64-musl/README.md
create mode 100644 node_modules/@rollup/rollup-linux-x64-musl/package.json
create mode 100644 node_modules/@rollup/rollup-linux-x64-musl/rollup.linux-x64-musl.node
create mode 100644 node_modules/@types/trusted-types/LICENSE
create mode 100644 node_modules/@types/trusted-types/README.md
create mode 100644 node_modules/@types/trusted-types/index.d.ts
create mode 100644 node_modules/@types/trusted-types/lib/index.d.ts
create mode 100644 node_modules/@types/trusted-types/package.json
create mode 100644 node_modules/dompurify/LICENSE
create mode 100644 node_modules/dompurify/README.md
create mode 100644 node_modules/dompurify/dist/purify.cjs.d.ts
create mode 100644 node_modules/dompurify/dist/purify.cjs.js
create mode 100644 node_modules/dompurify/dist/purify.cjs.js.map
create mode 100644 node_modules/dompurify/dist/purify.es.d.mts
create mode 100644 node_modules/dompurify/dist/purify.es.mjs
create mode 100644 node_modules/dompurify/dist/purify.es.mjs.map
create mode 100644 node_modules/dompurify/dist/purify.js
create mode 100644 node_modules/dompurify/dist/purify.js.map
create mode 100644 node_modules/dompurify/dist/purify.min.js
create mode 100644 node_modules/dompurify/dist/purify.min.js.map
create mode 100644 node_modules/dompurify/package.json
create mode 100644 vendor/ezyang/htmlpurifier/composer.json
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.func.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.kses.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.path.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ratio.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveBlanks.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Forms.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSymbols.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeHosts.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Context.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/HTML/4.19.0,b289085c4c805c2214f1053d076809eac62813a2,1.ser
create mode 100755 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/URI/4.19.0,717b70d335b76b3972a49fb28c948a88c9c20b69,1.ser
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Generator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/IDAccumulator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Language.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Language/messages/en.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Node.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Node/Comment.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Node/Element.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Node/Text.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/PercentEncoder.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.css
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.js
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Queue.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Core.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/StringHashParser.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/Comment.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/Empty.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/End.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/Start.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/Tag.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Token/Text.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/TokenFactory.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URI.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIDefinition.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIParser.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/data.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/file.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/http.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/https.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/news.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/VarParser.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/VarParserException.php
create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php
diff --git a/app/RSpade/Core/Bundle/Core_Bundle.php b/app/RSpade/Core/Bundle/Core_Bundle.php
index 10b629b0c..a6df644fa 100644
--- a/app/RSpade/Core/Bundle/Core_Bundle.php
+++ b/app/RSpade/Core/Bundle/Core_Bundle.php
@@ -31,6 +31,9 @@ class Core_Bundle extends Rsx_Bundle_Abstract
'app/RSpade/Breadcrumbs', // Progressive breadcrumb resolution
'app/RSpade/Lib',
],
+ 'npm' => [
+ 'DOMPurify' => "import DOMPurify from 'dompurify'",
+ ],
];
}
}
diff --git a/app/RSpade/Core/Js/functions.js b/app/RSpade/Core/Js/functions.js
index 9da7c7bcc..f98724652 100755
--- a/app/RSpade/Core/Js/functions.js
+++ b/app/RSpade/Core/Js/functions.js
@@ -285,6 +285,23 @@ function html(str) {
return _.escape(str);
}
+/**
+ * Sanitizes HTML from WYSIWYG editors to prevent XSS attacks
+ *
+ * Uses DOMPurify to filter potentially malicious HTML while preserving
+ * safe formatting tags. Suitable for user-generated rich text content.
+ *
+ * @param {string} html_string - HTML string to sanitize
+ * @returns {string} Sanitized HTML safe for display
+ */
+function safe_html(html_string) {
+ return DOMPurify.sanitize(html_string, {
+ ALLOWED_TAGS: ['p', 'br', 'strong', 'b', 'em', 'i', 'u', 's', 'strike', 'a', 'ul', 'ol', 'li', 'blockquote', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'code', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'div', 'span'],
+ ALLOWED_ATTR: ['href', 'title', 'target', 'src', 'alt', 'width', 'height', 'class'],
+ ALLOW_DATA_ATTR: false,
+ });
+}
+
/**
* Converts newlines to HTML line breaks
* @param {string} str - String to convert
diff --git a/app/RSpade/helpers.php b/app/RSpade/helpers.php
index 4a32f28fc..81a8c5b3c 100644
--- a/app/RSpade/helpers.php
+++ b/app/RSpade/helpers.php
@@ -1182,6 +1182,48 @@ function is_loopback_ip(): bool
return in_array($ip, $loopback_addresses, true);
}
+/**
+ * Sanitize HTML from WYSIWYG editors to prevent XSS attacks
+ *
+ * Uses HTMLPurifier to filter potentially malicious HTML while preserving
+ * safe formatting tags. Suitable for user-generated rich text content.
+ *
+ * @param string $html The HTML string to sanitize
+ * @return string Sanitized HTML safe for display
+ */
+function safe_html(string $html): string
+{
+ static $purifier = null;
+
+ if ($purifier === null) {
+ require_once base_path('vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php');
+
+ $config = HTMLPurifier_Config::createDefault();
+
+ // Cache serialized definitions for performance
+ $cache_dir = storage_path('rsx-tmp/htmlpurifier');
+ if (!is_dir($cache_dir)) {
+ mkdir($cache_dir, 0755, true);
+ }
+ $config->set('Cache.SerializerPath', $cache_dir);
+ $config->set('Cache.SerializerPermissions', null); // Disable chmod (Docker compatibility)
+
+ // Allow common formatting elements
+ $config->set('HTML.Allowed', 'p,br,strong,b,em,i,u,s,strike,a[href|title|target],ul,ol,li,blockquote,h1,h2,h3,h4,h5,h6,pre,code,img[src|alt|title|width|height],table,thead,tbody,tr,th,td,div,span');
+
+ // Allow class attributes for styling
+ $config->set('Attr.AllowedClasses', null); // Allow all classes
+
+ // Link handling
+ $config->set('HTML.TargetBlank', true);
+ $config->set('URI.AllowedSchemes', ['http' => true, 'https' => true, 'mailto' => true]);
+
+ $purifier = new HTMLPurifier($config);
+ }
+
+ return $purifier->purify($html);
+}
+
/**
* Generate a hash for a file suitable for build/cache invalidation
*
diff --git a/app/RSpade/man/safe_html.txt b/app/RSpade/man/safe_html.txt
new file mode 100644
index 000000000..41738420b
--- /dev/null
+++ b/app/RSpade/man/safe_html.txt
@@ -0,0 +1,66 @@
+SAFE_HTML(1) RSpade Manual SAFE_HTML(1)
+
+NAME
+ safe_html - Sanitize HTML from WYSIWYG editors to prevent XSS attacks
+
+SYNOPSIS
+ PHP: safe_html(string $html): string
+ JS: safe_html(html_string)
+
+DESCRIPTION
+ Filters potentially malicious HTML while preserving safe formatting tags.
+ Use for all user-generated rich text content before display.
+
+ Both PHP (HTMLPurifier) and JS (DOMPurify) implementations use matching
+ allowed tags and attributes for consistent behavior.
+
+WHAT GETS STRIPPED
+ -
+ Output: Hello
+
+ Input: click
+ Output: click
+
+ Input:
+ Output:
+
+USAGE PATTERN
+ Always sanitize on the server before storing OR before display.
+ Sanitizing on both client and server provides defense in depth.
+
+ // Controller - sanitize before saving
+ $model->description = safe_html($params['description']);
+
+ // Or sanitize on display in template
+ <%!= safe_html(this.data.description) %>
+
+SEE ALSO
+ html() - Escape all HTML (for plain text, not rich text)
+
+RSpade Framework December 2025 SAFE_HTML(1)
diff --git a/composer.json b/composer.json
index 1b352963a..919112dd4 100755
--- a/composer.json
+++ b/composer.json
@@ -9,6 +9,7 @@
"require": {
"php": "^8.1",
"doctrine/dbal": "^3.9",
+ "ezyang/htmlpurifier": "*",
"giggsey/libphonenumber-for-php": "^8.13",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.48.25",
diff --git a/composer.lock b/composer.lock
index c34cf3ce0..6a941f8c0 100755
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "a9f0aa22360539b35117939a2f310b66",
+ "content-hash": "f1d874056cb379527577b1f4d80b05c0",
"packages": [
{
"name": "brick/math",
@@ -762,6 +762,67 @@
],
"time": "2025-03-06T22:45:56+00:00"
},
+ {
+ "name": "ezyang/htmlpurifier",
+ "version": "v4.19.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ezyang/htmlpurifier.git",
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf",
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
+ },
+ "require-dev": {
+ "cerdic/css-tidy": "^1.7 || ^2.0",
+ "simpletest/simpletest": "dev-master"
+ },
+ "suggest": {
+ "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+ "ext-bcmath": "Used for unit conversion and imagecrash protection",
+ "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+ "ext-tidy": "Used for pretty-printing HTML"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/HTMLPurifier.composer.php"
+ ],
+ "psr-0": {
+ "HTMLPurifier": "library/"
+ },
+ "exclude-from-classmap": [
+ "/library/HTMLPurifier/Language/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Edward Z. Yang",
+ "email": "admin@htmlpurifier.org",
+ "homepage": "http://ezyang.com"
+ }
+ ],
+ "description": "Standards compliant HTML filter written in PHP",
+ "homepage": "http://htmlpurifier.org/",
+ "keywords": [
+ "html"
+ ],
+ "support": {
+ "issues": "https://github.com/ezyang/htmlpurifier/issues",
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0"
+ },
+ "time": "2025-10-17T16:34:55+00:00"
+ },
{
"name": "fruitcake/php-cors",
"version": "v1.3.0",
@@ -11041,5 +11102,5 @@
"php": "^8.1"
},
"platform-dev": {},
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.9.0"
}
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index a448bf457..5a7439760 100755
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -2574,6 +2574,26 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
@@ -2725,6 +2745,19 @@
"linux"
]
},
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.54.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz",
+ "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -3242,6 +3275,13 @@
"@types/estree": "*"
}
},
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/@types/uglify-js": {
"version": "3.17.5",
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
@@ -5669,6 +5709,15 @@
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
+ "node_modules/dompurify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz",
+ "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==",
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
+ },
"node_modules/domutils": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
diff --git a/node_modules/@parcel/watcher-linux-x64-musl/LICENSE b/node_modules/@parcel/watcher-linux-x64-musl/LICENSE
new file mode 100644
index 000000000..7fb9bc953
--- /dev/null
+++ b/node_modules/@parcel/watcher-linux-x64-musl/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-present Devon Govett
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@parcel/watcher-linux-x64-musl/README.md b/node_modules/@parcel/watcher-linux-x64-musl/README.md
new file mode 100644
index 000000000..6c3b0df0a
--- /dev/null
+++ b/node_modules/@parcel/watcher-linux-x64-musl/README.md
@@ -0,0 +1 @@
+This is the linux-x64-musl build of @parcel/watcher. See https://github.com/parcel-bundler/watcher for details.
\ No newline at end of file
diff --git a/node_modules/@parcel/watcher-linux-x64-musl/package.json b/node_modules/@parcel/watcher-linux-x64-musl/package.json
new file mode 100644
index 000000000..db9a73503
--- /dev/null
+++ b/node_modules/@parcel/watcher-linux-x64-musl/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "@parcel/watcher-linux-x64-musl",
+ "version": "2.5.1",
+ "main": "watcher.node",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/parcel-bundler/watcher.git"
+ },
+ "description": "A native C++ Node module for querying and subscribing to filesystem events. Used by Parcel 2.",
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "files": [
+ "watcher.node"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ]
+}
diff --git a/node_modules/@parcel/watcher-linux-x64-musl/watcher.node b/node_modules/@parcel/watcher-linux-x64-musl/watcher.node
new file mode 100644
index 0000000000000000000000000000000000000000..ba3a471388080d7e45c0df4669fe95b7bb77ea20
GIT binary patch
literal 511160
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
)2-(8A
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