[
  {
    "path": ".coveralls.yml",
    "content": "service_name: travis-ci\n"
  },
  {
    "path": ".gitignore",
    "content": "/vendor\ncomposer.phar\ncomposer.lock\n.DS_Store\n"
  },
  {
    "path": ".styleci.yml",
    "content": "preset: none\nenabled:\n - array_element_white_space_after_comma\n - blankline_after_open_tag\n - braces\n - concat_without_spaces\n - double_arrow_multiline_whitespaces\n - duplicate_semicolon\n - elseif\n - empty_return\n - encoding\n - eof_ending\n - function_call_space\n - function_declaration\n - include\n - indentation\n - join_function\n - line_after_namespace\n - linefeed\n - list_commas\n - logical_not_operators_with_successor_space\n - short_array_syntax\n - lowercase_constants\n - lowercase_keywords\n - method_argument_space\n - multiline_array_trailing_comma\n - multiline_spaces_before_semicolon\n - multiple_use\n - namespace_no_leading_whitespace\n - no_blank_lines_after_class_opening\n - no_empty_lines_after_phpdocs\n - no_extra_consecutive_blank_lines\n - object_operator\n - operators_spaces\n - ordered_use\n - parenthesis\n - phpdoc_indent\n - phpdoc_inline_tag\n - phpdoc_no_access\n - phpdoc_no_package\n - phpdoc_scalar\n - phpdoc_short_description\n - phpdoc_to_comment\n - phpdoc_trim\n - phpdoc_type_to_var\n - phpdoc_var_without_name\n - remove_leading_slash_use\n - return\n - self_accessor\n - short_echo_tag\n - short_tag\n - single_array_no_trailing_comma\n - single_blank_line_before_namespace\n - single_line_after_imports\n - single_quote\n - spaces_before_semicolon\n - spaces_cast\n - standardize_not_equal\n - ternary_spaces\n - trailing_spaces\n - trim_array_spaces\n - unalign_equals\n - unary_operators_spaces\n - visibility\n - whitespacy_lines"
  },
  {
    "path": ".travis.yml",
    "content": "language: php\n\nmatrix:\n  include:\n    - php: 5.5\n    - php: 5.6\n    - php: 7.0\n    - php: 7.1\n    - php: 7.2\n    - php: 7.3\n    - php: 7.4\n    - php: nightly\n  allow_failures:\n    - php: nightly\n  fast_finish: true\n\nbefore_script:\n  - travis_retry composer self-update\n  - travis_retry composer install --prefer-source --no-interaction --dev\n\nscript: vendor/bin/phpunit\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2017 Mark Beech\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "README.md",
    "content": "Laravel Crawler Detect\n=======\n[![Build Status](https://img.shields.io/travis/JayBizzle/Laravel-Crawler-Detect/master.svg?style=flat-square)](https://travis-ci.org/JayBizzle/Laravel-Crawler-Detect) [![Total Downloads](https://img.shields.io/packagist/dt/JayBizzle/Laravel-Crawler-Detect.svg?style=flat-square)](https://packagist.org/packages/jaybizzle/laravel-crawler-detect)\n[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/JayBizzle/Laravel-Crawler-Detect.svg?style=flat-square)](https://scrutinizer-ci.com/g/JayBizzle/Laravel-Crawler-Detect/?branch=master) [![StyleCI](https://styleci.io/repos/32484055/shield)](https://styleci.io/repos/32484055)\n\nA Laravel wrapper for [CrawlerDetect](https://github.com/JayBizzle/Crawler-Detect) - the web crawler detection library\n\nInstallation\n============\n\nRun `composer require jaybizzle/laravel-crawler-detect 1.*` or add `\"jaybizzle/laravel-crawler-detect\": \"1.*\"` to your `composer.json` file.\n\nThe last version compatible with Laravel 4 was [v1.0.2](https://github.com/JayBizzle/Laravel-Crawler-Detect/tree/v1.0.2) so if you need that, you will have to fix your `composer.json` to that specific version.\n\nAdd the following to the `providers` array in your `config/app.php` file..\n\n```PHP\n  Jaybizzle\\LaravelCrawlerDetect\\LaravelCrawlerDetectServiceProvider::class,\n```\n\n...and the following to your `aliases` array...\n\n```PHP\n  'Crawler'   => Jaybizzle\\LaravelCrawlerDetect\\Facades\\LaravelCrawlerDetect::class,\n```\n\nLaravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.\n\nUsage\n==================\n```PHP\nuse Crawler;\n\n// Check current 'visitors' user agent\nif(Crawler::isCrawler()) {\n  // true if crawler user agent detected\n}\n\n\n// Pass a user agent as a string\nif(Crawler::isCrawler('Mozilla/5.0 (compatible; aiHitBot/2.9; +https://www.aihitdata.com/about)')) {\n  // true if crawler user agent detected\n}\n"
  },
  {
    "path": "composer.json",
    "content": "{\n    \"name\": \"jaybizzle/laravel-crawler-detect\",\n    \"description\": \"A Laravel package to detect web crawlers via the user agent\",\n    \"keywords\": [\"laravel\", \"spider\", \"bot\", \"detect\", \"user-agent\", \"crawler\", \"crawler detect\", \"crawler detector\", \"crawlerdetect\", \"php crawler detect\"],\n    \"homepage\": \"http://github.com/JayBizzle/Laravel-Crawler-Detect\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Mark Beech\",\n            \"email\": \"mbeech@mark-beech.co.uk\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.4.0\",\n        \"jaybizzle/crawler-detect\": \"1.*\"\n    },\n    \"require-dev\": {\n        \"orchestra/testbench\": \"^3.2|^3.4\",\n        \"phpunit/phpunit\": \"^4.8|^5.5|^6.5\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Jaybizzle\\\\LaravelCrawlerDetect\\\\\": \"src/\"\n        }\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"providers\": [\n                \"Jaybizzle\\\\LaravelCrawlerDetect\\\\LaravelCrawlerDetectServiceProvider\"\n            ],\n            \"aliases\": {\n                \"Crawler\": \"Jaybizzle\\\\LaravelCrawlerDetect\\\\Facades\\\\LaravelCrawlerDetect\"\n            }\n        }\n    },\n    \"minimum-stability\": \"stable\"\n}\n"
  },
  {
    "path": "phpunit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit backupGlobals=\"false\"\n         backupStaticAttributes=\"false\"\n         bootstrap=\"tests/bootstrap.php\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n         processIsolation=\"false\"\n         stopOnFailure=\"false\"\n         syntaxCheck=\"false\"\n>\n    <testsuites>\n        <testsuite name=\"Package Test Suite\">\n            <directory suffix=\".php\">./tests/</directory>\n        </testsuite>\n    </testsuites>\n</phpunit>\n"
  },
  {
    "path": "src/Facades/LaravelCrawlerDetect.php",
    "content": "<?php\n\nnamespace Jaybizzle\\LaravelCrawlerDetect\\Facades;\n\nuse Illuminate\\Support\\Facades\\Facade;\n\nclass LaravelCrawlerDetect extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'LaravelCrawlerDetect';\n    }\n}\n"
  },
  {
    "path": "src/LaravelCrawlerDetectServiceProvider.php",
    "content": "<?php\n\nnamespace Jaybizzle\\LaravelCrawlerDetect;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass LaravelCrawlerDetectServiceProvider extends ServiceProvider\n{\n    /**\n     * Indicates if loading of the provider is deferred.\n     *\n     * @var bool\n     */\n    protected $defer = false;\n\n    /**\n     * Bootstrap the application events.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        //$this->package('Jaybizzle/LaravelCrawlerDetect');\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('LaravelCrawlerDetect', function () {\n            return new \\Jaybizzle\\CrawlerDetect\\CrawlerDetect(request()->server());\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [];\n    }\n}\n"
  },
  {
    "path": "tests/UATests.php",
    "content": "<?php\n\nuse Jaybizzle\\CrawlerDetect\\CrawlerDetect;\nuse Orchestra\\Testbench\\TestCase;\n\nclass UATests extends TestCase\n{\n    protected $LaravelCrawlerDetect;\n\n    protected function getPackageProviders($app)\n    {\n        return ['Jaybizzle\\LaravelCrawlerDetect\\LaravelCrawlerDetectServiceProvider'];\n    }\n\n    protected function getPackageAliases($app)\n    {\n        return [\n            'Crawler' => 'Jaybizzle\\LaravelCrawlerDetect\\Facades\\LaravelCrawlerDetect',\n        ];\n    }\n\n    public function setUp()\n    {\n        parent::setUp();\n        $this->LaravelCrawlerDetect = new CrawlerDetect();\n    }\n\n    protected function getEnvironmentSetUp($app)\n    {\n        // reset base path to point to our package's src directory\n        $app['path.base'] = __DIR__.'/../src';\n    }\n\n    public function testBots()\n    {\n        $lines = file('https://raw.githubusercontent.com/JayBizzle/Crawler-Detect/master/tests/crawlers.txt');\n\n        foreach ($lines as $line) {\n            $test = Crawler::isCrawler($line);\n            $this->assertTrue($test, $line);\n        }\n    }\n\n    public function testDevices()\n    {\n        $lines = file('https://raw.githubusercontent.com/JayBizzle/Crawler-Detect/master/tests/devices.txt');\n\n        foreach ($lines as $line) {\n            $test = Crawler::isCrawler($line);\n            $this->assertFalse($test, $line);\n        }\n    }\n}\n"
  },
  {
    "path": "tests/bootstrap.php",
    "content": "<?php\n\nrequire_once __DIR__.'/../vendor/autoload.php';\n\nif (class_exists('PHPUnit_Framework_TestCase')) {\n    class_alias('PHPUnit_Framework_TestCase', 'PHPUnit\\Framework\\TestCase');\n}\n"
  }
]