Merge branch 'v5-develop' into email_refactor

This commit is contained in:
David Bomba 2023-03-08 16:18:15 +11:00
commit b582f489c4
19 changed files with 56800 additions and 56808 deletions

View File

@ -1 +1 @@
5.5.81
5.5.83

View File

@ -20,82 +20,102 @@ class ClientRegistrationFields
[
'key' => 'first_name',
'required' => true,
'visible' => true,
],
[
'key' => 'last_name',
'required' => true,
'visible' => true,
],
[
'key' => 'email',
'required' => true,
'visible' => true,
],
[
'key' => 'phone',
'required' => false,
'visible' => true,
],
[
'key' => 'password',
'required' => true,
'visible' => true,
],
[
'key' => 'name',
'required' => false,
'visible' => false,
],
[
'key' => 'website',
'required' => false,
'visible' => false,
],
[
'key' => 'address1',
'required' => false,
'visible' => false,
],
[
'key' => 'address2',
'required' => false,
'visible' => false,
],
[
'key' => 'city',
'required' => false,
'visible' => false,
],
[
'key' => 'state',
'required' => false,
'visible' => false,
],
[
'key' => 'postal_code',
'required' => false,
'visible' => false,
],
[
'key' => 'country_id',
'required' => false,
'visible' => false,
],
[
'key' => 'custom_value1',
'required' => false,
'visible' => false,
],
[
'key' => 'custom_value2',
'required' => false,
'visible' => false,
],
[
'key' => 'custom_value3',
'required' => false,
'visible' => false,
],
[
'key' => 'custom_value4',
'required' => false,
'visible' => false,
],
[
'key' => 'public_notes',
'required' => false,
'visible' => false,
],
[
'key' => 'vat_number',
'required' => false,
'visible' => false,
],
[
'key' => 'currency_id',
'required' => false,
'visible' => false,
],
];

View File

@ -89,6 +89,9 @@ class ClientSettings extends BaseSettings
return $company_settings;
}
if(is_array($client_settings))
$client_settings = (object)$client_settings;
foreach ($company_settings as $key => $value) {
/* pseudo code
if the property exists and is a string BUT has no length, treat it as TRUE

View File

@ -40,8 +40,8 @@ class RegisterRequest extends FormRequest
$rules = [];
foreach ($this->company()->client_registration_fields as $field) {
if ($field['required']) {
$rules[$field['key']] = ['bail','required'];
if ($field['visible']) {
$rules[$field['key']] = $field['required'] ? ['bail','required'] : ['sometimes'];
}
}

View File

@ -53,7 +53,7 @@
"halaxa/json-machine": "^0.7.0",
"hashids/hashids": "^4.0",
"hedii/laravel-gelf-logger": "^7.0",
"imdhemy/laravel-purchases": "^0.10.3",
"imdhemy/laravel-purchases": "^1.7",
"intervention/image": "^2.5",
"invoiceninja/inspector": "^1.0",
"laracasts/presenter": "^0.2.1",
@ -98,7 +98,6 @@
"barryvdh/laravel-ide-helper": "^2.13",
"beyondcode/laravel-query-detector": "^1.6",
"brianium/paratest": "^6.1",
"darkaonline/l5-swagger": "8.1.0",
"fakerphp/faker": "^1.14",
"filp/whoops": "^2.7",
"friendsofphp/php-cs-fixer": "^3.14",

185
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "dc1556128221db2e30f3d3b21f4f276e",
"content-hash": "440f7b49dc043f645d8ab14c097589ac",
"packages": [
{
"name": "afosto/yaac",
@ -380,16 +380,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.261.4",
"version": "3.261.6",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "31bc1e2a528c0f0881e4366d8ee0fa729cd42b00"
"reference": "63b03ec821473861af58439f1a35173e904d0f8c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/31bc1e2a528c0f0881e4366d8ee0fa729cd42b00",
"reference": "31bc1e2a528c0f0881e4366d8ee0fa729cd42b00",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/63b03ec821473861af58439f1a35173e904d0f8c",
"reference": "63b03ec821473861af58439f1a35173e904d0f8c",
"shasum": ""
},
"require": {
@ -468,9 +468,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.261.4"
"source": "https://github.com/aws/aws-sdk-php/tree/3.261.6"
},
"time": "2023-03-03T19:22:53+00:00"
"time": "2023-03-07T19:21:12+00:00"
},
{
"name": "bacon/bacon-qr-code",
@ -3046,29 +3046,34 @@
},
{
"name": "imdhemy/appstore-iap",
"version": "0.3.11",
"version": "1.5.4",
"source": {
"type": "git",
"url": "https://github.com/imdhemy/appstore-iap.git",
"reference": "f1400b7df2e003f8be0ef2f3fa267f7fbb2b69a5"
"reference": "319253eecb8844fef07848917383d9b4aa9ba2c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/f1400b7df2e003f8be0ef2f3fa267f7fbb2b69a5",
"reference": "f1400b7df2e003f8be0ef2f3fa267f7fbb2b69a5",
"url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/319253eecb8844fef07848917383d9b4aa9ba2c6",
"reference": "319253eecb8844fef07848917383d9b4aa9ba2c6",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/guzzle": "^6.0|^7.0",
"nesbot/carbon": "^2.41"
"ext-openssl": "*",
"ext-sodium": "*",
"guzzlehttp/guzzle": "^6.5|^7.4",
"lcobucci/jwt": "^4.2",
"nesbot/carbon": "^2.64",
"php": ">=7.4"
},
"require-dev": {
"fakerphp/faker": "^1.14",
"friendsofphp/php-cs-fixer": "^2.16",
"phpunit/phpunit": "^8.5",
"symfony/var-dumper": "^5.1",
"vimeo/psalm": "^3.17"
"fakerphp/faker": "^1.15",
"friendsofphp/php-cs-fixer": "^3.0",
"phpunit/phpunit": "^9.5",
"roave/security-advisories": "dev-latest",
"symfony/var-dumper": "^5.3",
"vimeo/psalm": "^5.1"
},
"type": "library",
"autoload": {
@ -3078,7 +3083,7 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
"MIT"
],
"authors": [
{
@ -3089,37 +3094,38 @@
"description": "PHP Appstore In-App Purchase implementation",
"support": {
"issues": "https://github.com/imdhemy/appstore-iap/issues",
"source": "https://github.com/imdhemy/appstore-iap/tree/0.3.11"
"source": "https://github.com/imdhemy/appstore-iap/tree/1.5.4"
},
"time": "2021-05-15T06:44:10+00:00"
"time": "2022-12-11T10:53:59+00:00"
},
{
"name": "imdhemy/google-play-billing",
"version": "0.6.4",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/imdhemy/google-play-billing.git",
"reference": "957ec1a17db844ee74b1ad71252d2fbd489ab033"
"reference": "803b3357dfa31f89d062dbe757e10a482e262a35"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/imdhemy/google-play-billing/zipball/957ec1a17db844ee74b1ad71252d2fbd489ab033",
"reference": "957ec1a17db844ee74b1ad71252d2fbd489ab033",
"url": "https://api.github.com/repos/imdhemy/google-play-billing/zipball/803b3357dfa31f89d062dbe757e10a482e262a35",
"reference": "803b3357dfa31f89d062dbe757e10a482e262a35",
"shasum": ""
},
"require": {
"ext-json": "*",
"google/auth": "^1.15",
"guzzlehttp/guzzle": "^6.0|^7.0",
"guzzlehttp/guzzle": "^6.5|^7.4",
"nesbot/carbon": "^2.41",
"php": ">=7.1"
"php": ">=7.4"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.16",
"fzaninotto/faker": "^1.9",
"phpunit/phpunit": "^8.5",
"symfony/var-dumper": "^5.1",
"vimeo/psalm": "^3.17"
"fakerphp/faker": "^1.16",
"friendsofphp/php-cs-fixer": "^3.2",
"phpunit/phpunit": "^9.5",
"roave/security-advisories": "dev-latest",
"symfony/var-dumper": "^5.3",
"vimeo/psalm": "^4.12"
},
"type": "library",
"autoload": {
@ -3128,6 +3134,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "imdhemy",
@ -3137,43 +3146,44 @@
"description": "Google Play Billing",
"support": {
"issues": "https://github.com/imdhemy/google-play-billing/issues",
"source": "https://github.com/imdhemy/google-play-billing/tree/0.6.4"
"source": "https://github.com/imdhemy/google-play-billing/tree/1.3.1"
},
"time": "2021-10-16T09:50:02+00:00"
"time": "2022-12-09T09:08:03+00:00"
},
{
"name": "imdhemy/laravel-purchases",
"version": "0.10.4",
"version": "1.7.2",
"source": {
"type": "git",
"url": "https://github.com/imdhemy/laravel-in-app-purchases.git",
"reference": "eb9a4d248a626cb6b7a59c9626726fd8534aec78"
"reference": "bc70dfdec89f000c4048ef3fb3527d2d2eee9cb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/eb9a4d248a626cb6b7a59c9626726fd8534aec78",
"reference": "eb9a4d248a626cb6b7a59c9626726fd8534aec78",
"url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/bc70dfdec89f000c4048ef3fb3527d2d2eee9cb3",
"reference": "bc70dfdec89f000c4048ef3fb3527d2d2eee9cb3",
"shasum": ""
},
"require": {
"ext-json": "*",
"imdhemy/appstore-iap": "^0.3",
"imdhemy/google-play-billing": "^0.6",
"nesbot/carbon": "^2.41",
"php": ">=7.1"
"ext-openssl": "*",
"imdhemy/appstore-iap": "^1.5",
"imdhemy/google-play-billing": "^1.2",
"laravel/framework": ">=8.0",
"php": ">=7.4"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.17",
"orchestra/testbench": "^5.0",
"phpunit/phpunit": "^8.5",
"psalm/plugin-laravel": "^1.2",
"vimeo/psalm": "^4.3"
"friendsofphp/php-cs-fixer": "^3.14",
"orchestra/testbench": "^6.24",
"psalm/plugin-laravel": "^1.5",
"roave/security-advisories": "dev-latest",
"vimeo/psalm": "^4.30"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Imdhemy\\Purchases\\PurchaseServiceProvider"
"Imdhemy\\Purchases\\ServiceProviders\\LiapServiceProvider"
],
"aliases": {
"Product": "\\Imdhemy\\Purchases\\Facades\\Product",
@ -3193,14 +3203,13 @@
"authors": [
{
"name": "imdhemy",
"email": "imdhemy@gmail.com",
"homepage": "http://dhemy.studio",
"role": "Developer"
"email": "imdhemy@gmail.com"
}
],
"description": "Laravel receipt validator for Google Play",
"homepage": "https://github.com/imdhemy/laravel-in-app-purchases",
"description": "The top-notch Laravel receipt validator.",
"homepage": "https://imdhemy.com/laravel-iap-docs",
"keywords": [
"app_store",
"google_play",
"in_app_purchases",
"laravel",
@ -3208,7 +3217,7 @@
],
"support": {
"issues": "https://github.com/imdhemy/laravel-in-app-purchases/issues",
"source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/0.10.4"
"source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/1.7.2"
},
"funding": [
{
@ -3216,7 +3225,7 @@
"type": "github"
}
],
"time": "2022-08-20T04:59:54+00:00"
"time": "2023-03-06T15:16:39+00:00"
},
{
"name": "intervention/image",
@ -8190,16 +8199,16 @@
},
{
"name": "sentry/sentry",
"version": "3.13.1",
"version": "3.14.0",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
"reference": "71c86fe4699a7f1a40c7d985f3dc7667045152f0"
"reference": "60dd3f74ab21cc2bf53f39bf7c342798bc185c23"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/71c86fe4699a7f1a40c7d985f3dc7667045152f0",
"reference": "71c86fe4699a7f1a40c7d985f3dc7667045152f0",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/60dd3f74ab21cc2bf53f39bf7c342798bc185c23",
"reference": "60dd3f74ab21cc2bf53f39bf7c342798bc185c23",
"shasum": ""
},
"require": {
@ -8257,7 +8266,7 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
"MIT"
],
"authors": [
{
@ -8278,7 +8287,7 @@
],
"support": {
"issues": "https://github.com/getsentry/sentry-php/issues",
"source": "https://github.com/getsentry/sentry-php/tree/3.13.1"
"source": "https://github.com/getsentry/sentry-php/tree/3.14.0"
},
"funding": [
{
@ -8290,7 +8299,7 @@
"type": "custom"
}
],
"time": "2023-02-10T10:17:57+00:00"
"time": "2023-03-05T21:31:25+00:00"
},
{
"name": "sentry/sentry-laravel",
@ -12167,16 +12176,16 @@
},
{
"name": "turbo124/beacon",
"version": "v1.4.3",
"version": "v1.4.4",
"source": {
"type": "git",
"url": "https://github.com/turbo124/beacon.git",
"reference": "4df55a8f7373fc9dfeed9abf8753e739398b8efc"
"reference": "b300e2d900b0affa8d95e697925e6053fdd884b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/turbo124/beacon/zipball/4df55a8f7373fc9dfeed9abf8753e739398b8efc",
"reference": "4df55a8f7373fc9dfeed9abf8753e739398b8efc",
"url": "https://api.github.com/repos/turbo124/beacon/zipball/b300e2d900b0affa8d95e697925e6053fdd884b0",
"reference": "b300e2d900b0affa8d95e697925e6053fdd884b0",
"shasum": ""
},
"require": {
@ -12223,9 +12232,9 @@
"turbo124"
],
"support": {
"source": "https://github.com/turbo124/beacon/tree/v1.4.3"
"source": "https://github.com/turbo124/beacon/tree/v1.4.4"
},
"time": "2023-03-06T06:00:33+00:00"
"time": "2023-03-07T08:03:27+00:00"
},
{
"name": "turbo124/predis",
@ -14016,16 +14025,16 @@
},
{
"name": "filp/whoops",
"version": "2.15.0",
"version": "2.15.1",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "3e8aebbca9f0ae6f618962c4ad514077fd365ab3"
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/3e8aebbca9f0ae6f618962c4ad514077fd365ab3",
"reference": "3e8aebbca9f0ae6f618962c4ad514077fd365ab3",
"url": "https://api.github.com/repos/filp/whoops/zipball/e864ac957acd66e1565f25efda61e37791a5db0b",
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b",
"shasum": ""
},
"require": {
@ -14075,7 +14084,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
"source": "https://github.com/filp/whoops/tree/2.15.0"
"source": "https://github.com/filp/whoops/tree/2.15.1"
},
"funding": [
{
@ -14083,7 +14092,7 @@
"type": "github"
}
],
"time": "2023-03-03T12:00:00+00:00"
"time": "2023-03-06T18:09:13+00:00"
},
{
"name": "friendsofphp/php-cs-fixer",
@ -15091,16 +15100,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.10.3",
"version": "1.10.5",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "5419375b5891add97dc74be71e6c1c34baaddf64"
"reference": "1fb6f494d82455151ecf15c5c191923f5d84324e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/5419375b5891add97dc74be71e6c1c34baaddf64",
"reference": "5419375b5891add97dc74be71e6c1c34baaddf64",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/1fb6f494d82455151ecf15c5c191923f5d84324e",
"reference": "1fb6f494d82455151ecf15c5c191923f5d84324e",
"shasum": ""
},
"require": {
@ -15130,7 +15139,7 @@
],
"support": {
"issues": "https://github.com/phpstan/phpstan/issues",
"source": "https://github.com/phpstan/phpstan/tree/1.10.3"
"source": "https://github.com/phpstan/phpstan/tree/1.10.5"
},
"funding": [
{
@ -15146,20 +15155,20 @@
"type": "tidelift"
}
],
"time": "2023-02-25T14:47:13+00:00"
"time": "2023-03-07T16:48:45+00:00"
},
{
"name": "phpunit/php-code-coverage",
"version": "9.2.25",
"version": "9.2.26",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "0e2b40518197a8c0d4b08bc34dfff1c99c508954"
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0e2b40518197a8c0d4b08bc34dfff1c99c508954",
"reference": "0e2b40518197a8c0d4b08bc34dfff1c99c508954",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
"reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
"shasum": ""
},
"require": {
@ -15181,8 +15190,8 @@
"phpunit/phpunit": "^9.3"
},
"suggest": {
"ext-pcov": "*",
"ext-xdebug": "*"
"ext-pcov": "PHP extension that provides line coverage",
"ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"type": "library",
"extra": {
@ -15215,7 +15224,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.25"
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26"
},
"funding": [
{
@ -15223,7 +15232,7 @@
"type": "github"
}
],
"time": "2023-02-25T05:32:00+00:00"
"time": "2023-03-06T12:58:08+00:00"
},
{
"name": "phpunit/php-file-iterator",

View File

@ -1,198 +0,0 @@
<?php
return [
'default' => 'default',
'documentations' => [
'default' => [
'api' => [
'title' => 'L5 Swagger UI',
],
'routes' => [
/*
* Route for accessing api documentation interface
*/
'api' => 'api/documentation',
],
'paths' => [
/*
* File name of the generated json documentation file
*/
'docs_json' => 'api-docs.json',
/*
* File name of the generated YAML documentation file
*/
'docs_yaml' => 'api-docs.yaml',
/*
* Absolute paths to directory containing the swagger annotations are stored.
*/
'annotations' => [
base_path('app'),
],
],
],
],
'defaults' => [
'routes' => [
/*
* Route for accessing parsed swagger annotations.
*/
'docs' => 'swagger-docs-that-should-be-inaccessible',
/*
* Route for Oauth2 authentication callback.
*/
'oauth2_callback' => 'api/oauth2-callback',
/*
* Middleware allows to prevent unexpected access to API documentation
*/
'middleware' => [
'api' => [],
'asset' => [],
'docs' => [],
'oauth2_callback' => [],
],
/*
* Route Group options
*/
'group_options' => [],
],
'paths' => [
/*
* Absolute path to location where parsed annotations will be stored
*/
'docs' => storage_path('api-docs'),
/*
* Absolute path to directory where to export views
*/
'views' => base_path('resources/views/vendor/l5-swagger'),
/*
* Edit to set the api's base path
*/
'base' => env('L5_SWAGGER_BASE_PATH', null),
/*
* Edit to set path where swagger ui assets should be stored
*/
'swagger_ui_assets_path' => env('L5_SWAGGER_UI_ASSETS_PATH', 'vendor/swagger-api/swagger-ui/dist/'),
/*
* Absolute path to directories that should be exclude from scanning
*/
'excludes' => [],
],
/*
* API security definitions. Will be generated into documentation file.
*/
'securityDefinitions' => [
'securitySchemes' => [
/*
* Examples of Security schemes
*/
/*
'api_key_security_example' => [ // Unique name of security
'type' => 'apiKey', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
'description' => 'A short description for security scheme',
'name' => 'api_key', // The name of the header or query parameter to be used.
'in' => 'header', // The location of the API key. Valid values are "query" or "header".
],
'oauth2_security_example' => [ // Unique name of security
'type' => 'oauth2', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
'description' => 'A short description for oauth2 security scheme.',
'flow' => 'implicit', // The flow used by the OAuth2 security scheme. Valid values are "implicit", "password", "application" or "accessCode".
'authorizationUrl' => 'http://example.com/auth', // The authorization URL to be used for (implicit/accessCode)
//'tokenUrl' => 'http://example.com/auth' // The authorization URL to be used for (password/application/accessCode)
'scopes' => [
'read:projects' => 'read your projects',
'write:projects' => 'modify projects in your account',
]
],
*/
/* Open API 3.0 support
'passport' => [ // Unique name of security
'type' => 'oauth2', // The type of the security scheme. Valid values are "basic", "apiKey" or "oauth2".
'description' => 'Laravel passport oauth2 security.',
'in' => 'header',
'scheme' => 'https',
'flows' => [
"password" => [
"authorizationUrl" => config('app.url') . '/oauth/authorize',
"tokenUrl" => config('app.url') . '/oauth/token',
"refreshUrl" => config('app.url') . '/token/refresh',
"scopes" => []
],
],
],
*/
],
'security' => [
/*
* Examples of Securities
*/
[
/*
'oauth2_security_example' => [
'read',
'write'
],
'passport' => []
*/
],
],
],
/*
* Set this to `true` in development mode so that docs would be regenerated on each request
* Set this to `false` to disable swagger generation on production
*/
'generate_always' => env('L5_SWAGGER_GENERATE_ALWAYS', false),
/*
* Set this to `true` to generate a copy of documentation in yaml format
*/
'generate_yaml_copy' => env('L5_SWAGGER_GENERATE_YAML_COPY', true),
/*
* Edit to trust the proxy's ip address - needed for AWS Load Balancer
* string[]
*/
'proxy' => false,
/*
* Configs plugin allows to fetch external configs instead of passing them to SwaggerUIBundle.
* See more at: https://github.com/swagger-api/swagger-ui#configs-plugin
*/
'additional_config_url' => null,
/*
* Apply a sort to the operation list of each API. It can be 'alpha' (sort by paths alphanumerically),
* 'method' (sort by HTTP method).
* Default is the order returned by the server unchanged.
*/
'operations_sort' => env('L5_SWAGGER_OPERATIONS_SORT', null),
/*
* Pass the validatorUrl parameter to SwaggerUi init on the JS side.
* A null value here disables validation.
*/
'validator_url' => null,
/*
* Uncomment to add constants which can be used in annotations
*/
// 'constants' => [
// 'L5_SWAGGER_CONST_HOST' => env('L5_SWAGGER_CONST_HOST', 'http://my-default-host.com'),
// ],
],
];

116
config/liap.php Normal file
View File

@ -0,0 +1,116 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Routing configuration
|--------------------------------------------------------------------------
|
| This configuration is used to determine the routing behavior of the
| Server notifications handler endpoint.
|
| You can find more information on documentation.
| @see https://imdhemy.com/laravel-iap-docs/docs/get-started/routing
*/
'routing' => [
'signed' => false,
'middleware' => [],
'prefix' => '',
],
/*
|--------------------------------------------------------------------------
| Google Play Default Package name
|--------------------------------------------------------------------------
|
| This value is the default package name used when the package name is not
| provided while verifying the receipts.
|
*/
'google_play_package_name' => env('GOOGLE_PLAY_PACKAGE_NAME', 'com.invoiceninja.app'),
/*
|--------------------------------------------------------------------------
| Google Application Credentials
|--------------------------------------------------------------------------
|
| This value is the path to the Google Application Credentials file.
| @see https://imdhemy.com/laravel-iap-docs/docs/credentials/google-play
|
*/
'google_application_credentials' => env('GOOGLE_APPLICATION_CREDENTIALS',false),
/*
|--------------------------------------------------------------------------
| App Store Password
|--------------------------------------------------------------------------
|
| This value is the app-specific share password generated by the app store.
| @see https://imdhemy.com/laravel-iap-docs/docs/credentials/app-store
|
*/
'appstore_password' => env('APPSTORE_PASSWORD', ''),
/*
|--------------------------------------------------------------------------
| Event Listeners
|--------------------------------------------------------------------------
|
| This configuration is used to determine the event listeners that will be
| registered with the application.
| You can find a list of all available events of the documentation
|
| @see https://imdhemy.com/laravel-iap-docs/docs/server-notifications/event-list
| @see https://imdhemy.com/laravel-iap-docs/docs/get-started/event-listeners
|
*/
'eventListeners' => [
/*
|--------------------------------------------------------------------------
| App Store Events
|--------------------------------------------------------------------------
|
| These event listeners are triggered when a new notification is received from App Store.
| @see https://imdhemy.com/laravel-iap-docs/docs/server-notifications/event-list#app-store-events
|
*/
/* \Imdhemy\Purchases\Events\AppStore\Cancel::class => [
\App\Listeners\AppStore\Cancel::class,
],*/
/*
|--------------------------------------------------------------------------
| Google Play Events
|--------------------------------------------------------------------------
|
| These event listeners are triggered when a new notification is received from Google Play
| @see @see https://imdhemy.com/laravel-iap-docs/docs/server-notifications/event-list#google-play-events
*/
/* \Imdhemy\Purchases\Events\GooglePlay\SubscriptionRecovered::class => [
\App\Listeners\GooglePlay\SubscriptionRecovered::class,
],*/
SubscriptionRenewed::class => [PlayStoreRenewSubscription::class],
DidRenew::class => [AppStoreRenewSubscription::class],
],
/*
| --------------------------------------------------------------------------
| App store JWT configuration
| --------------------------------------------------------------------------
|
| The following configuration is used to generate the JWT token used to
| authenticate with the App Store server.
*/
// Your private key ID from App Store Connect (Ex: 2X9R4HXF34)
'appstore_private_key_id' => env('APPSTORE_PRIVATE_KEY_ID'),
// The path to your private key file (Ex: /path/to/SuperSecretKey_ABC123.p8)
'appstore_private_key' => env('APPSTORE_PRIVATE_KEY'),
// Your issuer ID from the Keys page in App Store Connect (Ex: "57246542-96fe-1a63-e053-0824d011072a")
'appstore_issuer_id' => env('APPSTORE_ISSUER_ID'),
// Your apps bundle ID (Ex: “com.example.testbundleid2021”)
'appstore_bundle_id' => env('APPSTORE_BUNDLE_ID'),
];

View File

@ -14,8 +14,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
'app_version' => '5.5.82',
'app_tag' => '5.5.82',
'app_version' => '5.5.83',
'app_tag' => '5.5.83',
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', ''),
@ -213,4 +213,5 @@ return [
'config_name' => env("YODLEE_CONFIG_NAME", false),
],
'licenses' => env('LICENSES',false),
'google_service_account' => env('GOOGLE_APPLICATION_CREDENTIALS', false),
];

View File

@ -1,74 +0,0 @@
<?php
use Imdhemy\Purchases\Events\AppStore\Cancel;
use Imdhemy\Purchases\Events\AppStore\Refund;
use Imdhemy\Purchases\Events\AppStore\Revoke;
use Imdhemy\Purchases\Events\AppStore\DidRenew;
use Imdhemy\Purchases\Events\AppStore\DidRecover;
use Imdhemy\Purchases\Events\AppStore\InitialBuy;
use Imdhemy\Purchases\Events\AppStore\DidFailToRenew;
use App\Listeners\Subscription\AppStoreRenewSubscription;
use Imdhemy\Purchases\Events\AppStore\InteractiveRenewal;
use App\Listeners\Subscription\PlayStoreRenewSubscription;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalPref;
use Imdhemy\Purchases\Events\AppStore\PriceIncreaseConsent;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionOnHold;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPaused;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionExpired;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRenewed;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRevoked;
use Imdhemy\Purchases\Events\AppStore\DidChangeRenewalStatus;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionCanceled;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionDeferred;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPurchased;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRecovered;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionRestarted;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionInGracePeriod;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPauseScheduleChanged;
use Imdhemy\Purchases\Events\GooglePlay\SubscriptionPriceChangeConfirmed;
return [
'routing' => [],
'google_play_package_name' => env('GOOGLE_PLAY_PACKAGE_NAME', 'com.invoiceninja.app'),
'appstore_password' => env('APPSTORE_PASSWORD', ''),
'eventListeners' => [
/**
* --------------------------------------------------------
* Google Play Events
* --------------------------------------------------------
*/
SubscriptionPurchased::class => [],
SubscriptionRenewed::class => [PlayStoreRenewSubscription::class],
SubscriptionInGracePeriod::class => [],
SubscriptionExpired::class => [],
SubscriptionCanceled::class => [],
SubscriptionPaused::class => [],
SubscriptionRestarted::class => [],
SubscriptionDeferred::class => [],
SubscriptionRevoked::class => [],
SubscriptionOnHold::class => [],
SubscriptionRecovered::class => [],
SubscriptionPauseScheduleChanged::class => [],
SubscriptionPriceChangeConfirmed::class => [],
/**
* --------------------------------------------------------
* Appstore Events
* --------------------------------------------------------
*/
Cancel::class => [],
DidChangeRenewalPref::class => [],
DidChangeRenewalStatus::class => [],
DidFailToRenew::class => [],
DidRecover::class => [],
DidRenew::class => [AppStoreRenewSubscription::class],
InitialBuy::class => [],
InteractiveRenewal::class => [],
PriceIncreaseConsent::class => [],
Refund::class => [],
Revoke::class => [],
],
];

View File

@ -0,0 +1,46 @@
<?php
use App\DataMapper\ClientRegistrationFields;
use App\Models\Company;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Company::query()->cursor()->each(function ($company){
$crfs = $company->client_registration_fields;
if(!$crfs) {
$crfs = ClientRegistrationFields::generate();
}
foreach($crfs as $key => $crf)
{
$crfs[$key]['visible'] = $crfs[$key]['required'];
}
$company->client_registration_fields = $crfs;
$company->save();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
};

View File

@ -42,7 +42,9 @@ class DateFormatsSeeder extends Seeder
foreach ($formats as $format) {
// use binary to support case-sensitive search
$record = DateFormat::whereRaw('BINARY `format`= ?', [$format['format']])->first();
// $record = DateFormat::whereRaw('BINARY `format`= ?', [$format['format']])->first();
$record = DateFormat::find($format['id']);
if ($record) {
$record->format_moment = $format['format_moment'];
$record->format_dart = $format['format_dart'];
@ -71,7 +73,10 @@ class DateFormatsSeeder extends Seeder
];
foreach ($formats as $format) {
$record = DatetimeFormat::whereRaw('BINARY `format`= ?', [$format['format']])->first();
// $record = DatetimeFormat::whereRaw('BINARY `format`= ?', [$format['format']])->first();
$record = DatetimeFormat::find($format['id']);
if ($record) {
$record->format_moment = $format['format_moment'];
$record->format_dart = $format['format_dart'];

View File

@ -297,8 +297,8 @@ const RESOURCES = {
"assets/NOTICES": "b6ef5cf9eac9b8ae3f08bcf37ba466fd",
"assets/fonts/MaterialIcons-Regular.otf": "e7069dfd19b331be16bed984668fe080",
"assets/AssetManifest.json": "759f9ef9973f7e26c2a51450b55bb9fa",
"/": "83122341d97d0de7c7dd682dd3b47d00",
"main.dart.js": "11cf39dcdfe1f0a98d5f906b5bd5d809",
"/": "f636830cc0756ba84462e1d77607190c",
"main.dart.js": "d5c253b91d5b1143823e53e25e248800",
"icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35",
"icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed"
};

57796
public/main.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

55000
public/main.foss.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,7 @@
<div class="grid grid-cols-12 gap-4 mt-10">
@if($register_company->client_registration_fields)
@foreach($register_company->client_registration_fields as $field)
@if($field['required'])
@if($field['visible'])
<div class="col-span-12 md:col-span-6">
<section class="flex items-center">
<label