From 46944e8f6220fb9c833853cd828857474269a0b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Verstraeten?= Date: Mon, 19 Jun 2017 08:43:52 +0200 Subject: [PATCH] initial commit --- .env | 33 + .gitattributes | 5 + .gitignore | 5 +- README.md | 159 +- app/Console/Kernel.php | 40 + app/Exceptions/Handler.php | 65 + app/Http/Controllers/BaseController.php | 10 + app/Http/Controllers/Controller.php | 11 + .../Controllers}/DashboardController.php | 25 +- .../Controllers}/HealthController.php | 10 +- .../Controllers}/ImageController.php | 34 +- .../Controllers}/LoginController.php | 6 +- .../Controllers}/SettingsController.php | 80 +- .../Controllers}/SystemController.php | 70 +- .../Controllers}/TranslateController.php | 6 +- .../Controllers}/UserController.php | 10 +- .../Controllers}/WebhookController.php | 2 +- .../Controllers}/WelcomeController.php | 6 +- app/Http/Kernel.php | 60 + app/Http/Middleware/BasicAuth.php | 42 + app/Http/Middleware/EncryptCookies.php | 17 + .../Middleware/RedirectIfAuthenticated.php | 26 + app/Http/Middleware/TrimStrings.php | 18 + app/Http/Middleware/VerifyCsrfToken.php | 17 + app/{commands => Http/Models}/.gitkeep | 0 .../cache => Http/Models/Cache}/Cache.php | 6 +- .../Models/Cache}/CacheInterface.php | 6 +- .../Models/Config}/FileLoader.php | 4 +- .../data => Http/Models/Data}/Heap.php | 2 +- .../Models/Filesystem}/FileInterface.php | 12 +- .../Models/Filesystem}/Image.php | 6 +- .../ConfigReader}/ConfigReaderInterface.php | 2 +- .../ConfigReader}/ConfigXMLReader.php | 18 +- .../Repositories/Date}/Carbon.php | 6 +- .../Repositories/Date}/DateInterface.php | 4 +- .../Filesystem}/AmazonS3FileSystem.php | 14 +- .../Filesystem}/DiskFileSystem.php | 12 +- .../Filesystem}/FileSystemInterface.php | 10 +- .../ImageHandler}/ImageFileSystemHandler.php | 146 +- .../ImageHandler}/ImageHandlerInterface.php | 10 +- .../Support}/SupportInterface.php | 6 +- .../Repositories/Support}/ZendeskSupport.php | 16 +- .../Repositories/System}/LinuxSystem.php | 10 +- .../Repositories/System}/OSSystem.php | 146 +- .../Repositories/System}/OSXSystem.php | 6 +- .../Repositories/System}/SystemInterface.php | 6 +- app/Providers/AppServiceProvider.php | 43 + app/Providers/AuthServiceProvider.php | 30 + app/Providers/BroadcastServiceProvider.php | 21 + app/Providers/EventServiceProvider.php | 32 + app/Providers/RouteServiceProvider.php | 73 + app/User.php | 29 + app/api.php | 142 - app/config/app.php | 228 -- app/config/auth.php | 71 - app/config/aws.php | 17 - app/config/cache.php | 89 - app/config/compile.php | 18 - app/config/database.php | 124 - app/config/kerberos.php | 17 - app/config/mail.php | 124 - app/config/queue.php | 85 - app/config/remote.php | 59 - app/config/services.php | 31 - app/config/session.php | 140 - app/config/view.php | 31 - app/config/workbench.php | 31 - app/controllers/.gitkeep | 0 app/controllers/BaseController.php | 12 - app/database/.gitkeep | 0 app/database/migrations/.gitkeep | 0 app/database/seeds/.gitkeep | 0 app/filters.php | 199 - app/lang/bg/dashboard.php | 30 - app/lang/bg/general.php | 58 - app/lang/bg/pagination.php | 20 - app/lang/bg/reminders.php | 24 - app/lang/bg/settings.php | 177 - app/lang/bg/system.php | 98 - app/lang/bg/updateprofile.php | 38 - app/lang/bg/validation.php | 104 - app/lang/bg/welcome.php | 64 - app/lang/de/cloud.php | 21 - app/lang/de/dashboard.php | 32 - app/lang/de/general.php | 59 - app/lang/de/pagination.php | 20 - app/lang/de/reminders.php | 24 - app/lang/de/settings.php | 180 - app/lang/de/system.php | 98 - app/lang/de/updateprofile.php | 38 - app/lang/de/validation.php | 104 - app/lang/de/welcome.php | 60 - app/lang/en/dashboard.php | 32 - app/lang/en/general.php | 58 - app/lang/en/pagination.php | 20 - app/lang/en/reminders.php | 24 - app/lang/en/settings.php | 177 - app/lang/en/system.php | 98 - app/lang/en/updateprofile.php | 38 - app/lang/en/validation.php | 104 - app/lang/en/welcome.php | 64 - app/lang/fr/dashboard.php | 32 - app/lang/fr/general.php | 59 - app/lang/fr/pagination.php | 20 - app/lang/fr/reminders.php | 24 - app/lang/fr/settings.php | 177 - app/lang/fr/system.php | 98 - app/lang/fr/updateprofile.php | 36 - app/lang/fr/validation.php | 104 - app/lang/fr/welcome.php | 60 - app/lang/nl/dashboard.php | 32 - app/lang/nl/general.php | 59 - app/lang/nl/pagination.php | 20 - app/lang/nl/reminders.php | 24 - app/lang/nl/settings.php | 177 - app/lang/nl/system.php | 98 - app/lang/nl/updateprofile.php | 38 - app/lang/nl/validation.php | 104 - app/lang/nl/welcome.php | 60 - app/lang/pt/dashboard.php | 32 - app/lang/pt/general.php | 61 - app/lang/pt/pagination.php | 20 - app/lang/pt/reminders.php | 24 - app/lang/pt/settings.php | 175 - app/lang/pt/system.php | 92 - app/lang/pt/updateprofile.php | 38 - app/lang/pt/validation.php | 104 - app/lang/pt/welcome.php | 60 - app/models/.gitkeep | 0 app/repositories.php | 14 - app/routes.php | 64 - app/start/artisan.php | 13 - app/start/global.php | 84 - app/start/local.php | 3 - app/storage/.gitignore | 1 - app/storage/logs/.gitignore | 2 - app/storage/meta/.gitignore | 2 - app/storage/sessions/.gitignore | 2 - app/storage/views/.gitignore | 2 - app/tests/TestCase.php | 18 - .../ImageFileSystemHandlerSequenceTest.php | 557 --- app/traits/GetVersions.php | 36 +- artisan | 41 +- bootstrap/app.php | 55 + bootstrap/autoload.php | 62 +- bootstrap/cache/.gitignore | 2 + bootstrap/paths.php | 57 - bootstrap/start.php | 74 - composer.json | 98 +- composer.lock | 3412 +++++++++++++++++ config/app.php | 270 ++ config/auth.php | 102 + config/broadcasting.php | 58 + config/cache.php | 91 + config/database.php | 120 + config/filesystems.php | 68 + .../packages/.gitkeep => config/kerberos.php | 0 config/mail.php | 123 + config/queue.php | 85 + config/services.php | 38 + config/session.php | 179 + config/view.php | 33 + database/.gitignore | 1 + database/factories/ModelFactory.php | 24 + .../2014_10_12_000000_create_users_table.php | 35 + ...12_100000_create_password_resets_table.php | 32 + database/seeds/DatabaseSeeder.php | 16 + docker/Dockerfile | 66 - docker/README.md | 11 - docker/run.sh | 3 - docker/supervisord.conf | 36 - docker/web.conf | 27 - mirror | 983 ----- package.json | 21 + phpunit.xml | 25 +- public/.bowerrc | 3 - public/.htaccess | 7 +- public/images/kerberos_multihead.svg | 522 +-- public/index.php | 33 +- public/web.config | 23 + resources/assets/js/app.js | 22 + resources/assets/js/bootstrap.js | 53 + resources/assets/js/components/Example.vue | 23 + resources/assets/sass/_variables.scss | 38 + resources/assets/sass/app.scss | 9 + resources/lang/en/auth.php | 19 + resources/lang/en/pagination.php | 19 + resources/lang/en/passwords.php | 22 + resources/lang/en/validation.php | 121 + {app => resources}/views/cloud.blade.php | 0 .../views/controls/bool.blade.php | 0 .../views/controls/directory.blade.php | 0 .../views/controls/dropdown.blade.php | 0 .../views/controls/file.blade.php | 0 .../views/controls/hullselection.blade.php | 0 .../views/controls/number.blade.php | 0 .../controls/rectangeselection.blade.php | 0 .../views/controls/text.blade.php | 0 .../views/controls/timeselection.blade.php | 0 .../views/controls/timezone.blade.php | 0 .../views/controls/twolines.blade.php | 0 {app => resources}/views/dashboard.blade.php | 366 +- .../views/data/timezones.blade.php | 0 .../views/errors/capture-missing.blade.php | 0 .../views/errors/config-missing.blade.php | 0 .../views/errors/permission-denied.blade.php | 0 .../views/errors/template.blade.php | 0 {app => resources}/views/image.blade.php | 0 {app => resources}/views/login.blade.php | 0 {app => resources}/views/photoswipe.blade.php | 0 {app => resources}/views/settings.blade.php | 0 .../views/settings/advanced.blade.php | 0 .../views/settings/basic.blade.php | 0 .../views/settings_controls.blade.php | 0 {app => resources}/views/system.blade.php | 0 {app => resources}/views/template.blade.php | 0 {app => resources}/views/welcome.blade.php | 0 routes/api.php | 159 + routes/channels.php | 16 + routes/console.php | 18 + routes/web.php | 62 + server.php | 22 +- storage/app/.gitignore | 3 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 8 + storage/framework/cache/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tests/CreatesApplication.php | 22 + tests/Feature/ExampleTest.php | 23 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 20 + webpack.mix.js | 15 + 235 files changed, 7022 insertions(+), 8237 deletions(-) create mode 100644 .env create mode 100644 .gitattributes create mode 100644 app/Console/Kernel.php create mode 100644 app/Exceptions/Handler.php create mode 100755 app/Http/Controllers/BaseController.php create mode 100644 app/Http/Controllers/Controller.php rename app/{controllers => Http/Controllers}/DashboardController.php (73%) rename app/{controllers => Http/Controllers}/HealthController.php (86%) rename app/{controllers => Http/Controllers}/ImageController.php (94%) rename app/{controllers => Http/Controllers}/LoginController.php (94%) rename app/{controllers => Http/Controllers}/SettingsController.php (92%) rename app/{controllers => Http/Controllers}/SystemController.php (93%) rename app/{controllers => Http/Controllers}/TranslateController.php (72%) rename app/{controllers => Http/Controllers}/UserController.php (94%) rename app/{controllers => Http/Controllers}/WebhookController.php (83%) rename app/{controllers => Http/Controllers}/WelcomeController.php (94%) create mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Middleware/BasicAuth.php create mode 100644 app/Http/Middleware/EncryptCookies.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/TrimStrings.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php rename app/{commands => Http/Models}/.gitkeep (100%) rename app/{models/cache => Http/Models/Cache}/Cache.php (88%) rename app/{models/cache => Http/Models/Cache}/CacheInterface.php (55%) rename app/{models/config => Http/Models/Config}/FileLoader.php (92%) rename app/{models/data => Http/Models/Data}/Heap.php (81%) rename app/{models/filesystem => Http/Models/Filesystem}/FileInterface.php (94%) rename app/{models/filesystem => Http/Models/Filesystem}/Image.php (98%) rename app/{repositories/configreader => Http/Repositories/ConfigReader}/ConfigReaderInterface.php (89%) rename app/{repositories/configreader => Http/Repositories/ConfigReader}/ConfigXMLReader.php (96%) rename app/{repositories/date => Http/Repositories/Date}/Carbon.php (93%) rename app/{repositories/date => Http/Repositories/Date}/DateInterface.php (89%) rename app/{repositories/filesystem => Http/Repositories/Filesystem}/AmazonS3FileSystem.php (92%) rename app/{repositories/filesystem => Http/Repositories/Filesystem}/DiskFileSystem.php (87%) rename app/{repositories/filesystem => Http/Repositories/Filesystem}/FileSystemInterface.php (70%) rename app/{repositories/imagehandler => Http/Repositories/ImageHandler}/ImageFileSystemHandler.php (95%) rename app/{repositories/imagehandler => Http/Repositories/ImageHandler}/ImageHandlerInterface.php (93%) rename app/{repositories/support => Http/Repositories/Support}/SupportInterface.php (61%) rename app/{repositories/support => Http/Repositories/Support}/ZendeskSupport.php (95%) rename app/{repositories/system => Http/Repositories/System}/LinuxSystem.php (86%) rename app/{repositories/system => Http/Repositories/System}/OSSystem.php (95%) rename app/{repositories/system => Http/Repositories/System}/OSXSystem.php (50%) rename app/{repositories/system => Http/Repositories/System}/SystemInterface.php (60%) create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/AuthServiceProvider.php create mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 app/User.php delete mode 100755 app/api.php delete mode 100644 app/config/app.php delete mode 100755 app/config/auth.php delete mode 100644 app/config/aws.php delete mode 100755 app/config/cache.php delete mode 100755 app/config/compile.php delete mode 100755 app/config/database.php delete mode 100644 app/config/kerberos.php delete mode 100755 app/config/mail.php delete mode 100755 app/config/queue.php delete mode 100755 app/config/remote.php delete mode 100755 app/config/services.php delete mode 100755 app/config/session.php delete mode 100755 app/config/view.php delete mode 100755 app/config/workbench.php delete mode 100755 app/controllers/.gitkeep delete mode 100755 app/controllers/BaseController.php delete mode 100755 app/database/.gitkeep delete mode 100755 app/database/migrations/.gitkeep delete mode 100755 app/database/seeds/.gitkeep delete mode 100755 app/filters.php delete mode 100644 app/lang/bg/dashboard.php delete mode 100644 app/lang/bg/general.php delete mode 100755 app/lang/bg/pagination.php delete mode 100755 app/lang/bg/reminders.php delete mode 100644 app/lang/bg/settings.php delete mode 100644 app/lang/bg/system.php delete mode 100644 app/lang/bg/updateprofile.php delete mode 100755 app/lang/bg/validation.php delete mode 100644 app/lang/bg/welcome.php delete mode 100644 app/lang/de/cloud.php delete mode 100644 app/lang/de/dashboard.php delete mode 100644 app/lang/de/general.php delete mode 100644 app/lang/de/pagination.php delete mode 100644 app/lang/de/reminders.php delete mode 100644 app/lang/de/settings.php delete mode 100644 app/lang/de/system.php delete mode 100644 app/lang/de/updateprofile.php delete mode 100644 app/lang/de/validation.php delete mode 100644 app/lang/de/welcome.php delete mode 100644 app/lang/en/dashboard.php delete mode 100644 app/lang/en/general.php delete mode 100755 app/lang/en/pagination.php delete mode 100755 app/lang/en/reminders.php delete mode 100644 app/lang/en/settings.php delete mode 100644 app/lang/en/system.php delete mode 100644 app/lang/en/updateprofile.php delete mode 100755 app/lang/en/validation.php delete mode 100644 app/lang/en/welcome.php delete mode 100644 app/lang/fr/dashboard.php delete mode 100644 app/lang/fr/general.php delete mode 100755 app/lang/fr/pagination.php delete mode 100755 app/lang/fr/reminders.php delete mode 100644 app/lang/fr/settings.php delete mode 100644 app/lang/fr/system.php delete mode 100644 app/lang/fr/updateprofile.php delete mode 100755 app/lang/fr/validation.php delete mode 100644 app/lang/fr/welcome.php delete mode 100644 app/lang/nl/dashboard.php delete mode 100644 app/lang/nl/general.php delete mode 100755 app/lang/nl/pagination.php delete mode 100755 app/lang/nl/reminders.php delete mode 100644 app/lang/nl/settings.php delete mode 100644 app/lang/nl/system.php delete mode 100644 app/lang/nl/updateprofile.php delete mode 100755 app/lang/nl/validation.php delete mode 100644 app/lang/nl/welcome.php delete mode 100644 app/lang/pt/dashboard.php delete mode 100644 app/lang/pt/general.php delete mode 100644 app/lang/pt/pagination.php delete mode 100644 app/lang/pt/reminders.php delete mode 100644 app/lang/pt/settings.php delete mode 100644 app/lang/pt/system.php delete mode 100644 app/lang/pt/updateprofile.php delete mode 100644 app/lang/pt/validation.php delete mode 100644 app/lang/pt/welcome.php delete mode 100755 app/models/.gitkeep delete mode 100755 app/repositories.php delete mode 100755 app/routes.php delete mode 100755 app/start/artisan.php delete mode 100755 app/start/global.php delete mode 100755 app/start/local.php delete mode 100755 app/storage/.gitignore delete mode 100755 app/storage/logs/.gitignore delete mode 100755 app/storage/meta/.gitignore delete mode 100755 app/storage/sessions/.gitignore delete mode 100755 app/storage/views/.gitignore delete mode 100755 app/tests/TestCase.php delete mode 100644 app/tests/repositories/ImageFileSystemHandlerSequenceTest.php create mode 100644 bootstrap/app.php mode change 100755 => 100644 bootstrap/autoload.php create mode 100644 bootstrap/cache/.gitignore delete mode 100755 bootstrap/paths.php delete mode 100755 bootstrap/start.php mode change 100755 => 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/broadcasting.php create mode 100644 config/cache.php create mode 100644 config/database.php create mode 100644 config/filesystems.php rename app/config/packages/.gitkeep => config/kerberos.php (100%) mode change 100755 => 100644 create mode 100644 config/mail.php create mode 100644 config/queue.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 config/view.php create mode 100644 database/.gitignore create mode 100644 database/factories/ModelFactory.php create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php create mode 100644 database/seeds/DatabaseSeeder.php delete mode 100644 docker/Dockerfile delete mode 100644 docker/README.md delete mode 100644 docker/run.sh delete mode 100644 docker/supervisord.conf delete mode 100644 docker/web.conf delete mode 100755 mirror create mode 100644 package.json mode change 100755 => 100644 phpunit.xml delete mode 100755 public/.bowerrc mode change 100755 => 100644 public/.htaccess create mode 100644 public/web.config create mode 100644 resources/assets/js/app.js create mode 100644 resources/assets/js/bootstrap.js create mode 100644 resources/assets/js/components/Example.vue create mode 100644 resources/assets/sass/_variables.scss create mode 100644 resources/assets/sass/app.scss create mode 100644 resources/lang/en/auth.php create mode 100644 resources/lang/en/pagination.php create mode 100644 resources/lang/en/passwords.php create mode 100644 resources/lang/en/validation.php rename {app => resources}/views/cloud.blade.php (100%) rename {app => resources}/views/controls/bool.blade.php (100%) rename {app => resources}/views/controls/directory.blade.php (100%) rename {app => resources}/views/controls/dropdown.blade.php (100%) rename {app => resources}/views/controls/file.blade.php (100%) rename {app => resources}/views/controls/hullselection.blade.php (100%) rename {app => resources}/views/controls/number.blade.php (100%) rename {app => resources}/views/controls/rectangeselection.blade.php (100%) rename {app => resources}/views/controls/text.blade.php (100%) rename {app => resources}/views/controls/timeselection.blade.php (100%) rename {app => resources}/views/controls/timezone.blade.php (100%) rename {app => resources}/views/controls/twolines.blade.php (100%) rename {app => resources}/views/dashboard.blade.php (98%) rename {app => resources}/views/data/timezones.blade.php (100%) rename {app => resources}/views/errors/capture-missing.blade.php (100%) rename {app => resources}/views/errors/config-missing.blade.php (100%) rename {app => resources}/views/errors/permission-denied.blade.php (100%) rename {app => resources}/views/errors/template.blade.php (100%) rename {app => resources}/views/image.blade.php (100%) rename {app => resources}/views/login.blade.php (100%) rename {app => resources}/views/photoswipe.blade.php (100%) rename {app => resources}/views/settings.blade.php (100%) rename {app => resources}/views/settings/advanced.blade.php (100%) rename {app => resources}/views/settings/basic.blade.php (100%) rename {app => resources}/views/settings_controls.blade.php (100%) rename {app => resources}/views/system.blade.php (100%) rename {app => resources}/views/template.blade.php (100%) rename {app => resources}/views/welcome.blade.php (100%) create mode 100644 routes/api.php create mode 100644 routes/channels.php create mode 100644 routes/console.php create mode 100644 routes/web.php mode change 100755 => 100644 server.php create mode 100644 storage/app/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tests/CreatesApplication.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 webpack.mix.js diff --git a/.env b/.env new file mode 100644 index 0000000..6d739aa --- /dev/null +++ b/.env @@ -0,0 +1,33 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY=base64:XL8nQ5mfLNpEytMEcXuanrPB7PB+sEdlbHTm038UDxE= +APP_DEBUG=true +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=homestead +DB_USERNAME=homestead +DB_PASSWORD=secret + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..967315d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +* text=auto +*.css linguist-vendored +*.scss linguist-vendored +*.js linguist-vendored +CHANGELOG.md export-ignore diff --git a/.gitignore b/.gitignore index d06bc0d..71390a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ vendor/ public/node_modules/ +node_modules/ public/capture -app/config/app.php -composer.* -bootstrap/compiled.php \ No newline at end of file +bootstrap/compiled.php diff --git a/README.md b/README.md index c5dc478..2fd50b6 100644 --- a/README.md +++ b/README.md @@ -1,142 +1,51 @@ -# KERBEROS.**IO** +

-[![Build Status](https://travis-ci.org/kerberos-io/web.svg)](https://travis-ci.org/kerberos-io/web) [![Stories in Ready](https://badge.waffle.io/kerberos-io/web.svg?label=ready&title=Ready)](http://waffle.io/kerberos-io/web) [![Join the chat](https://img.shields.io/gitter/room/TechnologyAdvice/Stardust.svg?style=flat)](https://gitter.im/kerberos-io/hades?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +

+Build Status +Total Downloads +Latest Stable Version +License +

-[![Kerberos.io - video surveillance](https://kerberos.io/images/kerberos.png)](https://kerberos.io) +## About Laravel -## Vote for features +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as: -[![Feature Requests](http://feathub.com/kerberos-io/machinery?format=svg)](http://feathub.com/kerberos-io/machinery) +- [Simple, fast routing engine](https://laravel.com/docs/routing). +- [Powerful dependency injection container](https://laravel.com/docs/container). +- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. +- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). +- Database agnostic [schema migrations](https://laravel.com/docs/migrations). +- [Robust background job processing](https://laravel.com/docs/queues). +- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). -# CC-NC-ND license +Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation give you tools you need to build any application with which you are tasked. -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. +## Learning Laravel -## Why Kerberos.io? +Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is thorough, complete, and makes it a breeze to get started learning the framework. -As burgalary is very common, we believe that video surveillance is a **trivial tool** in our daily lifes which helps us to **feel** a little bit more **secure**. Responding to this need, a lot of companies have started developing their own video surveillance software in the past few years. +If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 900 video tutorials on a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library. -Nowadays we have a myriad of **expensive** camera's, recorders and software solutions which are mainly **outdated** and **difficult** to install and use. Kerberos.io's goal is to solve these problems and to provide every human being in this world to have its own **ecological**, **affordable**, **easy-to-use** and **innovative** surveillance solution. +## Laravel Sponsors -## Introduction +We would like to extend our thanks to the following sponsors for helping fund on-going Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](http://patreon.com/taylorotwell): -[Kerberos.io](http://kerberos.io) is a **low-budget** video surveillance solution, that uses computer vision algorithms to detect changes, and that can trigger other devices. [Kerberos.io](http://kerberos.io) is open source so everyone can customize the source code to its needs and share it with the community under the [**CC-NC-ND license model**](https://doc.kerberos.io/license). When deployed on the Raspberry Pi, it has a **green footprint** and it's **easy to install**; you only need to transfer the [Kerberos.io OS (KIOS)](https://doc.kerberos.io/2.0/installation/KiOS) to your SD card and that's it. +- **[Vehikl](http://vehikl.com)** +- **[Tighten Co.](https://tighten.co)** +- **[British Software Development](https://www.britishsoftware.co)** +- **[Styde](https://styde.net)** +- [Fragrantica](https://www.fragrantica.com) +- [SOFTonSOFA](https://softonsofa.com/) -Use your mobile phone, tablet or PC to keep an eye on your property. View the images taken by [Kerberos.io](http://kerberos.io) with our responsive and user-friendly web interface. Look at the dashboard to get a graphical overview of the past days. Multiple [Kerberos.io](http://kerberos.io) instances can be installed and can be viewed with only 1 web interface. +## Contributing -## The web +Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions). -The web is responsible for the visualization. It's a **GUI** which helps the user to find activity at a specific period, configure the machinery, view a live stream, see system information and much more. It's important to note that the machinery can work without the web, however we don't recommend this. +## Security Vulnerabilities -## How does it work? +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell at taylor@laravel.com. All security vulnerabilities will be promptly addressed. -The web is written in PHP using the extremely popular PHP Framework **Laravel**, and Javascript using the client-side framework **BackboneJS**; to create the dynamic behaviour. We will discuss the different pages and functionality briefly. Please check out the [demo environment](https//doc.kerberos.io) if you want to see a real life example. +## License -[Read more](https://doc.kerberos.io/2.0/web/introduction) - -## Installation - -The reason why you're reading this paragraph is because you want to know how to install the web on your Raspberry Pi, local working station, server or whatever machine you prefer. The good news is that we have **different approaches** from basic to advanced; it depends on how you want to install it. - -### KiOS (for Raspberry Pi) - -[KiOS](https://github.com/kerberos-io/kios) is a custom linux OS (created by buildroot) which runs Kerberos.io out-of-the- (it contains both the machinery and the web). KiOS is **installed like every other OS** for the Raspberry Pi, you need to flash the OS (.img) to a SD card, update your network configration and you're up and running; no manual compilation or horrible configurations. This is the **most simple** and **basic** installation procedure. - -[Read more](https://doc.kerberos.io/2.0/installation/KiOS) - -### Raspbian (for Raspberry Pi) - -If you already have a Raspberry Pi running with Raspbian, you probably don't want to reflash your SD-card. Therefore you can install the different parts of Kerberos.io (the machinery and the web) manual. - -[Read more](https://doc.kerberos.io/2.0/installation/Raspbian) - -### Armbian (for Orange Pi, PCDuino, etc) - -Kerberos.io can also be installed on other boards, which run the Armbian OS. - -[Read more](https://doc.kerberos.io/2.0/installation/Armbian) - -### Generic - -If you want to install **the web**, you'll need to have **a webserver** (e.g. nginx) and **PHP** running with some extensions. You also need **nodejs** and **npm** installed to install **bower**. Below you can find the installation procedure to install the web on the Ubuntu OS; the process is similar for another Linux OS. - -Update the packages and kernel. - - sudo apt-get update && sudo apt-get upgrade - -Install git, nginx, php (+extension) and nodejs. - - curl -sL https://deb.nodesource.com/setup | sudo bash - - sudo apt-get install git nginx php5-cli php5-fpm php5-gd php5-mcrypt php5-curl nodejs - -Creating a nginx config. - - sudo rm -f /etc/nginx/sites-enabled/default - sudo nano /etc/nginx/sites-enabled/default - -Copy and paste following config file; this file tells nginx where the web will be installed and that it requires PHP. - - server - { - listen 80 default_server; - listen [::]:80 default_server; - - root /var/www/web/public; - index index.html index.htm index.nginx-debian.html; - - server_name kerberos.rpi kerberos.rpi; - index index.php index.html index.htm; - - location / - { - autoindex on; - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ - { - fastcgi_pass unix:/var/run/php5-fpm.sock; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - } - -Create a www location. - - mkdir -p /var/www - -Get the source code from Github. - - cd /var/www && sudo git clone https://github.com/kerberos-io/web && cd web - -Install PHP packages by using composer. - - curl -sS https://getcomposer.org/installer | sudo php - sudo mv composer.phar /usr/bin/composer - sudo composer install - -Add write permission for the storage directory, and the kerberos config file. - - sudo chmod -R 777 app/storage - sudo chmod 777 app/config/kerberos.php - -Install bower globally by using node package manager, this is installed when installing nodejs. - - sudo apt-get install npm - sudo ln -s /usr/bin/nodejs /usr/bin/node - sudo npm -g install bower - -Install Front-end dependencies with bower - - cd public - sudo bower --allow-root install - -Restart nginx - - sudo service nginx restart - -## How to access - -You can access **the web** by entering the IP-address in your favorite browser. You'll see a welcome page showing up, on which you will be able to choose an username and password; the default username and password is **root**. - -![Welcome](https://doc.kerberos.io/documentation/develop/70_installation/1_how-to-access.png) +The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..622e774 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,40 @@ +command('inspire') + // ->hourly(); + } + + /** + * Register the Closure based commands for the application. + * + * @return void + */ + protected function commands() + { + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..a747e31 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,65 @@ +expectsJson()) { + return response()->json(['error' => 'Unauthenticated.'], 401); + } + + return redirect()->guest(route('login')); + } +} diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php new file mode 100755 index 0000000..312f7a3 --- /dev/null +++ b/app/Http/Controllers/BaseController.php @@ -0,0 +1,10 @@ +imageHandler = $imageHandler; @@ -15,23 +14,23 @@ public function __construct(ImageHandlerInterface $imageHandler, $this->config = Config::get("app.config"); $this->kerberos = Config::get("kerberos"); } - + /**************************** * Show dashboard - */ - public function index() - { + */ + public function index() + { // ---------------------------------------------------------------------- // Get last x days from the imagehandler -> move to BaseController - + $days = $this->imageHandler->getDays(5); $directory = $this->config; $settings = $this->reader->parse($directory)["instance"]["children"]; - - return View::make('dashboard', [ + + return View::make('dashboard', [ 'days' => $days, 'kerberos' => $this->kerberos, 'fps' => $settings['io']['dropdown']['Video']['children']['fps']['value'], ]); - } + } } diff --git a/app/controllers/HealthController.php b/app/Http/Controllers/HealthController.php similarity index 86% rename from app/controllers/HealthController.php rename to app/Http/Controllers/HealthController.php index 44eae25..10ce959 100644 --- a/app/controllers/HealthController.php +++ b/app/Http/Controllers/HealthController.php @@ -1,23 +1,23 @@ - move to BaseController @@ -55,17 +55,17 @@ public function index($selectedDay = "") /************************************* * Get all days - */ + */ public function getDays() { $days = $this->imageHandler->getDays(-1); return Response::json($days); } - + /************************************* * Get all regions - */ + */ public function getRegions() { $numberOfRegions = 250; @@ -76,7 +76,7 @@ public function getRegions() /************************************* * Get the latest image that was taken. - */ + */ public function getLatestImage() { @@ -89,7 +89,7 @@ public function getLatestImage() * - these extra checks are needed when you're recording video. * it's possible that while you're changing the region * a video is recording. Therefore no image can be retrieved. - */ + */ public function getLatestSequence() { @@ -128,8 +128,8 @@ public function getLatestSequence() * Return output images as json. * - page: one indexed. * - images are returned in reversed order, most recent images first. - */ - + */ + public function getImages($day, $take = 16, $page = 1) { $images = []; @@ -138,7 +138,7 @@ public function getImages($day, $take = 16, $page = 1) if (!$validator->fails()) { $maxTimeBetweenTwoImagesInSeconds = 120; - + $images = $this->imageHandler->getImagesSequenceFromDay($day, $page, $maxTimeBetweenTwoImagesInSeconds); } @@ -158,8 +158,8 @@ public function getImagesFromStartTime($day, $take = 16, $page = 1, $time = 0) if (!$validator->fails()) { $maxTimeBetweenTwoImagesInSeconds = 120; - - $images = $this->imageHandler->getImagesSequenceFromDayAndStartTime($day, $page, + + $images = $this->imageHandler->getImagesSequenceFromDayAndStartTime($day, $page, $time, $maxTimeBetweenTwoImagesInSeconds); } return Response::json($images); @@ -208,4 +208,4 @@ public function getAverageImagesPerWeekDay($numberOfWeeks = 1) return Response::json($imagesPerWeekDay); } -} \ No newline at end of file +} diff --git a/app/controllers/LoginController.php b/app/Http/Controllers/LoginController.php similarity index 94% rename from app/controllers/LoginController.php rename to app/Http/Controllers/LoginController.php index 2951c4a..6f0a695 100755 --- a/app/controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -1,4 +1,4 @@ -kerberos = Config::get("kerberos"); $this->fileLoader = new FileLoader(new \Illuminate\Filesystem\Filesystem(), app_path() . '/config'); } - + /******************************************** * Show the settings page. - */ + */ public function index() { @@ -31,7 +31,7 @@ public function index() return View::make('settings', [ - 'days' => $days, + 'days' => $days, 'settings' => $settings, 'kerberos' => $this->kerberos ]); @@ -39,17 +39,17 @@ public function index() /******************************************** * Show the cloud page. - */ + */ public function cloud() { $directory = $this->config; - + $settings = $this->reader->parse($directory)["instance"]["children"]['cloud']['dropdown']['S3']['children']; $days = $this->imageHandler->getDays(5); return View::make('cloud', [ - 'days' => $days, + 'days' => $days, 'settings' => $settings, 'isUpdateAvailable' => $this->isUpdateAvailable() ]); @@ -72,7 +72,7 @@ public function changeProperties() } $this->fileLoader->save($config, '', 'kerberos'); - + return $config; } @@ -91,7 +91,7 @@ public function updateWeb() } $this->fileLoader->save($config, '', 'kerberos'); - + return Redirect::back(); } @@ -100,7 +100,7 @@ public function updateWeb() * * - update the configuration files of a certain directory * with the correct settings. - */ + */ public function update() { @@ -125,7 +125,7 @@ public function update() $version = $version[count($version)-1]; $name = rtrim($name, ":" . $version); - if(array_key_exists($name, $settings)) + if(array_key_exists($name, $settings)) { $settings[$name] .= "," . $setting; } @@ -135,7 +135,7 @@ public function update() } } } - + try { $this->reader->save($this->config, $settings); @@ -153,74 +153,74 @@ public function update() return Redirect::back(); } - + /****************************************************************** * Edit a piece of a configuration file. - */ + */ private function getPiece($config, array $keys) { $settings = $this->reader->read($this->config . '/'. $config); - + foreach($keys as $key) { if($settings->$key) { - $settings = &$settings->$key; + $settings = &$settings->$key; } } - + if($settings) { return $settings; } - + return null; } - + /******************************************* * Get and set name of the kerberos instance */ - + public function getName() { $instance["name"] = $this->getPiece("config.xml", ["instance", "name"])->__toString(); return Response::json($instance); } - + public function updateName() { if(Input::get('name') != '') { $settings["config__instance__name"] = Input::get('name'); - + $this->reader->save($this->config, $settings); } - + return $this->getName(); } - + /******************************************* * Get and set the conditions. */ - + public function getConditions() { $instance = explode(',', $this->getPiece("config.xml", ["instance", "condition"])->__toString()); return Response::json($instance); } - + public function updateConditions() { if(Input::get('value') != '') { $settings["config__condition"] = implode(',',Input::get('value')); } - + $this->reader->save($this->config, $settings); - + return $this->getConditions(); } - + /******************************************* * Get and set the "Enabled" condition. */ @@ -234,7 +234,7 @@ public function getConditionEnabled() public function updateConditionEnabled() { $settings = []; - + if(Input::get('active') != '') { $settings["condition__Enabled__active"] = Input::get('active'); @@ -258,7 +258,7 @@ public function getStream() $output = shell_exec("[ -f /.dockerenv ] && echo true || echo false"); if(trim($output) === "true") - { + { $url = URL::to('/') . '/stream'; $port = '8889'; } @@ -280,25 +280,25 @@ public function getStream() /******************************************* * Get and set the ios. */ - + public function getIos() { $instance["devices"] = explode(',', $this->getPiece("config.xml", ["instance", "io"])->__toString()); return Response::json($instance); } - + public function updateIos() - { + { if(Input::get('value') != '') { $settings["config__instance__io"] = implode(',', Input::get('value')); } $this->reader->save($this->config, $settings); - + return $this->getIos(); } - + /******************************************* * Get and set the "Webhook" io. */ diff --git a/app/controllers/SystemController.php b/app/Http/Controllers/SystemController.php similarity index 93% rename from app/controllers/SystemController.php rename to app/Http/Controllers/SystemController.php index c8438ff..8f54ca6 100644 --- a/app/controllers/SystemController.php +++ b/app/Http/Controllers/SystemController.php @@ -1,26 +1,26 @@ -imageHandler = $imageHandler; $this->reader = $reader; $this->support = $support; $this->config = Config::get("app.config"); $this->user = Auth::user(); - + $uname = strtolower(php_uname()); if (strpos($uname, 'darwin') !== false) { @@ -31,10 +31,10 @@ public function __construct(ImageHandlerInterface $imageHandler, $this->system = new LinuxSystem(); } } - + /******************************************** * Show the settings page. - */ + */ public function index() { @@ -50,7 +50,7 @@ public function index() public function getOS() { $this->system->initialize(); - + return [ 'system' => $this->system, 'uptime' => $this->system->getUptime()['text'], @@ -68,7 +68,7 @@ public function getOS() 'mounts' => $this->system->getMounts(), 'network' => $this->system->getNet(), 'diskAlmostFull' => $this->system->diskAlmostFull() - ]; + ]; } public function getKerberos() @@ -96,7 +96,7 @@ public function getKiOS() 'version' => $this->system->getCurrentVersion() ]; } - + public function downloadConfiguration() { // Check which configuration directory to copy @@ -118,31 +118,31 @@ public function downloadConfiguration() { $dir = "/tmp"; } - + $file = "$dir/kerberosio-configuration.tar.gz"; $output = shell_exec("[ -f $file ] && echo true || echo false"); - + if($output === "true") { $output = shell_exec("rm $file"); } $output = shell_exec("cd $configDirectory && tar -zcvf $file config logs"); - + return Response::download($file); } - + public function downloadImages() { $directory = $this->config; $settings = $this->reader->parse($directory)["instance"]["children"]; - + $imageDirectory = rtrim($settings['io']['dropdown']['Disk']['children']['directory']['value'], '/'); if(is_link($imageDirectory)) { $imageDirectory = readlink($imageDirectory); } - + $dir = "/data/"; $output = shell_exec("[ -d $dir ] && echo true || echo false"); if($output === true) @@ -154,29 +154,29 @@ public function downloadImages() { $dir = "/tmp"; } - + $file = "$dir/kerberosio-images.tar.gz"; $output = shell_exec("[ -f $file ] && echo true || echo false"); - + if($output === "true") { $output = shell_exec("rm $file"); } $output = shell_exec("cd $imageDirectory && tar -zcvf $file ."); - + return Response::download($file); } - + public function cleanImages() { $directory = $this->config; $settings = $this->reader->parse($directory)["instance"]["children"]; - + // Clear session $key = $this->user->username . "_days"; Session::forget($key); - + // Remove all images $imageDirectory = rtrim($settings['io']['dropdown']['Disk']['children']['directory']['value'], '/'); if(is_link($imageDirectory)) @@ -187,37 +187,37 @@ public function cleanImages() return Response::json(["clean" => true]); } - + public function download() { $response = $this->system->download(); return Response::json($response); } - + public function progress() { $response = $this->system->progress(); return Response::json($response); } - + public function unzip() { $response = $this->system->unzip(); return Response::json($response); } - + public function depack() { $response = $this->system->depack(); return Response::json($response); } - + public function transfer() { $response = $this->system->transfer(); return Response::json($response); } - + public function reboot() { $response = $this->system->reboot(); @@ -235,7 +235,7 @@ public function shuttingdown() $response = $this->system->shuttingdown(); return Response::json($response); } - + public function getVersions() { $versions = $this->system->getVersionsFromGithub(); @@ -270,7 +270,7 @@ public function isStreamRunning() // ----------------------- // Work-a-round for docker - + if(!$status) { try @@ -295,4 +295,4 @@ public function isStreamRunning() return Response::json(["status" => $status]); } -} \ No newline at end of file +} diff --git a/app/controllers/TranslateController.php b/app/Http/Controllers/TranslateController.php similarity index 72% rename from app/controllers/TranslateController.php rename to app/Http/Controllers/TranslateController.php index 9f8d3a5..1936009 100644 --- a/app/controllers/TranslateController.php +++ b/app/Http/Controllers/TranslateController.php @@ -1,8 +1,8 @@ -fileLoader->save($config, '', 'kerberos'); @@ -97,6 +97,6 @@ public function updateCurrent() $this->fileLoader->save($config, '', 'kerberos'); - return Response::json($config); + return Response::json($config); } -} +} diff --git a/app/controllers/WebhookController.php b/app/Http/Controllers/WebhookController.php similarity index 83% rename from app/controllers/WebhookController.php rename to app/Http/Controllers/WebhookController.php index 923d36b..f3a5ad6 100644 --- a/app/controllers/WebhookController.php +++ b/app/Http/Controllers/WebhookController.php @@ -1,4 +1,4 @@ - [ + \App\Http\Middleware\EncryptCookies::class, + //\App\Http\Middleware\SimpleAuth::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + 'throttle:60,1', + 'bindings', + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + ]; +} diff --git a/app/Http/Middleware/BasicAuth.php b/app/Http/Middleware/BasicAuth.php new file mode 100644 index 0000000..97c75a9 --- /dev/null +++ b/app/Http/Middleware/BasicAuth.php @@ -0,0 +1,42 @@ +check(); + if(!$loggedIn) + { + if($request->ajax()) + { + response('Unauthorized', 401); + } + else + { + if(Config::get('kerberos')['installed']) + { + return redirect('/login'); + } + else + { + return redirect('/welcome'); + } + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..3aa15f8 --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ +check()) { + return redirect('/home'); + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..943e9a4 --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,18 @@ + $valueFromFunction, 'time' => $time]; - Session::put($key, $valueFromCache); + Session::put($key, $valueFromCache); } return $valueFromCache[$key]; @@ -33,4 +33,4 @@ public function forget($key) { Session::forget($key); } -} \ No newline at end of file +} diff --git a/app/models/cache/CacheInterface.php b/app/Http/Models/Cache/CacheInterface.php similarity index 55% rename from app/models/cache/CacheInterface.php rename to app/Http/Models/Cache/CacheInterface.php index 1bb9dc3..5fa5de4 100644 --- a/app/models/cache/CacheInterface.php +++ b/app/Http/Models/Cache/CacheInterface.php @@ -1,9 +1,9 @@ -files->put($file, 'information[$fileFormat[$i]] = $information[$i]; } - + // -------------------------------------------------- // Calculate different time/date formats with Carbon @@ -162,4 +162,4 @@ public function getSigned() { return $this->information['signed']; } -} \ No newline at end of file +} diff --git a/app/repositories/configreader/ConfigReaderInterface.php b/app/Http/Repositories/ConfigReader/ConfigReaderInterface.php similarity index 89% rename from app/repositories/configreader/ConfigReaderInterface.php rename to app/Http/Repositories/ConfigReader/ConfigReaderInterface.php index 0e02e21..8782267 100644 --- a/app/repositories/configreader/ConfigReaderInterface.php +++ b/app/Http/Repositories/ConfigReader/ConfigReaderInterface.php @@ -1,4 +1,4 @@ -readXML($xml); @@ -59,14 +59,14 @@ public function parseConfig(&$tree, $xml) public function save($directory, $settings) { $configs = $this->getConfigs($directory); - + foreach($settings as $name => $setting) { // --------------------- // Replace space by dash - + $setting = str_replace(' ', '-', rtrim(ltrim($setting, ' '), ' ')); - + $parts = explode("__", $name); if(array_key_exists($parts[0], $configs)) { @@ -78,7 +78,7 @@ public function save($directory, $settings) $element = &$element->{$parts[$i]}; } } - + if(array_key_exists($parts[count($parts)-1], $element)) { $element->{$parts[count($parts)-1]} = $setting; @@ -128,7 +128,7 @@ public function parseChildren(&$tree, $config, $configFile, $name) foreach($config->children() as $element => $item) { $attributes = []; - + foreach ($item->attributes() as $key => $attribute) { $value = (string) $attribute; @@ -159,7 +159,7 @@ public function parseChildren(&$tree, $config, $configFile, $name) { // ------------ // If a wrapper - + if(count($attributes) == 0 && $name != "") { $element = $name . "__" . $element; diff --git a/app/repositories/date/Carbon.php b/app/Http/Repositories/Date/Carbon.php similarity index 93% rename from app/repositories/date/Carbon.php rename to app/Http/Repositories/Date/Carbon.php index 0ffb68a..1ac519a 100644 --- a/app/repositories/date/Carbon.php +++ b/app/Http/Repositories/Date/Carbon.php @@ -1,4 +1,4 @@ -timezone)->format('d-m-Y'); + $date = Carbon::createFromTimestamp($timestamp, $this->timezone)->format('d-m-Y'); return $date; } @@ -29,7 +29,7 @@ public function nextDayToTimestamp($date) $tomorrow = $dateTime->addDay(); return $tomorrow->timestamp; } - + public function getWeekday($date) { $dateTime = Carbon_::createFromFormat("d-m-Y h:i:s", $date . " 00:00:00", $this->timezone); diff --git a/app/repositories/date/DateInterface.php b/app/Http/Repositories/Date/DateInterface.php similarity index 89% rename from app/repositories/date/DateInterface.php rename to app/Http/Repositories/Date/DateInterface.php index d23fc0a..c400666 100644 --- a/app/repositories/date/DateInterface.php +++ b/app/Http/Repositories/Date/DateInterface.php @@ -1,4 +1,4 @@ -getPath(); - + $pathToFile = $this->cache->storeAndGet($key, function() use ($key) { $signedPath = $this->s3->getObjectUrl($this->bucket, $this->directory . $key, time() + $this->signingExpire); diff --git a/app/repositories/filesystem/DiskFileSystem.php b/app/Http/Repositories/Filesystem/DiskFileSystem.php similarity index 87% rename from app/repositories/filesystem/DiskFileSystem.php rename to app/Http/Repositories/Filesystem/DiskFileSystem.php index 5c04c84..6160116 100644 --- a/app/repositories/filesystem/DiskFileSystem.php +++ b/app/Http/Repositories/Filesystem/DiskFileSystem.php @@ -1,9 +1,9 @@ -path = Config::get("app.filesystem.disk.path"); $this->url = URL::to('/') . $this->path; $this->system = public_path() . $this->path; @@ -59,4 +59,4 @@ public function getMetadata(FileInterface $file) { return $file->getMetadata(); } -} \ No newline at end of file +} diff --git a/app/repositories/filesystem/FileSystemInterface.php b/app/Http/Repositories/Filesystem/FileSystemInterface.php similarity index 70% rename from app/repositories/filesystem/FileSystemInterface.php rename to app/Http/Repositories/Filesystem/FileSystemInterface.php index 534e225..30aea2c 100644 --- a/app/repositories/filesystem/FileSystemInterface.php +++ b/app/Http/Repositories/Filesystem/FileSystemInterface.php @@ -1,6 +1,6 @@ -filesystem = $filesystem; $this->filesystem->setTimezone($timezone); } - + public function getFileFormat() { $fileFormat = Config::get('app.filesystem.fileFormat'); $fileFormat = explode('.', $fileFormat)[0]; // e.g. fileFormat = "timestamp_name_region_numberOfChanges_token.jpg"; $fileFormat = explode('_', $fileFormat); // e.g. fileFormat = "timestamp_name_region_numberOfChanges_token"; - + return $fileFormat; } - + public function getIndexOfTimestampFromFileFormat() { $fileFormat = $this->getFileFormat(); - + $i = 0; while($i < count($fileFormat) && $fileFormat[$i] != 'timestamp') { $i++; } - + return $i; } - + public function getIndexOfInstanceNameFromFileFormat() { $fileFormat = $this->getFileFormat(); - + $i = 0; while($i < count($fileFormat) && $fileFormat[$i] != 'instanceName') { $i++; } - + return $i; } - + public function getImagesFromFilesystem() { $heap = $this->filesystem->findAllImages(); @@ -96,7 +96,7 @@ public function getImagesFromFilesystem() { $timestamp = intval(explode('_', $heap->current())[$index]); - if($timestamp > 1000000000) + if($timestamp > 1000000000) { break; } @@ -106,10 +106,10 @@ public function getImagesFromFilesystem() $heap->extract(); } - + return $heap; } - + public function getLatestImage() { $latestSequence = $this->getLatestSequence(); @@ -125,7 +125,7 @@ public function getLatestImage() $i = count($latestSequence) -1; return $latestSequence[$i]["src"]; } - + return ""; } @@ -141,8 +141,8 @@ public function getLatestSequence() $images = $this->getImagesSequenceFromDay($day, 1, 120); return array_values($images); } - - return []; + + return []; } public function getSecondLatestSequence() @@ -170,7 +170,7 @@ public function getLastHourOfDay($day) { $i--; } - + return $i; } @@ -185,7 +185,7 @@ public function getDays($numberOfDays) { $heap = $this->getImagesFromFilesystem(); $index = $this->getIndexOfTimestampFromFileFormat(); - + $firstDay = $heap->current(); $timestamp = intval(explode('_', $firstDay)[$index]); $carbon = Carbon::createFromTimeStamp($timestamp); @@ -199,11 +199,11 @@ public function getDays($numberOfDays) while($heap->valid()) { $timestamp = explode('_', $heap->current())[$index]; - + if(!is_numeric($timestamp)) { $heap->next(); - continue; + continue; } $rest = floor(($timestamp - $startTimestamp) / 86400); @@ -216,7 +216,7 @@ public function getDays($numberOfDays) } // -------------------------------------------- - // at this point we have all the images, but we + // at this point we have all the images, but we // need to sort them. $heap->next(); @@ -247,7 +247,7 @@ public function getDays($numberOfDays) { $this->cache->forget($key); } - + if($numberOfDays > 0) { return array_slice($days, 0, $numberOfDays); @@ -257,34 +257,34 @@ public function getDays($numberOfDays) return $days; } } - + public function getRegions($numberOfRegions) { // ------------------------------------- // Cache images directory for x seconds $key = $this->user->username . "_regions"; - + $regions = $this->cache->storeAndGet($key, function() use ($numberOfRegions) { $heap = $this->getImagesFromFilesystem(); $regions = []; - + $i = 0; while($i++ < $numberOfRegions && $heap->valid()) { $image = new Image; $image->setTimezone($this->date->timezone); $image->parse($heap->current()); - + array_push($regions, [ "regionCoordinates" => $image->getRegion(), "numberOfChanges" => $image->getChanges() ]); $heap->next(); } - + return $regions; }); @@ -295,7 +295,7 @@ public function getRegions($numberOfRegions) { $this->cache->forget($key); } - + return $regions; } @@ -309,10 +309,10 @@ public function getImages() array_push($images, $heap->current()); $heap->next(); } - + return $images; } - + public function getNumberOfImages() { $heap = $this->getImagesFromFilesystem(); @@ -336,7 +336,7 @@ public function getImagesSequenceFromDay($day, $page, $maximumTimeBetween) $heap = $this->getImagesFromFilesystem(); $index = $this->getIndexOfTimestampFromFileFormat(); - + // --------------------------------------------- // Iterate while timestamp is not in current day @@ -362,17 +362,17 @@ public function getImagesSequenceFromDay($day, $page, $maximumTimeBetween) } array_push($imagesTemp, ['timestamp' => $timestamp, 'path' => $heap->current()]); - + $heap->next(); } - + // --------------------------- // Paging images in a sequence - + $imagesTemp = array_reverse($imagesTemp); $lower = count($imagesTemp)-1; $upper; - + // ----------------- // If only one image @@ -396,7 +396,7 @@ public function getImagesSequenceFromDay($day, $page, $maximumTimeBetween) // if no sequence is found, only one image has to be selected // and we shift to the next sequence - if($current - $previous <= $maximumTimeBetween) + if($current - $previous <= $maximumTimeBetween) { while($lower > 1 && $current - $previous <= $maximumTimeBetween) { @@ -450,7 +450,7 @@ public function getImagesSequenceFromDay($day, $page, $maximumTimeBetween) if(getimagesize($systemPath)['mime'] == 'image/jpeg') { $object['type'] = 'image'; - + } else { @@ -486,7 +486,7 @@ public function getImagesSequenceFromDayAndStartTime($day, $page, $starttime, $m $imagesTemp = []; $heap = $this->getImagesFromFilesystem(); $index = $this->getIndexOfTimestampFromFileFormat(); - + // --------------------------------------------- // Iterate while timestamp is not in current day @@ -515,10 +515,10 @@ public function getImagesSequenceFromDayAndStartTime($day, $page, $starttime, $m $heap->next(); } - + // ------------- // Sequence images - + $imagesTemp = array_reverse($imagesTemp); $imagesTemp = $this->getSequence($imagesTemp, $page, $maximumTimeBetween); @@ -531,7 +531,7 @@ public function getImagesSequenceFromDayAndStartTime($day, $page, $starttime, $m $image = new Image; $image->setTimezone($this->date->timezone); $image->parse($path); - + $path = $this->filesystem->getPathToFile($image); $systemPath = $this->filesystem->getSystemPathToFile($image); @@ -546,7 +546,7 @@ public function getImagesSequenceFromDayAndStartTime($day, $page, $starttime, $m if(getimagesize($systemPath)['mime'] == 'image/jpeg') { $object['type'] = 'image'; - + } else { @@ -621,7 +621,7 @@ public function getSequence($images, $page, $maximumTimeBetween) { return []; } - + $images = array_where($images, function($key, $value) use ($start, $end, $images) { return ($key >= $start && $key < $end); @@ -648,7 +648,7 @@ public function getNumberOfImagesPerHourForLastDays($numberOfDays, $averageDays) // -------------------- // Build hours per day - + for($i = 0; $i < count($days); $i++) { array_push($statistics["days"], $this->countImagesPerHour($days[$i])['total']); @@ -673,34 +673,34 @@ public function countImagesPerHour($day) { $startTimestamp = intval($this->date->dateToTimestamp($day)); $endTimestamp = intval($this->date->nextDayToTimestamp($day)); - - $hours = [ + + $hours = [ 'total' => [0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0], 'instances' => [] ]; - + $heap = $this->getImagesFromFilesystem(); $indexTimestamp = $this->getIndexOfTimestampFromFileFormat(); $indexInstanceName = $this->getIndexOfInstanceNameFromFileFormat(); // --------------------------------------------- // Iterate while timestamp is not in current day - + while($heap->valid()) { $timestamp = intval(explode('_', $heap->current())[$indexTimestamp]); - + if($timestamp <= $endTimestamp) { break; } - + $heap->next(); } - + while($heap->valid()) { $pieces = explode('_', $heap->current()); @@ -712,7 +712,7 @@ public function countImagesPerHour($day) } $timestamp = intval($pieces[$indexTimestamp]); - + if($timestamp < $startTimestamp) { break; @@ -720,7 +720,7 @@ public function countImagesPerHour($day) $hour = intval(($timestamp - $startTimestamp) / 3600) % 24; $hours['total'][$hour]++; - + $instanceName = $pieces[$indexInstanceName]; if(array_key_exists($instanceName, $hours['instances'])) { @@ -733,10 +733,10 @@ public function countImagesPerHour($day) 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0]; } - + $heap->next(); } - + return $hours; }); @@ -747,7 +747,7 @@ public function countImagesPerHour($day) { $this->cache->forget($key); } - + return $hours; } @@ -757,7 +757,7 @@ public function countAverageImagesPerHour($hoursPerDay) 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0 ,0, 0]; - + $images = []; foreach ($hoursPerDay as $key => $hoursForDay) { @@ -766,7 +766,7 @@ public function countAverageImagesPerHour($hoursPerDay) $hours[$i] += $hoursForDay[$i]; } } - + $numberOfDays = count($hoursPerDay); for($i = 0; $i < 24; $i++) { @@ -779,14 +779,14 @@ public function countAverageImagesPerHour($hoursPerDay) public function getNumberOfImagesPerWeekDayPerInstance($numberOfWeeks) { $days = $this->getDays($numberOfWeeks * 7 + 1); - + $imagesPerWeekDay = []; if(count($days) == 0) { return $imagesPerWeekDay; } - + // ----------------------------------- // Get images per weekday per instance @@ -794,7 +794,7 @@ public function getNumberOfImagesPerWeekDayPerInstance($numberOfWeeks) { $dayOfWeek = $this->date->getWeekday($day); $hours = $this->countImagesPerHour($day); - + foreach($hours['instances'] as $instanceName => $instanceHours) { if(array_key_exists($instanceName, $imagesPerWeekDay)) @@ -803,7 +803,7 @@ public function getNumberOfImagesPerWeekDayPerInstance($numberOfWeeks) { array_push($imagesPerWeekDay[$instanceName]['daysPerWeekday'][$dayOfWeek], $day); } - + foreach($instanceHours as $hour) { $imagesPerWeekDay[$instanceName]['eventsOnWeekday'][$dayOfWeek] += $hour; @@ -818,7 +818,7 @@ public function getNumberOfImagesPerWeekDayPerInstance($numberOfWeeks) } } } - + $legend = [ "monday" => \Lang::get('general.monday'), "tuesday" => \Lang::get('general.tuesday'), @@ -871,13 +871,13 @@ public function getNumberOfImagesPerDayForLastDays($numberOfDays, $averageDays) public function countImagesPerDay($day) { $hours = $this->countImagesPerHour($day); - + $total = 0; for($i = 0; $i < count($hours['total']); $i++) { $total += $hours['total'][$i]; } - + return $total; } @@ -899,4 +899,4 @@ public function countAverageImagesPerDay($imagesPerDay) return $averagePerDay; } } -} \ No newline at end of file +} diff --git a/app/repositories/imagehandler/ImageHandlerInterface.php b/app/Http/Repositories/ImageHandler/ImageHandlerInterface.php similarity index 93% rename from app/repositories/imagehandler/ImageHandlerInterface.php rename to app/Http/Repositories/ImageHandler/ImageHandlerInterface.php index 32f1906..6d42dea 100644 --- a/app/repositories/imagehandler/ImageHandlerInterface.php +++ b/app/Http/Repositories/ImageHandler/ImageHandlerInterface.php @@ -1,14 +1,14 @@ -send($request); $body = json_decode($response->getBody()); $body = $body->sections; - + $id = null; for($i = 0; $i < count($body); $i++) { @@ -37,7 +37,7 @@ public function getArticles($count = 7) $response = $client->send($request); $body = json_decode($response->getBody()); $body = $body->results; - + for($i = 0; $i < count($body); $i++) { array_push($articles, [ @@ -54,17 +54,17 @@ public function getArticles($count = 7) return strcmp($a['timestamp'], $b['timestamp']); }); } - + if($count > count($articles)) { $count = count($articles); } - + $articles = array_reverse($articles); $articles = array_slice($articles, 0, $count); } catch (\Exception $e) {} - + return $articles; } -} \ No newline at end of file +} diff --git a/app/repositories/system/LinuxSystem.php b/app/Http/Repositories/System/LinuxSystem.php similarity index 86% rename from app/repositories/system/LinuxSystem.php rename to app/Http/Repositories/System/LinuxSystem.php index ef11108..53b2787 100644 --- a/app/repositories/system/LinuxSystem.php +++ b/app/Http/Repositories/System/LinuxSystem.php @@ -1,4 +1,4 @@ -parser->getCPU(); - + foreach($cpus as &$cpu) { if(!array_key_exists('MHz', $cpu)) { $cpu['MHz'] = ''; } - + if(!array_key_exists('Vendor', $cpu)) { $cpu['Vendor'] = ''; } } - + return $cpus; } -} \ No newline at end of file +} diff --git a/app/repositories/system/OSSystem.php b/app/Http/Repositories/System/OSSystem.php similarity index 95% rename from app/repositories/system/OSSystem.php rename to app/Http/Repositories/System/OSSystem.php index 4f84001..7ab2323 100644 --- a/app/repositories/system/OSSystem.php +++ b/app/Http/Repositories/System/OSSystem.php @@ -1,14 +1,14 @@ -parser = $linfo->getParser(); } @@ -168,12 +168,12 @@ public function getLog() $content = shell_exec('exec tail -n200 ' . $file); return $content; } - + public function getWebVersion() { return Config::get('app.version'); } - + public function getMachineryVersion() { $cmd = "/usr/bin/kerberosio -v"; @@ -196,76 +196,76 @@ public function isMachineryRunning() return true; } } - + public function getOS() { return $this->parser->getOS(); } - + public function getKernel() { return $this->parser->getKernel(); } - + public function getModel() { $model = $this->parser->getModel(); return $model; } - + public function getCPUs() { $cpus = $this->parser->getCPU(); return $cpus; } - + public function getCPUArchitecture() { $cpusArchitecture = $this->parser->getCPUArchitecture(); return $cpusArchitecture; } - + public function getLoad() { $load = $this->parser->getLoad(); return $load; } - + public function getAverageLoad() { $load = $this->parser->getLoad(); $average = ($load['now'] + $load['5min'] + $load['15min'])/3; return round($average, 2); } - + public function getUptime() { $uptime = $this->parser->getUpTime(); return $uptime; } - + public function getProcessStats() { $processStats = $this->parser->getProcessStats(); return $processStats; } - + public function getHostName() { $hostName = $this->parser->getHostName(); return $hostName; } - + public function getAccessedIP() { $ip = $this->parser->getAccessedIP(); return $ip; } - + public function getNet() { $nets = $this->parser->getNet(); - + $filtered = [ 'networks' => [] ]; @@ -278,37 +278,37 @@ public function getNet() $interface['text'] = []; $interface['text']['recieved'] = $this->toReadableSize($interface['recieved']['bytes']); $interface['text']['sent'] = $this->toReadableSize($interface['sent']['bytes']); - + array_push($filtered['networks'], $interface); } } - + return $filtered; } - + public function getRam() { $ram = $this->parser->getRam(); return $ram; } - + public function getHD() { $hd = $this->parser->getHD(); - + foreach($hd as &$disk) { $disk['text'] = []; $disk['text']['size'] = $this->toReadableSize($disk['size']); } - + return $hd; } - + public function getMounts() { $mounts = $this->parser->getMounts(); - + $filtered = [ 'disks' => [] ]; @@ -328,17 +328,17 @@ public function getMounts() array_push($filtered['disks'], $mount); } } - + return $filtered; } - + public function diskAlmostFull() { $mounts = $this->getMounts()['disks']; - + $used = 0; $size = 0; - + foreach($mounts as &$mount) { $used += $mount['used']; @@ -346,28 +346,28 @@ public function diskAlmostFull() } $percentage = $used / $size * 100; - + return ($percentage > 80) ? true : false; } - + public function getFreeSpace() { $hd = $this->getHD(); return $hd; } - + public function getPhpVersion() { $php = $this->parser->getPhpVersion(); return $php; } - + public function getWebserver() { $webserver = $this->parser->getWebService(); return $webserver; } - + public function toReadableSize($bytes) { if($bytes > 999) @@ -401,32 +401,32 @@ public function toReadableSize($bytes) } else { - return $bytes . " bytes"; + return $bytes . " bytes"; } } - + public function getBoard() { $cmd = 'cat /etc/board'; $board = shell_exec($cmd); return trim($board); } - + public function isKios() { return ($this->getBoard()!=''); } - + public function download() { $version = Input::get('version'); $url = Input::get('download'); - - // create upgrade dir + + // create upgrade dir $upgradeDir = $this->upgradeDir; $cmd = "mkdir -p $upgradeDir 2>&1"; $output = shell_exec($cmd); - + // remove existing file $upgradeDir = $this->upgradeDir; $name = "$upgradeDir/kios.img.gz"; @@ -440,7 +440,7 @@ public function download() return true; } - + public function progress() { $completeSize = Input::get('size'); @@ -454,12 +454,12 @@ public function progress() // for linux $cmd = "stat -c%s $name"; $size = (int) shell_exec($cmd); - + $progress = round($size / $completeSize * 100, 0); - + return ['progress' => $progress]; } - + public function unzip() { $upgradeDir = $this->upgradeDir; @@ -469,10 +469,10 @@ public function unzip() $cmd = "/bin/gunzip $upgradeDir/kios.img.gz 2>&1"; $output = shell_exec($cmd); - + return true; } - + public function depack() { $upgradeDir = $this->upgradeDir; @@ -501,7 +501,7 @@ public function depack() ///bin/dd if=kios.img of=boot.img bs=2048 skip=512 count=10240 $cmd = "/bin/dd if=$upgradeDir/kios.img of=$upgradeDir/boot.img bs=2048 skip=$bootSkip count=$bootCount"; $output = shell_exec($cmd); - + ///bin/dd if=kios.img of=root.img bs=2048 skip=10753 count=140800 $cmd = "/bin/dd if=$upgradeDir/kios.img of=$upgradeDir/root.img bs=2048 skip=$rootSkip count=$rootCount"; $output = shell_exec($cmd); @@ -511,12 +511,12 @@ public function depack() return false; } - + public function transfer() { $bootDir = $this->bootDir; $upgradeDir = $this->upgradeDir; - + // copy files $cmd = "cp $bootDir/config.txt /data/tmp/config.txt"; $output = shell_exec($cmd); @@ -524,7 +524,7 @@ public function transfer() $output = shell_exec($cmd); $cmd = "cp $bootDir/wireless.conf /data/tmp/wireless.conf"; $output = shell_exec($cmd); - + // mount boot $cmd = "/bin/umount $bootDir"; $output = shell_exec($cmd); @@ -532,7 +532,7 @@ public function transfer() $output = shell_exec($cmd); $cmd = "/bin/mount -o rw /dev/mmcblk0p1 $bootDir"; $output = shell_exec($cmd); - + // revert files $cmd = "cp /data/tmp/config.txt $bootDir/config.txt"; $output = shell_exec($cmd); @@ -540,45 +540,45 @@ public function transfer() $output = shell_exec($cmd); $cmd = "cp /data/tmp/wireless.conf $bootDir/wireless.conf"; $output = shell_exec($cmd); - + return true; } - + public function reboot() { $bootDir = $this->bootDir; $upgradeDir = $this->upgradeDir; - + // rm boot img $cmd = "rm $upgradeDir/boot.img"; $output = shell_exec($cmd); - + // append config file $cmd = "printf '\n%s' 'initramfs fwupdater.gz' >> $bootDir/config.txt"; // append to /boot/config.txt $output = shell_exec($cmd); - + // reboot $cmd = 'reboot'; $output = shell_exec($cmd); - + return true; } - + public function rebooting() - { + { // reboot $cmd = 'reboot'; $output = shell_exec($cmd); - + return true; } - + public function shuttingdown() - { + { // reboot $cmd = 'halt'; $output = shell_exec($cmd); - + return true; } -} \ No newline at end of file +} diff --git a/app/repositories/system/OSXSystem.php b/app/Http/Repositories/System/OSXSystem.php similarity index 50% rename from app/repositories/system/OSXSystem.php rename to app/Http/Repositories/System/OSXSystem.php index 13d079c..195692a 100644 --- a/app/repositories/system/OSXSystem.php +++ b/app/Http/Repositories/System/OSXSystem.php @@ -1,8 +1,8 @@ -app->bind('App\Http\Repositories\ImageHandler\ImageHandlerInterface', + 'App\Http\Repositories\ImageHandler\ImageFileSystemHandler'); + + $this->app->bind('App\Http\Repositories\Filesystem\FilesystemInterface', + 'App\Http\Repositories\Filesystem\DiskFilesystem'); + + $this->app->bind('App\Http\Repositories\ConfigReader\ConfigReaderInterface', + 'App\Http\Repositories\ConfigReader\ConfigXMLReader'); + + $this->app->bind('App\Http\Repositories\Date\DateInterface', + 'App\Http\Repositories\Date\Carbon'); + + $this->app->bind('App\Http\Repositories\Support\SupportInterface', + 'App\Http\Repositories\Support\ZendeskSupport'); + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php new file mode 100644 index 0000000..9784b1a --- /dev/null +++ b/app/Providers/AuthServiceProvider.php @@ -0,0 +1,30 @@ + 'App\Policies\ModelPolicy', + ]; + + /** + * Register any authentication / authorization services. + * + * @return void + */ + public function boot() + { + $this->registerPolicies(); + + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..352cce4 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,21 @@ + [ + 'App\Listeners\EventListener', + ], + ]; + + /** + * Register any events for your application. + * + * @return void + */ + public function boot() + { + parent::boot(); + + // + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..5ea48d3 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,73 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + + // + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::middleware('web') + ->namespace($this->namespace) + ->group(base_path('routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/api.php')); + } +} diff --git a/app/User.php b/app/User.php new file mode 100644 index 0000000..bfd96a6 --- /dev/null +++ b/app/User.php @@ -0,0 +1,29 @@ + 'api/v1'), function() -{ - // ----------------- - // Webhook Controller - - Route::resource('webhook', 'Controllers\WebhookController'); - - // ------------------- - // Health Controller - - Route::get('health', 'Controllers\HealthController@index'); - - // ----------------------------- - // Login method if not authorized - - Route::group(['before' => 'guest'], function() - { - // ----------------- - // Login Controller - - Route::post('login/login', 'Controllers\LoginController@login'); // try to sign-in the user. - }); - - // ---------------------- - // Methods for authorized - - Route::group(['before' => 'auth'], function() - { - // ----------------- - // User Controller - - Route::get('users/current', 'Controllers\UserController@current'); - Route::post('users/current', 'Controllers\UserController@updateCurrent'); - - // ----------------- - // System Controller - - Route::get('images/download', 'Controllers\SystemController@downloadImages'); - Route::get('images/clean', 'Controllers\SystemController@cleanImages'); - Route::get('system/download', 'Controllers\SystemController@downloadConfiguration'); - Route::get('system/stream', 'Controllers\SystemController@isStreamRunning'); - Route::get('system/versions', 'Controllers\SystemController@getVersions'); - Route::post('system/upgrade/download', 'Controllers\SystemController@download'); - Route::post('system/upgrade/progress', 'Controllers\SystemController@progress'); - Route::get('system/upgrade/unzip', 'Controllers\SystemController@unzip'); - Route::get('system/upgrade/depack', 'Controllers\SystemController@depack'); - Route::get('system/upgrade/transfer', 'Controllers\SystemController@transfer'); - Route::get('system/upgrade/reboot', 'Controllers\SystemController@reboot'); - Route::get('system/reboot', 'Controllers\SystemController@rebooting'); - Route::get('system/shutdown', 'Controllers\SystemController@shuttingdown'); - - Route::get('system/os', 'Controllers\SystemController@getOS'); - Route::get('system/kerberos', 'Controllers\SystemController@getKerberos'); - Route::get('system/kios', 'Controllers\SystemController@getKiOS'); - - // ----------------- - // Image Controller - - Route::get('images/latest_sequence', 'Controllers\ImageController@getLatestSequence'); - Route::get('images/days', 'Controllers\ImageController@getDays'); - Route::get('images/regions', 'Controllers\ImageController@getRegions'); - Route::get('images/perhour/{days?}', 'Controllers\ImageController@getImagesPerHour'); - Route::get('images/perday/{days?}', 'Controllers\ImageController@getImagesPerDay'); - Route::get('images/perweekday/{days?}', 'Controllers\ImageController@getAverageImagesPerWeekDay'); - Route::get('images/{date}/hours', 'Controllers\ImageController@getImagesPerHourForDay'); - Route::get('images/{date}/{take?}/{page?}', 'Controllers\ImageController@getImages'); - Route::get('images/{date}/{take?}/{page?}/{time?}', 'Controllers\ImageController@getImagesFromStartTime'); - - }); - - // ------------------------- - // REST API with basic auth - - Route::group(['before' => 'auth.basic'], function() - { - // -------------------- - // Settings Controller - - Route::get('name', 'Controllers\SettingsController@getName'); - Route::put('name', 'Controllers\SettingsController@updateName'); - - Route::get('condition', 'Controllers\SettingsController@getConditions'); - Route::put('condition', 'Controllers\SettingsController@updateConditions'); - Route::get('condition/enabled', 'Controllers\SettingsController@getConditionEnabled'); - Route::put('condition/enabled', 'Controllers\SettingsController@updateConditionEnabled'); - - Route::get('stream', 'Controllers\SettingsController@getStream'); - - Route::get('io', 'Controllers\SettingsController@getIos'); - Route::put('io', 'Controllers\SettingsController@updateIos'); - Route::get('io/webhook', 'Controllers\SettingsController@getIoWebhook'); - Route::put('io/webhook', 'Controllers\SettingsController@updateIoWebhook'); - - Route::get('configure', array('uses' => 'Controllers\SettingsController@getConfiguration')); - Route::put('configure', array('uses' => 'Controllers\SettingsController@changeProperties')); - - // -------------------- - // System Controller - - Route::get('system/health', 'Controllers\SystemController@isStreamRunning'); - Route::post('system/reboot', 'Controllers\SystemController@rebooting'); - Route::post('system/shutdown', 'Controllers\SystemController@shuttingdown'); - - App::missing(function($exception) - { - return Response::json([ - 'error' => 'API method does not exists' - ], 404); - }); - }); - - - // ----------------- - // Translate Controller - - Route::get('translate/{page}', 'Controllers\TranslateController@index'); - - // -------------------- - // Installation wizard - - if(!Config::get('kerberos')['installed']) - { - Route::post('user/language', 'Controllers\UserController@changeLanguage'); - Route::post('user/install', 'Controllers\UserController@install'); - } -}); - -/********************************** -* -* API V2 -* -**********************************/ - -Route::group(array('prefix' => 'api/v2'), function(){}); diff --git a/app/config/app.php b/app/config/app.php deleted file mode 100644 index ff205fd..0000000 --- a/app/config/app.php +++ /dev/null @@ -1,228 +0,0 @@ - '2.2.1', - - 'config' => '/etc/opt/kerberosio/config', - - 'filesystem' => [ - - 'fileFormat' => 'timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token.jpg', - - 'disk' => [ - 'path' => '/capture', - ], - - 'amazons3' => [ - 'bucket' => '', // Amazon bucket name - 'path' => '/', // Path to a specific directory of the bucket - 'key' => '', // Your AWS Access Key ID - 'secret' => '', // Your AWS Secret Access Key - 'region' => '', - 'config_file' => null, - ], - - ], - - - /* - |----------------------------------------------------------- - | Timezone - |----------------------------------------------------------- - | - */ - - 'timezone' => 'Europe/Brussels', - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => false, - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => 'http://localhost', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => 'oLsxuqKhpRs4ppecYrIf1nruOwnySnPO', - - 'cipher' => MCRYPT_RIJNDAEL_128, - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => array( - 'Illuminate\Foundation\Providers\ArtisanServiceProvider', - 'Illuminate\Auth\AuthServiceProvider', - 'Illuminate\Cache\CacheServiceProvider', - 'Illuminate\Session\CommandsServiceProvider', - 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', - 'Illuminate\Routing\ControllerServiceProvider', - 'Illuminate\Cookie\CookieServiceProvider', - 'Illuminate\Database\DatabaseServiceProvider', - 'Illuminate\Encryption\EncryptionServiceProvider', - 'Illuminate\Filesystem\FilesystemServiceProvider', - 'Illuminate\Hashing\HashServiceProvider', - 'Illuminate\Html\HtmlServiceProvider', - 'Illuminate\Log\LogServiceProvider', - 'Illuminate\Mail\MailServiceProvider', - 'Illuminate\Database\MigrationServiceProvider', - 'Illuminate\Pagination\PaginationServiceProvider', - 'Illuminate\Queue\QueueServiceProvider', - 'Illuminate\Redis\RedisServiceProvider', - 'Illuminate\Remote\RemoteServiceProvider', - 'Illuminate\Auth\Reminders\ReminderServiceProvider', - 'Illuminate\Database\SeedServiceProvider', - 'Illuminate\Session\SessionServiceProvider', - 'Cedricve\Lockfile\LockfileServiceProvider', - 'Illuminate\Translation\TranslationServiceProvider', - 'Illuminate\Validation\ValidationServiceProvider', - 'Illuminate\View\ViewServiceProvider', - 'Illuminate\Workbench\WorkbenchServiceProvider', - 'Intervention\Image\ImageServiceProvider', - 'Cedricve\Simpleauth\SimpleauthServiceProvider', - //'Aws\Laravel\AwsServiceProvider', - ), - - /* - |-------------------------------------------------------------------------- - | Service Provider Manifest - |-------------------------------------------------------------------------- - | - | The service provider manifest is used by Laravel to lazy load service - | providers which are not needed for each request, as well to keep a - | list of all of the services. Here, you may set its storage spot. - | - */ - - 'manifest' => storage_path().'/meta', - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => array( - - 'App' => 'Illuminate\Support\Facades\App', - 'Artisan' => 'Illuminate\Support\Facades\Artisan', - 'Auth' => 'Illuminate\Support\Facades\Auth', - 'Blade' => 'Illuminate\Support\Facades\Blade', - 'Cache' => 'Illuminate\Support\Facades\Cache', - 'ClassLoader' => 'Illuminate\Support\ClassLoader', - 'Config' => 'Illuminate\Support\Facades\Config', - 'Controller' => 'Illuminate\Routing\Controller', - 'Cookie' => 'Illuminate\Support\Facades\Cookie', - 'Crypt' => 'Illuminate\Support\Facades\Crypt', - 'DB' => 'Illuminate\Support\Facades\DB', - 'Eloquent' => 'Illuminate\Database\Eloquent\Model', - 'Event' => 'Illuminate\Support\Facades\Event', - 'File' => 'Illuminate\Support\Facades\File', - 'Form' => 'Illuminate\Support\Facades\Form', - 'Hash' => 'Illuminate\Support\Facades\Hash', - 'HTML' => 'Illuminate\Support\Facades\HTML', - 'Input' => 'Illuminate\Support\Facades\Input', - 'Lang' => 'Illuminate\Support\Facades\Lang', - 'Log' => 'Illuminate\Support\Facades\Log', - 'Mail' => 'Illuminate\Support\Facades\Mail', - 'Paginator' => 'Illuminate\Support\Facades\Paginator', - 'Password' => 'Illuminate\Support\Facades\Password', - 'Queue' => 'Illuminate\Support\Facades\Queue', - 'Redirect' => 'Illuminate\Support\Facades\Redirect', - 'Redis' => 'Illuminate\Support\Facades\Redis', - 'Request' => 'Illuminate\Support\Facades\Request', - 'Response' => 'Illuminate\Support\Facades\Response', - 'Route' => 'Illuminate\Support\Facades\Route', - 'Schema' => 'Illuminate\Support\Facades\Schema', - 'Seeder' => 'Illuminate\Database\Seeder', - 'Session' => 'Illuminate\Support\Facades\Session', - 'SoftDeletingTrait' => 'Illuminate\Database\Eloquent\SoftDeletingTrait', - 'SSH' => 'Illuminate\Support\Facades\SSH', - 'Str' => 'Illuminate\Support\Str', - 'URL' => 'Illuminate\Support\Facades\URL', - 'Validator' => 'Illuminate\Support\Facades\Validator', - 'View' => 'Illuminate\Support\Facades\View', - 'Image' => 'Intervention\Image\Facades\Image', - //'AWS' => 'Aws\Laravel\AwsFacade', - ), - -); diff --git a/app/config/auth.php b/app/config/auth.php deleted file mode 100755 index 8517ff1..0000000 --- a/app/config/auth.php +++ /dev/null @@ -1,71 +0,0 @@ - 'simple', - - /* - |-------------------------------------------------------------------------- - | Authentication Model - |-------------------------------------------------------------------------- - | - | When using the "Eloquent" authentication driver, we need to know which - | Eloquent model should be used to retrieve your users. Of course, it - | is often just the "User" model but you may use whatever you like. - | - */ - - 'model' => 'User', - - /* - |-------------------------------------------------------------------------- - | Authentication Table - |-------------------------------------------------------------------------- - | - | When using the "Database" authentication driver, we need to know which - | table should be used to retrieve your users. We have chosen a basic - | default value but you may easily change it to any table you like. - | - */ - - 'table' => 'users', - - /* - |-------------------------------------------------------------------------- - | Password Reminder Settings - |-------------------------------------------------------------------------- - | - | Here you may set the settings for password reminders, including a view - | that should be used as your password reminder e-mail. You will also - | be able to set the name of the table that holds the reset tokens. - | - | The "expire" time is the number of minutes that the reminder should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - - 'reminder' => array( - - 'email' => 'emails.auth.reminder', - - 'table' => 'password_reminders', - - 'expire' => 60, - - ), - -); diff --git a/app/config/aws.php b/app/config/aws.php deleted file mode 100644 index 7f7eee3..0000000 --- a/app/config/aws.php +++ /dev/null @@ -1,17 +0,0 @@ - 'apc', - - /* - |-------------------------------------------------------------------------- - | File Cache Location - |-------------------------------------------------------------------------- - | - | When using the "file" cache driver, we need a location where the cache - | files may be stored. A sensible default has been specified, but you - | are free to change it to any other place on disk that you desire. - | - */ - - 'path' => storage_path().'/cache', - - /* - |-------------------------------------------------------------------------- - | Database Cache Connection - |-------------------------------------------------------------------------- - | - | When using the "database" cache driver you may specify the connection - | that should be used to store the cached items. When this option is - | null the default database connection will be utilized for cache. - | - */ - - 'connection' => null, - - /* - |-------------------------------------------------------------------------- - | Database Cache Table - |-------------------------------------------------------------------------- - | - | When using the "database" cache driver we need to know the table that - | should be used to store the cached items. A default table name has - | been provided but you're free to change it however you deem fit. - | - */ - - 'table' => 'cache', - - /* - |-------------------------------------------------------------------------- - | Memcached Servers - |-------------------------------------------------------------------------- - | - | Now you may specify an array of your Memcached servers that should be - | used when utilizing the Memcached cache driver. All of the servers - | should contain a value for "host", "port", and "weight" options. - | - */ - - 'memcached' => array( - - array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100), - - ), - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => 'laravel', - -); diff --git a/app/config/compile.php b/app/config/compile.php deleted file mode 100755 index d5e5518..0000000 --- a/app/config/compile.php +++ /dev/null @@ -1,18 +0,0 @@ - PDO::FETCH_CLASS, - - /* - |-------------------------------------------------------------------------- - | Default Database Connection Name - |-------------------------------------------------------------------------- - | - | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. - | - */ - - 'default' => 'mysql', - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - - 'connections' => array( - - 'sqlite' => array( - 'driver' => 'sqlite', - 'database' => __DIR__.'/../database/production.sqlite', - 'prefix' => '', - ), - - 'mysql' => array( - 'driver' => 'mysql', - 'host' => 'localhost', - 'database' => 'forge', - 'username' => 'forge', - 'password' => '', - 'charset' => 'utf8', - 'collation' => 'utf8_unicode_ci', - 'prefix' => '', - ), - - 'pgsql' => array( - 'driver' => 'pgsql', - 'host' => 'localhost', - 'database' => 'forge', - 'username' => 'forge', - 'password' => '', - 'charset' => 'utf8', - 'prefix' => '', - 'schema' => 'public', - ), - - 'sqlsrv' => array( - 'driver' => 'sqlsrv', - 'host' => 'localhost', - 'database' => 'database', - 'username' => 'root', - 'password' => '', - 'prefix' => '', - ), - - ), - - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ - - 'redis' => array( - - 'cluster' => false, - - 'default' => array( - 'host' => '127.0.0.1', - 'port' => 6379, - 'database' => 0, - ), - - ), - -); diff --git a/app/config/kerberos.php b/app/config/kerberos.php deleted file mode 100644 index e560696..0000000 --- a/app/config/kerberos.php +++ /dev/null @@ -1,17 +0,0 @@ - 'basic', - 'radius' => '1', - 'installed' => false, - 'users' => - array ( - 0 => - array ( - 'id' => 1, - 'username' => 'root', - 'password' => 'root', - 'firstname' => 'Firstname', - 'secondname' => 'Lastname', - 'language' => 'en', - ), - ), -); \ No newline at end of file diff --git a/app/config/mail.php b/app/config/mail.php deleted file mode 100755 index 76fd9e4..0000000 --- a/app/config/mail.php +++ /dev/null @@ -1,124 +0,0 @@ - 'smtp', - - /* - |-------------------------------------------------------------------------- - | SMTP Host Address - |-------------------------------------------------------------------------- - | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. - | - */ - - 'host' => 'smtp.mailgun.org', - - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- - | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. - | - */ - - 'port' => 587, - - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => array('address' => null, 'name' => null), - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - - 'encryption' => 'tls', - - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - - 'username' => null, - - /* - |-------------------------------------------------------------------------- - | SMTP Server Password - |-------------------------------------------------------------------------- - | - | Here you may set the password required by your SMTP server to send out - | messages from your application. This will be given to the server on - | connection so that the application will be able to send messages. - | - */ - - 'password' => null, - - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - - 'sendmail' => '/usr/sbin/sendmail -bs', - - /* - |-------------------------------------------------------------------------- - | Mail "Pretend" - |-------------------------------------------------------------------------- - | - | When this option is enabled, e-mail will not actually be sent over the - | web and will instead be written to your application's logs files so - | you may inspect the message. This is great for local development. - | - */ - - 'pretend' => false, - -); diff --git a/app/config/queue.php b/app/config/queue.php deleted file mode 100755 index 940a4cd..0000000 --- a/app/config/queue.php +++ /dev/null @@ -1,85 +0,0 @@ - 'sync', - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - */ - - 'connections' => array( - - 'sync' => array( - 'driver' => 'sync', - ), - - 'beanstalkd' => array( - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'ttr' => 60, - ), - - 'sqs' => array( - 'driver' => 'sqs', - 'key' => 'your-public-key', - 'secret' => 'your-secret-key', - 'queue' => 'your-queue-url', - 'region' => 'us-east-1', - ), - - 'iron' => array( - 'driver' => 'iron', - 'host' => 'mq-aws-us-east-1.iron.io', - 'token' => 'your-token', - 'project' => 'your-project-id', - 'queue' => 'your-queue-name', - 'encrypt' => true, - ), - - 'redis' => array( - 'driver' => 'redis', - 'queue' => 'default', - ), - - ), - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => array( - - 'database' => 'mysql', 'table' => 'failed_jobs', - - ), - -); diff --git a/app/config/remote.php b/app/config/remote.php deleted file mode 100755 index 2169c43..0000000 --- a/app/config/remote.php +++ /dev/null @@ -1,59 +0,0 @@ - 'production', - - /* - |-------------------------------------------------------------------------- - | Remote Server Connections - |-------------------------------------------------------------------------- - | - | These are the servers that will be accessible via the SSH task runner - | facilities of Laravel. This feature radically simplifies executing - | tasks on your servers, such as deploying out these applications. - | - */ - - 'connections' => array( - - 'production' => array( - 'host' => '', - 'username' => '', - 'password' => '', - 'key' => '', - 'keyphrase' => '', - 'root' => '/var/www', - ), - - ), - - /* - |-------------------------------------------------------------------------- - | Remote Server Groups - |-------------------------------------------------------------------------- - | - | Here you may list connections under a single group name, which allows - | you to easily access all of the servers at once using a short name - | that is extremely easy to remember, such as "web" or "database". - | - */ - - 'groups' => array( - - 'web' => array('production') - - ), - -); diff --git a/app/config/services.php b/app/config/services.php deleted file mode 100755 index c8aba2a..0000000 --- a/app/config/services.php +++ /dev/null @@ -1,31 +0,0 @@ - array( - 'domain' => '', - 'secret' => '', - ), - - 'mandrill' => array( - 'secret' => '', - ), - - 'stripe' => array( - 'model' => 'User', - 'secret' => '', - ), - -); diff --git a/app/config/session.php b/app/config/session.php deleted file mode 100755 index 590ac19..0000000 --- a/app/config/session.php +++ /dev/null @@ -1,140 +0,0 @@ - 'lockfile', - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => 180, - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path().'/sessions', - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => null, - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => array(2, 100), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => 'kerberos_io_' . str_replace('.', '-', gethostname()), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => null, - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => false, - -); diff --git a/app/config/view.php b/app/config/view.php deleted file mode 100755 index 34b8f38..0000000 --- a/app/config/view.php +++ /dev/null @@ -1,31 +0,0 @@ - array(__DIR__.'/../views'), - - /* - |-------------------------------------------------------------------------- - | Pagination View - |-------------------------------------------------------------------------- - | - | This view will be used to render the pagination link output, and can - | be easily customized here to show any view you like. A clean view - | compatible with Twitter's Bootstrap is given to you by default. - | - */ - - 'pagination' => 'pagination::slider-3', - -); diff --git a/app/config/workbench.php b/app/config/workbench.php deleted file mode 100755 index 4500003..0000000 --- a/app/config/workbench.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Cédric Verstraeten', - - /* - |-------------------------------------------------------------------------- - | Workbench Author E-Mail Address - |-------------------------------------------------------------------------- - | - | Like the option above, your e-mail address is used when generating new - | workbench packages. The e-mail is placed in your composer.json file - | automatically after the package is created by the workbench tool. - | - */ - - 'email' => 'hello@cedric.ws', - -); diff --git a/app/controllers/.gitkeep b/app/controllers/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/app/controllers/BaseController.php b/app/controllers/BaseController.php deleted file mode 100755 index 3cd01c9..0000000 --- a/app/controllers/BaseController.php +++ /dev/null @@ -1,12 +0,0 @@ -setUsers($users); - - /* - |----------------------------------------------------------- - | Set language - |----------------------------------------------------------- - */ - - $language = Session::get('language','en'); // english will be the default language. - App::setLocale($language); - -}); - - -App::after(function($request, $response) -{ - // -}); - -/* -|-------------------------------------------------------------------------- -| Authentication Filters -|-------------------------------------------------------------------------- -| -| The following filters are used to verify that the user of the current -| session is logged into this application. The "basic" filter easily -| integrates HTTP Basic authentication for quick, simple checking. -| -*/ - -Route::filter('auth', function() -{ - if (Auth::guest()) - { - if (Request::ajax()) - { - return Response::make('Unauthorized', 401); - } - else - { - if(Config::get('kerberos')['installed']) - { - return Redirect::guest('login'); - } - else - { - return Redirect::guest('welcome'); - } - } - } -}); - - -Route::filter('auth.basic', function() -{ - return Auth::basic("username"); -}); - -/* -|-------------------------------------------------------------------------- -| Guest Filter -|-------------------------------------------------------------------------- -| -| The "guest" filter is the counterpart of the authentication filters as -| it simply checks that the current user is not logged in. A redirect -| response will be issued if they are, which you may freely change. -| -*/ - -Route::filter('guest', function() -{ - if (Auth::check()) return Redirect::to('/'); -}); - -/* -|-------------------------------------------------------------------------- -| CSRF Protection Filter -|-------------------------------------------------------------------------- -| -| The CSRF filter is responsible for protecting your application against -| cross-site request forgery attacks. If this special token in a user -| session does not match the one given in this request, we'll bail. -| -*/ - -Route::filter('csrf', function() -{ - if (Session::token() != Input::get('_token')) - { - throw new Illuminate\Session\TokenMismatchException; - } -}); - - -/* -|-------------------------------------------------------------------------- -| Config Protection filter -|-------------------------------------------------------------------------- -| -| The config filter is responsible to check if a valid configuration file is available. -| if not the web application won't work properly. -| -*/ - -Route::filter('validConfig', function() -{ - $isValid = true; - - $config = Config::get("app.config"); - $data = ['config' => $config, 'message' => '']; - - if(is_dir($config)) - { - $reader = App::make('Repositories\ConfigReader\ConfigReaderInterface'); - $settings = $reader->read($config . '/config.xml'); - - if(count($settings) == 0) - { - $isValid = false; - $data['message'] = "One or more config files are missing in ".$data['config'].".
Please check if the .xml files are available."; - } - } - else - { - $isValid = false; - $data['message'] = "It looks like the config directory is missing.
Please create the directory: ".$data['config']."."; - } - - if(!$isValid) - { - return View::make('errors.config-missing', $data); - } -}); - -/* -|-------------------------------------------------------------------------- -| Capture Protection filter -|-------------------------------------------------------------------------- -| -| The capture filter is responsible to check if the capture directory exists. -| if not the web application won't work properly. -| -*/ - -Route::filter('validCapture', function() -{ - $isValid = true; - - $capture = public_path() . Config::get("app.filesystem.disk.path"); - $data = ['capture' => $capture, 'message' => '']; - - if(!is_dir($capture)) - { - $isValid = false; - $capture = rtrim($capture, '/'); - - if(!is_link($capture)) - { - $data['message'] = "It looks like the capture directory is missing.
Please create the directory: ".$data['capture']."."; - } - else - { - // Check if link exists - $data['message'] = "It looks like the capture directory is missing.
Please create the directory: ".readlink($capture)."."; - } - } - - if(!$isValid) - { - return View::make('errors.config-missing', $data); - } -}); diff --git a/app/lang/bg/dashboard.php b/app/lang/bg/dashboard.php deleted file mode 100644 index 8320dd2..0000000 --- a/app/lang/bg/dashboard.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Активност', - - 'selectView' => 'Избери изглед', - - 'liveView' => 'На живо', - - 'lastActivity' => 'Последна активност', - - 'heatmap' => 'Топлинна карта', - - 'overview' => 'Преглед', - - 'hour' => 'По часове', - - 'average' => 'Средно', - - 'weekday' => 'По ден' -); \ No newline at end of file diff --git a/app/lang/bg/general.php b/app/lang/bg/general.php deleted file mode 100644 index 4909906..0000000 --- a/app/lang/bg/general.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Табло', - - 'system' => 'Система', - - 'settings' => 'Настройки', - - 'configuration' => 'Конфигурация', - - 'cloud' => 'Облак', - - 'on' => 'Вкл.', - - 'off' => 'Изкл.', - - 'logout' => 'Изход', - - 'update-profile' => 'Профил', - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Понеделник', - - 'tuesday' => 'Вторник', - - 'wednesday' => 'Сряда', - - 'thursday' => 'Четвъртък', - - 'friday' => 'Петък', - - 'saturday' => 'Събота', - - 'sunday' => 'Неделя', - - 'today' => 'Днес', - - 'yesterday' => 'Вчера', - - 'dayBeforeYesterday' => 'Онзиден' - -); \ No newline at end of file diff --git a/app/lang/bg/pagination.php b/app/lang/bg/pagination.php deleted file mode 100755 index c11e275..0000000 --- a/app/lang/bg/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Предишна', - - 'next' => 'Следваща »', - -); diff --git a/app/lang/bg/reminders.php b/app/lang/bg/reminders.php deleted file mode 100755 index 189894e..0000000 --- a/app/lang/bg/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "Паролата трябва да бъде поне шест символа и потвърждението трябва да съвпада.", - - "user" => "Потребител с такъв e-mail адрес не може да бъде открит..", - - "token" => "Токенът за подновяване на паролата е невалиден.", - - "sent" => "Подсказката за паролата е изпратена!", - -); diff --git a/app/lang/bg/settings.php b/app/lang/bg/settings.php deleted file mode 100644 index 2985b7b..0000000 --- a/app/lang/bg/settings.php +++ /dev/null @@ -1,177 +0,0 @@ - 'Настройки', - - 'configuration' => 'Конфигурация', - - 'update' => 'Запиши', - - 'heatmap' => 'Топлинна карта', - - 'general' => 'Основни настройки', - - 'purchase' => 'Гледай навсякъде по света използвайки Kerberos.cloud, започни сега само за 1,49€ на месец!', - - 'basic' => 'Базови', - - 'advanced' => 'Разширени', - - 'name' => 'Име', - - 'nameInfo' => 'Уникално име на камерата е необходимо ако ще ползвате повече от една Kerberos.io инстанции.', - - 'timezone' => 'Часова зона', - - 'timezoneInfo' => 'Часовата зона се използва за да показва коректно времето на събитията. Използва се от Machinery и Web интерфейсът.', - - 'camera' => 'Камера', - - 'usbcamera' => 'USB камера', - - 'usbcameraInfo' => 'Избери тази опция, ако ще използваш USB камера.', - - 'rpicamera' => 'RPi камера', - - 'rpicameraInfo' => 'Избери тази опция, ако Kerberos.io работи на Raspberry Pi. Използвай при Raspberry Pi камера модул (v1 или v2).', - - 'ipcamera' => 'IP камера', - - 'ipcameraInfo' => 'Избери тази опция, ако искаш да използваш IP камера която поддържа RTSP или MJPEG протокол.', - - 'surveillanceMode' => 'Наблюдение', - - 'motion' => 'Движение', - - 'motionInfo' => 'Детектор на движение който записва снимка, видео и може да включи други устройства използвайки webhook. Настройка за отчитане на двивижение само в определени зони от изгледа.', - - 'storage' => 'Съхранение', - - 'storageInfo' => 'Използвай Kerberos.cloud a да гледаш повече от една Kerberos.io инстанции от целия свят.', - - 'dontForget' => 'Натисни "Запиши" за да запазиш промените.', - - 'update' => 'Запиши', - - 'cancel' => 'Отмени', - - 'confirmAndSelect' => 'Избери', - - - // -------------- - // Camera - - 'width' => 'Широчина', - - 'height' => 'Височина', - - 'widthHeightInfo' => 'Резолюцията на изображението което ще бъде записано. Убедете се че се поддържа от камерата!', - - 'delay' => 'закъснение в секунди', - - 'delayInfo' => 'Закъснението (в секунди) което Kerberos.io ще изчака между два фрейма при запис. Това е полезно за да се намали броя на снимките които се обработват за секунда, което намаля натовареността на системата.', - - 'livestream' => 'фрейм/секунда при гледане на живо', - - 'livestreamInfo' => 'Фреймове за секунда при гледане на живо. Гледането на живо може да се спре, ако тази опция се сложи на нула.', - - 'rotate' => 'Кликнете върху картинката ако камерата за завъртяна. Пример: ако камерата е завъртяна на обратно и картинката трябва да бъде завъртяна на обратно.', - - 'url' => 'Въведете URL на RTSP или MJPEG stream на вашата IP камера.', - - // ---------------- - // Motion - - 'image' => 'Снимка', - - 'video' => 'Видео', - - 'step1' => 'Стъпка 1. Изберете зона', - - 'step1Info' => 'Преместете точките за да очертаете зоната на интерест. С двойно кликване върху точка може те да я премахнете. С двойно кликване върху бялата линия може да създаде нова точка.', - - 'step2' => 'Стъпка 2. Задайте параметри', - - 'step2Info' => 'Променяйки настройте може да направите засичането на движение повече или по-малко чувствително.', - - 'step3' => 'Стъпка 3. Избери един или повече изхода', - - 'step3Info' => 'Когато движение бъде засечено един или няколко изхода могат да бъдат включени. Операциите са не блокиращи.', - - 'sensitivity' => 'чувствителност', - - 'sensitivityInfo' => 'Увеличавайки плъзгача ще накара Kerberos.io да бъде по чувствителен на движение и обратното, намалявайки го ще се намали и чувствителността.', - - 'numberOfDetections' => 'необходими движения за валидно събитие', - - 'numberOfDetectionsInfo' => 'Броя на засечените последователни движения които са необходими за да сметне че е настъпило събитие. Ако увеличите тази стойност, ще намалите възможността от фалшиви събития предизвикани от облаци и други.', - - // ------------------ - // Timestamp - Colors - - 'noTimestamp' => 'без времеви индикатор', - - 'white' => 'бял', - - 'black' => 'черен', - - 'red' => 'червен', - - 'green' => 'зелен', - - 'blue' => 'син', - - 'drawTimestamp' => 'добави времеви индикатор', - - 'drawTimestampInfo' => 'Може добавите текущата дата и част към снимките когато се записват.', - - 'drawTimestampInfoVideo' => 'Може добавите текущата дата и част към видеото когато се записва.', - - 'privacy' => 'поверителност', - - 'privacyInfo' => 'Ако тази опция е пусната, само зоната избрана от Стъпка 1 ще бъде видима при запис, останалата част ще бъде в черно.', - - 'fps' => 'фрейма за секунда', - - 'fpsInfo' => 'Фрейма за секунда при запис на видео файл. Имайте предвид, че Raspberry Pi може да обработи ограничен брой фрейма за секунда (пример: 7 FPS).', - - 'secondsRecord' => 'секунди на запис', - - 'secondsRecordInfo' => 'Брой секунди които да бъдат записани след като движение бъде засечено.', - - 'webhookUrl' => 'url', - - 'webhookUrlInfo' => 'URL към който POST заявка ще изпрати JSON обект.', - - 'scriptPath' => 'път на файловата система', - - 'scriptPathInfo' => 'Път до BASH скрипт който да бъде изпълнен. JSON обект ще бъде подаден като параметър.', - - 'gpioPin' => 'пин', - - 'gpioPinInfo' => 'Избери GPIO пин който да получи импулс.', - - 'gpioPeriod' => 'времетраене', - - 'gpioPeriodInfo' => 'Времетраене на импулса в микросекунди.', - - // -------------- - // Cloud - - 'whatIsThis' => 'Какво е това', - - 'whatIsthisInformation' => 'Kerberos.io идва със собствено cloud-базирано приложение. Ако се абонирате може да синхронизирате и преглеждате всички снимки и видеа от всякъде по света. След абонирате, ще получите информация която трябва да попълните на полетата от ляво. След потвърждение и запазване на настройките, активността ще бъде синхронизирана автоматично. Забавлявайте се!', - - 'subscribeNow' => 'Абонирай се само за €1,49' - -); diff --git a/app/lang/bg/system.php b/app/lang/bg/system.php deleted file mode 100644 index da23b76..0000000 --- a/app/lang/bg/system.php +++ /dev/null @@ -1,98 +0,0 @@ - 'Система', - - 'diskAlmostFull' => 'Хей, дискът е почти пълен. Трябва да изтриеш някои снимки и видеа.', - - 'board' => 'Board', - - 'model' => 'Модел', - - 'os' => 'OS', - - 'osspecifications' => 'Детайли за OS', - - 'warning-docker' => 'Не е известно, аз работя в отделен Docker контейнер.', - - 'statistics' => 'Статистики', - - 'log' => 'История', - - 'news' => 'Новини', - - 'systemIsOnlineFor' => 'Системата работи от', - - 'kernel' => 'Kernel', - - 'hostname' => 'Име на хоста', - - 'architecture' => 'Архитектура', - - 'thisMachine' => 'Тази система има', - - 'cpuRunning' => 'CPU-та с натовареност (average load) от', - - 'diskSpecs' => 'Детайли за Дискът', - - 'thereAre' => 'Има', - - 'harddisksAvailable' => 'диск(а) на тази система', - - 'networkSpecs' => 'Детайли за Мрежата', - - 'device' => 'Устройство', - - 'recieved' => 'Получено', - - 'sent' => 'Изпратено', - - 'twoServicesRunning' => 'има нужда от два компонента - Web и Machinery', - - 'versions' => 'Версии', - - 'numberOfImages' => '# снимки', - - 'numberOfDays' => '# дни', - - 'days' => 'Дни', - - 'downloadSystemFiles' => 'Свали системните файлове', - - 'downloadImages' => 'Свали снимките', - - 'removeImages' => 'Изтрии снимките', - - 'shutdown' => 'Изключи', - - 'reboot' => 'Рестартирай', - - 'release' => 'Release', - - 'publishedAt' => 'Публикуван на', - - 'install' => 'Инсталация', - - 'downloading' => 'Сваляне', - - 'unzipping' => 'Разархивиране', - - 'unpacking' => 'Разопаковане', - - 'transferring' => 'Трансфериране', - - 'rebooting' => 'Системата се рестартира', - - 'shuttingdown' => 'Системата се изключва', - -); diff --git a/app/lang/bg/updateprofile.php b/app/lang/bg/updateprofile.php deleted file mode 100644 index 95eafab..0000000 --- a/app/lang/bg/updateprofile.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Обновяване на профил', - - 'username' => 'Вашето име', - - 'language' => 'език', - - 'languageInfo' => 'Ако Вашият език липсва или не е пълен, може да помогнете като посетите Github хранилището.', - - 'password' => 'парола', - - 'newPassword' => 'new password', - - 'changePassword' => 'Смени паролата', - - 'currentPassword' => 'текуща парола', - - 'newPassword' => 'нова парола', - - 'confirmNewPassword' => 'повтори новата парола', - - 'cancel' => 'Отмени', - - 'update' => 'Запиши' - -); diff --git a/app/lang/bg/validation.php b/app/lang/bg/validation.php deleted file mode 100755 index a6406f9..0000000 --- a/app/lang/bg/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - ":attribute трябва да се приеме.", - "active_url" => ":attribute не е валиден URL.", - "after" => ":attribute трябва да е дата след :date.", - "alpha" => ":attribute може да съдържа само букви.", - "alpha_dash" => ":attribute може да съдържа само букви, цифри и тирета.", - "alpha_num" => ":attribute може да съдържа само букви и цифри.", - "array" => ":attribute трябва да е масив.", - "before" => ":attribute трябва да е дата преди :date.", - "between" => array( - "numeric" => ":attribute трябва да е между :min и :max.", - "file" => ":attribute трябва да е между :min и :max килобайта.", - "string" => ":attribute трябва да е между :min и :max символа.", - "array" => ":attribute трябва да има между :min и :max елемента.", - ), - "confirmed" => ":attribute потвърждението не съвпада.", - "date" => ":attribute не е валидна дата.", - "date_format" => ":attribute не съвпада с формат :format.", - "different" => ":attribute и :other трябва да се различават.", - "digits" => ":attribute трябва да е :digits .", - "digits_between" => ":attribute трябва да е между :min и :max .", - "email" => ":attribute трябва да е валиден email адрес.", - "exists" => "Избраният :attribute не е валиден.", - "image" => ":attribute трябва да е снимка.", - "in" => "Избраният :attribute не е валиден.", - "integer" => ":attribute трябва да е число.", - "ip" => ":attribute трябва да е валиден IP адресс.", - "max" => array( - "numeric" => ":attribute не може да бъде по-голям от :max.", - "file" => ":attribute не може да бъде по-голям от :max килобайта.", - "string" => ":attribute не може да бъде по-голям от :max символа.", - "array" => ":attribute не може да има повече от :max елемента.", - ), - "mimes" => ":attribute трябва да е файл с тип: :values.", - "min" => array( - "numeric" => ":attribute трябва да бъде най-малко :min.", - "file" => ":attribute трябва да бъде най-малко :min килобайта.", - "string" => ":attribute трябва да бъде най-малко :min символа.", - "array" => ":attribute трябва да бъде най-малко :min елемента.", - ), - "not_in" => "Избраният :attribute не е валиден.", - "numeric" => ":attribute трябва да е число.", - "regex" => ":attribute формат не е валиден.", - "required" => ":attribute поле е задължително.", - "required_if" => ":attribute поле е задължително когато :other е :value.", - "required_with" => ":attribute поле е задължително когато :values е избрано.", - "required_with_all" => ":attribute поле е задължително когато :values е избрано.", - "required_without" => ":attribute поле е задължително когато :values не е избрано.", - "required_without_all" => ":attribute поле е задължително когато никое от :values не е избрано.", - "same" => ":attribute и :other трябва да съвпадат.", - "size" => array( - "numeric" => ":attribute трабва да бъде :size.", - "file" => ":attribute трабва да бъде :size килобайта.", - "string" => ":attribute трабва да бъде :size символа.", - "array" => ":attribute трябва да съдържа :size елемента.", - ), - "unique" => ":attribute вече е заето.", - "url" => ":attribute формат не е валиден.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/bg/welcome.php b/app/lang/bg/welcome.php deleted file mode 100644 index eb77b34..0000000 --- a/app/lang/bg/welcome.php +++ /dev/null @@ -1,64 +0,0 @@ - 'Настройване...', - - 'welcome' => 'Здравей!', - - 'introduction1' => 'Здравей, добре дошъл в семейството! Kerberos.io се използва от безброй потребители за много различни цели като наблюдение и анализ. Kerberos.io е за обикновени потребители, които наглеждат домашни любимци и/или жилище, както и за големи и малки организации! Планираш да правиш готини неща с Kerberos.io? Сподели го с нас...', - - 'introduction2' => 'След като приключи инсталираното, ти ще можеш да настроиш твоята система за сигурност с камери по твой избор. Забавлявай се!. Тук може да намериш полезни връзки към допълнителна информация за нас.', - - 'next' => 'Следваща', - - 'skip' => 'Пропусни', - - 'finish' => 'Край', - - 'setupProfile' => 'Конфигуриране на профил', - - 'changeCredentials1' => 'Web интерфейсът е защитен с потребителско име и парола за да бъдат защитени снимките и видеата от други хора. Опазването на данните е много важно за нас.', - - 'changeCredentials2' => 'След успешно вписване в системата, ти ще можеш да настроиш Kerberos.io и да прегледаш всички събития.', - - 'changeCredentials3' => 'По подразбиране потребителското име е root с парола root. Попълнете полетата долу за да ги смените или ги оставете празни за да ги запазите.', - - 'cloudStorage' => 'Cloud хранилище', - - 'cloud1' => 'Ако ще използвате повече от една Kerberos.io инстанции и искаш нотификации в реално време, Kerberos.cloud е това от което имаш нужда! С Kerberos.cloud може да следиш множество инстанции използвайки общ интерфейс който изглежда по същия начин както локалния Kerberos.io интерфейс. Нищо ново, само сме добавили няколко полезни придобивки:', - - 'cloudReviewActivity' => 'Преглеждай събитията от целия свят.', - - 'cloudNotifications' => 'Browser и Pushbullet нотификации.', - - 'cloudTimeline' => 'Хронология на активността която се вижда с един поглед.', - - 'cloudOverview' => 'Лесен преглед на всички инстанции.', - - 'cloudRegister' => 'За да започнеш трябва да се регистрираш на cloud.kerberos.io, и да се абонираш за план.', - - 'username' => 'потребителско име', - - 'enterUsername' => 'Въведи потребителско име', - - 'language' => 'език', - - 'languageInfo' => 'Ако Вашият език липсва или не е пълен, може да помогнете като посетите Github хранилището.', - - 'password' => 'парола', - - 'choosePassword' => 'Въведи парола', - - 'confirmPassword' => 'Повтори паролата', - -); diff --git a/app/lang/de/cloud.php b/app/lang/de/cloud.php deleted file mode 100644 index 3421113..0000000 --- a/app/lang/de/cloud.php +++ /dev/null @@ -1,21 +0,0 @@ - 'Cloud', - - 'description' => 'Kerberos.io bietet einen Cloudanwendungsdienst an, um mehrere Kerberos.io Instanzen zu zentralisieren. Um die Ereignisse dieser Instanz mit unserer Cloundanwendung zu synchronisieren benötigen Sie einen Account und müssen unser Angebot abonnieren. Wenn das Abonnement abgeschlossen ist erhalten sie die Zugangsdaten die sie in die Felder einfüllen. Wenn die Felder mit Ihren Zugangsdaten ausgefüllt worden sind werden die Daten an unsere Cloudanwendung gesendet.', - - 'update' => 'Aktualisieren', - -); - diff --git a/app/lang/de/dashboard.php b/app/lang/de/dashboard.php deleted file mode 100644 index ded4c33..0000000 --- a/app/lang/de/dashboard.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Aktivität', - - 'selectView' => 'Ansicht auswählen', - - 'liveView' => 'Live-Ansicht', - - 'lastActivity' => 'Neueste Aktiväten', - - 'heatmap' => 'Heatmap', - - 'overview' => 'Übersicht', - - 'hour' => 'Stunde', - - 'average' => 'Durchschnitt', - - 'weekday' => 'Wochentag', - -); diff --git a/app/lang/de/general.php b/app/lang/de/general.php deleted file mode 100644 index f9e4531..0000000 --- a/app/lang/de/general.php +++ /dev/null @@ -1,59 +0,0 @@ - 'Dashboard', - - 'system' => 'System', - - 'settings' => 'Einstellungen', - - 'configuration' => 'Einstellungen', - - 'cloud' => 'Cloud', - - 'on' => 'An', - - 'off' => 'Aus', - - 'logout' => 'Abmelden', - - 'update-profile' => 'Profil aktualisieren', - - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Montag', - - 'tuesday' => 'Dienstag', - - 'wednesday' => 'Mittwoch', - - 'thursday' => 'Donnerstag', - - 'friday' => 'Freitag', - - 'saturday' => 'Samstag', - - 'sunday' => 'Sonntag', - - 'today' => 'Heute', - - 'yesterday' => 'Gestern', - - 'dayBeforeYesterday' => 'Vorgestern' - -); diff --git a/app/lang/de/pagination.php b/app/lang/de/pagination.php deleted file mode 100644 index 3159d9b..0000000 --- a/app/lang/de/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Vorherige', - - 'next' => 'Nähste »', - -); diff --git a/app/lang/de/reminders.php b/app/lang/de/reminders.php deleted file mode 100644 index 1e6e5f7..0000000 --- a/app/lang/de/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "Passwörter müssen mindestens 6 Zeichen lang sein und mit dem Bestätigungsfeld übereinstimmen.", - - "user" => "Wir können keinen Benutzer mit der E-Mail Adresse finden.", - - "token" => "Der Reset-Token des Passwortes ist ungültig.", - - "sent" => "Passworterinnerung wurde gesendet!", - -); diff --git a/app/lang/de/settings.php b/app/lang/de/settings.php deleted file mode 100644 index f5bd4fc..0000000 --- a/app/lang/de/settings.php +++ /dev/null @@ -1,180 +0,0 @@ - 'Einstellungen', - - 'configuration' => 'Konfiguration', - - 'update' => 'Aktualisieren', - - 'heatmap' => 'Heatmap', - - 'general' => 'Allgemeine Einstellungen', - - 'purchase' => 'Schau deine Aktivitäten von überall auf der Welt an mit Kerberos.cloud, Leg los für nur 1,49€/Monat!', - - 'basic' => 'Grundlagen', - - 'advanced' => 'Fortgeschritten', - - 'name' => 'Name', - - 'nameInfo' => 'Ein eindeutiger Name ist für die Kamera erforderlich, wenn Sie mehrere Kerberos.io Instanzen verwenden.', - - 'timezone' => 'Zeitzone', - - 'timezoneInfo' => 'Die Zeitzone wird gebraucht um die Zeitstempel in das lokale Zeitformat zu konvertieren. Es wird sowohl in der Weboberfläche als auch in der Maschine genutzt', - - 'camera' => 'Kamera', - - 'usbcamera' => 'USB Kamera', - - 'usbcameraInfo' => 'Diese Option auswählen wenn sie eine USB Kamera verwenden wollen', - - 'rpicamera' => 'RPi Kamera', - - 'rpicameraInfo' => 'Wenn Kerberos.io auf einem Raspberry Pi läuft können Sie diese Option auswählen, sofern ein Raspberry Pi Kamera-Modul (v1 oder v2) angeschlossen ist.', - - 'ipcamera' => 'IP Kamera', - - 'ipcameraInfo' => 'Diese Option auswählen, wenn Sie eine IP Kamera verwenden wollen welche RTSP oder MJPEG stream unterstützt.', - - 'surveillanceMode' => 'Überwachung', - - 'motion' => 'Bewegung', - - 'motionInfo' => 'Intelligente Bewegungserkennung welche Schnappschüsse oder Videos speichert, und/oder andere Geräte via webhook auslöst. Bedingungen einrichten um nur einen bestimmten Bereich im Blickfeld zu überwachen.', - - 'storage' => 'Speicher', - - 'storageInfo' => 'Verwende Kerberos.cloud um mehrere Kerberos.io Instanzen von überall auf der Welt zu überwachen.', - - 'dontForget' => 'Aktualisieren auswählen um die Konfiguration zu speichern.', - - 'update' => 'Aktualisieren', - - 'cancel' => 'Abbrechen', - - 'confirmAndSelect' => 'Bestätigen und auswählen', - - - // -------------- - // Camera - - 'width' => 'Breite', - - 'height' => 'Höhe', - - 'widthHeightInfo' => 'The resolution of the images being captured by your camera. Make sure that this resolution is supported!', - 'widthHeightInfo' => 'Auflösung mit der die Kamera die Bilder aufzeichnet. Auflösung muss von der Kamera unterstützt werden!', - - 'delay' => 'Verzögerung in Sekunden', - - 'delayInfo' => 'Die Verzögerungszeit sagt Kerberos.io x Sekunden zwischen 2 Bildaufzeichnungen zu warten. Das ist sinnvoll wenn Sie weniger Bilder pro Sekunden verarbeiten wollen (z.B. bessere Performance).', - - 'livestream' => 'Livestream frames/sek', - - 'livestreamInfo' => 'Frames pro Sekunde des Livestreams konfigurieren. Wenn diese Option auf 0 gesetzt wird, wird der Livestream deaktiviert.', - - 'rotate' => 'Aufs Bild klicken wenn die Kamera gedreht ist. z.B. wenn die Kamera über Kopf angebracht ist um sicher zu gehen das das Bild auch auf den Kopf steht.', - - 'url' => 'URL des RTSP oder MJPEG stream Ihrer IP camera.', - - // ---------------- - // Motion - - 'image' => 'Bild', - - 'video' => 'Video', - - 'step1' => 'Schritt 1. Region auswählen', - - 'step1Info' => 'Punkte bewegen um Region die von Interesse ist auszuwählen. Doppelklick um einen Punkt zu entfernen, und/oder auf den weißen Punkt um mehr hinzuzufügen.', - - 'step2' => 'Step 2. Parameter konfigurieren', - - 'step2Info' => 'By changing the configuration below you can make the motion detection more or less sensitive.', - 'step2Info' => 'Mit den Parametern kann die Bewegungserkennung mehr oder weniger empfindlich eingestellt werden.', - - 'step3' => 'Step 3. Eine oder mehrere Ausgaben auswählen', - - 'step3Info' => 'Wenn eine Bewegung erkannt worden können eine oder mehrere Ausgaben (asynchron) ausgeführt werden.', - - 'sensitivity' => 'Empfindlichkeit', - - 'sensitivityInfo' => 'Kerberos.io ist empfindlicher wenn der Schieberegler erhöht wird. Entsprechend umgekehrt wenn er verringert wird.', - - 'numberOfDetections' => 'Anzahl der Erkennungen bevor Aktivität erkannt', - - 'numberOfDetectionsInfo' => 'Die Zahl repräsentiert die Anzahl der Erkennungen die hintereinander auftreten müssen bevor Kerberos.io eine gültige Aktivität auslöst. Wenn der Wert erhöht wird werden Falschmeldungen verhindert z.B. Wolken, Blitze, etc.', - - // ------------------ - // Timestamp - Colors - - 'noTimestamp' => 'kein Zeitstempel', - - 'white' => 'Weiß', - - 'black' => 'Schwarz', - - 'red' => 'Rot', - - 'green' => 'Grün', - - 'blue' => 'Blau', - - 'drawTimestamp' => 'Zeitstempel aufzeichen', - - 'drawTimestampInfo' => 'Wenn ein Bild gespeichert wird Datum und Uhrzeit auf dem Bild hinterlegen.', - - /* to translate */ 'drawTimestampInfoVideo' => 'When a video is saved to disk, you can draw the current date and time on the video.', - - /* to translate */ 'privacy' => 'privacy', - - /* to translate */ 'privacyInfo' => 'By enabling this option, only the selected region of step 1 will be visible. All pixels outside the region are made black.', - - 'fps' => 'Frames pro Sekunde', - - 'fpsInfo' => 'Frmes pro Sekunde mit der das Video geschrieben wird; bitte beachten das der Raspberry Pi nur eine geringe Anzahl von FPS verarbeiten kann (z.B. 7 FPS).', - - 'secondsRecord' => 'Aufzeichnungslänge in Sekunden', - - 'secondsRecordInfo' => 'Die Länge in Sekunden die aufgezeichnet werden nachdem eine Bewegung erkannt wurde.', - - 'webhookUrl' => 'URL', - - 'webhookUrlInfo' => 'Die URL an die ein JSON Objekt via POST gesendet wird.', - - 'scriptPath' => 'Pfad', - - 'scriptPathInfo' => 'Pfad zum bash Skript das ausgeführt wird. Ein JSON Objekt wird als Parameter übergeben.', - - 'gpioPin' => 'PIN', - - 'gpioPinInfo' => 'PIN Nummer die ein Signal erhält.', - - 'gpioPeriod' => 'Zeitraum', - - 'gpioPeriodInfo' => 'Signallänge in Mikrosekunden.', - - // -------------- - // Cloud - - 'whatIsThis' => 'Was ist das', - 'whatIsthisInformation' => 'Kerberos.io kommt mit einer eigenen Cloudanwendung. Mit einem Abonnement werden alle Bilder und Videos synchronisiert und sind dadurch von überall auf der Welt erreichbar. Sobald Sie abonniert sind erhalten Sie Zugangsdaten welche in die Felder zu Ihrer linken eingefügt werden können. Nachdem die Einstellungen gespeichert wurden werden die Aktivitäten automatisch synchronisiert. Viel Spass!', - - 'whatIsthisInformation' => '', - - 'subscribeNow' => 'Für nur €1,49 abonnieren' - -); diff --git a/app/lang/de/system.php b/app/lang/de/system.php deleted file mode 100644 index 072fa34..0000000 --- a/app/lang/de/system.php +++ /dev/null @@ -1,98 +0,0 @@ - 'System', - - 'diskAlmostFull' => 'Hey, die Festplatte ist fast voll. Einfach mal paar Bilder entfernen...', - - 'board' => 'Platine', - - 'model' => 'Model', - - 'os' => 'OS', - - 'osspecifications' => 'OS Spezifikationen', - - 'warning-docker' => 'Keine Ahnung, bin in einem seperaten docker container..', - - 'statistics' => 'Statistiken', - - 'log' => 'Log', - - 'news' => 'News', - - 'systemIsOnlineFor' => 'System ist online für', - - 'kernel' => 'Kernel', - - 'hostname' => 'Hostname', - - 'architecture' => 'Architektur', - - 'thisMachine' => 'Die Maschine hat', - - 'cpuRunning' => 'CPU\'s laufen mit einer durchschnittlichen Auslastung von', - - 'diskSpecs' => 'Spezifikationen Festplatte', - - 'thereAre' => 'Es sind', - - 'harddisksAvailable' => 'Festplatten verfügbar in der Maschine.', - - 'networkSpecs' => 'Spezifikationen Netzwerk', - - 'device' => 'Gerät', - - 'recieved' => 'Erhalten', - - 'sent' => 'Gesendet', - - 'twoServicesRunning' => 'benötigt 2 Dienste: das web und die machinery', - - 'versions' => 'Versionen', - - 'numberOfImages' => '# Anzahl der Bilder', - - 'numberOfDays' => '# Anzahl der Tage', - - 'days' => 'Tage', - - 'downloadSystemFiles' => 'Systemdateien herunterladen', - - 'downloadImages' => 'Bilder herunterladen', - - 'removeImages' => 'Bilder entfernen', - - 'shutdown' => 'Herunterfahren', - - 'reboot' => 'Neustarten', - - 'release' => 'Release', - - 'publishedAt' => 'Veröffentlicht am', - - 'install' => 'Installieren', - - 'downloading' => 'Herunterladen', - - 'unzipping' => 'Entpacken', - - 'unpacking' => 'Auspacken', - - 'transferring' => 'Übertragen', - - 'rebooting' => 'System wird neugestartet', - - 'shuttingdown' => 'System wird heruntergefahren', - -); diff --git a/app/lang/de/updateprofile.php b/app/lang/de/updateprofile.php deleted file mode 100644 index b135f3d..0000000 --- a/app/lang/de/updateprofile.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Profil aktualisieren', - - 'username' => 'Benutzername', - - 'language' => 'Sprache', - - 'languageInfo' => 'Sprache fehlt oder unvollständig? Ergänze deine Sprache in unserem Github repository.', - - 'password' => 'Passwort', - - 'newPassword' => 'Neues Passwort', - - 'changePassword' => 'Passwort ändern', - - 'currentPassword' => 'Aktuelles Passwort', - - 'newPassword' => 'Neues Passwort', - - 'confirmNewPassword' => 'Neues Passwort bestätigen', - - 'cancel' => 'Abbrechen', - - 'update' => 'Aktualisieren' - -); diff --git a/app/lang/de/validation.php b/app/lang/de/validation.php deleted file mode 100644 index c7327a0..0000000 --- a/app/lang/de/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - ":attribute muss akzeptiert werden.", - "active_url" => ":attribute ist keine gültige URL.", - "after" => ":attribute Datum muss nach dem :date sein.", - "alpha" => ":attribute darf nur Buchstaben enthalten.", - "alpha_dash" => ":attribute darf nur Buchstaben, Nummern oder Striche enthalten.", - "alpha_num" => ":attribute darf nur Buchstaben oder Nummern enthalten.", - "array" => ":attribute muss eine Liste sein.", - "before" => ":attribute muss ein Datum vor dem :date sein.", - "between" => array( - "numeric" => ":attribute muss zwischen :min und :max liegen.", - "file" => ":attribute muss zwischen :min und :max kilobytes sein.", - "string" => ":attribute muss zwischen :min und :max Zeichen lang sein.", - "array" => ":attribute muss zwischen :min und :max Elemente sein.", - ), - "confirmed" => "Das :attribute Bestätigung stimmt nicht überein.", - "date" => "Tattribute ist kein gültiges Datum.", - "date_format" => "Tattribute Format stimmt nicht überein mit :format.", - "different" => "Tattribute und :other müssen sich unterscheiden.", - "digits" => "Tattribute muss aus Zahlen bestehen :digits.", - "digits_between" => ":attribute muss zwischen :min und :max Zahlen sein.", - "email" => "Tattribute muss eine gültige E-Mail Adresse sein.", - "exists" => "Das ausgewählte :attribute ist nicht gültig.", - "image" => ":attribute muss ein Bild sein.", - "in" => "Das ausgewählte :attribute ist ungültig.", - "integer" => ":attribute muss eine Ganzzahl sein.", - "ip" => ":attribute muss eine gültige IP Addresse sein.", - "max" => array( - "numeric" => ":attribute darf nicht größer als :max sein.", - "file" => ":attribute darf nicht größer als :max kilobytes sein.", - "string" => ":attribute darf nicht größer als :max Zeichen lang sein.", - "array" => ":attribute darf nicht mehr als :max Elemente haben.", - ), - "mimes" => ":attribute muss folgenden Dateityp haben: :values.", - "min" => array( - "numeric" => ":attribute Mindestwert ist :min.", - "file" => ":attribute Mindestwert ist :min kilobytes.", - "string" => ":attribute Mindestwert ist :min Zeichen.", - "array" => ":attribute muss mindestens :min Elemente haben.", - ), - "not_in" => "Ausgewählter Wert :attribute ist ungültig.", - "numeric" => ":attribute muss eine Zahl sein.", - "regex" => "Tattribute Format ist ungültig.", - "required" => "Tattribute Feld ist erforderlich.", - "required_if" => ":attribute Feld ist erforderlich wenn :other ist :value.", - "required_with" => ":attribute Feld ist erforderlich wenn :values ist vorhanden.", - "required_with_all" => ":attribute Feld ist erforderlich wenn :values ist vorhanden.", - "required_without" => ":attribute Feld ist erforderlich wenn :values ist nicht vorhanden.", - "required_without_all" => ":attribute Feld ist erforderlich wenn keines der Werte :values vorhanden ist.", - "same" => ":attribute und :other müssen übereinstimmen.", - "size" => array( - "numeric" => ":attribute erforderliche Größe ist :size.", - "file" => ":attribute erforderliche Größe ist :size kilobytes.", - "string" => ":attribute erforderliche Größe ist :size Zeichen.", - "array" => ":attribute muss :size Elemente enthalten.", - ), - "unique" => ":attribute ist schon vergeben.", - "url" => ":attribute Format ist ungültig.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/de/welcome.php b/app/lang/de/welcome.php deleted file mode 100644 index 86acde4..0000000 --- a/app/lang/de/welcome.php +++ /dev/null @@ -1,60 +0,0 @@ - 'Wird eingerichtet..', - - 'welcome' => 'Willkommen!', - - 'introduction1' => 'Hallo, willkommen in der Familie! Kerberos.io wird von einer Vielzahl von Benutzer verwendet und hat viele Anwendungsbereiche, von Überwachungs bis zur Analyse. Kerberos.io unterstützt herkömmliche Benutzer, um eine Auge auf das Haustier und/oder das Haus zu werfen und auch große bis kleine Gewerbe! Haben Sie vor Raketenwissenschaft mit Kerberos.io zu machen? Lass es uns wissen..', - - 'introduction2' => 'Nachdem Sie die kurze Installation beendet haben, werden Sie in der Lage sein Ihr Überwachungssystem mit der Kamera Ihrer Wahl einzurichten. Viel Spass! Übrigens hier sind ein paar Links mit ein weiteren Informationen über uns.', - - 'next' => 'Nächste', - - 'skip' => 'Überspringen', - - 'finish' => 'Abschließen', - - 'setupProfile' => 'Profil erstellen', - - 'changeCredentials1' => 'Die Kerberos.io Weboberfläche ist mit Benutzername und Passwort gesichert um Ihre Bilder und Videos zu schützen. Wir nehmen Sicherheit sehr ernst!', - - 'changeCredentials2' => 'Nach erfolgreicher Anmeldung werden sie in der Lage sein Kerberos.io zu konfigurieren und alle Ihre Ereignisse zu überprüfen', - - 'changeCredentials3' => 'Standardmäßig sind die Anmeldedaten wie folgt gesetzt: Benutzername root und Passwort root. Einfach die folgenden Felder ändern um die Benutzerdaten zu ändern, oder leer lassen wenn weiterhin die Standardbenutzerdaten genommen werden sollen', - - 'cloudStorage' => 'Cloud-Speicher', - - 'cloud1' => 'Wenn Sie mehrere Kerberos.io Instanzen installieren und Echtzeitbenachrichtungen erhalten wollen, Kerberos.cloud ist was Sie brauchen! Mit Kerberos.cloud können Sie einfach mehrere Instanzen überwachen und das mit nur einem Interface, welches das gleiche Design with Ihre lokale Kerberos.io Instanz hat. Also nichts neues, wir haben nur ein paar nützliche neue Features hinzugefügt', - - 'cloudReviewActivity' => 'Aktivitäten von überall auf der Welt überprüfen.', - - 'cloudNotifications' => 'Browser- and Pushbullet Benachrichtigungen.', - - 'cloudTimeline' => 'Eine Zeitachse um Ihre Aktivitäten auf einen Blick zu haben.', - - 'cloudOverview' => 'Einfache Übersicht um alle Instanzen zu sehen.', - - 'cloudRegister' => 'Um zu starten einfach einen Benutzer registrieren auf cloud.kerberos.io, und ein Abo abschließen.', - - 'username' => 'Benutzername', - - 'enterUsername' => 'Benutzername eingeben', - - 'password' => 'Passwort', - - 'choosePassword' => 'Passwort wählen', - - 'confirmPassword' => 'Passwort bestätigen', - -); diff --git a/app/lang/en/dashboard.php b/app/lang/en/dashboard.php deleted file mode 100644 index e657cba..0000000 --- a/app/lang/en/dashboard.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Activity', - - 'selectView' => 'Select view', - - 'liveView' => 'Live View', - - 'lastActivity' => 'Latest Activity', - - 'heatmap' => 'Heatmap', - - 'overview' => 'Overview', - - 'hour' => 'Hour', - - 'average' => 'Average', - - 'weekday' => 'Weekday', - -); \ No newline at end of file diff --git a/app/lang/en/general.php b/app/lang/en/general.php deleted file mode 100644 index a993b7b..0000000 --- a/app/lang/en/general.php +++ /dev/null @@ -1,58 +0,0 @@ - 'Dashboard', - - 'system' => 'System', - - 'settings' => 'Settings', - - 'configuration' => 'Configuration', - - 'cloud' => 'Cloud', - - 'on' => 'On', - - 'off' => 'Off', - - 'logout' => 'Logout', - - 'update-profile' => 'Update profile', - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Monday', - - 'tuesday' => 'Tuesday', - - 'wednesday' => 'Wednesday', - - 'thursday' => 'Thursday', - - 'friday' => 'Friday', - - 'saturday' => 'Saturday', - - 'sunday' => 'Sunday', - - 'today' => 'Today', - - 'yesterday' => 'Yesterday', - - 'dayBeforeYesterday' => 'Ereyesterday' - -); \ No newline at end of file diff --git a/app/lang/en/pagination.php b/app/lang/en/pagination.php deleted file mode 100755 index 6b99ef5..0000000 --- a/app/lang/en/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Previous', - - 'next' => 'Next »', - -); diff --git a/app/lang/en/reminders.php b/app/lang/en/reminders.php deleted file mode 100755 index e42148e..0000000 --- a/app/lang/en/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "Passwords must be at least six characters and match the confirmation.", - - "user" => "We can't find a user with that e-mail address.", - - "token" => "This password reset token is invalid.", - - "sent" => "Password reminder sent!", - -); diff --git a/app/lang/en/settings.php b/app/lang/en/settings.php deleted file mode 100644 index 6c2be66..0000000 --- a/app/lang/en/settings.php +++ /dev/null @@ -1,177 +0,0 @@ - 'Settings', - - 'configuration' => 'Configuration', - - 'update' => 'Update', - - 'heatmap' => 'Heatmap', - - 'general' => 'General settings', - - 'purchase' => 'Watch your activity from anywhere in the world with Kerberos.cloud, Get started for only 1,49€/month!', - - 'basic' => 'Basic', - - 'advanced' => 'Advanced', - - 'name' => 'Name', - - 'nameInfo' => 'A unique name for your camera is required, if you will run multiple Kerberos.io instances.', - - 'timezone' => 'Timezone', - - 'timezoneInfo' => 'The timezone is used to convert timestamps to your local time. It\'s used in both the machinery and web interface.', - - 'camera' => 'Camera', - - 'usbcamera' => 'USB camera', - - 'usbcameraInfo' => 'Select this option, if you want to use an USB camera.', - - 'rpicamera' => 'RPi camera', - - 'rpicameraInfo' => 'If you run Kerberos.io on a Raspberry Pi, you can select this option, if you want to use the Raspberry Pi camera module (v1 or v2).', - - 'ipcamera' => 'IP camera', - - 'ipcameraInfo' => 'Select this option, if you want to use an IP camera which supports an RTSP or MJPEG stream.', - - 'surveillanceMode' => 'Surveillance', - - 'motion' => 'Motion', - - 'motionInfo' => 'A smart motion detector, that saves snapshots or video, and/or trigger other devices by using a webhook. Setup conditions to only detect motion at a specific region in the view.', - - 'storage' => 'Storage', - - 'storageInfo' => 'Use Kerberos.cloud to follow up multiple Kerberos.io instances from anywhere in the world.', - - 'dontForget' => 'Press update to confirm your configuration.', - - 'update' => 'Update', - - 'cancel' => 'Cancel', - - 'confirmAndSelect' => 'Confirm and select', - - - // -------------- - // Camera - - 'width' => 'Width', - - 'height' => 'Height', - - 'widthHeightInfo' => 'The resolution of the images being captured by your camera. Make sure that this resolution is supported!', - - 'delay' => 'delay in seconds', - - 'delayInfo' => 'The delay time will tell Kerberos.io to wait for x amount of seconds, between two frame captures. This is helpful when you would like to reduce the number of images being processed per second (e.g. for performance reasons).', - - 'livestream' => 'live stream frames/sec', - - 'livestreamInfo' => 'The frames per second of the live stream can be configured. Setting this option to zero, will disable the live stream.', - - 'rotate' => 'Click on this image if your camera is rotated. E.g. if your camera is mounted upside down, make sure this image is also upside down.', - - 'url' => 'Enter the url of the RTSP or MJPEG stream of your IP camera.', - - // ---------------- - // Motion - - 'image' => 'Image', - - 'video' => 'Video', - - 'step1' => 'Step 1. Select a region', - - 'step1Info' => 'Move the points to draw the region of interest. Double click on a point to remove it, and/or on the white point to add more points.', - - 'step2' => 'Step 2. Configure parameters', - - 'step2Info' => 'By changing the configuration below you can make the motion detection more or less sensitive.', - - 'step3' => 'Step 3. Select one or more outputs', - - 'step3Info' => 'Once motion is detected you can execute (asynchronous) one or more outputs.', - - 'sensitivity' => 'sensitivity', - - 'sensitivityInfo' => 'Increasing this slider will make Kerberos.io more sensitive for motion. Decreasing will make it less sensitive for motion.', - - 'numberOfDetections' => 'number of detections before valid', - - 'numberOfDetectionsInfo' => 'This number represents the number of detections in a row before Kerberos.io will trigger a valid event. By increasing this value, you can eliminate false-positives: e.g. lightning, clouds, etc.', - - // ------------------ - // Timestamp - Colors - - 'noTimestamp' => 'no timestamp', - - 'white' => 'white', - - 'black' => 'black', - - 'red' => 'red', - - 'green' => 'green', - - 'blue' => 'blue', - - 'drawTimestamp' => 'draw timestamp', - - 'drawTimestampInfo' => 'When an image is saved to disk, you can draw the current date and time on the image.', - - 'drawTimestampInfoVideo' => 'When a video is saved to disk, you can draw the current date and time on the video.', - - 'privacy' => 'privacy', - - 'privacyInfo' => 'By enabling this option, only the selected region of step 1 will be visible. All pixels outside the region are made black.', - - 'fps' => 'frames per second', - - 'fpsInfo' => 'The frames per second written to the video file; be aware that a Raspberry Pi can only process a limited number of FPS (e.g. 7 FPS).', - - 'secondsRecord' => 'seconds to record', - - 'secondsRecordInfo' => 'The number of seconds that will be recorded after motion was detected.', - - 'webhookUrl' => 'url', - - 'webhookUrlInfo' => 'The url to which a POST will be sent with a JSON object.', - - 'scriptPath' => 'path', - - 'scriptPathInfo' => 'The path to a bash script that will be executed. A JSON object is send as a parameter.', - - 'gpioPin' => 'pin', - - 'gpioPinInfo' => 'Define the pin number on which a pulse will be send.', - - 'gpioPeriod' => 'period', - - 'gpioPeriodInfo' => 'The number of microseconds the pulse will last.', - - // -------------- - // Cloud - - 'whatIsThis' => 'What is this', - - 'whatIsthisInformation' => 'Kerberos.io comes with its own cloud application. By subscribing to a plan, you can sync all your images and videos, and review it from anywhere in the world. Once subscribed, you\'ll receive some credentials which you can fill in the fields on the left. After confirming and updating the settings, you\'re activity will be synced automatically. Have fun!', - - 'subscribeNow' => 'Subscribe now for only €1,49' - -); diff --git a/app/lang/en/system.php b/app/lang/en/system.php deleted file mode 100644 index 80634bd..0000000 --- a/app/lang/en/system.php +++ /dev/null @@ -1,98 +0,0 @@ - 'System', - - 'diskAlmostFull' => 'Hey, your disk is almost full. Please remove some images..', - - 'board' => 'Board', - - 'model' => 'Model', - - 'os' => 'OS', - - 'osspecifications' => 'OS specifications', - - 'warning-docker' => 'Don\'t know I\'m in a separate Docker container..', - - 'statistics' => 'Statistics', - - 'log' => 'Log', - - 'news' => 'News', - - 'systemIsOnlineFor' => 'System is online for', - - 'kernel' => 'Kernel', - - 'hostname' => 'Hostname', - - 'architecture' => 'Architecture', - - 'thisMachine' => 'This machine has', - - 'cpuRunning' => 'CPU\'s running with an average load of', - - 'diskSpecs' => 'Disk specifications', - - 'thereAre' => 'There are', - - 'harddisksAvailable' => 'hard disks available on this machine', - - 'networkSpecs' => 'Network specifications', - - 'device' => 'Device', - - 'recieved' => 'Received', - - 'sent' => 'Sent', - - 'twoServicesRunning' => 'needs two services: the web and the machinery', - - 'versions' => 'Versions', - - 'numberOfImages' => '# of images', - - 'numberOfDays' => '# of days', - - 'days' => 'Days', - - 'downloadSystemFiles' => 'Download system files', - - 'downloadImages' => 'Download images', - - 'removeImages' => 'Remove images', - - 'shutdown' => 'Shutdown', - - 'reboot' => 'Reboot', - - 'release' => 'Release', - - 'publishedAt' => 'Published at', - - 'install' => 'Install', - - 'downloading' => 'Downloading', - - 'unzipping' => 'Unzipping', - - 'unpacking' => 'Unpacking', - - 'transferring' => 'Transferring', - - 'rebooting' => 'System is rebooting', - - 'shuttingdown' => 'System is shutting down', - -); diff --git a/app/lang/en/updateprofile.php b/app/lang/en/updateprofile.php deleted file mode 100644 index 39451a8..0000000 --- a/app/lang/en/updateprofile.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Update profile', - - 'username' => 'Your username', - - 'language' => 'language', - - 'languageInfo' => 'Is your language missing or incomplete? Contribute your language to our Github repository.', - - 'password' => 'password', - - 'newPassword' => 'new password', - - 'changePassword' => 'Change password', - - 'currentPassword' => 'current password', - - 'newPassword' => 'new password', - - 'confirmNewPassword' => 'confirm new password', - - 'cancel' => 'cancel', - - 'update' => 'update' - -); diff --git a/app/lang/en/validation.php b/app/lang/en/validation.php deleted file mode 100755 index b03b926..0000000 --- a/app/lang/en/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - "The :attribute must be accepted.", - "active_url" => "The :attribute is not a valid URL.", - "after" => "The :attribute must be a date after :date.", - "alpha" => "The :attribute may only contain letters.", - "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", - "alpha_num" => "The :attribute may only contain letters and numbers.", - "array" => "The :attribute must be an array.", - "before" => "The :attribute must be a date before :date.", - "between" => array( - "numeric" => "The :attribute must be between :min and :max.", - "file" => "The :attribute must be between :min and :max kilobytes.", - "string" => "The :attribute must be between :min and :max characters.", - "array" => "The :attribute must have between :min and :max items.", - ), - "confirmed" => "The :attribute confirmation does not match.", - "date" => "The :attribute is not a valid date.", - "date_format" => "The :attribute does not match the format :format.", - "different" => "The :attribute and :other must be different.", - "digits" => "The :attribute must be :digits digits.", - "digits_between" => "The :attribute must be between :min and :max digits.", - "email" => "The :attribute must be a valid email address.", - "exists" => "The selected :attribute is invalid.", - "image" => "The :attribute must be an image.", - "in" => "The selected :attribute is invalid.", - "integer" => "The :attribute must be an integer.", - "ip" => "The :attribute must be a valid IP address.", - "max" => array( - "numeric" => "The :attribute may not be greater than :max.", - "file" => "The :attribute may not be greater than :max kilobytes.", - "string" => "The :attribute may not be greater than :max characters.", - "array" => "The :attribute may not have more than :max items.", - ), - "mimes" => "The :attribute must be a file of type: :values.", - "min" => array( - "numeric" => "The :attribute must be at least :min.", - "file" => "The :attribute must be at least :min kilobytes.", - "string" => "The :attribute must be at least :min characters.", - "array" => "The :attribute must have at least :min items.", - ), - "not_in" => "The selected :attribute is invalid.", - "numeric" => "The :attribute must be a number.", - "regex" => "The :attribute format is invalid.", - "required" => "The :attribute field is required.", - "required_if" => "The :attribute field is required when :other is :value.", - "required_with" => "The :attribute field is required when :values is present.", - "required_with_all" => "The :attribute field is required when :values is present.", - "required_without" => "The :attribute field is required when :values is not present.", - "required_without_all" => "The :attribute field is required when none of :values are present.", - "same" => "The :attribute and :other must match.", - "size" => array( - "numeric" => "The :attribute must be :size.", - "file" => "The :attribute must be :size kilobytes.", - "string" => "The :attribute must be :size characters.", - "array" => "The :attribute must contain :size items.", - ), - "unique" => "The :attribute has already been taken.", - "url" => "The :attribute format is invalid.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/en/welcome.php b/app/lang/en/welcome.php deleted file mode 100644 index 3fca07d..0000000 --- a/app/lang/en/welcome.php +++ /dev/null @@ -1,64 +0,0 @@ - 'Setting things up..', - - 'welcome' => 'Welcome!', - - 'introduction1' => 'Hey there, welcome to the family! Kerberos.io is used by a myriad of users, and is used for many different use cases; from surveillance to analytics. Kerberos.io supports both basic users, to keep an eye on their pets and/or property, and big to small enterprises! Are you planning to do some rocket science with Kerberos.io? Please let us know..', - - 'introduction2' => 'After you\'ve finished this short installation, you\'ll be able to setup your own security system with the camera of your choice. Have fun! By the way here you got some links where you can find more information about us.', - - 'next' => 'Next', - - 'skip' => 'Skip', - - 'finish' => 'Finish', - - 'setupProfile' => 'Setup your profile', - - 'changeCredentials1' => 'The Kerberos.io web interface is secured with a username and password to protect your images and videos for others. We take security very seriously!', - - 'changeCredentials2' => 'After signed-in successfully, you\'ll be able to configure Kerberos.io and review all your events.', - - 'changeCredentials3' => 'By default the credentials to sign are set to username: root and password: root. Fill in the fields below to change these credentials, or leave them empty if you want to use the default credentials.', - - 'cloudStorage' => 'Cloud storage', - - 'cloud1' => 'If you will install multiple Kerberos.io instances, and want to receive real-time notifications, Kerberos.cloud is what you need! With Kerberos.cloud you can easily monitor multiple instances with only one interface, which has exactly the same design as your local Kerberos.io instances. So nothing new, we just added a couple of useful features:', - - 'cloudReviewActivity' => 'Review your activity from anywhere in the world.', - - 'cloudNotifications' => 'Browser- and Pushbullet notifications.', - - 'cloudTimeline' => 'A timeline to see your activity at a glance.', - - 'cloudOverview' => 'Simple overview to see all your instances together.', - - 'cloudRegister' => 'To get started register an account on cloud.kerberos.io, and subscribe a plan.', - - 'username' => 'username', - - 'enterUsername' => 'Enter a username', - - 'language' => 'language', - - 'languageInfo' => 'Is your language missing or incomplete? Contribute your language to our Github repository.', - - 'password' => 'password', - - 'choosePassword' => 'Choose a password', - - 'confirmPassword' => 'Confirm your password', - -); diff --git a/app/lang/fr/dashboard.php b/app/lang/fr/dashboard.php deleted file mode 100644 index 76c2d16..0000000 --- a/app/lang/fr/dashboard.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Activité', - - 'selectView' => 'Choix de la vue', - - 'liveView' => 'Vue Live', - - 'lastActivity' => 'Dernière activité', - - 'heatmap' => 'Points chauds', - - 'overview' => 'Vue globale', - - 'hour' => 'Vue horaire', - - 'average' => 'Moyenne', - - 'weekday' => 'Vue hebdo', - -); diff --git a/app/lang/fr/general.php b/app/lang/fr/general.php deleted file mode 100644 index 5d038a0..0000000 --- a/app/lang/fr/general.php +++ /dev/null @@ -1,59 +0,0 @@ - 'Tableau de bord', - - 'system' => 'Système', - - 'settings' => 'Réglages', - - 'configuration' => 'Réglages', - - 'cloud' => 'Cloud', - - 'on' => 'On', - - 'off' => 'Off', - - 'logout' => 'Déconnection', - - 'update-profile' => 'Mettre à jour le profil', - - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Lundi', - - 'tuesday' => 'Mardi', - - 'wednesday' => 'Mercredi', - - 'thursday' => 'Jeudi', - - 'friday' => 'Vendredi', - - 'saturday' => 'Samedi', - - 'sunday' => 'Dimanche', - - 'today' => 'Aujourd\'hui', - - 'yesterday' => 'Hier', - - 'dayBeforeYesterday' => 'Avant-hier' - -); diff --git a/app/lang/fr/pagination.php b/app/lang/fr/pagination.php deleted file mode 100755 index 17019f4..0000000 --- a/app/lang/fr/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Précédent', - - 'next' => 'Suivant »', - -); diff --git a/app/lang/fr/reminders.php b/app/lang/fr/reminders.php deleted file mode 100755 index 3c44985..0000000 --- a/app/lang/fr/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "Les mots de passe doivent faire au moins 6 caractères de long et être identiques.", - - "user" => "Impossible de retrouver l'utilisateur avec cette adresse mail.", - - "token" => "Le jeton de réinitialisation du mot de passe est incorrect.", - - "sent" => "Jeton de réinitialisation du mot de passe envoyé !", - -); diff --git a/app/lang/fr/settings.php b/app/lang/fr/settings.php deleted file mode 100644 index 39e58d8..0000000 --- a/app/lang/fr/settings.php +++ /dev/null @@ -1,177 +0,0 @@ - 'Réglages', - - 'configuration' => 'Configuration', - - 'update' => 'Sauvegarder', - - 'heatmap' => 'Points chauds', - - 'general' => 'Préférences', - - 'purchase' => 'Accédez à votre video-surveillance depuis n\'importe où dans le monde avec Kerberos.cloud ; démarrez pour seulement 1,49€ par mois!', - - 'basic' => 'Simple', - - 'advanced' => 'Avancé', - - 'name' => 'Nom', - - 'nameInfo' => 'Un nom unique est requis pour votre camera si vous lancez plusieurs instances de Kerberos.io.', - - 'timezone' => 'Fuseau horaire', - - 'timezoneInfo' => 'Le fuseau horaire permet de calculer le décalage horaire avec l`heure locale. Il est utilisé par le moteur et l\'interface web.', - - 'camera' => 'Caméra', - - 'usbcamera' => 'Caméra USB', - - 'usbcameraInfo' => 'Sélectionner cette option pour utiliser une camera USB.', - - 'rpicamera' => 'Caméra RPi', - - 'rpicameraInfo' => 'Si vous utilisez Kerberos.io sur un Raspberry Pi, vous pouvez sélectionner cette option pour activer le module caméra (v1 ou v2).', - - 'ipcamera' => 'Caméra IP', - - 'ipcameraInfo' => 'Selectionner cette option pour utiliser une caméra IP compatible avec les flux RTSP ou MJPEG.', - - 'surveillanceMode' => 'Surveillance', - - 'motion' => 'Mouvement', - - 'motionInfo' => 'Détection intelligente de mouvement : prend un photo ou une video et peut déclancher un webhook. Il est possible de configurer une région spécifique de l\'image pour la détection de mouvement.', - - 'storage' => 'Stockage', - - 'storageInfo' => 'Utiliser Kerberos.cloud to suivre plusieurs instances de Kerberos.io depuis n\'importe où dans le monde.', - - 'dontForget' => 'Clickez sur "Valider" pour confirmer la configuration.', - - 'update' => 'Valider', - - 'cancel' => 'Annuler', - - 'confirmAndSelect' => 'Confirmer and sélectionner', - - - // -------------- - // Camera - - 'width' => 'Largeur', - - 'height' => 'Hauteur', - - 'widthHeightInfo' => 'La résolution des images capturées. Doit-être compatible avec les spécifications de la caméra !', - - 'delay' => 'delai en secondes', - - 'delayInfo' => 'Le délai indique à Kerberos.io d\'attendre entre deux captures d\'images. Permet de réduire le nombre d\'images traitées par seconde.', - - 'livestream' => 'images/sec', - - 'livestreamInfo' => 'Le nombre d\'images par secondes du flux live. Mettre à 0 pour désactiver le flux live.', - - 'rotate' => 'Click pour effectuer une rotation de l\'image. Par exemple, si la caméra est montée tête en bas, assurez-vous que l\'image l\'est aussi.', - - 'url' => 'Entrez l\'URL du flux RTSP ou MJPEG de la caméra IP.', - - // ---------------- - // Motion - - 'image' => 'Image', - - 'video' => 'Vidéo', - - 'step1' => 'Etape 1. Sélectionner une région', - - 'step1Info' => 'Déplacer les points pour dessiner la région à surveiller. Double-clicker sur un point pour le supprimer, ou sur le point pour ajouter un nouveau point.', - - 'step2' => 'Etape 2. Configurer les paramètres', - - 'step2Info' => 'Changer la configuration ci-dessous pour ajuster la sensibilité de la détection.', - - 'step3' => 'Etape 3. Sélectionner une ou plusieurs sorties', - - 'step3Info' => 'Les sorties sont exécutées quand un mouvement est détecté.', - - 'sensitivity' => 'sensibilité', - - 'sensitivityInfo' => 'Augmenter le curseur pour augmenter la sensibilité.', - - 'numberOfDetections' => 'Nombre de détections avant action', - - 'numberOfDetectionsInfo' => 'Le nombre de détections d\'affilée qui sont nécessaires pour que Kerberos.io déclenche un évènement. Augmenter cette valeur permet d\'éliminter les faux-positifs dûs aux changements de luminosité, aux nuages, etc.', - - // ------------------ - // Timestamp - Colors - - 'noTimestamp' => 'Pas d\'horodatage', - - 'white' => 'blanc', - - 'black' => 'noir', - - 'red' => 'rouge', - - 'green' => 'vert', - - 'blue' => 'bleu', - - 'drawTimestamp' => 'Activer l\'horodatage', - - 'drawTimestampInfo' => 'Activer l\'affichage de la date et de l\'heure sur les images sauvées sur disque.', - - /* to translate */ 'drawTimestampInfoVideo' => 'When a video is saved to disk, you can draw the current date and time on the video.', - - /* to translate */ 'privacy' => 'privacy', - - /* to translate */ 'privacyInfo' => 'By enabling this option, only the selected region of step 1 will be visible. All pixels outside the region are made black.', - - 'fps' => 'images par seconde', - - 'fpsInfo' => 'Le nombre d\'image par seconde écrites dans le fichier vidéo. Attention, le Raspberry Pi a une limite du nombre de FPS (7 FPS environ)', - - 'secondsRecord' => 'durée d\'enregistrement en secondes', - - 'secondsRecordInfo' => 'La durée de l\'enregistrement après une détection de mouvement.', - - 'webhookUrl' => 'url', - - 'webhookUrlInfo' => 'L\'URL de destination de la requête POST.', - - 'scriptPath' => 'chemin', - - 'scriptPathInfo' => 'Le chemin du script BASH qui sera exécuté. Un objet JSON est passé en paramètre.', - - 'gpioPin' => 'pin GPIO', - - 'gpioPinInfo' => 'Définit le numéro de pin GPIO qui recevra une impulsion.', - - 'gpioPeriod' => 'Durée', - - 'gpioPeriodInfo' => 'Durée de l\'impulsion en microseconde.', - - // -------------- - // Cloud - - 'whatIsThis' => 'Qu\'est-ce donc ?', - - 'whatIsthisInformation' => 'Kerberos.io possède sa propre application dans le cloud. En souscrivant au service, vous pouvez synchroniser toutes les images et videos capturées, et les consulter de partout dans le monde. Après l\'enregistrement, vous recevrez votre informations de connexion à copier dans les champs à gauche. Après confirmation, toute l\'activité sera synchronisée automatiquement.', - - 'subscribeNow' => 'Enregistrez-vous maintenant pour seulement 1,49€' - -); diff --git a/app/lang/fr/system.php b/app/lang/fr/system.php deleted file mode 100644 index 1b1eb5f..0000000 --- a/app/lang/fr/system.php +++ /dev/null @@ -1,98 +0,0 @@ - 'Système', - - 'diskAlmostFull' => 'Attention, le disque est presque plein. Merci de purger le répertoire des images..', - - 'board' => 'Board', - - 'model' => 'Modèle', - - 'os' => 'OS', - - 'osspecifications' => 'spécifications de l\'OS', - - 'warning-docker' => 'Impossible de déterminer le conteneur docker..', - - 'statistics' => 'Statistiques', - - 'log' => 'Log', - - 'news' => 'Nouveautés', - - 'systemIsOnlineFor' => 'Système en ligne :', - - 'kernel' => 'Noyau', - - 'hostname' => 'Hostname', - - 'architecture' => 'Architecture', - - 'thisMachine' => 'Cette machine a', - - 'cpuRunning' => 'Charge CPU moyenne de', - - 'diskSpecs' => 'Spécifications du disque', - - 'thereAre' => 'Il y a', - - 'harddisksAvailable' => 'disques durs disponibles sur cette machine', - - 'networkSpecs' => 'Spécifications réseau', - - 'device' => 'Device', - - 'recieved' => 'Reçus', - - 'sent' => 'Envoyés', - - 'twoServicesRunning' => 'a besoin de deux services : le front-end et la machinerie', - - 'versions' => 'Versions', - - 'numberOfImages' => 'Nombre d\'images', - - 'numberOfDays' => 'Nombre de jours', - - 'days' => 'Jours', - - 'downloadSystemFiles' => 'Télécharger des fichiers système', - - 'downloadImages' => 'Télécharger les images', - - 'removeImages' => 'Supprimer toutes les images', - - 'shutdown' => 'Éteindre', - - 'reboot' => 'Rebooter', - - 'release' => 'Release', - - 'publishedAt' => 'Publié à', - - 'install' => 'Installation', - - 'downloading' => 'Téléchargement', - - 'unzipping' => 'Décompression', - - 'unpacking' => 'Ouverture', - - 'transferring' => 'Transfert', - - 'rebooting' => 'Reboot du système', - - 'shuttingdown' => 'Éteindre du système' - -); diff --git a/app/lang/fr/updateprofile.php b/app/lang/fr/updateprofile.php deleted file mode 100644 index 1518cbb..0000000 --- a/app/lang/fr/updateprofile.php +++ /dev/null @@ -1,36 +0,0 @@ - 'Mise à jour du profil', - - 'username' => 'Nom d\'utilisateur', - - 'language' => 'langue', - - 'languageInfo' => 'La traduction semble incomplète. Merci de contribuer à notre repository Github.', - - 'password' => 'mot de passe', - - 'newPassword' => 'nouveau mot de passe', - - 'changePassword' => 'Changer le mot de passe', - - 'currentPassword' => 'mot de passe actuel', - - 'confirmNewPassword' => 'Confirmer le nouveau mot de passe', - - 'cancel' => 'Annuler', - - 'update' => 'Mettre à jour' - -); diff --git a/app/lang/fr/validation.php b/app/lang/fr/validation.php deleted file mode 100755 index 9a7b8e5..0000000 --- a/app/lang/fr/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - ":attribute doit être accepté.", - "active_url" => ":attribute n'est pas une URL valide.", - "after" => ":attribute doit être une date postérieure à :date.", - "alpha" => ":attribute ne doit contenir que des lettres.", - "alpha_dash" => ":attribute ne doit contenir que des lettres, des chiffres ou des tirets.", - "alpha_num" => ":attribute ne doit contenir que des lettres ou des chiffres.", - "array" => ":attribute doit être un tableau.", - "before" => ":attribute doit être une date antérieure à :date.", - "between" => array( - "numeric" => ":attribute doit être compris entre :min et :max.", - "file" => ":attribute doit avoir une taille comprise entre :min et :max kilooctets.", - "string" => ":attribute doit avoir une taille comprise entre :min et :max caractères.", - "array" => ":attribute doit contenir de :min à :max éléments.", - ), - "confirmed" => ":attribute n'est pas confirmé.", - "date" => ":attribute n'est pas une date valide.", - "date_format" => ":attribute ne correspond pas au format :format.", - "different" => ":attribute et :other doivent être differents.", - "digits" => ":attribute doit avoir :digits chiffres.", - "digits_between" => ":attribute doit avoir entre :min et :max chiffres.", - "email" => ":attribute doit être une adresse email valide.", - "exists" => ":attribute n'existe pas.", - "image" => ":attribute doit être une image.", - "in" => ":attribute est invalide.", - "integer" => ":attribute doit être un entier.", - "ip" => ":attribute doit être une adresse IP valide.", - "max" => array( - "numeric" => ":attribute ne peut pas être supérieur à :max.", - "file" => ":attribute ne peut pas avoir une taille supérieure à :max kiloctets.", - "string" => ":attribute ne peut pas avoir une taille supérieure à :max caractères.", - "array" => ":attribute ne peut pas contenir plus de :max éléments.", - ), - "mimes" => ":attribute doit être un fichier du type : :values.", - "min" => array( - "numeric" => ":attribute ne peut pas être inférieur à :min.", - "file" => ":attribute ne peut pas avoir une taille inférieure à :min kiloctets.", - "string" => ":attribute ne peut pas avoir une taille inférieure à :min caractères.", - "array" => ":attribute ne peut pas contenir moins de :min éléments.", - ), - "not_in" => ":attribute est invalide.", - "numeric" => ":attribute doit être un nombre.", - "regex" => "Le format de :attribute est invalide.", - "required" => "Le champ :attribute est obligatoire.", - "required_if" => "Le champ :attribute est obligatoire si :other égale :value.", - "required_with" => "Le champ :attribute est obligatoire si :values est défini.", - "required_with_all" => "Le champ :attribute est obligatoire si :values est défini.", - "required_without" => "Le champ :attribute est obligatoire si :values n'est pas défini.", - "required_without_all" => "Le champ :attribute est obligatoire si aucune des valeurs de :values n'est définie.", - "same" => ":attribute et :other doivent correspondre.", - "size" => array( - "numeric" => ":attribute doit avoir une taille de :size.", - "file" => ":attribute doit avoir une taille de :size kiloctets.", - "string" => ":attribute doit avoir une taille de :size caractères.", - "array" => ":attribute doit contenir :size éléments.", - ), - "unique" => ":attribute doit être unique.", - "url" => ":attribute n'est pas une URL valide.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/fr/welcome.php b/app/lang/fr/welcome.php deleted file mode 100644 index 2cdd23d..0000000 --- a/app/lang/fr/welcome.php +++ /dev/null @@ -1,60 +0,0 @@ - 'Configuration', - - 'welcome' => 'Bienvenue !', - - 'introduction1' => 'Bonjour à vous ! Kerberos.io est plébiscité par de nombreux utilisateurs, et permet de nombreuses applications : surveiller sa maison, garder un oeil sur ses animaux domestiques ainsi que pour des applications professionnelles. Vous avez l\'intention d\'utiliser Kerberos.io d\'une façon originale ? Faites-le nous savoir!', - - 'introduction2' => 'Une fois installé, vous pourrez utiliser la caméra de votre choix pour votre système de surveillance. Amusez-vous, et innovez ! Voici quelques liens où vous pourrez trouver des informations complémentaires à notre sujet.', - - 'next' => 'Suivant', - - 'skip' => 'Passer', - - 'finish' => 'Fin', - - 'setupProfile' => 'Configurer le profil', - - 'changeCredentials1' => 'L\'interface de Kerberos.io est sécurisée avec un nom d\'utilisateur et un mot de passe pour protéger vos images et vos vidéos. Nous prenons la sécurité très au sérieux !', - - 'changeCredentials2' => 'Vous pourrez configurer Kerberos.io après authentification et visualiser tous les évènements détectés.', - - 'changeCredentials3' => 'Le mot de passe par défaut est root/root. Remplissez les champs ci-dessous pour le changer (ou laisser vide pour laisser comme ça).', - - 'cloudStorage' => 'Stockage dans le cloud', - - 'cloud1' => 'Kerberos.cloud permet de profiter de plusieurs instances de Kerberos et de recevoir des notifications en temps réél. Une interface unique (identique à celle de chaque instance) permet de centraliser toutes les informations.', - - 'cloudReviewActivity' => 'Controlez votre activité depuis n\'importe où dans le monde.', - - 'cloudNotifications' => 'Notifications push et dans le navigateur.', - - 'cloudTimeline' => 'Un historique pour une vue simplifiée des évènements.', - - 'cloudOverview' => 'Un tableau de bord complet.', - - 'cloudRegister' => 'Créez un compte sur cloud.kerberos.io, et choisissez un abonnement.', - - 'username' => 'Nom d\'utilisateur', - - 'enterUsername' => 'Entrez un nom d\'utilisateur', - - 'password' => 'mot de passe', - - 'choosePassword' => 'Entrez un mot de passe', - - 'confirmPassword' => 'Confirmez le mot de passe', - -); diff --git a/app/lang/nl/dashboard.php b/app/lang/nl/dashboard.php deleted file mode 100644 index cf8e8b7..0000000 --- a/app/lang/nl/dashboard.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Activiteit', - - 'selectView' => 'Selecteer weergave', - - 'liveView' => 'Live weergave', - - 'lastActivity' => 'Laatste activiteit', - - 'heatmap' => 'Warmtefoto', - - 'overview' => 'Overzicht', - - 'hour' => 'Uur', - - 'average' => 'Gemiddeld', - - 'weekday' => 'Weekdag', - -); \ No newline at end of file diff --git a/app/lang/nl/general.php b/app/lang/nl/general.php deleted file mode 100644 index 5d4ecff..0000000 --- a/app/lang/nl/general.php +++ /dev/null @@ -1,59 +0,0 @@ - 'Dashboard', - - 'system' => 'Systeem', - - 'settings' => 'Instellingen', - - 'configuration' => 'Configuratie', - - 'cloud' => 'Cloud', - - 'on' => 'Aan', - - 'off' => 'Uit', - - 'logout' => 'Logout', - - 'update-profile' => 'Profiel bijwerken', - - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Maandag', - - 'tuesday' => 'Dinsdag', - - 'wednesday' => 'Woensdag', - - 'thursday' => 'Donderdag', - - 'friday' => 'Vrijdag', - - 'saturday' => 'Zaterdag', - - 'sunday' => 'Zondag', - - 'today' => 'Vandaag', - - 'yesterday' => 'Gisteren', - - 'dayBeforeYesterday' => 'Eergisteren' - -); \ No newline at end of file diff --git a/app/lang/nl/pagination.php b/app/lang/nl/pagination.php deleted file mode 100755 index 8078862..0000000 --- a/app/lang/nl/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Vorige', - - 'next' => 'Volgende »', - -); diff --git a/app/lang/nl/reminders.php b/app/lang/nl/reminders.php deleted file mode 100755 index 04e7db0..0000000 --- a/app/lang/nl/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "Wachtwoord moet ten minste 6 karakters lang zijn.", - - "user" => "We kunnen geen gebruiker vinden met dat e-mail address.", - - "token" => "Het token voor het wachtwoord is niet geldig.", - - "sent" => "Wachtwoor herinnering verstuurd!", - -); diff --git a/app/lang/nl/settings.php b/app/lang/nl/settings.php deleted file mode 100644 index a9929b3..0000000 --- a/app/lang/nl/settings.php +++ /dev/null @@ -1,177 +0,0 @@ - 'Instellingen', - - 'configuration' => 'Configuratie', - - 'update' => 'Aanpassen', - - 'heatmap' => 'Warmtefoto', - - 'general' => 'Algemene instellingen', - - 'purchase' => 'Bekijk je activeit overal ter wereld met Kerberos.cloud, Start nu voor slechts 1,49€/maand!', - - 'basic' => 'Eenvoudig', - - 'advanced' => 'Moeilijk', - - 'name' => 'Naam', - - 'nameInfo' => 'Een unieke naam per camera is verplicht indien je meerdere Kerberos.io installaties zal opzetten. Dit is nodig om onderscheid te kunnen maken tussen de verschillende beelden of videos.', - - 'timezone' => 'Tijdzone', - - 'timezoneInfo' => 'De tijdzone wordt gebruikt om de correct datum en tijd, die in jouw land van toepassing is, van de verschillende events te kunnen weergeven.', - - 'camera' => 'Camera', - - 'usbcamera' => 'USB camera', - - 'usbcameraInfo' => 'Selecteer deze optie, indien je gebruikmaakt van een USB camera.', - - 'rpicamera' => 'RPi camera', - - 'rpicameraInfo' => 'Wanneer je Kerberos.io gebruikt op een Raspberry Pi, kan je gebruik maken van de Raspberry Pi camera module (versie 1 of 2).', - - 'ipcamera' => 'IP camera', - - 'ipcameraInfo' => 'Selecteer deze optie als je gebuik wilt maken van een IP camera doormiddel van een RTSP of MJPEG stream.', - - 'surveillanceMode' => 'Beveiliging', - - 'motion' => 'Beweging', - - 'motionInfo' => 'Een eenvoudige maar slimme bewegings detector, welke snapshots en video zal opslaan van zodra er beweging is gedetecteerd. Er is een mogelijkheid om deze gegevens naar jouw eigen applicatie door te sluizen doormiddel van een webhook.', - - 'storage' => 'Opslag', - - 'storageInfo' => 'Gebruik Kerberos.cloud om één of meerdere Kerberos.io installaties op te volgen overal ter wereld.', - - 'dontForget' => 'Klik op de update knop om jouw configuratie te bevestigen.', - - 'update' => 'Pas aan', - - 'cancel' => 'Sluiten', - - 'confirmAndSelect' => 'Bevestig en slecteer', - - - // -------------- - // Camera - - 'width' => 'Breedte', - - 'height' => 'hoogte', - - 'widthHeightInfo' => 'De resolutie van de beelden die door de camera kunnen worden opgenomen. Let wel op dat deze resolutie compatibel is met de specificaties van jouw camera!', - - 'delay' => 'wachttijd in seconden', - - 'delayInfo' => 'De wachttijd zal het aantal seconden bepalen tussen het nemen van twee opeeenvolgende beelden. Het introduceren kan handig zijn als je de performantie of load van je CPU wilt verlagen, of het aantal afbeeldingen die er per seconden genomen worden.', - - 'livestream' => 'real-time weergave beelden/sec', - - 'livestreamInfo' => '"De beelden per seconde" van de real-time weergave kan geconfigureerd worden. Door deze optie op 0 te zetten, zorg je ervoor dat de real-time weergave wordt gedeactiveerd.', - - 'rotate' => 'Klik op deze afbeelding om de camera te roteren. Bijvoorbeeld, stel dat jouw camera ondersteboven is gemonteerd, zorg ervoor dat deze afbeelding ook omgekeerd staat.', - - 'url' => 'Geef hier de url van jouw RTSP of MJPEG stream in.', - - // ---------------- - // Motion - - 'image' => 'Afbeelding', - - 'video' => 'Video', - - 'step1' => 'Stap 1. Selecteer een bereik', - - 'step1Info' => 'Door het verslepen van de rode punten kan je een bereik bepalen, waarin beweging zal worden gededecteerd. Je kan punten verwijderen door op de rode punten te klikken. Om meer punten toe te voegen kan je dubbel klikken op het witte punt.', - - 'step2' => 'Stap 2. Configureer de parameters', - - 'step2Info' => 'Door het aanpassen van de onderstaande configuratie, kan je de gevoeligiheid van de bewegingsdetectie beinvloden.', - - 'step3' => 'Stap 3. Selecteer een of meerdere outputs', - - 'step3Info' => 'Wanneer beweging is gedetecteerd kunnnen één of meerdere acties, (asynchroon) worden uitgevoerd.', - - 'sensitivity' => 'gevoeligheid', - - 'sensitivityInfo' => 'Door het verhogen van deze meter zal je Kerberos.io gevoeliger maken voor kleine veranderingen. Wanneer je deze optie verlaagt, zullen enkel grotere veranderingen worden waargenomen.', - - 'numberOfDetections' => 'aantal detecteringen', - - 'numberOfDetectionsInfo' => 'Door het aangeven van het aantal opeenvolgende (positieve) detecties, kunnen valse-positieven uitgeschakeld worden. Zo kan je instellen dat pas na 5 opeenvolgende positieve detecties, er een video wordt opgenomen.', - - // ------------------ - // Timestamp - Colors - - 'noTimestamp' => 'geen tijdweergave', - - 'white' => 'wit', - - 'black' => 'zwart', - - 'red' => 'rood', - - 'green' => 'groen', - - 'blue' => 'blauw', - - 'drawTimestamp' => 'geef tijd weer', - - 'drawTimestampInfo' => 'Wanneer een afbeelding wordt opgeslagen, kan je er voor kiezen om de huidige tijd af te beelden op de afbeelding.', - - 'drawTimestampInfoVideo' => 'Wanneer een video wordt opgeslagen, kan je er voor kiezen om de huidige tijd af te beelden in de video.', - - 'privacy' => 'privacy', - - 'privacyInfo' => 'Door deze optie te activeren zorg je ervoor dat enkel het gebied, aangeduid in stap 1, zichtbaar is. Alle pixels die buiten deze zone vallen worden zwart gemaakt.', - - 'fps' => 'beelden per seconde', - - 'fpsInfo' => 'Wanneer men kiest voor het opnemen van video, kan men het aantal beelden per seconden bepalen. Let wel op dat het verhogen van deze parameter het systeem extra belast. Deze parameter is voor de Raspberry Pi, het best tussen de 4 en 7 FPS.', - - 'secondsRecord' => 'opname duur', - - 'secondsRecordInfo' => 'Het aantal seconden video die wordt opgenomen na een positieve detectie.', - - 'webhookUrl' => 'url', - - 'webhookUrlInfo' => 'De url naar waar een POST zal gestuurd worden (JSON object).', - - 'scriptPath' => 'bestand', - - 'scriptPathInfo' => 'Het pad naar een bash script dat wordt uitgevoerd. Een JSON object wordt als parameter meegestuurd.', - - 'gpioPin' => 'pin', - - 'gpioPinInfo' => 'Definieer de nummer van de pin op welke een puls moet worden verstuurd.', - - 'gpioPeriod' => 'periode', - - 'gpioPeriodInfo' => 'Het aantal microseconden dat de puls zal duren.', - - // -------------- - // Cloud - - 'whatIsThis' => 'Wat is dit', - - 'whatIsthisInformation' => 'Kerberos.io heeft zijn eigen cloud applicatie. Doormiddel van een inschrijving op een plan, kan je al jouw afbeeldingen en videos synchroniseren en overal ter wereld opvolgen. Na het inschrijven zal je enkele gegevens ontvangen welke je in de velden (aan de linkerzijde) kan ingeven. Na het bevestigen van deze gegevens, zal al jouw activiteit automatisch gesynchroniseerd worden met ons platform. Veel plezier!', - - 'subscribeNow' => 'Schrijf nu in voor slechts €1,49' - -); diff --git a/app/lang/nl/system.php b/app/lang/nl/system.php deleted file mode 100644 index 0fa06bf..0000000 --- a/app/lang/nl/system.php +++ /dev/null @@ -1,98 +0,0 @@ - 'Systeem', - - 'diskAlmostFull' => 'Hey, je hardeschijf is bijna vol. Verwijder enkele beelden..', - - 'board' => 'Board', - - 'model' => 'Model', - - 'os' => 'OS', - - 'osspecifications' => 'OS specificaties', - - 'warning-docker' => 'Ik weet het niet, de machinery draait in een andere docker container..', - - 'log' => 'Logging', - - 'news' => 'Nieuws', - - 'systemIsOnlineFor' => 'Systeem is online sinds', - - 'statistics' => 'Statistieken', - - 'kernel' => 'Kernel', - - 'hostname' => 'Hostname', - - 'architecture' => 'Architectuur', - - 'thisMachine' => 'Deze machine heeft', - - 'cpuRunning' => 'CPU\'s aanwezig met een gemiddelde belasting van', - - 'diskSpecs' => 'Schijf specificaties', - - 'thereAre' => 'Er zijn', - - 'harddisksAvailable' => 'partities aanwezig op dit systeem', - - 'networkSpecs' => 'Netwerk specificaties', - - 'device' => 'Device', - - 'recieved' => 'Ontvangen', - - 'sent' => 'Verstuurd', - - 'twoServicesRunning' => 'heeft twee applicaties nodig: de web en de machinery', - - 'versions' => 'Versies', - - 'numberOfImages' => '# beelden', - - 'numberOfDays' => '# dagen', - - 'days' => 'Dagen', - - 'downloadSystemFiles' => 'Download systeem bestanden', - - 'downloadImages' => 'Download beelden', - - 'removeImages' => 'Verwijder beelden', - - 'shutdown' => 'Afsluiten', - - 'reboot' => 'Herstarten', - - 'release' => 'Release', - - 'publishedAt' => 'Gepubliceerd op', - - 'install' => 'Installeren', - - 'downloading' => 'Downloaden', - - 'unzipping' => 'Decrompimeren', - - 'unpacking' => 'Uitpakken', - - 'transferring' => 'Schrijven', - - 'rebooting' => 'Systeem is aan het heropstarten', - - 'shuttingdown' => 'Systeem is aan het afsluiten' - -); diff --git a/app/lang/nl/updateprofile.php b/app/lang/nl/updateprofile.php deleted file mode 100644 index 579a155..0000000 --- a/app/lang/nl/updateprofile.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Bewerk profiel', - - 'username' => 'Jouw gebruikersnaam', - - 'language' => 'taal', - - 'languageInfo' => 'Staat jouw taal niet in deze lijst of is ze niet volledig? Voeg dan je taal toe aan onze Github repository.', - - 'password' => 'wachtwoord', - - 'newPassword' => 'nieuw password', - - 'changePassword' => 'Wijzig wachtwoord', - - 'currentPassword' => 'huidig wachtwoord', - - 'newPassword' => 'nieuw wachtwoord', - - 'confirmNewPassword' => 'bevestig nieuw wachtwoord', - - 'cancel' => 'sluiten', - - 'update' => 'pas aan' - -); diff --git a/app/lang/nl/validation.php b/app/lang/nl/validation.php deleted file mode 100755 index b03b926..0000000 --- a/app/lang/nl/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - "The :attribute must be accepted.", - "active_url" => "The :attribute is not a valid URL.", - "after" => "The :attribute must be a date after :date.", - "alpha" => "The :attribute may only contain letters.", - "alpha_dash" => "The :attribute may only contain letters, numbers, and dashes.", - "alpha_num" => "The :attribute may only contain letters and numbers.", - "array" => "The :attribute must be an array.", - "before" => "The :attribute must be a date before :date.", - "between" => array( - "numeric" => "The :attribute must be between :min and :max.", - "file" => "The :attribute must be between :min and :max kilobytes.", - "string" => "The :attribute must be between :min and :max characters.", - "array" => "The :attribute must have between :min and :max items.", - ), - "confirmed" => "The :attribute confirmation does not match.", - "date" => "The :attribute is not a valid date.", - "date_format" => "The :attribute does not match the format :format.", - "different" => "The :attribute and :other must be different.", - "digits" => "The :attribute must be :digits digits.", - "digits_between" => "The :attribute must be between :min and :max digits.", - "email" => "The :attribute must be a valid email address.", - "exists" => "The selected :attribute is invalid.", - "image" => "The :attribute must be an image.", - "in" => "The selected :attribute is invalid.", - "integer" => "The :attribute must be an integer.", - "ip" => "The :attribute must be a valid IP address.", - "max" => array( - "numeric" => "The :attribute may not be greater than :max.", - "file" => "The :attribute may not be greater than :max kilobytes.", - "string" => "The :attribute may not be greater than :max characters.", - "array" => "The :attribute may not have more than :max items.", - ), - "mimes" => "The :attribute must be a file of type: :values.", - "min" => array( - "numeric" => "The :attribute must be at least :min.", - "file" => "The :attribute must be at least :min kilobytes.", - "string" => "The :attribute must be at least :min characters.", - "array" => "The :attribute must have at least :min items.", - ), - "not_in" => "The selected :attribute is invalid.", - "numeric" => "The :attribute must be a number.", - "regex" => "The :attribute format is invalid.", - "required" => "The :attribute field is required.", - "required_if" => "The :attribute field is required when :other is :value.", - "required_with" => "The :attribute field is required when :values is present.", - "required_with_all" => "The :attribute field is required when :values is present.", - "required_without" => "The :attribute field is required when :values is not present.", - "required_without_all" => "The :attribute field is required when none of :values are present.", - "same" => "The :attribute and :other must match.", - "size" => array( - "numeric" => "The :attribute must be :size.", - "file" => "The :attribute must be :size kilobytes.", - "string" => "The :attribute must be :size characters.", - "array" => "The :attribute must contain :size items.", - ), - "unique" => "The :attribute has already been taken.", - "url" => "The :attribute format is invalid.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/nl/welcome.php b/app/lang/nl/welcome.php deleted file mode 100644 index 93e0f10..0000000 --- a/app/lang/nl/welcome.php +++ /dev/null @@ -1,60 +0,0 @@ - 'Installatie klaarzetten..', - - 'welcome' => 'Welkom!', - - 'introduction1' => 'Hey daar, welkom tot de familie! Kerberos.io wordt gebruikt bij een groot aantal gebruikers, en voor verschillende scenario\'s; van beveiliging tot statistieken. Kerberos.io voorziet ondersteuning voor zowel particulieren, om hun huisdieren of eigendom te controleren, als kleine tot grotere bedrijven. Ben je iets van plan met Kerberos.io? Laat het ons dan zeker weten..', - - 'introduction2' => 'Na de installatie, ben je in staat om je eigen beveiligingsysteem op te stellen met jouw camera naar keuze. Veel plezier! Trouwens, hier heb je nog enkele handige links waar je meer informatie over ons kan terugvinden.', - - 'next' => 'Volgende', - - 'skip' => 'Sla over', - - 'finish' => 'Finaliseer', - - 'setupProfile' => 'Stel je profiel in', - - 'changeCredentials1' => 'De Kerberos.io webinterface is beveiligd met een gebruikersnaam en wachtwoord. Wij dragen veiligheid hoog in vaandel!', - - 'changeCredentials2' => 'Nadat je succesvol bent ingelogd, kan je Kerberos.io configureren en gebruiken om je activiteiten op te volgen.', - - 'changeCredentials3' => 'Standaard zijn de login gegevens ingesteld op gebruikersnaam: root en wachtwoord: root. Vul de onderstaande velden in, om deze login gegevens te wijzigen, of laat ze leeg indien je de standaard login gegevens wilt behouden.', - - 'cloudStorage' => 'Online opslag', - - 'cloud1' => 'Als je meerdere Kerberos.io installaties zal uitvoeren, en je wilt real-time notificaties ontvangen op je smartphone, dan is Kerberos.cloud wat je nodig hebt! Met Kerberos.cloud kan je op een zeer eenvoudige manier één of meerdere Kerberos.io installaties opvolgen met gebruik van slechts één interface, die er identiek uitziet als je lokale Kerberos.io installaties. Dus niets nieuw, we hebben gewoon enkele handig features toegevoegd:', - - 'cloudReviewActivity' => 'Bekijk je activiteit van overal ter wereld.', - - 'cloudNotifications' => 'Browser- and Pushbullet notificaties.', - - 'cloudTimeline' => 'Een tijdslijne om je activiteit in één oogopslag te kunnen waarnemen.', - - 'cloudOverview' => 'Een eenvoudig overview om al je installaties te bekijken.', - - 'cloudRegister' => 'Om te starten met Kerberos.cloud maak je een account aan op cloud.kerberos.io, en schrijf je jezelf in voor een plan op maat.', - - 'username' => 'gebruikersnaam', - - 'enterUsername' => 'Geef een gebruikersnaam in', - - 'password' => 'wachtwoord', - - 'choosePassword' => 'Kies een wachtwoord', - - 'confirmPassword' => 'Bevestig jouw wachtwoord' - -); diff --git a/app/lang/pt/dashboard.php b/app/lang/pt/dashboard.php deleted file mode 100644 index b57572f..0000000 --- a/app/lang/pt/dashboard.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Atividades', - - 'selectView' => 'Modo de Exibição', - - 'liveView' => 'Exibição ao vivo', - - 'lastActivity' => 'Últimas Atividades', - - 'heatmap' => 'Mapa de Calor', - - 'overview' => 'Visão Geral', - - 'hour' => 'Hora', - - 'average' => 'Média', - - 'weekday' => 'Dia da semana', - -); diff --git a/app/lang/pt/general.php b/app/lang/pt/general.php deleted file mode 100644 index 29f47c9..0000000 --- a/app/lang/pt/general.php +++ /dev/null @@ -1,61 +0,0 @@ - 'Painel', - - 'system' => 'Sistema', - - 'settings' => 'Configurações', - - 'configuration' => 'Configurações', - - 'heatmap' => 'Mapa de Calor', - - 'cloud' => 'Nuvem', - - /* to translate */ 'on' => 'On', - - /* to translate */ 'off' => 'Off', - - 'logout' => 'Sair', - - /* to translate */ 'update-profile' => 'Update profile', - - - /* - |------------------------ - | Date-time translations - |------------------------ - */ - - 'monday' => 'Segunda-Feira', - - 'tuesday' => 'Terça-Feira', - - 'wednesday' => 'Quarta-Feira', - - 'thursday' => 'Quinta-Feira', - - 'friday' => 'Sexta-Feira', - - 'saturday' => 'Sábado', - - 'sunday' => 'Domingo', - - 'today' => 'Hoje', - - 'yesterday' => 'Ontem', - - 'dayBeforeYesterday' => 'Antes de Ontem' - -); \ No newline at end of file diff --git a/app/lang/pt/pagination.php b/app/lang/pt/pagination.php deleted file mode 100644 index 068e77c..0000000 --- a/app/lang/pt/pagination.php +++ /dev/null @@ -1,20 +0,0 @@ - '« Anterior', - - 'next' => 'Próximo »', - -); diff --git a/app/lang/pt/reminders.php b/app/lang/pt/reminders.php deleted file mode 100644 index e0fa34d..0000000 --- a/app/lang/pt/reminders.php +++ /dev/null @@ -1,24 +0,0 @@ - "As senhas devem ter pelo menos seis caracteres e serem iguais.", - - "user" => "Não podemos encontrar um usuário com esse endereço de e-mail.", - - "token" => "Esse token de redefinição de senha é inválido.", - - "sent" => "Lembrete de senha enviada!", - -); diff --git a/app/lang/pt/settings.php b/app/lang/pt/settings.php deleted file mode 100644 index 6efd42d..0000000 --- a/app/lang/pt/settings.php +++ /dev/null @@ -1,175 +0,0 @@ - 'Configurações', - - 'configuration' => 'Configurações', - - 'update' => 'Atualizar', - - /* to translate */ 'general' => 'General settings', - - /* to translate */ 'purchase' => 'Watch your activity from anywhere in the world with Kerberos.cloud, Get started for only 1,49€/month!', - - /* to translate */ 'basic' => 'Basic', - - /* to translate */ 'advanced' => 'Advanced', - - /* to translate */ 'name' => 'Name', - - /* to translate */ 'nameInfo' => 'An unique name for your camera is required, if you will run multiple Kerberos.io instances.', - - /* to translate */ 'timezone' => 'Timezone', - - /* to translate */ 'timezoneInfo' => 'The timezone is used to convert timestamps to your local time. It\'s used in both the machinery and web interface.', - - /* to translate */ 'camera' => 'Camera', - - /* to translate */ 'usbcamera' => 'USB camera', - - /* to translate */ 'usbcameraInfo' => 'Select this option, if you want to use an USB camera.', - - /* to translate */ 'rpicamera' => 'RPi camera', - - /* to translate */ 'rpicameraInfo' => 'If you run Kerberos.io on a Raspberry Pi, you can select this option, if you want to use the Raspberry Pi camera module (v1 or v2).', - - /* to translate */ 'ipcamera' => 'IP camera', - - /* to translate */ 'ipcameraInfo' => 'Select this option, if you want to use an IP camera which supports an RTSP or MJPEG stream.', - - /* to translate */ 'surveillanceMode' => 'Surveillance', - - /* to translate */ 'motion' => 'Motion', - - /* to translate */ 'motionInfo' => 'A smart motion detector, that saves snapshots or video, and/or trigger other devices by using a webhook. Setup conditions to only detect motion at a specific region in the view.', - - /* to translate */ 'storage' => 'Storage', - - /* to translate */ 'storageInfo' => 'Use Kerberos.cloud to follow up multiple Kerberos.io instances from anywhere int the world.', - - /* to translate */ 'dontForget' => 'Press update to confirm your configuration.', - - /* to translate */ 'update' => 'Update', - - /* to translate */ 'cancel' => 'Cancel', - - /* to translate */ 'confirmAndSelect' => 'Confirm and select', - - - // -------------- - // Camera - - /* to translate */ 'width' => 'Width', - - /* to translate */ 'height' => 'Height', - - /* to translate */ 'widthHeightInfo' => 'The resolution of the images being captured by your camera. Make sure that this resolution is supported!', - - /* to translate */ 'delay' => 'delay in seconds', - - /* to translate */ 'delayInfo' => 'The delay time will tell Kerberos.io to wait for x amount of seconds, between two frame captures. This is helpful when you would like to reduce the number of images being processed per second (e.g. for performance reasons).', - - /* to translate */ 'livestream' => 'live stream frames/sec', - - /* to translate */ 'livestreamInfo' => 'The frames per second of the live stream can be configured. Setting this option to zero, will disable the live stream.', - - /* to translate */ 'rotate' => 'Click on this image if your camera is rotated. E.g. if your camera is mounted upside down, make sure this image is also upside down.', - - /* to translate */ 'url' => 'Enter the url of the RTSP or MJPEG stream of your IP camera.', - - // ---------------- - // Motion - - /* to translate */ 'image' => 'Image', - - /* to translate */ 'video' => 'Video', - - /* to translate */ 'step1' => 'Step 1. Select a region', - - /* to translate */ 'step1Info' => 'Move the points to draw the region of interest. Double click on a point to remove it, and/or on the white point to add more points.', - - /* to translate */ 'step2' => 'Step 2. Configure parameters', - - /* to translate */ 'step2Info' => 'By changing the configuration below you can make the motion detection more or less sensitive.', - - /* to translate */ 'step3' => 'Step 3. Select one or more outputs', - - /* to translate */ 'step3Info' => 'Once motion is detected you can execute (asynchronous) one or more outputs.', - - /* to translate */ 'sensitivity' => 'sensitivity', - - /* to translate */ 'sensitivityInfo' => 'Increasing this slider will make Kerberos.io more sensitive for motion. Decreasing will make it less sensitive for motion.', - - /* to translate */ 'numberOfDetections' => 'number of detections before valid', - - /* to translate */ 'numberOfDetectionsInfo' => 'This number represents the number of detections in a row before Kerberos.io will trigger a valid event. By increasing this value you can eliminate false-positives: e.g. lightning, clouds, etc.', - - // ------------------ - // Timestamp - Colors - - /* to translate */ 'noTimestamp' => 'no timestamp', - - /* to translate */ 'white' => 'white', - - /* to translate */ 'black' => 'black', - - /* to translate */ 'red' => 'red', - - /* to translate */ 'green' => 'green', - - /* to translate */ 'blue' => 'blue', - - /* to translate */ 'drawTimestamp' => 'draw timestamp', - - /* to translate */ 'drawTimestampInfo' => 'When an image is saved to disk, you can draw the current date and time on the image.', - - /* to translate */ 'drawTimestampInfoVideo' => 'When a video is saved to disk, you can draw the current date and time on the video.', - - /* to translate */ 'privacy' => 'privacy', - - /* to translate */ 'privacyInfo' => 'By enabling this option, only the selected region of step 1 will be visible. All pixels outside the region are made black.', - - /* to translate */ 'fps' => 'frames per second', - - /* to translate */ 'fpsInfo' => 'The frames per second written to the video file; be aware that a Raspberry Pi can only process a limited number of FPS (e.g. 7 FPS).', - - /* to translate */ 'secondsRecord' => 'seconds to record', - - /* to translate */ 'secondsRecordInfo' => 'The number of seconds that will be recorded after motion was detected.', - - /* to translate */ 'webhookUrl' => 'url', - - /* to translate */ 'webhookUrlInfo' => 'The url to which a POST will be sent with a JSON object.', - - /* to translate */ 'scriptPath' => 'path', - - /* to translate */ 'scriptPathInfo' => 'The path to a bash script that will be executed. A JSON object is send as a parameter.', - - /* to translate */ 'gpioPin' => 'pin', - - /* to translate */ 'gpioPinInfo' => 'Define the pin number on which a pulse will be send.', - - /* to translate */ 'gpioPeriod' => 'period', - - /* to translate */ 'gpioPeriodInfo' => 'The number of microseconds the pulse will last.', - - // -------------- - // Cloud - - /* to translate */ 'whatIsThis' => 'What is this', - - /* to translate */ 'whatIsthisInformation' => 'Kerberos.io comes with its own cloud application. By subscribing to a plan you can sync all your images and videos, and review it from anywhere in the world. Once subscribed, you\'ll receive some credentials which you can fill in the fields on the left. After confirming and updating the settings, you\'re activity will be synced automatically. Have fun!', - - /* to translate */ 'subscribeNow' => 'Subscribe now for only €1,49' - -); diff --git a/app/lang/pt/system.php b/app/lang/pt/system.php deleted file mode 100644 index fbbac65..0000000 --- a/app/lang/pt/system.php +++ /dev/null @@ -1,92 +0,0 @@ - 'Sistema', - - 'diskAlmostFull' => 'Hey, o seu disco esta quase cheio, por favor remova algumas imagens..', - - 'board' => 'Quadro', - - 'model' => 'Modelo', - - 'os' => 'OS', - - /* to translate */ 'osspecifications' => 'OS specifications', - - /* to translate */ 'warning-docker' => 'Don\'t know i\'m in a seperate docker container..', - - /* to translate */ 'statistics' => 'Statistics', - - /* to translate */ 'log' => 'Log', - - /* to translate */ 'news' => 'News', - - /* to translate */ 'systemIsOnlineFor' => 'System is online for', - - 'kernel' => 'Kernel', - - 'hostname' => 'Hostname', - - 'architecture' => 'Arquitetura', - - 'thisMachine' => 'Esta máquina tem', - - 'cpuRunning' => 'CPU\'s executando com carga media de', - - 'diskSpecs' => 'Especificações de disco', - - 'thereAre' => 'Existem', - - 'harddisksAvailable' => 'disco rídigos disponíveis nesta máquina', - - 'networkSpecs' => 'Especificações de rede', - - 'device' => 'Dispositivo', - - 'recieved' => 'Recebido', - - 'sent' => 'Enviado', - - 'twoServicesRunning' => 'existem dois serviços em execução: o web e o machinery', - - 'versions' => 'Versões', - - 'numberOfImages' => '# de imagens', - - 'numberOfDays' => '# de dias', - - 'days' => 'Dias', - - 'downloadSystemFiles' => 'Sistema de download de arquivos', - - 'downloadImages' => 'Download das imagens', - - 'removeImages' => 'Remover Imagens', - - 'release' => 'Lançamento', - - 'publishedAt' => 'Publicado em', - - 'install' => 'Instalar', - - 'downloading' => 'Baixando', - - 'unzipping' => 'Descompactando', - - 'unpacking' => 'Desempacotando', - - 'transferring' => 'Transferindo', - - 'rebooting' => 'O sistema esta reiniciando', - -); diff --git a/app/lang/pt/updateprofile.php b/app/lang/pt/updateprofile.php deleted file mode 100644 index 37dc6c7..0000000 --- a/app/lang/pt/updateprofile.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Update profile', - - /* to translate */ 'username' => 'Your username', - - /* to translate */ 'language' => 'language', - - /* to translate */ 'languageInfo' => 'Is your language missing or incomplete? Contribute your language to our Github repository.', - - /* to translate */ 'password' => 'password', - - /* to translate */ 'newPassword' => 'new password', - - /* to translate */ 'changePassword' => 'Change password', - - /* to translate */ 'currentPassword' => 'current passsword', - - /* to translate */ 'newPassword' => 'new passsword', - - /* to translate */ 'confirmNewPassword' => 'confirm new passsword', - - /* to translate */ 'cancel' => 'cancel', - - /* to translate */ 'update' => 'update' - -); diff --git a/app/lang/pt/validation.php b/app/lang/pt/validation.php deleted file mode 100644 index 31aa44c..0000000 --- a/app/lang/pt/validation.php +++ /dev/null @@ -1,104 +0,0 @@ - "O :attribute deve ser aceito.", - "active_url" => "O :attribute não é uma URL válida.", - "after" => "O :attribute deve ser uma data depois :date.", - "alpha" => "O :attribute só podem conter letras.", - "alpha_dash" => "O :attribute só podem conter letras, numeros e traços.", - "alpha_num" => "O :attribute só podem conter letras e numeros.", - "array" => "O :attribute deve ser uma matriz.", - "before" => "O :attribute deve ser uma data depois :date.", - "between" => array( - "numeric" => "O :attribute deve situar-se entre :min e :max.", - "file" => "O :attribute deve situar-se entre :min e :max kilobytes.", - "string" => "O :attribute deve situar-se entre :min e :max caracteres.", - "array" => "O :attribute deve situar-se entre :min e :max items.", - ), - "confirmed" => "O :attribute confirmação não corresponde.", - "date" => "O :attribute não é uma data válida.", - "date_format" => "O :attribute não coincide com o formato :format.", - "different" => "O :attribute e :other deve ser diferente.", - "digits" => "O :attribute devem ser de :digits digitos.", - "digits_between" => "O :attribute deve estar entre :min and :max digitos.", - "email" => "O :attribute Deve ser um endereço de e-mail válido.", - "exists" => "A seleção :attribute é inválida.", - "image" => "O :attribute deve ser uma imagem.", - "in" => "A seleção :attribute é inválida.", - "integer" => "O :attribute deve ser inteiro.", - "ip" => "O :attribute deve ser um endereço de IP válido.", - "max" => array( - "numeric" => "O :attribute não pode ser superior a :max.", - "file" => "O :attribute não pode ser superior a :max kilobytes.", - "string" => "O :attribute não pode ser superior a :max caracteres.", - "array" => "O :attribute não pode ter mais de :max items.", - ), - "mimes" => "O :attribute deve ser um arquivo do tipo: :values.", - "min" => array( - "numeric" => "O :attribute deve ser pelo menos :min.", - "file" => "O :attribute deve ser pelo menos :min kilobytes.", - "string" => "O :attribute deve ser pelo menos :min characters.", - "array" => "O :attribute deve ser pelo menos :min items.", - ), - "not_in" => "A seleção :attribute é inválida.", - "numeric" => "O :attribute deve ser um número.", - "regex" => "O :attribute tem formato inválido.", - "required" => "O :attribute campo é obrigatório.", - "required_if" => "O :attribute campo é obrigatório quando :other é :value.", - "required_with" => "O :attribute campo é obrigatório quando :values é presente.", - "required_with_all" => "O :attribute campo é obrigatório quando :values is presente.", - "required_without" => "O :attribute campo é obrigatório quando :values não é presente.", - "required_without_all" => "O :attribute campo é obrigatório quando nenhum :values está presente.", - "same" => "O :attribute e :other deve combinar.", - "size" => array( - "numeric" => "O :attribute deve ser :size.", - "file" => "O :attribute deve ser :size kilobytes.", - "string" => "O :attribute deve ser :size characters.", - "array" => "O :attribute deve ser :size items.", - ), - "unique" => "O :attribute deve ser.", - "url" => "O :attribute formato é inválido.", - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => array( - 'attribute-name' => array( - 'rule-name' => 'custom-message', - ), - ), - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap attribute place-holders - | with something more reader friendly such as E-Mail Address instead - | of "email". This simply helps us make messages a little cleaner. - | - */ - - 'attributes' => array(), - -); diff --git a/app/lang/pt/welcome.php b/app/lang/pt/welcome.php deleted file mode 100644 index a71aa2b..0000000 --- a/app/lang/pt/welcome.php +++ /dev/null @@ -1,60 +0,0 @@ - 'Setting things up..', - - /* to translate */ 'welcome' => 'Welcome!', - - /* to translate */ 'introduction1' => 'Hey there, welcome to the family! Kerberos.io is used by a myriad of users, and is used for many different usecases; from surveillance to analytics. Kerberos.io supports both basic users, to keep an eye on there pets and/or property, and big to small enterprises! Are you planning to do some rocket science with Kerberos.io? Please let us know..', - - /* to translate */ 'introduction2' => 'After you\'ve finished this short installation, you\'ll be able to setup your own security system with the camera of your choice. Have fun! By the way here you got some links where you can find more information about us.', - - /* to translate */ 'next' => 'Next', - - /* to translate */ 'skip' => 'Skip', - - /* to translate */ 'finish' => 'Finish', - - /* to translate */ 'setupProfile' => 'Setup your profile', - - /* to translate */ 'changeCredentials1' => 'The Kerberos.io webinterface is secured with a username and password to protect your images and videos for others. We take security very seriously!', - - /* to translate */ 'changeCredentials2' => 'After signed-in succesfully, you\'ll be able to configure Kerberos.io and review all your events.', - - /* to translate */ 'changeCredentials3' => 'By default the credentials to sign are set to username: root and password: root. Fill in the fields below to change these credentials, or leave them empty if you want to use the default credentials.', - - /* to translate */ 'cloudStorage' => 'Cloud storage', - - /* to translate */ 'cloud1' => 'If you will install multiple Kerberos.io instances, and want to receive real-time notifications, Kerberos.cloud is what you need! With Kerberos.cloud you can easily monitor multiple instances with only one interface, which has exactly the same design as your local Kerberos.io instances. So nothing new, we just added a couple of useful features:', - - 'cloudReviewActivity' => 'Review your activity from anywhere in the world.', - - 'cloudNotifications' => 'Browser- and Pushbullet notifications.', - - 'cloudTimeline' => 'A timeline to see your activity at a glance.', - - 'cloudOverview' => 'Simple overview to see all your instances together.', - - 'cloudRegister' => 'To get started register an account on cloud.kerberos.io, and subscribe te plan.', - - /* to translate */ 'username' => 'username', - - /* to translate */ 'enterUsername' => 'Enter a username', - - /* to translate */ 'password' => 'password', - - /* to translate */ 'choosePassword' => 'Choose a password', - - /* to translate */ 'confirmPassword' => 'Confirm your password', - -); diff --git a/app/models/.gitkeep b/app/models/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/app/repositories.php b/app/repositories.php deleted file mode 100755 index 95531f5..0000000 --- a/app/repositories.php +++ /dev/null @@ -1,14 +0,0 @@ - ['validConfig', 'validCapture']], function() -{ - Route::group(['before' => 'guest'], function() - { - // ----------------- - // Login Controller - - Route::get('login', 'Controllers\LoginController@index'); - - // ---------------------------------------- - // Welcome controller, for first time setup. - - if(!Config::get('kerberos')['installed']) - { - Route::get('welcome', 'Controllers\WelcomeController@index'); - } - }); - - Route::group(['before' => 'auth'], function() - { - // ------------------------ - // Login Controller - - Route::get('logout', 'Controllers\LoginController@logout'); - - // ------------------------ - // Dashboard Controller - - Route::get('/', 'Controllers\DashboardController@index'); - - // ------------------------ - // Settings Controller - - Route::get('settings', 'Controllers\SettingsController@index'); - Route::get('cloud', 'Controllers\SettingsController@cloud'); - Route::post('settings/update', array('uses' => 'Controllers\SettingsController@update')); - Route::post('settings/update/web', array('uses' => 'Controllers\SettingsController@updateWeb')); - - // ------------------------ - // System Controller - - Route::get('system', 'Controllers\SystemController@index'); - - // ------------------------ - // Image Controller - - Route::get('images/{date?}', 'Controllers\ImageController@index'); - }); -}); \ No newline at end of file diff --git a/app/start/artisan.php b/app/start/artisan.php deleted file mode 100755 index 1df850b..0000000 --- a/app/start/artisan.php +++ /dev/null @@ -1,13 +0,0 @@ -imageFilesystemHandler = new ImageFilesystemHandler(new ConfigXMLReader, new DiskFilesystem, new Carbon); - } - - public function createImage($key) - { - //$image = new Image(); - //$image->parse($key); - - return ['timestamp' => $key]; - } - - public function testEmptyListOfImages() - { - $images = []; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page1)); - - $page = "2"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page2)); - } - - public function testValidSequenceOfOneImage() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(1, count($page1)); - - $page = "2"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page2)); - } - - public function testSequenceOfTwoImagesByOnePage() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page1)); - - $page = "2"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page2)); - } - - public function testSequenceOfTwoImagesByTwoPages() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(1, count($page1)); - - $page = "2"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(1, count($page2)); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - public function testSequenceOfThreeImagesDevidedInTwoPagesByTwoAndOne() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - - // --------------------- - // Move to the next page - - $page = "2"; - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - $this->assertEquals(1, count($page2)); - $this->assertEquals($images[2], $page2[2]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - public function testSequenceOfFourImagesDevidedInTwoPagesByTwoAndTwo() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - - // --------------------- - // Move to the next page - - $page = "2"; - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - $this->assertEquals(2, count($page2)); - $this->assertEquals($images[2], $page2[2]); - $this->assertEquals($images[3], $page2[3]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - public function testSequenceOfFourImagesDevidedInTwoPagesByThreeAndOne() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - $this->createImage("1417695952_0.jpg"), // 13:25:52 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - $this->assertEquals($images[2], $page1[2]); - - // --------------------- - // Move to the next page - - $page = "2"; - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - $this->assertEquals(1, count($page2)); - $this->assertEquals($images[3], $page2[3]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - public function testSequenceOfFiveImagesDevidedInTwoPagesByThreeAndTwo() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - $this->createImage("1417695952_0.jpg"), // 13:25:52 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - $this->assertEquals($images[2], $page1[2]); - - // --------------------- - // Move to the next page - - $page = "2"; - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page2)); - $this->assertEquals($images[3], $page2[3]); - $this->assertEquals($images[4], $page2[4]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - public function testSequenceOfSixImagesDevidedInThreePagesByThreeOneAndTwo() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - $this->createImage("1417695952_0.jpg"), // 13:25:52 - - $this->createImage("1417696012_0.jpg"), // 13:26:52 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - $this->assertEquals($images[2], $page1[2]); - - // --------------------- - // Move to the next page - - $page = "2"; - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(1, count($page2)); - - $this->assertEquals($images[3], $page2[3]); - - // --------------------- - // Move to the next page - - $page = "3"; - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page3)); - - $this->assertEquals($images[4], $page3[4]); - $this->assertEquals($images[5], $page3[5]); - - // --------------------- - // Move to the next page - - $page = "4"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page4 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page4)); - } - - - public function testSequenceOfSixImagesDevidedInThreePagesByTwoTwoAndTwo() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - - $this->createImage("1417696012_0.jpg"), // 13:26:52 - $this->createImage("1417696013_0.jpg"), // 13:25:53 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - - // --------------------- - // Move to the next page - - $page = "2"; - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page2)); - - $this->assertEquals($images[2], $page2[2]); - $this->assertEquals($images[3], $page2[3]); - - // --------------------- - // Move to the next page - - $page = "3"; - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(2, count($page2)); - - $this->assertEquals($images[4], $page3[4]); - $this->assertEquals($images[5], $page3[5]); - - // --------------------- - // Move to the next page - - $page = "4"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page4 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page4)); - } - - public function testSequenceOfSixImagesDevidedInTwoPagesByThreeAndThree() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - $this->createImage("1417695952_0.jpg"), // 13:25:52 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - $this->createImage("1417696352_0.jpg"), // 13:32:32 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - $this->assertEquals($images[2], $page1[2]); - - // --------------------- - // Move to the next page - - $page = "2"; - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page2)); - $this->assertEquals($images[3], $page2[3]); - $this->assertEquals($images[4], $page2[4]); - $this->assertEquals($images[5], $page2[5]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } - - - public function testSequenceOfSevenImagesDevidedInTwoPagesByFourAndThree() - { - $images = [ - $this->createImage("1417695950_0.jpg"), // 13:25:50 - $this->createImage("1417695951_0.jpg"), // 13:25:51 - $this->createImage("1417695952_0.jpg"), // 13:25:52 - $this->createImage("1417695953_0.jpg"), // 13:25:53 - - $this->createImage("1417696350_0.jpg"), // 13:32:30 - $this->createImage("1417696351_0.jpg"), // 13:32:31 - $this->createImage("1417696352_0.jpg"), // 13:32:32 - ]; - - $page = "1"; - $maxTimeBetweenTwoImages = "12"; // seconds - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page1 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(4, count($page1)); - - $this->assertEquals($images[0], $page1[0]); - $this->assertEquals($images[1], $page1[1]); - $this->assertEquals($images[2], $page1[2]); - $this->assertEquals($images[3], $page1[3]); - - // --------------------- - // Move to the next page - - $page = "2"; - - $page2 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(3, count($page2)); - $this->assertEquals($images[4], $page2[4]); - $this->assertEquals($images[5], $page2[5]); - $this->assertEquals($images[6], $page2[6]); - - // --------------------- - // Move to the next page - - $page = "3"; - - // ----------------------------------------------------------- - // Process the images according the parameters specified above - - $page3 = $this->imageFilesystemHandler->getSequence($images, $page, $maxTimeBetweenTwoImages); - - $this->assertEquals(0, count($page3)); - } -} \ No newline at end of file diff --git a/app/traits/GetVersions.php b/app/traits/GetVersions.php index 4eb98fc..4514fd2 100644 --- a/app/traits/GetVersions.php +++ b/app/traits/GetVersions.php @@ -1,7 +1,7 @@ - 0) { - return 'v' . $matches[1]; + return 'v' . $matches[1]; } - - return null; + + return null; } - + public function getVersionsFromGithub() { // ------------------------------------- // Cache images directory for x seconds - + $cache = new Cache(Config::get('session.lifetime')); - + $user = Auth::user(); $key = $user->username . "_kios_versions"; - + if(Input::get('develop')) { Session::forget($key); @@ -73,7 +73,7 @@ public function getVersionsFromGithub() $request = $client->get($url); $response = $client->send($request); $body = json_decode($response->getBody()); - + $versions = []; for($i = 0; $i < count($body); $i++) { @@ -83,10 +83,10 @@ public function getVersionsFromGithub() 'body' => $body[$i]->body, 'prerelease' => $body[$i]->prerelease, 'assets' => $body[$i]->assets, - 'published_at' => $body[$i]->published_at + 'published_at' => $body[$i]->published_at ]); } - + $versions = array_values(array_sort($versions, function($value) { return $value['version']; @@ -96,10 +96,10 @@ public function getVersionsFromGithub() { $versions = []; } - + return $versions; }); - + return $versions; } -} \ No newline at end of file +} diff --git a/artisan b/artisan index 5c408ad..44dc07b 100755 --- a/artisan +++ b/artisan @@ -15,35 +15,7 @@ require __DIR__.'/bootstrap/autoload.php'; -/* -|-------------------------------------------------------------------------- -| Turn On The Lights -|-------------------------------------------------------------------------- -| -| We need to illuminate PHP development, so let's turn on the lights. -| This bootstraps the framework and gets it ready for and then it -| will load up this application so that we can run it and send -| the responses back to the browser and delight these users. -| -*/ - -$app = require_once __DIR__.'/bootstrap/start.php'; - -/* -|-------------------------------------------------------------------------- -| Load The Artisan Console Application -|-------------------------------------------------------------------------- -| -| We'll need to run the script to load and return the Artisan console -| application. We keep this in its own script so that we will load -| the console application independent of running commands which -| will allow us to fire commands from Routes when we want to. -| -*/ - -$app->setRequestForConsoleEnvironment(); - -$artisan = Illuminate\Console\Application::start($app); +$app = require_once __DIR__.'/bootstrap/app.php'; /* |-------------------------------------------------------------------------- @@ -56,19 +28,24 @@ $artisan = Illuminate\Console\Application::start($app); | */ -$status = $artisan->run(); +$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); /* |-------------------------------------------------------------------------- | Shutdown The Application |-------------------------------------------------------------------------- | -| Once Artisan has finished running. We will fire off the shutdown events +| Once Artisan has finished running, we will fire off the shutdown events | so that any final work may be done by the application before we shut | down the process. This is the last thing to happen to the request. | */ -$app->shutdown(); +$kernel->terminate($input, $status); exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..f2801ad --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/autoload.php b/bootstrap/autoload.php old mode 100755 new mode 100644 index 6b32931..c64e19f --- a/bootstrap/autoload.php +++ b/bootstrap/autoload.php @@ -9,67 +9,9 @@ | | Composer provides a convenient, automatically generated class loader | for our application. We just need to utilize it! We'll require it -| into the script here so that we do not have to worry about the -| loading of any our classes "manually". Feels great to relax. +| into the script here so we do not have to manually load any of +| our application's PHP classes. It just feels great to relax. | */ require __DIR__.'/../vendor/autoload.php'; - -/* -|-------------------------------------------------------------------------- -| Include The Compiled Class File -|-------------------------------------------------------------------------- -| -| To dramatically increase your application's performance, you may use a -| compiled class file which contains all of the classes commonly used -| by a request. The Artisan "optimize" is used to create this file. -| -*/ - -if (file_exists($compiled = __DIR__.'/compiled.php')) -{ - require $compiled; -} - -/* -|-------------------------------------------------------------------------- -| Setup Patchwork UTF-8 Handling -|-------------------------------------------------------------------------- -| -| The Patchwork library provides solid handling of UTF-8 strings as well -| as provides replacements for all mb_* and iconv type functions that -| are not available by default in PHP. We'll setup this stuff here. -| -*/ - -Patchwork\Utf8\Bootup::initMbstring(); - -/* -|-------------------------------------------------------------------------- -| Register The Laravel Auto Loader -|-------------------------------------------------------------------------- -| -| We register an auto-loader "behind" the Composer loader that can load -| model classes on the fly, even if the autoload files have not been -| regenerated for the application. We'll add it to the stack here. -| -*/ - -Illuminate\Support\ClassLoader::register(); - -/* -|-------------------------------------------------------------------------- -| Register The Workbench Loaders -|-------------------------------------------------------------------------- -| -| The Laravel workbench provides a convenient place to develop packages -| when working locally. However we will need to load in the Composer -| auto-load files for the packages so that these can be used here. -| -*/ - -if (is_dir($workbench = __DIR__.'/../workbench')) -{ - Illuminate\Workbench\Starter::start($workbench); -} diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/bootstrap/paths.php b/bootstrap/paths.php deleted file mode 100755 index 5a1f640..0000000 --- a/bootstrap/paths.php +++ /dev/null @@ -1,57 +0,0 @@ - __DIR__.'/../app', - - /* - |-------------------------------------------------------------------------- - | Public Path - |-------------------------------------------------------------------------- - | - | The public path contains the assets for your web application, such as - | your JavaScript and CSS files, and also contains the primary entry - | point for web requests into these applications from the outside. - | - */ - - 'public' => __DIR__.'/../public', - - /* - |-------------------------------------------------------------------------- - | Base Path - |-------------------------------------------------------------------------- - | - | The base path is the root of the Laravel installation. Most likely you - | will not need to change this value. But, if for some wild reason it - | is necessary you will do so here, just proceed with some caution. - | - */ - - 'base' => __DIR__.'/..', - - /* - |-------------------------------------------------------------------------- - | Storage Path - |-------------------------------------------------------------------------- - | - | The storage path is used by Laravel to store cached Blade views, logs - | and other pieces of information. You may modify the path here when - | you want to change the location of this directory for your apps. - | - */ - - 'storage' => __DIR__.'/../app/storage', - -); diff --git a/bootstrap/start.php b/bootstrap/start.php deleted file mode 100755 index 4c1874d..0000000 --- a/bootstrap/start.php +++ /dev/null @@ -1,74 +0,0 @@ -detectEnvironment(array( - - 'local' => array('homestead'), - -)); - -/* -|-------------------------------------------------------------------------- -| Bind Paths -|-------------------------------------------------------------------------- -| -| Here we are binding the paths configured in paths.php to the app. You -| should not be changing these here. If you need to change these you -| may do so within the paths.php file and they will be bound here. -| -*/ - - -$app->bindInstallPaths(require __DIR__.'/paths.php'); - -/* -|-------------------------------------------------------------------------- -| Load The Application -|-------------------------------------------------------------------------- -| -| Here we will load this Illuminate application. We will keep this in a -| separate location so we can isolate the creation of an application -| from the actual running of the application with a given request. -| -*/ - -$framework = $app['path.base']. - '/vendor/laravel/framework/src'; - -require $framework.'/Illuminate/Foundation/start.php'; - -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ - -return $app; \ No newline at end of file diff --git a/composer.json b/composer.json old mode 100755 new mode 100644 index 49d65f2..d49c872 --- a/composer.json +++ b/composer.json @@ -1,47 +1,55 @@ { - "name": "laravel/laravel", - "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], - "license": "MIT", - "require": { - "laravel/framework": "4.2.*", - "intervention/image": "dev-master", - "cedricve/simpleauth": "1.1.2", - "cedricve/lockfile": "1.0.0", - "linfo/linfo": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*", - "mockery/mockery": "0.7.*", - "satooshi/php-coveralls": "*" - }, - "autoload": { - "classmap": [ - "app/commands", - "app/controllers", - "app/repositories", - "app/models", - "app/traits", - "app/database/migrations", - "app/database/seeds", - "app/tests/TestCase.php" - ] - }, - "scripts": { - "post-install-cmd": [ - "php artisan clear-compiled", - "php artisan optimize" - ], - "post-update-cmd": [ - "php artisan clear-compiled", - "php artisan optimize" - ], - "post-create-project-cmd": [ - "php artisan key:generate" - ] - }, - "config": { - "preferred-install": "dist" - }, - "minimum-stability": "stable" + "name": "laravel/laravel", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "type": "project", + "require": { + "php": ">=5.6.4", + "laravel/framework": "5.4.*", + "laravel/tinker": "~1.0", + "intervention/image": "dev-master", + "cedricve/simpleauth": "1.2.0", + "cedricve/lockfile": "1.0.1", + "linfo/linfo": "^3.0" + }, + "require-dev": { + "fzaninotto/faker": "~1.4", + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~5.7" + }, + "autoload": { + "classmap": [ + "database" + ], + "psr-4": { + "App\\": "app/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-root-package-install": [ + "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "php artisan key:generate" + ], + "post-install-cmd": [ + "Illuminate\\Foundation\\ComposerScripts::postInstall", + "php artisan optimize" + ], + "post-update-cmd": [ + "Illuminate\\Foundation\\ComposerScripts::postUpdate", + "php artisan optimize" + ] + }, + "config": { + "preferred-install": "dist", + "sort-packages": true, + "optimize-autoloader": true + } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..f9aeaa0 --- /dev/null +++ b/composer.lock @@ -0,0 +1,3412 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "170b2878591986676807a16079c43805", + "content-hash": "037924117b024210a3a52bb85a16f79e", + "packages": [ + { + "name": "cedricve/lockfile", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/cedricve/lockfile.git", + "reference": "a122bee15fee0a2386da683826576399a00cb70b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cedricve/lockfile/zipball/a122bee15fee0a2386da683826576399a00cb70b", + "reference": "a122bee15fee0a2386da683826576399a00cb70b", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Cedricve\\Lockfile\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cédric Verstraeten", + "email": "hello@cedric.ws" + } + ], + "description": "A session driver which properly locks the file session driver for Laravel", + "keywords": [ + "lock file", + "session" + ], + "time": "2017-06-14 20:10:39" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "0.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", + "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "@stable" + }, + "type": "project", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "time": "2014-10-24 07:27:01" + }, + { + "name": "doctrine/inflector", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2015-11-06 14:35:42" + }, + { + "name": "erusev/parsedown", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/1bf24f7334fe16c88bf9d467863309ceaf285b01", + "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "time": "2017-03-29 16:04:15" + }, + { + "name": "jakub-onderka/php-console-color", + "version": "0.1", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "jakub-onderka/php-code-style": "1.0", + "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-var-dump-check": "0.*", + "phpunit/phpunit": "3.7.*", + "squizlabs/php_codesniffer": "1.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "JakubOnderka\\PhpConsoleColor": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com", + "homepage": "http://www.acci.cz" + } + ], + "time": "2014-04-08 15:00:19" + }, + { + "name": "jakub-onderka/php-console-highlighter", + "version": "v0.3.2", + "source": { + "type": "git", + "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "shasum": "" + }, + "require": { + "jakub-onderka/php-console-color": "~0.1", + "php": ">=5.3.0" + }, + "require-dev": { + "jakub-onderka/php-code-style": "~1.0", + "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-var-dump-check": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JakubOnderka\\PhpConsoleHighlighter": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "acci@acci.cz", + "homepage": "http://www.acci.cz/" + } + ], + "time": "2015-04-20 18:58:01" + }, + { + "name": "laravel/framework", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "66f5e1b37cbd66e730ea18850ded6dc0ad570404" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/66f5e1b37cbd66e730ea18850ded6dc0ad570404", + "reference": "66f5e1b37cbd66e730ea18850ded6dc0ad570404", + "shasum": "" + }, + "require": { + "doctrine/inflector": "~1.0", + "erusev/parsedown": "~1.6", + "ext-mbstring": "*", + "ext-openssl": "*", + "league/flysystem": "~1.0", + "monolog/monolog": "~1.11", + "mtdowling/cron-expression": "~1.0", + "nesbot/carbon": "~1.20", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4", + "ramsey/uuid": "~3.0", + "swiftmailer/swiftmailer": "~5.4", + "symfony/console": "~3.2", + "symfony/debug": "~3.2", + "symfony/finder": "~3.2", + "symfony/http-foundation": "~3.2", + "symfony/http-kernel": "~3.2", + "symfony/process": "~3.2", + "symfony/routing": "~3.2", + "symfony/var-dumper": "~3.2", + "tijsverkoyen/css-to-inline-styles": "~2.2", + "vlucas/phpdotenv": "~2.2" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/exception": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "tightenco/collect": "self.version" + }, + "require-dev": { + "aws/aws-sdk-php": "~3.0", + "doctrine/dbal": "~2.5", + "mockery/mockery": "~0.9.4", + "pda/pheanstalk": "~3.0", + "phpunit/phpunit": "~5.7", + "predis/predis": "~1.0", + "symfony/css-selector": "~3.2", + "symfony/dom-crawler": "~3.2" + }, + "suggest": { + "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", + "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", + "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", + "laravel/tinker": "Required to use the tinker console command (~1.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", + "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", + "nexmo/client": "Required to use the Nexmo transport (~1.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", + "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).", + "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.2).", + "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.2).", + "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "time": "2017-06-15 19:08:25" + }, + { + "name": "laravel/tinker", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "7eb2e281395131897407285672ef5532e87e17f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/7eb2e281395131897407285672ef5532e87e17f9", + "reference": "7eb2e281395131897407285672ef5532e87e17f9", + "shasum": "" + }, + "require": { + "illuminate/console": "~5.1", + "illuminate/contracts": "~5.1", + "illuminate/support": "~5.1", + "php": ">=5.5.9", + "psy/psysh": "0.7.*|0.8.*", + "symfony/var-dumper": "~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (~5.1)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "time": "2017-06-01 16:31:26" + }, + { + "name": "league/flysystem", + "version": "1.0.40", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "3828f0b24e2c1918bb362d57a53205d6dc8fde61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3828f0b24e2c1918bb362d57a53205d6dc8fde61", + "reference": "3828f0b24e2c1918bb362d57a53205d6dc8fde61", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "ext-fileinfo": "*", + "mockery/mockery": "~0.9", + "phpspec/phpspec": "^2.2", + "phpunit/phpunit": "~4.8" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-copy": "Allows you to use Copy.com storage", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2017-04-28 10:15:08" + }, + { + "name": "monolog/monolog", + "version": "1.22.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1e044bc4b34e91743943479f1be7a1d5eb93add0", + "reference": "1e044bc4b34e91743943479f1be7a1d5eb93add0", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "~5.3" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2017-03-13 07:08:03" + }, + { + "name": "mtdowling/cron-expression", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/mtdowling/cron-expression.git", + "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad", + "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "time": "2017-01-23 04:29:33" + }, + { + "name": "nesbot/carbon", + "version": "1.22.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", + "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/translation": "~2.6 || ~3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "~4.0 || ~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.23-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "time": "2017-01-16 07:55:07" + }, + { + "name": "nikic/php-parser", + "version": "v3.0.5", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "2b9e2f71b722f7c53918ab0c25f7646c2013f17d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/2b9e2f71b722f7c53918ab0c25f7646c2013f17d", + "reference": "2b9e2f71b722f7c53918ab0c25f7646c2013f17d", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2017-03-05 18:23:57" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.10", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-03-13 16:27:32" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10 12:19:37" + }, + { + "name": "psy/psysh", + "version": "v0.8.6", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "7028d6d525fb183d50b249b7c07598e3d386b27d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7028d6d525fb183d50b249b7c07598e3d386b27d", + "reference": "7028d6d525fb183d50b249b7c07598e3d386b27d", + "shasum": "" + }, + "require": { + "dnoegel/php-xdg-base-dir": "0.1", + "jakub-onderka/php-console-highlighter": "0.3.*", + "nikic/php-parser": "~1.3|~2.0|~3.0", + "php": ">=5.3.9", + "symfony/console": "~2.3.10|^2.4.2|~3.0", + "symfony/var-dumper": "~2.7|~3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~1.11", + "hoa/console": "~3.16|~1.14", + "phpunit/phpunit": "~4.4|~5.0", + "symfony/finder": "~2.1|~3.0" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", + "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.8.x-dev" + } + }, + "autoload": { + "files": [ + "src/Psy/functions.php" + ], + "psr-4": { + "Psy\\": "src/Psy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "time": "2017-06-04 10:34:20" + }, + { + "name": "ramsey/uuid", + "version": "3.6.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", + "reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "^1.0|^2.0", + "php": "^5.4 || ^7.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "apigen/apigen": "^4.1", + "codeception/aspect-mock": "^1.0 | ^2.0", + "doctrine/annotations": "~1.2.0", + "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ^2.1", + "ircmaxell/random-lib": "^1.1", + "jakub-onderka/php-parallel-lint": "^0.9.0", + "mockery/mockery": "^0.9.4", + "moontoast/math": "^1.1", + "php-mock/php-mock-phpunit": "^0.3|^1.1", + "phpunit/phpunit": "^4.7|>=5.0 <5.4", + "satooshi/php-coveralls": "^0.6.1", + "squizlabs/php_codesniffer": "^2.3" + }, + "suggest": { + "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", + "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marijn Huizendveld", + "email": "marijn.huizendveld@gmail.com" + }, + { + "name": "Thibaud Fabre", + "email": "thibaud@aztech.io" + }, + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "homepage": "https://github.com/ramsey/uuid", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "time": "2017-03-26 20:37:53" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.8", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517", + "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "http://swiftmailer.org", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2017-05-01 15:54:03" + }, + { + "name": "symfony/console", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/70d2a29b2911cbdc91a7e268046c395278238b2e", + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/debug": "~2.8|~3.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3", + "symfony/dependency-injection": "~3.3", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/filesystem": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/filesystem": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2017-06-02 19:24:58" + }, + { + "name": "symfony/css-selector", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "4d882dced7b995d5274293039370148e291808f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/4d882dced7b995d5274293039370148e291808f2", + "reference": "4d882dced7b995d5274293039370148e291808f2", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2017-05-01 15:01:29" + }, + { + "name": "symfony/debug", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/e9c50482841ef696e8fa1470d950a79c8921f45d", + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2017-06-01 21:01:25" + }, + { + "name": "symfony/event-dispatcher", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "4054a102470665451108f9b59305c79176ef98f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4054a102470665451108f9b59305c79176ef98f0", + "reference": "4054a102470665451108f9b59305c79176ef98f0", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/dependency-injection": "~3.3", + "symfony/expression-language": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2017-06-04 18:15:29" + }, + { + "name": "symfony/finder", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2017-06-01 21:01:25" + }, + { + "name": "symfony/http-foundation", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "80eb5a1f968448b77da9e8b2c0827f6e8d767846" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/80eb5a1f968448b77da9e8b2c0827f6e8d767846", + "reference": "80eb5a1f968448b77da9e8b2c0827f6e8d767846", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2017-06-05 13:06:51" + }, + { + "name": "symfony/http-kernel", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "be8280f7fa8e95b86514f1e1be997668a53b2888" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/be8280f7fa8e95b86514f1e1be997668a53b2888", + "reference": "be8280f7fa8e95b86514f1e1be997668a53b2888", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0", + "symfony/debug": "~2.8|~3.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/http-foundation": "~3.3" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.3", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/css-selector": "~2.8|~3.0", + "symfony/dependency-injection": "~3.3", + "symfony/dom-crawler": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0", + "symfony/routing": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0", + "symfony/templating": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/var-dumper": "~3.3" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/class-loader": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2017-06-06 03:59:58" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2017-06-09 14:24:12" + }, + { + "name": "symfony/process", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8e30690c67aafb6c7992d6d8eb0d707807dd3eaf", + "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2017-05-22 12:32:03" + }, + { + "name": "symfony/routing", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "39804eeafea5cca851946e1eed122eb94459fdb4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/39804eeafea5cca851946e1eed122eb94459fdb4", + "reference": "39804eeafea5cca851946e1eed122eb94459fdb4", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.3" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/dependency-injection": "~3.3", + "symfony/expression-language": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/yaml": "~3.3" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/dependency-injection": "For loading routes from a service", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2017-06-02 09:51:43" + }, + { + "name": "symfony/translation", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "dc3b2a0c6cfff60327ba1c043a82092735397543" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/dc3b2a0c6cfff60327ba1c043a82092735397543", + "reference": "dc3b2a0c6cfff60327ba1c043a82092735397543", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/yaml": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/intl": "^2.8.18|^3.2.5", + "symfony/yaml": "~3.3" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2017-05-22 07:42:36" + }, + { + "name": "symfony/var-dumper", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "347c4247a3e40018810b476fcd5dec36d46d08dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/347c4247a3e40018810b476fcd5dec36d46d08dc", + "reference": "347c4247a3e40018810b476fcd5dec36d46d08dc", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + }, + "require-dev": { + "ext-iconv": "*", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-symfony_debug": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2017-06-02 09:10:29" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b", + "reference": "ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7", + "symfony/css-selector": "^2.7|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8|5.1.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "time": "2016-09-20 12:50:39" + }, + { + "name": "vlucas/phpdotenv", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause-Attribution" + ], + "authors": [ + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "http://www.vancelucas.com" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2016-09-01 10:05:43" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14 21:17:01" + }, + { + "name": "fzaninotto/faker", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "extra": { + "branch-alias": [] + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2016-04-29 12:21:54" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "1.3.3", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "classmap": [ + "hamcrest" + ], + "files": [ + "hamcrest/Hamcrest.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2015-05-11 14:41:42" + }, + { + "name": "mockery/mockery", + "version": "0.9.9", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "6fdb61243844dc924071d3404bb23994ea0b6856" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/6fdb61243844dc924071d3404bb23994ea0b6856", + "reference": "6fdb61243844dc924071d3404bb23994ea0b6856", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "~1.1", + "lib-pcre": ">=7.0", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", + "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2017-02-28 12:52:32" + }, + { + "name": "myclabs/deep-copy", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "doctrine/collections": "1.*", + "phpunit/phpunit": "~4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "homepage": "https://github.com/myclabs/DeepCopy", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2017-04-12 18:52:22" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2015-12-27 11:43:31" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/type-resolver": "^0.2.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2016-09-30 07:12:33" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.2.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", + "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2016-11-25 06:54:22" + }, + { + "name": "phpspec/prophecy", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8 || ^5.6.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2017-03-02 20:05:34" + }, + { + "name": "phpunit/php-code-coverage", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" + }, + "require-dev": { + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" + }, + "suggest": { + "ext-xdebug": "^2.5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2017-04-02 07:44:40" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2016-10-03 07:40:28" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21 13:50:34" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26 11:10:40" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-02-27 10:12:30" + }, + { + "name": "phpunit/phpunit", + "version": "5.7.20", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3cb94a5f8c07a03c8b7527ed7468a2926203f58b", + "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.6.2", + "phpunit/php-code-coverage": "^4.0.4", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "^1.2.4", + "sebastian/diff": "^1.4.3", + "sebastian/environment": "^1.3.4 || ^2.0", + "sebastian/exporter": "~2.0", + "sebastian/global-state": "^1.1", + "sebastian/object-enumerator": "~2.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "~1.0.3|~2.0", + "symfony/yaml": "~2.1|~3.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.7.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-05-22 07:42:55" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", + "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2016-12-08 20:27:08" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04 06:30:41" + }, + { + "name": "sebastian/comparator", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-01-29 09:50:25" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-05-22 07:24:03" + }, + { + "name": "sebastian/environment", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2016-11-26 07:53:53" + }, + { + "name": "sebastian/exporter", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-11-19 08:54:04" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2015-10-12 03:26:01" + }, + { + "name": "sebastian/object-enumerator", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-02-18 15:18:39" + }, + { + "name": "sebastian/recursion-context", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-11-19 07:33:16" + }, + { + "name": "sebastian/resource-operations", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28 20:34:47" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03 07:35:21" + }, + { + "name": "symfony/yaml", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/9752a30000a8ca9f4b34b5227d15d0101b96b063", + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2017-06-02 22:05:06" + }, + { + "name": "webmozart/assert", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2016-11-23 20:04:58" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.6.4" + }, + "platform-dev": [] +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..1fc0b96 --- /dev/null +++ b/config/app.php @@ -0,0 +1,270 @@ + '2.2.1', + + 'config' => '/etc/opt/kerberosio/config', + + 'filesystem' => [ + + 'fileFormat' => 'timestamp_microseconds_instanceName_regionCoordinates_numberOfChanges_token.jpg', + + 'disk' => [ + 'path' => '/capture', + ], + + 'amazons3' => [ + 'bucket' => '', // Amazon bucket name + 'path' => '/', // Path to a specific directory of the bucket + 'key' => '', // Your AWS Access Key ID + 'secret' => '', // Your AWS Secret Access Key + 'region' => '', + 'config_file' => null, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Application Name + |-------------------------------------------------------------------------- + | + | This value is the name of your application. This value is used when the + | framework needs to place the application's name in a notification or + | any other location as required by the application or its packages. + */ + + 'name' => env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services your application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Logging Configuration + |-------------------------------------------------------------------------- + | + | Here you may configure the log settings for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Settings: "single", "daily", "syslog", "errorlog" + | + */ + + 'log' => env('APP_LOG', 'single'), + + 'log_level' => env('APP_LOG_LEVEL', 'debug'), + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + Laravel\Tinker\TinkerServiceProvider::class, + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + + /* + * Simple authenticator... + */ + //Cedricve\Simpleauth\SimpleauthServiceProvider::class, + + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => [ + + 'App' => Illuminate\Support\Facades\App::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, + 'Bus' => Illuminate\Support\Facades\Bus::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Notification' => Illuminate\Support\Facades\Notification::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'URL' => Illuminate\Support\Facades\URL::class, + 'Validator' => Illuminate\Support\Facades\Validator::class, + 'View' => Illuminate\Support\Facades\View::class, + + ], + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..871e69d --- /dev/null +++ b/config/auth.php @@ -0,0 +1,102 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session", "token" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + + 'api' => [ + 'driver' => 'token', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'simple', + 'model' => App\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that the reset token should be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + ], + ], + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..5eecd2b --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,58 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + // + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..e87f032 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,91 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing a RAM based store such as APC or Memcached, there might + | be other applications utilizing the same cache. So, we'll specify a + | value to get prefixed to all our keys so we can avoid collisions. + | + */ + + 'prefix' => 'laravel', + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..cab5d06 --- /dev/null +++ b/config/database.php @@ -0,0 +1,120 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'strict' => true, + 'engine' => null, + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'schema' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer set of commands than a typical key-value systems + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => 'predis', + + 'default' => [ + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', 6379), + 'database' => 0, + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..4544f60 --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,68 @@ + env('FILESYSTEM_DRIVER', 'local'), + + /* + |-------------------------------------------------------------------------- + | Default Cloud Filesystem Disk + |-------------------------------------------------------------------------- + | + | Many applications store files both locally and in the cloud. For this + | reason, you may specify a default "cloud" driver here. This driver + | will be bound as the Cloud disk implementation in the container. + | + */ + + 'cloud' => env('FILESYSTEM_CLOUD', 's3'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "s3", "rackspace" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_KEY'), + 'secret' => env('AWS_SECRET'), + 'region' => env('AWS_REGION'), + 'bucket' => env('AWS_BUCKET'), + ], + + ], + +]; diff --git a/app/config/packages/.gitkeep b/config/kerberos.php old mode 100755 new mode 100644 similarity index 100% rename from app/config/packages/.gitkeep rename to config/kerberos.php diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..bb92224 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,123 @@ + env('MAIL_DRIVER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | SMTP Host Address + |-------------------------------------------------------------------------- + | + | Here you may provide the host address of the SMTP server used by your + | applications. A default option is provided that is compatible with + | the Mailgun mail service which will provide reliable deliveries. + | + */ + + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + + /* + |-------------------------------------------------------------------------- + | SMTP Host Port + |-------------------------------------------------------------------------- + | + | This is the SMTP port used by your application to deliver e-mails to + | users of the application. Like the host we have set this value to + | stay compatible with the Mailgun e-mail application by default. + | + */ + + 'port' => env('MAIL_PORT', 587), + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | E-Mail Encryption Protocol + |-------------------------------------------------------------------------- + | + | Here you may specify the encryption protocol that should be used when + | the application send e-mail messages. A sensible default using the + | transport layer security protocol should provide great security. + | + */ + + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + + /* + |-------------------------------------------------------------------------- + | SMTP Server Username + |-------------------------------------------------------------------------- + | + | If your SMTP server requires a username for authentication, you should + | set it here. This will get used to authenticate with your server on + | connection. You may also set the "password" value below this one. + | + */ + + 'username' => env('MAIL_USERNAME'), + + 'password' => env('MAIL_PASSWORD'), + + /* + |-------------------------------------------------------------------------- + | Sendmail System Path + |-------------------------------------------------------------------------- + | + | When using the "sendmail" driver to send e-mails, we will need to know + | the path to where Sendmail lives on this server. A default path has + | been provided here, which will work well on most of your systems. + | + */ + + 'sendmail' => '/usr/sbin/sendmail -bs', + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..4d83ebd --- /dev/null +++ b/config/queue.php @@ -0,0 +1,85 @@ + env('QUEUE_DRIVER', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => 'your-public-key', + 'secret' => 'your-secret-key', + 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', + 'queue' => 'your-queue-name', + 'region' => 'us-east-1', + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => 'default', + 'retry_after' => 90, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..4460f0e --- /dev/null +++ b/config/services.php @@ -0,0 +1,38 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + ], + + 'ses' => [ + 'key' => env('SES_KEY'), + 'secret' => env('SES_SECRET'), + 'region' => 'us-east-1', + ], + + 'sparkpost' => [ + 'secret' => env('SPARKPOST_SECRET'), + ], + + 'stripe' => [ + 'model' => App\User::class, + 'key' => env('STRIPE_KEY'), + 'secret' => env('STRIPE_SECRET'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..e2779ad --- /dev/null +++ b/config/session.php @@ -0,0 +1,179 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => 120, + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => null, + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using the "apc" or "memcached" session drivers, you may specify a + | cache store that should be used for these sessions. This value must + | correspond with one of the application's configured cache stores. + | + */ + + 'store' => null, + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => 'laravel_session', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN', null), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you if it can not be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE', false), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..2acfd9c --- /dev/null +++ b/config/view.php @@ -0,0 +1,33 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => realpath(storage_path('framework/views')), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b1dffd --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php new file mode 100644 index 0000000..7926c79 --- /dev/null +++ b/database/factories/ModelFactory.php @@ -0,0 +1,24 @@ +define(App\User::class, function (Faker\Generator $faker) { + static $password; + + return [ + 'name' => $faker->name, + 'email' => $faker->unique()->safeEmail, + 'password' => $password ?: $password = bcrypt('secret'), + 'remember_token' => str_random(10), + ]; +}); diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..689cbee --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('name'); + $table->string('email')->unique(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +} diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..0d5cb84 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php new file mode 100644 index 0000000..e119db6 --- /dev/null +++ b/database/seeds/DatabaseSeeder.php @@ -0,0 +1,16 @@ +call(UsersTableSeeder::class); + } +} diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 621fbf4..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -FROM kerberos/base:latest - -ARG APP_ENV=master -ENV APP_ENV ${APP_ENV} - -MAINTAINER "Cédric Verstraeten" - -################################# -# Surpress Upstart errors/warning - -RUN dpkg-divert --local --rename --add /sbin/initctl -RUN ln -sf /bin/true /sbin/initctl - -############################################# -# Let the container know that there is no tty - -ENV DEBIAN_FRONTEND noninteractive - -################### -# nginx site conf - -RUN rm -Rf /etc/nginx/conf.d/* && \ -rm -Rf /etc/nginx/sites-available/default && \ -mkdir -p /etc/nginx/ssl -ADD ./web.conf /etc/nginx/sites-available/default.conf -RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf - -##################### -# Clone and build web - -RUN git clone https://github.com/kerberos-io/web /var/www/web && \ -cd /var/www/web && \ -git checkout ${APP_ENV} && \ -chown -Rf www-data.www-data /var/www/web && \ -curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer && \ -cd /var/www/web && \ -php5enmod mcrypt && \ -composer install --prefer-source && \ -npm install -g bower && \ -cd public && \ -nodejs /usr/local/bin/bower --allow-root install - -RUN rm /var/www/web/public/capture && \ -ln -s /etc/opt/kerberosio/capture/ /var/www/web/public/capture - -########################################### -# Make capture and config directory visible - -VOLUME ["/etc/opt/kerberosio/capture"] -VOLUME ["/etc/opt/kerberosio/config"] -VOLUME ["/etc/opt/kerberosio/logs"] - -############## -# Expose Ports - -EXPOSE 443 -EXPOSE 80 - -############################# -# Supervisor Config and start - -ADD ./supervisord.conf /etc/supervisord.conf -ADD ./run.sh /run.sh -RUN chmod 755 /run.sh - -CMD ["/bin/bash", "/run.sh"] diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 1ab80df..0000000 --- a/docker/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Docker - -This branch contains a docker file which builds the web repository for the x86 architecture. - -https://hub.docker.com/r/kerberos/web/ - -## How to build - -Execute following command to build the docker image. - - docker build -t kerberos/web . diff --git a/docker/run.sh b/docker/run.sh deleted file mode 100644 index 1fb3a72..0000000 --- a/docker/run.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -/usr/bin/supervisord -n -c /etc/supervisord.conf \ No newline at end of file diff --git a/docker/supervisord.conf b/docker/supervisord.conf deleted file mode 100644 index dc8a9b1..0000000 --- a/docker/supervisord.conf +++ /dev/null @@ -1,36 +0,0 @@ -[unix_http_server] -file=/tmp/supervisor.sock ; (the path to the socket file) - -[supervisord] -logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) -logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) -logfile_backups=10 ; (num of main logfile rotation backups;default 10) -loglevel=info ; (log level;default info; others: debug,warn,trace) -pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) -nodaemon=false ; (start in foreground if true;default false) -minfds=1024 ; (min. avail startup file descriptors;default 1024) -minprocs=200 ; (min. avail process descriptors;default 200) -user=root ; - -; the below section must remain in the config file for RPC -; (supervisorctl/web interface) to work, additional interfaces may be -; added by defining them in separate rpcinterface: sections -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[supervisorctl] -serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket - -[program:php5-fpm] -command=/usr/sbin/php5-fpm -c /etc/php5/fpm -autostart=true -autorestart=true -priority=5 - -[program:nginx] -command=/usr/sbin/nginx -autostart=true -autorestart=true -priority=10 -stdout_events_enabled=true -stderr_events_enabled=true \ No newline at end of file diff --git a/docker/web.conf b/docker/web.conf deleted file mode 100644 index 780be2a..0000000 --- a/docker/web.conf +++ /dev/null @@ -1,27 +0,0 @@ -server -{ - listen 80; - - root /var/www/web/public; - index index.php index.html index.htm; - - error_log /dev/stdout info; - access_log /dev/stdout; - - location / - { - try_files $uri $uri/ /index.php?q=$uri&$args; - } - - location ~ \.php$ - { - fastcgi_pass unix:/var/run/php5-fpm.sock; - fastcgi_index index.php; - include fastcgi.conf; - } - - location /stream - { - proxy_pass http://machinery:8889; - } -} \ No newline at end of file diff --git a/mirror b/mirror deleted file mode 100755 index daa0d54..0000000 --- a/mirror +++ /dev/null @@ -1,983 +0,0 @@ - - - - - - - - PHP: Get Download - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - -
-
-

Download not found

-

- The file you requested ( php-5.4.20.tar.bz2 ) is not found on - this server (http://php.net/). Please try another mirror listed below

- -
-
-
Argentina ARG -
-
- - -
-
- - - -
-
Bangladesh BGD -
-
- - -
-
-
-
Belgium BEL -
-
- - -
-
- -
-
Bulgaria BGR -
-
- - -
-
-
-
Canada CAN -
-
- - -
-
- - -
-
- - -
-
-
-
Chile CHL -
-
- - -
-
-
-
China CHN -
-
- - -
-
- -
-
Denmark DNK -
-
- - -
-
- - -
-
-
-
Estonia EST -
-
- - -
-
-
-
Finland FIN -
-
- - -
-
- - -
-
-
-
France FRA -
-
- - -
-
- - -
-
Hungary HUN -
-
- - -
-
-
-
Iceland ISL -
-
- - -
-
- - -
-
- -
-
Indonesia IDN -
-
- - -
-
-
-
Iran IRN -
-
- - -
-
- - -
-
- -
-
Israel ISR -
-
- - -
-
-
-
Italy ITA -
-
- - -
-
- - -
-
- -
-
Japan JPN -
-
- - -
-
- - -
-
-
-
Latvia LVA -
-
- - -
-
-
-
Liechtenstein LIE -
-
- - -
-
-
-
Lithuania LTU -
-
- - -
-
-
-
Luxembourg LUX -
-
- - -
-
- -
-
Netherlands NLD -
-
- - -
-
- - -
-
-
-
New Caledonia NCL -
-
- - -
-
-
-
New Zealand NZL -
-
- - -
-
- - -
-
- -
-
Pakistan PAK -
-
- - -
-
-
-
Panama PAN -
-
- - -
-
-
-
Poland POL -
-
- - -
-
-
-
Portugal PRT -
-
- - -
-
- - -
-
-
-
Republic of Korea KOR -
-
- - -
-
-
-
Republic of Moldova MDA -
-
- - -
-
-
-
Romania ROU -
-
- - -
-
-
-
Russian Federation RUS -
-
- - -
-
- -
-
Slovenia SVN -
-
- - -
-
-
-
South Africa ZAF -
-
- - -
-
-
-
Spain ESP -
-
- - -
-
-
-
Sweden SWE -
-
- - -
-
- - -
-
-
-
Switzerland CHE -
-
- - -
-
-
-
Taiwan TWN -
-
- - -
-
- - -
-
-
-
Thailand THA -
-
- - -
-
- -
-
Ukraine UKR -
-
- - -
-
-
-
United Kingdom GBR -
-
- - -
-
- - -
-
-
-
United Republic of Tanzania TZA -
-
- - -
-
- -
-
- - -
- - -
- - - - - - - - - - - - - -To Top - - - - diff --git a/package.json b/package.json new file mode 100644 index 0000000..83294b6 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "private": true, + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch-poll": "npm run watch -- --watch-poll", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "axios": "^0.15.3", + "bootstrap-sass": "^3.3.7", + "cross-env": "^3.2.3", + "jquery": "^3.1.1", + "laravel-mix": "0.*", + "lodash": "^4.17.4", + "vue": "^2.1.10" + } +} diff --git a/phpunit.xml b/phpunit.xml old mode 100755 new mode 100644 index c42dc4f..a2c496e --- a/phpunit.xml +++ b/phpunit.xml @@ -7,12 +7,25 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" - syntaxCheck="false" -> + stopOnFailure="false"> - - ./app/tests/ + + ./tests/Feature + + + + ./tests/Unit - \ No newline at end of file + + + ./app + + + + + + + + + diff --git a/public/.bowerrc b/public/.bowerrc deleted file mode 100755 index 52a0dbc..0000000 --- a/public/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "js/vendor" -} \ No newline at end of file diff --git a/public/.htaccess b/public/.htaccess old mode 100755 new mode 100644 index 77827ae..903f639 --- a/public/.htaccess +++ b/public/.htaccess @@ -5,11 +5,16 @@ RewriteEngine On - # Redirect Trailing Slashes... + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] diff --git a/public/images/kerberos_multihead.svg b/public/images/kerberos_multihead.svg index 9fa3651..bae5b65 100644 --- a/public/images/kerberos_multihead.svg +++ b/public/images/kerberos_multihead.svg @@ -1,261 +1,261 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/index.php b/public/index.php index ebf1d17..1e1d775 100755 --- a/public/index.php +++ b/public/index.php @@ -1,9 +1,10 @@ + * @author Taylor Otwell */ /* @@ -11,10 +12,10 @@ | Register The Auto Loader |-------------------------------------------------------------------------- | -| Composer provides a convenient, automatically generated class loader -| for our application. We just need to utilize it! We'll require it -| into the script here so that we do not have to worry about the -| loading of any our classes "manually". Feels great to relax. +| Composer provides a convenient, automatically generated class loader for +| our application. We just need to utilize it! We'll simply require it +| into the script here so that we don't have to worry about manual +| loading any of our classes later on. It feels great to relax. | */ @@ -25,25 +26,33 @@ | Turn On The Lights |-------------------------------------------------------------------------- | -| We need to illuminate PHP development, so let's turn on the lights. +| We need to illuminate PHP development, so let us turn on the lights. | This bootstraps the framework and gets it ready for use, then it | will load up this application so that we can run it and send -| the responses back to the browser and delight these users. +| the responses back to the browser and delight our users. | */ -$app = require_once __DIR__.'/../bootstrap/start.php'; +$app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | -| Once we have the application, we can simply call the run method, -| which will execute the request and send the response back to +| Once we have the application, we can handle the incoming request +| through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative -| and wonderful application we have whipped up for them. +| and wonderful application we have prepared for them. | */ -$app->run(); \ No newline at end of file +$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); + +$response = $kernel->handle( + $request = Illuminate\Http\Request::capture() +); + +$response->send(); + +$kernel->terminate($request, $response); diff --git a/public/web.config b/public/web.config new file mode 100644 index 0000000..624c176 --- /dev/null +++ b/public/web.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js new file mode 100644 index 0000000..c1620c1 --- /dev/null +++ b/resources/assets/js/app.js @@ -0,0 +1,22 @@ + +/** + * First we will load all of this project's JavaScript dependencies which + * includes Vue and other libraries. It is a great starting point when + * building robust, powerful web applications using Vue and Laravel. + */ + +require('./bootstrap'); + +window.Vue = require('vue'); + +/** + * Next, we will create a fresh Vue application instance and attach it to + * the page. Then, you may begin adding components to this application + * or customize the JavaScript scaffolding to fit your unique needs. + */ + +Vue.component('example', require('./components/Example.vue')); + +const app = new Vue({ + el: '#app' +}); diff --git a/resources/assets/js/bootstrap.js b/resources/assets/js/bootstrap.js new file mode 100644 index 0000000..8e0f04e --- /dev/null +++ b/resources/assets/js/bootstrap.js @@ -0,0 +1,53 @@ + +window._ = require('lodash'); + +/** + * We'll load jQuery and the Bootstrap jQuery plugin which provides support + * for JavaScript based Bootstrap features such as modals and tabs. This + * code may be modified to fit the specific needs of your application. + */ + +try { + window.$ = window.jQuery = require('jquery'); + + require('bootstrap-sass'); +} catch (e) {} + +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +window.axios = require('axios'); + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Next we will register the CSRF Token as a common header with Axios so that + * all outgoing HTTP requests automatically have it attached. This is just + * a simple convenience so we don't have to attach every token manually. + */ + +let token = document.head.querySelector('meta[name="csrf-token"]'); + +if (token) { + window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; +} else { + console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); +} + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo' + +// window.Pusher = require('pusher-js'); + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: 'your-pusher-key' +// }); diff --git a/resources/assets/js/components/Example.vue b/resources/assets/js/components/Example.vue new file mode 100644 index 0000000..601e61c --- /dev/null +++ b/resources/assets/js/components/Example.vue @@ -0,0 +1,23 @@ + + + diff --git a/resources/assets/sass/_variables.scss b/resources/assets/sass/_variables.scss new file mode 100644 index 0000000..53202ac --- /dev/null +++ b/resources/assets/sass/_variables.scss @@ -0,0 +1,38 @@ + +// Body +$body-bg: #f5f8fa; + +// Borders +$laravel-border-color: darken($body-bg, 10%); +$list-group-border: $laravel-border-color; +$navbar-default-border: $laravel-border-color; +$panel-default-border: $laravel-border-color; +$panel-inner-border: $laravel-border-color; + +// Brands +$brand-primary: #3097D1; +$brand-info: #8eb4cb; +$brand-success: #2ab27b; +$brand-warning: #cbb956; +$brand-danger: #bf5329; + +// Typography +$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/"; +$font-family-sans-serif: "Raleway", sans-serif; +$font-size-base: 14px; +$line-height-base: 1.6; +$text-color: #636b6f; + +// Navbar +$navbar-default-bg: #fff; + +// Buttons +$btn-default-color: $text-color; + +// Inputs +$input-border: lighten($text-color, 40%); +$input-border-focus: lighten($brand-primary, 25%); +$input-color-placeholder: lighten($text-color, 30%); + +// Panels +$panel-default-heading-bg: #fff; diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss new file mode 100644 index 0000000..35ce2dc --- /dev/null +++ b/resources/assets/sass/app.scss @@ -0,0 +1,9 @@ + +// Fonts +@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600); + +// Variables +@import "variables"; + +// Bootstrap +@import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php new file mode 100644 index 0000000..e5506df --- /dev/null +++ b/resources/lang/en/auth.php @@ -0,0 +1,19 @@ + 'These credentials do not match our records.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php new file mode 100644 index 0000000..d481411 --- /dev/null +++ b/resources/lang/en/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php new file mode 100644 index 0000000..e5544d2 --- /dev/null +++ b/resources/lang/en/passwords.php @@ -0,0 +1,22 @@ + 'Passwords must be at least six characters and match the confirmation.', + 'reset' => 'Your password has been reset!', + 'sent' => 'We have e-mailed your password reset link!', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that e-mail address.", + +]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php new file mode 100644 index 0000000..edc036d --- /dev/null +++ b/resources/lang/en/validation.php @@ -0,0 +1,121 @@ + 'The :attribute must be accepted.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'numeric' => 'The :attribute must be between :min and :max.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'email' => 'The :attribute must be a valid email address.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'max' => [ + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'not_in' => 'The selected :attribute is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'present' => 'The :attribute field must be present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid zone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute format is invalid.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + +]; diff --git a/app/views/cloud.blade.php b/resources/views/cloud.blade.php similarity index 100% rename from app/views/cloud.blade.php rename to resources/views/cloud.blade.php diff --git a/app/views/controls/bool.blade.php b/resources/views/controls/bool.blade.php similarity index 100% rename from app/views/controls/bool.blade.php rename to resources/views/controls/bool.blade.php diff --git a/app/views/controls/directory.blade.php b/resources/views/controls/directory.blade.php similarity index 100% rename from app/views/controls/directory.blade.php rename to resources/views/controls/directory.blade.php diff --git a/app/views/controls/dropdown.blade.php b/resources/views/controls/dropdown.blade.php similarity index 100% rename from app/views/controls/dropdown.blade.php rename to resources/views/controls/dropdown.blade.php diff --git a/app/views/controls/file.blade.php b/resources/views/controls/file.blade.php similarity index 100% rename from app/views/controls/file.blade.php rename to resources/views/controls/file.blade.php diff --git a/app/views/controls/hullselection.blade.php b/resources/views/controls/hullselection.blade.php similarity index 100% rename from app/views/controls/hullselection.blade.php rename to resources/views/controls/hullselection.blade.php diff --git a/app/views/controls/number.blade.php b/resources/views/controls/number.blade.php similarity index 100% rename from app/views/controls/number.blade.php rename to resources/views/controls/number.blade.php diff --git a/app/views/controls/rectangeselection.blade.php b/resources/views/controls/rectangeselection.blade.php similarity index 100% rename from app/views/controls/rectangeselection.blade.php rename to resources/views/controls/rectangeselection.blade.php diff --git a/app/views/controls/text.blade.php b/resources/views/controls/text.blade.php similarity index 100% rename from app/views/controls/text.blade.php rename to resources/views/controls/text.blade.php diff --git a/app/views/controls/timeselection.blade.php b/resources/views/controls/timeselection.blade.php similarity index 100% rename from app/views/controls/timeselection.blade.php rename to resources/views/controls/timeselection.blade.php diff --git a/app/views/controls/timezone.blade.php b/resources/views/controls/timezone.blade.php similarity index 100% rename from app/views/controls/timezone.blade.php rename to resources/views/controls/timezone.blade.php diff --git a/app/views/controls/twolines.blade.php b/resources/views/controls/twolines.blade.php similarity index 100% rename from app/views/controls/twolines.blade.php rename to resources/views/controls/twolines.blade.php diff --git a/app/views/dashboard.blade.php b/resources/views/dashboard.blade.php similarity index 98% rename from app/views/dashboard.blade.php rename to resources/views/dashboard.blade.php index 059d398..29564a5 100755 --- a/app/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -1,183 +1,183 @@ -@extends('template') - -@section('content') -
-
-
-
-

- {{Lang::get('dashboard.activity')}} -

- - -
-
    -
  • -
    -
  • -
  • - -
  • -
  • -
    -
  • -
-
-
-
-

{{Lang::get('dashboard.overview')}}

- -
- -
-
-
-
-

{{Lang::get('dashboard.hour')}}

-
- -
-
-
-

{{Lang::get('dashboard.weekday')}}

-
- -
-
-
- - -
- -
- -@stop +@extends('template') + +@section('content') +
+
+
+
+

+ {{Lang::get('dashboard.activity')}} +

+ + +
+
    +
  • +
    +
  • +
  • + +
  • +
  • +
    +
  • +
+
+
+
+

{{Lang::get('dashboard.overview')}}

+ +
+ +
+
+
+
+

{{Lang::get('dashboard.hour')}}

+
+ +
+
+
+

{{Lang::get('dashboard.weekday')}}

+
+ +
+
+
+ + +
+ +
+ +@stop diff --git a/app/views/data/timezones.blade.php b/resources/views/data/timezones.blade.php similarity index 100% rename from app/views/data/timezones.blade.php rename to resources/views/data/timezones.blade.php diff --git a/app/views/errors/capture-missing.blade.php b/resources/views/errors/capture-missing.blade.php similarity index 100% rename from app/views/errors/capture-missing.blade.php rename to resources/views/errors/capture-missing.blade.php diff --git a/app/views/errors/config-missing.blade.php b/resources/views/errors/config-missing.blade.php similarity index 100% rename from app/views/errors/config-missing.blade.php rename to resources/views/errors/config-missing.blade.php diff --git a/app/views/errors/permission-denied.blade.php b/resources/views/errors/permission-denied.blade.php similarity index 100% rename from app/views/errors/permission-denied.blade.php rename to resources/views/errors/permission-denied.blade.php diff --git a/app/views/errors/template.blade.php b/resources/views/errors/template.blade.php similarity index 100% rename from app/views/errors/template.blade.php rename to resources/views/errors/template.blade.php diff --git a/app/views/image.blade.php b/resources/views/image.blade.php similarity index 100% rename from app/views/image.blade.php rename to resources/views/image.blade.php diff --git a/app/views/login.blade.php b/resources/views/login.blade.php similarity index 100% rename from app/views/login.blade.php rename to resources/views/login.blade.php diff --git a/app/views/photoswipe.blade.php b/resources/views/photoswipe.blade.php similarity index 100% rename from app/views/photoswipe.blade.php rename to resources/views/photoswipe.blade.php diff --git a/app/views/settings.blade.php b/resources/views/settings.blade.php similarity index 100% rename from app/views/settings.blade.php rename to resources/views/settings.blade.php diff --git a/app/views/settings/advanced.blade.php b/resources/views/settings/advanced.blade.php similarity index 100% rename from app/views/settings/advanced.blade.php rename to resources/views/settings/advanced.blade.php diff --git a/app/views/settings/basic.blade.php b/resources/views/settings/basic.blade.php similarity index 100% rename from app/views/settings/basic.blade.php rename to resources/views/settings/basic.blade.php diff --git a/app/views/settings_controls.blade.php b/resources/views/settings_controls.blade.php similarity index 100% rename from app/views/settings_controls.blade.php rename to resources/views/settings_controls.blade.php diff --git a/app/views/system.blade.php b/resources/views/system.blade.php similarity index 100% rename from app/views/system.blade.php rename to resources/views/system.blade.php diff --git a/app/views/template.blade.php b/resources/views/template.blade.php similarity index 100% rename from app/views/template.blade.php rename to resources/views/template.blade.php diff --git a/app/views/welcome.blade.php b/resources/views/welcome.blade.php similarity index 100% rename from app/views/welcome.blade.php rename to resources/views/welcome.blade.php diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..af6a1a1 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,159 @@ +get('/user', function (Request $request) { + return $request->user(); +});*/ + +/********************************** +* +* API V1 +* +**********************************/ + +Route::prefix('api/v1')->group(function() +{ + // ----------------- + // Webhook Controller + + Route::resource('webhook', 'WebhookController'); + + // ------------------- + // Health Controller + + Route::get('health', 'HealthController@index'); + + // ----------------------------- + // Login method if not authorized + + Route::group(['before' => 'guest'], function() + { + // ----------------- + // Login Controller + + Route::post('login/login', 'LoginController@login'); // try to sign-in the user. + }); + + // ---------------------- + // Methods for authorized + + Route::group(['before' => 'auth'], function() + { + // ----------------- + // User Controller + + Route::get('users/current', 'UserController@current'); + Route::post('users/current', 'UserController@updateCurrent'); + + // ----------------- + // System Controller + + Route::get('images/download', 'SystemController@downloadImages'); + Route::get('images/clean', 'SystemController@cleanImages'); + Route::get('system/download', 'SystemController@downloadConfiguration'); + Route::get('system/stream', 'SystemController@isStreamRunning'); + Route::get('system/versions', 'SystemController@getVersions'); + Route::post('system/upgrade/download', 'SystemController@download'); + Route::post('system/upgrade/progress', 'SystemController@progress'); + Route::get('system/upgrade/unzip', 'SystemController@unzip'); + Route::get('system/upgrade/depack', 'SystemController@depack'); + Route::get('system/upgrade/transfer', 'SystemController@transfer'); + Route::get('system/upgrade/reboot', 'SystemController@reboot'); + Route::get('system/reboot', 'SystemController@rebooting'); + Route::get('system/shutdown', 'SystemController@shuttingdown'); + + Route::get('system/os', 'SystemController@getOS'); + Route::get('system/kerberos', 'SystemController@getKerberos'); + Route::get('system/kios', 'SystemController@getKiOS'); + + // ----------------- + // Image Controller + + Route::get('images/latest_sequence', 'ImageController@getLatestSequence'); + Route::get('images/days', 'ImageController@getDays'); + Route::get('images/regions', 'ImageController@getRegions'); + Route::get('images/perhour/{days?}', 'ImageController@getImagesPerHour'); + Route::get('images/perday/{days?}', 'ImageController@getImagesPerDay'); + Route::get('images/perweekday/{days?}', 'ImageController@getAverageImagesPerWeekDay'); + Route::get('images/{date}/hours', 'ImageController@getImagesPerHourForDay'); + Route::get('images/{date}/{take?}/{page?}', 'ImageController@getImages'); + Route::get('images/{date}/{take?}/{page?}/{time?}', 'ImageController@getImagesFromStartTime'); + + }); + + // ------------------------- + // REST API with basic auth + + Route::middleware('auth.basic')->group(function() + { + // -------------------- + // Settings Controller + + Route::get('name', 'SettingsController@getName'); + Route::put('name', 'SettingsController@updateName'); + + Route::get('condition', 'SettingsController@getConditions'); + Route::put('condition', 'SettingsController@updateConditions'); + Route::get('condition/enabled', 'SettingsController@getConditionEnabled'); + Route::put('condition/enabled', 'SettingsController@updateConditionEnabled'); + + Route::get('stream', 'SettingsController@getStream'); + + Route::get('io', 'SettingsController@getIos'); + Route::put('io', 'SettingsController@updateIos'); + Route::get('io/webhook', 'SettingsController@getIoWebhook'); + Route::put('io/webhook', 'SettingsController@updateIoWebhook'); + + Route::get('configure', array('uses' => 'SettingsController@getConfiguration')); + Route::put('configure', array('uses' => 'SettingsController@changeProperties')); + + // -------------------- + // System Controller + + Route::get('system/health', 'SystemController@isStreamRunning'); + Route::post('system/reboot', 'SystemController@rebooting'); + Route::post('system/shutdown', 'SystemController@shuttingdown'); + + Route::get('*', function() + { + return Response::json([ + 'error' => 'API method does not exists' + ], 404); + }); + }); + + + // ----------------- + // Translate Controller + + Route::get('translate/{page}', 'TranslateController@index'); + + // -------------------- + // Installation wizard + + if(!Config::get('kerberos')['installed']) + { + Route::post('user/language', 'UserController@changeLanguage'); + Route::post('user/install', 'UserController@install'); + } +}); + +/********************************** +* +* API V2 +* +**********************************/ + +Route::group(array('prefix' => 'api/v2'), function(){}); diff --git a/routes/channels.php b/routes/channels.php new file mode 100644 index 0000000..f16a20b --- /dev/null +++ b/routes/channels.php @@ -0,0 +1,16 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..75dd0cd --- /dev/null +++ b/routes/console.php @@ -0,0 +1,18 @@ +comment(Inspiring::quote()); +})->describe('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..18b9206 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,62 @@ + ['hasConfiguration', 'hasCaptureDirectory']], function() +{ + Route::group(['before' => 'guest'], function() + { + // ----------------- + // Login Controller + + Route::get('login', 'LoginController@index'); + + // ---------------------------------------- + // Welcome controller, for first time setup. + + if(!Config::get('kerberos')['installed']) + { + Route::get('welcome', 'WelcomeController@index'); + } + }); + + Route::group(['before' => 'auth'], function() + { + // ------------------------ + // Login Controller + + Route::get('logout', 'LoginController@logout'); + + // ------------------------ + // Dashboard Controller + + Route::get('/', 'DashboardController@index'); + + // ------------------------ + // Settings Controller + + Route::get('settings', 'SettingsController@index'); + Route::get('cloud', 'SettingsController@cloud'); + Route::post('settings/update', ['uses' => 'SettingsController@update']); + Route::post('settings/update/web', ['uses' => 'SettingsController@updateWeb']); + + // ------------------------ + // System Controller + + Route::get('system', 'SystemController@index'); + + // ------------------------ + // Image Controller + + Route::get('images/{date?}', 'ImageController@index'); + }); +}); diff --git a/server.php b/server.php old mode 100755 new mode 100644 index 5f187f3..5fb6379 --- a/server.php +++ b/server.php @@ -1,19 +1,21 @@ + */ -$uri = urldecode($uri); - -$paths = require __DIR__.'/bootstrap/paths.php'; - -$requested = $paths['public'].$uri; +$uri = urldecode( + parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) +); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. -if ($uri !== '/' and file_exists($requested)) -{ - return false; +if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { + return false; } -require_once $paths['public'].'/index.php'; +require_once __DIR__.'/public/index.php'; diff --git a/storage/app/.gitignore b/storage/app/.gitignore new file mode 100644 index 0000000..8f4803c --- /dev/null +++ b/storage/app/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore new file mode 100644 index 0000000..b02b700 --- /dev/null +++ b/storage/framework/.gitignore @@ -0,0 +1,8 @@ +config.php +routes.php +schedule-* +compiled.php +services.json +events.scanned.php +routes.scanned.php +down diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..547152f --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,22 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..486dc27 --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,23 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/webpack.mix.js b/webpack.mix.js new file mode 100644 index 0000000..3e6f571 --- /dev/null +++ b/webpack.mix.js @@ -0,0 +1,15 @@ +const { mix } = require('laravel-mix'); + +/* + |-------------------------------------------------------------------------- + | Mix Asset Management + |-------------------------------------------------------------------------- + | + | Mix provides a clean, fluent API for defining some Webpack build steps + | for your Laravel application. By default, we are compiling the Sass + | file for the application as well as bundling up all the JS files. + | + */ + +mix.js('resources/assets/js/app.js', 'public/js') + .sass('resources/assets/sass/app.scss', 'public/css');