Changeset 3450714
- Timestamp:
- 01/30/2026 09:24:49 PM (5 weeks ago)
- Location:
- frontpup
- Files:
-
- 968 added
- 9 edited
- 1 copied
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (added)
-
assets/screenshot-3.png (added)
-
assets/screenshot-4.png (added)
-
assets/screenshot-5.png (added)
-
tags/1.1 (copied) (copied from frontpup/trunk)
-
tags/1.1/admin (added)
-
tags/1.1/admin/base.class.php (added)
-
tags/1.1/admin/cache-control.class.php (added)
-
tags/1.1/admin/clear-cache.class.php (added)
-
tags/1.1/admin/js (added)
-
tags/1.1/admin/js/clear-cache.js (added)
-
tags/1.1/admin/views (added)
-
tags/1.1/admin/views/cache-control-settings.php (added)
-
tags/1.1/admin/views/clear-cache-settings.php (added)
-
tags/1.1/admin/views/welcome.php (added)
-
tags/1.1/admin/welcome.class.php (added)
-
tags/1.1/aws (added)
-
tags/1.1/aws/Aws (added)
-
tags/1.1/aws/Aws/AbstractConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/Api (added)
-
tags/1.1/aws/Aws/Api/AbstractModel.php (added)
-
tags/1.1/aws/Aws/Api/ApiProvider.php (added)
-
tags/1.1/aws/Aws/Api/DateTimeResult.php (added)
-
tags/1.1/aws/Aws/Api/DocModel.php (added)
-
tags/1.1/aws/Aws/Api/ErrorParser (added)
-
tags/1.1/aws/Aws/Api/ErrorParser/AbstractErrorParser.php (added)
-
tags/1.1/aws/Aws/Api/ErrorParser/JsonParserTrait.php (added)
-
tags/1.1/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php (added)
-
tags/1.1/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php (added)
-
tags/1.1/aws/Aws/Api/ErrorParser/XmlErrorParser.php (added)
-
tags/1.1/aws/Aws/Api/ListShape.php (added)
-
tags/1.1/aws/Aws/Api/MapShape.php (added)
-
tags/1.1/aws/Aws/Api/Operation.php (added)
-
tags/1.1/aws/Aws/Api/Parser (added)
-
tags/1.1/aws/Aws/Api/Parser/AbstractParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/AbstractRestParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/Crc32ValidatingParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/DecodingEventStreamIterator.php (added)
-
tags/1.1/aws/Aws/Api/Parser/EventParsingIterator.php (added)
-
tags/1.1/aws/Aws/Api/Parser/Exception (added)
-
tags/1.1/aws/Aws/Api/Parser/Exception/ParserException.php (added)
-
tags/1.1/aws/Aws/Api/Parser/JsonParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/JsonRpcParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/MetadataParserTrait.php (added)
-
tags/1.1/aws/Aws/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php (added)
-
tags/1.1/aws/Aws/Api/Parser/PayloadParserTrait.php (added)
-
tags/1.1/aws/Aws/Api/Parser/QueryParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/RestJsonParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/RestXmlParser.php (added)
-
tags/1.1/aws/Aws/Api/Parser/XmlParser.php (added)
-
tags/1.1/aws/Aws/Api/Serializer (added)
-
tags/1.1/aws/Aws/Api/Serializer/Ec2ParamBuilder.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/JsonBody.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/JsonRpcSerializer.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/QueryParamBuilder.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/QuerySerializer.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/RestJsonSerializer.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/RestSerializer.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/RestXmlSerializer.php (added)
-
tags/1.1/aws/Aws/Api/Serializer/XmlBody.php (added)
-
tags/1.1/aws/Aws/Api/Service.php (added)
-
tags/1.1/aws/Aws/Api/Shape.php (added)
-
tags/1.1/aws/Aws/Api/ShapeMap.php (added)
-
tags/1.1/aws/Aws/Api/StructureShape.php (added)
-
tags/1.1/aws/Aws/Api/SupportedProtocols.php (added)
-
tags/1.1/aws/Aws/Api/TimestampShape.php (added)
-
tags/1.1/aws/Aws/Api/Validator.php (added)
-
tags/1.1/aws/Aws/Auth (added)
-
tags/1.1/aws/Aws/Auth/AuthSchemeResolver.php (added)
-
tags/1.1/aws/Aws/Auth/AuthSchemeResolverInterface.php (added)
-
tags/1.1/aws/Aws/Auth/AuthSelectionMiddleware.php (added)
-
tags/1.1/aws/Aws/Auth/Exception (added)
-
tags/1.1/aws/Aws/Auth/Exception/UnresolvedAuthSchemeException.php (added)
-
tags/1.1/aws/Aws/AwsClient.php (added)
-
tags/1.1/aws/Aws/AwsClientInterface.php (added)
-
tags/1.1/aws/Aws/AwsClientTrait.php (added)
-
tags/1.1/aws/Aws/CacheInterface.php (added)
-
tags/1.1/aws/Aws/ClientResolver.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/Configuration.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/Exception (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php (added)
-
tags/1.1/aws/Aws/CloudFront (added)
-
tags/1.1/aws/Aws/CloudFront/CloudFrontClient.php (added)
-
tags/1.1/aws/Aws/CloudFront/CookieSigner.php (added)
-
tags/1.1/aws/Aws/CloudFront/Exception (added)
-
tags/1.1/aws/Aws/CloudFront/Exception/CloudFrontException.php (added)
-
tags/1.1/aws/Aws/CloudFront/Signer.php (added)
-
tags/1.1/aws/Aws/CloudFront/UrlSigner.php (added)
-
tags/1.1/aws/Aws/Command.php (added)
-
tags/1.1/aws/Aws/CommandInterface.php (added)
-
tags/1.1/aws/Aws/CommandPool.php (added)
-
tags/1.1/aws/Aws/Configuration (added)
-
tags/1.1/aws/Aws/Configuration/ConfigurationResolver.php (added)
-
tags/1.1/aws/Aws/ConfigurationProviderInterface.php (added)
-
tags/1.1/aws/Aws/Credentials (added)
-
tags/1.1/aws/Aws/Credentials/AssumeRoleCredentialProvider.php (added)
-
tags/1.1/aws/Aws/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php (added)
-
tags/1.1/aws/Aws/Credentials/CredentialProvider.php (added)
-
tags/1.1/aws/Aws/Credentials/CredentialSources.php (added)
-
tags/1.1/aws/Aws/Credentials/Credentials.php (added)
-
tags/1.1/aws/Aws/Credentials/CredentialsInterface.php (added)
-
tags/1.1/aws/Aws/Credentials/CredentialsUtils.php (added)
-
tags/1.1/aws/Aws/Credentials/EcsCredentialProvider.php (added)
-
tags/1.1/aws/Aws/Credentials/InstanceProfileProvider.php (added)
-
tags/1.1/aws/Aws/Credentials/LoginCredentialProvider.php (added)
-
tags/1.1/aws/Aws/DefaultsMode (added)
-
tags/1.1/aws/Aws/DefaultsMode/Configuration.php (added)
-
tags/1.1/aws/Aws/DefaultsMode/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/DefaultsMode/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/DefaultsMode/Exception (added)
-
tags/1.1/aws/Aws/DefaultsMode/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/DoctrineCacheAdapter.php (added)
-
tags/1.1/aws/Aws/Endpoint (added)
-
tags/1.1/aws/Aws/Endpoint/EndpointProvider.php (added)
-
tags/1.1/aws/Aws/Endpoint/Partition.php (added)
-
tags/1.1/aws/Aws/Endpoint/PartitionEndpointProvider.php (added)
-
tags/1.1/aws/Aws/Endpoint/PartitionInterface.php (added)
-
tags/1.1/aws/Aws/Endpoint/PatternEndpointProvider.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint/Configuration.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint/Exception (added)
-
tags/1.1/aws/Aws/Endpoint/UseDualstackEndpoint/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint/Configuration.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint/Exception (added)
-
tags/1.1/aws/Aws/Endpoint/UseFipsEndpoint/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/Configuration.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/EndpointList.php (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/Exception (added)
-
tags/1.1/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/EndpointParameterMiddleware.php (added)
-
tags/1.1/aws/Aws/EndpointV2 (added)
-
tags/1.1/aws/Aws/EndpointV2/EndpointDefinitionProvider.php (added)
-
tags/1.1/aws/Aws/EndpointV2/EndpointProviderV2.php (added)
-
tags/1.1/aws/Aws/EndpointV2/EndpointV2Middleware.php (added)
-
tags/1.1/aws/Aws/EndpointV2/EndpointV2SerializerTrait.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule/AbstractRule.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule/EndpointRule.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule/ErrorRule.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule/RuleCreator.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Rule/TreeRule.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Ruleset (added)
-
tags/1.1/aws/Aws/EndpointV2/Ruleset/Ruleset.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Ruleset/RulesetEndpoint.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Ruleset/RulesetParameter.php (added)
-
tags/1.1/aws/Aws/EndpointV2/Ruleset/RulesetStandardLibrary.php (added)
-
tags/1.1/aws/Aws/Exception (added)
-
tags/1.1/aws/Aws/Exception/AwsException.php (added)
-
tags/1.1/aws/Aws/Exception/CommonRuntimeException.php (added)
-
tags/1.1/aws/Aws/Exception/CouldNotCreateChecksumException.php (added)
-
tags/1.1/aws/Aws/Exception/CredentialsException.php (added)
-
tags/1.1/aws/Aws/Exception/CryptoException.php (added)
-
tags/1.1/aws/Aws/Exception/CryptoPolyfillException.php (added)
-
tags/1.1/aws/Aws/Exception/EventStreamDataException.php (added)
-
tags/1.1/aws/Aws/Exception/IncalculablePayloadException.php (added)
-
tags/1.1/aws/Aws/Exception/InvalidJsonException.php (added)
-
tags/1.1/aws/Aws/Exception/InvalidRegionException.php (added)
-
tags/1.1/aws/Aws/Exception/MultipartUploadException.php (added)
-
tags/1.1/aws/Aws/Exception/TokenException.php (added)
-
tags/1.1/aws/Aws/Exception/UnresolvedApiException.php (added)
-
tags/1.1/aws/Aws/Exception/UnresolvedEndpointException.php (added)
-
tags/1.1/aws/Aws/Exception/UnresolvedSignatureException.php (added)
-
tags/1.1/aws/Aws/Handler (added)
-
tags/1.1/aws/Aws/Handler/Guzzle (added)
-
tags/1.1/aws/Aws/Handler/Guzzle/GuzzleHandler.php (added)
-
tags/1.1/aws/Aws/Handler/GuzzleV6 (added)
-
tags/1.1/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php (added)
-
tags/1.1/aws/Aws/HandlerList.php (added)
-
tags/1.1/aws/Aws/HasDataTrait.php (added)
-
tags/1.1/aws/Aws/HasMonitoringEventsTrait.php (added)
-
tags/1.1/aws/Aws/HashInterface.php (added)
-
tags/1.1/aws/Aws/HashingStream.php (added)
-
tags/1.1/aws/Aws/History.php (added)
-
tags/1.1/aws/Aws/IdempotencyTokenMiddleware.php (added)
-
tags/1.1/aws/Aws/Identity (added)
-
tags/1.1/aws/Aws/Identity/AwsCredentialIdentity.php (added)
-
tags/1.1/aws/Aws/Identity/BearerTokenIdentity.php (added)
-
tags/1.1/aws/Aws/Identity/IdentityInterface.php (added)
-
tags/1.1/aws/Aws/Identity/S3 (added)
-
tags/1.1/aws/Aws/Identity/S3/S3ExpressIdentity.php (added)
-
tags/1.1/aws/Aws/Identity/S3/S3ExpressIdentityProvider.php (added)
-
tags/1.1/aws/Aws/InputValidationMiddleware.php (added)
-
tags/1.1/aws/Aws/JsonCompiler.php (added)
-
tags/1.1/aws/Aws/LruArrayCache.php (added)
-
tags/1.1/aws/Aws/MetricsBuilder.php (added)
-
tags/1.1/aws/Aws/Middleware.php (added)
-
tags/1.1/aws/Aws/MockHandler.php (added)
-
tags/1.1/aws/Aws/MonitoringEventsInterface.php (added)
-
tags/1.1/aws/Aws/MultiRegionClient.php (added)
-
tags/1.1/aws/Aws/PhpHash.php (added)
-
tags/1.1/aws/Aws/PresignUrlMiddleware.php (added)
-
tags/1.1/aws/Aws/Psr16CacheAdapter.php (added)
-
tags/1.1/aws/Aws/PsrCacheAdapter.php (added)
-
tags/1.1/aws/Aws/QueryCompatibleInputMiddleware.php (added)
-
tags/1.1/aws/Aws/RequestCompressionMiddleware.php (added)
-
tags/1.1/aws/Aws/ResponseContainerInterface.php (added)
-
tags/1.1/aws/Aws/Result.php (added)
-
tags/1.1/aws/Aws/ResultInterface.php (added)
-
tags/1.1/aws/Aws/ResultPaginator.php (added)
-
tags/1.1/aws/Aws/Retry (added)
-
tags/1.1/aws/Aws/Retry/Configuration.php (added)
-
tags/1.1/aws/Aws/Retry/ConfigurationInterface.php (added)
-
tags/1.1/aws/Aws/Retry/ConfigurationProvider.php (added)
-
tags/1.1/aws/Aws/Retry/Exception (added)
-
tags/1.1/aws/Aws/Retry/Exception/ConfigurationException.php (added)
-
tags/1.1/aws/Aws/Retry/QuotaManager.php (added)
-
tags/1.1/aws/Aws/Retry/RateLimiter.php (added)
-
tags/1.1/aws/Aws/Retry/RetryHelperTrait.php (added)
-
tags/1.1/aws/Aws/RetryMiddleware.php (added)
-
tags/1.1/aws/Aws/RetryMiddlewareV2.php (added)
-
tags/1.1/aws/Aws/Sdk.php (added)
-
tags/1.1/aws/Aws/Signature (added)
-
tags/1.1/aws/Aws/Signature/AnonymousSignature.php (added)
-
tags/1.1/aws/Aws/Signature/DpopSignature.php (added)
-
tags/1.1/aws/Aws/Signature/S3ExpressSignature.php (added)
-
tags/1.1/aws/Aws/Signature/S3SignatureV4.php (added)
-
tags/1.1/aws/Aws/Signature/SignatureInterface.php (added)
-
tags/1.1/aws/Aws/Signature/SignatureProvider.php (added)
-
tags/1.1/aws/Aws/Signature/SignatureTrait.php (added)
-
tags/1.1/aws/Aws/Signature/SignatureV4.php (added)
-
tags/1.1/aws/Aws/StreamRequestPayloadMiddleware.php (added)
-
tags/1.1/aws/Aws/Token (added)
-
tags/1.1/aws/Aws/Token/BearerTokenAuthorization.php (added)
-
tags/1.1/aws/Aws/Token/BedrockTokenProvider.php (added)
-
tags/1.1/aws/Aws/Token/ParsesIniTrait.php (added)
-
tags/1.1/aws/Aws/Token/RefreshableTokenProviderInterface.php (added)
-
tags/1.1/aws/Aws/Token/SsoToken.php (added)
-
tags/1.1/aws/Aws/Token/SsoTokenProvider.php (added)
-
tags/1.1/aws/Aws/Token/Token.php (added)
-
tags/1.1/aws/Aws/Token/TokenAuthorization.php (added)
-
tags/1.1/aws/Aws/Token/TokenInterface.php (added)
-
tags/1.1/aws/Aws/Token/TokenProvider.php (added)
-
tags/1.1/aws/Aws/Token/TokenSource.php (added)
-
tags/1.1/aws/Aws/TraceMiddleware.php (added)
-
tags/1.1/aws/Aws/UserAgentMiddleware.php (added)
-
tags/1.1/aws/Aws/Waiter.php (added)
-
tags/1.1/aws/Aws/WrappedHttpHandler.php (added)
-
tags/1.1/aws/Aws/cleanup.php (added)
-
tags/1.1/aws/Aws/data (added)
-
tags/1.1/aws/Aws/data/aliases.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-01-28/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-01/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-08-20/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/smoke.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2019-03-26/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31 (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/api-2.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/endpoint-tests-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/paginators-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/smoke.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/waiters-1.json.php (added)
-
tags/1.1/aws/Aws/data/cloudfront/2020-05-31/waiters-2.json.php (added)
-
tags/1.1/aws/Aws/data/endpoints.json.php (added)
-
tags/1.1/aws/Aws/data/endpoints_prefix_history.json.php (added)
-
tags/1.1/aws/Aws/data/grandfathered-services.json.php (added)
-
tags/1.1/aws/Aws/data/manifest.json.php (added)
-
tags/1.1/aws/Aws/data/partitions.json.php (added)
-
tags/1.1/aws/Aws/data/sdk-default-configuration.json.php (added)
-
tags/1.1/aws/Aws/functions.php (added)
-
tags/1.1/aws/CHANGELOG.md (added)
-
tags/1.1/aws/GuzzleHttp (added)
-
tags/1.1/aws/GuzzleHttp/BodySummarizer.php (added)
-
tags/1.1/aws/GuzzleHttp/BodySummarizerInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Client.php (added)
-
tags/1.1/aws/GuzzleHttp/ClientInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/ClientTrait.php (added)
-
tags/1.1/aws/GuzzleHttp/Cookie (added)
-
tags/1.1/aws/GuzzleHttp/Cookie/CookieJar.php (added)
-
tags/1.1/aws/GuzzleHttp/Cookie/CookieJarInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Cookie/FileCookieJar.php (added)
-
tags/1.1/aws/GuzzleHttp/Cookie/SessionCookieJar.php (added)
-
tags/1.1/aws/GuzzleHttp/Cookie/SetCookie.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception (added)
-
tags/1.1/aws/GuzzleHttp/Exception/BadResponseException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/ClientException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/ConnectException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/GuzzleException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/InvalidArgumentException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/RequestException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/ServerException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/TooManyRedirectsException.php (added)
-
tags/1.1/aws/GuzzleHttp/Exception/TransferException.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler (added)
-
tags/1.1/aws/GuzzleHttp/Handler/CurlFactory.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/CurlFactoryInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/CurlHandler.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/CurlMultiHandler.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/EasyHandle.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/HeaderProcessor.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/MockHandler.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/Proxy.php (added)
-
tags/1.1/aws/GuzzleHttp/Handler/StreamHandler.php (added)
-
tags/1.1/aws/GuzzleHttp/HandlerStack.php (added)
-
tags/1.1/aws/GuzzleHttp/MessageFormatter.php (added)
-
tags/1.1/aws/GuzzleHttp/MessageFormatterInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Middleware.php (added)
-
tags/1.1/aws/GuzzleHttp/Pool.php (added)
-
tags/1.1/aws/GuzzleHttp/PrepareBodyMiddleware.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise (added)
-
tags/1.1/aws/GuzzleHttp/Promise/AggregateException.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/CancellationException.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Coroutine.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Create.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Each.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/EachPromise.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/FulfilledPromise.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Is.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Promise.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/PromiseInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/PromisorInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/RejectedPromise.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/RejectionException.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/TaskQueue.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/TaskQueueInterface.php (added)
-
tags/1.1/aws/GuzzleHttp/Promise/Utils.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7 (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/AppendStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/BufferStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/CachingStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/DroppingStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Exception (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Exception/MalformedUriException.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/FnStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Header.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/HttpFactory.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/InflateStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/LazyOpenStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/LimitStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Message.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/MessageTrait.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/MimeType.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/MultipartStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/NoSeekStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/PumpStream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Query.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Request.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Response.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Rfc7230.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/ServerRequest.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Stream.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/StreamWrapper.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/UploadedFile.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Uri.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/UriComparator.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/UriNormalizer.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/UriResolver.php (added)
-
tags/1.1/aws/GuzzleHttp/Psr7/Utils.php (added)
-
tags/1.1/aws/GuzzleHttp/RedirectMiddleware.php (added)
-
tags/1.1/aws/GuzzleHttp/RequestOptions.php (added)
-
tags/1.1/aws/GuzzleHttp/RetryMiddleware.php (added)
-
tags/1.1/aws/GuzzleHttp/TransferStats.php (added)
-
tags/1.1/aws/GuzzleHttp/Utils.php (added)
-
tags/1.1/aws/GuzzleHttp/functions.php (added)
-
tags/1.1/aws/GuzzleHttp/functions_include.php (added)
-
tags/1.1/aws/JmesPath (added)
-
tags/1.1/aws/JmesPath/AstRuntime.php (added)
-
tags/1.1/aws/JmesPath/CompilerRuntime.php (added)
-
tags/1.1/aws/JmesPath/DebugRuntime.php (added)
-
tags/1.1/aws/JmesPath/Env.php (added)
-
tags/1.1/aws/JmesPath/FnDispatcher.php (added)
-
tags/1.1/aws/JmesPath/JmesPath.php (added)
-
tags/1.1/aws/JmesPath/Lexer.php (added)
-
tags/1.1/aws/JmesPath/Parser.php (added)
-
tags/1.1/aws/JmesPath/SyntaxErrorException.php (added)
-
tags/1.1/aws/JmesPath/TreeCompiler.php (added)
-
tags/1.1/aws/JmesPath/TreeInterpreter.php (added)
-
tags/1.1/aws/JmesPath/Utils.php (added)
-
tags/1.1/aws/LICENSE (added)
-
tags/1.1/aws/NOTICE (added)
-
tags/1.1/aws/Psr (added)
-
tags/1.1/aws/Psr/Http (added)
-
tags/1.1/aws/Psr/Http/Client (added)
-
tags/1.1/aws/Psr/Http/Client/ClientExceptionInterface.php (added)
-
tags/1.1/aws/Psr/Http/Client/ClientInterface.php (added)
-
tags/1.1/aws/Psr/Http/Client/NetworkExceptionInterface.php (added)
-
tags/1.1/aws/Psr/Http/Client/RequestExceptionInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message (added)
-
tags/1.1/aws/Psr/Http/Message/MessageInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/RequestInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/ResponseInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/ServerRequestInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/StreamInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/UploadedFileInterface.php (added)
-
tags/1.1/aws/Psr/Http/Message/UriInterface.php (added)
-
tags/1.1/aws/README.md (added)
-
tags/1.1/aws/aws-autoloader.php (added)
-
tags/1.1/clear-cache.class.php (added)
-
tags/1.1/frontpup-admin.class.php (modified) (4 diffs)
-
tags/1.1/frontpup.class.php (modified) (1 diff)
-
tags/1.1/frontpup.php (modified) (3 diffs)
-
tags/1.1/images (added)
-
tags/1.1/images/frontpup-logo-225-160.png (added)
-
tags/1.1/readme.txt (modified) (2 diffs)
-
trunk/admin (added)
-
trunk/admin/base.class.php (added)
-
trunk/admin/cache-control.class.php (added)
-
trunk/admin/clear-cache.class.php (added)
-
trunk/admin/js (added)
-
trunk/admin/js/clear-cache.js (added)
-
trunk/admin/views (added)
-
trunk/admin/views/cache-control-settings.php (added)
-
trunk/admin/views/clear-cache-settings.php (added)
-
trunk/admin/views/welcome.php (added)
-
trunk/admin/welcome.class.php (added)
-
trunk/aws (added)
-
trunk/aws/Aws (added)
-
trunk/aws/Aws/AbstractConfigurationProvider.php (added)
-
trunk/aws/Aws/Api (added)
-
trunk/aws/Aws/Api/AbstractModel.php (added)
-
trunk/aws/Aws/Api/ApiProvider.php (added)
-
trunk/aws/Aws/Api/DateTimeResult.php (added)
-
trunk/aws/Aws/Api/DocModel.php (added)
-
trunk/aws/Aws/Api/ErrorParser (added)
-
trunk/aws/Aws/Api/ErrorParser/AbstractErrorParser.php (added)
-
trunk/aws/Aws/Api/ErrorParser/JsonParserTrait.php (added)
-
trunk/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php (added)
-
trunk/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php (added)
-
trunk/aws/Aws/Api/ErrorParser/XmlErrorParser.php (added)
-
trunk/aws/Aws/Api/ListShape.php (added)
-
trunk/aws/Aws/Api/MapShape.php (added)
-
trunk/aws/Aws/Api/Operation.php (added)
-
trunk/aws/Aws/Api/Parser (added)
-
trunk/aws/Aws/Api/Parser/AbstractParser.php (added)
-
trunk/aws/Aws/Api/Parser/AbstractRestParser.php (added)
-
trunk/aws/Aws/Api/Parser/Crc32ValidatingParser.php (added)
-
trunk/aws/Aws/Api/Parser/DecodingEventStreamIterator.php (added)
-
trunk/aws/Aws/Api/Parser/EventParsingIterator.php (added)
-
trunk/aws/Aws/Api/Parser/Exception (added)
-
trunk/aws/Aws/Api/Parser/Exception/ParserException.php (added)
-
trunk/aws/Aws/Api/Parser/JsonParser.php (added)
-
trunk/aws/Aws/Api/Parser/JsonRpcParser.php (added)
-
trunk/aws/Aws/Api/Parser/MetadataParserTrait.php (added)
-
trunk/aws/Aws/Api/Parser/NonSeekableStreamDecodingEventStreamIterator.php (added)
-
trunk/aws/Aws/Api/Parser/PayloadParserTrait.php (added)
-
trunk/aws/Aws/Api/Parser/QueryParser.php (added)
-
trunk/aws/Aws/Api/Parser/RestJsonParser.php (added)
-
trunk/aws/Aws/Api/Parser/RestXmlParser.php (added)
-
trunk/aws/Aws/Api/Parser/XmlParser.php (added)
-
trunk/aws/Aws/Api/Serializer (added)
-
trunk/aws/Aws/Api/Serializer/Ec2ParamBuilder.php (added)
-
trunk/aws/Aws/Api/Serializer/JsonBody.php (added)
-
trunk/aws/Aws/Api/Serializer/JsonRpcSerializer.php (added)
-
trunk/aws/Aws/Api/Serializer/QueryParamBuilder.php (added)
-
trunk/aws/Aws/Api/Serializer/QuerySerializer.php (added)
-
trunk/aws/Aws/Api/Serializer/RestJsonSerializer.php (added)
-
trunk/aws/Aws/Api/Serializer/RestSerializer.php (added)
-
trunk/aws/Aws/Api/Serializer/RestXmlSerializer.php (added)
-
trunk/aws/Aws/Api/Serializer/XmlBody.php (added)
-
trunk/aws/Aws/Api/Service.php (added)
-
trunk/aws/Aws/Api/Shape.php (added)
-
trunk/aws/Aws/Api/ShapeMap.php (added)
-
trunk/aws/Aws/Api/StructureShape.php (added)
-
trunk/aws/Aws/Api/SupportedProtocols.php (added)
-
trunk/aws/Aws/Api/TimestampShape.php (added)
-
trunk/aws/Aws/Api/Validator.php (added)
-
trunk/aws/Aws/Auth (added)
-
trunk/aws/Aws/Auth/AuthSchemeResolver.php (added)
-
trunk/aws/Aws/Auth/AuthSchemeResolverInterface.php (added)
-
trunk/aws/Aws/Auth/AuthSelectionMiddleware.php (added)
-
trunk/aws/Aws/Auth/Exception (added)
-
trunk/aws/Aws/Auth/Exception/UnresolvedAuthSchemeException.php (added)
-
trunk/aws/Aws/AwsClient.php (added)
-
trunk/aws/Aws/AwsClientInterface.php (added)
-
trunk/aws/Aws/AwsClientTrait.php (added)
-
trunk/aws/Aws/CacheInterface.php (added)
-
trunk/aws/Aws/ClientResolver.php (added)
-
trunk/aws/Aws/ClientSideMonitoring (added)
-
trunk/aws/Aws/ClientSideMonitoring/AbstractMonitoringMiddleware.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/ApiCallAttemptMonitoringMiddleware.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/Configuration.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/ConfigurationInterface.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/ConfigurationProvider.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/Exception (added)
-
trunk/aws/Aws/ClientSideMonitoring/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/ClientSideMonitoring/MonitoringMiddlewareInterface.php (added)
-
trunk/aws/Aws/CloudFront (added)
-
trunk/aws/Aws/CloudFront/CloudFrontClient.php (added)
-
trunk/aws/Aws/CloudFront/CookieSigner.php (added)
-
trunk/aws/Aws/CloudFront/Exception (added)
-
trunk/aws/Aws/CloudFront/Exception/CloudFrontException.php (added)
-
trunk/aws/Aws/CloudFront/Signer.php (added)
-
trunk/aws/Aws/CloudFront/UrlSigner.php (added)
-
trunk/aws/Aws/Command.php (added)
-
trunk/aws/Aws/CommandInterface.php (added)
-
trunk/aws/Aws/CommandPool.php (added)
-
trunk/aws/Aws/Configuration (added)
-
trunk/aws/Aws/Configuration/ConfigurationResolver.php (added)
-
trunk/aws/Aws/ConfigurationProviderInterface.php (added)
-
trunk/aws/Aws/Credentials (added)
-
trunk/aws/Aws/Credentials/AssumeRoleCredentialProvider.php (added)
-
trunk/aws/Aws/Credentials/AssumeRoleWithWebIdentityCredentialProvider.php (added)
-
trunk/aws/Aws/Credentials/CredentialProvider.php (added)
-
trunk/aws/Aws/Credentials/CredentialSources.php (added)
-
trunk/aws/Aws/Credentials/Credentials.php (added)
-
trunk/aws/Aws/Credentials/CredentialsInterface.php (added)
-
trunk/aws/Aws/Credentials/CredentialsUtils.php (added)
-
trunk/aws/Aws/Credentials/EcsCredentialProvider.php (added)
-
trunk/aws/Aws/Credentials/InstanceProfileProvider.php (added)
-
trunk/aws/Aws/Credentials/LoginCredentialProvider.php (added)
-
trunk/aws/Aws/DefaultsMode (added)
-
trunk/aws/Aws/DefaultsMode/Configuration.php (added)
-
trunk/aws/Aws/DefaultsMode/ConfigurationInterface.php (added)
-
trunk/aws/Aws/DefaultsMode/ConfigurationProvider.php (added)
-
trunk/aws/Aws/DefaultsMode/Exception (added)
-
trunk/aws/Aws/DefaultsMode/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/DoctrineCacheAdapter.php (added)
-
trunk/aws/Aws/Endpoint (added)
-
trunk/aws/Aws/Endpoint/EndpointProvider.php (added)
-
trunk/aws/Aws/Endpoint/Partition.php (added)
-
trunk/aws/Aws/Endpoint/PartitionEndpointProvider.php (added)
-
trunk/aws/Aws/Endpoint/PartitionInterface.php (added)
-
trunk/aws/Aws/Endpoint/PatternEndpointProvider.php (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint/Configuration.php (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint/ConfigurationInterface.php (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint/ConfigurationProvider.php (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint/Exception (added)
-
trunk/aws/Aws/Endpoint/UseDualstackEndpoint/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint/Configuration.php (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint/ConfigurationInterface.php (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint/ConfigurationProvider.php (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint/Exception (added)
-
trunk/aws/Aws/Endpoint/UseFipsEndpoint/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/EndpointDiscovery (added)
-
trunk/aws/Aws/EndpointDiscovery/Configuration.php (added)
-
trunk/aws/Aws/EndpointDiscovery/ConfigurationInterface.php (added)
-
trunk/aws/Aws/EndpointDiscovery/ConfigurationProvider.php (added)
-
trunk/aws/Aws/EndpointDiscovery/EndpointDiscoveryMiddleware.php (added)
-
trunk/aws/Aws/EndpointDiscovery/EndpointList.php (added)
-
trunk/aws/Aws/EndpointDiscovery/Exception (added)
-
trunk/aws/Aws/EndpointDiscovery/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/EndpointParameterMiddleware.php (added)
-
trunk/aws/Aws/EndpointV2 (added)
-
trunk/aws/Aws/EndpointV2/EndpointDefinitionProvider.php (added)
-
trunk/aws/Aws/EndpointV2/EndpointProviderV2.php (added)
-
trunk/aws/Aws/EndpointV2/EndpointV2Middleware.php (added)
-
trunk/aws/Aws/EndpointV2/EndpointV2SerializerTrait.php (added)
-
trunk/aws/Aws/EndpointV2/Rule (added)
-
trunk/aws/Aws/EndpointV2/Rule/AbstractRule.php (added)
-
trunk/aws/Aws/EndpointV2/Rule/EndpointRule.php (added)
-
trunk/aws/Aws/EndpointV2/Rule/ErrorRule.php (added)
-
trunk/aws/Aws/EndpointV2/Rule/RuleCreator.php (added)
-
trunk/aws/Aws/EndpointV2/Rule/TreeRule.php (added)
-
trunk/aws/Aws/EndpointV2/Ruleset (added)
-
trunk/aws/Aws/EndpointV2/Ruleset/Ruleset.php (added)
-
trunk/aws/Aws/EndpointV2/Ruleset/RulesetEndpoint.php (added)
-
trunk/aws/Aws/EndpointV2/Ruleset/RulesetParameter.php (added)
-
trunk/aws/Aws/EndpointV2/Ruleset/RulesetStandardLibrary.php (added)
-
trunk/aws/Aws/Exception (added)
-
trunk/aws/Aws/Exception/AwsException.php (added)
-
trunk/aws/Aws/Exception/CommonRuntimeException.php (added)
-
trunk/aws/Aws/Exception/CouldNotCreateChecksumException.php (added)
-
trunk/aws/Aws/Exception/CredentialsException.php (added)
-
trunk/aws/Aws/Exception/CryptoException.php (added)
-
trunk/aws/Aws/Exception/CryptoPolyfillException.php (added)
-
trunk/aws/Aws/Exception/EventStreamDataException.php (added)
-
trunk/aws/Aws/Exception/IncalculablePayloadException.php (added)
-
trunk/aws/Aws/Exception/InvalidJsonException.php (added)
-
trunk/aws/Aws/Exception/InvalidRegionException.php (added)
-
trunk/aws/Aws/Exception/MultipartUploadException.php (added)
-
trunk/aws/Aws/Exception/TokenException.php (added)
-
trunk/aws/Aws/Exception/UnresolvedApiException.php (added)
-
trunk/aws/Aws/Exception/UnresolvedEndpointException.php (added)
-
trunk/aws/Aws/Exception/UnresolvedSignatureException.php (added)
-
trunk/aws/Aws/Handler (added)
-
trunk/aws/Aws/Handler/Guzzle (added)
-
trunk/aws/Aws/Handler/Guzzle/GuzzleHandler.php (added)
-
trunk/aws/Aws/Handler/GuzzleV6 (added)
-
trunk/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php (added)
-
trunk/aws/Aws/HandlerList.php (added)
-
trunk/aws/Aws/HasDataTrait.php (added)
-
trunk/aws/Aws/HasMonitoringEventsTrait.php (added)
-
trunk/aws/Aws/HashInterface.php (added)
-
trunk/aws/Aws/HashingStream.php (added)
-
trunk/aws/Aws/History.php (added)
-
trunk/aws/Aws/IdempotencyTokenMiddleware.php (added)
-
trunk/aws/Aws/Identity (added)
-
trunk/aws/Aws/Identity/AwsCredentialIdentity.php (added)
-
trunk/aws/Aws/Identity/BearerTokenIdentity.php (added)
-
trunk/aws/Aws/Identity/IdentityInterface.php (added)
-
trunk/aws/Aws/Identity/S3 (added)
-
trunk/aws/Aws/Identity/S3/S3ExpressIdentity.php (added)
-
trunk/aws/Aws/Identity/S3/S3ExpressIdentityProvider.php (added)
-
trunk/aws/Aws/InputValidationMiddleware.php (added)
-
trunk/aws/Aws/JsonCompiler.php (added)
-
trunk/aws/Aws/LruArrayCache.php (added)
-
trunk/aws/Aws/MetricsBuilder.php (added)
-
trunk/aws/Aws/Middleware.php (added)
-
trunk/aws/Aws/MockHandler.php (added)
-
trunk/aws/Aws/MonitoringEventsInterface.php (added)
-
trunk/aws/Aws/MultiRegionClient.php (added)
-
trunk/aws/Aws/PhpHash.php (added)
-
trunk/aws/Aws/PresignUrlMiddleware.php (added)
-
trunk/aws/Aws/Psr16CacheAdapter.php (added)
-
trunk/aws/Aws/PsrCacheAdapter.php (added)
-
trunk/aws/Aws/QueryCompatibleInputMiddleware.php (added)
-
trunk/aws/Aws/RequestCompressionMiddleware.php (added)
-
trunk/aws/Aws/ResponseContainerInterface.php (added)
-
trunk/aws/Aws/Result.php (added)
-
trunk/aws/Aws/ResultInterface.php (added)
-
trunk/aws/Aws/ResultPaginator.php (added)
-
trunk/aws/Aws/Retry (added)
-
trunk/aws/Aws/Retry/Configuration.php (added)
-
trunk/aws/Aws/Retry/ConfigurationInterface.php (added)
-
trunk/aws/Aws/Retry/ConfigurationProvider.php (added)
-
trunk/aws/Aws/Retry/Exception (added)
-
trunk/aws/Aws/Retry/Exception/ConfigurationException.php (added)
-
trunk/aws/Aws/Retry/QuotaManager.php (added)
-
trunk/aws/Aws/Retry/RateLimiter.php (added)
-
trunk/aws/Aws/Retry/RetryHelperTrait.php (added)
-
trunk/aws/Aws/RetryMiddleware.php (added)
-
trunk/aws/Aws/RetryMiddlewareV2.php (added)
-
trunk/aws/Aws/Sdk.php (added)
-
trunk/aws/Aws/Signature (added)
-
trunk/aws/Aws/Signature/AnonymousSignature.php (added)
-
trunk/aws/Aws/Signature/DpopSignature.php (added)
-
trunk/aws/Aws/Signature/S3ExpressSignature.php (added)
-
trunk/aws/Aws/Signature/S3SignatureV4.php (added)
-
trunk/aws/Aws/Signature/SignatureInterface.php (added)
-
trunk/aws/Aws/Signature/SignatureProvider.php (added)
-
trunk/aws/Aws/Signature/SignatureTrait.php (added)
-
trunk/aws/Aws/Signature/SignatureV4.php (added)
-
trunk/aws/Aws/StreamRequestPayloadMiddleware.php (added)
-
trunk/aws/Aws/Token (added)
-
trunk/aws/Aws/Token/BearerTokenAuthorization.php (added)
-
trunk/aws/Aws/Token/BedrockTokenProvider.php (added)
-
trunk/aws/Aws/Token/ParsesIniTrait.php (added)
-
trunk/aws/Aws/Token/RefreshableTokenProviderInterface.php (added)
-
trunk/aws/Aws/Token/SsoToken.php (added)
-
trunk/aws/Aws/Token/SsoTokenProvider.php (added)
-
trunk/aws/Aws/Token/Token.php (added)
-
trunk/aws/Aws/Token/TokenAuthorization.php (added)
-
trunk/aws/Aws/Token/TokenInterface.php (added)
-
trunk/aws/Aws/Token/TokenProvider.php (added)
-
trunk/aws/Aws/Token/TokenSource.php (added)
-
trunk/aws/Aws/TraceMiddleware.php (added)
-
trunk/aws/Aws/UserAgentMiddleware.php (added)
-
trunk/aws/Aws/Waiter.php (added)
-
trunk/aws/Aws/WrappedHttpHandler.php (added)
-
trunk/aws/Aws/cleanup.php (added)
-
trunk/aws/Aws/data (added)
-
trunk/aws/Aws/data/aliases.json.php (added)
-
trunk/aws/Aws/data/cloudfront (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27 (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2015-07-27/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28 (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-01-28/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01 (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-01/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20 (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-08-20/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07 (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-07/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29 (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-09-29/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25 (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2016-11-25/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25 (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-03-25/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30 (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/smoke.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2017-10-30/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18 (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/smoke.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-06-18/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05 (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/smoke.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2018-11-05/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26 (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/smoke.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2019-03-26/waiters-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31 (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/api-2.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/endpoint-rule-set-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/endpoint-tests-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/paginators-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/smoke.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/waiters-1.json.php (added)
-
trunk/aws/Aws/data/cloudfront/2020-05-31/waiters-2.json.php (added)
-
trunk/aws/Aws/data/endpoints.json.php (added)
-
trunk/aws/Aws/data/endpoints_prefix_history.json.php (added)
-
trunk/aws/Aws/data/grandfathered-services.json.php (added)
-
trunk/aws/Aws/data/manifest.json.php (added)
-
trunk/aws/Aws/data/partitions.json.php (added)
-
trunk/aws/Aws/data/sdk-default-configuration.json.php (added)
-
trunk/aws/Aws/functions.php (added)
-
trunk/aws/CHANGELOG.md (added)
-
trunk/aws/GuzzleHttp (added)
-
trunk/aws/GuzzleHttp/BodySummarizer.php (added)
-
trunk/aws/GuzzleHttp/BodySummarizerInterface.php (added)
-
trunk/aws/GuzzleHttp/Client.php (added)
-
trunk/aws/GuzzleHttp/ClientInterface.php (added)
-
trunk/aws/GuzzleHttp/ClientTrait.php (added)
-
trunk/aws/GuzzleHttp/Cookie (added)
-
trunk/aws/GuzzleHttp/Cookie/CookieJar.php (added)
-
trunk/aws/GuzzleHttp/Cookie/CookieJarInterface.php (added)
-
trunk/aws/GuzzleHttp/Cookie/FileCookieJar.php (added)
-
trunk/aws/GuzzleHttp/Cookie/SessionCookieJar.php (added)
-
trunk/aws/GuzzleHttp/Cookie/SetCookie.php (added)
-
trunk/aws/GuzzleHttp/Exception (added)
-
trunk/aws/GuzzleHttp/Exception/BadResponseException.php (added)
-
trunk/aws/GuzzleHttp/Exception/ClientException.php (added)
-
trunk/aws/GuzzleHttp/Exception/ConnectException.php (added)
-
trunk/aws/GuzzleHttp/Exception/GuzzleException.php (added)
-
trunk/aws/GuzzleHttp/Exception/InvalidArgumentException.php (added)
-
trunk/aws/GuzzleHttp/Exception/RequestException.php (added)
-
trunk/aws/GuzzleHttp/Exception/ServerException.php (added)
-
trunk/aws/GuzzleHttp/Exception/TooManyRedirectsException.php (added)
-
trunk/aws/GuzzleHttp/Exception/TransferException.php (added)
-
trunk/aws/GuzzleHttp/Handler (added)
-
trunk/aws/GuzzleHttp/Handler/CurlFactory.php (added)
-
trunk/aws/GuzzleHttp/Handler/CurlFactoryInterface.php (added)
-
trunk/aws/GuzzleHttp/Handler/CurlHandler.php (added)
-
trunk/aws/GuzzleHttp/Handler/CurlMultiHandler.php (added)
-
trunk/aws/GuzzleHttp/Handler/EasyHandle.php (added)
-
trunk/aws/GuzzleHttp/Handler/HeaderProcessor.php (added)
-
trunk/aws/GuzzleHttp/Handler/MockHandler.php (added)
-
trunk/aws/GuzzleHttp/Handler/Proxy.php (added)
-
trunk/aws/GuzzleHttp/Handler/StreamHandler.php (added)
-
trunk/aws/GuzzleHttp/HandlerStack.php (added)
-
trunk/aws/GuzzleHttp/MessageFormatter.php (added)
-
trunk/aws/GuzzleHttp/MessageFormatterInterface.php (added)
-
trunk/aws/GuzzleHttp/Middleware.php (added)
-
trunk/aws/GuzzleHttp/Pool.php (added)
-
trunk/aws/GuzzleHttp/PrepareBodyMiddleware.php (added)
-
trunk/aws/GuzzleHttp/Promise (added)
-
trunk/aws/GuzzleHttp/Promise/AggregateException.php (added)
-
trunk/aws/GuzzleHttp/Promise/CancellationException.php (added)
-
trunk/aws/GuzzleHttp/Promise/Coroutine.php (added)
-
trunk/aws/GuzzleHttp/Promise/Create.php (added)
-
trunk/aws/GuzzleHttp/Promise/Each.php (added)
-
trunk/aws/GuzzleHttp/Promise/EachPromise.php (added)
-
trunk/aws/GuzzleHttp/Promise/FulfilledPromise.php (added)
-
trunk/aws/GuzzleHttp/Promise/Is.php (added)
-
trunk/aws/GuzzleHttp/Promise/Promise.php (added)
-
trunk/aws/GuzzleHttp/Promise/PromiseInterface.php (added)
-
trunk/aws/GuzzleHttp/Promise/PromisorInterface.php (added)
-
trunk/aws/GuzzleHttp/Promise/RejectedPromise.php (added)
-
trunk/aws/GuzzleHttp/Promise/RejectionException.php (added)
-
trunk/aws/GuzzleHttp/Promise/TaskQueue.php (added)
-
trunk/aws/GuzzleHttp/Promise/TaskQueueInterface.php (added)
-
trunk/aws/GuzzleHttp/Promise/Utils.php (added)
-
trunk/aws/GuzzleHttp/Psr7 (added)
-
trunk/aws/GuzzleHttp/Psr7/AppendStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/BufferStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/CachingStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/DroppingStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Exception (added)
-
trunk/aws/GuzzleHttp/Psr7/Exception/MalformedUriException.php (added)
-
trunk/aws/GuzzleHttp/Psr7/FnStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Header.php (added)
-
trunk/aws/GuzzleHttp/Psr7/HttpFactory.php (added)
-
trunk/aws/GuzzleHttp/Psr7/InflateStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/LazyOpenStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/LimitStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Message.php (added)
-
trunk/aws/GuzzleHttp/Psr7/MessageTrait.php (added)
-
trunk/aws/GuzzleHttp/Psr7/MimeType.php (added)
-
trunk/aws/GuzzleHttp/Psr7/MultipartStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/NoSeekStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/PumpStream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Query.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Request.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Response.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Rfc7230.php (added)
-
trunk/aws/GuzzleHttp/Psr7/ServerRequest.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Stream.php (added)
-
trunk/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php (added)
-
trunk/aws/GuzzleHttp/Psr7/StreamWrapper.php (added)
-
trunk/aws/GuzzleHttp/Psr7/UploadedFile.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Uri.php (added)
-
trunk/aws/GuzzleHttp/Psr7/UriComparator.php (added)
-
trunk/aws/GuzzleHttp/Psr7/UriNormalizer.php (added)
-
trunk/aws/GuzzleHttp/Psr7/UriResolver.php (added)
-
trunk/aws/GuzzleHttp/Psr7/Utils.php (added)
-
trunk/aws/GuzzleHttp/RedirectMiddleware.php (added)
-
trunk/aws/GuzzleHttp/RequestOptions.php (added)
-
trunk/aws/GuzzleHttp/RetryMiddleware.php (added)
-
trunk/aws/GuzzleHttp/TransferStats.php (added)
-
trunk/aws/GuzzleHttp/Utils.php (added)
-
trunk/aws/GuzzleHttp/functions.php (added)
-
trunk/aws/GuzzleHttp/functions_include.php (added)
-
trunk/aws/JmesPath (added)
-
trunk/aws/JmesPath/AstRuntime.php (added)
-
trunk/aws/JmesPath/CompilerRuntime.php (added)
-
trunk/aws/JmesPath/DebugRuntime.php (added)
-
trunk/aws/JmesPath/Env.php (added)
-
trunk/aws/JmesPath/FnDispatcher.php (added)
-
trunk/aws/JmesPath/JmesPath.php (added)
-
trunk/aws/JmesPath/Lexer.php (added)
-
trunk/aws/JmesPath/Parser.php (added)
-
trunk/aws/JmesPath/SyntaxErrorException.php (added)
-
trunk/aws/JmesPath/TreeCompiler.php (added)
-
trunk/aws/JmesPath/TreeInterpreter.php (added)
-
trunk/aws/JmesPath/Utils.php (added)
-
trunk/aws/LICENSE (added)
-
trunk/aws/NOTICE (added)
-
trunk/aws/Psr (added)
-
trunk/aws/Psr/Http (added)
-
trunk/aws/Psr/Http/Client (added)
-
trunk/aws/Psr/Http/Client/ClientExceptionInterface.php (added)
-
trunk/aws/Psr/Http/Client/ClientInterface.php (added)
-
trunk/aws/Psr/Http/Client/NetworkExceptionInterface.php (added)
-
trunk/aws/Psr/Http/Client/RequestExceptionInterface.php (added)
-
trunk/aws/Psr/Http/Message (added)
-
trunk/aws/Psr/Http/Message/MessageInterface.php (added)
-
trunk/aws/Psr/Http/Message/RequestInterface.php (added)
-
trunk/aws/Psr/Http/Message/ResponseInterface.php (added)
-
trunk/aws/Psr/Http/Message/ServerRequestInterface.php (added)
-
trunk/aws/Psr/Http/Message/StreamInterface.php (added)
-
trunk/aws/Psr/Http/Message/UploadedFileInterface.php (added)
-
trunk/aws/Psr/Http/Message/UriInterface.php (added)
-
trunk/aws/README.md (added)
-
trunk/aws/aws-autoloader.php (added)
-
trunk/clear-cache.class.php (added)
-
trunk/frontpup-admin.class.php (modified) (4 diffs)
-
trunk/frontpup.class.php (modified) (1 diff)
-
trunk/frontpup.php (modified) (3 diffs)
-
trunk/images (added)
-
trunk/images/frontpup-logo-225-160.png (added)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
frontpup/tags/1.1/frontpup-admin.class.php
r3435512 r3450714 5 5 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 6 6 7 require_once plugin_dir_path( __FILE__ ) . 'admin/cache-control.class.php'; 8 require_once plugin_dir_path( __FILE__ ) . 'admin/clear-cache.class.php'; 9 require_once plugin_dir_path( __FILE__ ) . 'admin/welcome.class.php'; 10 7 11 class FrontPup_Admin { 8 12 9 13 private static $instance = null; 10 private $settings_key = 'frontpup_plugin_settings'; 11 private $settings = []; 14 private $admin_views = []; 12 15 13 16 /** … … 25 28 */ 26 29 private function __construct() { 27 $this->settings = get_option( $this->settings_key, [] ); 28 29 add_action( 'admin_menu', [ $this, 'register_menu' ] ); 30 add_action( 'admin_init', [ $this, 'register_settings' ] ); 30 // Create the admin views and their controller classes 31 $this->admin_views['welcome'] = new FrontPup_Admin_Welcome(); // __('Welcome', 'frontpup') ); 32 $this->admin_views['cache-control'] = new FrontPup_Admin_Cache_Control(); // __('Cache Control Settings', 'frontpup') ); 33 $this->admin_views['clear-cache'] = new FrontPup_Admin_Clear_Cache(); // __('Clear Cache Settings', 'frontpup') ); 34 35 // Admin hooks 36 add_action( 'admin_menu', [$this, 'admin_menu'] ); 37 add_action( 'admin_init', [$this, 'admin_init'] ); 38 add_action( 'admin_bar_menu', [$this, 'admin_bar_menu'], 801 ); 39 40 // Clear cache ajax action 41 add_action( 'admin_enqueue_scripts', [$this, 'admin_enqueue_scripts'] ); 42 add_action( 'wp_ajax_frontpup_clear_cache_action', [$this, 'wp_ajax_frontpup_clear_cache_action']); 31 43 } 32 44 … … 34 46 * Add top-level admin menu 35 47 */ 36 public function register_menu() { 37 38 add_options_page( 39 'FrontPup Settings', // Page title 40 'FrontPup', // Menu title 41 'manage_options', // Capability required to access 42 'frontpup-plugin', // Menu slug 43 [ $this, 'settings_page' ] // Callback function to render the page content 48 public function admin_menu() { 49 50 $icon_url = 'dashicons-cloud-upload'; 51 //$icon_url = plugin_dir_url( __FILE__ ) . 'images/frontpup-icon-16.png'; 52 //echo $icon_url; 53 54 add_menu_page( 55 'Welcome', 56 __('FrontPup', 'frontpup'), 57 'manage_options', 58 'frontpup-plugin', // menu slug 59 [$this->admin_views['welcome'], 'view'], 60 $icon_url 61 ); 62 63 add_submenu_page( 64 'frontpup-plugin', 65 __('Welcome', 'frontpup'), 66 __('Welcome', 'frontpup'), 67 'manage_options', 68 'frontpup-plugin', // menu slug 69 [$this->admin_views['welcome'], 'view'] 70 ); 71 72 add_submenu_page( 73 'frontpup-plugin', 74 __('Cache Settings', 'frontpup'), 75 __('Cache Settings', 'frontpup'), 76 'manage_options', 77 'frontpup-cache-settings', // menu slug 78 [$this->admin_views['cache-control'], 'view'] 79 ); 80 81 add_submenu_page( 82 'frontpup-plugin', 83 __('Clear Cache Settings', 'frontpup'), 84 __('Clear Cache Settings', 'frontpup'), 85 'manage_options', 86 'frontpup-clear-cache', // menu slug 87 [$this->admin_views['clear-cache'], 'view'] 44 88 ); 45 89 } … … 48 92 * Register plugin settings 49 93 */ 50 public function register_settings() { 51 52 register_setting( 53 'frontpup_plugin_settings_group', 54 $this->settings_key, 55 [ 'sanitize_callback' => [ $this, 'sanitize_settings' ] ] 56 ); 57 } 58 59 /** 60 * Settings content HTML 61 */ 62 public function settings_content( ) { 63 // Set default values if not set 64 $settings = $this->settings; 65 if( !isset( $settings['custom_smaxage_enabled'] ) ) { 66 $settings['custom_smaxage_enabled'] = 0; // Default value 67 } 68 if( !isset( $settings['smaxage'] ) ) { 69 $settings['smaxage'] = 31536000; // Default value 70 } 71 if( !isset( $settings['maxage'] ) ) { 72 $settings['maxage'] = 31536000; // Default value 73 } 74 if( !isset( $settings['cachecontrol'] ) ) { 75 $settings['cachecontrol'] = 0; // Default value 76 } 77 ?> 78 <p><?php echo esc_html(__('The caching settings control how your pages are cached by CloudFront.', 'frontpup')); ?></p> 79 <p><?php echo esc_html(__('The following settings only apply to public pages.', 'frontpup')); ?></p> 80 <p><?php echo esc_html(__('Enable the options below if your `Minimum TTL` cache policy setting in CloudFront is set to 0 seconds.', 'frontpup')); ?></p> 81 <h2><?php echo esc_html(__('Page Caching Settings', 'frontpup')); ?></h2> 82 <table class="form-table permalink-structure" role="presentation"> 83 <tbody> 84 <tr> 85 <th scope="row"><?php echo esc_html(__( 'Cache-Control', 'frontpup' )); ?></th> 86 <td> 87 <fieldset class="structure-selection"> 88 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 89 <div class="row"> 90 <input id="cachecontrol-input-none" 91 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-none-description" 92 type="radio" value="0" 93 <?php checked( $settings['cachecontrol'], 0 ); ?> 94 /> 95 <div> 96 <label for="cachecontrol-input-none"><?php esc_html( 'None', 'frontpup' ); ?></label> 97 <p id="cachecontrol-input-none-description"> 98 <?php echo esc_html(__( 'No Cache-Control header is added.', 'frontpup' )); ?> 99 </p> 100 </div> 101 </div><!-- .row --> 102 103 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 104 <div class="row"> 105 <input id="cachecontrol-input-nocache" 106 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-nocache-description" 107 type="radio" value="1" 108 <?php checked( $settings['cachecontrol'], 1 ); ?> 109 /> 110 <div> 111 <label for="cachecontrol-input-nocache"><?php esc_html( 'No-cache', 'frontpup' ); ?></label> 112 <p id="cachecontrol-input-nocache-description"> 113 <code><?php echo esc_html(__( 'Cache-Control: no-cache', 'frontpup' )); ?></code> 114 </p> 115 <p style="margin-top:10px;"> 116 <?php echo esc_html(__( 'No-cache headers.', 'frontpup' )); ?> 117 </p> 118 </div> 119 </div><!-- .row --> 120 121 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 122 <div class="row"> 123 <input id="cachecontrol-input-browser" 124 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-browser-description" 125 type="radio" value="2" 126 <?php checked( $settings['cachecontrol'], 2 ); ?> 127 128 /> 129 <div> 130 <label for="cachecontrol-input-browser"><?php esc_html( 'Browser Cache Only', 'frontpup' ); ?></label> 131 <p id="cachecontrol-input-browser-description"> 132 <code><?php echo esc_html(__( 'Cache-Control: private, max-age=VALUE', 'frontpup' )); ?></code> 133 </p> 134 <p style="margin-top:10px;"> 135 <?php echo esc_html(__( 'CloudFront will not cache content, only the browser..', 'frontpup' )); ?> 136 </p> 137 </div> 138 </div><!-- .row --> 139 140 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 141 <div class="row"> 142 <input id="cachecontrol-input-browser-cloudfront" 143 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-browser-cloudfront-description" 144 type="radio" value="3" 145 <?php checked( $settings['cachecontrol'], 3 ); ?> 146 /> 147 <div> 148 <label for="cachecontrol-input-browser-cloudfront"><?php esc_html( 'Browser and CloudFront Cache', 'frontpup' ); ?></label> 149 <p id="cachecontrol-input-browser-cloudfront-description"> 150 <code><?php echo esc_html(__( 'Cache-Control: public, max-age=VALUE', 'frontpup' )); ?></code> 151 </p> 152 <p style="margin-top:10px;"> 153 <?php echo esc_html(__( 'CloudFront and browser caching headers are added.', 'frontpup' )); ?> 154 </p> 155 </div> 156 </div><!-- .row --> 157 </fieldset><!-- .structure-selection --> 158 </td> 159 </tr> 160 </tbody> 161 </table> 162 163 <div id="frontpup-ttl-input-container"> 164 <table class="form-table permalink-structure" role="presentation"> 165 <tbody> 166 <tr> 167 <th scope="row"><?php echo esc_html(__( 'Max Age', 'frontpup' )); ?></th> 168 <td> 169 <p> 170 <input name="<?php echo esc_attr($this->settings_key); ?>[maxage]" id="frontpup-maxage" 171 type="number" value="<?php echo esc_attr( $settings['maxage'] ); ?>" 172 min="0" max="31536000" 173 aria-describedby="permalink-custom" class="medium-text" 174 /> 175 </p> 176 <p> 177 <?php echo esc_html(__( 'Specify the max age (in seconds) to cache content.', 'frontpup' )); ?> 178 </p> 179 <p id="frontpup-smaxage-checkbox"> 180 <label> 181 <input 182 type="hidden" 183 name="<?php echo esc_attr($this->settings_key); ?>[custom_smaxage_enabled]" 184 value="0" /> 185 <input 186 type="checkbox" 187 name="<?php echo esc_attr($this->settings_key); ?>[custom_smaxage_enabled]" 188 value="1" 189 onclick="document.getElementById('frontpup-smaxage-input-container').style.display = this.checked ? '' : 'none';" 190 <?php checked( isset( $settings['custom_smaxage_enabled'] ) && $settings['custom_smaxage_enabled'] ); ?> 191 /> 192 <?php echo esc_html(__( 'Set a specific max age for CloudFront caching.', 'frontpup' )); ?> 193 194 </label> 195 </p> 196 </td> 197 </tr> 198 </tbody> 199 </table> 200 <div id="frontpup-smaxage-input-container" style="<?php echo ( isset( $settings['custom_smaxage_enabled'] ) && $settings['custom_smaxage_enabled'] ) ? '' : 'display:none;'; ?>"> 201 <table class="form-table" role="presentation"> 202 <tbody> 203 <tr> 204 <th scope="row"><?php echo esc_html(__( 'CloudFront Max Age', 'frontpup' )); ?></th> 205 <td> 206 <p> 207 <input name="<?php echo esc_attr($this->settings_key); ?>[smaxage]" id="frontpup-smaxage" 208 type="number" value="<?php echo esc_attr( $settings['smaxage'] ); ?>" 209 min="0" max="31536000" 210 aria-describedby="permalink-custom" class="medium-text" 211 /> 212 </p> 213 <p> 214 <?php echo esc_html(__( 'Specify the max age (in seconds) for CloudFront to cache content.', 'frontpup' )); ?> 215 </p> 216 <p> 217 <?php echo esc_html(__( 'Adds s-maxage=VALUE to Cache-Control header.', 'frontpup' )); ?> 218 </p> 219 </td> 220 </tr> 221 </tbody> 222 </table> 223 </div><!-- end of frontpup-smaxage-input-container --> 224 </div><!-- end of frontpup-ttl-input-container --> 225 <?php 226 } 227 228 /** 229 * Sanitize settings before saving 230 */ 231 public function sanitize_settings( $input ) { 232 $output = []; 233 234 // boolean values 235 foreach ( ['custom_smaxage_enabled'] as $field ) { 236 $output[$field] = isset( $input[$field] ) ? boolval( $input[$field] ) : 0; 237 } 238 239 // Numeric values 240 foreach ( ['maxage', 'smaxage', 'cachecontrol'] as $field ) { 241 if ( isset( $input[$field] ) ) { 242 $output[$field] = intval( $input[$field] ); 243 } else { 244 $output[$field] = 0; 245 } 246 } 247 248 return $output; 249 } 250 251 /** 252 * Settings page HTML 253 */ 254 public function settings_page() { 255 ?> 256 <div class="wrap"> 257 <h1><?php echo esc_html(__('FrontPup, your CloudFront companion', 'frontpup')); ?></h1> 258 259 <form method="post" action="options.php"> 260 <?php 261 settings_fields( 'frontpup_plugin_settings_group' ); 262 do_settings_sections( 'frontpup-plugin' ); 263 $this->settings_content(); 264 submit_button(); 265 ?> 266 </form> 267 </div> 268 <?php 94 public function admin_init() { 95 // Set the page titles 96 $this->admin_views['welcome']->set_page_title( __('Welcome to FrontPup', 'frontpup') ); 97 $this->admin_views['cache-control']->set_page_title( __('Cache Settings', 'frontpup') ); 98 $this->admin_views['clear-cache']->set_page_title( __('Clear Cache Settings', 'frontpup') ); 99 100 // Register settings for each admin view 101 foreach( $this->admin_views as $view ) { 102 $view->register_settings(); 103 } 104 } 105 106 /** 107 * Add admin bar menu 108 * Include a drop down menu in the admin bar for quick access 109 */ 110 public function admin_bar_menu( $wp_admin_bar ) { 111 if ( !current_user_can( 'manage_options' ) ) { 112 return; 113 } 114 115 // Return if the enable clear cache is not set 116 $settings = get_option( 'frontpup_clear_cache', [] ); 117 if( empty($settings['clear_cache_enabled']) ) { 118 return; 119 } 120 121 $args = array( 122 'id' => 'frontpup_admin_menu', 123 'title' => __('FrontPup', 'frontpup'), 124 'href' => '', 125 'meta' => array( 'class' => 'frontpup-admin-bar-menu' ) 126 ); 127 $wp_admin_bar->add_node( $args ); 128 129 // Submenu: Cache Settings 130 $url = admin_url( 'admin.php?action=frontpup_clear_cache' ); 131 $nonceUrl = wp_nonce_url( $url, 'frontpup_clear_cache', 'frontpup_clear_cache_nonce' ); 132 $args = array( 133 'id' => 'frontpup-clear-cache', 134 'title' => __('Clear CloudFront Cache', 'frontpup'), 135 'href' => '#', 136 'parent'=> 'frontpup_admin_menu', 137 ); 138 $wp_admin_bar->add_node( $args ); 139 } 140 141 /** 142 * Admin enqueue scripts 143 */ 144 public function admin_enqueue_scripts( $hook ) { 145 146 // Determine if we have the clear cache enabled 147 $settings = get_option( 'frontpup_clear_cache', [] ); 148 if( empty($settings['clear_cache_enabled']) ) { 149 return; 150 } 151 152 $translation_array = array( 153 'dismiss' => __( 'Dismiss', 'frontpup' ), 154 'ajax_url' => admin_url('admin-ajax.php'), 155 'security_nonce' => wp_create_nonce('frontpup_clear_cache_nonce'), 156 ); 157 158 wp_enqueue_script( 'frontpup-clear-cache-script', plugin_dir_url( __FILE__ ) . 'admin/js/clear-cache.js', [], FRONTPUP_VERSION, true ); 159 wp_localize_script( 'frontpup-clear-cache-script', 'frontpupClearCache', $translation_array ); 160 } 161 162 /** 163 * WP AJax action for clearing cache 164 */ 165 public function wp_ajax_frontpup_clear_cache_action() { 166 167 $settings = get_option( 'frontpup_clear_cache', [] ); 168 if( empty($settings['clear_cache_enabled']) ) { 169 wp_send_json_error( __( 'This option is not available.', 'frontpup' ) ); 170 return; 171 } 172 173 // Check user capabilities 174 if ( !current_user_can( 'manage_options' ) ) { 175 wp_send_json_error( __( 'You do not have sufficient permissions to access this action.', 'frontpup' ) ); 176 return; 177 } 178 179 // Check nonce 180 if( !check_ajax_referer( 'frontpup_clear_cache_nonce', 'nonce', false ) ) { 181 wp_send_json_error( __( 'Invalid security token sent.', 'frontpup' ) ); 182 return; 183 } 184 185 // Perform cache clearing 186 $FrontPupObj = FrontPup::get_instance(); 187 $clearCacheObj = $FrontPupObj->get_clear_cache_instance(); 188 $result = $clearCacheObj->clear_cache(); 189 190 if ( $result === false ) { 191 $error_message = sprintf( '%s.', $clearCacheObj->get_last_error() == '' ? __( 'Unknown error occurred', 'frontpup' ) : $clearCacheObj->get_last_error() ); 192 wp_send_json_error( __( 'Error occurred while clearing cache: ', 'frontpup' ) . $error_message ); 193 return; 194 } else { 195 wp_send_json_success( __( 'CloudFront cache invalidation request completed successfully.', 'frontpup' ) ); 196 } 269 197 } 270 198 } 271 199 272 200 FrontPup_Admin::get_instance(); 201 202 // eof -
frontpup/tags/1.1/frontpup.class.php
r3435512 r3450714 122 122 } 123 123 } 124 125 public function get_clear_cache_instance( $clearCacheSettings = [] ) { 126 require_once plugin_dir_path( __FILE__ ) . 'clear-cache.class.php'; 127 if( empty($clearCacheSettings) ) { 128 $clearCacheSettings = get_option( 'frontpup_clear_cache', [] ); // Clear cache settings 129 } 130 131 if( empty($clearCacheSettings) ) { 132 return null; 133 } 134 return new FrontPup_Clear_Cache( $clearCacheSettings ); 135 } 124 136 }; 125 137 -
frontpup/tags/1.1/frontpup.php
r3435512 r3450714 5 5 * @package FrontPup 6 6 * @author Painless Analytics 7 * @copyright 202 5Painless Analytics7 * @copyright 2026 Painless Analytics 8 8 * @license GPL-2.0-or-later 9 9 * … … 11 11 * Plugin Name: FrontPup 12 12 * Plugin URI: https://www.painlessanalytics.com/frontpup-cloudfront-wordpress-plugin/ 13 * Description: FrontPup, your CloudFront companion - optimize your CloudFront distribution for your WordPress website.14 * Version: 1. 015 * Requires at least: 5.513 * Description: FrontPup, your CloudFront companion - Clear cache and optimize your CloudFront distribution for your WordPress website. 14 * Version: 1.1 15 * Requires at least: 6.0 16 16 * Tested up to: 6.9 17 * Requires PHP: 7.017 * Requires PHP: 8.1 18 18 * Author: Painless Analytics 19 19 * Author URI: https://www.painlessanalytics.com … … 26 26 27 27 define('FRONTPUP_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); 28 if( !defined('FRONTPUP_VERSION') ) { 29 define('FRONTPUP_VERSION', '1.1'); 30 } 31 if( !defined('FRONTPUP_REGION') ) { 32 define('FRONTPUP_REGION', 'us-east-1'); // Default region 33 } 28 34 29 35 if( !class_exists('FrontPup') ) { -
frontpup/tags/1.1/readme.txt
r3435512 r3450714 1 1 === FrontPup === 2 Contributors: painlessanalytics, a ngelomandato2 Contributors: painlessanalytics, amandato 3 3 Donate link: https://www.painlessanalytics.com/frontpup-cloudfront-wordpress-plugin/ 4 4 Tags: cloudfront, aws, cdn, amazon, lightsail 5 Requires at least: 5.55 Requires at least: 6.0 6 6 Tested up to: 6.9 7 Stable tag: 1. 08 Requires PHP: 7.07 Stable tag: 1.1 8 Requires PHP: 8.1 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html 11 11 12 Your CloudFront companion.12 Your AWS CloudFront companion. Clear cache and optimize your CloudFront distribution for your WordPress website 13 13 14 14 == Description == 15 15 16 FrontPup allows you to maximize the settings available between the CloudFront Origin and your WordPress site. 16 Welcome to FrontPup, your CloudFront companion. 17 17 18 F eatures include:18 FrontPup allows you to maximize your WordPress website using the AWS CloudFront Content Delivery Network (CDN). 19 19 20 == REQUIREMENTS == 21 22 You __must__ be using the Amazon Web Services (AWS) [CloudFront](https://aws.amazon.com/cloudfront/) service to utilize this plugin. 23 24 == FrontPup Features == 25 26 * Clear CloudFront Cache (creates an Invalidation request) 20 27 * Set no-cache headers for all pages (great for development or testing) 21 * Set public Cache-Control headers for CloudFront and Browsers 22 * Set private Cache-Control headers for Browsers only 23 * Set separate max-age and s-maxage values 28 * Set public and private Cache-Control headers for caching in CloudFront and Browsers 29 * Set separate max-age (browser) and s-maxage (CloudFront) cache duration values 30 31 == Turbocharge your WordPress Website with CloudFront == 32 Using Amazon CloudFront in front of your WordPress website offers significant benefits by improving performance, security, and scalability. CloudFront is a Delivery Network (CDN) with over 750+ Points of Presence (PoPs) around the world plus over 1,100 PoPs within ISP networks. This highly optimized network makes it _extremely efficient_ at delivering your website to your visitors anywhere around the world. "PoP" locations are designed to reduce latency by caching content closer to your site's visitors. 33 34 **Performance** 35 36 * **Faster Loading Times**, static content (pages, images, CSS, JavaScript) is cached at "edge locations" around the world 37 * **Improved User Experience**, Faster load times lead to higher user engagement, reduced bounce rates, and improved search engine optimization (SEO) rankings 38 * **Reduced Server Load**, by serving cached content from edge locations, CloudFront minimizes requests to your WordPress website 39 40 When your website is optimized for performance your [PageSpeed Lighthouse scores](https://pagespeed.web.dev/) should improve. 41 42 **Enhanced Security** 43 44 * **DDoS Protection**, includes AWS Shield Standard 45 * **SSL/TLS Security**, force https only and includes free SSL Certificates 46 * **AWS WAF**, a Web Application Firewall with a depth of options including specific WordPress protections (may incur additional costs) 47 48 You should achieve a grade of "A" on [Qualys SSL Server Test](https://www.ssllabs.com/ssltest/) when CloudFront is configured with the recommended TLSv1.2_2021 or newer security policy. 49 50 **Scalability and Reliability** 51 52 * **Global Reach** with over 750 PoPs plus over 1,100 PoPs within ISP networks 53 * **High Availability**, can serve cached content when site is down 54 * **Cost Efficiency**, can be cost-effective, especially for websites with high traffic with the new [CloudFront flat-rate pricing plans](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/flat-rate-pricing-plan.html) 55 56 **Technology** 57 58 * **IPv6**, a superior protocol to IPv4 and in some regions of the world is the only protocol that is available 59 * **HTTP/2 and HTTP/3** improve web performance through faster loading speeds, enhanced security, and better resource handling 60 * **Gzip and Brotli compression**, smaller file sizes improve application performance by delivering your content faster to visitors 61 * **Multi-Proxy**, route specific path patterns to other web applications easily by adding additional "Origins", allowing you to host more than just WordPress with the same hostname 62 63 Learn more about [AWS CloudFront](https://aws.amazon.com/cloudfront/). 64 65 == Developed by an AWS Community Builder == 66 FrontPup is developed and maintained by [Angelo Mandato](https://angelo.mandato.com), an [AWS Community Builder](https://builder.aws.com/community/@angelomandato). Angelo has been developing WordPress plugins and themes since 2005 and has been architecting applications including WordPress hosted on Amazon Web Services since 2007. 67 68 == Installation == 69 70 = Installation from within WordPress = 71 72 1. Visit **Plugins > Add New**. 73 2. Search for **FrontPup**. 74 3. Install and activate the FrontPup plugin. 75 76 = Manual installation = 77 78 1. Upload the entire `frontpup` folder to the `/wp-content/plugins/` directory. 79 2. Visit **Plugins**. 80 3. Activate the FrontPup plugin. 81 82 = After activation = 83 84 1. Visit the new **FrontPup** menu. 85 2. Enable the options you would like to use. 86 87 If you configure Clear Cache Settings, you can now use the FrontPup admin bar menu option to quickly clear the cache. This action uses AJAX and will perform the action without leaving the page or disrupting your work. 24 88 25 89 == Frequently Asked Questions == … … 27 91 = Do I need an AWS CloudFront to use this plugin? = 28 92 29 Yes, you need an AWS account with CloudFront setup for your website. 93 Yes, you need an AWS account with [CloudFront](https://aws.amazon.com/cloudfront/) setup for your website. 94 95 = Do I need to host my WordPress site on AWS? = 96 97 No, but CloudFront is most effective when used within the AWS network. 98 99 = What is the best way to host a WordPress website on AWS? = 100 101 There are many ways to host a WordPress website on AWS. Here is quick list. 102 103 * Lightsail - A CPanel like approach to setting up a WordPress website with only a few clicks 104 * EC2 Instance(s) - Run your own server(s) to host your WordPress website 105 * ECS Tasks - Run Docker containers using the AWS Elastic Container Service 106 * EKS - Run WordPress on AWS Elastic Kubernetes Service 107 108 There are thousands of formulas online that explain how to host WordPress on AWS. The method you pick comes down to the architecture you want to use and how much complexity you want with managing your website. 30 109 31 110 == Screenshots == 32 111 33 1. Settings screenshot 112 1. Welcome to FrontPup with CloudFront 113 2. Welcome screen without CloudFront 114 3. Page Cache-Control settings 115 4. Clear cache settings 116 5. Clear CloudFront cache from WordPress admin bar 34 117 35 118 == Changelog == 36 119 120 The FrontPup plugin is maintained on GitHub [https://github.com/painlessanalytics/frontpup](https://github.com/painlessanalytics/frontpup). Code contributions are welcome. 121 122 Changelog 123 124 = 1.1 = 125 126 Released: 2026-01-30 127 128 Clear cache functionality added. 129 130 * Added welcome page for the wp-admin 131 * Added clear cache settings page 132 * Reorganized admin class, new base class for future settings pages 133 * Moved views to subfolder of admin folder 134 * Added FrontPup admin bar menu bar option with "Clear CloudFront Cache" in sub menu (Made it a sub menu so you have to click twice to avoid accidental cache clearing) 135 * Ajax code for clearing cache created. For now only users who can manage settings can clear the cache (to be customizable in future versions) 136 37 137 = 1.0 = 138 139 Released: 2026-01-08 140 38 141 * First version of this plugin 142 143 The entire changelog is available on GitHub: [https://github.com/painlessanalytics/frontpup/blob/main/CHANGELOG.md](https://github.com/painlessanalytics/frontpup/blob/main/CHANGELOG.md) 39 144 40 145 == Upgrade Notice == -
frontpup/trunk/frontpup-admin.class.php
r3435512 r3450714 5 5 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 6 6 7 require_once plugin_dir_path( __FILE__ ) . 'admin/cache-control.class.php'; 8 require_once plugin_dir_path( __FILE__ ) . 'admin/clear-cache.class.php'; 9 require_once plugin_dir_path( __FILE__ ) . 'admin/welcome.class.php'; 10 7 11 class FrontPup_Admin { 8 12 9 13 private static $instance = null; 10 private $settings_key = 'frontpup_plugin_settings'; 11 private $settings = []; 14 private $admin_views = []; 12 15 13 16 /** … … 25 28 */ 26 29 private function __construct() { 27 $this->settings = get_option( $this->settings_key, [] ); 28 29 add_action( 'admin_menu', [ $this, 'register_menu' ] ); 30 add_action( 'admin_init', [ $this, 'register_settings' ] ); 30 // Create the admin views and their controller classes 31 $this->admin_views['welcome'] = new FrontPup_Admin_Welcome(); // __('Welcome', 'frontpup') ); 32 $this->admin_views['cache-control'] = new FrontPup_Admin_Cache_Control(); // __('Cache Control Settings', 'frontpup') ); 33 $this->admin_views['clear-cache'] = new FrontPup_Admin_Clear_Cache(); // __('Clear Cache Settings', 'frontpup') ); 34 35 // Admin hooks 36 add_action( 'admin_menu', [$this, 'admin_menu'] ); 37 add_action( 'admin_init', [$this, 'admin_init'] ); 38 add_action( 'admin_bar_menu', [$this, 'admin_bar_menu'], 801 ); 39 40 // Clear cache ajax action 41 add_action( 'admin_enqueue_scripts', [$this, 'admin_enqueue_scripts'] ); 42 add_action( 'wp_ajax_frontpup_clear_cache_action', [$this, 'wp_ajax_frontpup_clear_cache_action']); 31 43 } 32 44 … … 34 46 * Add top-level admin menu 35 47 */ 36 public function register_menu() { 37 38 add_options_page( 39 'FrontPup Settings', // Page title 40 'FrontPup', // Menu title 41 'manage_options', // Capability required to access 42 'frontpup-plugin', // Menu slug 43 [ $this, 'settings_page' ] // Callback function to render the page content 48 public function admin_menu() { 49 50 $icon_url = 'dashicons-cloud-upload'; 51 //$icon_url = plugin_dir_url( __FILE__ ) . 'images/frontpup-icon-16.png'; 52 //echo $icon_url; 53 54 add_menu_page( 55 'Welcome', 56 __('FrontPup', 'frontpup'), 57 'manage_options', 58 'frontpup-plugin', // menu slug 59 [$this->admin_views['welcome'], 'view'], 60 $icon_url 61 ); 62 63 add_submenu_page( 64 'frontpup-plugin', 65 __('Welcome', 'frontpup'), 66 __('Welcome', 'frontpup'), 67 'manage_options', 68 'frontpup-plugin', // menu slug 69 [$this->admin_views['welcome'], 'view'] 70 ); 71 72 add_submenu_page( 73 'frontpup-plugin', 74 __('Cache Settings', 'frontpup'), 75 __('Cache Settings', 'frontpup'), 76 'manage_options', 77 'frontpup-cache-settings', // menu slug 78 [$this->admin_views['cache-control'], 'view'] 79 ); 80 81 add_submenu_page( 82 'frontpup-plugin', 83 __('Clear Cache Settings', 'frontpup'), 84 __('Clear Cache Settings', 'frontpup'), 85 'manage_options', 86 'frontpup-clear-cache', // menu slug 87 [$this->admin_views['clear-cache'], 'view'] 44 88 ); 45 89 } … … 48 92 * Register plugin settings 49 93 */ 50 public function register_settings() { 51 52 register_setting( 53 'frontpup_plugin_settings_group', 54 $this->settings_key, 55 [ 'sanitize_callback' => [ $this, 'sanitize_settings' ] ] 56 ); 57 } 58 59 /** 60 * Settings content HTML 61 */ 62 public function settings_content( ) { 63 // Set default values if not set 64 $settings = $this->settings; 65 if( !isset( $settings['custom_smaxage_enabled'] ) ) { 66 $settings['custom_smaxage_enabled'] = 0; // Default value 67 } 68 if( !isset( $settings['smaxage'] ) ) { 69 $settings['smaxage'] = 31536000; // Default value 70 } 71 if( !isset( $settings['maxage'] ) ) { 72 $settings['maxage'] = 31536000; // Default value 73 } 74 if( !isset( $settings['cachecontrol'] ) ) { 75 $settings['cachecontrol'] = 0; // Default value 76 } 77 ?> 78 <p><?php echo esc_html(__('The caching settings control how your pages are cached by CloudFront.', 'frontpup')); ?></p> 79 <p><?php echo esc_html(__('The following settings only apply to public pages.', 'frontpup')); ?></p> 80 <p><?php echo esc_html(__('Enable the options below if your `Minimum TTL` cache policy setting in CloudFront is set to 0 seconds.', 'frontpup')); ?></p> 81 <h2><?php echo esc_html(__('Page Caching Settings', 'frontpup')); ?></h2> 82 <table class="form-table permalink-structure" role="presentation"> 83 <tbody> 84 <tr> 85 <th scope="row"><?php echo esc_html(__( 'Cache-Control', 'frontpup' )); ?></th> 86 <td> 87 <fieldset class="structure-selection"> 88 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 89 <div class="row"> 90 <input id="cachecontrol-input-none" 91 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-none-description" 92 type="radio" value="0" 93 <?php checked( $settings['cachecontrol'], 0 ); ?> 94 /> 95 <div> 96 <label for="cachecontrol-input-none"><?php esc_html( 'None', 'frontpup' ); ?></label> 97 <p id="cachecontrol-input-none-description"> 98 <?php echo esc_html(__( 'No Cache-Control header is added.', 'frontpup' )); ?> 99 </p> 100 </div> 101 </div><!-- .row --> 102 103 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 104 <div class="row"> 105 <input id="cachecontrol-input-nocache" 106 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-nocache-description" 107 type="radio" value="1" 108 <?php checked( $settings['cachecontrol'], 1 ); ?> 109 /> 110 <div> 111 <label for="cachecontrol-input-nocache"><?php esc_html( 'No-cache', 'frontpup' ); ?></label> 112 <p id="cachecontrol-input-nocache-description"> 113 <code><?php echo esc_html(__( 'Cache-Control: no-cache', 'frontpup' )); ?></code> 114 </p> 115 <p style="margin-top:10px;"> 116 <?php echo esc_html(__( 'No-cache headers.', 'frontpup' )); ?> 117 </p> 118 </div> 119 </div><!-- .row --> 120 121 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 122 <div class="row"> 123 <input id="cachecontrol-input-browser" 124 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-browser-description" 125 type="radio" value="2" 126 <?php checked( $settings['cachecontrol'], 2 ); ?> 127 128 /> 129 <div> 130 <label for="cachecontrol-input-browser"><?php esc_html( 'Browser Cache Only', 'frontpup' ); ?></label> 131 <p id="cachecontrol-input-browser-description"> 132 <code><?php echo esc_html(__( 'Cache-Control: private, max-age=VALUE', 'frontpup' )); ?></code> 133 </p> 134 <p style="margin-top:10px;"> 135 <?php echo esc_html(__( 'CloudFront will not cache content, only the browser..', 'frontpup' )); ?> 136 </p> 137 </div> 138 </div><!-- .row --> 139 140 <legend class="screen-reader-text"><?php echo 'test'; ?></legend> 141 <div class="row"> 142 <input id="cachecontrol-input-browser-cloudfront" 143 name="<?php echo esc_attr($this->settings_key); ?>[cachecontrol]" aria-describedby="cachecontrol-input-browser-cloudfront-description" 144 type="radio" value="3" 145 <?php checked( $settings['cachecontrol'], 3 ); ?> 146 /> 147 <div> 148 <label for="cachecontrol-input-browser-cloudfront"><?php esc_html( 'Browser and CloudFront Cache', 'frontpup' ); ?></label> 149 <p id="cachecontrol-input-browser-cloudfront-description"> 150 <code><?php echo esc_html(__( 'Cache-Control: public, max-age=VALUE', 'frontpup' )); ?></code> 151 </p> 152 <p style="margin-top:10px;"> 153 <?php echo esc_html(__( 'CloudFront and browser caching headers are added.', 'frontpup' )); ?> 154 </p> 155 </div> 156 </div><!-- .row --> 157 </fieldset><!-- .structure-selection --> 158 </td> 159 </tr> 160 </tbody> 161 </table> 162 163 <div id="frontpup-ttl-input-container"> 164 <table class="form-table permalink-structure" role="presentation"> 165 <tbody> 166 <tr> 167 <th scope="row"><?php echo esc_html(__( 'Max Age', 'frontpup' )); ?></th> 168 <td> 169 <p> 170 <input name="<?php echo esc_attr($this->settings_key); ?>[maxage]" id="frontpup-maxage" 171 type="number" value="<?php echo esc_attr( $settings['maxage'] ); ?>" 172 min="0" max="31536000" 173 aria-describedby="permalink-custom" class="medium-text" 174 /> 175 </p> 176 <p> 177 <?php echo esc_html(__( 'Specify the max age (in seconds) to cache content.', 'frontpup' )); ?> 178 </p> 179 <p id="frontpup-smaxage-checkbox"> 180 <label> 181 <input 182 type="hidden" 183 name="<?php echo esc_attr($this->settings_key); ?>[custom_smaxage_enabled]" 184 value="0" /> 185 <input 186 type="checkbox" 187 name="<?php echo esc_attr($this->settings_key); ?>[custom_smaxage_enabled]" 188 value="1" 189 onclick="document.getElementById('frontpup-smaxage-input-container').style.display = this.checked ? '' : 'none';" 190 <?php checked( isset( $settings['custom_smaxage_enabled'] ) && $settings['custom_smaxage_enabled'] ); ?> 191 /> 192 <?php echo esc_html(__( 'Set a specific max age for CloudFront caching.', 'frontpup' )); ?> 193 194 </label> 195 </p> 196 </td> 197 </tr> 198 </tbody> 199 </table> 200 <div id="frontpup-smaxage-input-container" style="<?php echo ( isset( $settings['custom_smaxage_enabled'] ) && $settings['custom_smaxage_enabled'] ) ? '' : 'display:none;'; ?>"> 201 <table class="form-table" role="presentation"> 202 <tbody> 203 <tr> 204 <th scope="row"><?php echo esc_html(__( 'CloudFront Max Age', 'frontpup' )); ?></th> 205 <td> 206 <p> 207 <input name="<?php echo esc_attr($this->settings_key); ?>[smaxage]" id="frontpup-smaxage" 208 type="number" value="<?php echo esc_attr( $settings['smaxage'] ); ?>" 209 min="0" max="31536000" 210 aria-describedby="permalink-custom" class="medium-text" 211 /> 212 </p> 213 <p> 214 <?php echo esc_html(__( 'Specify the max age (in seconds) for CloudFront to cache content.', 'frontpup' )); ?> 215 </p> 216 <p> 217 <?php echo esc_html(__( 'Adds s-maxage=VALUE to Cache-Control header.', 'frontpup' )); ?> 218 </p> 219 </td> 220 </tr> 221 </tbody> 222 </table> 223 </div><!-- end of frontpup-smaxage-input-container --> 224 </div><!-- end of frontpup-ttl-input-container --> 225 <?php 226 } 227 228 /** 229 * Sanitize settings before saving 230 */ 231 public function sanitize_settings( $input ) { 232 $output = []; 233 234 // boolean values 235 foreach ( ['custom_smaxage_enabled'] as $field ) { 236 $output[$field] = isset( $input[$field] ) ? boolval( $input[$field] ) : 0; 237 } 238 239 // Numeric values 240 foreach ( ['maxage', 'smaxage', 'cachecontrol'] as $field ) { 241 if ( isset( $input[$field] ) ) { 242 $output[$field] = intval( $input[$field] ); 243 } else { 244 $output[$field] = 0; 245 } 246 } 247 248 return $output; 249 } 250 251 /** 252 * Settings page HTML 253 */ 254 public function settings_page() { 255 ?> 256 <div class="wrap"> 257 <h1><?php echo esc_html(__('FrontPup, your CloudFront companion', 'frontpup')); ?></h1> 258 259 <form method="post" action="options.php"> 260 <?php 261 settings_fields( 'frontpup_plugin_settings_group' ); 262 do_settings_sections( 'frontpup-plugin' ); 263 $this->settings_content(); 264 submit_button(); 265 ?> 266 </form> 267 </div> 268 <?php 94 public function admin_init() { 95 // Set the page titles 96 $this->admin_views['welcome']->set_page_title( __('Welcome to FrontPup', 'frontpup') ); 97 $this->admin_views['cache-control']->set_page_title( __('Cache Settings', 'frontpup') ); 98 $this->admin_views['clear-cache']->set_page_title( __('Clear Cache Settings', 'frontpup') ); 99 100 // Register settings for each admin view 101 foreach( $this->admin_views as $view ) { 102 $view->register_settings(); 103 } 104 } 105 106 /** 107 * Add admin bar menu 108 * Include a drop down menu in the admin bar for quick access 109 */ 110 public function admin_bar_menu( $wp_admin_bar ) { 111 if ( !current_user_can( 'manage_options' ) ) { 112 return; 113 } 114 115 // Return if the enable clear cache is not set 116 $settings = get_option( 'frontpup_clear_cache', [] ); 117 if( empty($settings['clear_cache_enabled']) ) { 118 return; 119 } 120 121 $args = array( 122 'id' => 'frontpup_admin_menu', 123 'title' => __('FrontPup', 'frontpup'), 124 'href' => '', 125 'meta' => array( 'class' => 'frontpup-admin-bar-menu' ) 126 ); 127 $wp_admin_bar->add_node( $args ); 128 129 // Submenu: Cache Settings 130 $url = admin_url( 'admin.php?action=frontpup_clear_cache' ); 131 $nonceUrl = wp_nonce_url( $url, 'frontpup_clear_cache', 'frontpup_clear_cache_nonce' ); 132 $args = array( 133 'id' => 'frontpup-clear-cache', 134 'title' => __('Clear CloudFront Cache', 'frontpup'), 135 'href' => '#', 136 'parent'=> 'frontpup_admin_menu', 137 ); 138 $wp_admin_bar->add_node( $args ); 139 } 140 141 /** 142 * Admin enqueue scripts 143 */ 144 public function admin_enqueue_scripts( $hook ) { 145 146 // Determine if we have the clear cache enabled 147 $settings = get_option( 'frontpup_clear_cache', [] ); 148 if( empty($settings['clear_cache_enabled']) ) { 149 return; 150 } 151 152 $translation_array = array( 153 'dismiss' => __( 'Dismiss', 'frontpup' ), 154 'ajax_url' => admin_url('admin-ajax.php'), 155 'security_nonce' => wp_create_nonce('frontpup_clear_cache_nonce'), 156 ); 157 158 wp_enqueue_script( 'frontpup-clear-cache-script', plugin_dir_url( __FILE__ ) . 'admin/js/clear-cache.js', [], FRONTPUP_VERSION, true ); 159 wp_localize_script( 'frontpup-clear-cache-script', 'frontpupClearCache', $translation_array ); 160 } 161 162 /** 163 * WP AJax action for clearing cache 164 */ 165 public function wp_ajax_frontpup_clear_cache_action() { 166 167 $settings = get_option( 'frontpup_clear_cache', [] ); 168 if( empty($settings['clear_cache_enabled']) ) { 169 wp_send_json_error( __( 'This option is not available.', 'frontpup' ) ); 170 return; 171 } 172 173 // Check user capabilities 174 if ( !current_user_can( 'manage_options' ) ) { 175 wp_send_json_error( __( 'You do not have sufficient permissions to access this action.', 'frontpup' ) ); 176 return; 177 } 178 179 // Check nonce 180 if( !check_ajax_referer( 'frontpup_clear_cache_nonce', 'nonce', false ) ) { 181 wp_send_json_error( __( 'Invalid security token sent.', 'frontpup' ) ); 182 return; 183 } 184 185 // Perform cache clearing 186 $FrontPupObj = FrontPup::get_instance(); 187 $clearCacheObj = $FrontPupObj->get_clear_cache_instance(); 188 $result = $clearCacheObj->clear_cache(); 189 190 if ( $result === false ) { 191 $error_message = sprintf( '%s.', $clearCacheObj->get_last_error() == '' ? __( 'Unknown error occurred', 'frontpup' ) : $clearCacheObj->get_last_error() ); 192 wp_send_json_error( __( 'Error occurred while clearing cache: ', 'frontpup' ) . $error_message ); 193 return; 194 } else { 195 wp_send_json_success( __( 'CloudFront cache invalidation request completed successfully.', 'frontpup' ) ); 196 } 269 197 } 270 198 } 271 199 272 200 FrontPup_Admin::get_instance(); 201 202 // eof -
frontpup/trunk/frontpup.class.php
r3435512 r3450714 122 122 } 123 123 } 124 125 public function get_clear_cache_instance( $clearCacheSettings = [] ) { 126 require_once plugin_dir_path( __FILE__ ) . 'clear-cache.class.php'; 127 if( empty($clearCacheSettings) ) { 128 $clearCacheSettings = get_option( 'frontpup_clear_cache', [] ); // Clear cache settings 129 } 130 131 if( empty($clearCacheSettings) ) { 132 return null; 133 } 134 return new FrontPup_Clear_Cache( $clearCacheSettings ); 135 } 124 136 }; 125 137 -
frontpup/trunk/frontpup.php
r3435512 r3450714 5 5 * @package FrontPup 6 6 * @author Painless Analytics 7 * @copyright 202 5Painless Analytics7 * @copyright 2026 Painless Analytics 8 8 * @license GPL-2.0-or-later 9 9 * … … 11 11 * Plugin Name: FrontPup 12 12 * Plugin URI: https://www.painlessanalytics.com/frontpup-cloudfront-wordpress-plugin/ 13 * Description: FrontPup, your CloudFront companion - optimize your CloudFront distribution for your WordPress website.14 * Version: 1. 015 * Requires at least: 5.513 * Description: FrontPup, your CloudFront companion - Clear cache and optimize your CloudFront distribution for your WordPress website. 14 * Version: 1.1 15 * Requires at least: 6.0 16 16 * Tested up to: 6.9 17 * Requires PHP: 7.017 * Requires PHP: 8.1 18 18 * Author: Painless Analytics 19 19 * Author URI: https://www.painlessanalytics.com … … 26 26 27 27 define('FRONTPUP_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); 28 if( !defined('FRONTPUP_VERSION') ) { 29 define('FRONTPUP_VERSION', '1.1'); 30 } 31 if( !defined('FRONTPUP_REGION') ) { 32 define('FRONTPUP_REGION', 'us-east-1'); // Default region 33 } 28 34 29 35 if( !class_exists('FrontPup') ) { -
frontpup/trunk/readme.txt
r3435512 r3450714 1 1 === FrontPup === 2 Contributors: painlessanalytics, a ngelomandato2 Contributors: painlessanalytics, amandato 3 3 Donate link: https://www.painlessanalytics.com/frontpup-cloudfront-wordpress-plugin/ 4 4 Tags: cloudfront, aws, cdn, amazon, lightsail 5 Requires at least: 5.55 Requires at least: 6.0 6 6 Tested up to: 6.9 7 Stable tag: 1. 08 Requires PHP: 7.07 Stable tag: 1.1 8 Requires PHP: 8.1 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html 11 11 12 Your CloudFront companion.12 Your AWS CloudFront companion. Clear cache and optimize your CloudFront distribution for your WordPress website 13 13 14 14 == Description == 15 15 16 FrontPup allows you to maximize the settings available between the CloudFront Origin and your WordPress site. 16 Welcome to FrontPup, your CloudFront companion. 17 17 18 F eatures include:18 FrontPup allows you to maximize your WordPress website using the AWS CloudFront Content Delivery Network (CDN). 19 19 20 == REQUIREMENTS == 21 22 You __must__ be using the Amazon Web Services (AWS) [CloudFront](https://aws.amazon.com/cloudfront/) service to utilize this plugin. 23 24 == FrontPup Features == 25 26 * Clear CloudFront Cache (creates an Invalidation request) 20 27 * Set no-cache headers for all pages (great for development or testing) 21 * Set public Cache-Control headers for CloudFront and Browsers 22 * Set private Cache-Control headers for Browsers only 23 * Set separate max-age and s-maxage values 28 * Set public and private Cache-Control headers for caching in CloudFront and Browsers 29 * Set separate max-age (browser) and s-maxage (CloudFront) cache duration values 30 31 == Turbocharge your WordPress Website with CloudFront == 32 Using Amazon CloudFront in front of your WordPress website offers significant benefits by improving performance, security, and scalability. CloudFront is a Delivery Network (CDN) with over 750+ Points of Presence (PoPs) around the world plus over 1,100 PoPs within ISP networks. This highly optimized network makes it _extremely efficient_ at delivering your website to your visitors anywhere around the world. "PoP" locations are designed to reduce latency by caching content closer to your site's visitors. 33 34 **Performance** 35 36 * **Faster Loading Times**, static content (pages, images, CSS, JavaScript) is cached at "edge locations" around the world 37 * **Improved User Experience**, Faster load times lead to higher user engagement, reduced bounce rates, and improved search engine optimization (SEO) rankings 38 * **Reduced Server Load**, by serving cached content from edge locations, CloudFront minimizes requests to your WordPress website 39 40 When your website is optimized for performance your [PageSpeed Lighthouse scores](https://pagespeed.web.dev/) should improve. 41 42 **Enhanced Security** 43 44 * **DDoS Protection**, includes AWS Shield Standard 45 * **SSL/TLS Security**, force https only and includes free SSL Certificates 46 * **AWS WAF**, a Web Application Firewall with a depth of options including specific WordPress protections (may incur additional costs) 47 48 You should achieve a grade of "A" on [Qualys SSL Server Test](https://www.ssllabs.com/ssltest/) when CloudFront is configured with the recommended TLSv1.2_2021 or newer security policy. 49 50 **Scalability and Reliability** 51 52 * **Global Reach** with over 750 PoPs plus over 1,100 PoPs within ISP networks 53 * **High Availability**, can serve cached content when site is down 54 * **Cost Efficiency**, can be cost-effective, especially for websites with high traffic with the new [CloudFront flat-rate pricing plans](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/flat-rate-pricing-plan.html) 55 56 **Technology** 57 58 * **IPv6**, a superior protocol to IPv4 and in some regions of the world is the only protocol that is available 59 * **HTTP/2 and HTTP/3** improve web performance through faster loading speeds, enhanced security, and better resource handling 60 * **Gzip and Brotli compression**, smaller file sizes improve application performance by delivering your content faster to visitors 61 * **Multi-Proxy**, route specific path patterns to other web applications easily by adding additional "Origins", allowing you to host more than just WordPress with the same hostname 62 63 Learn more about [AWS CloudFront](https://aws.amazon.com/cloudfront/). 64 65 == Developed by an AWS Community Builder == 66 FrontPup is developed and maintained by [Angelo Mandato](https://angelo.mandato.com), an [AWS Community Builder](https://builder.aws.com/community/@angelomandato). Angelo has been developing WordPress plugins and themes since 2005 and has been architecting applications including WordPress hosted on Amazon Web Services since 2007. 67 68 == Installation == 69 70 = Installation from within WordPress = 71 72 1. Visit **Plugins > Add New**. 73 2. Search for **FrontPup**. 74 3. Install and activate the FrontPup plugin. 75 76 = Manual installation = 77 78 1. Upload the entire `frontpup` folder to the `/wp-content/plugins/` directory. 79 2. Visit **Plugins**. 80 3. Activate the FrontPup plugin. 81 82 = After activation = 83 84 1. Visit the new **FrontPup** menu. 85 2. Enable the options you would like to use. 86 87 If you configure Clear Cache Settings, you can now use the FrontPup admin bar menu option to quickly clear the cache. This action uses AJAX and will perform the action without leaving the page or disrupting your work. 24 88 25 89 == Frequently Asked Questions == … … 27 91 = Do I need an AWS CloudFront to use this plugin? = 28 92 29 Yes, you need an AWS account with CloudFront setup for your website. 93 Yes, you need an AWS account with [CloudFront](https://aws.amazon.com/cloudfront/) setup for your website. 94 95 = Do I need to host my WordPress site on AWS? = 96 97 No, but CloudFront is most effective when used within the AWS network. 98 99 = What is the best way to host a WordPress website on AWS? = 100 101 There are many ways to host a WordPress website on AWS. Here is quick list. 102 103 * Lightsail - A CPanel like approach to setting up a WordPress website with only a few clicks 104 * EC2 Instance(s) - Run your own server(s) to host your WordPress website 105 * ECS Tasks - Run Docker containers using the AWS Elastic Container Service 106 * EKS - Run WordPress on AWS Elastic Kubernetes Service 107 108 There are thousands of formulas online that explain how to host WordPress on AWS. The method you pick comes down to the architecture you want to use and how much complexity you want with managing your website. 30 109 31 110 == Screenshots == 32 111 33 1. Settings screenshot 112 1. Welcome to FrontPup with CloudFront 113 2. Welcome screen without CloudFront 114 3. Page Cache-Control settings 115 4. Clear cache settings 116 5. Clear CloudFront cache from WordPress admin bar 34 117 35 118 == Changelog == 36 119 120 The FrontPup plugin is maintained on GitHub [https://github.com/painlessanalytics/frontpup](https://github.com/painlessanalytics/frontpup). Code contributions are welcome. 121 122 Changelog 123 124 = 1.1 = 125 126 Released: 2026-01-30 127 128 Clear cache functionality added. 129 130 * Added welcome page for the wp-admin 131 * Added clear cache settings page 132 * Reorganized admin class, new base class for future settings pages 133 * Moved views to subfolder of admin folder 134 * Added FrontPup admin bar menu bar option with "Clear CloudFront Cache" in sub menu (Made it a sub menu so you have to click twice to avoid accidental cache clearing) 135 * Ajax code for clearing cache created. For now only users who can manage settings can clear the cache (to be customizable in future versions) 136 37 137 = 1.0 = 138 139 Released: 2026-01-08 140 38 141 * First version of this plugin 142 143 The entire changelog is available on GitHub: [https://github.com/painlessanalytics/frontpup/blob/main/CHANGELOG.md](https://github.com/painlessanalytics/frontpup/blob/main/CHANGELOG.md) 39 144 40 145 == Upgrade Notice ==
Note: See TracChangeset
for help on using the changeset viewer.