From f252f3efc5605366262085b9499f1bb2fe4aa987 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 20 Mar 2017 15:24:47 -0700 Subject: [PATCH 1/8] remove redundant and non-functional/broken check for successfully cloned channel record which was left over from an earlier method of creating the table; which was deprecated a few months back. --- include/import.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/include/import.php b/include/import.php index 5c73b7ca3..ac634639e 100644 --- a/include/import.php +++ b/include/import.php @@ -85,12 +85,6 @@ function import_channel($channel, $account_id, $seize) { create_table_from_array('channel',$clean); } - if(! $r) { - logger('mod_import: channel clone failed. ' . print_r($channel,true)); - notice( t('Channel clone failed. Import failed.') . EOL); - return false; - } - $r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1", intval($account_id), $channel['channel_guid'] // Already dbesc'd From 49e77e0f71d6140608db0fa6b9db2a4ad64b384a Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Thu, 23 Mar 2017 23:40:12 +0100 Subject: [PATCH 2/8] Import Module documentation and @-sign replacement. If you copy the identity from your profile page the @-sign is invalid for the import and fails. Replace it for convenience. --- Zotlabs/Module/Import.php | 228 +++++++++++++++++++------------------- 1 file changed, 116 insertions(+), 112 deletions(-) diff --git a/Zotlabs/Module/Import.php b/Zotlabs/Module/Import.php index 3969f25e0..55c1a8d8b 100644 --- a/Zotlabs/Module/Import.php +++ b/Zotlabs/Module/Import.php @@ -2,26 +2,32 @@ namespace Zotlabs\Module; -// Import a channel, either by direct file upload or via -// connection to original server. - - require_once('include/zot.php'); require_once('include/channel.php'); require_once('include/import.php'); require_once('include/perm_upgrade.php'); - +/** + * @brief Module for channel import. + * + * Import a channel, either by direct file upload or via + * connection to another server. + */ class Import extends \Zotlabs\Web\Controller { + /** + * @brief Import channel into account. + * + * @param int $account_id + */ function import_account($account_id) { - + if(! $account_id){ - logger("import_account: No account ID supplied"); + logger('No account ID supplied'); return; } - + $max_friends = account_service_class_fetch($account_id,'total_channels'); $max_feeds = account_service_class_fetch($account_id,'total_feeds'); $data = null; @@ -32,35 +38,39 @@ class Import extends \Zotlabs\Web\Controller { $filename = basename($_FILES['filename']['name']); $filesize = intval($_FILES['filename']['size']); $filetype = $_FILES['filename']['type']; - + // import channel from file if($src) { - - // This is OS specific and could also fail if your tmpdir isn't very large - // mostly used for Diaspora which exports gzipped files. - + + // This is OS specific and could also fail if your tmpdir isn't very + // large mostly used for Diaspora which exports gzipped files. + if(strpos($filename,'.gz')){ @rename($src,$src . '.gz'); @system('gunzip ' . escapeshellarg($src . '.gz')); } - + if($filesize) { $data = @file_get_contents($src); } unlink($src); } - + + // import channel from another server if(! $src) { $old_address = ((x($_REQUEST,'old_address')) ? $_REQUEST['old_address'] : ''); if(! $old_address) { - logger('mod_import: nothing to import.'); + logger('Nothing to import.'); notice( t('Nothing to import.') . EOL); return; + } else if(strpos($old_address, '@')) { + // if you copy the identity address from your profile page, make it work for convenience + $old_address = str_replace('@', '@', $old_address); } - + $email = ((x($_REQUEST,'email')) ? $_REQUEST['email'] : ''); $password = ((x($_REQUEST,'password')) ? $_REQUEST['password'] : ''); - + $channelname = substr($old_address,0,strpos($old_address,'@')); $servername = substr($old_address,strpos($old_address,'@')+1); @@ -85,19 +95,18 @@ class Import extends \Zotlabs\Web\Controller { return; } } - + if(! $data) { - logger('mod_import: empty file.'); + logger('Empty import file.'); notice( t('Imported file is empty.') . EOL); return; } - + $data = json_decode($data,true); - + // logger('import: data: ' . print_r($data,true)); // print_r($data); - - + if(! array_key_exists('compatibility',$data)) { call_hooks('import_foreign_channel_data',$data); if($data['handled']) @@ -108,24 +117,24 @@ class Import extends \Zotlabs\Web\Controller { $v1 = substr($data['compatibility']['database'],-4); $v2 = substr(DB_UPDATE_VERSION,-4); if($v2 > $v1) { - $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 ); + $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 ); notice($t); } if(array_key_exists('server_role',$data['compatibility']) && $data['compatibility']['server_role'] == 'basic') $moving = true; } - + if($moving) $seize = 1; - + // import channel - + $relocate = ((array_key_exists('relocate',$data)) ? $data['relocate'] : null); if(array_key_exists('channel',$data)) { - + $max_identities = account_service_class_fetch($account_id,'total_identities'); - + if($max_identities !== false) { $r = q("select channel_id from channel where channel_account_id = %d", intval($account_id) @@ -137,46 +146,40 @@ class Import extends \Zotlabs\Web\Controller { } $channel = import_channel($data['channel'], $account_id, $seize); - } else { $moving = false; $channel = \App::get_channel(); } - + if(! $channel) { - logger('mod_import: channel not found. ', print_r($channel,true)); + logger('Channel not found. ', print_r($channel,true)); notice( t('No channel. Import failed.') . EOL); return; } - - if(is_array($data['config'])) { import_config($channel,$data['config']); } - - logger('import step 2'); - - - + logger('import step 2'); + if(array_key_exists('channel',$data)) { if($data['photo']) { require_once('include/photo/photo_driver.php'); import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],$account_id,$channel['channel_id']); } - + if(is_array($data['profile'])) import_profiles($channel,$data['profile']); } - + logger('import step 3'); - + if(is_array($data['hubloc'])) { import_hublocs($channel,$data['hubloc'],$seize,$moving); } - + logger('import step 4'); // create new hubloc for the new channel at this site @@ -200,7 +203,7 @@ class Import extends \Zotlabs\Web\Controller { ); // reset the original primary hubloc if it is being seized - + if($seize) { $r = q("update hubloc set hubloc_primary = 0 where hubloc_primary = 1 and hubloc_hash = '%s' and hubloc_url != '%s' ", dbesc($channel['channel_hash']), @@ -210,20 +213,18 @@ class Import extends \Zotlabs\Web\Controller { } logger('import step 5'); - - - + + // import xchans and contact photos - + if(array_key_exists('channel',$data) && $seize) { - + // replace any existing xchan we may have on this site if we're seizing control - + $r = q("delete from xchan where xchan_hash = '%s'", dbesc($channel['channel_hash']) ); - $r = xchan_store_lowlevel( [ 'xchan_hash' => $channel['channel_hash'], @@ -242,23 +243,22 @@ class Import extends \Zotlabs\Web\Controller { 'xchan_photo_date' => datetime_convert(), 'xchan_name_date' => datetime_convert() ] - ); + ); } - + logger('import step 6'); - - + $xchans = $data['xchan']; if($xchans) { foreach($xchans as $xchan) { - + $hash = make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_guid_sig']); if($xchan['xchan_network'] === 'zot' && $hash !== $xchan['xchan_hash']) { logger('forged xchan: ' . print_r($xchan,true)); continue; } - + if(! array_key_exists('xchan_hidden',$xchan)) { $xchan['xchan_hidden'] = (($xchan['xchan_flags'] & 0x0001) ? 1 : 0); $xchan['xchan_orphan'] = (($xchan['xchan_flags'] & 0x0002) ? 1 : 0); @@ -268,22 +268,22 @@ class Import extends \Zotlabs\Web\Controller { $xchan['xchan_pubforum'] = (($xchan['xchan_flags'] & 0x0020) ? 1 : 0); $xchan['xchan_deleted'] = (($xchan['xchan_flags'] & 0x1000) ? 1 : 0); } - + $r = q("select xchan_hash from xchan where xchan_hash = '%s' limit 1", dbesc($xchan['xchan_hash']) ); if($r) continue; - create_table_from_array('xchan',$xchan); - + create_table_from_array('xchan',$xchan); + require_once('include/photo/photo_driver.php'); $photos = import_xchan_photo($xchan['xchan_photo_l'],$xchan['xchan_hash']); if($photos[4]) $photodate = NULL_DATE; else $photodate = $xchan['xchan_photo_date']; - + $r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s', xchan_photo_date = '%s' where xchan_hash = '%s'", dbesc($photos[0]), dbesc($photos[1]), @@ -292,27 +292,27 @@ class Import extends \Zotlabs\Web\Controller { dbesc($photodate), dbesc($xchan['xchan_hash']) ); - + } - logger('import step 7'); + logger('import step 7'); } - + $friends = 0; $feeds = 0; - + // import contacts $abooks = $data['abook']; if($abooks) { foreach($abooks as $abook) { $abook_copy = $abook; - + $abconfig = null; if(array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig'])) $abconfig = $abook['abconfig']; - + unset($abook['abook_id']); unset($abook['abook_rating']); unset($abook['abook_rating_text']); @@ -332,7 +332,7 @@ class Import extends \Zotlabs\Web\Controller { $abook['abook_self'] = (($abook['abook_flags'] & 0x0080 ) ? 1 : 0); $abook['abook_feed'] = (($abook['abook_flags'] & 0x0100 ) ? 1 : 0); } - + if($abook['abook_self']) { $role = get_pconfig($channel['channel_id'],'system','permissions_role'); if(($role === 'forum') || ($abook['abook_my_perms'] & PERMS_W_TAGWALL)) { @@ -340,14 +340,14 @@ class Import extends \Zotlabs\Web\Controller { dbesc($abook['abook_xchan']) ); } - } + } else { if($max_friends !== false && $friends > $max_friends) continue; if($max_feeds !== false && intval($abook['abook_feed']) && ($feeds > $max_feeds)) continue; } - + create_table_from_array('abook',$abook); $friends ++; @@ -355,9 +355,9 @@ class Import extends \Zotlabs\Web\Controller { $feeds ++; translate_abook_perms_inbound($channel,$abook_copy); - + if($abconfig) { - // @fixme does not handle sync of del_abconfig + /// @FIXME does not handle sync of del_abconfig foreach($abconfig as $abc) { set_abconfig($channel['channel_id'],$abc['xchan'],$abc['cat'],$abc['k'],$abc['v']); } @@ -366,7 +366,7 @@ class Import extends \Zotlabs\Web\Controller { logger('import step 8'); } - + $groups = $data['group']; if($groups) { $saved = array(); @@ -388,10 +388,10 @@ class Import extends \Zotlabs\Web\Controller { foreach($r as $rr) { $saved[$rr['hash']]['new'] = $rr['id']; } - } + } } - - + + $group_members = $data['group_member']; if($group_members) { foreach($group_members as $group_member) { @@ -406,31 +406,31 @@ class Import extends \Zotlabs\Web\Controller { } logger('import step 9'); - + if(is_array($data['obj'])) import_objs($channel,$data['obj']); - + if(is_array($data['likes'])) import_likes($channel,$data['likes']); - + if(is_array($data['app'])) import_apps($channel,$data['app']); - + if(is_array($data['chatroom'])) import_chatrooms($channel,$data['chatroom']); - + if(is_array($data['conv'])) import_conv($channel,$data['conv']); - + if(is_array($data['mail'])) import_mail($channel,$data['mail']); - + if(is_array($data['event'])) import_events($channel,$data['event']); - + if(is_array($data['event_item'])) import_items($channel,$data['event_item'],false,$relocate); - + if(is_array($data['menu'])) import_menus($channel,$data['menu']); @@ -439,56 +439,61 @@ class Import extends \Zotlabs\Web\Controller { if(is_array($data['webpages'])) import_items($channel,$data['webpages'],false,$relocate); - + $addon = array('channel' => $channel,'data' => $data); call_hooks('import_channel',$addon); - + $saved_notification_flags = notifications_off($channel['channel_id']); - + if($import_posts && array_key_exists('item',$data) && $data['item']) import_items($channel,$data['item'],false,$relocate); - + notifications_on($channel['channel_id'],$saved_notification_flags); - - + + if(array_key_exists('item_id',$data) && $data['item_id']) import_item_ids($channel,$data['item_id']); - + // send out refresh requests // notify old server that it may no longer be primary. - + \Zotlabs\Daemon\Master::Summon(array('Notifier','location',$channel['channel_id'])); - + // This will indirectly perform a refresh_all *and* update the directory - + \Zotlabs\Daemon\Master::Summon(array('Directory', $channel['channel_id'])); - - + + notice( t('Import completed.') . EOL); - + change_channel($channel['channel_id']); - + goaway(z_root() . '/network' ); - } - - + + /** + * @brief Handle POST action on channel import page. + */ function post() { - $account_id = get_account_id(); if(! $account_id) return; - + $this->import_account($account_id); } - + + /** + * @brief Generate channel import page. + * + * @return string with parsed HTML. + */ function get() { - + if(! get_account_id()) { notice( t('You must be logged in to use this feature.')); return ''; } - + $o = replace_macros(get_markup_template('channel_import.tpl'),array( '$title' => t('Import Channel'), '$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file.'), @@ -501,14 +506,13 @@ class Import extends \Zotlabs\Web\Controller { '$label_import_primary' => t('Make this hub my primary location'), '$label_import_moving' => t('Move this channel (disable all previous locations)'), '$label_import_posts' => t('Import a few months of posts if possible (limited by available memory'), - '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), + '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), '$email' => '', '$pass' => '', '$submit' => t('Submit') )); - + return $o; - } - + } From f718e2b0db0fe3477212a8dd6c3ec067f4432862 Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Sat, 18 Mar 2017 17:50:05 +0100 Subject: [PATCH 3/8] :arrow_up: Update HTML Purifier library. Updated HTML Purifier from 4.6.0 to 4.9.2 with better PHP7 compatibility. Used composer to manage this library. --- composer.json | 3 +- composer.lock | 49 +- include/text.php | 26 +- library/HTMLPurifier.composer.php | 4 - library/HTMLPurifier/AttrDef/CSS/Color.php | 105 - library/HTMLPurifier/ConfigSchema/schema.ser | Bin 15000 -> 0 bytes library/HTMLPurifier/EntityParser.php | 153 - tests/unit/includes/TextTest.php | 6 + vendor/composer/autoload_classmap.php | 234 + vendor/composer/autoload_files.php | 1 + vendor/composer/autoload_namespaces.php | 1 + vendor/composer/autoload_static.php | 242 + vendor/composer/installed.json | 49 + .../ezyang/htmlpurifier}/CREDITS | 0 .../ezyang/htmlpurifier}/INSTALL | 15 +- vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 | 60 + .../ezyang/htmlpurifier}/LICENSE | 0 .../ezyang/htmlpurifier}/NEWS | 90 + vendor/ezyang/htmlpurifier/README.md | 29 + vendor/ezyang/htmlpurifier/TODO | 150 + vendor/ezyang/htmlpurifier/VERSION | 1 + vendor/ezyang/htmlpurifier/WHATSNEW | 12 + vendor/ezyang/htmlpurifier/WYSIWYG | 20 + vendor/ezyang/htmlpurifier/composer.json | 25 + .../extras/ConfigDoc/HTMLXSLTProcessor.php | 91 + vendor/ezyang/htmlpurifier/extras/FSTools.php | 164 + .../htmlpurifier/extras/FSTools/File.php | 141 + .../extras/HTMLPurifierExtras.auto.php | 11 + .../extras/HTMLPurifierExtras.autoload.php | 26 + .../extras/HTMLPurifierExtras.php | 31 + vendor/ezyang/htmlpurifier/extras/README | 32 + .../library}/HTMLPurifier.auto.php | 0 .../library}/HTMLPurifier.autoload.php | 0 .../library/HTMLPurifier.composer.php | 4 + .../library}/HTMLPurifier.func.php | 0 .../library}/HTMLPurifier.includes.php | 7 +- .../library}/HTMLPurifier.kses.php | 0 .../library}/HTMLPurifier.path.php | 0 .../htmlpurifier/library}/HTMLPurifier.php | 8 +- .../library}/HTMLPurifier.safe-includes.php | 5 + .../library}/HTMLPurifier/Arborize.php | 6 +- .../library}/HTMLPurifier/AttrCollections.php | 5 + .../library}/HTMLPurifier/AttrDef.php | 8 +- .../library}/HTMLPurifier/AttrDef/CSS.php | 46 +- .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 0 .../HTMLPurifier/AttrDef/CSS/Background.php | 0 .../AttrDef/CSS/BackgroundPosition.php | 0 .../HTMLPurifier/AttrDef/CSS/Border.php | 0 .../HTMLPurifier/AttrDef/CSS/Color.php | 161 + .../HTMLPurifier/AttrDef/CSS/Composite.php | 0 .../AttrDef/CSS/DenyElementDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Filter.php | 0 .../HTMLPurifier/AttrDef/CSS/Font.php | 0 .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 0 .../HTMLPurifier/AttrDef/CSS/Ident.php | 0 .../AttrDef/CSS/ImportantDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Length.php | 0 .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 0 .../HTMLPurifier/AttrDef/CSS/Multiple.php | 2 +- .../HTMLPurifier/AttrDef/CSS/Number.php | 0 .../HTMLPurifier/AttrDef/CSS/Percentage.php | 0 .../AttrDef/CSS/TextDecoration.php | 0 .../library}/HTMLPurifier/AttrDef/CSS/URI.php | 3 + .../library}/HTMLPurifier/AttrDef/Clone.php | 0 .../library}/HTMLPurifier/AttrDef/Enum.php | 0 .../HTMLPurifier/AttrDef/HTML/Bool.php | 3 - .../HTMLPurifier/AttrDef/HTML/Class.php | 0 .../HTMLPurifier/AttrDef/HTML/Color.php | 0 .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 0 .../library}/HTMLPurifier/AttrDef/HTML/ID.php | 32 +- .../HTMLPurifier/AttrDef/HTML/Length.php | 0 .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 0 .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 0 .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 0 .../HTMLPurifier/AttrDef/HTML/Pixels.php | 0 .../library}/HTMLPurifier/AttrDef/Integer.php | 0 .../library}/HTMLPurifier/AttrDef/Lang.php | 0 .../library}/HTMLPurifier/AttrDef/Switch.php | 0 .../library}/HTMLPurifier/AttrDef/Text.php | 0 .../library}/HTMLPurifier/AttrDef/URI.php | 0 .../HTMLPurifier/AttrDef/URI/Email.php | 0 .../AttrDef/URI/Email/SimpleCheck.php | 0 .../HTMLPurifier/AttrDef/URI/Host.php | 30 +- .../HTMLPurifier/AttrDef/URI/IPv4.php | 0 .../HTMLPurifier/AttrDef/URI/IPv6.php | 0 .../library}/HTMLPurifier/AttrTransform.php | 0 .../HTMLPurifier/AttrTransform/Background.php | 0 .../HTMLPurifier/AttrTransform/BdoDir.php | 0 .../HTMLPurifier/AttrTransform/BgColor.php | 0 .../HTMLPurifier/AttrTransform/BoolToCSS.php | 0 .../HTMLPurifier/AttrTransform/Border.php | 0 .../HTMLPurifier/AttrTransform/EnumToCSS.php | 0 .../AttrTransform/ImgRequired.php | 3 +- .../HTMLPurifier/AttrTransform/ImgSpace.php | 0 .../HTMLPurifier/AttrTransform/Input.php | 0 .../HTMLPurifier/AttrTransform/Lang.php | 0 .../HTMLPurifier/AttrTransform/Length.php | 0 .../HTMLPurifier/AttrTransform/Name.php | 0 .../HTMLPurifier/AttrTransform/NameSync.php | 0 .../HTMLPurifier/AttrTransform/Nofollow.php | 0 .../HTMLPurifier/AttrTransform/SafeEmbed.php | 0 .../HTMLPurifier/AttrTransform/SafeObject.php | 0 .../HTMLPurifier/AttrTransform/SafeParam.php | 0 .../AttrTransform/ScriptRequired.php | 0 .../AttrTransform/TargetBlank.php | 0 .../AttrTransform/TargetNoopener.php | 37 + .../AttrTransform/TargetNoreferrer.php | 37 + .../HTMLPurifier/AttrTransform/Textarea.php | 0 .../library}/HTMLPurifier/AttrTypes.php | 0 .../library}/HTMLPurifier/AttrValidator.php | 0 .../library}/HTMLPurifier/Bootstrap.php | 0 .../library}/HTMLPurifier/CSSDefinition.php | 21 +- .../library}/HTMLPurifier/ChildDef.php | 0 .../HTMLPurifier/ChildDef/Chameleon.php | 0 .../library}/HTMLPurifier/ChildDef/Custom.php | 0 .../library}/HTMLPurifier/ChildDef/Empty.php | 0 .../library}/HTMLPurifier/ChildDef/List.php | 6 + .../HTMLPurifier/ChildDef/Optional.php | 0 .../HTMLPurifier/ChildDef/Required.php | 0 .../ChildDef/StrictBlockquote.php | 0 .../library}/HTMLPurifier/ChildDef/Table.php | 2 +- .../library}/HTMLPurifier/Config.php | 15 +- .../library}/HTMLPurifier/ConfigSchema.php | 0 .../ConfigSchema/Builder/ConfigSchema.php | 0 .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 0 .../HTMLPurifier/ConfigSchema/Exception.php | 0 .../HTMLPurifier/ConfigSchema/Interchange.php | 0 .../ConfigSchema/Interchange/Directive.php | 0 .../ConfigSchema/Interchange/Id.php | 0 .../ConfigSchema/InterchangeBuilder.php | 0 .../HTMLPurifier/ConfigSchema/Validator.php | 0 .../ConfigSchema/ValidatorAtom.php | 0 .../HTMLPurifier/ConfigSchema/schema.ser | Bin 0 -> 15923 bytes .../schema/Attr.AllowedClasses.txt | 0 .../schema/Attr.AllowedFrameTargets.txt | 0 .../ConfigSchema/schema/Attr.AllowedRel.txt | 0 .../ConfigSchema/schema/Attr.AllowedRev.txt | 0 .../schema/Attr.ClassUseCDATA.txt | 0 .../schema/Attr.DefaultImageAlt.txt | 0 .../schema/Attr.DefaultInvalidImage.txt | 0 .../schema/Attr.DefaultInvalidImageAlt.txt | 0 .../schema/Attr.DefaultTextDir.txt | 0 .../ConfigSchema/schema/Attr.EnableID.txt | 0 .../schema/Attr.ForbiddenClasses.txt | 0 .../ConfigSchema/schema/Attr.ID.HTML5.txt | 10 + .../ConfigSchema/schema/Attr.IDBlacklist.txt | 0 .../schema/Attr.IDBlacklistRegexp.txt | 0 .../ConfigSchema/schema/Attr.IDPrefix.txt | 0 .../schema/Attr.IDPrefixLocal.txt | 0 .../schema/AutoFormat.AutoParagraph.txt | 0 .../ConfigSchema/schema/AutoFormat.Custom.txt | 0 .../schema/AutoFormat.DisplayLinkURI.txt | 0 .../schema/AutoFormat.Linkify.txt | 0 .../AutoFormat.PurifierLinkify.DocURL.txt | 0 .../schema/AutoFormat.PurifierLinkify.txt | 0 .../AutoFormat.RemoveEmpty.Predicate.txt | 14 + ...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 0 .../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 0 .../schema/AutoFormat.RemoveEmpty.txt | 0 ...utoFormat.RemoveSpansWithoutAttributes.txt | 0 .../schema/CSS.AllowDuplicates.txt | 11 + .../schema/CSS.AllowImportant.txt | 0 .../ConfigSchema/schema/CSS.AllowTricky.txt | 0 .../ConfigSchema/schema/CSS.AllowedFonts.txt | 0 .../schema/CSS.AllowedProperties.txt | 0 .../ConfigSchema/schema/CSS.DefinitionRev.txt | 0 .../schema/CSS.ForbiddenProperties.txt | 0 .../ConfigSchema/schema/CSS.MaxImgLength.txt | 0 .../ConfigSchema/schema/CSS.Proprietary.txt | 0 .../ConfigSchema/schema/CSS.Trusted.txt | 0 .../schema/Cache.DefinitionImpl.txt | 0 .../schema/Cache.SerializerPath.txt | 0 .../schema/Cache.SerializerPermissions.txt | 7 +- .../schema/Core.AggressivelyFixLt.txt | 0 .../schema/Core.AggressivelyRemoveScript.txt | 16 + .../schema/Core.AllowHostnameUnderscore.txt | 0 .../schema/Core.CollectErrors.txt | 0 .../schema/Core.ColorKeywords.txt | 0 .../schema/Core.ConvertDocumentToFragment.txt | 0 .../Core.DirectLexLineNumberSyncInterval.txt | 0 .../schema/Core.DisableExcludes.txt | 0 .../ConfigSchema/schema/Core.EnableIDNA.txt | 0 .../ConfigSchema/schema/Core.Encoding.txt | 0 .../schema/Core.EscapeInvalidChildren.txt | 0 .../schema/Core.EscapeInvalidTags.txt | 0 .../schema/Core.EscapeNonASCIICharacters.txt | 0 .../schema/Core.HiddenElements.txt | 0 .../ConfigSchema/schema/Core.Language.txt | 0 .../schema/Core.LegacyEntityDecoder.txt | 36 + .../ConfigSchema/schema/Core.LexerImpl.txt | 0 .../schema/Core.MaintainLineNumbers.txt | 0 .../schema/Core.NormalizeNewlines.txt | 0 .../schema/Core.RemoveInvalidImg.txt | 0 .../Core.RemoveProcessingInstructions.txt | 0 .../schema/Core.RemoveScriptContents.txt | 0 .../ConfigSchema/schema/Filter.Custom.txt | 0 .../Filter.ExtractStyleBlocks.Escaping.txt | 0 .../Filter.ExtractStyleBlocks.Scope.txt | 0 .../Filter.ExtractStyleBlocks.TidyImpl.txt | 0 .../schema/Filter.ExtractStyleBlocks.txt | 0 .../ConfigSchema/schema/Filter.YouTube.txt | 0 .../ConfigSchema/schema/HTML.Allowed.txt | 0 .../schema/HTML.AllowedAttributes.txt | 0 .../schema/HTML.AllowedComments.txt | 0 .../schema/HTML.AllowedCommentsRegexp.txt | 0 .../schema/HTML.AllowedElements.txt | 0 .../schema/HTML.AllowedModules.txt | 0 .../schema/HTML.Attr.Name.UseCDATA.txt | 0 .../ConfigSchema/schema/HTML.BlockWrapper.txt | 0 .../ConfigSchema/schema/HTML.CoreModules.txt | 0 .../schema/HTML.CustomDoctype.txt | 2 +- .../ConfigSchema/schema/HTML.DefinitionID.txt | 0 .../schema/HTML.DefinitionRev.txt | 0 .../ConfigSchema/schema/HTML.Doctype.txt | 0 .../schema/HTML.FlashAllowFullScreen.txt | 0 .../schema/HTML.ForbiddenAttributes.txt | 0 .../schema/HTML.ForbiddenElements.txt | 0 .../ConfigSchema/schema/HTML.MaxImgLength.txt | 0 .../ConfigSchema/schema/HTML.Nofollow.txt | 0 .../ConfigSchema/schema/HTML.Parent.txt | 0 .../ConfigSchema/schema/HTML.Proprietary.txt | 0 .../ConfigSchema/schema/HTML.SafeEmbed.txt | 0 .../ConfigSchema/schema/HTML.SafeIframe.txt | 0 .../ConfigSchema/schema/HTML.SafeObject.txt | 0 .../schema/HTML.SafeScripting.txt | 0 .../ConfigSchema/schema/HTML.Strict.txt | 0 .../ConfigSchema/schema/HTML.TargetBlank.txt | 0 .../schema/HTML.TargetNoopener.txt | 10 + .../schema/HTML.TargetNoreferrer.txt | 9 + .../ConfigSchema/schema/HTML.TidyAdd.txt | 0 .../ConfigSchema/schema/HTML.TidyLevel.txt | 0 .../ConfigSchema/schema/HTML.TidyRemove.txt | 0 .../ConfigSchema/schema/HTML.Trusted.txt | 0 .../ConfigSchema/schema/HTML.XHTML.txt | 0 .../schema/Output.CommentScriptContents.txt | 0 .../schema/Output.FixInnerHTML.txt | 0 .../schema/Output.FlashCompat.txt | 0 .../ConfigSchema/schema/Output.Newline.txt | 0 .../ConfigSchema/schema/Output.SortAttr.txt | 0 .../ConfigSchema/schema/Output.TidyFormat.txt | 0 .../ConfigSchema/schema/Test.ForceNoIconv.txt | 0 .../schema/URI.AllowedSchemes.txt | 1 + .../ConfigSchema/schema/URI.Base.txt | 0 .../ConfigSchema/schema/URI.DefaultScheme.txt | 7 +- .../ConfigSchema/schema/URI.DefinitionID.txt | 0 .../ConfigSchema/schema/URI.DefinitionRev.txt | 0 .../ConfigSchema/schema/URI.Disable.txt | 0 .../schema/URI.DisableExternal.txt | 0 .../schema/URI.DisableExternalResources.txt | 0 .../schema/URI.DisableResources.txt | 0 .../ConfigSchema/schema/URI.Host.txt | 0 .../ConfigSchema/schema/URI.HostBlacklist.txt | 0 .../ConfigSchema/schema/URI.MakeAbsolute.txt | 0 .../ConfigSchema/schema/URI.Munge.txt | 0 .../schema/URI.MungeResources.txt | 0 .../schema/URI.MungeSecretKey.txt | 0 .../schema/URI.OverrideAllowedSchemes.txt | 0 .../schema/URI.SafeIframeRegexp.txt | 0 .../HTMLPurifier/ConfigSchema/schema/info.ini | 0 .../library}/HTMLPurifier/ContentSets.php | 0 .../library}/HTMLPurifier/Context.php | 0 .../library}/HTMLPurifier/Definition.php | 0 .../library}/HTMLPurifier/DefinitionCache.php | 2 +- .../DefinitionCache/Decorator.php | 0 .../DefinitionCache/Decorator/Cleanup.php | 0 .../DefinitionCache/Decorator/Memory.php | 0 .../DefinitionCache/Decorator/Template.php.in | 0 .../HTMLPurifier/DefinitionCache/Null.php | 0 .../DefinitionCache/Serializer.php | 41 +- .../DefinitionCache/Serializer/README | 0 .../HTMLPurifier/DefinitionCacheFactory.php | 0 .../library}/HTMLPurifier/Doctype.php | 0 .../library}/HTMLPurifier/DoctypeRegistry.php | 0 .../library}/HTMLPurifier/ElementDef.php | 0 .../library}/HTMLPurifier/Encoder.php | 12 +- .../library}/HTMLPurifier/EntityLookup.php | 0 .../HTMLPurifier/EntityLookup/entities.ser | 0 .../library/HTMLPurifier/EntityParser.php | 285 ++ .../library}/HTMLPurifier/ErrorCollector.php | 0 .../library}/HTMLPurifier/ErrorStruct.php | 0 .../library}/HTMLPurifier/Exception.php | 0 .../library}/HTMLPurifier/Filter.php | 0 .../Filter/ExtractStyleBlocks.php | 5 +- .../library}/HTMLPurifier/Filter/YouTube.php | 8 +- .../library}/HTMLPurifier/Generator.php | 0 .../library}/HTMLPurifier/HTMLDefinition.php | 0 .../library}/HTMLPurifier/HTMLModule.php | 0 .../library}/HTMLPurifier/HTMLModule/Bdo.php | 0 .../HTMLModule/CommonAttributes.php | 0 .../library}/HTMLPurifier/HTMLModule/Edit.php | 0 .../HTMLPurifier/HTMLModule/Forms.php | 0 .../HTMLPurifier/HTMLModule/Hypertext.php | 0 .../HTMLPurifier/HTMLModule/Iframe.php | 0 .../HTMLPurifier/HTMLModule/Image.php | 0 .../HTMLPurifier/HTMLModule/Legacy.php | 0 .../library}/HTMLPurifier/HTMLModule/List.php | 0 .../library}/HTMLPurifier/HTMLModule/Name.php | 0 .../HTMLPurifier/HTMLModule/Nofollow.php | 0 .../HTMLModule/NonXMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModule/Object.php | 0 .../HTMLPurifier/HTMLModule/Presentation.php | 0 .../HTMLPurifier/HTMLModule/Proprietary.php | 0 .../library}/HTMLPurifier/HTMLModule/Ruby.php | 0 .../HTMLPurifier/HTMLModule/SafeEmbed.php | 0 .../HTMLPurifier/HTMLModule/SafeObject.php | 0 .../HTMLPurifier/HTMLModule/SafeScripting.php | 0 .../HTMLPurifier/HTMLModule/Scripting.php | 0 .../HTMLModule/StyleAttribute.php | 0 .../HTMLPurifier/HTMLModule/Tables.php | 0 .../HTMLPurifier/HTMLModule/Target.php | 0 .../HTMLPurifier/HTMLModule/TargetBlank.php | 0 .../HTMLModule/TargetNoopener.php | 21 + .../HTMLModule/TargetNoreferrer.php | 21 + .../library}/HTMLPurifier/HTMLModule/Text.php | 0 .../library}/HTMLPurifier/HTMLModule/Tidy.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Name.php | 0 .../HTMLModule/Tidy/Proprietary.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 0 .../HTMLModule/Tidy/Transitional.php | 0 .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 0 .../HTMLModule/Tidy/XHTMLAndHTML4.php | 0 .../HTMLModule/XMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModuleManager.php | 8 + .../library}/HTMLPurifier/IDAccumulator.php | 0 .../library}/HTMLPurifier/Injector.php | 0 .../HTMLPurifier/Injector/AutoParagraph.php | 0 .../HTMLPurifier/Injector/DisplayLinkURI.php | 0 .../HTMLPurifier/Injector/Linkify.php | 11 +- .../HTMLPurifier/Injector/PurifierLinkify.php | 0 .../HTMLPurifier/Injector/RemoveEmpty.php | 21 +- .../Injector/RemoveSpansWithoutAttributes.php | 0 .../HTMLPurifier/Injector/SafeObject.php | 7 +- .../library}/HTMLPurifier/Language.php | 0 .../Language/classes/en-x-test.php | 0 .../Language/messages/en-x-test.php | 0 .../Language/messages/en-x-testmini.php | 0 .../HTMLPurifier/Language/messages/en.php | 0 .../library}/HTMLPurifier/LanguageFactory.php | 0 .../library}/HTMLPurifier/Length.php | 0 .../library}/HTMLPurifier/Lexer.php | 49 +- .../library}/HTMLPurifier/Lexer/DOMLex.php | 35 +- .../library}/HTMLPurifier/Lexer/DirectLex.php | 16 +- .../library}/HTMLPurifier/Lexer/PH5P.php | 10 +- .../library}/HTMLPurifier/Node.php | 0 .../library}/HTMLPurifier/Node/Comment.php | 0 .../library}/HTMLPurifier/Node/Element.php | 0 .../library}/HTMLPurifier/Node/Text.php | 0 .../library}/HTMLPurifier/PercentEncoder.php | 0 .../library}/HTMLPurifier/Printer.php | 0 .../HTMLPurifier/Printer/CSSDefinition.php | 0 .../HTMLPurifier/Printer/ConfigForm.css | 0 .../HTMLPurifier/Printer/ConfigForm.js | 0 .../HTMLPurifier/Printer/ConfigForm.php | 4 + .../HTMLPurifier/Printer/HTMLDefinition.php | 0 .../library}/HTMLPurifier/PropertyList.php | 0 .../HTMLPurifier/PropertyListIterator.php | 0 .../library}/HTMLPurifier/Queue.php | 0 .../library}/HTMLPurifier/Strategy.php | 0 .../HTMLPurifier/Strategy/Composite.php | 0 .../library}/HTMLPurifier/Strategy/Core.php | 0 .../HTMLPurifier/Strategy/FixNesting.php | 0 .../HTMLPurifier/Strategy/MakeWellFormed.php | 67 +- .../Strategy/RemoveForeignElements.php | 0 .../Strategy/ValidateAttributes.php | 0 .../library}/HTMLPurifier/StringHash.php | 0 .../HTMLPurifier/StringHashParser.php | 0 .../library}/HTMLPurifier/TagTransform.php | 0 .../HTMLPurifier/TagTransform/Font.php | 0 .../HTMLPurifier/TagTransform/Simple.php | 0 .../library}/HTMLPurifier/Token.php | 2 +- .../library}/HTMLPurifier/Token/Comment.php | 0 .../library}/HTMLPurifier/Token/Empty.php | 0 .../library}/HTMLPurifier/Token/End.php | 0 .../library}/HTMLPurifier/Token/Start.php | 0 .../library}/HTMLPurifier/Token/Tag.php | 0 .../library}/HTMLPurifier/Token/Text.php | 0 .../library}/HTMLPurifier/TokenFactory.php | 0 .../library}/HTMLPurifier/URI.php | 12 +- .../library}/HTMLPurifier/URIDefinition.php | 0 .../library}/HTMLPurifier/URIFilter.php | 0 .../URIFilter/DisableExternal.php | 0 .../URIFilter/DisableExternalResources.php | 0 .../URIFilter/DisableResources.php | 0 .../HTMLPurifier/URIFilter/HostBlacklist.php | 0 .../HTMLPurifier/URIFilter/MakeAbsolute.php | 0 .../library}/HTMLPurifier/URIFilter/Munge.php | 0 .../HTMLPurifier/URIFilter/SafeIframe.php | 0 .../library}/HTMLPurifier/URIParser.php | 0 .../library}/HTMLPurifier/URIScheme.php | 0 .../library}/HTMLPurifier/URIScheme/data.php | 11 +- .../library}/HTMLPurifier/URIScheme/file.php | 0 .../library}/HTMLPurifier/URIScheme/ftp.php | 0 .../library}/HTMLPurifier/URIScheme/http.php | 0 .../library}/HTMLPurifier/URIScheme/https.php | 0 .../HTMLPurifier/URIScheme/mailto.php | 0 .../library}/HTMLPurifier/URIScheme/news.php | 0 .../library}/HTMLPurifier/URIScheme/nntp.php | 0 .../library/HTMLPurifier/URIScheme/tel.php | 46 + .../HTMLPurifier/URISchemeRegistry.php | 0 .../library}/HTMLPurifier/UnitConverter.php | 0 .../library}/HTMLPurifier/VarParser.php | 0 .../HTMLPurifier/VarParser/Flexible.php | 0 .../HTMLPurifier/VarParser/Native.php | 0 .../HTMLPurifier/VarParserException.php | 0 .../library}/HTMLPurifier/Zipper.php | 0 .../ezyang/htmlpurifier/maintenance/.htaccess | 1 + .../htmlpurifier/maintenance/PH5P.patch | 102 + .../ezyang/htmlpurifier/maintenance/PH5P.php | 3889 +++++++++++++++++ .../htmlpurifier/maintenance/add-vimline.php | 130 + .../htmlpurifier/maintenance/common.php | 25 + .../maintenance/compile-doxygen.sh | 11 + .../maintenance/config-scanner.php | 155 + .../maintenance/flush-definition-cache.php | 42 + .../ezyang/htmlpurifier/maintenance/flush.php | 30 + .../maintenance/generate-entity-file.php | 75 + .../maintenance/generate-includes.php | 192 + .../maintenance/generate-ph5p-patch.php | 22 + .../maintenance/generate-schema-cache.php | 45 + .../maintenance/generate-standalone.php | 159 + .../maintenance/merge-library.php | 11 + .../maintenance/old-extract-schema.php | 71 + .../maintenance/old-remove-require-once.php | 32 + .../maintenance/old-remove-schema-def.php | 32 + .../maintenance/regenerate-docs.sh | 5 + .../remove-trailing-whitespace.php | 37 + .../maintenance/rename-config.php | 84 + .../maintenance/update-config.php | 34 + vendor/ezyang/htmlpurifier/package.php | 61 + vendor/ezyang/htmlpurifier/phpdoc.ini | 102 + vendor/ezyang/htmlpurifier/plugins/modx.txt | 112 + .../htmlpurifier/plugins/phorum/.gitignore | 2 + .../htmlpurifier/plugins/phorum/Changelog | 27 + .../htmlpurifier/plugins/phorum/INSTALL | 84 + .../ezyang/htmlpurifier/plugins/phorum/README | 45 + .../plugins/phorum/config.default.php | 57 + .../plugins/phorum/htmlpurifier.php | 316 ++ .../htmlpurifier/plugins/phorum/info.txt | 18 + .../plugins/phorum/init-config.php | 30 + .../plugins/phorum/migrate.bbcode.php | 31 + .../htmlpurifier/plugins/phorum/settings.php | 64 + .../plugins/phorum/settings/form.php | 95 + .../phorum/settings/migrate-sigs-form.php | 22 + .../plugins/phorum/settings/migrate-sigs.php | 79 + .../plugins/phorum/settings/save.php | 29 + .../ezyang/htmlpurifier/release1-update.php | 110 + vendor/ezyang/htmlpurifier/release2-tag.php | 22 + .../htmlpurifier/test-settings.sample.php | 74 + .../htmlpurifier/test-settings.travis.php | 72 + 448 files changed, 9258 insertions(+), 407 deletions(-) delete mode 100644 library/HTMLPurifier.composer.php delete mode 100644 library/HTMLPurifier/AttrDef/CSS/Color.php delete mode 100644 library/HTMLPurifier/ConfigSchema/schema.ser delete mode 100644 library/HTMLPurifier/EntityParser.php rename {library/htmlpurifier-4.6.0-lite => vendor/ezyang/htmlpurifier}/CREDITS (100%) rename {library/htmlpurifier-4.6.0-lite => vendor/ezyang/htmlpurifier}/INSTALL (96%) create mode 100644 vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 rename {library/htmlpurifier-4.6.0-lite => vendor/ezyang/htmlpurifier}/LICENSE (100%) rename {library/htmlpurifier-4.6.0-lite => vendor/ezyang/htmlpurifier}/NEWS (92%) create mode 100644 vendor/ezyang/htmlpurifier/README.md create mode 100644 vendor/ezyang/htmlpurifier/TODO create mode 100644 vendor/ezyang/htmlpurifier/VERSION create mode 100644 vendor/ezyang/htmlpurifier/WHATSNEW create mode 100644 vendor/ezyang/htmlpurifier/WYSIWYG create mode 100644 vendor/ezyang/htmlpurifier/composer.json create mode 100644 vendor/ezyang/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php create mode 100644 vendor/ezyang/htmlpurifier/extras/FSTools.php create mode 100644 vendor/ezyang/htmlpurifier/extras/FSTools/File.php create mode 100644 vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.auto.php create mode 100644 vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php create mode 100644 vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.php create mode 100644 vendor/ezyang/htmlpurifier/extras/README rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.auto.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.autoload.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.func.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.includes.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.kses.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.path.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier.safe-includes.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Arborize.php (94%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrCollections.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef.php (94%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS.php (71%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/AlphaValue.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Background.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Border.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Composite.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Filter.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Font.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/FontFamily.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Ident.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Length.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/ListStyle.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Multiple.php (96%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Number.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Percentage.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/TextDecoration.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/URI.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Clone.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Enum.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Bool.php (92%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Class.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Color.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/FrameTarget.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/ID.php (80%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Length.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/LinkTypes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/MultiLength.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Nmtokens.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Pixels.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Integer.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Lang.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Switch.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Text.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Email.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Host.php (84%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/IPv4.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/IPv6.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Background.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BdoDir.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BgColor.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BoolToCSS.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Border.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/EnumToCSS.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ImgRequired.php (90%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ImgSpace.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Input.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Lang.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Length.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Name.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/NameSync.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Nofollow.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeEmbed.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeObject.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeParam.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ScriptRequired.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/TargetBlank.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Textarea.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrTypes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/AttrValidator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Bootstrap.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/CSSDefinition.php (95%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Chameleon.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Custom.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Empty.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/List.php (92%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Optional.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Required.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/StrictBlockquote.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Table.php (99%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Config.php (99%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Builder/Xml.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Exception.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange/Directive.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange/Id.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/InterchangeBuilder.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Validator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/ValidatorAtom.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt (59%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.Language.txt (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt (72%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt (100%) 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 rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt (96%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Base.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt (57%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Host.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/info.ini (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ContentSets.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Context.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Definition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache.php (98%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Memory.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Template.php.in (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Null.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Serializer.php (88%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Serializer/README (100%) mode change 100644 => 100755 rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCacheFactory.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Doctype.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/DoctypeRegistry.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ElementDef.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Encoder.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/EntityLookup.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/EntityLookup/entities.ser (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ErrorCollector.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/ErrorStruct.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Exception.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Filter.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Filter/ExtractStyleBlocks.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Filter/YouTube.php (84%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Generator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLDefinition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Bdo.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/CommonAttributes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Edit.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Forms.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Hypertext.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Iframe.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Image.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Legacy.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/List.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Name.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Nofollow.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Object.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Presentation.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Proprietary.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Ruby.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeEmbed.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeObject.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeScripting.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Scripting.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/StyleAttribute.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tables.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Target.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/TargetBlank.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Text.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Name.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Proprietary.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Strict.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Transitional.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/XHTML.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/XMLCommonAttributes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModuleManager.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/IDAccumulator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/AutoParagraph.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/DisplayLinkURI.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/Linkify.php (69%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/PurifierLinkify.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/RemoveEmpty.php (81%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Injector/SafeObject.php (91%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Language.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Language/classes/en-x-test.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Language/messages/en-x-test.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Language/messages/en-x-testmini.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Language/messages/en.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/LanguageFactory.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Length.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Lexer.php (88%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/DOMLex.php (89%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/DirectLex.php (98%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/PH5P.php (99%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Node.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Node/Comment.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Node/Element.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Node/Text.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/PercentEncoder.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer/CSSDefinition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.css (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.js (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.php (98%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Printer/HTMLDefinition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/PropertyList.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/PropertyListIterator.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Queue.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/Composite.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/Core.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/FixNesting.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/MakeWellFormed.php (88%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/RemoveForeignElements.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/ValidateAttributes.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/StringHash.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/StringHashParser.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform/Font.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform/Simple.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token.php (97%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/Comment.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/Empty.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/End.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/Start.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/Tag.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Token/Text.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/TokenFactory.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URI.php (96%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIDefinition.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableExternal.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableExternalResources.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableResources.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/HostBlacklist.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/MakeAbsolute.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/Munge.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/SafeIframe.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIParser.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/data.php (90%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/file.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/ftp.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/http.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/https.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/mailto.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/news.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/nntp.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/URISchemeRegistry.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/UnitConverter.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/VarParser.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/VarParser/Flexible.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/VarParser/Native.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/VarParserException.php (100%) rename {library => vendor/ezyang/htmlpurifier/library}/HTMLPurifier/Zipper.php (100%) create mode 100644 vendor/ezyang/htmlpurifier/maintenance/.htaccess create mode 100644 vendor/ezyang/htmlpurifier/maintenance/PH5P.patch create mode 100644 vendor/ezyang/htmlpurifier/maintenance/PH5P.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/add-vimline.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/common.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh create mode 100644 vendor/ezyang/htmlpurifier/maintenance/config-scanner.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/flush.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/generate-includes.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/generate-ph5p-patch.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/generate-schema-cache.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/merge-library.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/old-extract-schema.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/old-remove-require-once.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/old-remove-schema-def.php create mode 100755 vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh create mode 100644 vendor/ezyang/htmlpurifier/maintenance/remove-trailing-whitespace.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/rename-config.php create mode 100644 vendor/ezyang/htmlpurifier/maintenance/update-config.php create mode 100644 vendor/ezyang/htmlpurifier/package.php create mode 100644 vendor/ezyang/htmlpurifier/phpdoc.ini create mode 100644 vendor/ezyang/htmlpurifier/plugins/modx.txt create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/.gitignore create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/Changelog create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/INSTALL create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/README create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/config.default.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/htmlpurifier.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/info.txt create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/init-config.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/migrate.bbcode.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/settings.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/settings/form.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/settings/migrate-sigs-form.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/settings/migrate-sigs.php create mode 100644 vendor/ezyang/htmlpurifier/plugins/phorum/settings/save.php create mode 100644 vendor/ezyang/htmlpurifier/release1-update.php create mode 100644 vendor/ezyang/htmlpurifier/release2-tag.php create mode 100644 vendor/ezyang/htmlpurifier/test-settings.sample.php create mode 100644 vendor/ezyang/htmlpurifier/test-settings.travis.php diff --git a/composer.json b/composer.json index c99709c77..09e6d783e 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,8 @@ "sabre/dav" : "~3.2", "michelf/php-markdown" : "^1.7", "pixel418/markdownify": "^2.2", - "bshaffer/oauth2-server-php": "^1.9" + "bshaffer/oauth2-server-php": "^1.9", + "ezyang/htmlpurifier": "^4.9" }, "require-dev" : { "php" : ">=7.0", diff --git a/composer.lock b/composer.lock index 1e515ad5b..62fd0cb8a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "9842014a99ac4e654bc7bfd6061d6f60", + "content-hash": "f1d40dcfbbb2f5364ad55235efaeb5ab", "packages": [ { "name": "bshaffer/oauth2-server-php", @@ -62,6 +62,53 @@ ], "time": "2017-01-06T23:20:00+00:00" }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.9.2", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", + "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "require-dev": { + "simpletest/simpletest": "^1.1" + }, + "type": "library", + "autoload": { + "psr-0": { + "HTMLPurifier": "library/" + }, + "files": [ + "library/HTMLPurifier.composer.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL" + ], + "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" + ], + "time": "2017-03-13T06:30:53+00:00" + }, { "name": "michelf/php-markdown", "version": "1.7.0", diff --git a/include/text.php b/include/text.php index 224ba17d0..911334a15 100644 --- a/include/text.php +++ b/include/text.php @@ -122,13 +122,23 @@ function z_input_filter($channel_id,$s,$type = 'text/bbcode') { } - +/** + * @brief Use HTMLPurifier to get standards compliant HTML. + * + * Use the HTMLPurifier + * library to get filtered and standards compliant HTML. + * + * @see HTMLPurifier + * + * @param string $s raw HTML + * @param boolean $allow_position allow CSS position + * @return string standards compliant filtered HTML + */ function purify_html($s, $allow_position = false) { - require_once('library/HTMLPurifier.auto.php'); - require_once('include/html2bbcode.php'); /** * @FIXME this function has html output, not bbcode - so safely purify these + * require_once('include/html2bbcode.php'); * $s = html2bb_video($s); * $s = oembed_html2bbcode($s); */ @@ -137,6 +147,15 @@ function purify_html($s, $allow_position = false) { $config->set('Cache.DefinitionImpl', null); $config->set('Attr.EnableID', true); + // If enabled, target=blank attributes are added to all links. + //$config->set('HTML.TargetBlank', true); + //$config->set('Attr.AllowedFrameTargets', ['_blank', '_self', '_parent', '_top']); + // restore old behavior of HTMLPurifier < 4.8, only used when targets allowed at all + // do not add rel="noreferrer" to all links with target attributes + //$config->set('HTML.TargetNoreferrer', false); + // do not add noopener rel attributes to links which have a target attribute associated with them + //$config->set('HTML.TargetNoopener', false); + //Allow some custom data- attributes used by built-in libs. //In this way members which do not have allowcode set can still use the built-in js libs in webpages to some extent. @@ -274,7 +293,6 @@ function purify_html($s, $allow_position = false) { new HTMLPurifier_AttrDef_CSS_Length(), new HTMLPurifier_AttrDef_CSS_Percentage() )); - } $purifier = new HTMLPurifier($config); diff --git a/library/HTMLPurifier.composer.php b/library/HTMLPurifier.composer.php deleted file mode 100644 index 6706f4e39..000000000 --- a/library/HTMLPurifier.composer.php +++ /dev/null @@ -1,4 +0,0 @@ -get('Core.ColorKeywords'); - } - - $color = trim($color); - if ($color === '') { - return false; - } - - $lower = strtolower($color); - if (isset($colors[$lower])) { - return $colors[$lower]; - } - - if (strpos($color, 'rgb(') !== false) { - // rgb literal handling - $length = strlen($color); - if (strpos($color, ')') !== $length - 1) { - return false; - } - $triad = substr($color, 4, $length - 4 - 1); - $parts = explode(',', $triad); - if (count($parts) !== 3) { - return false; - } - $type = false; // to ensure that they're all the same type - $new_parts = array(); - foreach ($parts as $part) { - $part = trim($part); - if ($part === '') { - return false; - } - $length = strlen($part); - if ($part[$length - 1] === '%') { - // handle percents - if (!$type) { - $type = 'percentage'; - } elseif ($type !== 'percentage') { - return false; - } - $num = (float)substr($part, 0, $length - 1); - if ($num < 0) { - $num = 0; - } - if ($num > 100) { - $num = 100; - } - $new_parts[] = "$num%"; - } else { - // handle integers - if (!$type) { - $type = 'integer'; - } elseif ($type !== 'integer') { - return false; - } - $num = (int)$part; - if ($num < 0) { - $num = 0; - } - if ($num > 255) { - $num = 255; - } - $new_parts[] = (string)$num; - } - } - $new_triad = implode(',', $new_parts); - $color = "rgb($new_triad)"; - } else { - // hexadecimal handling - if ($color[0] === '#') { - $hex = substr($color, 1); - } else { - $hex = $color; - $color = '#' . $color; - } - $length = strlen($hex); - if ($length !== 3 && $length !== 6) { - return false; - } - if (!ctype_xdigit($hex)) { - return false; - } - } - return $color; - } -} - -// vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema.ser b/library/HTMLPurifier/ConfigSchema/schema.ser deleted file mode 100644 index 22ea32185db63b19d525f509ebe431f593e92271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15000 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 QaEIMR#+=+~=6(D2AIX)%zyJUM diff --git a/library/HTMLPurifier/EntityParser.php b/library/HTMLPurifier/EntityParser.php deleted file mode 100644 index 61529dcd9..000000000 --- a/library/HTMLPurifier/EntityParser.php +++ /dev/null @@ -1,153 +0,0 @@ - '"', - 38 => '&', - 39 => "'", - 60 => '<', - 62 => '>' - ); - - /** - * Stripped entity names to decimal conversion table for special entities. - * @type array - */ - protected $_special_ent2dec = - array( - 'quot' => 34, - 'amp' => 38, - 'lt' => 60, - 'gt' => 62 - ); - - /** - * Substitutes non-special entities with their parsed equivalents. Since - * running this whenever you have parsed character is t3h 5uck, we run - * it before everything else. - * - * @param string $string String to have non-special entities parsed. - * @return string Parsed string. - */ - public function substituteNonSpecialEntities($string) - { - // it will try to detect missing semicolons, but don't rely on it - return preg_replace_callback( - $this->_substituteEntitiesRegex, - array($this, 'nonSpecialEntityCallback'), - $string - ); - } - - /** - * Callback function for substituteNonSpecialEntities() that does the work. - * - * @param array $matches PCRE matches array, with 0 the entire match, and - * either index 1, 2 or 3 set with a hex value, dec value, - * or string (respectively). - * @return string Replacement string. - */ - - protected function nonSpecialEntityCallback($matches) - { - // replaces all but big five - $entity = $matches[0]; - $is_num = (@$matches[0][1] === '#'); - if ($is_num) { - $is_hex = (@$entity[2] === 'x'); - $code = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; - // abort for special characters - if (isset($this->_special_dec2str[$code])) { - return $entity; - } - return HTMLPurifier_Encoder::unichr($code); - } else { - if (isset($this->_special_ent2dec[$matches[3]])) { - return $entity; - } - if (!$this->_entity_lookup) { - $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); - } - if (isset($this->_entity_lookup->table[$matches[3]])) { - return $this->_entity_lookup->table[$matches[3]]; - } else { - return $entity; - } - } - } - - /** - * Substitutes only special entities with their parsed equivalents. - * - * @notice We try to avoid calling this function because otherwise, it - * would have to be called a lot (for every parsed section). - * - * @param string $string String to have non-special entities parsed. - * @return string Parsed string. - */ - public function substituteSpecialEntities($string) - { - return preg_replace_callback( - $this->_substituteEntitiesRegex, - array($this, 'specialEntityCallback'), - $string - ); - } - - /** - * Callback function for substituteSpecialEntities() that does the work. - * - * This callback has same syntax as nonSpecialEntityCallback(). - * - * @param array $matches PCRE-style matches array, with 0 the entire match, and - * either index 1, 2 or 3 set with a hex value, dec value, - * or string (respectively). - * @return string Replacement string. - */ - protected function specialEntityCallback($matches) - { - $entity = $matches[0]; - $is_num = (@$matches[0][1] === '#'); - if ($is_num) { - $is_hex = (@$entity[2] === 'x'); - $int = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; - return isset($this->_special_dec2str[$int]) ? - $this->_special_dec2str[$int] : - $entity; - } else { - return isset($this->_special_ent2dec[$matches[3]]) ? - $this->_special_ent2dec[$matches[3]] : - $entity; - } - } -} - -// vim: et sw=4 sts=4 diff --git a/tests/unit/includes/TextTest.php b/tests/unit/includes/TextTest.php index 85ed6a4fd..e2c7cbb9a 100644 --- a/tests/unit/includes/TextTest.php +++ b/tests/unit/includes/TextTest.php @@ -36,6 +36,10 @@ empty line above'; $this->assertEquals($html5elements, purify_html($html5elements)); $this->assertEquals('', purify_html('')); + // unsupported HTML5 elements + $this->assertEquals('Your HTML parser does not support HTML5 video.', purify_html('')); + $this->assertEquals('Your HTML parser does not support HTML5 audio.', purify_html('')); + // preserve f6 and bootstrap additional data attributes from our own configuration $this->assertEquals('
text
', purify_html('
text
')); $this->assertEquals('
  • item1
', purify_html('
  • item1
')); @@ -51,6 +55,8 @@ empty line above'; $this->assertEquals('link with rel="nofollow"', purify_html('link with rel="nofollow"')); $this->assertEquals('a b', purify_html('a b')); $this->assertEquals('ä ä € €', purify_html('ä ä € €')); + $this->assertEquals('text', purify_html('text')); + $this->assertEquals('', purify_html('')); } public function testPurifyHTML_js() { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 4892db1e3..cd774eb7c 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,6 +6,240 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'HTMLPurifier' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.php', + 'HTMLPurifier_Arborize' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php', + 'HTMLPurifier_AttrCollections' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php', + 'HTMLPurifier_AttrDef' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php', + 'HTMLPurifier_AttrDef_CSS' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php', + 'HTMLPurifier_AttrDef_CSS_AlphaValue' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php', + 'HTMLPurifier_AttrDef_CSS_Background' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php', + 'HTMLPurifier_AttrDef_CSS_BackgroundPosition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php', + 'HTMLPurifier_AttrDef_CSS_Border' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php', + 'HTMLPurifier_AttrDef_CSS_Color' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php', + 'HTMLPurifier_AttrDef_CSS_Composite' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php', + 'HTMLPurifier_AttrDef_CSS_DenyElementDecorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php', + 'HTMLPurifier_AttrDef_CSS_Filter' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php', + 'HTMLPurifier_AttrDef_CSS_Font' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php', + 'HTMLPurifier_AttrDef_CSS_FontFamily' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php', + 'HTMLPurifier_AttrDef_CSS_Ident' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php', + 'HTMLPurifier_AttrDef_CSS_ImportantDecorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php', + 'HTMLPurifier_AttrDef_CSS_Length' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php', + 'HTMLPurifier_AttrDef_CSS_ListStyle' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php', + 'HTMLPurifier_AttrDef_CSS_Multiple' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php', + 'HTMLPurifier_AttrDef_CSS_Number' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php', + 'HTMLPurifier_AttrDef_CSS_Percentage' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php', + 'HTMLPurifier_AttrDef_CSS_TextDecoration' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php', + 'HTMLPurifier_AttrDef_CSS_URI' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php', + 'HTMLPurifier_AttrDef_Clone' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php', + 'HTMLPurifier_AttrDef_Enum' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php', + 'HTMLPurifier_AttrDef_HTML_Bool' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php', + 'HTMLPurifier_AttrDef_HTML_Class' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php', + 'HTMLPurifier_AttrDef_HTML_Color' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php', + 'HTMLPurifier_AttrDef_HTML_FrameTarget' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php', + 'HTMLPurifier_AttrDef_HTML_ID' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php', + 'HTMLPurifier_AttrDef_HTML_Length' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php', + 'HTMLPurifier_AttrDef_HTML_LinkTypes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php', + 'HTMLPurifier_AttrDef_HTML_MultiLength' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php', + 'HTMLPurifier_AttrDef_HTML_Nmtokens' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php', + 'HTMLPurifier_AttrDef_HTML_Pixels' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php', + 'HTMLPurifier_AttrDef_Integer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php', + 'HTMLPurifier_AttrDef_Lang' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php', + 'HTMLPurifier_AttrDef_Switch' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php', + 'HTMLPurifier_AttrDef_Text' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php', + 'HTMLPurifier_AttrDef_URI' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php', + 'HTMLPurifier_AttrDef_URI_Email' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php', + 'HTMLPurifier_AttrDef_URI_Email_SimpleCheck' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php', + 'HTMLPurifier_AttrDef_URI_Host' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php', + 'HTMLPurifier_AttrDef_URI_IPv4' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php', + 'HTMLPurifier_AttrDef_URI_IPv6' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php', + 'HTMLPurifier_AttrTransform' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php', + 'HTMLPurifier_AttrTransform_Background' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php', + 'HTMLPurifier_AttrTransform_BdoDir' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php', + 'HTMLPurifier_AttrTransform_BgColor' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php', + 'HTMLPurifier_AttrTransform_BoolToCSS' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php', + 'HTMLPurifier_AttrTransform_Border' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php', + 'HTMLPurifier_AttrTransform_EnumToCSS' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php', + 'HTMLPurifier_AttrTransform_ImgRequired' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php', + 'HTMLPurifier_AttrTransform_ImgSpace' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php', + 'HTMLPurifier_AttrTransform_Input' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php', + 'HTMLPurifier_AttrTransform_Lang' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php', + 'HTMLPurifier_AttrTransform_Length' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php', + 'HTMLPurifier_AttrTransform_Name' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php', + 'HTMLPurifier_AttrTransform_NameSync' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php', + 'HTMLPurifier_AttrTransform_Nofollow' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php', + 'HTMLPurifier_AttrTransform_SafeEmbed' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php', + 'HTMLPurifier_AttrTransform_SafeObject' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php', + 'HTMLPurifier_AttrTransform_SafeParam' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php', + 'HTMLPurifier_AttrTransform_ScriptRequired' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php', + 'HTMLPurifier_AttrTransform_TargetBlank' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php', + 'HTMLPurifier_AttrTransform_TargetNoopener' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php', + 'HTMLPurifier_AttrTransform_TargetNoreferrer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php', + 'HTMLPurifier_AttrTransform_Textarea' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php', + 'HTMLPurifier_AttrTypes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php', + 'HTMLPurifier_AttrValidator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php', + 'HTMLPurifier_Bootstrap' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php', + 'HTMLPurifier_CSSDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php', + 'HTMLPurifier_ChildDef' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php', + 'HTMLPurifier_ChildDef_Chameleon' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php', + 'HTMLPurifier_ChildDef_Custom' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php', + 'HTMLPurifier_ChildDef_Empty' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php', + 'HTMLPurifier_ChildDef_List' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php', + 'HTMLPurifier_ChildDef_Optional' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php', + 'HTMLPurifier_ChildDef_Required' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php', + 'HTMLPurifier_ChildDef_StrictBlockquote' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php', + 'HTMLPurifier_ChildDef_Table' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php', + 'HTMLPurifier_Config' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Config.php', + 'HTMLPurifier_ConfigSchema' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php', + 'HTMLPurifier_ConfigSchema_Builder_ConfigSchema' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php', + 'HTMLPurifier_ConfigSchema_Builder_Xml' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php', + 'HTMLPurifier_ConfigSchema_Exception' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php', + 'HTMLPurifier_ConfigSchema_Interchange' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php', + 'HTMLPurifier_ConfigSchema_InterchangeBuilder' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php', + 'HTMLPurifier_ConfigSchema_Interchange_Directive' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php', + 'HTMLPurifier_ConfigSchema_Interchange_Id' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php', + 'HTMLPurifier_ConfigSchema_Validator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php', + 'HTMLPurifier_ConfigSchema_ValidatorAtom' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php', + 'HTMLPurifier_ContentSets' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php', + 'HTMLPurifier_Context' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Context.php', + 'HTMLPurifier_Definition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php', + 'HTMLPurifier_DefinitionCache' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php', + 'HTMLPurifier_DefinitionCacheFactory' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php', + 'HTMLPurifier_DefinitionCache_Decorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php', + 'HTMLPurifier_DefinitionCache_Decorator_Cleanup' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php', + 'HTMLPurifier_DefinitionCache_Decorator_Memory' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php', + 'HTMLPurifier_DefinitionCache_Null' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php', + 'HTMLPurifier_DefinitionCache_Serializer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php', + 'HTMLPurifier_Doctype' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php', + 'HTMLPurifier_DoctypeRegistry' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php', + 'HTMLPurifier_ElementDef' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php', + 'HTMLPurifier_Encoder' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php', + 'HTMLPurifier_EntityLookup' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php', + 'HTMLPurifier_EntityParser' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php', + 'HTMLPurifier_ErrorCollector' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php', + 'HTMLPurifier_ErrorStruct' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php', + 'HTMLPurifier_Exception' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php', + 'HTMLPurifier_Filter' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php', + 'HTMLPurifier_Filter_ExtractStyleBlocks' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php', + 'HTMLPurifier_Filter_YouTube' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php', + 'HTMLPurifier_Generator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Generator.php', + 'HTMLPurifier_HTMLDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php', + 'HTMLPurifier_HTMLModule' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule.php', + 'HTMLPurifier_HTMLModuleManager' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php', + 'HTMLPurifier_HTMLModule_Bdo' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php', + 'HTMLPurifier_HTMLModule_CommonAttributes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php', + 'HTMLPurifier_HTMLModule_Edit' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php', + 'HTMLPurifier_HTMLModule_Forms' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php', + 'HTMLPurifier_HTMLModule_Hypertext' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php', + 'HTMLPurifier_HTMLModule_Iframe' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php', + 'HTMLPurifier_HTMLModule_Image' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php', + 'HTMLPurifier_HTMLModule_Legacy' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php', + 'HTMLPurifier_HTMLModule_List' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php', + 'HTMLPurifier_HTMLModule_Name' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php', + 'HTMLPurifier_HTMLModule_Nofollow' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php', + 'HTMLPurifier_HTMLModule_NonXMLCommonAttributes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php', + 'HTMLPurifier_HTMLModule_Object' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php', + 'HTMLPurifier_HTMLModule_Presentation' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php', + 'HTMLPurifier_HTMLModule_Proprietary' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php', + 'HTMLPurifier_HTMLModule_Ruby' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php', + 'HTMLPurifier_HTMLModule_SafeEmbed' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php', + 'HTMLPurifier_HTMLModule_SafeObject' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php', + 'HTMLPurifier_HTMLModule_SafeScripting' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php', + 'HTMLPurifier_HTMLModule_Scripting' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php', + 'HTMLPurifier_HTMLModule_StyleAttribute' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php', + 'HTMLPurifier_HTMLModule_Tables' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php', + 'HTMLPurifier_HTMLModule_Target' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php', + 'HTMLPurifier_HTMLModule_TargetBlank' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php', + 'HTMLPurifier_HTMLModule_TargetNoopener' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php', + 'HTMLPurifier_HTMLModule_TargetNoreferrer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php', + 'HTMLPurifier_HTMLModule_Text' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php', + 'HTMLPurifier_HTMLModule_Tidy' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php', + 'HTMLPurifier_HTMLModule_Tidy_Name' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php', + 'HTMLPurifier_HTMLModule_Tidy_Proprietary' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php', + 'HTMLPurifier_HTMLModule_Tidy_Strict' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php', + 'HTMLPurifier_HTMLModule_Tidy_Transitional' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php', + 'HTMLPurifier_HTMLModule_Tidy_XHTML' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php', + 'HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php', + 'HTMLPurifier_HTMLModule_XMLCommonAttributes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php', + 'HTMLPurifier_IDAccumulator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/IDAccumulator.php', + 'HTMLPurifier_Injector' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php', + 'HTMLPurifier_Injector_AutoParagraph' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php', + 'HTMLPurifier_Injector_DisplayLinkURI' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php', + 'HTMLPurifier_Injector_Linkify' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php', + 'HTMLPurifier_Injector_PurifierLinkify' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php', + 'HTMLPurifier_Injector_RemoveEmpty' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php', + 'HTMLPurifier_Injector_RemoveSpansWithoutAttributes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php', + 'HTMLPurifier_Injector_SafeObject' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php', + 'HTMLPurifier_Language' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Language.php', + 'HTMLPurifier_LanguageFactory' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php', + 'HTMLPurifier_Language_en_x_test' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Language/classes/en-x-test.php', + 'HTMLPurifier_Length' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Length.php', + 'HTMLPurifier_Lexer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php', + 'HTMLPurifier_Lexer_DOMLex' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php', + 'HTMLPurifier_Lexer_DirectLex' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php', + 'HTMLPurifier_Lexer_PH5P' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php', + 'HTMLPurifier_Node' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Node.php', + 'HTMLPurifier_Node_Comment' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Comment.php', + 'HTMLPurifier_Node_Element' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Element.php', + 'HTMLPurifier_Node_Text' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Text.php', + 'HTMLPurifier_PercentEncoder' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PercentEncoder.php', + 'HTMLPurifier_Printer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php', + 'HTMLPurifier_Printer_CSSDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php', + 'HTMLPurifier_Printer_ConfigForm' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_NullDecorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_bool' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_default' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_HTMLDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php', + 'HTMLPurifier_PropertyList' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php', + 'HTMLPurifier_PropertyListIterator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php', + 'HTMLPurifier_Queue' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Queue.php', + 'HTMLPurifier_Strategy' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy.php', + 'HTMLPurifier_Strategy_Composite' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php', + 'HTMLPurifier_Strategy_Core' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Core.php', + 'HTMLPurifier_Strategy_FixNesting' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php', + 'HTMLPurifier_Strategy_MakeWellFormed' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php', + 'HTMLPurifier_Strategy_RemoveForeignElements' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php', + 'HTMLPurifier_Strategy_ValidateAttributes' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php', + 'HTMLPurifier_StringHash' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php', + 'HTMLPurifier_StringHashParser' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/StringHashParser.php', + 'HTMLPurifier_TagTransform' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform.php', + 'HTMLPurifier_TagTransform_Font' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php', + 'HTMLPurifier_TagTransform_Simple' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php', + 'HTMLPurifier_Token' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token.php', + 'HTMLPurifier_TokenFactory' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/TokenFactory.php', + 'HTMLPurifier_Token_Comment' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Comment.php', + 'HTMLPurifier_Token_Empty' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Empty.php', + 'HTMLPurifier_Token_End' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/End.php', + 'HTMLPurifier_Token_Start' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Start.php', + 'HTMLPurifier_Token_Tag' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Tag.php', + 'HTMLPurifier_Token_Text' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Text.php', + 'HTMLPurifier_URI' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URI.php', + 'HTMLPurifier_URIDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIDefinition.php', + 'HTMLPurifier_URIFilter' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter.php', + 'HTMLPurifier_URIFilter_DisableExternal' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php', + 'HTMLPurifier_URIFilter_DisableExternalResources' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php', + 'HTMLPurifier_URIFilter_DisableResources' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php', + 'HTMLPurifier_URIFilter_HostBlacklist' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php', + 'HTMLPurifier_URIFilter_MakeAbsolute' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php', + 'HTMLPurifier_URIFilter_Munge' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php', + 'HTMLPurifier_URIFilter_SafeIframe' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php', + 'HTMLPurifier_URIParser' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIParser.php', + 'HTMLPurifier_URIScheme' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme.php', + 'HTMLPurifier_URISchemeRegistry' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php', + 'HTMLPurifier_URIScheme_data' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/data.php', + 'HTMLPurifier_URIScheme_file' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/file.php', + 'HTMLPurifier_URIScheme_ftp' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php', + 'HTMLPurifier_URIScheme_http' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/http.php', + 'HTMLPurifier_URIScheme_https' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/https.php', + 'HTMLPurifier_URIScheme_mailto' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php', + 'HTMLPurifier_URIScheme_news' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/news.php', + 'HTMLPurifier_URIScheme_nntp' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php', + 'HTMLPurifier_URIScheme_tel' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php', + 'HTMLPurifier_UnitConverter' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php', + 'HTMLPurifier_VarParser' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser.php', + 'HTMLPurifier_VarParserException' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParserException.php', + 'HTMLPurifier_VarParser_Flexible' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php', + 'HTMLPurifier_VarParser_Native' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php', + 'HTMLPurifier_Zipper' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php', 'Hubzilla\\Import\\Import' => $baseDir . '/include/Import/Importer.php', 'Markdownify\\Converter' => $vendorDir . '/pixel418/markdownify/src/Converter.php', 'Markdownify\\ConverterExtra' => $vendorDir . '/pixel418/markdownify/src/ConverterExtra.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index a78cbe6fb..bbe6fd553 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -13,4 +13,5 @@ return array( '3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php', '93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php', 'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php', + '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', ); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index d880bb6f5..dfcde5bf4 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -8,4 +8,5 @@ $baseDir = dirname($vendorDir); return array( 'OAuth2' => array($vendorDir . '/bshaffer/oauth2-server-php/src'), 'Michelf' => array($vendorDir . '/michelf/php-markdown'), + 'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 096ee4df6..026276b2f 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -14,6 +14,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d '3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php', '93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php', 'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php', + '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', ); public static $prefixLengthsPsr4 = array ( @@ -125,9 +126,250 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d 0 => __DIR__ . '/..' . '/michelf/php-markdown', ), ), + 'H' => + array ( + 'HTMLPurifier' => + array ( + 0 => __DIR__ . '/..' . '/ezyang/htmlpurifier/library', + ), + ), ); public static $classMap = array ( + 'HTMLPurifier' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.php', + 'HTMLPurifier_Arborize' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php', + 'HTMLPurifier_AttrCollections' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php', + 'HTMLPurifier_AttrDef' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php', + 'HTMLPurifier_AttrDef_CSS' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php', + 'HTMLPurifier_AttrDef_CSS_AlphaValue' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php', + 'HTMLPurifier_AttrDef_CSS_Background' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php', + 'HTMLPurifier_AttrDef_CSS_BackgroundPosition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php', + 'HTMLPurifier_AttrDef_CSS_Border' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php', + 'HTMLPurifier_AttrDef_CSS_Color' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php', + 'HTMLPurifier_AttrDef_CSS_Composite' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php', + 'HTMLPurifier_AttrDef_CSS_DenyElementDecorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php', + 'HTMLPurifier_AttrDef_CSS_Filter' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php', + 'HTMLPurifier_AttrDef_CSS_Font' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php', + 'HTMLPurifier_AttrDef_CSS_FontFamily' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php', + 'HTMLPurifier_AttrDef_CSS_Ident' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php', + 'HTMLPurifier_AttrDef_CSS_ImportantDecorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php', + 'HTMLPurifier_AttrDef_CSS_Length' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php', + 'HTMLPurifier_AttrDef_CSS_ListStyle' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php', + 'HTMLPurifier_AttrDef_CSS_Multiple' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php', + 'HTMLPurifier_AttrDef_CSS_Number' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php', + 'HTMLPurifier_AttrDef_CSS_Percentage' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php', + 'HTMLPurifier_AttrDef_CSS_TextDecoration' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php', + 'HTMLPurifier_AttrDef_CSS_URI' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php', + 'HTMLPurifier_AttrDef_Clone' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php', + 'HTMLPurifier_AttrDef_Enum' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php', + 'HTMLPurifier_AttrDef_HTML_Bool' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php', + 'HTMLPurifier_AttrDef_HTML_Class' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php', + 'HTMLPurifier_AttrDef_HTML_Color' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php', + 'HTMLPurifier_AttrDef_HTML_FrameTarget' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php', + 'HTMLPurifier_AttrDef_HTML_ID' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php', + 'HTMLPurifier_AttrDef_HTML_Length' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php', + 'HTMLPurifier_AttrDef_HTML_LinkTypes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php', + 'HTMLPurifier_AttrDef_HTML_MultiLength' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php', + 'HTMLPurifier_AttrDef_HTML_Nmtokens' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php', + 'HTMLPurifier_AttrDef_HTML_Pixels' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php', + 'HTMLPurifier_AttrDef_Integer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php', + 'HTMLPurifier_AttrDef_Lang' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php', + 'HTMLPurifier_AttrDef_Switch' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php', + 'HTMLPurifier_AttrDef_Text' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php', + 'HTMLPurifier_AttrDef_URI' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php', + 'HTMLPurifier_AttrDef_URI_Email' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php', + 'HTMLPurifier_AttrDef_URI_Email_SimpleCheck' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php', + 'HTMLPurifier_AttrDef_URI_Host' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php', + 'HTMLPurifier_AttrDef_URI_IPv4' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php', + 'HTMLPurifier_AttrDef_URI_IPv6' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php', + 'HTMLPurifier_AttrTransform' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php', + 'HTMLPurifier_AttrTransform_Background' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php', + 'HTMLPurifier_AttrTransform_BdoDir' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php', + 'HTMLPurifier_AttrTransform_BgColor' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php', + 'HTMLPurifier_AttrTransform_BoolToCSS' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php', + 'HTMLPurifier_AttrTransform_Border' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php', + 'HTMLPurifier_AttrTransform_EnumToCSS' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php', + 'HTMLPurifier_AttrTransform_ImgRequired' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php', + 'HTMLPurifier_AttrTransform_ImgSpace' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php', + 'HTMLPurifier_AttrTransform_Input' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php', + 'HTMLPurifier_AttrTransform_Lang' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php', + 'HTMLPurifier_AttrTransform_Length' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php', + 'HTMLPurifier_AttrTransform_Name' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php', + 'HTMLPurifier_AttrTransform_NameSync' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php', + 'HTMLPurifier_AttrTransform_Nofollow' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php', + 'HTMLPurifier_AttrTransform_SafeEmbed' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php', + 'HTMLPurifier_AttrTransform_SafeObject' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php', + 'HTMLPurifier_AttrTransform_SafeParam' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php', + 'HTMLPurifier_AttrTransform_ScriptRequired' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php', + 'HTMLPurifier_AttrTransform_TargetBlank' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php', + 'HTMLPurifier_AttrTransform_TargetNoopener' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php', + 'HTMLPurifier_AttrTransform_TargetNoreferrer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php', + 'HTMLPurifier_AttrTransform_Textarea' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php', + 'HTMLPurifier_AttrTypes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrTypes.php', + 'HTMLPurifier_AttrValidator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php', + 'HTMLPurifier_Bootstrap' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php', + 'HTMLPurifier_CSSDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php', + 'HTMLPurifier_ChildDef' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php', + 'HTMLPurifier_ChildDef_Chameleon' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php', + 'HTMLPurifier_ChildDef_Custom' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php', + 'HTMLPurifier_ChildDef_Empty' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php', + 'HTMLPurifier_ChildDef_List' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php', + 'HTMLPurifier_ChildDef_Optional' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php', + 'HTMLPurifier_ChildDef_Required' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php', + 'HTMLPurifier_ChildDef_StrictBlockquote' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php', + 'HTMLPurifier_ChildDef_Table' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php', + 'HTMLPurifier_Config' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Config.php', + 'HTMLPurifier_ConfigSchema' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php', + 'HTMLPurifier_ConfigSchema_Builder_ConfigSchema' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php', + 'HTMLPurifier_ConfigSchema_Builder_Xml' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php', + 'HTMLPurifier_ConfigSchema_Exception' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php', + 'HTMLPurifier_ConfigSchema_Interchange' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php', + 'HTMLPurifier_ConfigSchema_InterchangeBuilder' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php', + 'HTMLPurifier_ConfigSchema_Interchange_Directive' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php', + 'HTMLPurifier_ConfigSchema_Interchange_Id' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php', + 'HTMLPurifier_ConfigSchema_Validator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php', + 'HTMLPurifier_ConfigSchema_ValidatorAtom' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php', + 'HTMLPurifier_ContentSets' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php', + 'HTMLPurifier_Context' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Context.php', + 'HTMLPurifier_Definition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php', + 'HTMLPurifier_DefinitionCache' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php', + 'HTMLPurifier_DefinitionCacheFactory' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php', + 'HTMLPurifier_DefinitionCache_Decorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php', + 'HTMLPurifier_DefinitionCache_Decorator_Cleanup' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php', + 'HTMLPurifier_DefinitionCache_Decorator_Memory' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php', + 'HTMLPurifier_DefinitionCache_Null' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php', + 'HTMLPurifier_DefinitionCache_Serializer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php', + 'HTMLPurifier_Doctype' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php', + 'HTMLPurifier_DoctypeRegistry' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php', + 'HTMLPurifier_ElementDef' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php', + 'HTMLPurifier_Encoder' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php', + 'HTMLPurifier_EntityLookup' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php', + 'HTMLPurifier_EntityParser' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php', + 'HTMLPurifier_ErrorCollector' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php', + 'HTMLPurifier_ErrorStruct' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php', + 'HTMLPurifier_Exception' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php', + 'HTMLPurifier_Filter' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php', + 'HTMLPurifier_Filter_ExtractStyleBlocks' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php', + 'HTMLPurifier_Filter_YouTube' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Filter/YouTube.php', + 'HTMLPurifier_Generator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Generator.php', + 'HTMLPurifier_HTMLDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLDefinition.php', + 'HTMLPurifier_HTMLModule' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule.php', + 'HTMLPurifier_HTMLModuleManager' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModuleManager.php', + 'HTMLPurifier_HTMLModule_Bdo' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Bdo.php', + 'HTMLPurifier_HTMLModule_CommonAttributes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/CommonAttributes.php', + 'HTMLPurifier_HTMLModule_Edit' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php', + 'HTMLPurifier_HTMLModule_Forms' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Forms.php', + 'HTMLPurifier_HTMLModule_Hypertext' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Hypertext.php', + 'HTMLPurifier_HTMLModule_Iframe' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Iframe.php', + 'HTMLPurifier_HTMLModule_Image' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Image.php', + 'HTMLPurifier_HTMLModule_Legacy' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Legacy.php', + 'HTMLPurifier_HTMLModule_List' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/List.php', + 'HTMLPurifier_HTMLModule_Name' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Name.php', + 'HTMLPurifier_HTMLModule_Nofollow' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Nofollow.php', + 'HTMLPurifier_HTMLModule_NonXMLCommonAttributes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php', + 'HTMLPurifier_HTMLModule_Object' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Object.php', + 'HTMLPurifier_HTMLModule_Presentation' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Presentation.php', + 'HTMLPurifier_HTMLModule_Proprietary' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Proprietary.php', + 'HTMLPurifier_HTMLModule_Ruby' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Ruby.php', + 'HTMLPurifier_HTMLModule_SafeEmbed' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeEmbed.php', + 'HTMLPurifier_HTMLModule_SafeObject' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeObject.php', + 'HTMLPurifier_HTMLModule_SafeScripting' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/SafeScripting.php', + 'HTMLPurifier_HTMLModule_Scripting' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php', + 'HTMLPurifier_HTMLModule_StyleAttribute' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php', + 'HTMLPurifier_HTMLModule_Tables' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php', + 'HTMLPurifier_HTMLModule_Target' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php', + 'HTMLPurifier_HTMLModule_TargetBlank' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php', + 'HTMLPurifier_HTMLModule_TargetNoopener' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php', + 'HTMLPurifier_HTMLModule_TargetNoreferrer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php', + 'HTMLPurifier_HTMLModule_Text' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php', + 'HTMLPurifier_HTMLModule_Tidy' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php', + 'HTMLPurifier_HTMLModule_Tidy_Name' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php', + 'HTMLPurifier_HTMLModule_Tidy_Proprietary' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php', + 'HTMLPurifier_HTMLModule_Tidy_Strict' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php', + 'HTMLPurifier_HTMLModule_Tidy_Transitional' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Transitional.php', + 'HTMLPurifier_HTMLModule_Tidy_XHTML' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTML.php', + 'HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php', + 'HTMLPurifier_HTMLModule_XMLCommonAttributes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/XMLCommonAttributes.php', + 'HTMLPurifier_IDAccumulator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/IDAccumulator.php', + 'HTMLPurifier_Injector' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php', + 'HTMLPurifier_Injector_AutoParagraph' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/AutoParagraph.php', + 'HTMLPurifier_Injector_DisplayLinkURI' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/DisplayLinkURI.php', + 'HTMLPurifier_Injector_Linkify' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/Linkify.php', + 'HTMLPurifier_Injector_PurifierLinkify' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/PurifierLinkify.php', + 'HTMLPurifier_Injector_RemoveEmpty' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveEmpty.php', + 'HTMLPurifier_Injector_RemoveSpansWithoutAttributes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php', + 'HTMLPurifier_Injector_SafeObject' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Injector/SafeObject.php', + 'HTMLPurifier_Language' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Language.php', + 'HTMLPurifier_LanguageFactory' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php', + 'HTMLPurifier_Language_en_x_test' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Language/classes/en-x-test.php', + 'HTMLPurifier_Length' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Length.php', + 'HTMLPurifier_Lexer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php', + 'HTMLPurifier_Lexer_DOMLex' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php', + 'HTMLPurifier_Lexer_DirectLex' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DirectLex.php', + 'HTMLPurifier_Lexer_PH5P' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php', + 'HTMLPurifier_Node' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Node.php', + 'HTMLPurifier_Node_Comment' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Comment.php', + 'HTMLPurifier_Node_Element' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Element.php', + 'HTMLPurifier_Node_Text' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Node/Text.php', + 'HTMLPurifier_PercentEncoder' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PercentEncoder.php', + 'HTMLPurifier_Printer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php', + 'HTMLPurifier_Printer_CSSDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php', + 'HTMLPurifier_Printer_ConfigForm' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_NullDecorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_bool' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_ConfigForm_default' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php', + 'HTMLPurifier_Printer_HTMLDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php', + 'HTMLPurifier_PropertyList' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php', + 'HTMLPurifier_PropertyListIterator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php', + 'HTMLPurifier_Queue' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Queue.php', + 'HTMLPurifier_Strategy' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy.php', + 'HTMLPurifier_Strategy_Composite' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Composite.php', + 'HTMLPurifier_Strategy_Core' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/Core.php', + 'HTMLPurifier_Strategy_FixNesting' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php', + 'HTMLPurifier_Strategy_MakeWellFormed' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/MakeWellFormed.php', + 'HTMLPurifier_Strategy_RemoveForeignElements' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/RemoveForeignElements.php', + 'HTMLPurifier_Strategy_ValidateAttributes' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/ValidateAttributes.php', + 'HTMLPurifier_StringHash' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/StringHash.php', + 'HTMLPurifier_StringHashParser' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/StringHashParser.php', + 'HTMLPurifier_TagTransform' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform.php', + 'HTMLPurifier_TagTransform_Font' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Font.php', + 'HTMLPurifier_TagTransform_Simple' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/TagTransform/Simple.php', + 'HTMLPurifier_Token' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token.php', + 'HTMLPurifier_TokenFactory' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/TokenFactory.php', + 'HTMLPurifier_Token_Comment' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Comment.php', + 'HTMLPurifier_Token_Empty' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Empty.php', + 'HTMLPurifier_Token_End' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/End.php', + 'HTMLPurifier_Token_Start' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Start.php', + 'HTMLPurifier_Token_Tag' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Tag.php', + 'HTMLPurifier_Token_Text' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Token/Text.php', + 'HTMLPurifier_URI' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URI.php', + 'HTMLPurifier_URIDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIDefinition.php', + 'HTMLPurifier_URIFilter' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter.php', + 'HTMLPurifier_URIFilter_DisableExternal' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternal.php', + 'HTMLPurifier_URIFilter_DisableExternalResources' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableExternalResources.php', + 'HTMLPurifier_URIFilter_DisableResources' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/DisableResources.php', + 'HTMLPurifier_URIFilter_HostBlacklist' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/HostBlacklist.php', + 'HTMLPurifier_URIFilter_MakeAbsolute' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/MakeAbsolute.php', + 'HTMLPurifier_URIFilter_Munge' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/Munge.php', + 'HTMLPurifier_URIFilter_SafeIframe' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIFilter/SafeIframe.php', + 'HTMLPurifier_URIParser' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIParser.php', + 'HTMLPurifier_URIScheme' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme.php', + 'HTMLPurifier_URISchemeRegistry' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URISchemeRegistry.php', + 'HTMLPurifier_URIScheme_data' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/data.php', + 'HTMLPurifier_URIScheme_file' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/file.php', + 'HTMLPurifier_URIScheme_ftp' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/ftp.php', + 'HTMLPurifier_URIScheme_http' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/http.php', + 'HTMLPurifier_URIScheme_https' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/https.php', + 'HTMLPurifier_URIScheme_mailto' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/mailto.php', + 'HTMLPurifier_URIScheme_news' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/news.php', + 'HTMLPurifier_URIScheme_nntp' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/nntp.php', + 'HTMLPurifier_URIScheme_tel' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php', + 'HTMLPurifier_UnitConverter' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php', + 'HTMLPurifier_VarParser' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser.php', + 'HTMLPurifier_VarParserException' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParserException.php', + 'HTMLPurifier_VarParser_Flexible' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php', + 'HTMLPurifier_VarParser_Native' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php', + 'HTMLPurifier_Zipper' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php', 'Hubzilla\\Import\\Import' => __DIR__ . '/../..' . '/include/Import/Importer.php', 'Markdownify\\Converter' => __DIR__ . '/..' . '/pixel418/markdownify/src/Converter.php', 'Markdownify\\ConverterExtra' => __DIR__ . '/..' . '/pixel418/markdownify/src/ConverterExtra.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 7449633d7..3a70e56c8 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -634,5 +634,54 @@ "oauth", "oauth2" ] + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.9.2", + "version_normalized": "4.9.2.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", + "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "require-dev": { + "simpletest/simpletest": "^1.1" + }, + "time": "2017-03-13T06:30:53+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "HTMLPurifier": "library/" + }, + "files": [ + "library/HTMLPurifier.composer.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL" + ], + "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" + ] } ] diff --git a/library/htmlpurifier-4.6.0-lite/CREDITS b/vendor/ezyang/htmlpurifier/CREDITS similarity index 100% rename from library/htmlpurifier-4.6.0-lite/CREDITS rename to vendor/ezyang/htmlpurifier/CREDITS diff --git a/library/htmlpurifier-4.6.0-lite/INSTALL b/vendor/ezyang/htmlpurifier/INSTALL similarity index 96% rename from library/htmlpurifier-4.6.0-lite/INSTALL rename to vendor/ezyang/htmlpurifier/INSTALL index 677c04aa0..e6dd02afa 100644 --- a/library/htmlpurifier-4.6.0-lite/INSTALL +++ b/vendor/ezyang/htmlpurifier/INSTALL @@ -15,10 +15,8 @@ with these contents. --------------------------------------------------------------------------- 1. Compatibility -HTML Purifier is PHP 5 only, and is actively tested from PHP 5.0.5 and -up. It has no core dependencies with other libraries. PHP -4 support was deprecated on December 31, 2007 with HTML Purifier 3.0.0. -HTML Purifier is not compatible with zend.ze1_compatibility_mode. +HTML Purifier is PHP 5 and PHP 7, and is actively tested from PHP 5.0.5 +and up. It has no core dependencies with other libraries. These optional extensions can enhance the capabilities of HTML Purifier: @@ -29,7 +27,10 @@ These optional extensions can enhance the capabilities of HTML Purifier: These optional libraries can enhance the capabilities of HTML Purifier: * CSSTidy : Clean CSS stylesheets using %Core.ExtractStyleBlocks + Note: You should use the modernized fork of CSSTidy available + at https://github.com/Cerdic/CSSTidy * Net_IDNA2 (PEAR) : IRI support using %Core.EnableIDNA + Note: This is not necessary for PHP 5.3 or later --------------------------------------------------------------------------- 2. Reconnaissance @@ -305,11 +306,9 @@ appropriate permissions using: chmod -R 0755 HTMLPurifier/DefinitionCache/Serializer If the above command doesn't work, you may need to assign write permissions -to all. This may be necessary if your webserver runs as nobody, but is -not recommended since it means any other user can write files in the -directory. Use: +to group: - chmod -R 0777 HTMLPurifier/DefinitionCache/Serializer + chmod -R 0775 HTMLPurifier/DefinitionCache/Serializer You can also chmod files via your FTP client; this option is usually accessible by right clicking the corresponding directory and diff --git a/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 b/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 new file mode 100644 index 000000000..95164abba --- /dev/null +++ b/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 @@ -0,0 +1,60 @@ + +Installation + Comment installer HTML Purifier + +Attention : Ce document est encodé en UTF-8, si les lettres avec des accents +ne s'affichent pas, prenez un meilleur éditeur de texte. + +L'installation de HTML Purifier est très simple, parce qu'il n'a pas besoin +de configuration. Pour les utilisateurs impatients, le code se trouve dans le +pied de page, mais je recommande de lire le document. + +1. Compatibilité + +HTML Purifier fonctionne avec PHP 5. PHP 5.0.5 est la dernière version testée. +Il ne dépend pas d'autres librairies. + +Les extensions optionnelles sont iconv (généralement déjà installée) et tidy +(répendue aussi). Si vous utilisez UTF-8 et que vous ne voulez pas l'indentation, +vous pouvez utiliser HTML Purifier sans ces extensions. + + +2. Inclure la librairie + +Quand vous devez l'utilisez, incluez le : + + require_once('/path/to/library/HTMLPurifier.auto.php'); + +Ne pas l'inclure si ce n'est pas nécessaire, car HTML Purifier est lourd. + +HTML Purifier utilise "autoload". Si vous avez défini la fonction __autoload, +vous devez ajouter cette fonction : + + spl_autoload_register('__autoload') + +Plus d'informations dans le document "INSTALL". + +3. Installation rapide + +Si votre site Web est en UTF-8 et XHTML Transitional, utilisez : + +purify($html_a_purifier); +?> + +Sinon, utilisez : + +set('Core', 'Encoding', 'ISO-8859-1'); //Remplacez par votre + encodage + $config->set('Core', 'XHTML', true); //Remplacer par false si HTML 4.01 + $purificateur = new HTMLPurifier($config); + $html_propre = $purificateur->purify($html_a_purifier); +?> + + + vim: et sw=4 sts=4 diff --git a/library/htmlpurifier-4.6.0-lite/LICENSE b/vendor/ezyang/htmlpurifier/LICENSE similarity index 100% rename from library/htmlpurifier-4.6.0-lite/LICENSE rename to vendor/ezyang/htmlpurifier/LICENSE diff --git a/library/htmlpurifier-4.6.0-lite/NEWS b/vendor/ezyang/htmlpurifier/NEWS similarity index 92% rename from library/htmlpurifier-4.6.0-lite/NEWS rename to vendor/ezyang/htmlpurifier/NEWS index 90a054620..82ebedf3e 100644 --- a/library/htmlpurifier-4.6.0-lite/NEWS +++ b/vendor/ezyang/htmlpurifier/NEWS @@ -9,6 +9,96 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier . Internal change ========================== +4.9.2, released 2017-03-12 +- Fixes PHP 5.3 compatibility +- Fix breakage when decoding decimal entities. Thanks @rybakit (#129) + +4.9.1, released 2017-03-08 +! %URI.DefaultScheme can now be set to null, in which case + all relative paths are removed. +! New CSS properties: min-width, max-width, min-height, max-height (#94) +! Transparency (rgba) and hsl/hsla supported where color CSS is present. + Thanks @fxbt for contributing the patch. (#118) +- When idn_to_ascii is defined, we might accept malformed + hostnames. Apply validation to the result in such cases. +- Close directory when done in Serializer DefinitionCache (#100) +- Deleted some asserts to avoid linters from choking (#97) +- Rework Serializer cache behavior to avoid chmod'ing if possible (#32) +- Embedded semicolons in strings in CSS are now handled correctly! +- We accidentally dropped certain Unicode characters if there was + one or more invalid characters. This has been fixed, thanks + to mpyw +- Fix for "Don't truncate upon encountering when using DOMLex" + caused a regression with HTML 4.01 Strict parsing with libxml 2.9.1 + (and maybe later versions, but known OK with libxml 2.9.4). The + fix is to go about handling truncation a bit more cleverly so that + we can wrap with divs (sidestepping the bug) but slurping out the + rest of the text in case it ran off the end. (#78) +- Fix PREG_BACKTRACK_LIMIT_ERROR in HTMLPurifier_Filter_ExtractStyle. + Thanks @breathbath for contributing the report and fix (#120) +- Fix entity decoding algorithm to be more conservative about + decoding entities that are missing trailing semicolon. + To get old behavior, set %Core.LegacyEntityDecoder to true. + (#119) +- Workaround libxml bug when HTML tags are embedded inside + script tags. To disable workaround set %Core.AggressivelyRemoveScript + to false. (#83) +# By default, when a link has a target attribute associated + with it, we now also add rel="noopener" in order to + prevent the new window from being able to overwrite + the original frame. To disable this protection, + set %HTML.TargetNoopener to FALSE. + +4.9.0 was cut on Git but never properly released; when we did the +real release we decided to skip this version number. + +4.8.0, released 2016-07-16 +# By default, when a link has a target attribute associated + with it, we now also add rel="noreferrer" in order to + prevent the new window from being able to overwrite + the original frame. To disable this protection, + set %HTML.TargetNoreferrer to FALSE. +! Full PHP 7 compatibility, the test suite is ALL GO. +! %CSS.AllowDuplicates permits duplicate CSS properties. +! Support for 'tel' URIs. +! Partial support for 'border-radius' properties when %CSS.AllowProprietary is true. + The slash syntax, i.e., 'border-radius: 2em 1em 4em / 0.5em 3em' is not + yet supported. +! %Attr.ID.HTML5 turns on HTML5-style ID handling. +- alt truncation could result in malformed UTF-8 sequence. Don't + truncate. Thanks Brandon Farber for reporting. +- Linkify regex is smarter, based off of Gruber's regex. +- IDNA supported natively on PHP 5.3 and later. +- Non all-numeric top-level names (e.g., foo.1f, 1f) are now + allowed. +- Minor bounds error fix to squash a PHP 7 notice. +- Support non-/tmp temporary directories for data:// validation +- Give a better error message when a user attempts to allow + ul/ol without allowing li. +- On some versions of PHP, the Serializer DefinitionCache could + infinite loop when the directory exists but is not listable. (#49) +- Don't match for inside comments with + %Core.ConvertDocumentToFragment. (#67) +- SafeObject is now less case sensitive. (#57) +- AutoFormat.RemoveEmpty.Predicate now correctly renders in + web form. (#85) + +4.7.0, released 2015-08-04 +# opacity is now considered a "tricky" CSS property rather than a + proprietary one. +! %AutoFormat.RemoveEmpty.Predicate for specifying exactly when + an element should be considered "empty" (maybe preserve if it + has attributes), and modify iframe support so that the iframe + is removed if it is missing a src attribute. Thanks meeva for + reporting. +- Don't truncate upon encountering when using DOMLex. Thanks + Myrto Christina for finally convincing me to fix this. +- Update YouTube filter for new code. +- Fix parsing of rgb() values with spaces in them for 'border' + attribute. +- Don't remove foo="" attributes if foo is a boolean attribute. Thanks + valME for reporting. + 4.6.0, released 2013-11-30 # Secure URI munge hashing algorithm has changed to hash_hmac("sha256", $url, $secret). Please update any verification scripts you may have. diff --git a/vendor/ezyang/htmlpurifier/README.md b/vendor/ezyang/htmlpurifier/README.md new file mode 100644 index 000000000..b321f2b69 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/README.md @@ -0,0 +1,29 @@ +HTML Purifier [![Build Status](https://secure.travis-ci.org/ezyang/htmlpurifier.svg?branch=master)](http://travis-ci.org/ezyang/htmlpurifier) +============= + +HTML Purifier is an HTML filtering solution that uses a unique combination +of robust whitelists and agressive parsing to ensure that not only are +XSS attacks thwarted, but the resulting HTML is standards compliant. + +HTML Purifier is oriented towards richly formatted documents from +untrusted sources that require CSS and a full tag-set. This library can +be configured to accept a more restrictive set of tags, but it won't be +as efficient as more bare-bones parsers. It will, however, do the job +right, which may be more important. + +Places to go: + +* See INSTALL for a quick installation guide +* See docs/ for developer-oriented documentation, code examples and + an in-depth installation guide. +* See WYSIWYG for information on editors like TinyMCE and FCKeditor + +HTML Purifier can be found on the web at: [http://htmlpurifier.org/](http://htmlpurifier.org/) + +## Installation + +Package available on [Composer](https://packagist.org/packages/ezyang/htmlpurifier). + +If you're using Composer to manage dependencies, you can use + + $ composer require "ezyang/htmlpurifier": "dev-master" diff --git a/vendor/ezyang/htmlpurifier/TODO b/vendor/ezyang/htmlpurifier/TODO new file mode 100644 index 000000000..1afb33cbf --- /dev/null +++ b/vendor/ezyang/htmlpurifier/TODO @@ -0,0 +1,150 @@ + +TODO List + += KEY ==================== + # Flagship + - Regular + ? Maybe I'll Do It +========================== + +If no interest is expressed for a feature that may require a considerable +amount of effort to implement, it may get endlessly delayed. Do not be +afraid to cast your vote for the next feature to be implemented! + +Things to do as soon as possible: + + - http://htmlpurifier.org/phorum/read.php?3,5560,6307#msg-6307 + - Think about allowing explicit order of operations hooks for transforms + - Fix "<.<" bug (trailing < is removed if not EOD) + - Build in better internal state dumps and debugging tools for remote + debugging + - Allowed/Allowed* have strange interactions when both set + ? Transform lone embeds into object tags + - Deprecated config options that emit warnings when you set them (with' + a way of muting the warning if you really want to) + - Make HTML.Trusted work with Output.FlashCompat + - HTML.Trusted and HTML.SafeObject have funny interaction; general + problem is what to do when a module "supersedes" another + (see also tables and basic tables.) This is a little dicier + because HTML.SafeObject has some extra functionality that + trusted might find useful. See http://htmlpurifier.org/phorum/read.php?3,5762,6100 + +FUTURE VERSIONS +--------------- + +4.9 release [OMG CONFIG PONIES] + ! Fix Printer. It's from the old days when we didn't have decent XML classes + ! Factor demo.php into a set of Printer classes, and then create a stub + file for users here (inside the actual HTML Purifier library) + - Fix error handling with form construction + - Do encoding validation in Printers, or at least, where user data comes in + - Config: Add examples to everything (make built-in which also automatically + gives output) + - Add "register" field to config schemas to eliminate dependence on + naming conventions (try to remember why we ultimately decided on tihs) + +5.0 release [HTML 5] + # Swap out code to use html5lib tokenizer and tree-builder + ! Allow turning off of FixNesting and required attribute insertion + +5.1 release [It's All About Trust] (floating) + # Implement untrusted, dangerous elements/attributes + # Implement IDREF support (harder than it seems, since you cannot have + IDREFs to non-existent IDs) + - Implement (client and server side image maps are blocking + on IDREF support) + # Frameset XHTML 1.0 and HTML 4.01 doctypes + - Figure out how to simultaneously set %CSS.Trusted and %HTML.Trusted (?) + +5.2 release [Error'ed] + # Error logging for filtering/cleanup procedures + # Additional support for poorly written HTML + - Microsoft Word HTML cleaning (i.e. MsoNormal, but research essential!) + - Friendly strict handling of
(block ->
) + - XSS-attempt detection--certain errors are flagged XSS-like + - Append something to duplicate IDs so they're still usable (impl. note: the + dupe detector would also need to detect the suffix as well) + +6.0 release [Beyond HTML] + # Legit token based CSS parsing (will require revamping almost every + AttrDef class). Probably will use CSSTidy + # More control over allowed CSS properties using a modularization + # IRI support (this includes IDN) + - Standardize token armor for all areas of processing + +7.0 release [To XML and Beyond] + - Extended HTML capabilities based on namespacing and tag transforms (COMPLEX) + - Hooks for adding custom processors to custom namespaced tags and + attributes, offer default implementation + - Lots of documentation and samples + +Ongoing + - More refactoring to take advantage of PHP5's facilities + - Refactor unit tests into lots of test methods + - Plugins for major CMSes (COMPLEX) + - phpBB + - Also, a FAQ for extension writers with HTML Purifier + +AutoFormat + - Smileys + - Syntax highlighting (with GeSHi) with
 and possibly  tags; may be troublesome
+   because regular CSS has no way of uniquely identifying nodes, so we'd
+   have to generate IDs
+ - Explain how to use HTML Purifier in non-PHP languages / create
+   a simple command line stub (or complicated?)
+ - Fixes for Firefox's inability to handle COL alignment props (Bug 915)
+ - Automatically add non-breaking spaces to empty table cells when
+   empty-cells:show is applied to have compatibility with Internet Explorer
+ - Table of Contents generation (XHTML Compiler might be reusable). May also
+   be out-of-band information.
+ - Full set of color keywords. Also, a way to add onto them without
+   finalizing the configuration object.
+ - Write a var_export and memcached DefinitionCache - Denis
+ - Built-in support for target="_blank" on all external links
+ - Convert RTL/LTR override characters to  tags, or vice versa on demand.
+   Also, enable disabling of directionality
+ ? Externalize inline CSS to promote clean HTML, proposed by Sander Tekelenburg
+ ? Remove redundant tags, ex. Underlined. Implementation notes:
+    1. Analyzing which tags to remove duplicants
+    2. Ensure attributes are merged into the parent tag
+    3. Extend the tag exclusion system to specify whether or not the
+    contents should be dropped or not (currently, there's code that could do
+    something like this if it didn't drop the inner text too.)
+ ? Make AutoParagraph also support paragraph-izing double 
tags, and not + just double newlines. This is kind of tough to do in the current framework, + though, and might be reasonably approximated by search replacing double
s + with newlines before running it through HTML Purifier. + +Maintenance related (slightly boring) + # CHMOD install script for PEAR installs + ! Factor out command line parser into its own class, and unit test it + - Reduce size of internal data-structures (esp. HTMLDefinition) + - Allow merging configurations. Thus, + a -> b -> default + c -> d -> default + becomes + a -> b -> c -> d -> default + Maybe allow more fine-grained tuning of this behavior. Alternatively, + encourage people to use short plist depths before building them up. + - Time PHPT tests + +ChildDef related (very boring) + - Abstract ChildDef_BlockQuote to work with all elements that only + allow blocks in them, required or optional + - Implement lenient child validation + +Wontfix + - Non-lossy smart alternate character encoding transformations (unless + patch provided) + - Pretty-printing HTML: users can use Tidy on the output on entire page + - Native content compression, whitespace stripping: use gzip if this is + really important + + vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/VERSION b/vendor/ezyang/htmlpurifier/VERSION new file mode 100644 index 000000000..b550c72a1 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/VERSION @@ -0,0 +1 @@ +4.9.2 \ No newline at end of file diff --git a/vendor/ezyang/htmlpurifier/WHATSNEW b/vendor/ezyang/htmlpurifier/WHATSNEW new file mode 100644 index 000000000..b435e664b --- /dev/null +++ b/vendor/ezyang/htmlpurifier/WHATSNEW @@ -0,0 +1,12 @@ +HTML Purifier 4.9.x is a maintenance release, collecting a year +of accumulated bug fixes plus a few new features. New features +include support for min/max-width/height CSS, and rgba/hsl/hsla +in color specifications. Major bugfixes include improvements +in the Serializer cache to avoid chmod'ing directories, better +entity decoding (we won't accidentally encode entities that occur +in URLs) and rel="noopener" on links with target attributes, +to prevent them from overwriting the original frame. + +4.9.0 was skipped due to a packaging problem; 4.9.2 fixes two +major regressions in PHP 5.3 support and entity decoding; no +other functional changes were applied. diff --git a/vendor/ezyang/htmlpurifier/WYSIWYG b/vendor/ezyang/htmlpurifier/WYSIWYG new file mode 100644 index 000000000..c518aacdd --- /dev/null +++ b/vendor/ezyang/htmlpurifier/WYSIWYG @@ -0,0 +1,20 @@ + +WYSIWYG - What You See Is What You Get + HTML Purifier: A Pretty Good Fit for TinyMCE and FCKeditor + +Javascript-based WYSIWYG editors, simply stated, are quite amazing. But I've +always been wary about using them due to security issues: they handle the +client-side magic, but once you've been served a piping hot load of unfiltered +HTML, what should be done then? In some situations, you can serve it uncleaned, +since you only offer these facilities to trusted(?) authors. + +Unfortunantely, for blog comments and anonymous input, BBCode, Textile and +other markup languages still reign supreme. Put simply: filtering HTML is +hard work, and these WYSIWYG authors don't offer anything to alleviate that +trouble. Therein lies the solution: + +HTML Purifier is perfect for filtering pure-HTML input from WYSIWYG editors. + +Enough said. + + vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/composer.json b/vendor/ezyang/htmlpurifier/composer.json new file mode 100644 index 000000000..80fee3db3 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/composer.json @@ -0,0 +1,25 @@ +{ + "name": "ezyang/htmlpurifier", + "description": "Standards compliant HTML filter written in PHP", + "type": "library", + "keywords": ["html"], + "homepage": "http://htmlpurifier.org/", + "license": "LGPL", + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "require": { + "php": ">=5.2" + }, + "require-dev": { + "simpletest/simpletest": "^1.1" + }, + "autoload": { + "psr-0": { "HTMLPurifier": "library/" }, + "files": ["library/HTMLPurifier.composer.php"] + } +} diff --git a/vendor/ezyang/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php b/vendor/ezyang/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php new file mode 100644 index 000000000..1cfec5d76 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php @@ -0,0 +1,91 @@ +xsltProcessor = $proc; + } + + /** + * @note Allows a string $xsl filename to be passed + */ + public function importStylesheet($xsl) + { + if (is_string($xsl)) { + $xsl_file = $xsl; + $xsl = new DOMDocument(); + $xsl->load($xsl_file); + } + return $this->xsltProcessor->importStylesheet($xsl); + } + + /** + * Transforms an XML file into compatible XHTML based on the stylesheet + * @param $xml XML DOM tree, or string filename + * @return string HTML output + * @todo Rename to transformToXHTML, as transformToHTML is misleading + */ + public function transformToHTML($xml) + { + if (is_string($xml)) { + $dom = new DOMDocument(); + $dom->load($xml); + } else { + $dom = $xml; + } + $out = $this->xsltProcessor->transformToXML($dom); + + // fudges for HTML backwards compatibility + // assumes that document is XHTML + $out = str_replace('/>', ' />', $out); //
not
+ $out = str_replace(' xmlns=""', '', $out); // rm unnecessary xmlns + + if (class_exists('Tidy')) { + // cleanup output + $config = array( + 'indent' => true, + 'output-xhtml' => true, + 'wrap' => 80 + ); + $tidy = new Tidy; + $tidy->parseString($out, $config, 'utf8'); + $tidy->cleanRepair(); + $out = (string) $tidy; + } + + return $out; + } + + /** + * Bulk sets parameters for the XSL stylesheet + * @param array $options Associative array of options to set + */ + public function setParameters($options) + { + foreach ($options as $name => $value) { + $this->xsltProcessor->setParameter('', $name, $value); + } + } + + /** + * Forward any other calls to the XSLT processor + */ + public function __call($name, $arguments) + { + call_user_func_array(array($this->xsltProcessor, $name), $arguments); + } + +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/extras/FSTools.php b/vendor/ezyang/htmlpurifier/extras/FSTools.php new file mode 100644 index 000000000..ce0076316 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/extras/FSTools.php @@ -0,0 +1,164 @@ +mkdir($base); + } + $base .= DIRECTORY_SEPARATOR; + } + } + + /** + * Copy a file, or recursively copy a folder and its contents; modified + * so that copied files, if PHP, have includes removed + * @note Adapted from http://aidanlister.com/repos/v/function.copyr.php + */ + public function copyr($source, $dest) + { + // Simple copy for a file + if (is_file($source)) { + return $this->copy($source, $dest); + } + // Make destination directory + if (!is_dir($dest)) { + $this->mkdir($dest); + } + // Loop through the folder + $dir = $this->dir($source); + while ( false !== ($entry = $dir->read()) ) { + // Skip pointers + if ($entry == '.' || $entry == '..') { + continue; + } + if (!$this->copyable($entry)) { + continue; + } + // Deep copy directories + if ($dest !== "$source/$entry") { + $this->copyr("$source/$entry", "$dest/$entry"); + } + } + // Clean up + $dir->close(); + return true; + } + + /** + * Overloadable function that tests a filename for copyability. By + * default, everything should be copied; you can restrict things to + * ignore hidden files, unreadable files, etc. This function + * applies to copyr(). + */ + public function copyable($file) + { + return true; + } + + /** + * Delete a file, or a folder and its contents + * @note Adapted from http://aidanlister.com/repos/v/function.rmdirr.php + */ + public function rmdirr($dirname) + { + // Sanity check + if (!$this->file_exists($dirname)) { + return false; + } + + // Simple delete for a file + if ($this->is_file($dirname) || $this->is_link($dirname)) { + return $this->unlink($dirname); + } + + // Loop through the folder + $dir = $this->dir($dirname); + while (false !== $entry = $dir->read()) { + // Skip pointers + if ($entry == '.' || $entry == '..') { + continue; + } + // Recurse + $this->rmdirr($dirname . DIRECTORY_SEPARATOR . $entry); + } + + // Clean up + $dir->close(); + return $this->rmdir($dirname); + } + + /** + * Recursively globs a directory. + */ + public function globr($dir, $pattern, $flags = NULL) + { + $files = $this->glob("$dir/$pattern", $flags); + if ($files === false) $files = array(); + $sub_dirs = $this->glob("$dir/*", GLOB_ONLYDIR); + if ($sub_dirs === false) $sub_dirs = array(); + foreach ($sub_dirs as $sub_dir) { + $sub_files = $this->globr($sub_dir, $pattern, $flags); + $files = array_merge($files, $sub_files); + } + return $files; + } + + /** + * Allows for PHP functions to be called and be stubbed. + * @warning This function will not work for functions that need + * to pass references; manually define a stub function for those. + */ + public function __call($name, $args) + { + return call_user_func_array($name, $args); + } + +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/extras/FSTools/File.php b/vendor/ezyang/htmlpurifier/extras/FSTools/File.php new file mode 100644 index 000000000..6453a7a45 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/extras/FSTools/File.php @@ -0,0 +1,141 @@ +name = $name; + $this->fs = $fs ? $fs : FSTools::singleton(); + } + + /** Returns the filename of the file. */ + public function getName() {return $this->name;} + + /** Returns directory of the file without trailing slash */ + public function getDirectory() {return $this->fs->dirname($this->name);} + + /** + * Retrieves the contents of a file + * @todo Throw an exception if file doesn't exist + */ + public function get() + { + return $this->fs->file_get_contents($this->name); + } + + /** Writes contents to a file, creates new file if necessary */ + public function write($contents) + { + return $this->fs->file_put_contents($this->name, $contents); + } + + /** Deletes the file */ + public function delete() + { + return $this->fs->unlink($this->name); + } + + /** Returns true if file exists and is a file. */ + public function exists() + { + return $this->fs->is_file($this->name); + } + + /** Returns last file modification time */ + public function getMTime() + { + return $this->fs->filemtime($this->name); + } + + /** + * Chmod a file + * @note We ignore errors because of some weird owner trickery due + * to SVN duality + */ + public function chmod($octal_code) + { + return @$this->fs->chmod($this->name, $octal_code); + } + + /** Opens file's handle */ + public function open($mode) + { + if ($this->handle) $this->close(); + $this->handle = $this->fs->fopen($this->name, $mode); + return true; + } + + /** Closes file's handle */ + public function close() + { + if (!$this->handle) return false; + $status = $this->fs->fclose($this->handle); + $this->handle = false; + return $status; + } + + /** Retrieves a line from an open file, with optional max length $length */ + public function getLine($length = null) + { + if (!$this->handle) $this->open('r'); + if ($length === null) return $this->fs->fgets($this->handle); + else return $this->fs->fgets($this->handle, $length); + } + + /** Retrieves a character from an open file */ + public function getChar() + { + if (!$this->handle) $this->open('r'); + return $this->fs->fgetc($this->handle); + } + + /** Retrieves an $length bytes of data from an open data */ + public function read($length) + { + if (!$this->handle) $this->open('r'); + return $this->fs->fread($this->handle, $length); + } + + /** Writes to an open file */ + public function put($string) + { + if (!$this->handle) $this->open('a'); + return $this->fs->fwrite($this->handle, $string); + } + + /** Returns TRUE if the end of the file has been reached */ + public function eof() + { + if (!$this->handle) return true; + return $this->fs->feof($this->handle); + } + + public function __destruct() + { + if ($this->handle) $this->close(); + } + +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.auto.php b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.auto.php new file mode 100644 index 000000000..4016d8afd --- /dev/null +++ b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.auto.php @@ -0,0 +1,11 @@ +fopen(...). + This makes it a lot simpler to mock these filesystem calls for unit testing. + +- FSTools_File: This object represents a single file, and has almost any + method imaginable one would need. + +Check the files themselves for more information. + + vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier.auto.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php similarity index 100% rename from library/HTMLPurifier.auto.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php diff --git a/library/HTMLPurifier.autoload.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php similarity index 100% rename from library/HTMLPurifier.autoload.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php new file mode 100644 index 000000000..52acc56b0 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php @@ -0,0 +1,4 @@ +start = null; // [MUT] $r = array_pop($stack); - assert($r->name === $token->name); - assert(empty($token->attr)); + //assert($r->name === $token->name); + //assert(empty($token->attr)); $r->endCol = $token->col; $r->endLine = $token->line; $r->endArmor = $token->armor; @@ -32,7 +32,7 @@ class HTMLPurifier_Arborize $stack[] = $node; } } - assert(count($stack) == 1); + //assert(count($stack) == 1); return $stack[0]; } diff --git a/library/HTMLPurifier/AttrCollections.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php similarity index 97% rename from library/HTMLPurifier/AttrCollections.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php index 4f6c2e39a..c7b17cf14 100644 --- a/library/HTMLPurifier/AttrCollections.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php @@ -21,6 +21,11 @@ class HTMLPurifier_AttrCollections * @param HTMLPurifier_HTMLModule[] $modules Hash array of HTMLPurifier_HTMLModule members */ public function __construct($attr_types, $modules) + { + $this->doConstruct($attr_types, $modules); + } + + public function doConstruct($attr_types, $modules) { // load extensions from the modules foreach ($modules as $module) { diff --git a/library/HTMLPurifier/AttrDef.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php similarity index 94% rename from library/HTMLPurifier/AttrDef.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php index 5ac06522b..739646fa7 100644 --- a/library/HTMLPurifier/AttrDef.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php @@ -86,7 +86,13 @@ abstract class HTMLPurifier_AttrDef */ protected function mungeRgb($string) { - return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string); + $p = '\s*(\d+(\.\d+)?([%]?))\s*'; + + if (preg_match('/(rgba|hsla)\(/', $string)) { + return preg_replace('/(rgba|hsla)\('.$p.','.$p.','.$p.','.$p.'\)/', '\1(\2,\5,\8,\11)', $string); + } + + return preg_replace('/(rgb|hsl)\('.$p.','.$p.','.$p.'\)/', '\1(\2,\5,\8)', $string); } /** diff --git a/library/HTMLPurifier/AttrDef/CSS.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php similarity index 71% rename from library/HTMLPurifier/AttrDef/CSS.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php index 02c1641fb..ad2cb90ad 100644 --- a/library/HTMLPurifier/AttrDef/CSS.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php @@ -25,15 +25,42 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef $css = $this->parseCDATA($css); $definition = $config->getCSSDefinition(); + $allow_duplicates = $config->get("CSS.AllowDuplicates"); - // we're going to break the spec and explode by semicolons. - // This is because semicolon rarely appears in escaped form - // Doing this is generally flaky but fast - // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI - // for details - $declarations = explode(';', $css); + // According to the CSS2.1 spec, the places where a + // non-delimiting semicolon can appear are in strings + // escape sequences. So here is some dumb hack to + // handle quotes. + $len = strlen($css); + $accum = ""; + $declarations = array(); + $quoted = false; + for ($i = 0; $i < $len; $i++) { + $c = strcspn($css, ";'\"", $i); + $accum .= substr($css, $i, $c); + $i += $c; + if ($i == $len) break; + $d = $css[$i]; + if ($quoted) { + $accum .= $d; + if ($d == $quoted) { + $quoted = false; + } + } else { + if ($d == ";") { + $declarations[] = $accum; + $accum = ""; + } else { + $accum .= $d; + $quoted = $d; + } + } + } + if ($accum != "") $declarations[] = $accum; + $propvalues = array(); + $new_declarations = ''; /** * Name of the current CSS property being validated. @@ -83,7 +110,11 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef if ($result === false) { continue; } - $propvalues[$property] = $result; + if ($allow_duplicates) { + $new_declarations .= "$property:$result;"; + } else { + $propvalues[$property] = $result; + } } $context->destroy('CurrentCSSProperty'); @@ -92,7 +123,6 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef // slightly inefficient, but it's the only way of getting rid of // duplicates. Perhaps config to optimize it, but not now. - $new_declarations = ''; foreach ($propvalues as $prop => $value) { $new_declarations .= "$prop:$value;"; } diff --git a/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/AlphaValue.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Background.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Background.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php diff --git a/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Border.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Border.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php new file mode 100644 index 000000000..d7287a00c --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php @@ -0,0 +1,161 @@ +alpha = new HTMLPurifier_AttrDef_CSS_AlphaValue(); + } + + /** + * @param string $color + * @param HTMLPurifier_Config $config + * @param HTMLPurifier_Context $context + * @return bool|string + */ + public function validate($color, $config, $context) + { + static $colors = null; + if ($colors === null) { + $colors = $config->get('Core.ColorKeywords'); + } + + $color = trim($color); + if ($color === '') { + return false; + } + + $lower = strtolower($color); + if (isset($colors[$lower])) { + return $colors[$lower]; + } + + if (preg_match('#(rgb|rgba|hsl|hsla)\(#', $color, $matches) === 1) { + $length = strlen($color); + if (strpos($color, ')') !== $length - 1) { + return false; + } + + // get used function : rgb, rgba, hsl or hsla + $function = $matches[1]; + + $parameters_size = 3; + $alpha_channel = false; + if (substr($function, -1) === 'a') { + $parameters_size = 4; + $alpha_channel = true; + } + + /* + * Allowed types for values : + * parameter_position => [type => max_value] + */ + $allowed_types = array( + 1 => array('percentage' => 100, 'integer' => 255), + 2 => array('percentage' => 100, 'integer' => 255), + 3 => array('percentage' => 100, 'integer' => 255), + ); + $allow_different_types = false; + + if (strpos($function, 'hsl') !== false) { + $allowed_types = array( + 1 => array('integer' => 360), + 2 => array('percentage' => 100), + 3 => array('percentage' => 100), + ); + $allow_different_types = true; + } + + $values = trim(str_replace($function, '', $color), ' ()'); + + $parts = explode(',', $values); + if (count($parts) !== $parameters_size) { + return false; + } + + $type = false; + $new_parts = array(); + $i = 0; + + foreach ($parts as $part) { + $i++; + $part = trim($part); + + if ($part === '') { + return false; + } + + // different check for alpha channel + if ($alpha_channel === true && $i === count($parts)) { + $result = $this->alpha->validate($part, $config, $context); + + if ($result === false) { + return false; + } + + $new_parts[] = (string)$result; + continue; + } + + if (substr($part, -1) === '%') { + $current_type = 'percentage'; + } else { + $current_type = 'integer'; + } + + if (!array_key_exists($current_type, $allowed_types[$i])) { + return false; + } + + if (!$type) { + $type = $current_type; + } + + if ($allow_different_types === false && $type != $current_type) { + return false; + } + + $max_value = $allowed_types[$i][$current_type]; + + if ($current_type == 'integer') { + // Return value between range 0 -> $max_value + $new_parts[] = (int)max(min($part, $max_value), 0); + } elseif ($current_type == 'percentage') { + $new_parts[] = (float)max(min(rtrim($part, '%'), $max_value), 0) . '%'; + } + } + + $new_values = implode(',', $new_parts); + + $color = $function . '(' . $new_values . ')'; + } else { + // hexadecimal handling + if ($color[0] === '#') { + $hex = substr($color, 1); + } else { + $hex = $color; + $color = '#' . $color; + } + $length = strlen($hex); + if ($length !== 3 && $length !== 6) { + return false; + } + if (!ctype_xdigit($hex)) { + return false; + } + } + return $color; + } + +} + +// vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/AttrDef/CSS/Composite.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Composite.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php diff --git a/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Filter.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Filter.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Font.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Font.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php diff --git a/library/HTMLPurifier/AttrDef/CSS/FontFamily.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/FontFamily.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Ident.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Ident.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php diff --git a/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Length.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Length.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php diff --git a/library/HTMLPurifier/AttrDef/CSS/ListStyle.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/ListStyle.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Multiple.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php similarity index 96% rename from library/HTMLPurifier/AttrDef/CSS/Multiple.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php index 9f266cdd1..e707f871c 100644 --- a/library/HTMLPurifier/AttrDef/CSS/Multiple.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php @@ -44,7 +44,7 @@ class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef */ public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); + $string = $this->mungeRgb($this->parseCDATA($string)); if ($string === '') { return false; } diff --git a/library/HTMLPurifier/AttrDef/CSS/Number.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Number.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php diff --git a/library/HTMLPurifier/AttrDef/CSS/Percentage.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/Percentage.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php diff --git a/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php similarity index 100% rename from library/HTMLPurifier/AttrDef/CSS/TextDecoration.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php diff --git a/library/HTMLPurifier/AttrDef/CSS/URI.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php similarity index 97% rename from library/HTMLPurifier/AttrDef/CSS/URI.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php index f9434230e..6617acace 100644 --- a/library/HTMLPurifier/AttrDef/CSS/URI.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php @@ -33,6 +33,9 @@ class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI return false; } $uri_string = substr($uri_string, 4); + if (strlen($uri_string) == 0) { + return false; + } $new_length = strlen($uri_string) - 1; if ($uri_string[$new_length] != ')') { return false; diff --git a/library/HTMLPurifier/AttrDef/Clone.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Clone.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php diff --git a/library/HTMLPurifier/AttrDef/Enum.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Enum.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php diff --git a/library/HTMLPurifier/AttrDef/HTML/Bool.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php similarity index 92% rename from library/HTMLPurifier/AttrDef/HTML/Bool.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php index 036a240e1..dea15d2cd 100644 --- a/library/HTMLPurifier/AttrDef/HTML/Bool.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php @@ -32,9 +32,6 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef */ public function validate($string, $config, $context) { - if (empty($string)) { - return false; - } return $this->name; } diff --git a/library/HTMLPurifier/AttrDef/HTML/Class.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/Class.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php diff --git a/library/HTMLPurifier/AttrDef/HTML/Color.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/Color.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php diff --git a/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/FrameTarget.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php diff --git a/library/HTMLPurifier/AttrDef/HTML/ID.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php similarity index 80% rename from library/HTMLPurifier/AttrDef/HTML/ID.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php index 3d86efb44..4ba45610f 100644 --- a/library/HTMLPurifier/AttrDef/HTML/ID.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php @@ -72,18 +72,26 @@ class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef // we purposely avoid using regex, hopefully this is faster - if (ctype_alpha($id)) { - $result = true; - } else { - if (!ctype_alpha(@$id[0])) { + if ($config->get('Attr.ID.HTML5') === true) { + if (preg_match('/[\t\n\x0b\x0c ]/', $id)) { return false; } - // primitive style of regexps, I suppose - $trim = trim( - $id, - 'A..Za..z0..9:-._' - ); - $result = ($trim === ''); + } else { + if (ctype_alpha($id)) { + // OK + } else { + if (!ctype_alpha(@$id[0])) { + return false; + } + // primitive style of regexps, I suppose + $trim = trim( + $id, + 'A..Za..z0..9:-._' + ); + if ($trim !== '') { + return false; + } + } } $regexp = $config->get('Attr.IDBlacklistRegexp'); @@ -91,14 +99,14 @@ class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef return false; } - if (!$this->selector && $result) { + if (!$this->selector) { $id_accumulator->add($id); } // if no change was made to the ID, return the result // else, return the new id if stripping whitespace made it // valid, or return false. - return $result ? $id : false; + return $id; } } diff --git a/library/HTMLPurifier/AttrDef/HTML/Length.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/Length.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php diff --git a/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/LinkTypes.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php diff --git a/library/HTMLPurifier/AttrDef/HTML/MultiLength.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/MultiLength.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php diff --git a/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/Nmtokens.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php diff --git a/library/HTMLPurifier/AttrDef/HTML/Pixels.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php similarity index 100% rename from library/HTMLPurifier/AttrDef/HTML/Pixels.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php diff --git a/library/HTMLPurifier/AttrDef/Integer.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Integer.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php diff --git a/library/HTMLPurifier/AttrDef/Lang.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Lang.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php diff --git a/library/HTMLPurifier/AttrDef/Switch.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Switch.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php diff --git a/library/HTMLPurifier/AttrDef/Text.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php similarity index 100% rename from library/HTMLPurifier/AttrDef/Text.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php diff --git a/library/HTMLPurifier/AttrDef/URI.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php similarity index 100% rename from library/HTMLPurifier/AttrDef/URI.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php diff --git a/library/HTMLPurifier/AttrDef/URI/Email.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php similarity index 100% rename from library/HTMLPurifier/AttrDef/URI/Email.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php diff --git a/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php similarity index 100% rename from library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php diff --git a/library/HTMLPurifier/AttrDef/URI/Host.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php similarity index 84% rename from library/HTMLPurifier/AttrDef/URI/Host.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php index e7df800b1..3b4d18674 100644 --- a/library/HTMLPurifier/AttrDef/URI/Host.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php @@ -76,24 +76,33 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef // fairly well supported. $underscore = $config->get('Core.AllowHostnameUnderscore') ? '_' : ''; + // Based off of RFC 1738, but amended so that + // as per RFC 3696, the top label need only not be all numeric. // The productions describing this are: $a = '[a-z]'; // alpha $an = '[a-z0-9]'; // alphanum $and = "[a-z0-9-$underscore]"; // alphanum | "-" // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum - $domainlabel = "$an($and*$an)?"; - // toplabel = alpha | alpha *( alphanum | "-" ) alphanum - $toplabel = "$a($and*$an)?"; + $domainlabel = "$an(?:$and*$an)?"; + // AMENDED as per RFC 3696 + // toplabel = alphanum | alphanum *( alphanum | "-" ) alphanum + // side condition: not all numeric + $toplabel = "$an(?:$and*$an)?"; // hostname = *( domainlabel "." ) toplabel [ "." ] - if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { - return $string; + if (preg_match("/^(?:$domainlabel\.)*($toplabel)\.?$/i", $string, $matches)) { + if (!ctype_digit($matches[1])) { + return $string; + } } + // PHP 5.3 and later support this functionality natively + if (function_exists('idn_to_ascii')) { + $string = idn_to_ascii($string); + // If we have Net_IDNA2 support, we can support IRIs by // punycoding them. (This is the most portable thing to do, // since otherwise we have to assume browsers support - - if ($config->get('Core.EnableIDNA')) { + } elseif ($config->get('Core.EnableIDNA')) { $idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true)); // we need to encode each period separately $parts = explode('.', $string); @@ -114,13 +123,14 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef } } $string = implode('.', $new_parts); - if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { - return $string; - } } catch (Exception $e) { // XXX error reporting } } + // Try again + if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { + return $string; + } return false; } } diff --git a/library/HTMLPurifier/AttrDef/URI/IPv4.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php similarity index 100% rename from library/HTMLPurifier/AttrDef/URI/IPv4.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php diff --git a/library/HTMLPurifier/AttrDef/URI/IPv6.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php similarity index 100% rename from library/HTMLPurifier/AttrDef/URI/IPv6.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php diff --git a/library/HTMLPurifier/AttrTransform.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php similarity index 100% rename from library/HTMLPurifier/AttrTransform.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php diff --git a/library/HTMLPurifier/AttrTransform/Background.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Background.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php diff --git a/library/HTMLPurifier/AttrTransform/BdoDir.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/BdoDir.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php diff --git a/library/HTMLPurifier/AttrTransform/BgColor.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/BgColor.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php diff --git a/library/HTMLPurifier/AttrTransform/BoolToCSS.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/BoolToCSS.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php diff --git a/library/HTMLPurifier/AttrTransform/Border.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Border.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php diff --git a/library/HTMLPurifier/AttrTransform/EnumToCSS.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/EnumToCSS.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php diff --git a/library/HTMLPurifier/AttrTransform/ImgRequired.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php similarity index 90% rename from library/HTMLPurifier/AttrTransform/ImgRequired.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php index 7df6cb3e1..235ebb34b 100644 --- a/library/HTMLPurifier/AttrTransform/ImgRequired.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php @@ -32,8 +32,7 @@ class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform if ($src) { $alt = $config->get('Attr.DefaultImageAlt'); if ($alt === null) { - // truncate if the alt is too long - $attr['alt'] = substr(basename($attr['src']), 0, 40); + $attr['alt'] = basename($attr['src']); } else { $attr['alt'] = $alt; } diff --git a/library/HTMLPurifier/AttrTransform/ImgSpace.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/ImgSpace.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php diff --git a/library/HTMLPurifier/AttrTransform/Input.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Input.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php diff --git a/library/HTMLPurifier/AttrTransform/Lang.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Lang.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php diff --git a/library/HTMLPurifier/AttrTransform/Length.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Length.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php diff --git a/library/HTMLPurifier/AttrTransform/Name.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Name.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php diff --git a/library/HTMLPurifier/AttrTransform/NameSync.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/NameSync.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php diff --git a/library/HTMLPurifier/AttrTransform/Nofollow.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/Nofollow.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php diff --git a/library/HTMLPurifier/AttrTransform/SafeEmbed.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/SafeEmbed.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php diff --git a/library/HTMLPurifier/AttrTransform/SafeObject.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/SafeObject.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php diff --git a/library/HTMLPurifier/AttrTransform/SafeParam.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/SafeParam.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php diff --git a/library/HTMLPurifier/AttrTransform/ScriptRequired.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/ScriptRequired.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php diff --git a/library/HTMLPurifier/AttrTransform/TargetBlank.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php similarity index 100% rename from library/HTMLPurifier/AttrTransform/TargetBlank.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php new file mode 100644 index 000000000..1db3c6c09 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php @@ -0,0 +1,37 @@ +get('CSS.MaxImgLength'); + $this->info['min-width'] = + $this->info['max-width'] = + $this->info['min-height'] = + $this->info['max-height'] = $this->info['width'] = $this->info['height'] = $max === null ? @@ -350,8 +354,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition $this->info['scrollbar-highlight-color'] = new HTMLPurifier_AttrDef_CSS_Color(); $this->info['scrollbar-shadow-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - // technically not proprietary, but CSS3, and no one supports it - $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); + // vendor specific prefixes of opacity $this->info['-moz-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); $this->info['-khtml-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); @@ -371,6 +374,19 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition ); $this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid')); + $border_radius = new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Percentage(true), // disallow negative + new HTMLPurifier_AttrDef_CSS_Length('0') // disallow negative + )); + + $this->info['border-top-left-radius'] = + $this->info['border-top-right-radius'] = + $this->info['border-bottom-right-radius'] = + $this->info['border-bottom-left-radius'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_radius, 2); + // TODO: support SLASH syntax + $this->info['border-radius'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_radius, 4); + } /** @@ -404,6 +420,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition array('visible', 'hidden', 'collapse') ); $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll')); + $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); } /** diff --git a/library/HTMLPurifier/ChildDef.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php similarity index 100% rename from library/HTMLPurifier/ChildDef.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php diff --git a/library/HTMLPurifier/ChildDef/Chameleon.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php similarity index 100% rename from library/HTMLPurifier/ChildDef/Chameleon.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php diff --git a/library/HTMLPurifier/ChildDef/Custom.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php similarity index 100% rename from library/HTMLPurifier/ChildDef/Custom.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php diff --git a/library/HTMLPurifier/ChildDef/Empty.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php similarity index 100% rename from library/HTMLPurifier/ChildDef/Empty.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php diff --git a/library/HTMLPurifier/ChildDef/List.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php similarity index 92% rename from library/HTMLPurifier/ChildDef/List.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php index 891b9f6f5..5a53a4b49 100644 --- a/library/HTMLPurifier/ChildDef/List.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php @@ -38,6 +38,12 @@ class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef return false; } + // if li is not allowed, delete parent node + if (!isset($config->getHTMLDefinition()->info['li'])) { + trigger_error("Cannot allow ul/ol without allowing li", E_USER_WARNING); + return false; + } + // the new set of children $result = array(); diff --git a/library/HTMLPurifier/ChildDef/Optional.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php similarity index 100% rename from library/HTMLPurifier/ChildDef/Optional.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php diff --git a/library/HTMLPurifier/ChildDef/Required.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php similarity index 100% rename from library/HTMLPurifier/ChildDef/Required.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php diff --git a/library/HTMLPurifier/ChildDef/StrictBlockquote.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php similarity index 100% rename from library/HTMLPurifier/ChildDef/StrictBlockquote.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php diff --git a/library/HTMLPurifier/ChildDef/Table.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php similarity index 99% rename from library/HTMLPurifier/ChildDef/Table.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php index 3e4a0f218..cb6b3e6cd 100644 --- a/library/HTMLPurifier/ChildDef/Table.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php @@ -203,7 +203,7 @@ class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef $current_tr_tbody->children[] = $node; break; case '#PCDATA': - assert($node->is_whitespace); + //assert($node->is_whitespace); if ($current_tr_tbody === null) { $ret[] = $node; } else { diff --git a/library/HTMLPurifier/Config.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php similarity index 99% rename from library/HTMLPurifier/Config.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php index 7ada59b94..69e6d2765 100644 --- a/library/HTMLPurifier/Config.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php @@ -21,7 +21,7 @@ class HTMLPurifier_Config * HTML Purifier's version * @type string */ - public $version = '4.6.0'; + public $version = '4.9.2'; /** * Whether or not to automatically finalize @@ -646,16 +646,25 @@ class HTMLPurifier_Config return $this->getDefinition($name, true, true); } + /** + * @return HTMLPurifier_HTMLDefinition + */ public function maybeGetRawHTMLDefinition() { return $this->getDefinition('HTML', true, true); } - + + /** + * @return HTMLPurifier_CSSDefinition + */ public function maybeGetRawCSSDefinition() { return $this->getDefinition('CSS', true, true); } - + + /** + * @return HTMLPurifier_URIDefinition + */ public function maybeGetRawURIDefinition() { return $this->getDefinition('URI', true, true); diff --git a/library/HTMLPurifier/ConfigSchema.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php diff --git a/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php diff --git a/library/HTMLPurifier/ConfigSchema/Builder/Xml.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Builder/Xml.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php diff --git a/library/HTMLPurifier/ConfigSchema/Exception.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Exception.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php diff --git a/library/HTMLPurifier/ConfigSchema/Interchange.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Interchange.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php diff --git a/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Interchange/Directive.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php diff --git a/library/HTMLPurifier/ConfigSchema/Interchange/Id.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Interchange/Id.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php diff --git a/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php diff --git a/library/HTMLPurifier/ConfigSchema/Validator.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/Validator.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php diff --git a/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php similarity index 100% rename from library/HTMLPurifier/ConfigSchema/ValidatorAtom.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser new file mode 100644 index 0000000000000000000000000000000000000000..371e948f1c76d99bacea65b4735454656858edbf GIT binary patch literal 15923 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 J>r;OF_FtxB?Uw)m literal 0 HcmV?d00001 diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt new file mode 100644 index 000000000..735d4b7a1 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt @@ -0,0 +1,10 @@ +Attr.ID.HTML5 +TYPE: bool/null +DEFAULT: null +VERSION: 4.8.0 +--DESCRIPTION-- +In HTML5, restrictions on the format of the id attribute have been significantly +relaxed, such that any string is valid so long as it contains no spaces and +is at least one character. In lieu of a general HTML5 compatibility flag, +set this configuration directive to true to use the relaxed rules. +--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt new file mode 100644 index 000000000..6367fe23c --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt @@ -0,0 +1,14 @@ +AutoFormat.RemoveEmpty.Predicate +TYPE: hash +VERSION: 4.7.0 +DEFAULT: array('colgroup' => array(), 'th' => array(), 'td' => array(), 'iframe' => array('src')) +--DESCRIPTION-- +

+ Given that an element has no contents, it will be removed by default, unless + this predicate dictates otherwise. The predicate can either be an associative + map from tag name to list of attributes that must be present for the element + to be considered preserved: thus, the default always preserves colgroup, + th and td, and also iframe if it + has a src. +

+--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt new file mode 100644 index 000000000..4d054b1f0 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt @@ -0,0 +1,11 @@ +CSS.AllowDuplicates +TYPE: bool +DEFAULT: false +VERSION: 4.8.0 +--DESCRIPTION-- +

+ By default, HTML Purifier removes duplicate CSS properties, + like color:red; color:blue. If this is set to + true, duplicate properties are allowed. +

+--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt similarity index 59% rename from library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt index b2b83d9ab..2e0cc8104 100644 --- a/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt @@ -1,5 +1,5 @@ Cache.SerializerPermissions -TYPE: int +TYPE: int/null VERSION: 4.3.0 DEFAULT: 0755 --DESCRIPTION-- @@ -8,4 +8,9 @@ DEFAULT: 0755 Directory permissions of the files and directories created inside the DefinitionCache/Serializer or other custom serializer path.

+

+ In HTML Purifier 4.8.0, this also supports NULL, + which means that no chmod'ing or directory creation shall + occur. +

--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt new file mode 100644 index 000000000..b2b6ab149 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt @@ -0,0 +1,16 @@ +Core.AggressivelyRemoveScript +TYPE: bool +VERSION: 4.9.0 +DEFAULT: true +--DESCRIPTION-- +

+ This directive enables aggressive pre-filter removal of + script tags. This is not necessary for security, + but it can help work around a bug in libxml where embedded + HTML elements inside script sections cause the parser to + choke. To revert to pre-4.9.0 behavior, set this to false. + This directive has no effect if %Core.Trusted is true, + %Core.RemoveScriptContents is false, or %Core.HiddenElements + does not contain script. +

+--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt new file mode 100644 index 000000000..392b43649 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt @@ -0,0 +1,36 @@ +Core.LegacyEntityDecoder +TYPE: bool +VERSION: 4.9.0 +DEFAULT: false +--DESCRIPTION-- +

+ Prior to HTML Purifier 4.9.0, entities were decoded by performing + a global search replace for all entities whose decoded versions + did not have special meanings under HTML, and replaced them with + their decoded versions. We would match all entities, even if they did + not have a trailing semicolon, but only if there weren't any trailing + alphanumeric characters. +

+ + + + + + +
OriginalTextAttribute
&yen;¥¥
&yen¥¥
&yena&yena&yena
&yen=¥=¥=
+

+ In HTML Purifier 4.9.0, we changed the behavior of entity parsing + to match entities that had missing trailing semicolons in less + cases, to more closely match HTML5 parsing behavior: +

+ + + + + + +
OriginalTextAttribute
&yen;¥¥
&yen¥¥
&yena¥a&yena
&yen=¥=&yen=
+

+ This flag reverts back to pre-HTML Purifier 4.9.0 behavior. +

+--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt similarity index 72% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt index a64e3d7c3..6ed70b599 100644 --- a/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt @@ -4,6 +4,6 @@ VERSION: 2.0.1 DEFAULT: NULL --DESCRIPTION-- -A custom doctype for power-users who defined there own document +A custom doctype for power-users who defined their own document type. This directive only applies when %HTML.Doctype is blank. --# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt new file mode 100644 index 000000000..dd514c0de --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt @@ -0,0 +1,10 @@ +--# vim: et sw=4 sts=4 +HTML.TargetNoopener +TYPE: bool +VERSION: 4.8.0 +DEFAULT: TRUE +--DESCRIPTION-- +If enabled, noopener rel attributes are added to links which have +a target attribute associated with them. This prevents malicious +destinations from overwriting the original window. +--# vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt new file mode 100644 index 000000000..cb5a0b0e5 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt @@ -0,0 +1,9 @@ +HTML.TargetNoreferrer +TYPE: bool +VERSION: 4.8.0 +DEFAULT: TRUE +--DESCRIPTION-- +If enabled, noreferrer rel attributes are added to links which have +a target attribute associated with them. This prevents malicious +destinations from overwriting the original window. +--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt similarity index 96% rename from library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt index 666635a5f..eb97307e2 100644 --- a/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt @@ -8,6 +8,7 @@ array ( 'ftp' => true, 'nntp' => true, 'news' => true, + 'tel' => true, ) --DESCRIPTION-- Whitelist that defines the schemes that a URI is allowed to have. This diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt similarity index 57% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt index 728e378cb..834bc08c0 100644 --- a/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt @@ -1,5 +1,5 @@ URI.DefaultScheme -TYPE: string +TYPE: string/null DEFAULT: 'http' --DESCRIPTION-- @@ -7,4 +7,9 @@ DEFAULT: 'http' Defines through what scheme the output will be served, in order to select the proper object validator when no scheme information is present.

+ +

+ Starting with HTML Purifier 4.9.0, the default scheme can be null, in + which case we reject all URIs which do not have explicit schemes. +

--# vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt diff --git a/library/HTMLPurifier/ConfigSchema/schema/info.ini b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini similarity index 100% rename from library/HTMLPurifier/ConfigSchema/schema/info.ini rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini diff --git a/library/HTMLPurifier/ContentSets.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php similarity index 100% rename from library/HTMLPurifier/ContentSets.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php diff --git a/library/HTMLPurifier/Context.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Context.php similarity index 100% rename from library/HTMLPurifier/Context.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Context.php diff --git a/library/HTMLPurifier/Definition.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php similarity index 100% rename from library/HTMLPurifier/Definition.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php diff --git a/library/HTMLPurifier/DefinitionCache.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php similarity index 98% rename from library/HTMLPurifier/DefinitionCache.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php index 67bb5b1e6..9aa8ff354 100644 --- a/library/HTMLPurifier/DefinitionCache.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php @@ -118,7 +118,7 @@ abstract class HTMLPurifier_DefinitionCache /** * Clears all expired (older version or revision) objects from cache - * @note Be carefuly implementing this method as flush. Flush must + * @note Be careful implementing this method as flush. Flush must * not interfere with other Definition types, and cleanup() * should not be repeatedly called by userland code. * @param HTMLPurifier_Config $config diff --git a/library/HTMLPurifier/DefinitionCache/Decorator.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Decorator.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php diff --git a/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php diff --git a/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Decorator/Memory.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php diff --git a/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in diff --git a/library/HTMLPurifier/DefinitionCache/Null.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Null.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php diff --git a/library/HTMLPurifier/DefinitionCache/Serializer.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php similarity index 88% rename from library/HTMLPurifier/DefinitionCache/Serializer.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php index ecacb88fe..952e48d47 100644 --- a/library/HTMLPurifier/DefinitionCache/Serializer.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php @@ -97,6 +97,12 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } $dir = $this->generateDirectoryPath($config); $dh = opendir($dir); + // Apparently, on some versions of PHP, readdir will return + // an empty string if you pass an invalid argument to readdir. + // So you need this test. See #49. + if (false === $dh) { + return false; + } while (false !== ($filename = readdir($dh))) { if (empty($filename)) { continue; @@ -106,6 +112,8 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } unlink($dir . '/' . $filename); } + closedir($dh); + return true; } /** @@ -119,6 +127,10 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } $dir = $this->generateDirectoryPath($config); $dh = opendir($dir); + // See #49 (and above). + if (false === $dh) { + return false; + } while (false !== ($filename = readdir($dh))) { if (empty($filename)) { continue; @@ -131,6 +143,8 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac unlink($dir . '/' . $filename); } } + closedir($dh); + return true; } /** @@ -186,11 +200,9 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac if ($result !== false) { // set permissions of the new file (no execute) $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0644; // invalid config or simpletest + if ($chmod !== null) { + chmod($file, $chmod & 0666); } - $chmod = $chmod & 0666; - chmod($file, $chmod); } return $result; } @@ -204,8 +216,10 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac { $directory = $this->generateDirectoryPath($config); $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0755; // invalid config or simpletest + if ($chmod === null) { + // TODO: This races + if (is_dir($directory)) return true; + return mkdir($directory); } if (!is_dir($directory)) { $base = $this->generateBaseDirectoryPath($config); @@ -219,9 +233,16 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } elseif (!$this->_testPermissions($base, $chmod)) { return false; } - $old = umask(0000); - mkdir($directory, $chmod); - umask($old); + if (!mkdir($directory, $chmod)) { + trigger_error( + 'Could not create directory ' . $directory . '', + E_USER_WARNING + ); + return false; + } + if (!$this->_testPermissions($directory, $chmod)) { + return false; + } } elseif (!$this->_testPermissions($directory, $chmod)) { return false; } @@ -250,7 +271,7 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac ); return false; } - if (function_exists('posix_getuid')) { + if (function_exists('posix_getuid') && $chmod !== null) { // POSIX system, we can give more specific advice if (fileowner($dir) === posix_getuid()) { // we can chmod it ourselves diff --git a/library/HTMLPurifier/DefinitionCache/Serializer/README b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README old mode 100644 new mode 100755 similarity index 100% rename from library/HTMLPurifier/DefinitionCache/Serializer/README rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README diff --git a/library/HTMLPurifier/DefinitionCacheFactory.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php similarity index 100% rename from library/HTMLPurifier/DefinitionCacheFactory.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php diff --git a/library/HTMLPurifier/Doctype.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php similarity index 100% rename from library/HTMLPurifier/Doctype.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php diff --git a/library/HTMLPurifier/DoctypeRegistry.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php similarity index 100% rename from library/HTMLPurifier/DoctypeRegistry.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php diff --git a/library/HTMLPurifier/ElementDef.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php similarity index 100% rename from library/HTMLPurifier/ElementDef.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php diff --git a/library/HTMLPurifier/Encoder.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php similarity index 97% rename from library/HTMLPurifier/Encoder.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php index fef9b5890..b94f17542 100644 --- a/library/HTMLPurifier/Encoder.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php @@ -101,6 +101,14 @@ class HTMLPurifier_Encoder * It will parse according to UTF-8 and return a valid UTF8 string, with * non-SGML codepoints excluded. * + * Specifically, it will permit: + * \x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF} + * Source: https://www.w3.org/TR/REC-xml/#NT-Char + * Arguably this function should be modernized to the HTML5 set + * of allowed characters: + * https://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream + * which simultaneously expand and restrict the set of allowed characters. + * * @param string $str The string to clean * @param bool $force_php * @return string @@ -122,15 +130,12 @@ class HTMLPurifier_Encoder * function that needs to be able to understand UTF-8 characters. * As of right now, only smart lossless character encoding converters * would need that, and I'm probably not going to implement them. - * Once again, PHP 6 should solve all our problems. */ public static function cleanUTF8($str, $force_php = false) { // UTF-8 validity is checked since PHP 4.3.5 // This is an optimization: if the string is already valid UTF-8, no // need to do PHP stuff. 99% of the time, this will be the case. - // The regexp matches the XML char production, as well as well as excluding - // non-SGML codepoints U+007F to U+009F if (preg_match( '/^[\x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]*$/Du', $str @@ -255,6 +260,7 @@ class HTMLPurifier_Encoder // 7F-9F is not strictly prohibited by XML, // but it is non-SGML, and thus we don't allow it (0xA0 <= $mUcs4 && 0xD7FF >= $mUcs4) || + (0xE000 <= $mUcs4 && 0xFFFD >= $mUcs4) || (0x10000 <= $mUcs4 && 0x10FFFF >= $mUcs4) ) ) { diff --git a/library/HTMLPurifier/EntityLookup.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php similarity index 100% rename from library/HTMLPurifier/EntityLookup.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php diff --git a/library/HTMLPurifier/EntityLookup/entities.ser b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser similarity index 100% rename from library/HTMLPurifier/EntityLookup/entities.ser rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php new file mode 100644 index 000000000..c372b5a6a --- /dev/null +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php @@ -0,0 +1,285 @@ +_semiOptionalPrefixRegex = "/&()()()($semi_optional)/"; + + $this->_textEntitiesRegex = + '/&(?:'. + // hex + '[#]x([a-fA-F0-9]+);?|'. + // dec + '[#]0*(\d+);?|'. + // string (mandatory semicolon) + // NB: order matters: match semicolon preferentially + '([A-Za-z_:][A-Za-z0-9.\-_:]*);|'. + // string (optional semicolon) + "($semi_optional)". + ')/'; + + $this->_attrEntitiesRegex = + '/&(?:'. + // hex + '[#]x([a-fA-F0-9]+);?|'. + // dec + '[#]0*(\d+);?|'. + // string (mandatory semicolon) + // NB: order matters: match semicolon preferentially + '([A-Za-z_:][A-Za-z0-9.\-_:]*);|'. + // string (optional semicolon) + // don't match if trailing is equals or alphanumeric (URL + // like) + "($semi_optional)(?![=;A-Za-z0-9])". + ')/'; + + } + + /** + * Substitute entities with the parsed equivalents. Use this on + * textual data in an HTML document (as opposed to attributes.) + * + * @param string $string String to have entities parsed. + * @return string Parsed string. + */ + public function substituteTextEntities($string) + { + return preg_replace_callback( + $this->_textEntitiesRegex, + array($this, 'entityCallback'), + $string + ); + } + + /** + * Substitute entities with the parsed equivalents. Use this on + * attribute contents in documents. + * + * @param string $string String to have entities parsed. + * @return string Parsed string. + */ + public function substituteAttrEntities($string) + { + return preg_replace_callback( + $this->_attrEntitiesRegex, + array($this, 'entityCallback'), + $string + ); + } + + /** + * Callback function for substituteNonSpecialEntities() that does the work. + * + * @param array $matches PCRE matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + + protected function entityCallback($matches) + { + $entity = $matches[0]; + $hex_part = @$matches[1]; + $dec_part = @$matches[2]; + $named_part = empty($matches[3]) ? @$matches[4] : $matches[3]; + if ($hex_part !== NULL && $hex_part !== "") { + return HTMLPurifier_Encoder::unichr(hexdec($hex_part)); + } elseif ($dec_part !== NULL && $dec_part !== "") { + return HTMLPurifier_Encoder::unichr((int) $dec_part); + } else { + if (!$this->_entity_lookup) { + $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); + } + if (isset($this->_entity_lookup->table[$named_part])) { + return $this->_entity_lookup->table[$named_part]; + } else { + // exact match didn't match anything, so test if + // any of the semicolon optional match the prefix. + // Test that this is an EXACT match is important to + // prevent infinite loop + if (!empty($matches[3])) { + return preg_replace_callback( + $this->_semiOptionalPrefixRegex, + array($this, 'entityCallback'), + $entity + ); + } + return $entity; + } + } + } + + // LEGACY CODE BELOW + + /** + * Callback regex string for parsing entities. + * @type string + */ + protected $_substituteEntitiesRegex = + '/&(?:[#]x([a-fA-F0-9]+)|[#]0*(\d+)|([A-Za-z_:][A-Za-z0-9.\-_:]*));?/'; + // 1. hex 2. dec 3. string (XML style) + + /** + * Decimal to parsed string conversion table for special entities. + * @type array + */ + protected $_special_dec2str = + array( + 34 => '"', + 38 => '&', + 39 => "'", + 60 => '<', + 62 => '>' + ); + + /** + * Stripped entity names to decimal conversion table for special entities. + * @type array + */ + protected $_special_ent2dec = + array( + 'quot' => 34, + 'amp' => 38, + 'lt' => 60, + 'gt' => 62 + ); + + /** + * Substitutes non-special entities with their parsed equivalents. Since + * running this whenever you have parsed character is t3h 5uck, we run + * it before everything else. + * + * @param string $string String to have non-special entities parsed. + * @return string Parsed string. + */ + public function substituteNonSpecialEntities($string) + { + // it will try to detect missing semicolons, but don't rely on it + return preg_replace_callback( + $this->_substituteEntitiesRegex, + array($this, 'nonSpecialEntityCallback'), + $string + ); + } + + /** + * Callback function for substituteNonSpecialEntities() that does the work. + * + * @param array $matches PCRE matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + + protected function nonSpecialEntityCallback($matches) + { + // replaces all but big five + $entity = $matches[0]; + $is_num = (@$matches[0][1] === '#'); + if ($is_num) { + $is_hex = (@$entity[2] === 'x'); + $code = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; + // abort for special characters + if (isset($this->_special_dec2str[$code])) { + return $entity; + } + return HTMLPurifier_Encoder::unichr($code); + } else { + if (isset($this->_special_ent2dec[$matches[3]])) { + return $entity; + } + if (!$this->_entity_lookup) { + $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); + } + if (isset($this->_entity_lookup->table[$matches[3]])) { + return $this->_entity_lookup->table[$matches[3]]; + } else { + return $entity; + } + } + } + + /** + * Substitutes only special entities with their parsed equivalents. + * + * @notice We try to avoid calling this function because otherwise, it + * would have to be called a lot (for every parsed section). + * + * @param string $string String to have non-special entities parsed. + * @return string Parsed string. + */ + public function substituteSpecialEntities($string) + { + return preg_replace_callback( + $this->_substituteEntitiesRegex, + array($this, 'specialEntityCallback'), + $string + ); + } + + /** + * Callback function for substituteSpecialEntities() that does the work. + * + * This callback has same syntax as nonSpecialEntityCallback(). + * + * @param array $matches PCRE-style matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + protected function specialEntityCallback($matches) + { + $entity = $matches[0]; + $is_num = (@$matches[0][1] === '#'); + if ($is_num) { + $is_hex = (@$entity[2] === 'x'); + $int = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; + return isset($this->_special_dec2str[$int]) ? + $this->_special_dec2str[$int] : + $entity; + } else { + return isset($this->_special_ent2dec[$matches[3]]) ? + $this->_special_dec2str[$this->_special_ent2dec[$matches[3]]] : + $entity; + } + } +} + +// vim: et sw=4 sts=4 diff --git a/library/HTMLPurifier/ErrorCollector.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php similarity index 100% rename from library/HTMLPurifier/ErrorCollector.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php diff --git a/library/HTMLPurifier/ErrorStruct.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php similarity index 100% rename from library/HTMLPurifier/ErrorStruct.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php diff --git a/library/HTMLPurifier/Exception.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php similarity index 100% rename from library/HTMLPurifier/Exception.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php diff --git a/library/HTMLPurifier/Filter.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php similarity index 100% rename from library/HTMLPurifier/Filter.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php diff --git a/library/HTMLPurifier/Filter/ExtractStyleBlocks.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php similarity index 97% rename from library/HTMLPurifier/Filter/ExtractStyleBlocks.php rename to vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php index 08e62c16b..66f70b0fc 100644 --- a/library/HTMLPurifier/Filter/ExtractStyleBlocks.php +++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php @@ -95,7 +95,10 @@ class HTMLPurifier_Filter_ExtractStyleBlocks extends HTMLPurifier_Filter if ($tidy !== null) { $this->_tidy = $tidy; } - $html = preg_replace_callback('#(.+)#isU', array($this, 'styleCallback'), $html); + // NB: this must be NON-greedy because if we have + // + // we must not grab foo '; + $js = $htmlpurifier_form->getJavaScript(); + echo ''; + + $frm->show(); +} + +function phorum_htmlpurifier_show_config_info() +{ + global $PHORUM; + + // update mod_htmlpurifier for housekeeping + phorum_htmlpurifier_commit_settings(); + + // politely tell user how to edit settings manually +?> +
How to edit settings for HTML Purifier module
+

+ A config.php file exists in your mods/htmlpurifier/ + directory. This file contains your custom configuration: in order to + change it, please navigate to that file and edit it accordingly. + You can also set $GLOBALS['PHORUM']['mod_htmlpurifier']['wysiwyg'] + or $GLOBALS['PHORUM']['mod_htmlpurifier']['suppress_message'] +

+

+ To use the web interface, delete config.php (or rename it to + config.php.bak). +

+

+ Warning: Changing HTML Purifier's configuration will invalidate + the cache. Expect to see a flurry of database activity after you change + any of these settings. +

+hidden("module", "modsettings"); + $frm->hidden("mod", "htmlpurifier"); + $frm->hidden("migrate-sigs", "1"); + $frm->addbreak("Migrate user signatures to HTML"); + $frm->addMessage('This operation will migrate your users signatures + to HTML. This process is irreversible and must only be performed once. + Type in yes in the confirmation field to migrate.'); + if (!file_exists(dirname(__FILE__) . '/../migrate.php')) { + $frm->addMessage('Migration file does not exist, cannot migrate signatures. + Please check migrate.bbcode.php on how to create an appropriate file.'); + } else { + $frm->addrow('Confirm:', $frm->text_box("confirmation", "")); + } + $frm->show(); +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/plugins/phorum/settings/migrate-sigs.php b/vendor/ezyang/htmlpurifier/plugins/phorum/settings/migrate-sigs.php new file mode 100644 index 000000000..5ea9cd0b8 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/plugins/phorum/settings/migrate-sigs.php @@ -0,0 +1,79 @@ +$PHORUM["mod_htmlpurifier"])); + $offset = 1; + } elseif (!empty($_GET['migrate-sigs']) && $PHORUM['mod_htmlpurifier']['migrate-sigs']) { + $offset = (int) $_GET['migrate-sigs']; + } + return $offset; +} + +function phorum_htmlpurifier_migrate_sigs($offset) +{ + global $PHORUM; + + if(!$offset) return; // bail out quick if $offset == 0 + + // theoretically, we could get rid of this multi-request + // doo-hickery if safe mode is off + @set_time_limit(0); // attempt to let this run + $increment = $PHORUM['mod_htmlpurifier']['migrate-sigs-increment']; + + require_once(dirname(__FILE__) . '/../migrate.php'); + // migrate signatures + // do this in batches so we don't run out of time/space + $end = $offset + $increment; + $user_ids = array(); + for ($i = $offset; $i < $end; $i++) { + $user_ids[] = $i; + } + $userinfos = phorum_db_user_get_fields($user_ids, 'signature'); + foreach ($userinfos as $i => $user) { + if (empty($user['signature'])) continue; + $sig = $user['signature']; + // perform standard Phorum processing on the sig + $sig = str_replace(array("&","<",">"), array("&","<",">"), $sig); + $sig = preg_replace("/<((http|https|ftp):\/\/[a-z0-9;\/\?:@=\&\$\-_\.\+!*'\(\),~%]+?)>/i", "$1", $sig); + // prepare fake data to pass to migration function + $fake_data = array(array("author"=>"", "email"=>"", "subject"=>"", 'body' => $sig)); + list($fake_message) = phorum_htmlpurifier_migrate($fake_data); + $user['signature'] = $fake_message['body']; + if (!phorum_api_user_save($user)) { + exit('Error while saving user data'); + } + } + unset($userinfos); // free up memory + + // query for highest ID in database + $type = $PHORUM['DBCONFIG']['type']; + $sql = "select MAX(user_id) from {$PHORUM['user_table']}"; + $row = phorum_db_interact(DB_RETURN_ROW, $sql); + $top_id = (int) $row[0]; + + $offset += $increment; + if ($offset > $top_id) { // test for end condition + echo 'Migration finished'; + $PHORUM['mod_htmlpurifier']['migrate-sigs'] = false; + phorum_htmlpurifier_commit_settings(); + return true; + } + $host = $_SERVER['HTTP_HOST']; + $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); + $extra = 'admin.php?module=modsettings&mod=htmlpurifier&migrate-sigs=' . $offset; + // relies on output buffering to work + header("Location: http://$host$uri/$extra"); + exit; + +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/plugins/phorum/settings/save.php b/vendor/ezyang/htmlpurifier/plugins/phorum/settings/save.php new file mode 100644 index 000000000..2aefaf83a --- /dev/null +++ b/vendor/ezyang/htmlpurifier/plugins/phorum/settings/save.php @@ -0,0 +1,29 @@ +mods/htmlpurifier/config.php already exists. To change + settings, edit that file. To use the web form, delete that file.
"; + } else { + $config = phorum_htmlpurifier_get_config(true); + if (!isset($_POST['reset'])) $config->mergeArrayFromForm($_POST, 'config', $PHORUM['mod_htmlpurifier']['directives']); + $PHORUM['mod_htmlpurifier']['config'] = $config->getAll(); + } + $PHORUM['mod_htmlpurifier']['wysiwyg'] = !empty($_POST['wysiwyg']); + $PHORUM['mod_htmlpurifier']['suppress_message'] = !empty($_POST['suppress_message']); + if(!phorum_htmlpurifier_commit_settings()){ + $error="Database error while updating settings."; + } else { + echo "Settings Updated
"; + } +} + +function phorum_htmlpurifier_commit_settings() +{ + global $PHORUM; + return phorum_db_update_settings(array("mod_htmlpurifier"=>$PHORUM["mod_htmlpurifier"])); +} + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/release1-update.php b/vendor/ezyang/htmlpurifier/release1-update.php new file mode 100644 index 000000000..834d38567 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/release1-update.php @@ -0,0 +1,110 @@ + 1) { + echo 'More than one release declaration in NEWS replaced' . PHP_EOL; + exit; + } + file_put_contents('NEWS', $news_c); +} + +// ...in Doxyfile +$doxyfile_c = preg_replace( + '/(?<=PROJECT_NUMBER {9}= )[^\s]+/m', // brittle + $version, + file_get_contents('Doxyfile'), + 1, $c +); +if (!$c) { + echo 'Could not update Doxyfile, missing PROJECT_NUMBER.' . PHP_EOL; + exit; +} +file_put_contents('Doxyfile', $doxyfile_c); + +// ...in HTMLPurifier.php +$htmlpurifier_c = file_get_contents('library/HTMLPurifier.php'); +$htmlpurifier_c = preg_replace( + '/HTML Purifier .+? - /', + "HTML Purifier $version - ", + $htmlpurifier_c, + 1, $c +); +if (!$c) { + echo 'Could not update HTMLPurifier.php, missing HTML Purifier [version] header.' . PHP_EOL; + exit; +} +$htmlpurifier_c = preg_replace( + '/public \$version = \'.+?\';/', + "public \$version = '$version';", + $htmlpurifier_c, + 1, $c +); +if (!$c) { + echo 'Could not update HTMLPurifier.php, missing public $version.' . PHP_EOL; + exit; +} +$htmlpurifier_c = preg_replace( + '/const VERSION = \'.+?\';/', + "const VERSION = '$version';", + $htmlpurifier_c, + 1, $c +); +if (!$c) { + echo 'Could not update HTMLPurifier.php, missing const $version.' . PHP_EOL; + exit; +} +file_put_contents('library/HTMLPurifier.php', $htmlpurifier_c); + +$config_c = file_get_contents('library/HTMLPurifier/Config.php'); +$config_c = preg_replace( + '/public \$version = \'.+?\';/', + "public \$version = '$version';", + $config_c, + 1, $c +); +if (!$c) { + echo 'Could not update Config.php, missing public $version.' . PHP_EOL; + exit; +} +file_put_contents('library/HTMLPurifier/Config.php', $config_c); + +passthru('php maintenance/flush.php'); + +if ($is_dev) echo "Review changes, write something in WHATSNEW and FOCUS, and then commit with log 'Release $version.'" . PHP_EOL; +else echo "Numbers updated to dev, no other modifications necessary!"; + +// vim: et sw=4 sts=4 diff --git a/vendor/ezyang/htmlpurifier/release2-tag.php b/vendor/ezyang/htmlpurifier/release2-tag.php new file mode 100644 index 000000000..25e5300d8 --- /dev/null +++ b/vendor/ezyang/htmlpurifier/release2-tag.php @@ -0,0 +1,22 @@ + Date: Mon, 27 Mar 2017 10:29:26 +0200 Subject: [PATCH 4/8] css fixes --- view/css/mod_mail.css | 5 ++++ view/theme/redbasic/css/style.css | 9 +++---- view/tpl/mail_conv.tpl | 39 +++++++++++-------------------- 3 files changed, 22 insertions(+), 31 deletions(-) diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css index 6a98267f0..e227f550d 100644 --- a/view/css/mod_mail.css +++ b/view/css/mod_mail.css @@ -32,3 +32,8 @@ .mail-conv-outside-wrapper { margin-bottom: 20px; } + +.active .conv-participants { + color: #fff; +} + diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 83e9c64cd..0e5ff2bfb 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -737,10 +737,6 @@ div.jGrowl div.jGrowl-notification { color: $font_colour; } -.active .conv-participants { - color: #fff; -} - .contactname { font-weight: bold; display: block; @@ -1097,9 +1093,10 @@ a:hover .dropdown-sub-text { } .active .wall-item-ago, -a:active .wall-item-ago, +a.active:hover .wall-item-ago, .active .dropdown-sub-text, -a:active .dropdown-sub-text { +a:active .dropdown-sub-text, +a.active:hover .dropdown-sub-text { color: #fff; } diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl index ad13ba96d..dc4eaa150 100755 --- a/view/tpl/mail_conv.tpl +++ b/view/tpl/mail_conv.tpl @@ -1,47 +1,36 @@ -
+
{{$mail.from_name}}
-
+
{{if $mail.is_recalled}}{{$mail.is_recalled}}{{/if}}
{{$mail.date}}
-
-
-
+
+
{{$mail.body}} -
{{if $mail.attachments}} - -
From eab9040ee75b08cdc528d3c43d8387031d097c6c Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 27 Mar 2017 11:20:59 +0200 Subject: [PATCH 5/8] unify css classes --- view/css/mod_mail.css | 36 ------------------------------------ view/css/widgets.css | 6 ++++++ view/tpl/mail_conv.tpl | 18 ++++++++++-------- 3 files changed, 16 insertions(+), 44 deletions(-) diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css index e227f550d..8072b4668 100644 --- a/view/css/mod_mail.css +++ b/view/css/mod_mail.css @@ -1,39 +1,3 @@ -.mail-conv-sender { - float: left; - margin-right: 10px; - margin-bottom: 10px; -} - -.mail-conv-sender img{ - width: 2.2rem; - height: 2.2rem; -} - -.mail-conv-sender-name { - font-weight: bold; -} - -.mail-conv-body { - margin-bottom: 10px; -} - .mail-conv-body img { max-width: 100%; } - -#prvmail-rotator { - margin: 15px; -} - -#prvmail-text { - height: 15.0em; -} - -.mail-conv-outside-wrapper { - margin-bottom: 20px; -} - -.active .conv-participants { - color: #fff; -} - diff --git a/view/css/widgets.css b/view/css/widgets.css index 622c1cb86..880745ba2 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -155,3 +155,9 @@ li:hover .group-edit-icon { a.wikilist { z-index: 1; } + +/* mail list */ + +.active .conv-participants { + color: #fff; +} diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl index dc4eaa150..759517b7f 100755 --- a/view/tpl/mail_conv.tpl +++ b/view/tpl/mail_conv.tpl @@ -1,11 +1,13 @@ -
-
- {{$mail.from_name}} -
-
- {{if $mail.is_recalled}}{{$mail.is_recalled}}{{/if}} - -
{{$mail.date}}
+
+
+
+ {{$mail.from_name}} +
+
+ {{if $mail.is_recalled}}{{$mail.is_recalled}}{{/if}} + +
{{$mail.date}}
+
From cd575e80dd57521b3e55336147cf59da0befcfba Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 27 Mar 2017 12:08:26 +0200 Subject: [PATCH 6/8] remove apps which we have access to from the leftside menu in nav --- app/admin.png | Bin 2852 -> 0 bytes app/features.apd | 6 ------ app/features.png | Bin 8542 -> 0 bytes app/manage.apd | 6 ------ app/manage.png | Bin 7355 -> 0 bytes app/profile.apd | 6 ------ app/profile.png | Bin 3550 -> 0 bytes app/settings.apd | 6 ------ app/settings.png | Bin 7958 -> 0 bytes 9 files changed, 24 deletions(-) delete mode 100644 app/admin.png delete mode 100644 app/features.apd delete mode 100644 app/features.png delete mode 100644 app/manage.apd delete mode 100644 app/manage.png delete mode 100644 app/profile.apd delete mode 100644 app/profile.png delete mode 100644 app/settings.apd delete mode 100644 app/settings.png diff --git a/app/admin.png b/app/admin.png deleted file mode 100644 index cde922e8e0bde2f9d1207eeebad284f10133e4cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2852 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 diff --git a/app/features.apd b/app/features.apd deleted file mode 100644 index bffbdffec..000000000 --- a/app/features.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/settings/features -requires: local_channel -name: Features -photo: icon:cogs -categories: System diff --git a/app/features.png b/app/features.png deleted file mode 100644 index 5faf14bc3cf1b019f3f9b5150482bd48f90e6567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8542 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 E2l}EjYybcN diff --git a/app/manage.apd b/app/manage.apd deleted file mode 100644 index b525efa6c..000000000 --- a/app/manage.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/manage -requires: local_channel -name: Channel Manager -photo: icon:id-card-o -categories: Personal diff --git a/app/manage.png b/app/manage.png deleted file mode 100644 index 38a4dcbae56dbb47fea2ab48446f1386661c6a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7355 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 diff --git a/app/settings.apd b/app/settings.apd deleted file mode 100644 index b244f6774..000000000 --- a/app/settings.apd +++ /dev/null @@ -1,6 +0,0 @@ -version: 1 -url: $baseurl/settings -requires: local_channel -name: Settings -photo: icon:cog -categories: System diff --git a/app/settings.png b/app/settings.png deleted file mode 100644 index 2ba11a79a2cd206fd9adae8704582b6fdc71ab14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7958 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 z 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 M07*qoM6N<$g0?)am;e9( From f66aa336ac7b510ae90938fa7de19a1ebdafa699 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 27 Mar 2017 12:55:11 +0200 Subject: [PATCH 7/8] fix app rendering --- view/css/mod_apps.css | 5 ++--- view/tpl/app_create.tpl | 4 ++-- view/tpl/myapps.tpl | 3 +-- view/tpl/prv_message.tpl | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/view/css/mod_apps.css b/view/css/mod_apps.css index 0a231bc84..5e6000fb4 100644 --- a/view/css/mod_apps.css +++ b/view/css/mod_apps.css @@ -1,8 +1,7 @@ .app-container { float: left; - width: 150px; - height: 180px; - padding: 20px; + width: 148px; + margin: 20px; } .app-name { diff --git a/view/tpl/app_create.tpl b/view/tpl/app_create.tpl index 7a0521436..5075ce5e2 100644 --- a/view/tpl/app_create.tpl +++ b/view/tpl/app_create.tpl @@ -3,7 +3,7 @@

{{$banner}}

-
+
{{if $guid}} @@ -33,7 +33,7 @@ {{include file="field_textarea.tpl" field=$embed}} {{/if}} - +
diff --git a/view/tpl/myapps.tpl b/view/tpl/myapps.tpl index b9f59b9c3..ccefa4a49 100755 --- a/view/tpl/myapps.tpl +++ b/view/tpl/myapps.tpl @@ -9,10 +9,9 @@ {{/if}}

{{$title}}{{if $cat}} - {{$cat}}{{/if}}

-
+
{{foreach $apps as $ap}} {{$ap}} {{/foreach}} -
diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl index 20b8ac209..925447ff2 100755 --- a/view/tpl/prv_message.tpl +++ b/view/tpl/prv_message.tpl @@ -28,7 +28,7 @@ {{/if}}
- +
From b6b62506c5f4ed5bc354d548702538bda36aff36 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 27 Mar 2017 13:22:15 +0200 Subject: [PATCH 8/8] adjust comment box --- view/css/conversation.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/view/css/conversation.css b/view/css/conversation.css index 289e389fa..27601b453 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -182,19 +182,20 @@ a.wall-item-name-link { .comment-edit-text-empty, .comment-edit-text-full { padding: 0.5rem; - line-height: 1.25; width: 100%; display: inherit; } .comment-edit-text-empty { - height: 2.25rem; + height: 2rem; + line-height: 1; overflow: hidden; resize: none; } .comment-edit-text-full { height: 7rem; + line-height: 1.25; overflow: auto; resize: vertical; }