Version Description
Download this release
Release Info
Developer | westonruter |
Plugin | AMP for WordPress |
Version | 2.0.6 |
Comparing to | |
See all releases |
Code changes from version 2.0.5 to 2.0.6
- amp.php +2 -2
- includes/amp-helper-functions.php +2 -2
- includes/embeds/class-amp-base-embed-handler.php +43 -1
- includes/embeds/class-amp-facebook-embed-handler.php +68 -2
- includes/sanitizers/class-amp-base-sanitizer.php +1 -0
- includes/sanitizers/class-amp-core-theme-sanitizer.php +0 -22
- includes/sanitizers/class-amp-iframe-sanitizer.php +1 -1
- includes/sanitizers/class-amp-link-sanitizer.php +22 -0
- includes/sanitizers/class-amp-style-sanitizer.php +52 -22
- includes/sanitizers/class-amp-tag-and-attribute-sanitizer.php +2 -2
- readme.txt +1 -1
- src/Admin/ReaderThemes.php +4 -1
- src/PluginSuppression.php +38 -3
- vendor/ampproject/common/src/CssLength.php +5 -1
- vendor/ampproject/optimizer/src/Transformer/ServerSideRendering.php +4 -2
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +2 -2
- vendor/composer/InstalledVersions.php +278 -0
- vendor/composer/autoload_classmap.php +1 -1
- vendor/composer/autoload_real.php +10 -8
- vendor/composer/autoload_static.php +5 -5
- vendor/composer/installed.json +394 -371
- vendor/composer/installed.php +93 -0
- vendor/composer/platform_check.php +26 -0
amp.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Plugin URI: https://amp-wp.org
|
6 |
* Author: AMP Project Contributors
|
7 |
* Author URI: https://github.com/ampproject/amp-wp/graphs/contributors
|
8 |
-
* Version: 2.0.
|
9 |
* License: GPLv2 or later
|
10 |
* Requires at least: 4.9
|
11 |
* Requires PHP: 5.6
|
@@ -15,7 +15,7 @@
|
|
15 |
|
16 |
define( 'AMP__FILE__', __FILE__ );
|
17 |
define( 'AMP__DIR__', dirname( __FILE__ ) );
|
18 |
-
define( 'AMP__VERSION', '2.0.
|
19 |
|
20 |
/**
|
21 |
* Errors encountered while loading the plugin.
|
5 |
* Plugin URI: https://amp-wp.org
|
6 |
* Author: AMP Project Contributors
|
7 |
* Author URI: https://github.com/ampproject/amp-wp/graphs/contributors
|
8 |
+
* Version: 2.0.6
|
9 |
* License: GPLv2 or later
|
10 |
* Requires at least: 4.9
|
11 |
* Requires PHP: 5.6
|
15 |
|
16 |
define( 'AMP__FILE__', __FILE__ );
|
17 |
define( 'AMP__DIR__', dirname( __FILE__ ) );
|
18 |
+
define( 'AMP__VERSION', '2.0.6' );
|
19 |
|
20 |
/**
|
21 |
* Errors encountered while loading the plugin.
|
includes/amp-helper-functions.php
CHANGED
@@ -409,8 +409,8 @@ function amp_add_frontend_actions() {
|
|
409 |
function amp_is_available() {
|
410 |
global $pagenow, $wp_query;
|
411 |
|
412 |
-
// Short-circuit for admin requests or requests to non-frontend pages.
|
413 |
-
if ( is_admin() || in_array( $pagenow, [ 'wp-login.php', 'wp-signup.php', 'wp-activate.php', 'repair.php' ], true ) ) {
|
414 |
return false;
|
415 |
}
|
416 |
|
409 |
function amp_is_available() {
|
410 |
global $pagenow, $wp_query;
|
411 |
|
412 |
+
// Short-circuit for cron, CLI, admin requests or requests to non-frontend pages.
|
413 |
+
if ( wp_doing_cron() || ( defined( 'WP_CLI' ) && WP_CLI ) || is_admin() || in_array( $pagenow, [ 'wp-login.php', 'wp-signup.php', 'wp-activate.php', 'repair.php' ], true ) ) {
|
414 |
return false;
|
415 |
}
|
416 |
|
includes/embeds/class-amp-base-embed-handler.php
CHANGED
@@ -97,7 +97,7 @@ abstract class AMP_Base_Embed_Handler {
|
|
97 |
implode(
|
98 |
'',
|
99 |
array_map(
|
100 |
-
function ( $attr_name ) {
|
101 |
return sprintf( '(?=[^>]*?%1$s="(?P<%1$s>[^"]+)")?', preg_quote( $attr_name, '/' ) );
|
102 |
},
|
103 |
$attribute_names
|
@@ -109,4 +109,46 @@ abstract class AMP_Base_Embed_Handler {
|
|
109 |
}
|
110 |
return wp_array_slice_assoc( $matches, $attribute_names );
|
111 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
}
|
97 |
implode(
|
98 |
'',
|
99 |
array_map(
|
100 |
+
static function ( $attr_name ) {
|
101 |
return sprintf( '(?=[^>]*?%1$s="(?P<%1$s>[^"]+)")?', preg_quote( $attr_name, '/' ) );
|
102 |
},
|
103 |
$attribute_names
|
109 |
}
|
110 |
return wp_array_slice_assoc( $matches, $attribute_names );
|
111 |
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Get all child elements of the specified element.
|
115 |
+
*
|
116 |
+
* @since 2.0.6
|
117 |
+
*
|
118 |
+
* @param DOMElement $node Element.
|
119 |
+
* @return DOMElement[] Array of child elements for specified element.
|
120 |
+
*/
|
121 |
+
protected function get_child_elements( DOMElement $node ) {
|
122 |
+
return array_filter(
|
123 |
+
iterator_to_array( $node->childNodes ),
|
124 |
+
static function ( DOMNode $child ) {
|
125 |
+
return $child instanceof DOMElement;
|
126 |
+
}
|
127 |
+
);
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Replace an element's parent with itself if the parent is a <p> tag which has no attributes and has no other children.
|
132 |
+
*
|
133 |
+
* This usually happens while `wpautop()` processes the element.
|
134 |
+
*
|
135 |
+
* @since 2.0.6
|
136 |
+
* @see AMP_Tag_And_Attribute_Sanitizer::remove_node()
|
137 |
+
*
|
138 |
+
* @param DOMElement $node Node.
|
139 |
+
*/
|
140 |
+
protected function unwrap_p_element( DOMElement $node ) {
|
141 |
+
$parent_node = $node->parentNode;
|
142 |
+
if (
|
143 |
+
$parent_node instanceof DOMElement
|
144 |
+
&&
|
145 |
+
'p' === $parent_node->tagName
|
146 |
+
&&
|
147 |
+
false === $parent_node->hasAttributes()
|
148 |
+
&&
|
149 |
+
1 === count( $this->get_child_elements( $parent_node ) )
|
150 |
+
) {
|
151 |
+
$parent_node->parentNode->replaceChild( $node, $parent_node );
|
152 |
+
}
|
153 |
+
}
|
154 |
}
|
includes/embeds/class-amp-facebook-embed-handler.php
CHANGED
@@ -13,6 +13,21 @@ use AmpProject\Dom\Document;
|
|
13 |
* @internal
|
14 |
*/
|
15 |
class AMP_Facebook_Embed_Handler extends AMP_Base_Embed_Handler {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
/**
|
17 |
* Default height.
|
18 |
*
|
@@ -38,14 +53,57 @@ class AMP_Facebook_Embed_Handler extends AMP_Base_Embed_Handler {
|
|
38 |
* Registers embed.
|
39 |
*/
|
40 |
public function register_embed() {
|
41 |
-
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
* Unregisters embed.
|
46 |
*/
|
47 |
public function unregister_embed() {
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -54,6 +112,14 @@ class AMP_Facebook_Embed_Handler extends AMP_Base_Embed_Handler {
|
|
54 |
* @param Document $dom DOM.
|
55 |
*/
|
56 |
public function sanitize_raw_embeds( Document $dom ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
$nodes = $dom->getElementsByTagName( $this->sanitize_tag );
|
58 |
$num_nodes = $nodes->length;
|
59 |
|
13 |
* @internal
|
14 |
*/
|
15 |
class AMP_Facebook_Embed_Handler extends AMP_Base_Embed_Handler {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* URL pattern.
|
19 |
+
*
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
const URL_PATTERN = '#https?://(www\.)?facebook\.com/.*#i';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Default width.
|
26 |
+
*
|
27 |
+
* @var int
|
28 |
+
*/
|
29 |
+
protected $DEFAULT_WIDTH = 600;
|
30 |
+
|
31 |
/**
|
32 |
* Default height.
|
33 |
*
|
53 |
* Registers embed.
|
54 |
*/
|
55 |
public function register_embed() {
|
56 |
+
wp_embed_register_handler( $this->amp_tag, self::URL_PATTERN, [ $this, 'oembed' ], -1 );
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
* Unregisters embed.
|
61 |
*/
|
62 |
public function unregister_embed() {
|
63 |
+
wp_embed_unregister_handler( $this->amp_tag, -1 );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* WordPress oEmbed rendering callback.
|
68 |
+
*
|
69 |
+
* @param array $matches URL pattern matches.
|
70 |
+
* @param array $attr Matched attributes.
|
71 |
+
* @param string $url Matched URL.
|
72 |
+
* @return string HTML markup for rendered embed.
|
73 |
+
*/
|
74 |
+
public function oembed( $matches, $attr, $url ) {
|
75 |
+
return $this->render( [ 'url' => $url ] );
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Gets the rendered embed markup.
|
80 |
+
*
|
81 |
+
* @param array $args Embed rendering arguments.
|
82 |
+
* @return string HTML markup for rendered embed.
|
83 |
+
*/
|
84 |
+
public function render( $args ) {
|
85 |
+
$args = wp_parse_args(
|
86 |
+
$args,
|
87 |
+
[
|
88 |
+
'url' => false,
|
89 |
+
]
|
90 |
+
);
|
91 |
+
|
92 |
+
if ( empty( $args['url'] ) ) {
|
93 |
+
return '';
|
94 |
+
}
|
95 |
+
|
96 |
+
$this->did_convert_elements = true;
|
97 |
+
|
98 |
+
return AMP_HTML_Utils::build_tag(
|
99 |
+
$this->amp_tag,
|
100 |
+
[
|
101 |
+
'data-href' => $args['url'],
|
102 |
+
'layout' => 'responsive',
|
103 |
+
'width' => $this->args['width'],
|
104 |
+
'height' => $this->args['height'],
|
105 |
+
]
|
106 |
+
);
|
107 |
}
|
108 |
|
109 |
/**
|
112 |
* @param Document $dom DOM.
|
113 |
*/
|
114 |
public function sanitize_raw_embeds( Document $dom ) {
|
115 |
+
// If there were any previous embeds in the DOM that were wrapped by `wpautop()`, unwrap them.
|
116 |
+
$embed_nodes = $dom->xpath->query( "//p/{$this->amp_tag}" );
|
117 |
+
if ( $embed_nodes->length ) {
|
118 |
+
foreach ( $embed_nodes as $embed_node ) {
|
119 |
+
$this->unwrap_p_element( $embed_node );
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
$nodes = $dom->getElementsByTagName( $this->sanitize_tag );
|
124 |
$num_nodes = $nodes->length;
|
125 |
|
includes/sanitizers/class-amp-base-sanitizer.php
CHANGED
@@ -321,6 +321,7 @@ abstract class AMP_Base_Sanitizer {
|
|
321 |
$attributes['style'] = $this->reassemble_style_string( $styles );
|
322 |
}
|
323 |
$attributes['layout'] = 'fill';
|
|
|
324 |
return $attributes;
|
325 |
}
|
326 |
|
321 |
$attributes['style'] = $this->reassemble_style_string( $styles );
|
322 |
}
|
323 |
$attributes['layout'] = 'fill';
|
324 |
+
unset( $attributes['height'], $attributes['width'] );
|
325 |
return $attributes;
|
326 |
}
|
327 |
|
includes/sanitizers/class-amp-core-theme-sanitizer.php
CHANGED
@@ -130,7 +130,6 @@ class AMP_Core_Theme_Sanitizer extends AMP_Base_Sanitizer {
|
|
130 |
],
|
131 |
'add_twentynineteen_masthead_styles' => [],
|
132 |
'adjust_twentynineteen_images' => [],
|
133 |
-
'accept_remove_moz_document_at_rule' => [],
|
134 |
];
|
135 |
|
136 |
// Twenty Seventeen.
|
@@ -289,27 +288,6 @@ class AMP_Core_Theme_Sanitizer extends AMP_Base_Sanitizer {
|
|
289 |
return [];
|
290 |
}
|
291 |
|
292 |
-
/**
|
293 |
-
* Accept the removal of `@-moz-document` at-rules.
|
294 |
-
*
|
295 |
-
* This is temporary with the hope that the at-rule will become allowed in AMP.
|
296 |
-
*
|
297 |
-
* @since 2.0.1
|
298 |
-
* @link https://github.com/ampproject/amp-wp/issues/5302
|
299 |
-
* @link https://github.com/ampproject/amphtml/issues/26406
|
300 |
-
*/
|
301 |
-
public static function accept_remove_moz_document_at_rule() {
|
302 |
-
AMP_Validation_Error_Taxonomy::accept_validation_errors(
|
303 |
-
[
|
304 |
-
AMP_Style_Sanitizer::CSS_SYNTAX_INVALID_AT_RULE => [
|
305 |
-
[
|
306 |
-
'at_rule' => '-moz-document',
|
307 |
-
],
|
308 |
-
],
|
309 |
-
]
|
310 |
-
);
|
311 |
-
}
|
312 |
-
|
313 |
/**
|
314 |
* Adds extra theme support arguments on the fly.
|
315 |
*
|
130 |
],
|
131 |
'add_twentynineteen_masthead_styles' => [],
|
132 |
'adjust_twentynineteen_images' => [],
|
|
|
133 |
];
|
134 |
|
135 |
// Twenty Seventeen.
|
288 |
return [];
|
289 |
}
|
290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
/**
|
292 |
* Adds extra theme support arguments on the fly.
|
293 |
*
|
includes/sanitizers/class-amp-iframe-sanitizer.php
CHANGED
@@ -234,7 +234,7 @@ class AMP_Iframe_Sanitizer extends AMP_Base_Sanitizer {
|
|
234 |
*
|
235 |
* @type string $src IFrame URL - Empty if HTTPS required per $this->args['require_https_src']
|
236 |
* @type int $width <iframe> width attribute - Set to numeric value if px or %
|
237 |
-
* @type int $height <iframe>
|
238 |
* @type string $sandbox <iframe> `sandbox` attribute - Pass along if found; default to value of self::SANDBOX_DEFAULTS
|
239 |
* @type string $class <iframe> `class` attribute - Pass along if found
|
240 |
* @type string $sizes <iframe> `sizes` attribute - Pass along if found
|
234 |
*
|
235 |
* @type string $src IFrame URL - Empty if HTTPS required per $this->args['require_https_src']
|
236 |
* @type int $width <iframe> width attribute - Set to numeric value if px or %
|
237 |
+
* @type int $height <iframe> height attribute - Set to numeric value if px or %
|
238 |
* @type string $sandbox <iframe> `sandbox` attribute - Pass along if found; default to value of self::SANDBOX_DEFAULTS
|
239 |
* @type string $class <iframe> `class` attribute - Pass along if found
|
240 |
* @type string $sizes <iframe> `sizes` attribute - Pass along if found
|
includes/sanitizers/class-amp-link-sanitizer.php
CHANGED
@@ -140,6 +140,23 @@ class AMP_Link_Sanitizer extends AMP_Base_Sanitizer {
|
|
140 |
}
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
/**
|
144 |
* Process element.
|
145 |
*
|
@@ -154,6 +171,11 @@ class AMP_Link_Sanitizer extends AMP_Base_Sanitizer {
|
|
154 |
return;
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
157 |
// Gather the rel values that were attributed to the element.
|
158 |
// Note that links and forms may both have this attribute.
|
159 |
// See <https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel>.
|
140 |
}
|
141 |
}
|
142 |
|
143 |
+
/**
|
144 |
+
* Check if element is descendant of a template element.
|
145 |
+
*
|
146 |
+
* @param DOMElement $node Node.
|
147 |
+
* @return bool Descendant of template.
|
148 |
+
*/
|
149 |
+
private function is_descendant_of_template_element( DOMElement $node ) {
|
150 |
+
while ( $node instanceof DOMElement ) {
|
151 |
+
$parent = $node->parentNode;
|
152 |
+
if ( $parent instanceof DOMElement && Tag::TEMPLATE === $parent->tagName ) {
|
153 |
+
return true;
|
154 |
+
}
|
155 |
+
$node = $parent;
|
156 |
+
}
|
157 |
+
return false;
|
158 |
+
}
|
159 |
+
|
160 |
/**
|
161 |
* Process element.
|
162 |
*
|
171 |
return;
|
172 |
}
|
173 |
|
174 |
+
// Skip links with template variables.
|
175 |
+
if ( preg_match( '/{{[^}]+?}}/', $url ) && $this->is_descendant_of_template_element( $element ) ) {
|
176 |
+
return;
|
177 |
+
}
|
178 |
+
|
179 |
// Gather the rel values that were attributed to the element.
|
180 |
// Note that links and forms may both have this attribute.
|
181 |
// See <https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel>.
|
includes/sanitizers/class-amp-style-sanitizer.php
CHANGED
@@ -381,15 +381,6 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
381 |
* @return bool Returns true if the plugin's forked version of PHP-CSS-Parser is loaded by Composer.
|
382 |
*/
|
383 |
public static function has_required_php_css_parser() {
|
384 |
-
$has_required_methods = (
|
385 |
-
method_exists( 'Sabberworm\CSS\CSSList\Document', 'splice' )
|
386 |
-
&&
|
387 |
-
method_exists( 'Sabberworm\CSS\CSSList\Document', 'replace' )
|
388 |
-
);
|
389 |
-
if ( ! $has_required_methods ) {
|
390 |
-
return false;
|
391 |
-
}
|
392 |
-
|
393 |
$reflection = new ReflectionClass( 'Sabberworm\CSS\OutputFormat' );
|
394 |
|
395 |
$has_output_format_extensions = (
|
@@ -1570,7 +1561,7 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
1570 |
$parsed = null;
|
1571 |
$cache_key = null;
|
1572 |
$cached = true;
|
1573 |
-
$cache_group = 'amp-parsed-stylesheet-
|
1574 |
$use_transients = $this->should_use_transient_caching();
|
1575 |
|
1576 |
$cache_impacting_options = array_merge(
|
@@ -1743,7 +1734,7 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
1743 |
);
|
1744 |
$viewport_rules = $parsed_stylesheet['viewport_rules'];
|
1745 |
|
1746 |
-
if ( ! empty( $parsed_stylesheet['css_document'] )
|
1747 |
/**
|
1748 |
* CSS Doc.
|
1749 |
*
|
@@ -1751,10 +1742,7 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
1751 |
*/
|
1752 |
$css_document = $parsed_stylesheet['css_document'];
|
1753 |
|
1754 |
-
|
1755 |
-
$css_list->setContents( array_values( $css_list->getContents() ) );
|
1756 |
-
|
1757 |
-
$css_list->replace( $item, $css_document->getContents() );
|
1758 |
} else {
|
1759 |
$css_list->remove( $item );
|
1760 |
}
|
@@ -1762,6 +1750,32 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
1762 |
return compact( 'validation_results', 'imported_font_urls', 'viewport_rules' );
|
1763 |
}
|
1764 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1765 |
/**
|
1766 |
* Create validated CSS document.
|
1767 |
*
|
@@ -2138,7 +2152,24 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
2138 |
$this->process_css_declaration_block( $css_item, $css_list, $options )
|
2139 |
);
|
2140 |
} elseif ( $css_item instanceof AtRuleBlockList ) {
|
2141 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2142 |
$error = [
|
2143 |
'code' => self::CSS_SYNTAX_INVALID_AT_RULE,
|
2144 |
'at_rule' => $css_item->atRuleName(),
|
@@ -2702,13 +2733,12 @@ class AMP_Style_Sanitizer extends AMP_Base_Sanitizer {
|
|
2702 |
);
|
2703 |
$important_ruleset->setRules( $importants );
|
2704 |
|
2705 |
-
$
|
2706 |
-
|
2707 |
-
|
2708 |
-
|
2709 |
-
$css_list->
|
2710 |
}
|
2711 |
-
|
2712 |
return $results;
|
2713 |
}
|
2714 |
|
381 |
* @return bool Returns true if the plugin's forked version of PHP-CSS-Parser is loaded by Composer.
|
382 |
*/
|
383 |
public static function has_required_php_css_parser() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
$reflection = new ReflectionClass( 'Sabberworm\CSS\OutputFormat' );
|
385 |
|
386 |
$has_output_format_extensions = (
|
1561 |
$parsed = null;
|
1562 |
$cache_key = null;
|
1563 |
$cached = true;
|
1564 |
+
$cache_group = 'amp-parsed-stylesheet-v34'; // This should be bumped whenever the PHP-CSS-Parser is updated or parsed format is updated.
|
1565 |
$use_transients = $this->should_use_transient_caching();
|
1566 |
|
1567 |
$cache_impacting_options = array_merge(
|
1734 |
);
|
1735 |
$viewport_rules = $parsed_stylesheet['viewport_rules'];
|
1736 |
|
1737 |
+
if ( ! empty( $parsed_stylesheet['css_document'] ) ) {
|
1738 |
/**
|
1739 |
* CSS Doc.
|
1740 |
*
|
1742 |
*/
|
1743 |
$css_document = $parsed_stylesheet['css_document'];
|
1744 |
|
1745 |
+
$this->replace_inside_css_list( $css_list, $item, $css_document->getContents() );
|
|
|
|
|
|
|
1746 |
} else {
|
1747 |
$css_list->remove( $item );
|
1748 |
}
|
1750 |
return compact( 'validation_results', 'imported_font_urls', 'viewport_rules' );
|
1751 |
}
|
1752 |
|
1753 |
+
/**
|
1754 |
+
* Replace an item inside of a CSSList.
|
1755 |
+
*
|
1756 |
+
* This is being used instead of `CSSList::splice()` because it uses `array_splice()` which does not work properly
|
1757 |
+
* if the array keys are not sequentially indexed from 0, which happens when `CSSList::remove()` is employed.
|
1758 |
+
*
|
1759 |
+
* @see CSSList::splice()
|
1760 |
+
* @see CSSList::replace()
|
1761 |
+
* @see CSSList::remove()
|
1762 |
+
*
|
1763 |
+
* @param CSSList $css_list CSS list.
|
1764 |
+
* @param AtRule|RuleSet|CSSList $old_item Old item.
|
1765 |
+
* @param AtRule[]|RuleSet[]|CSSList[] $new_items New item(s). If empty, the old item is simply removed.
|
1766 |
+
* @return bool Whether the replacement was successful.
|
1767 |
+
*/
|
1768 |
+
private function replace_inside_css_list( CSSList $css_list, $old_item, $new_items = [] ) {
|
1769 |
+
$contents = array_values( $css_list->getContents() ); // Required to obtain the offset instead of the index.
|
1770 |
+
$offset = array_search( $old_item, $contents, true );
|
1771 |
+
if ( false !== $offset ) {
|
1772 |
+
array_splice( $contents, $offset, 1, $new_items );
|
1773 |
+
$css_list->setContents( $contents );
|
1774 |
+
return true;
|
1775 |
+
}
|
1776 |
+
return false;
|
1777 |
+
}
|
1778 |
+
|
1779 |
/**
|
1780 |
* Create validated CSS document.
|
1781 |
*
|
2152 |
$this->process_css_declaration_block( $css_item, $css_list, $options )
|
2153 |
);
|
2154 |
} elseif ( $css_item instanceof AtRuleBlockList ) {
|
2155 |
+
if (
|
2156 |
+
'-moz-document' === $css_item->atRuleName()
|
2157 |
+
&&
|
2158 |
+
'url-prefix()' === $css_item->atRuleArgs()
|
2159 |
+
&&
|
2160 |
+
in_array( 'supports', $options['allowed_at_rules'], true )
|
2161 |
+
) {
|
2162 |
+
// Replace `@-moz-document url-prefix()` with `@supports (-moz-appearance:meterbar)` as an alternative
|
2163 |
+
// way to provide Firefox-specific style rules. This is a workaround since @-moz-document is not
|
2164 |
+
// yet allowed in AMP, and this use of @supports is another recognized Firefox-specific CSS hack,
|
2165 |
+
// per <http://browserhacks.com/#hack-8e9b5504d9fda44ec75169381b3c3157>.
|
2166 |
+
// For adding @-moz-document to AMP, see <https://github.com/ampproject/amphtml/issues/26406>.
|
2167 |
+
$new_css_item = new AtRuleBlockList( 'supports', '(-moz-appearance:meterbar)' );
|
2168 |
+
$new_css_item->setContents( $css_item->getContents() );
|
2169 |
+
$this->replace_inside_css_list( $css_list, $css_item, [ $new_css_item ] );
|
2170 |
+
$css_item = $new_css_item; // To process_css_list below.
|
2171 |
+
$sanitized = false;
|
2172 |
+
} elseif ( ! in_array( $css_item->atRuleName(), $options['allowed_at_rules'], true ) ) {
|
2173 |
$error = [
|
2174 |
'code' => self::CSS_SYNTAX_INVALID_AT_RULE,
|
2175 |
'at_rule' => $css_item->atRuleName(),
|
2733 |
);
|
2734 |
$important_ruleset->setRules( $importants );
|
2735 |
|
2736 |
+
$contents = array_values( $css_list->getContents() ); // Ensure keys are 0-indexed and sequential.
|
2737 |
+
$offset = array_search( $ruleset, $contents, true );
|
2738 |
+
if ( false !== $offset ) {
|
2739 |
+
array_splice( $contents, $offset + 1, 0, [ $important_ruleset ] );
|
2740 |
+
$css_list->setContents( $contents );
|
2741 |
}
|
|
|
2742 |
return $results;
|
2743 |
}
|
2744 |
|
includes/sanitizers/class-amp-tag-and-attribute-sanitizer.php
CHANGED
@@ -1312,7 +1312,7 @@ class AMP_Tag_And_Attribute_Sanitizer extends AMP_Base_Sanitizer {
|
|
1312 |
$allow_fluid = Layout::FLUID === $layout_attr;
|
1313 |
$allow_auto = true;
|
1314 |
|
1315 |
-
$input_width = new CssLength( $node->getAttribute( Attribute::WIDTH ) );
|
1316 |
$input_width->validate( $allow_auto, $allow_fluid );
|
1317 |
if ( ! $input_width->isValid() ) {
|
1318 |
return [
|
@@ -1321,7 +1321,7 @@ class AMP_Tag_And_Attribute_Sanitizer extends AMP_Base_Sanitizer {
|
|
1321 |
];
|
1322 |
}
|
1323 |
|
1324 |
-
$input_height = new CssLength( $node->getAttribute( Attribute::HEIGHT ) );
|
1325 |
$input_height->validate( $allow_auto, $allow_fluid );
|
1326 |
if ( ! $input_height->isValid() ) {
|
1327 |
return [
|
1312 |
$allow_fluid = Layout::FLUID === $layout_attr;
|
1313 |
$allow_auto = true;
|
1314 |
|
1315 |
+
$input_width = new CssLength( $node->hasAttribute( Attribute::WIDTH ) ? $node->getAttribute( Attribute::WIDTH ) : null );
|
1316 |
$input_width->validate( $allow_auto, $allow_fluid );
|
1317 |
if ( ! $input_width->isValid() ) {
|
1318 |
return [
|
1321 |
];
|
1322 |
}
|
1323 |
|
1324 |
+
$input_height = new CssLength( $node->hasAttribute( Attribute::HEIGHT ) ? $node->getAttribute( Attribute::HEIGHT ) : null );
|
1325 |
$input_height->validate( $allow_auto, $allow_fluid );
|
1326 |
if ( ! $input_height->isValid() ) {
|
1327 |
return [
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: google, xwp, automattic, westonruter, albertomedina, schlessera, s
|
|
3 |
Tags: amp, mobile, optimization, accelerated mobile pages, framework, components, blocks, performance, ux, seo, official
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.5
|
6 |
-
Stable tag: 2.0.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Requires PHP: 5.6
|
3 |
Tags: amp, mobile, optimization, accelerated mobile pages, framework, components, blocks, performance, ux, seo, official
|
4 |
Requires at least: 4.9
|
5 |
Tested up to: 5.5
|
6 |
+
Stable tag: 2.0.6
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Requires PHP: 5.6
|
src/Admin/ReaderThemes.php
CHANGED
@@ -384,8 +384,11 @@ final class ReaderThemes {
|
|
384 |
}
|
385 |
|
386 |
if ( null === $this->can_install_themes ) {
|
387 |
-
if ( !
|
388 |
require_once ABSPATH . 'wp-admin/includes/file.php';
|
|
|
|
|
|
|
389 |
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
390 |
}
|
391 |
|
384 |
}
|
385 |
|
386 |
if ( null === $this->can_install_themes ) {
|
387 |
+
if ( ! function_exists( 'request_filesystem_credentials' ) ) {
|
388 |
require_once ABSPATH . 'wp-admin/includes/file.php';
|
389 |
+
}
|
390 |
+
|
391 |
+
if ( ! class_exists( 'WP_Upgrader' ) ) {
|
392 |
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
393 |
}
|
394 |
|
src/PluginSuppression.php
CHANGED
@@ -45,6 +45,18 @@ final class PluginSuppression implements Service, Registerable {
|
|
45 |
*/
|
46 |
private $callback_reflection;
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
/**
|
49 |
* Instantiate the plugin suppression service.
|
50 |
*
|
@@ -63,6 +75,18 @@ final class PluginSuppression implements Service, Registerable {
|
|
63 |
add_filter( 'amp_default_options', [ $this, 'filter_default_options' ] );
|
64 |
add_filter( 'amp_options_updating', [ $this, 'sanitize_options' ], 10, 2 );
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
// When a Reader theme is selected and an AMP request is being made, start suppressing as early as possible.
|
67 |
// This can be done because we know it is an AMP page due to the query parameter, but it also _has_ to be done
|
68 |
// specifically for the case of accessing the AMP Customizer (in which customize.php is requested with the query
|
@@ -426,11 +450,22 @@ final class PluginSuppression implements Service, Registerable {
|
|
426 |
$registry = WP_Block_Type_Registry::get_instance();
|
427 |
|
428 |
foreach ( $registry->get_all_registered() as $block_type ) {
|
429 |
-
if ( ! $block_type->is_dynamic()
|
430 |
continue;
|
431 |
}
|
432 |
-
|
433 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
}
|
435 |
}
|
436 |
|
45 |
*/
|
46 |
private $callback_reflection;
|
47 |
|
48 |
+
/**
|
49 |
+
* Original render callbacks for blocks.
|
50 |
+
*
|
51 |
+
* Populated via the `register_block_type_args` filter at the moment the block is first registered. This is useful
|
52 |
+
* to detect a suppressed plugin's blocks which had their `render_callback` wrapped by another function before
|
53 |
+
* plugin suppression is started at the `wp` action.
|
54 |
+
*
|
55 |
+
* @see gutenberg_current_parsed_block_tracking()
|
56 |
+
* @var array
|
57 |
+
*/
|
58 |
+
private $original_block_render_callbacks = [];
|
59 |
+
|
60 |
/**
|
61 |
* Instantiate the plugin suppression service.
|
62 |
*
|
75 |
add_filter( 'amp_default_options', [ $this, 'filter_default_options' ] );
|
76 |
add_filter( 'amp_options_updating', [ $this, 'sanitize_options' ], 10, 2 );
|
77 |
|
78 |
+
add_filter(
|
79 |
+
'register_block_type_args',
|
80 |
+
function ( $props, $block_name ) {
|
81 |
+
if ( isset( $props['render_callback'] ) ) {
|
82 |
+
$this->original_block_render_callbacks[ $block_name ] = $props['render_callback'];
|
83 |
+
}
|
84 |
+
return $props;
|
85 |
+
},
|
86 |
+
~PHP_INT_MAX,
|
87 |
+
2
|
88 |
+
);
|
89 |
+
|
90 |
// When a Reader theme is selected and an AMP request is being made, start suppressing as early as possible.
|
91 |
// This can be done because we know it is an AMP page due to the query parameter, but it also _has_ to be done
|
92 |
// specifically for the case of accessing the AMP Customizer (in which customize.php is requested with the query
|
450 |
$registry = WP_Block_Type_Registry::get_instance();
|
451 |
|
452 |
foreach ( $registry->get_all_registered() as $block_type ) {
|
453 |
+
if ( ! $block_type->is_dynamic() ) {
|
454 |
continue;
|
455 |
}
|
456 |
+
|
457 |
+
if (
|
458 |
+
$this->is_callback_plugin_suppressed( $block_type->render_callback, $suppressed_plugins )
|
459 |
+
||
|
460 |
+
(
|
461 |
+
isset( $this->original_block_render_callbacks[ $block_type->name ] )
|
462 |
+
&&
|
463 |
+
$this->is_callback_plugin_suppressed( $this->original_block_render_callbacks[ $block_type->name ], $suppressed_plugins )
|
464 |
+
)
|
465 |
+
) {
|
466 |
+
unset( $block_type->script, $block_type->style );
|
467 |
+
$block_type->render_callback = '__return_empty_string';
|
468 |
+
}
|
469 |
}
|
470 |
}
|
471 |
|
vendor/ampproject/common/src/CssLength.php
CHANGED
@@ -77,7 +77,7 @@ final class CssLength
|
|
77 |
*/
|
78 |
public function __construct($attrValue)
|
79 |
{
|
80 |
-
if (
|
81 |
$this->isValid = true;
|
82 |
return;
|
83 |
}
|
@@ -94,6 +94,10 @@ final class CssLength
|
|
94 |
*/
|
95 |
public function validate($allowAuto, $allowFluid)
|
96 |
{
|
|
|
|
|
|
|
|
|
97 |
if (self::AUTO === $this->attrValue) {
|
98 |
$this->isAuto = true;
|
99 |
$this->isValid = $allowAuto;
|
77 |
*/
|
78 |
public function __construct($attrValue)
|
79 |
{
|
80 |
+
if (null === $attrValue) {
|
81 |
$this->isValid = true;
|
82 |
return;
|
83 |
}
|
94 |
*/
|
95 |
public function validate($allowAuto, $allowFluid)
|
96 |
{
|
97 |
+
if ($this->isValid()) {
|
98 |
+
return;
|
99 |
+
}
|
100 |
+
|
101 |
if (self::AUTO === $this->attrValue) {
|
102 |
$this->isAuto = true;
|
103 |
$this->isValid = $allowAuto;
|
vendor/ampproject/optimizer/src/Transformer/ServerSideRendering.php
CHANGED
@@ -298,14 +298,16 @@ final class ServerSideRendering implements Transformer
|
|
298 |
{
|
299 |
$ampLayout = $this->parseLayout($element->getAttribute(Attribute::LAYOUT));
|
300 |
|
301 |
-
$
|
|
|
302 |
$inputWidth->validate(/* $allowAuto */ true, /* $allowFluid */ false);
|
303 |
if (! $inputWidth->isValid()) {
|
304 |
$errors->add(Error\CannotPerformServerSideRendering::fromInvalidInputWidth($element));
|
305 |
return false;
|
306 |
}
|
307 |
|
308 |
-
$
|
|
|
309 |
$inputHeight->validate(/* $allowAuto */ true, /* $allowFluid */ $ampLayout === Layout::FLUID);
|
310 |
if (! $inputHeight->isValid()) {
|
311 |
$errors->add(Error\CannotPerformServerSideRendering::fromInvalidInputHeight($element));
|
298 |
{
|
299 |
$ampLayout = $this->parseLayout($element->getAttribute(Attribute::LAYOUT));
|
300 |
|
301 |
+
$attrWidth = $element->hasAttribute(Attribute::WIDTH) ? $element->getAttribute(Attribute::WIDTH) : null;
|
302 |
+
$inputWidth = new CssLength($attrWidth);
|
303 |
$inputWidth->validate(/* $allowAuto */ true, /* $allowFluid */ false);
|
304 |
if (! $inputWidth->isValid()) {
|
305 |
$errors->add(Error\CannotPerformServerSideRendering::fromInvalidInputWidth($element));
|
306 |
return false;
|
307 |
}
|
308 |
|
309 |
+
$attrHeight = $element->hasAttribute(Attribute::HEIGHT) ? $element->getAttribute(Attribute::HEIGHT) : null;
|
310 |
+
$inputHeight = new CssLength($attrHeight);
|
311 |
$inputHeight->validate(/* $allowAuto */ true, /* $allowFluid */ $ampLayout === Layout::FLUID);
|
312 |
if (! $inputHeight->isValid()) {
|
313 |
$errors->add(Error\CannotPerformServerSideRendering::fromInvalidInputHeight($element));
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit8adc6c3f07deecf522940444140aed37::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -37,8 +37,8 @@ namespace Composer\Autoload;
|
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
-
* @see
|
41 |
-
* @see
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
+
* @see https://www.php-fig.org/psr/psr-0/
|
41 |
+
* @see https://www.php-fig.org/psr/psr-4/
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
vendor/composer/InstalledVersions.php
ADDED
@@ -0,0 +1,278 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Composer;
|
4 |
+
|
5 |
+
use Composer\Semver\VersionParser;
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
class InstalledVersions
|
13 |
+
{
|
14 |
+
private static $installed = array (
|
15 |
+
'root' =>
|
16 |
+
array (
|
17 |
+
'pretty_version' => '2.0.x-dev',
|
18 |
+
'version' => '2.0.9999999.9999999-dev',
|
19 |
+
'aliases' =>
|
20 |
+
array (
|
21 |
+
),
|
22 |
+
'reference' => '2acc034f6591038b6ebdc5a7d45f89ebd814d1b8',
|
23 |
+
'name' => 'ampproject/amp-wp',
|
24 |
+
),
|
25 |
+
'versions' =>
|
26 |
+
array (
|
27 |
+
'ampproject/amp-wp' =>
|
28 |
+
array (
|
29 |
+
'pretty_version' => '2.0.x-dev',
|
30 |
+
'version' => '2.0.9999999.9999999-dev',
|
31 |
+
'aliases' =>
|
32 |
+
array (
|
33 |
+
),
|
34 |
+
'reference' => '2acc034f6591038b6ebdc5a7d45f89ebd814d1b8',
|
35 |
+
),
|
36 |
+
'ampproject/common' =>
|
37 |
+
array (
|
38 |
+
'pretty_version' => '2.0.x-dev',
|
39 |
+
'version' => '2.0.9999999.9999999-dev',
|
40 |
+
'aliases' =>
|
41 |
+
array (
|
42 |
+
),
|
43 |
+
'reference' => '9ae4d10f085d41c46ae00ee0c32db2f96165a877',
|
44 |
+
),
|
45 |
+
'ampproject/optimizer' =>
|
46 |
+
array (
|
47 |
+
'pretty_version' => '2.0.x-dev',
|
48 |
+
'version' => '2.0.9999999.9999999-dev',
|
49 |
+
'aliases' =>
|
50 |
+
array (
|
51 |
+
),
|
52 |
+
'reference' => 'd4658dac3e58a9377314cb340f8cafe3b892d06f',
|
53 |
+
),
|
54 |
+
'fasterimage/fasterimage' =>
|
55 |
+
array (
|
56 |
+
'pretty_version' => 'v1.5.0',
|
57 |
+
'version' => '1.5.0.0',
|
58 |
+
'aliases' =>
|
59 |
+
array (
|
60 |
+
),
|
61 |
+
'reference' => '42d125a15dc124520aff2157bbed9a4b2d4f310a',
|
62 |
+
),
|
63 |
+
'grogy/php-parallel-lint' =>
|
64 |
+
array (
|
65 |
+
'replaced' =>
|
66 |
+
array (
|
67 |
+
0 => '*',
|
68 |
+
),
|
69 |
+
),
|
70 |
+
'jakub-onderka/php-parallel-lint' =>
|
71 |
+
array (
|
72 |
+
'replaced' =>
|
73 |
+
array (
|
74 |
+
0 => '*',
|
75 |
+
),
|
76 |
+
),
|
77 |
+
'php-parallel-lint/php-parallel-lint' =>
|
78 |
+
array (
|
79 |
+
'pretty_version' => 'v1.2.0',
|
80 |
+
'version' => '1.2.0.0',
|
81 |
+
'aliases' =>
|
82 |
+
array (
|
83 |
+
),
|
84 |
+
'reference' => '474f18bc6cc6aca61ca40bfab55139de614e51ca',
|
85 |
+
),
|
86 |
+
'sabberworm/php-css-parser' =>
|
87 |
+
array (
|
88 |
+
'pretty_version' => 'dev-master',
|
89 |
+
'version' => 'dev-master',
|
90 |
+
'aliases' =>
|
91 |
+
array (
|
92 |
+
0 => '9999999-dev',
|
93 |
+
),
|
94 |
+
'reference' => 'bfdd976',
|
95 |
+
),
|
96 |
+
'willwashburn/stream' =>
|
97 |
+
array (
|
98 |
+
'pretty_version' => 'v1.0.0',
|
99 |
+
'version' => '1.0.0.0',
|
100 |
+
'aliases' =>
|
101 |
+
array (
|
102 |
+
),
|
103 |
+
'reference' => '345b3062493e3899d987dbdd1fec1c13ee28c903',
|
104 |
+
),
|
105 |
+
),
|
106 |
+
);
|
107 |
+
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
+
|
112 |
+
|
113 |
+
|
114 |
+
public static function getInstalledPackages()
|
115 |
+
{
|
116 |
+
return array_keys(self::$installed['versions']);
|
117 |
+
}
|
118 |
+
|
119 |
+
|
120 |
+
|
121 |
+
|
122 |
+
|
123 |
+
|
124 |
+
|
125 |
+
|
126 |
+
|
127 |
+
public static function isInstalled($packageName)
|
128 |
+
{
|
129 |
+
return isset(self::$installed['versions'][$packageName]);
|
130 |
+
}
|
131 |
+
|
132 |
+
|
133 |
+
|
134 |
+
|
135 |
+
|
136 |
+
|
137 |
+
|
138 |
+
|
139 |
+
|
140 |
+
|
141 |
+
|
142 |
+
|
143 |
+
|
144 |
+
|
145 |
+
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
146 |
+
{
|
147 |
+
$constraint = $parser->parseConstraints($constraint);
|
148 |
+
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
149 |
+
|
150 |
+
return $provided->matches($constraint);
|
151 |
+
}
|
152 |
+
|
153 |
+
|
154 |
+
|
155 |
+
|
156 |
+
|
157 |
+
|
158 |
+
|
159 |
+
|
160 |
+
|
161 |
+
|
162 |
+
public static function getVersionRanges($packageName)
|
163 |
+
{
|
164 |
+
if (!isset(self::$installed['versions'][$packageName])) {
|
165 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
166 |
+
}
|
167 |
+
|
168 |
+
$ranges = array();
|
169 |
+
if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
170 |
+
$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
|
171 |
+
}
|
172 |
+
if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
|
173 |
+
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
|
174 |
+
}
|
175 |
+
if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
|
176 |
+
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
|
177 |
+
}
|
178 |
+
if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
|
179 |
+
$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
|
180 |
+
}
|
181 |
+
|
182 |
+
return implode(' || ', $ranges);
|
183 |
+
}
|
184 |
+
|
185 |
+
|
186 |
+
|
187 |
+
|
188 |
+
|
189 |
+
public static function getVersion($packageName)
|
190 |
+
{
|
191 |
+
if (!isset(self::$installed['versions'][$packageName])) {
|
192 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
193 |
+
}
|
194 |
+
|
195 |
+
if (!isset(self::$installed['versions'][$packageName]['version'])) {
|
196 |
+
return null;
|
197 |
+
}
|
198 |
+
|
199 |
+
return self::$installed['versions'][$packageName]['version'];
|
200 |
+
}
|
201 |
+
|
202 |
+
|
203 |
+
|
204 |
+
|
205 |
+
|
206 |
+
public static function getPrettyVersion($packageName)
|
207 |
+
{
|
208 |
+
if (!isset(self::$installed['versions'][$packageName])) {
|
209 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
210 |
+
}
|
211 |
+
|
212 |
+
if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
|
213 |
+
return null;
|
214 |
+
}
|
215 |
+
|
216 |
+
return self::$installed['versions'][$packageName]['pretty_version'];
|
217 |
+
}
|
218 |
+
|
219 |
+
|
220 |
+
|
221 |
+
|
222 |
+
|
223 |
+
public static function getReference($packageName)
|
224 |
+
{
|
225 |
+
if (!isset(self::$installed['versions'][$packageName])) {
|
226 |
+
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
227 |
+
}
|
228 |
+
|
229 |
+
if (!isset(self::$installed['versions'][$packageName]['reference'])) {
|
230 |
+
return null;
|
231 |
+
}
|
232 |
+
|
233 |
+
return self::$installed['versions'][$packageName]['reference'];
|
234 |
+
}
|
235 |
+
|
236 |
+
|
237 |
+
|
238 |
+
|
239 |
+
|
240 |
+
public static function getRootPackage()
|
241 |
+
{
|
242 |
+
return self::$installed['root'];
|
243 |
+
}
|
244 |
+
|
245 |
+
|
246 |
+
|
247 |
+
|
248 |
+
|
249 |
+
|
250 |
+
|
251 |
+
public static function getRawData()
|
252 |
+
{
|
253 |
+
return self::$installed;
|
254 |
+
}
|
255 |
+
|
256 |
+
|
257 |
+
|
258 |
+
|
259 |
+
|
260 |
+
|
261 |
+
|
262 |
+
|
263 |
+
|
264 |
+
|
265 |
+
|
266 |
+
|
267 |
+
|
268 |
+
|
269 |
+
|
270 |
+
|
271 |
+
|
272 |
+
|
273 |
+
|
274 |
+
public static function reload($data)
|
275 |
+
{
|
276 |
+
self::$installed = $data;
|
277 |
+
}
|
278 |
+
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -208,6 +208,7 @@ return array(
|
|
208 |
'AmpProject\\Role' => $vendorDir . '/ampproject/common/src/Role.php',
|
209 |
'AmpProject\\RuntimeVersion' => $vendorDir . '/ampproject/common/src/RuntimeVersion.php',
|
210 |
'AmpProject\\Tag' => $vendorDir . '/ampproject/common/src/Tag.php',
|
|
|
211 |
'FasterImage\\Exception\\InvalidImageException' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/Exception/InvalidImageException.php',
|
212 |
'FasterImage\\ExifParser' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/ExifParser.php',
|
213 |
'FasterImage\\FasterImage' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/FasterImage.php',
|
@@ -251,7 +252,6 @@ return array(
|
|
251 |
'Sabberworm\\CSS\\Comment\\Comment' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Comment.php',
|
252 |
'Sabberworm\\CSS\\Comment\\Commentable' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Commentable.php',
|
253 |
'Sabberworm\\CSS\\OutputFormat' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
254 |
-
'Sabberworm\\CSS\\OutputFormatter' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
255 |
'Sabberworm\\CSS\\Parser' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parser.php',
|
256 |
'Sabberworm\\CSS\\Parsing\\OutputException' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/OutputException.php',
|
257 |
'Sabberworm\\CSS\\Parsing\\ParserState' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php',
|
208 |
'AmpProject\\Role' => $vendorDir . '/ampproject/common/src/Role.php',
|
209 |
'AmpProject\\RuntimeVersion' => $vendorDir . '/ampproject/common/src/RuntimeVersion.php',
|
210 |
'AmpProject\\Tag' => $vendorDir . '/ampproject/common/src/Tag.php',
|
211 |
+
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
212 |
'FasterImage\\Exception\\InvalidImageException' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/Exception/InvalidImageException.php',
|
213 |
'FasterImage\\ExifParser' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/ExifParser.php',
|
214 |
'FasterImage\\FasterImage' => $vendorDir . '/fasterimage/fasterimage/src/FasterImage/FasterImage.php',
|
252 |
'Sabberworm\\CSS\\Comment\\Comment' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Comment.php',
|
253 |
'Sabberworm\\CSS\\Comment\\Commentable' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Commentable.php',
|
254 |
'Sabberworm\\CSS\\OutputFormat' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
|
|
255 |
'Sabberworm\\CSS\\Parser' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parser.php',
|
256 |
'Sabberworm\\CSS\\Parsing\\OutputException' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/OutputException.php',
|
257 |
'Sabberworm\\CSS\\Parsing\\ParserState' => $vendorDir . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -22,15 +22,17 @@ class ComposerAutoloaderInitef5b406761369129e13a89adef847c33
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
-
|
|
|
|
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
-
spl_autoload_unregister(array('
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
-
|
32 |
|
33 |
-
call_user_func(\Composer\Autoload\
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
@@ -51,19 +53,19 @@ class ComposerAutoloaderInitef5b406761369129e13a89adef847c33
|
|
51 |
$loader->register(true);
|
52 |
|
53 |
if ($useStaticLoader) {
|
54 |
-
$includeFiles = Composer\Autoload\
|
55 |
} else {
|
56 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
57 |
}
|
58 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
59 |
-
|
60 |
}
|
61 |
|
62 |
return $loader;
|
63 |
}
|
64 |
}
|
65 |
|
66 |
-
function
|
67 |
{
|
68 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
69 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit8adc6c3f07deecf522940444140aed37
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
require __DIR__ . '/platform_check.php';
|
26 |
+
|
27 |
+
spl_autoload_register(array('ComposerAutoloaderInit8adc6c3f07deecf522940444140aed37', 'loadClassLoader'), true, true);
|
28 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
29 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit8adc6c3f07deecf522940444140aed37', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
+
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit8adc6c3f07deecf522940444140aed37::getInitializer($loader));
|
36 |
} else {
|
37 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
38 |
foreach ($map as $namespace => $path) {
|
53 |
$loader->register(true);
|
54 |
|
55 |
if ($useStaticLoader) {
|
56 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit8adc6c3f07deecf522940444140aed37::$files;
|
57 |
} else {
|
58 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
59 |
}
|
60 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
61 |
+
composerRequire8adc6c3f07deecf522940444140aed37($fileIdentifier, $file);
|
62 |
}
|
63 |
|
64 |
return $loader;
|
65 |
}
|
66 |
}
|
67 |
|
68 |
+
function composerRequire8adc6c3f07deecf522940444140aed37($fileIdentifier, $file)
|
69 |
{
|
70 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
71 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'6f5653f9af3eab04254ad2c7f20515c8' => __DIR__ . '/../..' . '/back-compat/back-compat.php',
|
@@ -256,6 +256,7 @@ class ComposerStaticInitef5b406761369129e13a89adef847c33
|
|
256 |
'AmpProject\\Role' => __DIR__ . '/..' . '/ampproject/common/src/Role.php',
|
257 |
'AmpProject\\RuntimeVersion' => __DIR__ . '/..' . '/ampproject/common/src/RuntimeVersion.php',
|
258 |
'AmpProject\\Tag' => __DIR__ . '/..' . '/ampproject/common/src/Tag.php',
|
|
|
259 |
'FasterImage\\Exception\\InvalidImageException' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/Exception/InvalidImageException.php',
|
260 |
'FasterImage\\ExifParser' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/ExifParser.php',
|
261 |
'FasterImage\\FasterImage' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/FasterImage.php',
|
@@ -299,7 +300,6 @@ class ComposerStaticInitef5b406761369129e13a89adef847c33
|
|
299 |
'Sabberworm\\CSS\\Comment\\Comment' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Comment.php',
|
300 |
'Sabberworm\\CSS\\Comment\\Commentable' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Commentable.php',
|
301 |
'Sabberworm\\CSS\\OutputFormat' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
302 |
-
'Sabberworm\\CSS\\OutputFormatter' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
303 |
'Sabberworm\\CSS\\Parser' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parser.php',
|
304 |
'Sabberworm\\CSS\\Parsing\\OutputException' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/OutputException.php',
|
305 |
'Sabberworm\\CSS\\Parsing\\ParserState' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php',
|
@@ -338,9 +338,9 @@ class ComposerStaticInitef5b406761369129e13a89adef847c33
|
|
338 |
public static function getInitializer(ClassLoader $loader)
|
339 |
{
|
340 |
return \Closure::bind(function () use ($loader) {
|
341 |
-
$loader->prefixLengthsPsr4 =
|
342 |
-
$loader->prefixDirsPsr4 =
|
343 |
-
$loader->classMap =
|
344 |
|
345 |
}, null, ClassLoader::class);
|
346 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit8adc6c3f07deecf522940444140aed37
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'6f5653f9af3eab04254ad2c7f20515c8' => __DIR__ . '/../..' . '/back-compat/back-compat.php',
|
256 |
'AmpProject\\Role' => __DIR__ . '/..' . '/ampproject/common/src/Role.php',
|
257 |
'AmpProject\\RuntimeVersion' => __DIR__ . '/..' . '/ampproject/common/src/RuntimeVersion.php',
|
258 |
'AmpProject\\Tag' => __DIR__ . '/..' . '/ampproject/common/src/Tag.php',
|
259 |
+
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
260 |
'FasterImage\\Exception\\InvalidImageException' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/Exception/InvalidImageException.php',
|
261 |
'FasterImage\\ExifParser' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/ExifParser.php',
|
262 |
'FasterImage\\FasterImage' => __DIR__ . '/..' . '/fasterimage/fasterimage/src/FasterImage/FasterImage.php',
|
300 |
'Sabberworm\\CSS\\Comment\\Comment' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Comment.php',
|
301 |
'Sabberworm\\CSS\\Comment\\Commentable' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Comment/Commentable.php',
|
302 |
'Sabberworm\\CSS\\OutputFormat' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/OutputFormat.php',
|
|
|
303 |
'Sabberworm\\CSS\\Parser' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parser.php',
|
304 |
'Sabberworm\\CSS\\Parsing\\OutputException' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/OutputException.php',
|
305 |
'Sabberworm\\CSS\\Parsing\\ParserState' => __DIR__ . '/..' . '/sabberworm/php-css-parser/lib/Sabberworm/CSS/Parsing/ParserState.php',
|
338 |
public static function getInitializer(ClassLoader $loader)
|
339 |
{
|
340 |
return \Closure::bind(function () use ($loader) {
|
341 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit8adc6c3f07deecf522940444140aed37::$prefixLengthsPsr4;
|
342 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit8adc6c3f07deecf522940444140aed37::$prefixDirsPsr4;
|
343 |
+
$loader->classMap = ComposerStaticInit8adc6c3f07deecf522940444140aed37::$classMap;
|
344 |
|
345 |
}, null, ClassLoader::class);
|
346 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,386 +1,409 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
"
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
"
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
"
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
"
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
"
|
33 |
-
"
|
34 |
-
"
|
35 |
-
|
36 |
-
|
|
|
|
|
37 |
}
|
38 |
-
}
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
}
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
],
|
55 |
-
"
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
],
|
58 |
-
"
|
59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
],
|
61 |
-
"
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
66 |
],
|
67 |
-
"
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
],
|
70 |
-
"
|
71 |
-
"
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
"
|
80 |
-
"
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
"
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
"
|
105 |
-
|
106 |
-
|
107 |
-
"
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
-
}
|
121 |
-
},
|
122 |
-
"installation-source": "dist",
|
123 |
-
"autoload": {
|
124 |
-
"psr-4": {
|
125 |
-
"AmpProject\\Optimizer\\": "src/"
|
126 |
-
}
|
127 |
-
},
|
128 |
-
"autoload-dev": {
|
129 |
-
"psr-4": {
|
130 |
-
"AmpProject\\Optimizer\\Tests\\": "tests/src/"
|
131 |
-
}
|
132 |
-
},
|
133 |
-
"scripts": {
|
134 |
-
"cbf": [
|
135 |
-
"phpcbf"
|
136 |
],
|
137 |
-
"
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
],
|
140 |
-
"
|
141 |
-
|
|
|
|
|
142 |
],
|
143 |
-
"
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
146 |
],
|
147 |
-
"
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
],
|
153 |
-
"
|
154 |
-
|
|
|
|
|
|
|
155 |
],
|
156 |
-
"
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
158 |
],
|
159 |
-
"
|
160 |
-
"
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
"MIT"
|
165 |
-
],
|
166 |
-
"description": "PHP library for optimizing AMP pages.",
|
167 |
-
"transport-options": {
|
168 |
-
"symlink": true,
|
169 |
-
"relative": true
|
170 |
}
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
"version_normalized": "1.5.0.0",
|
176 |
-
"source": {
|
177 |
-
"type": "git",
|
178 |
-
"url": "https://github.com/willwashburn/fasterimage.git",
|
179 |
-
"reference": "42d125a15dc124520aff2157bbed9a4b2d4f310a"
|
180 |
-
},
|
181 |
-
"dist": {
|
182 |
-
"type": "zip",
|
183 |
-
"url": "https://api.github.com/repos/willwashburn/fasterimage/zipball/42d125a15dc124520aff2157bbed9a4b2d4f310a",
|
184 |
-
"reference": "42d125a15dc124520aff2157bbed9a4b2d4f310a",
|
185 |
-
"shasum": ""
|
186 |
-
},
|
187 |
-
"require": {
|
188 |
-
"php": ">=5.4.0",
|
189 |
-
"willwashburn/stream": ">=1.0"
|
190 |
-
},
|
191 |
-
"require-dev": {
|
192 |
-
"php-coveralls/php-coveralls": "^2.1",
|
193 |
-
"php-mock/php-mock-phpunit": "^2.3",
|
194 |
-
"phpunit/phpunit": "~6.0"
|
195 |
-
},
|
196 |
-
"time": "2019-05-25T14:33:33+00:00",
|
197 |
-
"type": "library",
|
198 |
-
"installation-source": "dist",
|
199 |
-
"autoload": {
|
200 |
-
"classmap": [
|
201 |
-
"src"
|
202 |
-
]
|
203 |
-
},
|
204 |
-
"notification-url": "https://packagist.org/downloads/",
|
205 |
-
"license": [
|
206 |
-
"MIT"
|
207 |
-
],
|
208 |
-
"authors": [
|
209 |
-
{
|
210 |
-
"name": "Will Washburn",
|
211 |
-
"email": "will@tailwindapp.com"
|
212 |
-
},
|
213 |
-
{
|
214 |
-
"name": "Weston Ruter"
|
215 |
-
}
|
216 |
-
],
|
217 |
-
"description": "FasterImage finds the size or type of a set of images given their uris by fetching as little as needed, in parallel. Originally ported by Tom Moor.",
|
218 |
-
"homepage": "https://github.com/willwashburn/fasterimage",
|
219 |
-
"keywords": [
|
220 |
-
"fast image",
|
221 |
-
"faster image",
|
222 |
-
"fasterimage",
|
223 |
-
"fastimage",
|
224 |
-
"getimagesize",
|
225 |
-
"image size",
|
226 |
-
"parallel"
|
227 |
-
]
|
228 |
-
},
|
229 |
-
{
|
230 |
-
"name": "php-parallel-lint/php-parallel-lint",
|
231 |
-
"version": "v1.2.0",
|
232 |
-
"version_normalized": "1.2.0.0",
|
233 |
-
"source": {
|
234 |
-
"type": "git",
|
235 |
-
"url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
|
236 |
-
"reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca"
|
237 |
-
},
|
238 |
-
"dist": {
|
239 |
-
"type": "zip",
|
240 |
-
"url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/474f18bc6cc6aca61ca40bfab55139de614e51ca",
|
241 |
-
"reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca",
|
242 |
-
"shasum": ""
|
243 |
-
},
|
244 |
-
"require": {
|
245 |
-
"ext-json": "*",
|
246 |
-
"php": ">=5.4.0"
|
247 |
-
},
|
248 |
-
"replace": {
|
249 |
-
"grogy/php-parallel-lint": "*",
|
250 |
-
"jakub-onderka/php-parallel-lint": "*"
|
251 |
-
},
|
252 |
-
"require-dev": {
|
253 |
-
"nette/tester": "^1.3 || ^2.0",
|
254 |
-
"php-parallel-lint/php-console-highlighter": "~0.3",
|
255 |
-
"squizlabs/php_codesniffer": "~3.0"
|
256 |
-
},
|
257 |
-
"suggest": {
|
258 |
-
"php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
|
259 |
-
},
|
260 |
-
"time": "2020-04-04T12:18:32+00:00",
|
261 |
-
"bin": [
|
262 |
-
"parallel-lint"
|
263 |
-
],
|
264 |
-
"type": "library",
|
265 |
-
"installation-source": "dist",
|
266 |
-
"autoload": {
|
267 |
-
"classmap": [
|
268 |
-
"./"
|
269 |
-
]
|
270 |
-
},
|
271 |
-
"notification-url": "https://packagist.org/downloads/",
|
272 |
-
"license": [
|
273 |
-
"BSD-2-Clause"
|
274 |
-
],
|
275 |
-
"authors": [
|
276 |
-
{
|
277 |
-
"name": "Jakub Onderka",
|
278 |
-
"email": "ahoj@jakubonderka.cz"
|
279 |
-
}
|
280 |
-
],
|
281 |
-
"description": "This tool check syntax of PHP files about 20x faster than serial check.",
|
282 |
-
"homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint"
|
283 |
-
},
|
284 |
-
{
|
285 |
-
"name": "sabberworm/php-css-parser",
|
286 |
-
"version": "dev-master",
|
287 |
-
"version_normalized": "9999999-dev",
|
288 |
-
"source": {
|
289 |
-
"type": "git",
|
290 |
-
"url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
|
291 |
-
"reference": "bfdd976"
|
292 |
-
},
|
293 |
-
"dist": {
|
294 |
-
"type": "zip",
|
295 |
-
"url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/bfdd976",
|
296 |
-
"reference": "bfdd976",
|
297 |
-
"shasum": ""
|
298 |
-
},
|
299 |
-
"require": {
|
300 |
-
"php": ">=5.3.2"
|
301 |
-
},
|
302 |
-
"require-dev": {
|
303 |
-
"codacy/coverage": "^1.4",
|
304 |
-
"phpunit/phpunit": "^4.8.36"
|
305 |
-
},
|
306 |
-
"time": "2020-07-21T18:39:46+00:00",
|
307 |
-
"type": "library",
|
308 |
-
"extra": {
|
309 |
-
"patches_applied": {
|
310 |
-
"Add additional validation for size unit <https://github.com/sabberworm/PHP-CSS-Parser/pull/193>": "patches/php-css-parser-pull-193.patch",
|
311 |
-
"Validate name-start code points for identifier <https://github.com/sabberworm/PHP-CSS-Parser/pull/185>": "patches/php-css-parser-pull-185.patch",
|
312 |
-
"Fix parsing CSS selectors which contain commas <https://github.com/westonruter/PHP-CSS-Parser/pull/1>": "patches/php-css-parser-commit-10a2501.patch"
|
313 |
-
}
|
314 |
-
},
|
315 |
-
"installation-source": "source",
|
316 |
-
"autoload": {
|
317 |
-
"psr-4": {
|
318 |
-
"Sabberworm\\CSS\\": "lib/Sabberworm/CSS/"
|
319 |
-
}
|
320 |
-
},
|
321 |
-
"license": [
|
322 |
-
"MIT"
|
323 |
-
],
|
324 |
-
"authors": [
|
325 |
-
{
|
326 |
-
"name": "Raphael Schweikert"
|
327 |
-
}
|
328 |
-
],
|
329 |
-
"description": "Parser for CSS Files written in PHP",
|
330 |
-
"homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser",
|
331 |
-
"keywords": [
|
332 |
-
"css",
|
333 |
-
"parser",
|
334 |
-
"stylesheet"
|
335 |
-
]
|
336 |
-
},
|
337 |
-
{
|
338 |
-
"name": "willwashburn/stream",
|
339 |
-
"version": "v1.0.0",
|
340 |
-
"version_normalized": "1.0.0.0",
|
341 |
-
"source": {
|
342 |
-
"type": "git",
|
343 |
-
"url": "https://github.com/willwashburn/stream.git",
|
344 |
-
"reference": "345b3062493e3899d987dbdd1fec1c13ee28c903"
|
345 |
-
},
|
346 |
-
"dist": {
|
347 |
-
"type": "zip",
|
348 |
-
"url": "https://api.github.com/repos/willwashburn/stream/zipball/345b3062493e3899d987dbdd1fec1c13ee28c903",
|
349 |
-
"reference": "345b3062493e3899d987dbdd1fec1c13ee28c903",
|
350 |
-
"shasum": ""
|
351 |
-
},
|
352 |
-
"require": {
|
353 |
-
"php": ">=5.4.0"
|
354 |
-
},
|
355 |
-
"require-dev": {
|
356 |
-
"mockery/mockery": "~0.9",
|
357 |
-
"phpunit/phpunit": "~4.0"
|
358 |
-
},
|
359 |
-
"time": "2016-03-15T10:54:35+00:00",
|
360 |
-
"type": "library",
|
361 |
-
"installation-source": "dist",
|
362 |
-
"autoload": {
|
363 |
-
"psr-4": {
|
364 |
-
"WillWashburn\\": "src/"
|
365 |
-
}
|
366 |
-
},
|
367 |
-
"notification-url": "https://packagist.org/downloads/",
|
368 |
-
"license": [
|
369 |
-
"MIT"
|
370 |
-
],
|
371 |
-
"authors": [
|
372 |
-
{
|
373 |
-
"name": "Will Washburn",
|
374 |
-
"email": "will.washburn@gmail.com"
|
375 |
-
}
|
376 |
-
],
|
377 |
-
"description": "model a sequence of data elements made available over time ",
|
378 |
-
"homepage": "https://github.com/willwashburn/stream",
|
379 |
-
"keywords": [
|
380 |
-
"peek",
|
381 |
-
"read",
|
382 |
-
"stream",
|
383 |
-
"streamable"
|
384 |
-
]
|
385 |
-
}
|
386 |
-
]
|
1 |
+
{
|
2 |
+
"packages": [
|
3 |
+
{
|
4 |
+
"name": "ampproject/common",
|
5 |
+
"version": "2.0.x-dev",
|
6 |
+
"version_normalized": "2.0.9999999.9999999-dev",
|
7 |
+
"dist": {
|
8 |
+
"type": "path",
|
9 |
+
"url": "lib/common",
|
10 |
+
"reference": "9ae4d10f085d41c46ae00ee0c32db2f96165a877"
|
11 |
+
},
|
12 |
+
"require": {
|
13 |
+
"ext-dom": "*",
|
14 |
+
"ext-iconv": "*",
|
15 |
+
"ext-json": "*",
|
16 |
+
"ext-libxml": "*",
|
17 |
+
"php": "^5.6 || ^7.0",
|
18 |
+
"php-parallel-lint/php-parallel-lint": "^1.2"
|
19 |
+
},
|
20 |
+
"require-dev": {
|
21 |
+
"civicrm/composer-downloads-plugin": "^2.1",
|
22 |
+
"dealerdirect/phpcodesniffer-composer-installer": "0.7.0",
|
23 |
+
"phpcompatibility/phpcompatibility-wp": "2.1.0",
|
24 |
+
"roave/security-advisories": "dev-master",
|
25 |
+
"sirbrillig/phpcs-variable-analysis": "2.8.3",
|
26 |
+
"squizlabs/php_codesniffer": "^3"
|
27 |
+
},
|
28 |
+
"suggest": {
|
29 |
+
"ext-mbstring": "Used by Dom\\Document to convert encoding to UTF-8 if needed."
|
30 |
+
},
|
31 |
+
"type": "library",
|
32 |
+
"extra": {
|
33 |
+
"downloads": {
|
34 |
+
"phpstan": {
|
35 |
+
"url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar",
|
36 |
+
"path": "vendor/bin/phpstan",
|
37 |
+
"type": "phar"
|
38 |
+
}
|
39 |
}
|
40 |
+
},
|
41 |
+
"installation-source": "dist",
|
42 |
+
"autoload": {
|
43 |
+
"psr-4": {
|
44 |
+
"AmpProject\\": "src/"
|
45 |
+
}
|
46 |
+
},
|
47 |
+
"autoload-dev": {
|
48 |
+
"psr-4": {
|
49 |
+
"AmpProject\\Tests\\": "tests/src/"
|
50 |
+
}
|
51 |
+
},
|
52 |
+
"scripts": {
|
53 |
+
"cbf": [
|
54 |
+
"phpcbf"
|
55 |
+
],
|
56 |
+
"cs": [
|
57 |
+
"if [ -z $TEST_SKIP_PHPCS ]; then phpcs; fi"
|
58 |
+
],
|
59 |
+
"lint": [
|
60 |
+
"if [ -z $TEST_SKIP_LINTING ]; then parallel-lint -j 10 --colors --exclude vendor .; fi"
|
61 |
+
],
|
62 |
+
"test": [
|
63 |
+
"@lint",
|
64 |
+
"@unit",
|
65 |
+
"@cs",
|
66 |
+
"@analyze"
|
67 |
+
],
|
68 |
+
"analyze": [
|
69 |
+
"if [ -z $TEST_SKIP_PHPSTAN ]; then phpstan --version; phpstan analyze --ansi; fi"
|
70 |
+
],
|
71 |
+
"unit": [
|
72 |
+
"if [ -z $TEST_SKIP_PHPUNIT ]; then phpunit --colors=always; fi"
|
73 |
+
]
|
74 |
+
},
|
75 |
+
"license": [
|
76 |
+
"MIT"
|
77 |
],
|
78 |
+
"description": "PHP library with common base functionality for AMP integrations.",
|
79 |
+
"transport-options": {
|
80 |
+
"symlink": true,
|
81 |
+
"relative": true
|
82 |
+
},
|
83 |
+
"install-path": "../ampproject/common"
|
84 |
+
},
|
85 |
+
{
|
86 |
+
"name": "ampproject/optimizer",
|
87 |
+
"version": "2.0.x-dev",
|
88 |
+
"version_normalized": "2.0.9999999.9999999-dev",
|
89 |
+
"dist": {
|
90 |
+
"type": "path",
|
91 |
+
"url": "lib/optimizer",
|
92 |
+
"reference": "d4658dac3e58a9377314cb340f8cafe3b892d06f"
|
93 |
+
},
|
94 |
+
"require": {
|
95 |
+
"ampproject/common": "*",
|
96 |
+
"ext-dom": "*",
|
97 |
+
"ext-iconv": "*",
|
98 |
+
"ext-libxml": "*",
|
99 |
+
"php": "^5.6 || ^7.0",
|
100 |
+
"php-parallel-lint/php-parallel-lint": "^1.2"
|
101 |
+
},
|
102 |
+
"require-dev": {
|
103 |
+
"civicrm/composer-downloads-plugin": "^2.1",
|
104 |
+
"dealerdirect/phpcodesniffer-composer-installer": "0.7.0",
|
105 |
+
"ext-zip": "*",
|
106 |
+
"phpcompatibility/phpcompatibility-wp": "2.1.0",
|
107 |
+
"roave/security-advisories": "dev-master",
|
108 |
+
"sirbrillig/phpcs-variable-analysis": "2.8.3",
|
109 |
+
"squizlabs/php_codesniffer": "^3"
|
110 |
+
},
|
111 |
+
"suggest": {
|
112 |
+
"ext-json": "Provides native implementation of json_encode()/json_decode()."
|
113 |
+
},
|
114 |
+
"type": "library",
|
115 |
+
"extra": {
|
116 |
+
"downloads": {
|
117 |
+
"phpstan": {
|
118 |
+
"url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar",
|
119 |
+
"path": "vendor/bin/phpstan",
|
120 |
+
"type": "phar"
|
121 |
+
}
|
122 |
+
}
|
123 |
+
},
|
124 |
+
"installation-source": "dist",
|
125 |
+
"autoload": {
|
126 |
+
"psr-4": {
|
127 |
+
"AmpProject\\Optimizer\\": "src/"
|
128 |
+
}
|
129 |
+
},
|
130 |
+
"autoload-dev": {
|
131 |
+
"psr-4": {
|
132 |
+
"AmpProject\\Optimizer\\Tests\\": "tests/src/"
|
133 |
+
}
|
134 |
+
},
|
135 |
+
"scripts": {
|
136 |
+
"cbf": [
|
137 |
+
"phpcbf"
|
138 |
+
],
|
139 |
+
"cs": [
|
140 |
+
"if [ -z $TEST_SKIP_PHPCS ]; then phpcs; fi"
|
141 |
+
],
|
142 |
+
"lint": [
|
143 |
+
"if [ -z $TEST_SKIP_LINTING ]; then parallel-lint -j 10 --colors --exclude vendor .; fi"
|
144 |
+
],
|
145 |
+
"post-update-cmd": [
|
146 |
+
"@update-test-specs",
|
147 |
+
"bin/sync-amp-runtime-local-fallback-resources.php"
|
148 |
+
],
|
149 |
+
"test": [
|
150 |
+
"@lint",
|
151 |
+
"@unit",
|
152 |
+
"@cs",
|
153 |
+
"@analyze"
|
154 |
+
],
|
155 |
+
"analyze": [
|
156 |
+
"if [ -z $TEST_SKIP_PHPSTAN ]; then phpstan --version; phpstan analyze --ansi; fi"
|
157 |
+
],
|
158 |
+
"unit": [
|
159 |
+
"if [ -z $TEST_SKIP_PHPUNIT ]; then phpunit --colors=always; fi"
|
160 |
+
],
|
161 |
+
"update-test-specs": [
|
162 |
+
"rm -rf tests/spec && bin/sync-amp-toolbox-test-suite.php"
|
163 |
+
]
|
164 |
+
},
|
165 |
+
"license": [
|
166 |
+
"MIT"
|
167 |
],
|
168 |
+
"description": "PHP library for optimizing AMP pages.",
|
169 |
+
"transport-options": {
|
170 |
+
"symlink": true,
|
171 |
+
"relative": true
|
172 |
+
},
|
173 |
+
"install-path": "../ampproject/optimizer"
|
174 |
+
},
|
175 |
+
{
|
176 |
+
"name": "fasterimage/fasterimage",
|
177 |
+
"version": "v1.5.0",
|
178 |
+
"version_normalized": "1.5.0.0",
|
179 |
+
"source": {
|
180 |
+
"type": "git",
|
181 |
+
"url": "https://github.com/willwashburn/fasterimage.git",
|
182 |
+
"reference": "42d125a15dc124520aff2157bbed9a4b2d4f310a"
|
183 |
+
},
|
184 |
+
"dist": {
|
185 |
+
"type": "zip",
|
186 |
+
"url": "https://api.github.com/repos/willwashburn/fasterimage/zipball/42d125a15dc124520aff2157bbed9a4b2d4f310a",
|
187 |
+
"reference": "42d125a15dc124520aff2157bbed9a4b2d4f310a",
|
188 |
+
"shasum": ""
|
189 |
+
},
|
190 |
+
"require": {
|
191 |
+
"php": ">=5.4.0",
|
192 |
+
"willwashburn/stream": ">=1.0"
|
193 |
+
},
|
194 |
+
"require-dev": {
|
195 |
+
"php-coveralls/php-coveralls": "^2.1",
|
196 |
+
"php-mock/php-mock-phpunit": "^2.3",
|
197 |
+
"phpunit/phpunit": "~6.0"
|
198 |
+
},
|
199 |
+
"time": "2019-05-25T14:33:33+00:00",
|
200 |
+
"type": "library",
|
201 |
+
"installation-source": "dist",
|
202 |
+
"autoload": {
|
203 |
+
"classmap": [
|
204 |
+
"src"
|
205 |
+
]
|
206 |
+
},
|
207 |
+
"notification-url": "https://packagist.org/downloads/",
|
208 |
+
"license": [
|
209 |
+
"MIT"
|
210 |
],
|
211 |
+
"authors": [
|
212 |
+
{
|
213 |
+
"name": "Will Washburn",
|
214 |
+
"email": "will@tailwindapp.com"
|
215 |
+
},
|
216 |
+
{
|
217 |
+
"name": "Weston Ruter"
|
218 |
+
}
|
219 |
],
|
220 |
+
"description": "FasterImage finds the size or type of a set of images given their uris by fetching as little as needed, in parallel. Originally ported by Tom Moor.",
|
221 |
+
"homepage": "https://github.com/willwashburn/fasterimage",
|
222 |
+
"keywords": [
|
223 |
+
"fast image",
|
224 |
+
"faster image",
|
225 |
+
"fasterimage",
|
226 |
+
"fastimage",
|
227 |
+
"getimagesize",
|
228 |
+
"image size",
|
229 |
+
"parallel"
|
230 |
],
|
231 |
+
"support": {
|
232 |
+
"issues": "https://github.com/willwashburn/fasterimage/issues",
|
233 |
+
"source": "https://github.com/willwashburn/fasterimage/tree/master"
|
234 |
+
},
|
235 |
+
"install-path": "../fasterimage/fasterimage"
|
236 |
+
},
|
237 |
+
{
|
238 |
+
"name": "php-parallel-lint/php-parallel-lint",
|
239 |
+
"version": "v1.2.0",
|
240 |
+
"version_normalized": "1.2.0.0",
|
241 |
+
"source": {
|
242 |
+
"type": "git",
|
243 |
+
"url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
|
244 |
+
"reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca"
|
245 |
+
},
|
246 |
+
"dist": {
|
247 |
+
"type": "zip",
|
248 |
+
"url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/474f18bc6cc6aca61ca40bfab55139de614e51ca",
|
249 |
+
"reference": "474f18bc6cc6aca61ca40bfab55139de614e51ca",
|
250 |
+
"shasum": ""
|
251 |
+
},
|
252 |
+
"require": {
|
253 |
+
"ext-json": "*",
|
254 |
+
"php": ">=5.4.0"
|
255 |
+
},
|
256 |
+
"replace": {
|
257 |
+
"grogy/php-parallel-lint": "*",
|
258 |
+
"jakub-onderka/php-parallel-lint": "*"
|
259 |
+
},
|
260 |
+
"require-dev": {
|
261 |
+
"nette/tester": "^1.3 || ^2.0",
|
262 |
+
"php-parallel-lint/php-console-highlighter": "~0.3",
|
263 |
+
"squizlabs/php_codesniffer": "~3.0"
|
264 |
+
},
|
265 |
+
"suggest": {
|
266 |
+
"php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
|
267 |
+
},
|
268 |
+
"time": "2020-04-04T12:18:32+00:00",
|
269 |
+
"bin": [
|
270 |
+
"parallel-lint"
|
271 |
+
],
|
272 |
+
"type": "library",
|
273 |
+
"installation-source": "dist",
|
274 |
+
"autoload": {
|
275 |
+
"classmap": [
|
276 |
+
"./"
|
277 |
+
]
|
278 |
+
},
|
279 |
+
"notification-url": "https://packagist.org/downloads/",
|
280 |
+
"license": [
|
281 |
+
"BSD-2-Clause"
|
282 |
+
],
|
283 |
+
"authors": [
|
284 |
+
{
|
285 |
+
"name": "Jakub Onderka",
|
286 |
+
"email": "ahoj@jakubonderka.cz"
|
287 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
],
|
289 |
+
"description": "This tool check syntax of PHP files about 20x faster than serial check.",
|
290 |
+
"homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
|
291 |
+
"support": {
|
292 |
+
"issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
|
293 |
+
"source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/master"
|
294 |
+
},
|
295 |
+
"install-path": "../php-parallel-lint/php-parallel-lint"
|
296 |
+
},
|
297 |
+
{
|
298 |
+
"name": "sabberworm/php-css-parser",
|
299 |
+
"version": "dev-master",
|
300 |
+
"version_normalized": "dev-master",
|
301 |
+
"source": {
|
302 |
+
"type": "git",
|
303 |
+
"url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
|
304 |
+
"reference": "bfdd976"
|
305 |
+
},
|
306 |
+
"dist": {
|
307 |
+
"type": "zip",
|
308 |
+
"url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/bfdd976",
|
309 |
+
"reference": "bfdd976",
|
310 |
+
"shasum": ""
|
311 |
+
},
|
312 |
+
"require": {
|
313 |
+
"php": ">=5.3.2"
|
314 |
+
},
|
315 |
+
"require-dev": {
|
316 |
+
"codacy/coverage": "^1.4",
|
317 |
+
"phpunit/phpunit": "^4.8.36"
|
318 |
+
},
|
319 |
+
"time": "2020-10-31T09:42:15+00:00",
|
320 |
+
"default-branch": true,
|
321 |
+
"type": "library",
|
322 |
+
"extra": {
|
323 |
+
"patches_applied": {
|
324 |
+
"Add additional validation for size unit <https://github.com/sabberworm/PHP-CSS-Parser/pull/193>": "https://github.com/sabberworm/PHP-CSS-Parser/compare/3bc5ded67d77a52b81608cfc97f23b1bb0678e2f%5E...468da3441945e9c1bf402a3340b1d8326723f7d9.patch",
|
325 |
+
"Validate name-start code points for identifier <https://github.com/sabberworm/PHP-CSS-Parser/pull/185>": "https://github.com/sabberworm/PHP-CSS-Parser/compare/d42b64793f2edaffeb663c63e9de79069cdc0831%5E...113df5d55e94e21c6402021dfa959924941d4c29.patch",
|
326 |
+
"Fix parsing CSS selectors which contain commas <https://github.com/westonruter/PHP-CSS-Parser/pull/1>": "https://github.com/westonruter/PHP-CSS-Parser/compare/master...10a2501c119abafced3e4014aa3c0a3453a86f67.patch"
|
327 |
+
}
|
328 |
+
},
|
329 |
+
"installation-source": "source",
|
330 |
+
"autoload": {
|
331 |
+
"psr-4": {
|
332 |
+
"Sabberworm\\CSS\\": "lib/Sabberworm/CSS/"
|
333 |
+
}
|
334 |
+
},
|
335 |
+
"license": [
|
336 |
+
"MIT"
|
337 |
],
|
338 |
+
"authors": [
|
339 |
+
{
|
340 |
+
"name": "Raphael Schweikert"
|
341 |
+
}
|
342 |
],
|
343 |
+
"description": "Parser for CSS Files written in PHP",
|
344 |
+
"homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser",
|
345 |
+
"keywords": [
|
346 |
+
"css",
|
347 |
+
"parser",
|
348 |
+
"stylesheet"
|
349 |
],
|
350 |
+
"install-path": "../sabberworm/php-css-parser"
|
351 |
+
},
|
352 |
+
{
|
353 |
+
"name": "willwashburn/stream",
|
354 |
+
"version": "v1.0.0",
|
355 |
+
"version_normalized": "1.0.0.0",
|
356 |
+
"source": {
|
357 |
+
"type": "git",
|
358 |
+
"url": "https://github.com/willwashburn/stream.git",
|
359 |
+
"reference": "345b3062493e3899d987dbdd1fec1c13ee28c903"
|
360 |
+
},
|
361 |
+
"dist": {
|
362 |
+
"type": "zip",
|
363 |
+
"url": "https://api.github.com/repos/willwashburn/stream/zipball/345b3062493e3899d987dbdd1fec1c13ee28c903",
|
364 |
+
"reference": "345b3062493e3899d987dbdd1fec1c13ee28c903",
|
365 |
+
"shasum": ""
|
366 |
+
},
|
367 |
+
"require": {
|
368 |
+
"php": ">=5.4.0"
|
369 |
+
},
|
370 |
+
"require-dev": {
|
371 |
+
"mockery/mockery": "~0.9",
|
372 |
+
"phpunit/phpunit": "~4.0"
|
373 |
+
},
|
374 |
+
"time": "2016-03-15T10:54:35+00:00",
|
375 |
+
"type": "library",
|
376 |
+
"installation-source": "dist",
|
377 |
+
"autoload": {
|
378 |
+
"psr-4": {
|
379 |
+
"WillWashburn\\": "src/"
|
380 |
+
}
|
381 |
+
},
|
382 |
+
"notification-url": "https://packagist.org/downloads/",
|
383 |
+
"license": [
|
384 |
+
"MIT"
|
385 |
],
|
386 |
+
"authors": [
|
387 |
+
{
|
388 |
+
"name": "Will Washburn",
|
389 |
+
"email": "will.washburn@gmail.com"
|
390 |
+
}
|
391 |
],
|
392 |
+
"description": "model a sequence of data elements made available over time ",
|
393 |
+
"homepage": "https://github.com/willwashburn/stream",
|
394 |
+
"keywords": [
|
395 |
+
"peek",
|
396 |
+
"read",
|
397 |
+
"stream",
|
398 |
+
"streamable"
|
399 |
],
|
400 |
+
"support": {
|
401 |
+
"issues": "https://github.com/willwashburn/stream/issues",
|
402 |
+
"source": "https://github.com/willwashburn/stream/tree/master"
|
403 |
+
},
|
404 |
+
"install-path": "../willwashburn/stream"
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
}
|
406 |
+
],
|
407 |
+
"dev": false,
|
408 |
+
"dev-package-names": []
|
409 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/installed.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php return array (
|
2 |
+
'root' =>
|
3 |
+
array (
|
4 |
+
'pretty_version' => '2.0.x-dev',
|
5 |
+
'version' => '2.0.9999999.9999999-dev',
|
6 |
+
'aliases' =>
|
7 |
+
array (
|
8 |
+
),
|
9 |
+
'reference' => '2acc034f6591038b6ebdc5a7d45f89ebd814d1b8',
|
10 |
+
'name' => 'ampproject/amp-wp',
|
11 |
+
),
|
12 |
+
'versions' =>
|
13 |
+
array (
|
14 |
+
'ampproject/amp-wp' =>
|
15 |
+
array (
|
16 |
+
'pretty_version' => '2.0.x-dev',
|
17 |
+
'version' => '2.0.9999999.9999999-dev',
|
18 |
+
'aliases' =>
|
19 |
+
array (
|
20 |
+
),
|
21 |
+
'reference' => '2acc034f6591038b6ebdc5a7d45f89ebd814d1b8',
|
22 |
+
),
|
23 |
+
'ampproject/common' =>
|
24 |
+
array (
|
25 |
+
'pretty_version' => '2.0.x-dev',
|
26 |
+
'version' => '2.0.9999999.9999999-dev',
|
27 |
+
'aliases' =>
|
28 |
+
array (
|
29 |
+
),
|
30 |
+
'reference' => '9ae4d10f085d41c46ae00ee0c32db2f96165a877',
|
31 |
+
),
|
32 |
+
'ampproject/optimizer' =>
|
33 |
+
array (
|
34 |
+
'pretty_version' => '2.0.x-dev',
|
35 |
+
'version' => '2.0.9999999.9999999-dev',
|
36 |
+
'aliases' =>
|
37 |
+
array (
|
38 |
+
),
|
39 |
+
'reference' => 'd4658dac3e58a9377314cb340f8cafe3b892d06f',
|
40 |
+
),
|
41 |
+
'fasterimage/fasterimage' =>
|
42 |
+
array (
|
43 |
+
'pretty_version' => 'v1.5.0',
|
44 |
+
'version' => '1.5.0.0',
|
45 |
+
'aliases' =>
|
46 |
+
array (
|
47 |
+
),
|
48 |
+
'reference' => '42d125a15dc124520aff2157bbed9a4b2d4f310a',
|
49 |
+
),
|
50 |
+
'grogy/php-parallel-lint' =>
|
51 |
+
array (
|
52 |
+
'replaced' =>
|
53 |
+
array (
|
54 |
+
0 => '*',
|
55 |
+
),
|
56 |
+
),
|
57 |
+
'jakub-onderka/php-parallel-lint' =>
|
58 |
+
array (
|
59 |
+
'replaced' =>
|
60 |
+
array (
|
61 |
+
0 => '*',
|
62 |
+
),
|
63 |
+
),
|
64 |
+
'php-parallel-lint/php-parallel-lint' =>
|
65 |
+
array (
|
66 |
+
'pretty_version' => 'v1.2.0',
|
67 |
+
'version' => '1.2.0.0',
|
68 |
+
'aliases' =>
|
69 |
+
array (
|
70 |
+
),
|
71 |
+
'reference' => '474f18bc6cc6aca61ca40bfab55139de614e51ca',
|
72 |
+
),
|
73 |
+
'sabberworm/php-css-parser' =>
|
74 |
+
array (
|
75 |
+
'pretty_version' => 'dev-master',
|
76 |
+
'version' => 'dev-master',
|
77 |
+
'aliases' =>
|
78 |
+
array (
|
79 |
+
0 => '9999999-dev',
|
80 |
+
),
|
81 |
+
'reference' => 'bfdd976',
|
82 |
+
),
|
83 |
+
'willwashburn/stream' =>
|
84 |
+
array (
|
85 |
+
'pretty_version' => 'v1.0.0',
|
86 |
+
'version' => '1.0.0.0',
|
87 |
+
'aliases' =>
|
88 |
+
array (
|
89 |
+
),
|
90 |
+
'reference' => '345b3062493e3899d987dbdd1fec1c13ee28c903',
|
91 |
+
),
|
92 |
+
),
|
93 |
+
);
|
vendor/composer/platform_check.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// platform_check.php @generated by Composer
|
4 |
+
|
5 |
+
$issues = array();
|
6 |
+
|
7 |
+
if (!(PHP_VERSION_ID >= 50600)) {
|
8 |
+
$issues[] = 'Your Composer dependencies require a PHP version ">= 5.6.0". You are running ' . PHP_VERSION . '.';
|
9 |
+
}
|
10 |
+
|
11 |
+
if ($issues) {
|
12 |
+
if (!headers_sent()) {
|
13 |
+
header('HTTP/1.1 500 Internal Server Error');
|
14 |
+
}
|
15 |
+
if (!ini_get('display_errors')) {
|
16 |
+
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
17 |
+
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
18 |
+
} elseif (!headers_sent()) {
|
19 |
+
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
trigger_error(
|
23 |
+
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
24 |
+
E_USER_ERROR
|
25 |
+
);
|
26 |
+
}
|