diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml
index 14da349..ca2197d 100644
--- a/.github/workflows/dependabot-auto-merge.yml
+++ b/.github/workflows/dependabot-auto-merge.yml
@@ -13,7 +13,7 @@ jobs:
- name: Dependabot metadata
id: metadata
- uses: dependabot/fetch-metadata@v1.3.3
+ uses: dependabot/fetch-metadata@v1.6.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/fix-php-code-style-issues.yml b/.github/workflows/fix-php-code-style-issues.yml
index 9a784a1..e8ff1c6 100644
--- a/.github/workflows/fix-php-code-style-issues.yml
+++ b/.github/workflows/fix-php-code-style-issues.yml
@@ -8,14 +8,14 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Fix PHP code style issues
- uses: aglipanci/laravel-pint-action@0.1.0
+ uses: aglipanci/laravel-pint-action@2.6
- name: Commit changes
- uses: stefanzweifel/git-auto-commit-action@v4
+ uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Fix styling
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
index 557d263..ccfa9d9 100644
--- a/.github/workflows/phpstan.yml
+++ b/.github/workflows/phpstan.yml
@@ -11,7 +11,7 @@ jobs:
name: phpstan
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -20,7 +20,7 @@ jobs:
coverage: none
- name: Install composer dependencies
- uses: ramsey/composer-install@v1
+ uses: ramsey/composer-install@v2
- name: Run PHPStan
run: ./vendor/bin/phpstan --error-format=github
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 39ff7ee..bdeac46 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -13,18 +13,23 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest]
- php: [8.1]
- laravel: [9.*]
+ php: [8.1, 8.2]
+ laravel: [9.*, 10.*]
stability: [prefer-lowest, prefer-stable]
include:
- laravel: 9.*
testbench: 7.*
+ - laravel: 10.*
+ testbench: 8.*
+ exclude:
+ - laravel: 9.*
+ php: 8.2
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml
index b20f3b6..0cdea23 100644
--- a/.github/workflows/update-changelog.yml
+++ b/.github/workflows/update-changelog.yml
@@ -10,7 +10,7 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
ref: main
@@ -21,7 +21,7 @@ jobs:
release-notes: ${{ github.event.release.body }}
- name: Commit updated CHANGELOG
- uses: stefanzweifel/git-auto-commit-action@v4
+ uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: main
commit_message: Update CHANGELOG
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9450de1..f9ccd38 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,52 @@
# Changelog
All notable changes to `laravel-csv` will be documented in this file.
+
+## v1.1.1 - 2022-11-07
+
+### What's Changed
+
+- Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 by @dependabot in https://github.com/coderflexx/laravel-csv/pull/13
+- Update csv-importer.blade.php by @Globerada in https://github.com/coderflexx/laravel-csv/pull/12
+
+### New Contributors
+
+- @Globerada made their first contribution in https://github.com/coderflexx/laravel-csv/pull/12
+
+**Full Changelog**: https://github.com/coderflexx/laravel-csv/compare/v1.1.0...v1.1.1
+
+## v1.1.0 - 2022-10-12
+
+### What's Changed
+
+- Update README.md by @askdkc in https://github.com/coderflexx/laravel-csv/pull/9
+- Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4 by @dependabot in https://github.com/coderflexx/laravel-csv/pull/10
+- Fixed vendor:publish tag name by @askdkc in https://github.com/coderflexx/laravel-csv/pull/11
+
+### New Contributors
+
+- @dependabot made their first contribution in https://github.com/coderflexx/laravel-csv/pull/10
+
+**Full Changelog**: https://github.com/coderflexx/laravel-csv/compare/v1.0.2...v1.1.0
+
+## v1.0.2 - 2022-09-29
+
+### What's Changed
+
+- Bug Fix: package installation failure by @askdkc in https://github.com/coderflexx/laravel-csv/pull/5
+
+**Full Changelog**: https://github.com/coderflexx/laravel-csv/compare/v1.0.1...v1.0.2
+
+## v1.0.1 - 2022-09-28
+
+### What's Changed
+
+- Copy changes for README by @johnwesely in https://github.com/coderflexx/laravel-csv/pull/2
+- Fixed broken link by @askdkc in https://github.com/coderflexx/laravel-csv/pull/3
+
+### New Contributors
+
+- @johnwesely made their first contribution in https://github.com/coderflexx/laravel-csv/pull/2
+- @askdkc made their first contribution in https://github.com/coderflexx/laravel-csv/pull/3
+
+**Full Changelog**: https://github.com/coderflexx/laravel-csv/compare/v1.0.0...v1.0.1
diff --git a/README.md b/README.md
index e3461a8..e29f32c 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,10 @@
-[](https://packagist.org/packages/coderflexx/laravel-csv)
-[](https://github.com/coderflexx/laravel-csv/actions?query=workflow%3Arun-tests+branch%3Amain)
-[](https://github.com/coderflexx/laravel-csv/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
-[](https://packagist.org/packages/coderflexx/laravel-csv)
+[](https://packagist.org/packages/coderflex/laravel-csv)
+[](https://github.com/coderflexx/laravel-csv/actions?query=workflow%3Arun-tests+branch%3Amain)
+[](https://github.com/coderflexx/laravel-csv/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
+[](https://packagist.org/packages/coderflex/laravel-csv)
- [Introduction](#introduction)
@@ -27,7 +27,7 @@
- [License](#license)
## Introduction
-__Laravel CSV__ Package is a package created on top of Laravel [livewire](https://laravel-livewire.com) package, and it handles importing thousands of records without any issues.
+__Laravel CSV__ Package is a package created on top of Laravel [livewire](https://laravel-livewire.com) for easily handling imports with a simple API.
## Installation
@@ -39,20 +39,22 @@ composer require coderflex/laravel-csv
## Configuration
-You can publish and run the migrations with:
+Publish and run the migrations with:
```bash
php artisan vendor:publish --tag="csv-migrations"
php artisan migrate
```
-You can publish the config file with:
+Add trait **HasCsvImports** to your User model.
+
+Publish the config file with:
```bash
php artisan vendor:publish --tag="csv-config"
```
-This is the contents of the published config file:
+The following is the contents of the published config file:
```php
@@ -63,10 +65,8 @@ return [
| Default Layout
|--------------------------------------------------------------------------
|
- | This package came with multiple layouts to serve your need, and
- | currently it supports "tailwindcss" and "bootstrap", by default
- | the layout is tailwind.
- | currently support: "tailwindcss", "bootstrap"
+ | This package plans on supporting multiple CSS frameworks.
+ | Currently, 'tailwindcss' is the default and only supported framework.
|
*/
'layout' => 'tailwindcss',
@@ -76,33 +76,31 @@ return [
| Max Upload File Size
|--------------------------------------------------------------------------
|
- | This package came with file validation for uploaded files,
- | and by default the file should not be greater than 20MB. If
- | you wish to increase/decrease this value, you may change the
- | value below.
- | Note that the value is defined by "KB".
+ | The default maximumum file size that can be imported by this
+ | package is 20MB. If you wish to increase/decrease this value,
+ | change the value in KB below.
|
*/
'file_upload_size' => 20000,
];
```
-The `layout` option is for choosing which CSS Framework you are using, currently supports only `tailwindcss`, and we're working on other CSS frameworks to implement in the future.
+The `layout` option is for choosing which CSS framework you are using and currently supports only `tailwindcss`. We are working on other CSS frameworks to implement in the future.
-The `file_upload_size` is for validation rules, and it helps define the file size of the uploaded files, or. You can define this one from [livewire config](https://github.com/livewire/livewire/blob/master/config/livewire.php#L100) file.
+The `file_upload_size` is for validation rules, and it defines the maximum file size of uploaded files. You may also define this value from the [livewire config](https://github.com/livewire/livewire/blob/master/config/livewire.php#L100) file.
Optionally, you can publish the views using
```bash
-php artisan vendor:publish --tag="csv-views"
+php artisan vendor:publish --tag="laravel-csv-views"
```
-> Before Using this command, please take a look at this [section](in-tall-stack-project) below.
+> Before Using this command, please take a look at this [section](#in-tall-stack-project) below.
## Usage
### CSV Importer Component
-Using this package, is really simple, all what you need to do is implementing the component inside your desired file.
+Using this package is a breeze. To implement the importer in your project, simply include the following component inside a Blade view.
```blade
Import
```
-If you want to style it, you can use the `class` attribute, or any attribute you want really
+To style the button, use the `class` attribute with Tailwind utility classes.
```blade
```
### In TALL stack project
-If you are using this package in a [TALL Stack]() project, (Tailwindcss, Alpinejs, Laravel, Livewire) All what you need to do is publish the vendor views
+If you are using this package in a [TALL Stack](https://tallstack.dev/) project, (Tailwindcss, Alpinejs, Laravel, Livewire) publish the vendor views to include Laravel-CSV in your project.
```bash
php artisan vendor:publish --tag="csv-views"
```
-Then compile your assets, to add the additional classes, came with the component.
+Then compile your assets.
```bash
npm run dev
```
### In none TALL Stack project
-If you are not using the TALL Stack by default, you may use the `csv directives` to add the necessary styles/scripts
+If you are not using the TALL Stack, use the `csv directives` to add the necessary styles/scripts.
```blade
@@ -170,19 +168,19 @@ If you are not using the TALL Stack by default, you may use the `csv directives`
```
### Using Queues
-This package is using [queues](https://laravel.com/docs/9.x/queues#main-content), under the hood with [PHP Generators](https://www.php.net/manual/en/language.generators.overview.php), to make it works fast and efficient.
+This package uses [queues](https://laravel.com/docs/9.x/queues#main-content) under the hood with [PHP Generators](https://www.php.net/manual/en/language.generators.overview.php) to make it fast and efficient.
-You need first to create the `batches table`
+Create the `batches table` by running
```bash
php artisan queue:batches-table
```
-Then run the migration
+Then, run the migration.
```
php artisan migrate
```
-After that, you need to set up the queues' configuration.
-You may head into [Laravel Queues Documentation](https://laravel.com/docs/9.x/queues#main-content) to learn more.
+After that, set up the queues' configuration.
+Head to [Laravel Queues Documentation](https://laravel.com/docs/9.x/queues#main-content) to learn more.
## Testing
@@ -204,7 +202,7 @@ Please see [CONTRIBUTING](https://github.com/ousid/.github/blob/main/CONTRIBUTIN
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Inspiration
-This Package Was Inspired by [codecourse](https://codecourse.com) video series, and if you want to learn how this package was created, make sure to take a look at this [video series](https://codecourse.com/subjects/laravel-livewire)
+This Package Was Inspired by [codecourse](https://codecourse.com) video series. If you want to learn how this package was created, make sure to take a look at this [video series](https://codecourse.com/subjects/laravel-livewire)
## Credits
diff --git a/composer.json b/composer.json
index 083c2cc..5896bb2 100644
--- a/composer.json
+++ b/composer.json
@@ -18,23 +18,23 @@
],
"require": {
"php": "^8.1",
- "illuminate/contracts": "^9.0",
+ "illuminate/contracts": "^9.0|^10.0",
"league/csv": "^9.8",
"livewire/livewire": "^2.10",
"spatie/laravel-package-tools": "^1.9.2"
},
"require-dev": {
"laravel/pint": "^1.0",
- "nunomaduro/collision": "^6.0",
+ "nunomaduro/collision": "^6.0|^7.0",
"nunomaduro/larastan": "^2.0.1",
- "orchestra/testbench": "^7.0",
- "pestphp/pest": "^1.21",
+ "orchestra/testbench": "^7.0|^8.0",
+ "pestphp/pest": "^1.22",
"pestphp/pest-plugin-laravel": "^1.1",
"pestphp/pest-plugin-livewire": "^1.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^9.5|^10.0"
},
"autoload": {
"files": [
diff --git a/config/laravel_csv.php b/config/laravel_csv.php
index 54aebbb..ba0eaa8 100644
--- a/config/laravel_csv.php
+++ b/config/laravel_csv.php
@@ -7,10 +7,8 @@
| Default Layout
|--------------------------------------------------------------------------
|
- | This package came with multiple layouts to serve your need, and
- | currently it supports "tailwindcss" and "bootstrap", by default
- | the layout is tailwind.
- | currently support: "tailwindcss", "bootstrap"
+ | This package plans on supporting multiple CSS frameworks.
+ | Currently, 'tailwindcss' is the default and only supported framework.
|
*/
'layout' => 'tailwindcss',
@@ -20,11 +18,9 @@
| Max Upload File Size
|--------------------------------------------------------------------------
|
- | This package came with file validation for uploaded files,
- | and by default the file should not be greater than 20MB. If
- | you wish to increase/decrease this value, you may change the
- | value below.
- | Note that the value is defined by "KB".
+ | The default maximumum file size that can be imported by this
+ | package is 20MB. If you wish to increase/decrease this value,
+ | change the value in KB below.
|
*/
'file_upload_size' => 20000,
diff --git a/package-lock.json b/package-lock.json
index 1bd7e5a..22e063c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5278,9 +5278,9 @@
}
},
"node_modules/img-loader/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
@@ -5290,9 +5290,9 @@
}
},
"node_modules/img-loader/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -5597,9 +5597,9 @@
"dev": true
},
"node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
@@ -5747,9 +5747,9 @@
}
},
"node_modules/loader-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
- "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -8778,9 +8778,9 @@
}
},
"node_modules/vue-style-loader/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
@@ -8790,9 +8790,9 @@
}
},
"node_modules/vue-style-loader/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
@@ -8826,9 +8826,9 @@
}
},
"node_modules/webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.76.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz",
+ "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
@@ -13393,18 +13393,18 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -13626,9 +13626,9 @@
"dev": true
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
"jsonfile": {
@@ -13736,9 +13736,9 @@
"dev": true
},
"loader-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
- "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -15952,18 +15952,18 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -15993,9 +15993,9 @@
}
},
"webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "version": "5.76.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz",
+ "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.3",
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
index a91953b..fb14673 100644
--- a/phpstan.neon.dist
+++ b/phpstan.neon.dist
@@ -2,7 +2,7 @@ includes:
- phpstan-baseline.neon
parameters:
- level: 4
+ level: 6
paths:
- src
- config
@@ -11,4 +11,8 @@ parameters:
checkOctaneCompatibility: true
checkModelProperties: true
checkMissingIterableValueType: false
+ checkGenericClassInNonGenericObjectType: false
+ ignoreErrors:
+ - '#Internal error: Internal error: Target class \[laravel-csv\] does not exist.#'
+ - '#Internal error: Internal error: Target class \[livewire\] does not exist.#'
diff --git a/resources/views/livewire/tailwindcss/csv-importer.blade.php b/resources/views/livewire/tailwindcss/csv-importer.blade.php
index 7f2dcc7..b93ce34 100644
--- a/resources/views/livewire/tailwindcss/csv-importer.blade.php
+++ b/resources/views/livewire/tailwindcss/csv-importer.blade.php
@@ -31,7 +31,7 @@
x-on:dragover.prevent="dropping = true"
x-on:dragleave.prevent="dropping = false"
x-on:drop.prevent="dropping = false"
- x-on:drop.prevnet="handleDrop($event)"
+ x-on:drop.prevent="handleDrop($event)"
x-data="{
dropping: false,
diff --git a/src/Concerns/HasCsvProperties.php b/src/Concerns/HasCsvProperties.php
index 178e0b9..50f530d 100644
--- a/src/Concerns/HasCsvProperties.php
+++ b/src/Concerns/HasCsvProperties.php
@@ -20,8 +20,6 @@ trait HasCsvProperties
/**
* Read CSV Property
- *
- * @return Reader
*/
public function getReadCsvProperty(): Reader
{
@@ -30,8 +28,6 @@ public function getReadCsvProperty(): Reader
/**
* Get CSV Records Property
- *
- * @return TabularDataReader
*/
public function getCsvRecordsProperty(): TabularDataReader
{
@@ -40,8 +36,6 @@ public function getCsvRecordsProperty(): TabularDataReader
/**
* Handle CSV Information properties from the given file
- *
- * @return array|\Illuminate\Support\MessageBag
*/
public function handleCsvProperties(): array|MessageBag
{
diff --git a/src/Concerns/InteractsWithColumns.php b/src/Concerns/InteractsWithColumns.php
index 8fdfc82..0448d22 100644
--- a/src/Concerns/InteractsWithColumns.php
+++ b/src/Concerns/InteractsWithColumns.php
@@ -6,8 +6,6 @@ trait InteractsWithColumns
{
/**
* Converts the columnsToMap property into an associative array.
- *
- * @return array
*/
protected function mapThroughColumns(): array
{
@@ -22,8 +20,6 @@ protected function mapThroughColumns(): array
/**
* Maps requiredColumns property into columnsToMap required state.
- *
- * @return array
*/
protected function mapThroughRequiredColumns(): array
{
@@ -39,8 +35,6 @@ protected function mapThroughRequiredColumns(): array
/**
* Maps columnLabels property into columnsToMap label state.
- *
- * @return array
*/
protected function mapThroughColumnLabels(): array
{
diff --git a/src/Concerns/InteractsWithCsvFiles.php b/src/Concerns/InteractsWithCsvFiles.php
index 9f43a71..5f7e22a 100644
--- a/src/Concerns/InteractsWithCsvFiles.php
+++ b/src/Concerns/InteractsWithCsvFiles.php
@@ -8,9 +8,6 @@ trait InteractsWithCsvFiles
{
/**
* Read CSV File.
- *
- * @param string $path
- * @return Reader
*/
protected function readCSV(string $path): Reader
{
diff --git a/src/Http/Livewire/CsvImporter.php b/src/Http/Livewire/CsvImporter.php
index 27b022c..16fd3b0 100644
--- a/src/Http/Livewire/CsvImporter.php
+++ b/src/Http/Livewire/CsvImporter.php
@@ -22,30 +22,24 @@ class CsvImporter extends Component
/** @var string */
public $model;
- /** @var bool */
public bool $open = false;
/** @var object */
public $file;
- /** @var array */
public array $columnsToMap = [];
- /** @var array */
public array $requiredColumns = [];
- /** @var array */
public array $columnLabels = [];
- /** @var array */
public array $fileHeaders = [];
- /** @var int */
public int $fileRowCount = 0;
/** @var array */
protected $exceptions = [
- 'mode', 'columnsToMap', 'open',
+ 'model', 'columnsToMap', 'open',
'columnLabels', 'requiredColumns',
];
@@ -83,7 +77,7 @@ public function import()
$this->resetExcept($this->exceptions);
- $this->emitTo('csv-imports', 'imports.refresh');
+ $this->emitTo('handle-imports', 'imports.refresh');
}
public function toggle()
diff --git a/src/Http/Livewire/HandleImports.php b/src/Http/Livewire/HandleImports.php
index c912f05..7715978 100644
--- a/src/Http/Livewire/HandleImports.php
+++ b/src/Http/Livewire/HandleImports.php
@@ -4,6 +4,9 @@
use function Coderflex\LaravelCsv\csv_view_path;
use Coderflex\LaravelCsv\Models\Import;
+use Illuminate\Contracts\View\Factory;
+use Illuminate\Contracts\View\View;
+use Illuminate\Database\Eloquent\Collection;
use Livewire\Component;
class HandleImports extends Component
@@ -16,12 +19,12 @@ class HandleImports extends Component
'imports.refresh' => '$refresh',
];
- public function mount(string $model)
+ public function mount(string $model): void
{
$this->model = $model;
}
- public function getImportsProperty()
+ public function getImportsProperty(): Collection
{
/** @var \Illuminate\Foundation\Auth\User */
$user = auth()->user();
@@ -34,7 +37,7 @@ public function getImportsProperty()
->get();
}
- public function render()
+ public function render(): View|Factory
{
return view(
csv_view_path('handle-imports')
diff --git a/src/Jobs/ImportCsv.php b/src/Jobs/ImportCsv.php
index dc8dada..d89e046 100644
--- a/src/Jobs/ImportCsv.php
+++ b/src/Jobs/ImportCsv.php
@@ -38,7 +38,7 @@ public function handle()
$affectedRows = $this->model::upsert(
$this->chunk,
['id'],
- collect($this->columns)->diff('id')->keys()->toArray(),
+ collect($this->columns)->diff(['id'])->keys()->toArray(),
);
$this->import->increment('processed_rows', $affectedRows);
diff --git a/src/LaravelCsvDirectives.php b/src/LaravelCsvDirectives.php
index 61309ec..0cd203e 100644
--- a/src/LaravelCsvDirectives.php
+++ b/src/LaravelCsvDirectives.php
@@ -4,21 +4,34 @@
class LaravelCsvDirectives
{
- public static function csvStyles()
+ /**
+ * Get CSV Styles
+ *
+ * @return string
+ */
+ public static function csvStyles(): string|null
{
if (config('laravel_csv.layout') == 'tailwindcss') {
return self::getTailwindStyle();
}
+
+ return self::getTailwindStyle();
}
- public static function csvScripts()
+ /**
+ * Get CSV Scripts
+ */
+ public static function csvScripts(): string
{
return <<<'HTML'
HTML;
}
- protected static function getTailwindStyle()
+ /**
+ * Get Tailwind Style Path
+ */
+ protected static function getTailwindStyle(): string
{
return <<<'HTML'
diff --git a/src/LaravelCsvManager.php b/src/LaravelCsvManager.php
index 4d44cf2..98e8182 100644
--- a/src/LaravelCsvManager.php
+++ b/src/LaravelCsvManager.php
@@ -6,10 +6,6 @@ class LaravelCsvManager
{
/**
* Get the given size and formated it.
- *
- * @param int $size
- * @param int $precision
- * @return string|int
*/
public function formatFileSize(int $size, int $precision = 2): string|int
{
diff --git a/src/LaravelCsvServiceProvider.php b/src/LaravelCsvServiceProvider.php
index 31fcd8c..94a8900 100644
--- a/src/LaravelCsvServiceProvider.php
+++ b/src/LaravelCsvServiceProvider.php
@@ -43,8 +43,6 @@ public function registeringPackage()
/**
* Configure Laravel CSV Blade components
- *
- * @return void
*/
protected function configureComponents(): void
{
@@ -55,20 +53,18 @@ protected function configureComponents(): void
/**
* Register livewire components
- *
- * @return void
*/
protected function registerLivewireComponents(): void
{
+ /** @phpstan-ignore-next-line */
Livewire::component('csv-importer', CsvImporter::class);
+
+ /** @phpstan-ignore-next-line */
Livewire::component('handle-imports', HandleImports::class);
}
/**
* Register given component.
- *
- * @param string $component
- * @return void
*/
protected function registerComponent(string $component): void
{
diff --git a/src/Scopes/ImportScope.php b/src/Scopes/ImportScope.php
index 2d73cf1..3273301 100644
--- a/src/Scopes/ImportScope.php
+++ b/src/Scopes/ImportScope.php
@@ -9,8 +9,6 @@ trait ImportScope
{
/**
* Completed Status Scope
- *
- * @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeCompleted(Builder $builder): Builder
{
@@ -19,8 +17,6 @@ public function scopeCompleted(Builder $builder): Builder
/**
* Not Completed Status Scope
- *
- * @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeUnCompleted(Builder $builder): Builder
{
@@ -29,8 +25,6 @@ public function scopeUnCompleted(Builder $builder): Builder
/**
* Get the percentage of the model completion
- *
- * @return int|float
*/
public function percentageComplete(): int|float
{
@@ -39,9 +33,6 @@ public function percentageComplete(): int|float
/**
* Fetch imports based on the given model
- *
- * @param string $model
- * @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeForModel(Builder $builder, string $model): Builder
{
@@ -50,9 +41,6 @@ public function scopeForModel(Builder $builder, string $model): Builder
/**
* Fetch imports on the user id
- *
- * @param int $user
- * @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeForUser(Builder $builder, int $user): Builder
{
diff --git a/src/Utilities/ChunkIterator.php b/src/Utilities/ChunkIterator.php
index 5ed7233..7b97719 100644
--- a/src/Utilities/ChunkIterator.php
+++ b/src/Utilities/ChunkIterator.php
@@ -2,6 +2,7 @@
namespace Coderflex\LaravelCsv\Utilities;
+use Generator;
use Iterator;
/**
@@ -17,14 +18,8 @@
*/
class ChunkIterator
{
- /**
- * @var Iterator
- */
protected Iterator $iterator;
- /**
- * @var int
- */
protected int $chunkSize;
public function __construct(Iterator $iterator, int $chunkSize)
@@ -36,7 +31,7 @@ public function __construct(Iterator $iterator, int $chunkSize)
/**
* Chunk the given data
*/
- public function get()
+ public function get(): Generator
{
$chunk = [];
diff --git a/src/helpers.php b/src/helpers.php
index 78e4e9e..5532e05 100644
--- a/src/helpers.php
+++ b/src/helpers.php
@@ -5,11 +5,8 @@
if (! function_exists('Coderflex\LaravelCsv\csv_view_path')) {
/**
* Get the evaluated view content from the livewire view
- *
- * @param string|null $view
- * @return string
*/
- function csv_view_path($view): string
+ function csv_view_path(string|null $view): string
{
return 'laravel-csv::livewire.'.config('laravel_csv.layout').'.'.$view;
}
pFad - Phonifier reborn
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.